Browse Source

ArduCopter: reduce redundant event logging

We now only write state changes to the dataflash log when they have
changed.
Also replaced <tab> with <space> in AP_State.pde
mission-4.1.18
Randy Mackay 12 years ago
parent
commit
b4bbae56c6
  1. 29
      ArduCopter/AP_State.pde

29
ArduCopter/AP_State.pde

@ -3,18 +3,26 @@
void set_home_is_set(bool b) void set_home_is_set(bool b)
{ {
ap.home_is_set = b; // if no change, exit immediately
if( ap.home_is_set == b )
return;
if(b) Log_Write_Event(DATA_SET_HOME); ap.home_is_set = b;
if(b) {
Log_Write_Event(DATA_SET_HOME);
}
} }
// --------------------------------------------- // ---------------------------------------------
void set_armed(bool b) void set_armed(bool b)
{ {
// if no change, exit immediately
if( ap.armed == b )
return;
ap.armed = b; ap.armed = b;
if(b){ if(b){
Log_Write_Event(DATA_ARMED); Log_Write_Event(DATA_ARMED);
}else{ }else{
Log_Write_Event(DATA_DISARMED); Log_Write_Event(DATA_DISARMED);
} }
@ -23,6 +31,10 @@ void set_armed(bool b)
// --------------------------------------------- // ---------------------------------------------
void set_auto_armed(bool b) void set_auto_armed(bool b)
{ {
// if no change, exit immediately
if( ap.auto_armed == b )
return;
ap.auto_armed = b; ap.auto_armed = b;
if(b){ if(b){
Log_Write_Event(DATA_AUTO_ARMED); Log_Write_Event(DATA_AUTO_ARMED);
@ -38,8 +50,8 @@ void set_simple_mode(bool b)
}else{ }else{
Log_Write_Event(DATA_SET_SIMPLE_OFF); Log_Write_Event(DATA_SET_SIMPLE_OFF);
} }
}
ap.simple_mode = b; ap.simple_mode = b;
}
} }
// --------------------------------------------- // ---------------------------------------------
@ -75,6 +87,10 @@ void set_low_battery(bool b)
// --------------------------------------------- // ---------------------------------------------
void set_takeoff_complete(bool b) void set_takeoff_complete(bool b)
{ {
// if no change, exit immediately
if( ap.takeoff_complete == b )
return;
if(b){ if(b){
Log_Write_Event(DATA_TAKEOFF); Log_Write_Event(DATA_TAKEOFF);
} }
@ -84,6 +100,10 @@ void set_takeoff_complete(bool b)
// --------------------------------------------- // ---------------------------------------------
void set_land_complete(bool b) void set_land_complete(bool b)
{ {
// if no change, exit immediately
if( ap.land_complete == b )
return;
if(b){ if(b){
Log_Write_Event(DATA_LAND_COMPLETE); Log_Write_Event(DATA_LAND_COMPLETE);
} }
@ -136,5 +156,4 @@ void set_gps_healthy(bool b)
void dump_state() void dump_state()
{ {
cliSerial->printf("st: %u\n",ap.value); cliSerial->printf("st: %u\n",ap.value);
//cliSerial->printf("%u\n", *(uint16_t*)&ap);
} }

Loading…
Cancel
Save