From 0fc7afe31d1c32c2049ba84f4ef423e7865ac3d6 Mon Sep 17 00:00:00 2001 From: giacomo892 Date: Mon, 12 Feb 2018 15:26:41 +0100 Subject: [PATCH] Check if AUTOTRIM is enabled before arming and avoid arming. --- src/main/fc/fc_core.c | 7 +++++++ src/main/fc/runtime_config.h | 5 +++-- src/main/io/osd.c | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/fc/fc_core.c b/src/main/fc/fc_core.c index b31c47cc99a..22fceeb00e5 100755 --- a/src/main/fc/fc_core.c +++ b/src/main/fc/fc_core.c @@ -273,6 +273,13 @@ static void updateArmingStatus(void) else { DISABLE_ARMING_FLAG(ARMING_DISABLED_BOXKILLSWITCH); } + /* CHECK: Do not allow arming if Servo AutoTrim is enabled */ + if (IS_RC_MODE_ACTIVE(BOXAUTOTRIM)) { + ENABLE_ARMING_FLAG(ARMING_DISABLED_SERVO_AUTOTRIM); + } + else { + DISABLE_ARMING_FLAG(ARMING_DISABLED_SERVO_AUTOTRIM); + } if (isArmingDisabled()) { warningLedFlash(); diff --git a/src/main/fc/runtime_config.h b/src/main/fc/runtime_config.h index 56700b16805..d4c2486bbe1 100644 --- a/src/main/fc/runtime_config.h +++ b/src/main/fc/runtime_config.h @@ -39,13 +39,14 @@ typedef enum { ARMING_DISABLED_CLI = (1 << 20), ARMING_DISABLED_CMS_MENU = (1 << 21), ARMING_DISABLED_OSD_MENU = (1 << 22), - ARMING_DISABLED_ROLLPITCH_NOT_CENTERED = (1 << 23), + ARMING_DISABLED_ROLLPITCH_NOT_CENTERED = (1 << 23), + ARMING_DISABLED_SERVO_AUTOTRIM = (1 << 24), ARMING_DISABLED_ALL_FLAGS = (ARMING_DISABLED_FAILSAFE_SYSTEM | ARMING_DISABLED_NOT_LEVEL | ARMING_DISABLED_SENSORS_CALIBRATING | ARMING_DISABLED_SYSTEM_OVERLOADED | ARMING_DISABLED_NAVIGATION_UNSAFE | ARMING_DISABLED_COMPASS_NOT_CALIBRATED | ARMING_DISABLED_ACCELEROMETER_NOT_CALIBRATED | ARMING_DISABLED_ARM_SWITCH | ARMING_DISABLED_HARDWARE_FAILURE | ARMING_DISABLED_BOXFAILSAFE | ARMING_DISABLED_BOXKILLSWITCH | ARMING_DISABLED_RC_LINK | ARMING_DISABLED_THROTTLE | ARMING_DISABLED_CLI | ARMING_DISABLED_CMS_MENU | ARMING_DISABLED_OSD_MENU | - ARMING_DISABLED_ROLLPITCH_NOT_CENTERED) + ARMING_DISABLED_ROLLPITCH_NOT_CENTERED | ARMING_DISABLED_SERVO_AUTOTRIM) } armingFlag_e; extern uint32_t armingFlags; diff --git a/src/main/io/osd.c b/src/main/io/osd.c index 0f574657787..1abd28305bb 100755 --- a/src/main/io/osd.c +++ b/src/main/io/osd.c @@ -541,6 +541,8 @@ static const char * osdArmingDisabledReasonMessage(void) return OSD_MESSAGE_STR("THROTTLE IS NOT LOW"); case ARMING_DISABLED_ROLLPITCH_NOT_CENTERED: return OSD_MESSAGE_STR("ROLLPITCH NOT CENTERED"); + case ARMING_DISABLED_SERVO_AUTOTRIM: + return OSD_MESSAGE_STR("AUTOTRIM IS ACTIVE"); case ARMING_DISABLED_CLI: return OSD_MESSAGE_STR("CLI IS ACTIVE"); // Cases without message