diff --git a/src/frsky.cpp b/src/frsky.cpp index 1d8df4727..13c56db7e 100644 --- a/src/frsky.cpp +++ b/src/frsky.cpp @@ -70,7 +70,17 @@ struct FrskyAlarm frskyAlarms[4]; #if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) FrskyHubData frskyHubData; // TODO initialization? -uint8_t barsThresholds[BAR_MAX-3]; +enum BarThresholdIdx { + THLD_ALT, + THLD_RPM, + THLD_FUEL, + THLD_T1, + THLD_T2, + THLD_SPEED, + THLD_CELL, + THLD_MAX, +}; +uint8_t barsThresholds[THLD_MAX]; #endif void frskyPushValue(uint8_t *&ptr, uint8_t value) @@ -133,10 +143,12 @@ inline void getGpsDistance() dist = frskyHubData.distFromEarthAxis * angle / 1000000; result += dist*dist; - dist = frskyHubData.baroAltitude_bp + frskyHubData.baroAltitudeOffset; + dist = max(frskyHubData.baroAltitude_bp, frskyHubData.gpsAltitude_bp); result += dist*dist; frskyHubData.gpsDistance = isqrt32(result); + if (frskyHubData.gpsDistance > frskyHubData.maxGpsDistance) + frskyHubData.maxGpsDistance = frskyHubData.gpsDistance; } inline int8_t parseTelemHubIndex(uint8_t index) @@ -216,12 +228,22 @@ void parseTelemHubByte(uint8_t byte) ((uint8_t*)&frskyHubData)[structPos] = lowByte; ((uint8_t*)&frskyHubData)[structPos+1] = byte; - if ((uint8_t)structPos == offsetof(FrskyHubData, baroAltitude_bp) && !frskyHubData.baroAltitudeOffset) { + if ((uint8_t)structPos == offsetof(FrskyHubData, baroAltitude_bp)) { // First received altitude => Altitude offset - frskyHubData.baroAltitudeOffset = -frskyHubData.baroAltitude_bp; + if (!frskyHubData.baroAltitudeOffset) + frskyHubData.baroAltitudeOffset = -frskyHubData.baroAltitude_bp; + frskyHubData.baroAltitude_bp += frskyHubData.baroAltitudeOffset; + if (frskyHubData.baroAltitude_bp > frskyHubData.maxAltitude) + frskyHubData.maxAltitude = frskyHubData.baroAltitude_bp; } if ((uint8_t)structPos == offsetof(FrskyHubData, gpsAltitude_ap)) { + if (!frskyHubData.gpsAltitudeOffset) + frskyHubData.gpsAltitudeOffset = -frskyHubData.gpsAltitude_bp; + frskyHubData.gpsAltitude_bp += frskyHubData.gpsAltitudeOffset; + if (frskyHubData.gpsAltitude_bp > frskyHubData.maxAltitude) + frskyHubData.maxAltitude = frskyHubData.gpsAltitude_bp; + if (!frskyHubData.pilotLatitude && !frskyHubData.pilotLongitude) { // First received GPS position => Pilot GPS position getGpsPilotPosition(); @@ -484,13 +506,13 @@ void FRSKY10mspoll(void) uint8_t alarm = 1 - (FrskyAlarmSendState % 2); if (FrskyAlarmSendState < 4) { uint8_t channel = 1 - (FrskyAlarmSendState / 2); - *ptr++ = (g_eeGeneral.beeperMode != -2/*TODO constant*/ ? ALARM_LEVEL(channel, alarm) : alarm_off); + *ptr++ = (g_eeGeneral.beeperMode != e_mode_quiet ? ALARM_LEVEL(channel, alarm) : alarm_off); *ptr++ = ALARM_GREATER(channel, alarm); frskyPushValue(ptr, g_model.frsky.channels[channel].alarms_value[alarm]); *ptr++ = (A22PKT + FrskyAlarmSendState); // fc - fb - fa - f9 } else { - *ptr++ = (g_eeGeneral.beeperMode != -2/*TODO constant*/ ? ((2+alarm+g_model.frsky.rssiAlarms[alarm].level) % 4) : alarm_off); + *ptr++ = (g_eeGeneral.beeperMode != e_mode_quiet ? ((2+alarm+g_model.frsky.rssiAlarms[alarm].level) % 4) : alarm_off); *ptr++ = 0x00 ; frskyPushValue(ptr, 50+g_model.frsky.rssiAlarms[alarm].value); *ptr++ = (RSSI1PKT-alarm); // f7 - f6 @@ -613,23 +635,12 @@ void resetTelemetry() { memset(frskyTelemetry, 0, sizeof(frskyTelemetry)); memset(frskyRSSI, 0, sizeof(frskyRSSI)); - -#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) - frskyHubData.baroAltitudeOffset = -frskyHubData.baroAltitude_bp; -#endif - + memset(&frskyHubData, 0, sizeof(frskyHubData)); #if defined(FRSKY_HUB) - frskyHubData.maxGpsSpeed = 0; - frskyHubData.cellsCount = 0; - frskyHubData.minCellVolts = 0; - frskyHubData.pilotLatitude = 0; - frskyHubData.pilotLongitude = 0; frskyHubData.gpsLatitude_bp = 2; frskyHubData.gpsLongitude_bp = 2; frskyHubData.gpsFix = -1; - frskyHubData.gpsDistNeeded = 0; - frskyHubData.gpsDistance = 0; #endif #ifdef SIMU @@ -651,14 +662,32 @@ void resetTelemetry() getGpsDistance(); frskyHubData.cellsCount = 6; + + frskyHubData.gpsAltitude_bp = 50; + frskyHubData.baroAltitude_bp = 50; + frskyHubData.maxAltitude = 500; #endif } -#if defined(FRSKY) +enum FrskyViews { + e_frsky_bars, + e_frsky_a1a2, +#ifdef WS_HOW_HIGH + e_frsky_ws_how_high, +#endif +#ifdef FRSKY_HUB + e_frsky_hub = e_frsky_a1a2+1, + e_frsky_gps_inflight, + e_frsky_gps_position, +#endif +}; + +static uint8_t s_frsky_view = e_frsky_bars; + void displayRssiLine() { if (frskyStreaming > 0) { - lcd_hline(0, 54, 128, 0); // separator + lcd_hline(0, 55, 128, 0); // separator lcd_putsLeft(7*FH+1, STR_TX); lcd_outdezNAtt(4*FW, 7*FH+1, frskyRSSI[1].value, LEADING0, 2); lcd_rect(25, 57, 38, 7); lcd_filled_rect(26, 58, 9*frskyRSSI[1].value/25, 5); @@ -672,41 +701,55 @@ void displayRssiLine() lcd_filled_rect(0, DISPLAY_H-8, DISPLAY_W, 8); } } -#endif #if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) -void displayAltitudeLine(uint8_t x, uint8_t y, uint8_t flags) +void displayAltitudeLine(uint8_t y, uint8_t gps) { - lcd_putsn(x, y, STR_ALTnDST, 4); - int16_t value = frskyHubData.baroAltitude_bp + frskyHubData.baroAltitudeOffset; - putsTelemetryValue(lcd_lastPos, y, value, UNIT_METERS, flags|LEFT); + lcd_putsLeft(y, STR_ALT); + uint16_t alt; + uint8_t att, x; + if (gps) { + alt = frskyHubData.gpsAltitude_bp; + att = DBLSIZE; + x = 10*FW+1; + } + else { + alt = frskyHubData.baroAltitude_bp; + att = LEFT|DBLSIZE; + x = 4*FW; + } + + putsTelemetryValue(x, y, alt, UNIT_METERS, att); + lcd_putc(14*FW, y, '>'); + putsTelemetryValue(15*FW, y, frskyHubData.maxAltitude, UNIT_METERS, LEFT); } #endif -enum FrskyViews { - e_frsky_bars, - e_frsky_a1a2, -#ifdef WS_HOW_HIGH - e_frsky_ws_how_high, +#if defined(FRSKY_HUB) +void displayGpsTime() +{ +#define TIME_LINE (7*FH+1) + uint8_t att = (frskyStreaming > 0 ? LEFT|LEADING0 : LEFT|LEADING0|BLINK); + lcd_outdezNAtt(6*FW+5, TIME_LINE, frskyHubData.hour, att, 2); + lcd_putcAtt(8*FW+2, TIME_LINE, ':', att); + lcd_outdezNAtt(9*FW+2, TIME_LINE, frskyHubData.min, att, 2); + lcd_putcAtt(11*FW-1, TIME_LINE, ':', att); + lcd_outdezNAtt(12*FW-1, TIME_LINE, frskyHubData.sec, att, 2); + lcd_filled_rect(0, TIME_LINE-1, DISPLAY_W, 8); +} #endif -#ifdef FRSKY_HUB - e_frsky_hub = e_frsky_a1a2+1, - e_frsky_gps -#endif -}; #if defined(FRSKY_HUB) && defined(WS_HOW_HIGH) -#define FRSKY_VIEW_MAX (g_model.frsky.usrProto == 0 ? 1 : ((g_model.frsky.usrProto == 1 && frskyHubData.gpsFix >= 0) ? 3 : 2)) +#define FRSKY_VIEW_MAX (g_model.frsky.usrProto == 0 ? 1 : ((g_model.frsky.usrProto == 1 && frskyHubData.gpsFix >= 0) ? 4 : 2)) #elif defined(FRSKY_HUB) -#define FRSKY_VIEW_MAX (g_model.frsky.usrProto == 0 ? 1 : (frskyHubData.gpsFix >= 0 ? 3 : 2)) +#define FRSKY_VIEW_MAX (g_model.frsky.usrProto == 0 ? 1 : (frskyHubData.gpsFix >= 0 ? 4 : 2)) #elif defined(WS_HOW_HIGH) #define FRSKY_VIEW_MAX (g_model.frsky.usrProto == 0 ? 1 : 2) #endif + void menuProcFrsky(uint8_t event) { - static uint8_t s_frsky_view = e_frsky_bars; - switch (event) { case EVT_KEY_BREAK(KEY_UP): if (s_frsky_view-- == 0) @@ -777,46 +820,37 @@ void menuProcFrsky(uint8_t event) } else if (s_frsky_view == e_frsky_a1a2) { // Big A1 / A2 with min and max - uint8_t x0, blink; - if (g_model.frsky.channels[0].ratio || g_model.frsky.channels[1].ratio) { - x0 = 0; - for (uint8_t i=0; i<2; i++) { - if (g_model.frsky.channels[i].ratio) { - blink = (FRSKY_alarmRaised(i) ? INVERS : 0); - putsStrIdx(x0, 2*FH, STR_A, i+1, TWO_DOTS); - x0 += 3*FW; - putsTelemetryChannel(x0, 2*FH, i, frskyTelemetry[i].value, blink|DBLSIZE|LEFT); - putsTelemetryChannel(x0+FW, 3*FH, i, frskyTelemetry[i].min, 0); - putsTelemetryChannel(x0+3*FW, 3*FH, i, frskyTelemetry[i].max, LEFT); - x0 = 11*FW-2; - } + uint8_t blink; + uint8_t y = 2*FH; + for (uint8_t i=0; i<2; i++) { + if (g_model.frsky.channels[i].ratio) { + blink = (FRSKY_alarmRaised(i) ? INVERS : 0); + putsStrIdx(0, y, STR_A, i+1, TWO_DOTS); + putsTelemetryChannel(3*FW, y, i, frskyTelemetry[i].value, blink|DBLSIZE|LEFT); + lcd_putc(12*FW-1, y-FH, '<'); putsTelemetryChannel(17*FW, y-FH, i, frskyTelemetry[i].min, NO_UNIT); + lcd_putc(12*FW, y, '>'); putsTelemetryChannel(17*FW, y, i, frskyTelemetry[i].max, NO_UNIT); + y += 3*FH; } } - #ifdef FRSKY_HUB // Cells voltage - { - uint8_t x, y; - x = 3*FW; - y = 5*FH-3; + if (frskyHubData.cellsCount > 0) { + uint8_t y = 1*FH; for (uint8_t k=0; k 0 ? LEFT|LEADING0 : LEFT|LEADING0|BLINK); - // Time -#define TIME_LINE (7*FH+1) - lcd_outdezNAtt(6*FW+5, TIME_LINE, frskyHubData.hour, att, 2); - lcd_putcAtt(8*FW+2, TIME_LINE, ':', att); - lcd_outdezNAtt(9*FW+2, TIME_LINE, frskyHubData.min, att, 2); - lcd_putcAtt(11*FW-1, TIME_LINE, ':', att); - lcd_outdezNAtt(12*FW-1, TIME_LINE, frskyHubData.sec, att, 2); - lcd_filled_rect(0, TIME_LINE-1, DISPLAY_W, 8); + else if (s_frsky_view == e_frsky_gps_inflight) { + // GPS speed +#define SPEED_LINE (2*FH) + lcd_putsLeft(SPEED_LINE, STR_SPD); + putsTelemetryValue(10*FW+1, SPEED_LINE, frskyHubData.gpsSpeed_bp, UNIT_KTS, DBLSIZE); + lcd_putc(14*FW, SPEED_LINE, '>'); + putsTelemetryValue(15*FW, SPEED_LINE, frskyHubData.maxGpsSpeed, UNIT_KTS, LEFT); + // GPS altitude +#define ALTITUDE_LINE (4*FH) + displayAltitudeLine(ALTITUDE_LINE, 1/*gps*/); + + // GPS distance +#define DISTANCE_LINE (6*FH) + lcd_putsLeft(DISTANCE_LINE, STR_DST); + putsTelemetryValue(10*FW+1, DISTANCE_LINE, frskyHubData.gpsDistance, UNIT_METERS, DBLSIZE); + lcd_putc(14*FW, DISTANCE_LINE, '>'); + putsTelemetryValue(15*FW, DISTANCE_LINE, frskyHubData.maxGpsDistance, UNIT_METERS, LEFT); + + displayGpsTime(); + } + else if (s_frsky_view == e_frsky_gps_position) { // Latitude #define LAT_LINE (2*FH-4) lcd_putsLeft( LAT_LINE, PSTR("Lat:")); @@ -892,28 +937,18 @@ void menuProcFrsky(uint8_t event) lcd_outdezNAtt(lcd_lastPos+2, LONG_LINE, frskyHubData.gpsLongitude_ap, LEFT|UNSIGN|LEADING0, 4); // after '.' lcd_putc(lcd_lastPos+1, LONG_LINE, frskyHubData.gpsLongitudeEW ? frskyHubData.gpsLongitudeEW : '-'); -#if 0 +#define COURSE_LINE (4*FH-2) // Course / Heading - lcd_puts(5, 5*FH, STR_HDG); - lcd_outdezNAtt(lcd_lastPos, 5*FH, frskyHubData.gpsCourse_bp, LEFT|LEADING0, 3); // before '.' - lcd_plot(lcd_lastPos, 6*FH-2, 0); // small decimal point - lcd_outdezAtt(lcd_lastPos+2, 5*FH, frskyHubData.gpsCourse_ap, LEFT); // after '.' - lcd_putc(lcd_lastPos, 5*FH, '@'); -#endif + lcd_putsLeft(COURSE_LINE, PSTR("Hdg:")); + lcd_outdezNAtt(lcd_lastPos, COURSE_LINE, frskyHubData.gpsCourse_bp, LEFT|LEADING0, 3); // before '.' + lcd_plot(lcd_lastPos, COURSE_LINE+6, 0); // small decimal point + lcd_outdezAtt(lcd_lastPos+2, COURSE_LINE, frskyHubData.gpsCourse_ap, LEFT); // after '.' + lcd_putc(lcd_lastPos, COURSE_LINE, '@'); - // Speed -#define SPEED_LINE (6*FH) - lcd_putsLeft(SPEED_LINE, STR_SPDnMAX); - putsTelemetryValue(4*FW, SPEED_LINE, frskyHubData.gpsSpeed_bp, UNIT_KTS, LEFT|DBLSIZE); // before '.' - putsTelemetryValue(16*FW, SPEED_LINE, frskyHubData.maxGpsSpeed, UNIT_KTS, LEFT); // before '.' - - // GPS altitude and distance -#define ALTITUDE_LINE (4*FH-1) - lcd_putsLeft(ALTITUDE_LINE, STR_ALTnDST); - putsTelemetryValue(4*FW, ALTITUDE_LINE, frskyHubData.gpsAltitude_bp, UNIT_METERS, LEFT); // before '.' - putsTelemetryValue(16*FW, ALTITUDE_LINE, frskyHubData.gpsDistance, UNIT_METERS, LEFT); // before '.' + displayGpsTime(); } #endif + } else { lcd_putsAtt(22, 40, STR_NODATA, DBLSIZE); diff --git a/src/frsky.h b/src/frsky.h index 474427775..1b953cd70 100644 --- a/src/frsky.h +++ b/src/frsky.h @@ -72,7 +72,7 @@ class FrskyData: public FrskyRSSI { #if defined(FRSKY_HUB) PACK(struct FrskyHubData { int16_t baroAltitudeOffset;// spare reused - int16_t gpsAltitude_bp; // 0x01 before punct + uint16_t gpsAltitude_bp; // 0x01 before punct int16_t temperature1; // 0x02 -20 .. 250 deg. celcius uint16_t rpm; // 0x03 0..60,000 revs. per minute uint16_t fuelLevel; // 0x04 0, 25, 50, 75, 100 percent @@ -115,7 +115,10 @@ PACK(struct FrskyHubData { uint16_t volts_ap; // 0x3B // end of FrSky Hub data uint16_t gpsDistance; + uint16_t maxGpsDistance; uint16_t maxGpsSpeed; + int16_t gpsAltitudeOffset; + uint16_t maxAltitude; }); #elif defined(WS_HOW_HIGH) @@ -129,7 +132,7 @@ struct FrskyHubData { #if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) extern FrskyHubData frskyHubData; -extern uint8_t barsThresholds[BAR_MAX-3]; +extern uint8_t barsThresholds[]; #endif // Global Fr-Sky telemetry data variables diff --git a/src/logs.cpp b/src/logs.cpp index 8a4e60b1c..75805d2e8 100644 --- a/src/logs.cpp +++ b/src/logs.cpp @@ -177,7 +177,7 @@ void writeLogs() f_printf(&g_oLogFile, "%03d.%d,", frskyHubData.gpsCourse_bp, frskyHubData.gpsCourse_ap); f_printf(&g_oLogFile, "%d.%d,", frskyHubData.gpsSpeed_bp, frskyHubData.gpsSpeed_ap); f_printf(&g_oLogFile, "%03d.%d,", frskyHubData.gpsAltitude_bp, frskyHubData.gpsAltitude_ap); - f_printf(&g_oLogFile, "%d.%d,", frskyHubData.baroAltitude_bp + frskyHubData.baroAltitudeOffset, frskyHubData.baroAltitude_ap); + f_printf(&g_oLogFile, "%d.%d,", frskyHubData.baroAltitude_bp, frskyHubData.baroAltitude_ap); f_printf(&g_oLogFile, "%d,", frskyHubData.temperature1); f_printf(&g_oLogFile, "%d,", frskyHubData.temperature2); f_printf(&g_oLogFile, "%d,", frskyHubData.rpm); diff --git a/src/model_menus.cpp b/src/model_menus.cpp index a5c582eba..a8bee9509 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -2012,7 +2012,7 @@ void menuProcTelemetry(uint8_t event) if (sub==subN && (s_editMode>0 || p1valdiff)) { switch (m_posHorz) { case 0: - CHECK_INCDEC_MODELVAR(event, g_model.frsky.bars[j].source, 0, 9); // TODO enum + CHECK_INCDEC_MODELVAR(event, g_model.frsky.bars[j].source, 0, BAR_MAX-1); break; case 1: CHECK_INCDEC_MODELVAR(event, g_model.frsky.bars[j].barMin, 0, 50-g_model.frsky.bars[j].barMax); diff --git a/src/myeeprom.h b/src/myeeprom.h index 128a84f7f..a61a0c60e 100644 --- a/src/myeeprom.h +++ b/src/myeeprom.h @@ -78,6 +78,13 @@ enum MainViews { MAIN_VIEW_MAX = e_timer2 }; +enum BeeperMode { + e_mode_quiet = -2, + e_mode_alarms, + e_mode_nokeys, + e_mode_all +}; + #define ALTERNATE_VIEW 0x10 PACK(typedef struct t_EEGeneral { uint8_t myVers; @@ -94,7 +101,7 @@ PACK(typedef struct t_EEGeneral { uint8_t view; //index of subview in main scrren uint8_t disableThrottleWarning:1; int8_t switchWarning:2; // -1=down, 0=off, 1=up - int8_t beeperMode:2; // -2=quiet, -1=only alarms, 0=no keys, 1=all + int8_t beeperMode:2; uint8_t spare1:1; uint8_t disableMemoryWarning:1; uint8_t disableAlarmWarning:1; diff --git a/src/o9xstrings.cpp b/src/o9xstrings.cpp index db897b010..33849b645 100644 --- a/src/o9xstrings.cpp +++ b/src/o9xstrings.cpp @@ -189,10 +189,11 @@ const pm_char STR_BG[] PROGMEM = TR_BG; const pm_char STR_MENUTOSTART[] PROGMEM = TR_MENUTOSTART; const pm_char STR_SETMIDPOINT[] PROGMEM = TR_SETMIDPOINT; const pm_char STR_MOVESTICKSPOTS[] PROGMEM = TR_MOVESTICKSPOTS; -const pm_char STR_ALTnDST[] PROGMEM = TR_ALTnDST; const pm_char STR_RXBATT[] PROGMEM = TR_RXBATT; const pm_char STR_TX[] PROGMEM = TR_TXnRX; -const pm_char STR_SPDnMAX[] PROGMEM = TR_SPDnMAX; +const pm_char STR_SPD[] PROGMEM = TR_SPD; +const pm_char STR_ALT[] PROGMEM = TR_ALT; +const pm_char STR_DST[] PROGMEM = TR_DST; const pm_char STR_TEMP1nTEMP2[] PROGMEM = TR_TEMP1nTEMP2; const pm_char STR_RPMnFUEL[] PROGMEM = TR_RPMnFUEL; const pm_char STR_ACCEL[] PROGMEM = TR_ACCEL; diff --git a/src/o9xstrings.h b/src/o9xstrings.h index d1315f14b..9248ad5ba 100644 --- a/src/o9xstrings.h +++ b/src/o9xstrings.h @@ -269,11 +269,12 @@ extern const pm_char STR_BG[]; extern const pm_char STR_MENUTOSTART[]; extern const pm_char STR_SETMIDPOINT[]; extern const pm_char STR_MOVESTICKSPOTS[]; -extern const pm_char STR_ALTnDST[]; extern const pm_char STR_RXBATT[]; extern const pm_char STR_TX[]; #define STR_RX (STR_TX+OFS_RX) -extern const pm_char STR_SPDnMAX[]; +extern const pm_char STR_SPD[]; +extern const pm_char STR_ALT[]; +extern const pm_char STR_DST[]; extern const pm_char STR_TEMP1nTEMP2[]; extern const pm_char STR_RPMnFUEL[]; extern const pm_char STR_ACCEL[]; diff --git a/src/open9x.cpp b/src/open9x.cpp index ccfe4412f..a1f96f735 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -313,7 +313,7 @@ int16_t getValue(uint8_t i) #if defined(FRSKY) else if(iswtch, 1)) { // switch on? (if no switch selected => on) + uint8_t k = md->srcRaw-1; + if (getSwitch(md->swtch, 1)) { // switch on? (if no switch selected => on) + swTog = !swOn[i]; + swOn[i] = true; + + if (k < NUM_STICKS) + v = anas[k]; //Switch is on. MAX=FULL=512 or value. + else if (k>=MIX_CH1-1 && k<=MIX_CH16-1 && k-MIX_CH1+1destCh) // if we've already calculated the value - take it instead + v = chans[k-MIX_CH1+1] / 100; + else if (k>=MIX_THR-1 && k<=MIX_SWC-1) + v = getSwitch(k-MIX_THR+1+1, 0) ? +1024 : -1024; + else + v = getValue(k <= MIX_3POS ? k : k-MAX_SWITCH); + + if (md->mixWarn) mixWarning |= 1<<(md->mixWarn-1); // Mix warning + } + else { swTog = swOn[i]; swOn[i] = false; - continue; + + if (md->srcRaw!=MIX_MAX || md->mltpx==MLTPX_REP) continue; + v = 0; // switch is off and it is either MAX=0 or FULL=-512 } - swTog = !swOn[i]; - swOn[i] = true; - uint8_t k = md->srcRaw-1; - - if (k < NUM_STICKS) - v = anas[k]; //Switch is on. MAX=FULL=512 or value. - else if (k>=MIX_CH1-1 && k<=MIX_CH16-1 && k-MIX_CH1+1destCh) // if we've already calculated the value - take it instead - v = chans[k-MIX_CH1+1] / 100; - else if (k>=MIX_THR-1 && k<=MIX_SWC-1) - v = getSwitch(k-MIX_THR+1+1, 0) ? +1024 : -1024; - else - v = getValue(k <= MIX_3POS ? k : k-MAX_SWITCH); - - if (md->mixWarn) mixWarning |= 1<<(md->mixWarn-1); // Mix warning - //========== INPUT OFFSET =============== if(md->sOffset) v += calc100toRESX(md->sOffset); diff --git a/src/simpgmspace.cpp b/src/simpgmspace.cpp index cc1669570..ba3461406 100644 --- a/src/simpgmspace.cpp +++ b/src/simpgmspace.cpp @@ -123,11 +123,6 @@ void *main_thread(void *) while (main_thread_running) { perMain(); - -#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) - frskyHubData.baroAltitude_bp = 500; -#endif - sleep(1/*ms*/); } #ifdef SIMU_EXCEPTIONS diff --git a/src/translations/en.h b/src/translations/en.h index 864428444..28514a951 100644 --- a/src/translations/en.h +++ b/src/translations/en.h @@ -251,11 +251,12 @@ #define TR_MENUTOSTART "[MENU] TO START" #define TR_SETMIDPOINT "SET MIDPOINT" #define TR_MOVESTICKSPOTS "MOVE STICKS/POTS" -#define TR_ALTnDST "Alt:\010Dst:" #define TR_RXBATT "Rx Batt:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 -#define TR_SPDnMAX "Spd:\010Max:" +#define TR_SPD "Spd:" +#define TR_ALT "Alt:" +#define TR_DST "Dst:" #define TR_TEMP1nTEMP2 "T@1:\007T@2:" #define TR_RPMnFUEL "RPM:\006Fuel:" #define TR_ACCEL "Acc:" diff --git a/src/translations/fr.h b/src/translations/fr.h index 3a192401f..d7965810a 100644 --- a/src/translations/fr.h +++ b/src/translations/fr.h @@ -251,11 +251,12 @@ #define TR_MENUTOSTART "[MENU]POUR DEBUT" #define TR_SETMIDPOINT "SET NEUTRE" #define TR_MOVESTICKSPOTS "BOUGER MANCHES/POTS " -#define TR_ALTnDST "Alt:\010Dst:" #define TR_RXBATT "Rx Batt:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 -#define TR_SPDnMAX "Spd:\010Max:" +#define TR_SPD "Spd:" +#define TR_ALT "Alt:" +#define TR_DST "Dst:" #define TR_TEMP1nTEMP2 "T@1:\007T@2:" #define TR_RPMnFUEL "RPM:\006Fuel:" #define TR_ACCEL "Acc:" diff --git a/src/translations/se.h b/src/translations/se.h index ee56c04c4..71d699d82 100644 --- a/src/translations/se.h +++ b/src/translations/se.h @@ -251,11 +251,12 @@ #define TR_MENUTOSTART "[MENU] STARTAR" #define TR_SETMIDPOINT " CENTRERA " #define TR_MOVESTICKSPOTS "R\205R SPAKAR/RATTAR" -#define TR_ALTnDST "Hjd:\010Dst:" #define TR_RXBATT "Rx Batt:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 -#define TR_SPDnMAX "Frt:\010Max:" +#define TR_SPD "Spd:" +#define TR_ALT "Alt:" +#define TR_DST "Dst:" #define TR_TEMP1nTEMP2 "T@1:\007T@2:" #define TR_RPMnFUEL "RMP:\006Tank:" #define TR_ACCEL "Acc:"