mirror of
https://github.com/opentx/opentx.git
synced 2025-07-19 06:15:10 +03:00
[Taranis] Issue #554 - Bug fixes (radio part)
This commit is contained in:
parent
16c1bd01c6
commit
cb47c03f4f
3 changed files with 14 additions and 7 deletions
|
@ -1737,6 +1737,11 @@ enum FlightModesItems {
|
|||
ITEM_PHASES_LAST = ITEM_PHASES_COUNT-1
|
||||
};
|
||||
|
||||
bool isTrimModeAvailable(int16_t mode)
|
||||
{
|
||||
return (mode == TRIM_MODE_NONE || (mode%2) == 0 || (mode/2) != (m_posVert-1));
|
||||
}
|
||||
|
||||
void menuModelFlightModesAll(uint8_t event)
|
||||
{
|
||||
MENU(STR_MENUFLIGHTPHASES, menuTabModel, e_FlightModesAll, 1+MAX_PHASES+1, {0, NAVIGATION_LINE_BY_LINE|(ITEM_PHASES_LAST-5), NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, 0});
|
||||
|
@ -1796,7 +1801,7 @@ void menuModelFlightModesAll(uint8_t event)
|
|||
putsTrimMode((4+LEN_FP_NAME)*FW+j*(5*FW/2), y, k, t, attr);
|
||||
if (active) {
|
||||
trim_t & v = p->trim[t];
|
||||
v.mode = checkIncDec(event, v.mode, -1, 2*MAX_PHASES-1, EE_MODEL);
|
||||
v.mode = checkIncDec(event, v.mode==TRIM_MODE_NONE ? -1 : v.mode, -1, 2*MAX_PHASES-1, EE_MODEL, isTrimModeAvailable);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -2858,7 +2863,7 @@ void menuModelExpoOne(uint8_t event)
|
|||
case EXPO_FIELD_SCALE:
|
||||
lcd_putsLeft(y, STR_SCALE);
|
||||
putsTelemetryChannel(EXPO_ONE_2ND_COLUMN, y, ed->srcRaw - MIXSRC_FIRST_TELEM, convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale), LEFT|attr);
|
||||
if (attr) ed->scale = checkIncDec(event, ed->scale, 0, maxTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1), EE_MODEL, NULL);
|
||||
if (attr) ed->scale = checkIncDec(event, ed->scale, 0, maxTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1), EE_MODEL);
|
||||
break;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1166,13 +1166,14 @@ void putsTmrMode(xcoord_t x, uint8_t y, int8_t mode, LcdFlags att)
|
|||
void putsTrimMode(xcoord_t x, uint8_t y, uint8_t phase, uint8_t idx, LcdFlags att)
|
||||
{
|
||||
trim_t v = getRawTrimValue(phase, idx);
|
||||
unsigned int mode = v.mode;
|
||||
unsigned int p = mode >> 1;
|
||||
|
||||
if (v.mode < 0) {
|
||||
if (mode == TRIM_MODE_NONE) {
|
||||
lcd_putsAtt(x, y, "--", att);
|
||||
}
|
||||
else {
|
||||
uint8_t p = v.mode >> 1;
|
||||
if (v.mode % 2 == 0)
|
||||
if (mode % 2 == 0)
|
||||
lcd_putcAtt(x+2, y, ':', att);
|
||||
else
|
||||
lcd_putcAtt(x, y, '+', att);
|
||||
|
|
|
@ -1075,8 +1075,9 @@ PACK(typedef struct t_SwashRingData { // Swash Ring data
|
|||
#if defined(PCBTARANIS)
|
||||
PACK(typedef struct {
|
||||
int16_t value:11;
|
||||
int16_t mode:5;
|
||||
uint16_t mode:5;
|
||||
}) trim_t;
|
||||
#define TRIM_MODE_NONE 0b11111
|
||||
#else
|
||||
#define trim_t int16_t
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue