Browse Source

ArduCopter: log watchdog event to dataflash

mission-4.1.18
rmackay9 12 years ago committed by Andrew Tridgell
parent
commit
2181ec2ab0
  1. 5
      ArduCopter/defines.h
  2. 4
      ArduCopter/events.pde
  3. 3
      ArduCopter/failsafe.pde

5
ArduCopter/defines.h

@ -435,8 +435,9 @@ enum gcs_severity { @@ -435,8 +435,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

4
ArduCopter/events.pde

@ -48,7 +48,7 @@ static void failsafe_on_event() @@ -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) @@ -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

3
ArduCopter/failsafe.pde

@ -48,13 +48,14 @@ void failsafe_check(uint32_t tnow) @@ -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);
}
}
}
Loading…
Cancel
Save