From 61e1ec6ac8a4a58bb4cc43227ff628a4059f7fe6 Mon Sep 17 00:00:00 2001 From: Iampete1 Date: Thu, 1 Aug 2024 13:16:44 +0100 Subject: [PATCH] AP_ICEngine: stop engine in E-Stop --- libraries/AP_ICEngine/AP_ICEngine.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libraries/AP_ICEngine/AP_ICEngine.cpp b/libraries/AP_ICEngine/AP_ICEngine.cpp index b5202ea7220cb..67051949ab051 100644 --- a/libraries/AP_ICEngine/AP_ICEngine.cpp +++ b/libraries/AP_ICEngine/AP_ICEngine.cpp @@ -150,7 +150,7 @@ const AP_Param::GroupInfo AP_ICEngine::var_info[] = { // @Param: STARTCHN_MIN // @DisplayName: Input channel for engine start minimum PWM - // @Description: This is a minimum PWM value for engine start channel for an engine stop to be commanded. Setting this value will avoid RC input glitches with low PWM values from causing an unwanted engine stop. A value of zero means any PWM below 1300 triggers an engine stop. + // @Description: This is a minimum PWM value for engine start channel for an engine stop to be commanded. Setting this value will avoid RC input glitches with low PWM values from causing an unwanted engine stop. A value of zero means any PWM above 800 and below 1300 triggers an engine stop. To stop the engine start channel must above the larger of this value and 800 and below 1300. // @User: Standard // @Range: 0 1300 AP_GROUPINFO("STARTCHN_MIN", 16, AP_ICEngine, start_chan_min_pwm, 0), @@ -276,6 +276,13 @@ void AP_ICEngine::update(void) } #endif + // Stop on emergency stop + if (SRV_Channels::get_emergency_stop()) { + // Throttle is already forced to 0 in this case, ignition should also be stopped. + // Starter should not run. + should_run = false; + } + // switch on current state to work out new state switch (state) { case ICE_DISABLED: