diff --git a/ArduCopter/defines.h b/ArduCopter/defines.h index abb485250da3bd9cca6e7cebca40a95e5e94ea9b..47d2b68ce63a36f64fa7214b7d129a8fef07c5f7 100644 --- a/ArduCopter/defines.h +++ b/ArduCopter/defines.h @@ -446,8 +446,9 @@ enum gcs_severity { // subsystem specific error codes -- radio #define ERROR_CODE_RADIO_LATE_FRAME 2 // subsystem specific error codes -- failsafe -#define ERROR_CODE_RADIO_FAILSAFE_THROTTLE 2 -#define ERROR_CODE_RADIO_FAILSAFE_BATTERY 3 +#define ERROR_CODE_FAILSAFE_THROTTLE 2 +#define ERROR_CODE_FAILSAFE_BATTERY 3 +#define ERROR_CODE_FAILSAFE_WATCHDOG 4 diff --git a/ArduCopter/events.pde b/ArduCopter/events.pde index 7a7f4e3260d2382c392cc44119b45d4e0232af32..7b189af96339ef6899a2bf7f71975489e8beb842 100644 --- a/ArduCopter/events.pde +++ b/ArduCopter/events.pde @@ -48,7 +48,7 @@ static void failsafe_on_event() } // log the error to the dataflash - Log_Write_Error(ERROR_SUBSYSTEM_FAILSAFE, ERROR_CODE_RADIO_FAILSAFE_THROTTLE); + Log_Write_Error(ERROR_SUBSYSTEM_FAILSAFE, ERROR_CODE_FAILSAFE_THROTTLE); } @@ -95,7 +95,7 @@ static void low_battery_event(void) // warn the ground station and log to dataflash gcs_send_text_P(SEVERITY_LOW,PSTR("Low Battery!")); - Log_Write_Error(ERROR_SUBSYSTEM_FAILSAFE, ERROR_CODE_RADIO_FAILSAFE_BATTERY); + Log_Write_Error(ERROR_SUBSYSTEM_FAILSAFE, ERROR_CODE_FAILSAFE_BATTERY); #if COPTER_LEDS == ENABLED if ( bitRead(g.copter_leds_mode, 3) ) { // Only Activate if a battery is connected to avoid alarm on USB only diff --git a/ArduCopter/failsafe.pde b/ArduCopter/failsafe.pde index c39dc7d9c1462409319a403eb474e8eb59edcbce..09dfb5185920940a9d8a00d760b3c5b2b1ade821 100644 --- a/ArduCopter/failsafe.pde +++ b/ArduCopter/failsafe.pde @@ -48,13 +48,14 @@ void failsafe_check(uint32_t tnow) in_failsafe = true; } - if (in_failsafe && tnow - failsafe_last_timestamp > 1000000) { + if (failsafe_enabled && in_failsafe && tnow - failsafe_last_timestamp > 1000000) { // disarm motors every second failsafe_last_timestamp = tnow; if(motors.armed()) { motors.armed(false); set_armed(true); motors.output(); + Log_Write_Error(ERROR_SUBSYSTEM_FAILSAFE, ERROR_CODE_FAILSAFE_WATCHDOG); } } } \ No newline at end of file