diff --git a/radio/src/gui/horus/menu_model_telemetry.cpp b/radio/src/gui/horus/menu_model_telemetry.cpp index b17c5b6bd..75ee6a73e 100644 --- a/radio/src/gui/horus/menu_model_telemetry.cpp +++ b/radio/src/gui/horus/menu_model_telemetry.cpp @@ -424,10 +424,10 @@ bool menuModelTelemetry(evt_t event) int index = k-ITEM_TELEMETRY_SENSOR1; lcdDrawNumber(MENUS_MARGIN_LEFT+INDENT_WIDTH, y, index+1, LEFT|attr, 0, NULL, ":"); lcdDrawSizedText(60, y, g_model.telemetrySensors[index].label, TELEM_LABEL_LEN, ZCHAR); - if (telemetryItems[index].isFresh()) { + TelemetryItem & telemetryItem = telemetryItems[index]; + if (telemetryItem.isFresh()) { lcdDrawText(100, y, "*"); } - TelemetryItem & telemetryItem = telemetryItems[index]; if (telemetryItem.isAvailable()) { LcdFlags color = telemetryItem.isOld() ? ALARM_COLOR : TEXT_COLOR; putsTelemetryChannelValue(TELEM_COL2, y, index, getValue(MIXSRC_FIRST_TELEM+3*index), LEFT|color); diff --git a/radio/src/switches.cpp b/radio/src/switches.cpp index 5e93ee156..b737620d5 100644 --- a/radio/src/switches.cpp +++ b/radio/src/switches.cpp @@ -615,14 +615,24 @@ bool getSwitch(swsrc_t swtch) result = REB_DOWN(); } #endif -#if defined(CPUARM) && defined(FLIGHT_MODES) +#if defined(CPUARM) + else if (cs_idx >= SWSRC_FIRST_SENSOR) { + result = !telemetryItems[cs_idx-SWSRC_FIRST_SENSOR].isOld(); + } + else if (cs_idx == SWSRC_TELEMETRY_STREAMING) { + result = TELEMETRY_STREAMING(); + } else if (cs_idx >= SWSRC_FIRST_FLIGHT_MODE) { +#if defined(FLIGHT_MODES) uint8_t idx = cs_idx - SWSRC_FIRST_FLIGHT_MODE; if (flags & GETSWITCH_MIDPOS_DELAY) result = (idx == flightModeTransitionLast); else result = (idx == mixerCurrentFlightMode); - } +#else + result = false; +#endif + } #endif else { cs_idx -= SWSRC_FIRST_LOGICAL_SWITCH;