1
0
Fork 0
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:
Bertrand Songis 2014-01-27 12:25:13 +01:00
parent 16c1bd01c6
commit cb47c03f4f
3 changed files with 14 additions and 7 deletions

View file

@ -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

View file

@ -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);

View file

@ -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