From 9c5d2d995eed08d548f5451d43b491c52e2e02c6 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 11 Dec 2019 13:08:33 +0100 Subject: [PATCH] Hardware screen review started --- radio/src/gui/colorlcd/radio_hardware.cpp | 61 ++++++++++++++++------- radio/src/opentx.h | 1 + radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/untranslated.h | 3 ++ 5 files changed, 49 insertions(+), 18 deletions(-) diff --git a/radio/src/gui/colorlcd/radio_hardware.cpp b/radio/src/gui/colorlcd/radio_hardware.cpp index 1a1888efa..6961c957c 100644 --- a/radio/src/gui/colorlcd/radio_hardware.cpp +++ b/radio/src/gui/colorlcd/radio_hardware.cpp @@ -143,30 +143,55 @@ void RadioHardwarePage::build(FormWindow * window) grid.setLabelWidth(130); #endif + // Bat calibration + new StaticText(window, grid.getLabelSlot(), STR_BATT_CALIB); + auto batCal = new NumberEdit(window, grid.getFieldSlot(), -127, 127, GET_SET_DEFAULT(g_eeGeneral.txVoltageCalibration)); + batCal->setDisplayHandler([](BitmapBuffer * dc, LcdFlags flags, int32_t value) { + dc->drawNumber(2, 0, getBatteryVoltage(), flags | PREC2, 0, nullptr, "V"); + }); + batCal->setWindowFlags(REFRESH_ALWAYS); + grid.nextLine(); + + // RTC Batt display + new StaticText(window, grid.getLabelSlot(), STR_RTC_BATT); + div_t qr = div(getRTCBatteryVoltage(), 100); + //sprintf(reusableBuffer.hardwareAndSettings.msg, "%d.%02d V", qr.quot, qr.rem); + char * tmp; + tmp = strAppendUnsigned(reusableBuffer.hardwareAndSettings.msg, qr.quot); + tmp = strAppend(tmp,".",1); + tmp = strAppendUnsigned(tmp, qr.rem, 2); + tmp = strAppend(tmp, " V", 2); + auto rtc = new StaticText(window, grid.getFieldSlot(), reusableBuffer.hardwareAndSettings.msg); + rtc->setWindowFlags(REFRESH_ALWAYS); + grid.nextLine(); + + // RTC Batt check enable + new StaticText(window, grid.getLabelSlot(), STR_RTC_CHECK); + new CheckBox(window, grid.getFieldSlot(), GET_SET_INVERTED(g_eeGeneral.disableRtcWarning )); + grid.nextLine(); + +#if defined(CROSSFIRE) && SPORT_MAX_BAUDRATE < 400000 + // Max baud for external modules + new StaticText(window, grid.getLabelSlot(), STR_MAXBAUDRATE); + new Choice(window, grid.getFieldSlot(1,0), STR_CRSF_BAUDRATE, 0, 1, GET_SET_DEFAULT(g_eeGeneral.telemetryBaudrate)); + grid.nextLine(); +#endif + // ADC filter new StaticText(window, grid.getLabelSlot(), STR_JITTER_FILTER); new CheckBox(window, grid.getFieldSlot(), GET_SET_INVERTED(g_eeGeneral.jitterFilter)); grid.nextLine(); - // Bat calibration - new StaticText(window, grid.getLabelSlot(), STR_BATT_CALIB); - auto batCal = new NumberEdit(window, grid.getFieldSlot(), -127, 127, GET_SET_DEFAULT(g_eeGeneral.txVoltageCalibration)); - batCal->setDisplayHandler([](BitmapBuffer * dc, LcdFlags flags, int32_t value) { - dc->drawNumber(2, 0, getBatteryVoltage(), flags | PREC2, 0, nullptr, "V"); + // Debugs + new StaticText(window, grid.getLabelSlot(), STR_DEBUG, 0, FONT(BOLD)); + auto analogs = new TextButton(window, grid.getFieldSlot(2, 0), STR_ANALOGS_BTN); + analogs->setPressHandler([=]() -> uint8_t { + //TODO + }); + auto keys = new TextButton(window, grid.getFieldSlot(2, 1), STR_KEYS_BTN); + keys->setPressHandler([=]() -> uint8_t { + //TODO }); - batCal->setWindowFlags(REFRESH_ALWAYS); - grid.nextLine(); - - // Factory reset - new TextButton(window, grid.getFieldSlot(), STR_FACTORYRESET, - [=]() -> int8_t { - new FullScreenDialog(WARNING_TYPE_CONFIRM, STR_CONFIRMRESET, STR_POPUPS_ENTER_EXIT, "", [=]() { - storageEraseAll(false); - NVIC_SystemReset(); - return 0; - }); - return 0; - }); grid.nextLine(); window->setInnerHeight(grid.getWindowHeight()); diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 73ff80ac8..421f986e4 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -1158,6 +1158,7 @@ union ReusableBuffer uint32_t updateTime; ModuleSettings moduleSettings; ReceiverSettings receiverSettings; // when dealing with receiver settings, we also need module settings + char msg[64]; } hardwareAndSettings; // moduleOptions, receiverOptions, radioVersion struct { diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 2cd99c799..f09d4cccd 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -80,6 +80,7 @@ ISTR(SWTYPES); ISTR(POTTYPES); ISTR(SLIDERTYPES); ISTR(ANTENNA_MODES); +ISTR(CRSF_BAUDRATE); #if defined(PCBSKY9X) && defined(REVX) ISTR(VOUTPUT_TYPE); diff --git a/radio/src/translations.h b/radio/src/translations.h index f6c82bb85..0d0d1a04d 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -167,6 +167,7 @@ extern const char STR_ISRM_RF_PROTOCOLS[]; extern const char STR_R9M_PXX2_RF_PROTOCOLS[]; extern const char STR_DSM_PROTOCOLS[]; extern const char STR_FLYSKY_PROTOCOLS[]; +extern const char STR_CRSF_BAUDRATE[]; #if defined(MULTIMODULE) extern const char STR_MULTI_PROTOCOLS[]; diff --git a/radio/src/translations/untranslated.h b/radio/src/translations/untranslated.h index 45630a580..c86d2dcd5 100644 --- a/radio/src/translations/untranslated.h +++ b/radio/src/translations/untranslated.h @@ -81,6 +81,9 @@ #define TR_VSRCRAW "---\0" TR_STICKS_VSRCRAW TR_POTS_VSRCRAW TR_ROTARY_ENCODERS TR_GYR_VSRCRAW "MAX\0" TR_CYC_VSRCRAW TR_TRIMS_VSRCRAW TR_SW_VSRCRAW TR_EXTRA_VSRCRAW +#define LEN_CRSF_BAUDRATE "\004" +#define TR_CRSF_BAUDRATE "115k""400k" + #if defined(MODULE_PROTOCOL_FLEX) #define TR_MODULE_R9M_LITE "R9ML\0 " #else