use signed pwr on/off speed from -1 to 2 (delay 0 to 3)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -2423,8 +2423,11 @@ p, li { white-space: pre-wrap; }
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QSlider" name="pwrOnSpeed">
|
||||
<property name="minimum">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>3</number>
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
@@ -2433,8 +2436,11 @@ p, li { white-space: pre-wrap; }
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QSlider" name="pwrOffSpeed">
|
||||
<property name="minimum">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>3</number>
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+3
-10
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user