From 83efad8f43f4d774ff503b5b56f476bad1031995 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Fri, 16 Aug 2019 23:44:00 +0200 Subject: [PATCH] use signed pwr on/off speed from -1 to 2 (delay 0 to 3) --- companion/src/firmwares/generalsettings.h | 4 ++-- companion/src/firmwares/opentx/opentxeeprom.cpp | 4 ++-- companion/src/generaledit/generalsetup.ui | 10 ++++++++-- radio/src/datastructs.h | 4 ++-- radio/src/gui/128x64/radio_setup.cpp | 12 ++++++------ radio/src/gui/212x64/radio_setup.cpp | 8 ++++---- radio/src/gui/480x272/radio_setup.cpp | 2 +- radio/src/opentx.cpp | 13 +++---------- 8 files changed, 28 insertions(+), 29 deletions(-) diff --git a/companion/src/firmwares/generalsettings.h b/companion/src/firmwares/generalsettings.h index 25e300628..2fb98e8e6 100644 --- a/companion/src/firmwares/generalsettings.h +++ b/companion/src/firmwares/generalsettings.h @@ -170,8 +170,8 @@ class GeneralSettings { int gyroMax; int gyroOffset; - unsigned int pwrOnSpeed; - unsigned int pwrOffSpeed; + int pwrOnSpeed; + int pwrOffSpeed; bool switchPositionAllowedTaranis(int index) const; bool switchSourceAllowedTaranis(int index) const; diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 8e54b853d..b4ec24d5b 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -2407,8 +2407,8 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type internalField.Append(new UnsignedField<2>(this, generalData.countryCode)); if (version >= 219 && IS_HORUS_OR_TARANIS(board)) { - internalField.Append(new UnsignedField<2>(this, generalData.pwrOnSpeed, "Power On Speed")); - internalField.Append(new UnsignedField<2>(this, generalData.pwrOffSpeed, "Power Off Speed")); + internalField.Append(new SignedField<2>(this, generalData.pwrOnSpeed, "Power On Speed")); + internalField.Append(new SignedField<2>(this, generalData.pwrOffSpeed, "Power Off Speed")); internalField.Append(new SpareBitsField<2>(this)); } else { diff --git a/companion/src/generaledit/generalsetup.ui b/companion/src/generaledit/generalsetup.ui index 9378b2dc0..5e2941508 100644 --- a/companion/src/generaledit/generalsetup.ui +++ b/companion/src/generaledit/generalsetup.ui @@ -2423,8 +2423,11 @@ p, li { white-space: pre-wrap; } + + -1 + - 3 + 2 Qt::Horizontal @@ -2433,8 +2436,11 @@ p, li { white-space: pre-wrap; } + + -1 + - 3 + 2 Qt::Horizontal diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 2b4c28f4c..dcc2fda60 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -772,8 +772,8 @@ PACK(struct RadioData { NOBACKUP(uint8_t bluetoothBaudrate:4); NOBACKUP(uint8_t bluetoothMode:4); NOBACKUP(uint8_t countryCode:2); - NOBACKUP(uint8_t pwrOnSpeed:2); - NOBACKUP(uint8_t pwrOffSpeed:2); + NOBACKUP(int8_t pwrOnSpeed:2); + NOBACKUP(int8_t pwrOffSpeed:2); NOBACKUP(uint8_t spare5:2); NOBACKUP(uint8_t imperial:1); NOBACKUP(uint8_t jitterFilter:1); /* 0 - active */ diff --git a/radio/src/gui/128x64/radio_setup.cpp b/radio/src/gui/128x64/radio_setup.cpp index eef530c53..30b37b156 100644 --- a/radio/src/gui/128x64/radio_setup.cpp +++ b/radio/src/gui/128x64/radio_setup.cpp @@ -510,16 +510,16 @@ void menuRadioSetup(event_t event) #endif #if defined(PWR_BUTTON_PRESS) - case ITEM_RADIO_SETUP_PWR_ON_SPEED: + case ITEM_RADIO_SETUP_PWR_ON_SPEED: lcdDrawTextAlignedLeft(y, STR_PWR_ON_SPEED); - lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.pwrOnSpeed, attr|LEFT); - if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.pwrOnSpeed, 0, 3); + lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.pwrOnSpeed + 1, attr|LEFT); + if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.pwrOnSpeed, -1, 2); break; - case ITEM_RADIO_SETUP_PWR_OFF_SPEED: + case ITEM_RADIO_SETUP_PWR_OFF_SPEED: lcdDrawTextAlignedLeft(y, STR_PWR_OFF_SPEED); - lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.pwrOffSpeed, attr|LEFT); - if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.pwrOffSpeed, 0, 3); + lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.pwrOffSpeed + 1, attr|LEFT); + if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.pwrOffSpeed, -1, 2); break; #endif diff --git a/radio/src/gui/212x64/radio_setup.cpp b/radio/src/gui/212x64/radio_setup.cpp index edf3459e1..2eedcc884 100644 --- a/radio/src/gui/212x64/radio_setup.cpp +++ b/radio/src/gui/212x64/radio_setup.cpp @@ -473,14 +473,14 @@ void menuRadioSetup(event_t event) #if defined(PWR_BUTTON_PRESS) case ITEM_RADIO_SETUP_PWR_ON_SPEED: lcdDrawTextAlignedLeft(y, STR_PWR_ON_SPEED); - lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.pwrOnSpeed, attr|LEFT); - if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.pwrOnSpeed, 0, 3); + lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.pwrOnSpeed + 1, attr|LEFT); + if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.pwrOnSpeed, -1, 2); break; case ITEM_RADIO_SETUP_PWR_OFF_SPEED: lcdDrawTextAlignedLeft(y, STR_PWR_OFF_SPEED); - lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.pwrOffSpeed, attr|LEFT); - if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.pwrOffSpeed, 0, 3); + lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.pwrOffSpeed + 1, attr|LEFT); + if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.pwrOffSpeed, -1, 2); break; #endif diff --git a/radio/src/gui/480x272/radio_setup.cpp b/radio/src/gui/480x272/radio_setup.cpp index 4e679c909..a26d2d08a 100644 --- a/radio/src/gui/480x272/radio_setup.cpp +++ b/radio/src/gui/480x272/radio_setup.cpp @@ -385,7 +385,7 @@ bool menuRadioSetup(event_t event) #if defined(PWR_BUTTON_PRESS) case ITEM_SETUP_PWR_OFF_SPEED: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_PWR_OFF_SPEED); - g_eeGeneral.pwrOffSpeed = editSlider(RADIO_SETUP_2ND_COLUMN, y, event, g_eeGeneral.pwrOffSpeed, 0, 3, attr); + g_eeGeneral.pwrOffSpeed = editSlider(RADIO_SETUP_2ND_COLUMN, y, event, g_eeGeneral.pwrOffSpeed, -1, 2, attr); break; #endif diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 92100ee6b..186bc43da 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1729,17 +1729,10 @@ void copyTrimsToOffset(uint8_t ch) } -const uint8_t _pwrOnOffDuration_lookup[] = { - 200, // 2s - 100, // 1s - 50, // 0.5s - 0, // none -}; - #if defined(STARTUP_ANIMATION) -#define PWR_PRESS_DURATION_MIN() (_pwrOnOffDuration_lookup[g_eeGeneral.pwrOnSpeed & 3]) -#define PWR_PRESS_DURATION_MAX 500 // 5s +#define PWR_PRESS_DURATION_MIN() (2 - g_eeGeneral.pwrOnSpeed) +#define PWR_PRESS_DURATION_MAX 500 // 5s void runStartupAnimation() { @@ -2035,7 +2028,7 @@ int main() #if !defined(SIMU) #if defined(PWR_BUTTON_PRESS) -#define PWR_PRESS_SHUTDOWN_DELAY() (_pwrOnOffDuration_lookup[g_eeGeneral.pwrOffSpeed & 3]) +#define PWR_PRESS_SHUTDOWN_DELAY() (2 - g_eeGeneral.pwrOffSpeed) uint32_t pwr_press_time = 0;