From b30f46790ee8f716bb106f78a7e98b15a8b40060 Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 18 Jun 2025 22:04:53 +0000 Subject: [PATCH] Fix review --- src/main/cli/settings.c | 2 +- src/main/msp/msp.c | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/cli/settings.c b/src/main/cli/settings.c index afc4b9b696..ec2955c30a 100644 --- a/src/main/cli/settings.c +++ b/src/main/cli/settings.c @@ -1743,7 +1743,7 @@ const clivalue_t valueTable[] = { { "displayport_msp_fonts", VAR_UINT8 | MASTER_VALUE | MODE_ARRAY, .config.array.length = 4, PG_DISPLAY_PORT_MSP_CONFIG, offsetof(displayPortProfile_t, fontSelection) }, { "displayport_msp_use_device_blink", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_DISPLAY_PORT_MSP_CONFIG, offsetof(displayPortProfile_t, useDeviceBlink) }, #ifdef USE_MSP_DISPLAYPORT_DISARM_DELAY - { "displayport_msp_use_disarm_delay", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 0, UINT8_MAX }, PG_DISPLAY_PORT_MSP_CONFIG, offsetof(displayPortProfile_t, useDisarmDelay) }, + { "displayport_msp_use_disarm_delay", VAR_UINT8 | MASTER_VALUE, .config.minmaxUnsigned = { 0, UINT8_MAX }, PG_DISPLAY_PORT_MSP_CONFIG, offsetof(displayPortProfile_t, useDisarmDelay) }, #endif #endif diff --git a/src/main/msp/msp.c b/src/main/msp/msp.c index 71a61ce6ce..a8b1118e6e 100644 --- a/src/main/msp/msp.c +++ b/src/main/msp/msp.c @@ -26,7 +26,6 @@ #include #include -#include "common/time.h" #include "platform.h" #include "blackbox/blackbox.h" @@ -1082,21 +1081,25 @@ static bool mspCommonProcessOutCommand(int16_t cmdMSP, sbuf_t *dst, mspPostProce } #ifdef USE_MSP_DISPLAYPORT_DISARM_DELAY + +#define DISARM_DELAY_MULTIPLIER_US 100000 + static void mspDisplayportDelayDisarm(mspDescriptor_t srcDesc, boxBitmask_t *flightModeFlags) { - static mspDescriptor_t displayPortMspDescriptor = -1; + static mspDescriptor_t displayPortMspDescriptor; static bool displayPortMspArmState = false; + static bool descriptorInitialized = false; - if (displayPortMspDescriptor == -1) { - mspDescriptor_t tmp = getMspSerialPortDescriptor(displayPortMspGetSerial()); - displayPortMspDescriptor = (tmp != -1) ? tmp : -2; + if (!descriptorInitialized) { + descriptorInitialized = true; + displayPortMspDescriptor = getMspSerialPortDescriptor(displayPortMspGetSerial()); } if (displayPortMspDescriptor == srcDesc) { bool currentState = bitArrayGet(flightModeFlags, BOXARM); if (displayPortMspArmState) { if (!currentState) { - if (cmpTimeUs(micros(), getLastDisarmTimeUs()) < 100000 * displayPortProfileMsp()->useDisarmDelay) { + if (cmpTimeUs(micros(), getLastDisarmTimeUs()) < DISARM_DELAY_MULTIPLIER_US * displayPortProfileMsp()->useDisarmDelay) { bitArraySet(flightModeFlags, BOXARM); } else { displayPortMspArmState = false;