mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-03-11 17:13:56 -03:00
Sub: Log leak failsafe events, and send statustext even when disarmed
This commit is contained in:
parent
cd6ce2b208
commit
5eb50d5d21
@ -401,6 +401,7 @@ enum ThrowModeState {
|
||||
#define ERROR_SUBSYSTEM_TERRAIN 21
|
||||
#define ERROR_SUBSYSTEM_NAVIGATION 22
|
||||
#define ERROR_SUBSYSTEM_FAILSAFE_TERRAIN 23
|
||||
#define ERROR_SUBSYSTEM_FAILSAFE_LEAK 24
|
||||
// general error codes
|
||||
#define ERROR_CODE_ERROR_RESOLVED 0
|
||||
#define ERROR_CODE_FAILED_TO_INITIALISE 1
|
||||
|
@ -134,6 +134,9 @@ void Sub::set_leak_status(bool status) {
|
||||
|
||||
// Do nothing if we are dry, or if leak failsafe action is disabled
|
||||
if(status == false || g.failsafe_leak == FS_LEAK_DISABLED) {
|
||||
if(failsafe.leak) {
|
||||
Log_Write_Error(ERROR_SUBSYSTEM_FAILSAFE_LEAK, ERROR_CODE_FAILSAFE_RESOLVED);
|
||||
}
|
||||
failsafe.leak = false;
|
||||
return;
|
||||
}
|
||||
@ -148,14 +151,16 @@ void Sub::set_leak_status(bool status) {
|
||||
}
|
||||
|
||||
// Do nothing if we have already triggered the failsafe action, or if the motors are disarmed
|
||||
if(failsafe.leak || !motors.armed()) {
|
||||
if(failsafe.leak) {
|
||||
return;
|
||||
}
|
||||
|
||||
failsafe.leak = true;
|
||||
|
||||
Log_Write_Error(ERROR_SUBSYSTEM_FAILSAFE_LEAK, ERROR_CODE_FAILSAFE_OCCURRED);
|
||||
|
||||
// Handle failsafe action
|
||||
if(g.failsafe_leak == FS_LEAK_SURFACE && motors.armed()) {
|
||||
if(failsafe.leak && g.failsafe_leak == FS_LEAK_SURFACE && motors.armed()) {
|
||||
set_mode(SURFACE, MODE_REASON_LEAK_FAILSAFE);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user