From 72859ad6d12ede3ba34c5205f7cea024aff2c70b Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Tue, 1 Jun 2021 06:34:57 +0200 Subject: [PATCH] WiP --- radio/src/dataconstants.h | 18 +++++++----------- radio/src/datastructs.h | 1 + radio/src/main.cpp | 3 +++ radio/src/opentx.cpp | 3 +++ radio/src/sdcard.h | 2 +- radio/src/storage/yaml/yaml_datastructs.cpp | 2 ++ .../storage/yaml/yaml_datastructs_funcs.cpp | 6 +++++- 7 files changed, 22 insertions(+), 13 deletions(-) diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index 5040b1117..b43013d3c 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -253,16 +253,10 @@ enum UartModes { UART_MODE_MAX = UART_MODE_COUNT-1 }; -#if defined(PCBHORUS) || defined(PCBNV14) - #define LEN_SWITCH_NAME 3 - #define LEN_ANA_NAME 3 - #define LEN_MODEL_FILENAME 16 - #define LEN_BLUETOOTH_NAME 10 -#else - #define LEN_SWITCH_NAME 3 - #define LEN_ANA_NAME 3 - #define LEN_BLUETOOTH_NAME 10 -#endif +#define LEN_SWITCH_NAME 3 +#define LEN_ANA_NAME 3 +#define LEN_MODEL_FILENAME 16 +#define LEN_BLUETOOTH_NAME 10 enum TelemetryProtocol { @@ -626,7 +620,7 @@ enum MixSources { MIXSRC_POT2, LUA_EXPORT("s2", "Potentiometer 2") MIXSRC_POT3, LUA_EXPORT("s3", "Potentiometer 3") MIXSRC_POT4, LUA_EXPORT("s4", "Potentiometer 4 (X9E only)") - MIXSRC_FIRST_SLIDER, + MIXSRC_FIRST_SLIDER SKIP, MIXSRC_SLIDER1 = MIXSRC_FIRST_SLIDER, LUA_EXPORT("ls", "Left slider") MIXSRC_SLIDER2, LUA_EXPORT("rs", "Right slider") MIXSRC_SLIDER3, LUA_EXPORT("lcs", "Left center slider (X9E only)") @@ -635,9 +629,11 @@ enum MixSources { #elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBNV14) MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1") MIXSRC_POT2, LUA_EXPORT("s2", "Potentiometer 2") + MIXSRC_FIRST_SLIDER SKIP = MIXSRC_POT2, MIXSRC_LAST_POT SKIP = MIXSRC_POT2, #elif defined(PCBX9LITE) MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1") + MIXSRC_FIRST_SLIDER SKIP = MIXSRC_POT1, MIXSRC_LAST_POT SKIP = MIXSRC_POT1, #elif defined(PCBTARANIS) MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1") diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index c4afe3a9d..f5ea7944d 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -780,6 +780,7 @@ PACK(struct TrainerData { swconfig_t switchConfig ARRAY(2,struct_switchConfig,nullptr); \ char switchNames[STORAGE_NUM_SWITCHES][LEN_SWITCH_NAME]; \ char anaNames[NUM_STICKS+STORAGE_NUM_POTS+STORAGE_NUM_SLIDERS][LEN_ANA_NAME]; \ + char currModelFilename[LEN_MODEL_FILENAME+1]; \ BLUETOOTH_FIELDS #else #define EXTRA_GENERAL_FIELDS diff --git a/radio/src/main.cpp b/radio/src/main.cpp index 51900b854..280d857ee 100644 --- a/radio/src/main.cpp +++ b/radio/src/main.cpp @@ -532,8 +532,11 @@ void perMain() if ((!usbPlugged() || (getSelectedUsbMode() == USB_UNSELECTED_MODE)) && !SD_CARD_PRESENT() && !globalData.unexpectedShutdown) { + // TODO: implement for b/w +#if defined(COLORLCD) drawFatalErrorScreen(STR_NO_SDCARD); return; +#endif } #endif diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 9e65c0dbc..dd48f424a 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1977,7 +1977,10 @@ int main() #if !defined(EEPROM) if (!SD_CARD_PRESENT() && !UNEXPECTED_SHUTDOWN()) { + // TODO: b/w SD card fatal screen +#if defined(COLORLCD) runFatalErrorScreen(STR_NO_SDCARD); +#endif } #endif diff --git a/radio/src/sdcard.h b/radio/src/sdcard.h index 0bd0c3133..e1ab079e0 100644 --- a/radio/src/sdcard.h +++ b/radio/src/sdcard.h @@ -54,7 +54,7 @@ #define LEN_FILE_PATH_MAX (sizeof(SCRIPTS_TELEM_PATH)+1) // longest + "/" -#if defined(COLORLCD) +#if defined(SDCARD_YAML) || defined(SDCARD_RAW) #define RADIO_FILENAME "radio.bin" const char RADIO_MODELSLIST_PATH[] = RADIO_PATH PATH_SEPARATOR "models.txt"; const char RADIO_SETTINGS_PATH[] = RADIO_PATH PATH_SEPARATOR RADIO_FILENAME; diff --git a/radio/src/storage/yaml/yaml_datastructs.cpp b/radio/src/storage/yaml/yaml_datastructs.cpp index 3db8e0398..b89a560b3 100644 --- a/radio/src/storage/yaml/yaml_datastructs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs.cpp @@ -28,6 +28,8 @@ #include "yaml_datastructs_x10.cpp" #elif defined(PCBX12S) #include "yaml_datastructs_x12s.cpp" +#elif defined(PCBX7) +#include "yaml_datastructs_x7.cpp" #else #error "Board not supported by YAML storage" #endif diff --git a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp index b9d21b662..187c69f5c 100644 --- a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp @@ -126,6 +126,7 @@ static bool w_vbat_max(const YamlNode* node, uint32_t val, yaml_writer_func wf, return wf(opaque, s, strlen(s)); } +#if defined(COLORLCD) static uint8_t select_zov(uint8_t* data, uint32_t bitoffs) { data += bitoffs >> 3UL; @@ -133,6 +134,7 @@ static uint8_t select_zov(uint8_t* data, uint32_t bitoffs) ZoneOptionValueEnum* p_zovt = (ZoneOptionValueEnum*)data; return *p_zovt; } +#endif static uint8_t select_mod_type(uint8_t* data, uint32_t bitoffs) { @@ -144,13 +146,13 @@ static uint8_t select_mod_type(uint8_t* data, uint32_t bitoffs) case MODULE_TYPE_PPM: case MODULE_TYPE_DSM2: case MODULE_TYPE_CROSSFIRE: + case MODULE_TYPE_GHOST: return 1; case MODULE_TYPE_MULTIMODULE: return 2; case MODULE_TYPE_XJT_PXX1: case MODULE_TYPE_R9M_PXX1: case MODULE_TYPE_R9M_LITE_PXX1: - //case MODULE_TYPE_R9M_LITE_PRO_PXX1: return 3; case MODULE_TYPE_SBUS: return 4; @@ -160,6 +162,8 @@ static uint8_t select_mod_type(uint8_t* data, uint32_t bitoffs) case MODULE_TYPE_R9M_LITE_PRO_PXX2: case MODULE_TYPE_XJT_LITE_PXX2: return 5; + case MODULE_TYPE_AFHDS3: + return 7; } return 0; }