diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index 1d92553cd..dfdcae256 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -145,7 +145,9 @@ const SwitchInfo Boards::getSwitchInfo(Board::Type board, unsigned index) if (IS_TARANIS_XLITE(board)) { const Board::SwitchInfo switches[] = { {SWITCH_3POS, "SA"}, - {SWITCH_3POS, "SB"} + {SWITCH_3POS, "SB"}, + {SWITCH_2POS, "SC"}, + {SWITCH_2POS, "SD"} }; if (index < DIM(switches)) return switches[index]; @@ -252,7 +254,7 @@ const int Boards::getCapability(Board::Type board, Board::Capability capability) else if (IS_TARANIS_X7(board)) return 6; else if (IS_TARANIS_XLITE(board)) - return 2; + return 4; else if (IS_HORUS_OR_TARANIS(board)) return 8; else @@ -273,8 +275,6 @@ const int Boards::getCapability(Board::Type board, Board::Capability capability) case NumTrims: if (IS_HORUS(board)) return 6; - else if (IS_TARANIS_XLITE(board)) - return 2; else return 4; diff --git a/companion/src/firmwares/eeprominterface.h b/companion/src/firmwares/eeprominterface.h index d7ce033db..ee83fa7b7 100644 --- a/companion/src/firmwares/eeprominterface.h +++ b/companion/src/firmwares/eeprominterface.h @@ -341,6 +341,7 @@ class Firmware { return registeredFirmwares; } + static void addRegisteredFirmware(Firmware * fw) { registeredFirmwares.append(fw); @@ -359,6 +360,7 @@ class Firmware { return currentVariant; } + static void setCurrentVariant(Firmware * value) { currentVariant = value; diff --git a/companion/src/firmwares/generalsettings.cpp b/companion/src/firmwares/generalsettings.cpp index dd65853bc..ec3c0bf97 100644 --- a/companion/src/firmwares/generalsettings.cpp +++ b/companion/src/firmwares/generalsettings.cpp @@ -87,11 +87,16 @@ GeneralSettings::GeneralSettings() vBatMax = -5; //11,5V } else if (IS_HORUS_X10(board)) { - // Lipo 2V + // Lipo 2S vBatWarn = 66; vBatMin = -28; // 6.2V vBatMax = -38; // 8.2V } + else if (IS_TARANIS_XLITE(board)) { + vBatWarn = 66; + vBatMin = -23; // 6.7V + vBatMax = -37; // 8.3V + } else if (IS_TARANIS(board)) { // NI-MH 7.2V, X9D, X9D+ and X7 vBatWarn = 65; @@ -237,7 +242,11 @@ void GeneralSettings::setDefaultControlTypes(Board::Type board) potConfig[1] = Board::POT_MULTIPOS_SWITCH; potConfig[2] = Board::POT_WITH_DETENT; } - else if (IS_TARANIS_SMALL(board)) { + else if (IS_TARANIS_XLITE(board)) { + potConfig[0] = Board::POT_WITHOUT_DETENT; + potConfig[1] = Board::POT_WITHOUT_DETENT; + } + else if (IS_TARANIS_X7(board)) { potConfig[0] = Board::POT_WITHOUT_DETENT; potConfig[1] = Board::POT_WITH_DETENT; } diff --git a/companion/src/firmwares/opentx/opentxeeprom.h b/companion/src/firmwares/opentx/opentxeeprom.h index 48fac923e..35c571787 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.h +++ b/companion/src/firmwares/opentx/opentxeeprom.h @@ -32,7 +32,7 @@ #define M128_VARIANT 0x8000 #define TARANIS_X9E_VARIANT 0x8000 #define TARANIS_X7_VARIANT 0x4000 -#define TARANIS_XLITE_VARIANT 0x4000 +#define TARANIS_XLITE_VARIANT 0x2000 #define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT) #define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS) diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 0a9fd61f6..570e802f4 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -1192,9 +1192,9 @@ void registerOpenTxFirmwares() registerOpenTxFirmware(firmware); /* FrSky X-Lite board */ - // firmware = new OpenTxFirmware("opentx-xlite", QCoreApplication::translate("Firmware", "FrSky Taranis X-Lite"), BOARD_TARANIS_XLITE); - // addOpenTxTaranisOptions(firmware); - // registerOpenTxFirmware(firmware); + firmware = new OpenTxFirmware("opentx-xlite", QCoreApplication::translate("Firmware", "FrSky Taranis X-Lite"), BOARD_TARANIS_XLITE); + addOpenTxTaranisOptions(firmware); + registerOpenTxFirmware(firmware); /* FrSky X10 board */ firmware = new OpenTxFirmware("opentx-x10", QCoreApplication::translate("Firmware", "FrSky Horus X10 / X10S"), BOARD_X10); diff --git a/companion/src/simulation/simulatorwidget.cpp b/companion/src/simulation/simulatorwidget.cpp index 121c492a7..b329e1305 100644 --- a/companion/src/simulation/simulatorwidget.cpp +++ b/companion/src/simulation/simulatorwidget.cpp @@ -69,20 +69,21 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato setWindowTitle(windowName); switch(m_board) { - case Board::BOARD_TARANIS_X7 : + case Board::BOARD_TARANIS_X7: + case Board::BOARD_TARANIS_XLITE: radioUiWidget = new SimulatedUIWidgetX7(simulator, this); break; - case Board::BOARD_TARANIS_X9D : - case Board::BOARD_TARANIS_X9DP : + case Board::BOARD_TARANIS_X9D: + case Board::BOARD_TARANIS_X9DP: radioUiWidget = new SimulatedUIWidgetX9(simulator, this); break; - case Board::BOARD_TARANIS_X9E : + case Board::BOARD_TARANIS_X9E: radioUiWidget = new SimulatedUIWidgetX9E(simulator, this); break; - case Board::BOARD_X12S : + case Board::BOARD_X12S: radioUiWidget = new SimulatedUIWidgetX12(simulator, this); break; - case Board::BOARD_X10 : + case Board::BOARD_X10: radioUiWidget = new SimulatedUIWidgetX10(simulator, this); break; default: diff --git a/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/delta.lua b/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/delta.lua index fc0c7ba87..2b0b5f5bf 100755 --- a/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/delta.lua +++ b/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/delta.lua @@ -52,10 +52,10 @@ end local function fieldIncDec(event, value, max, force) if edit or force==true then - if event == EVT_ROT_RIGHT then + if event == EVT_ROT_LEFT or event == EVT_UP_BREAK then value = (value + max) dirty = true - elseif event == EVT_ROT_LEFT then + elseif event == EVT_ROT_RIGHT or event == EVT_DOWN_BREAK then value = (value + max + 2) dirty = true end @@ -66,12 +66,12 @@ end local function valueIncDec(event, value, min, max) if edit then - if event == EVT_ROT_RIGHT or event == EVT_ROT_RIGHT then + if event == EVT_ROT_RIGHT or event == EVT_RIGHT_BREAK then if value < max then value = (value + 1) dirty = true end - elseif event == EVT_ROT_LEFT or event == EVT_ROT_LEFT then + elseif event == EVT_ROT_LEFT or event == EVT_LEFT_BREAK then if value > min then value = (value - 1) dirty = true @@ -88,16 +88,16 @@ local function navigate(event, fieldMax, prevPage, nextPage) elseif edit then if event == EVT_EXIT_BREAK then edit = false - dirty = true + dirty = true elseif not dirty then dirty = blinkChanged() end else - if event == EVT_PAGE_BREAK then + if event == EVT_PAGE_BREAK or event==EVT_SHIFT_BREAK then page = nextPage field = 0 dirty = true - elseif event == EVT_PAGE_LONG then + elseif event == EVT_PAGE_LONG or event==EVT_SHIFT_LONG then page = prevPage field = 0 killEvents(event); @@ -140,7 +140,7 @@ end -- Engine Menu local engineModeItems = {"No", "Yes"} local function drawEngineMenu() - lcd.clear() + lcd.clear() if engineMode == 0 then -- No engine fieldsMax = 0 @@ -177,7 +177,7 @@ local function drawElevonsMenu() lcd.clear() lcd.drawText(1, 0, "Select elevon channnels", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, elevonsModeItems, elevonsMode, 0) + lcd.drawCombobox(0, 8, LCD_W, elevonsModeItems, elevonsMode, 0) lcd.drawText(5, 30, "Assign channels", 0); lcd.drawText(30, 40, "L", 0); lcd.drawText(65, 40, "R", 0); @@ -219,7 +219,7 @@ local function drawRudderMenu() end lcd.drawText(1, 0, "Got a rudder?", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, rudderModeItems, rudderMode, getFieldFlags(0)) + lcd.drawCombobox(0, 8, LCD_W, rudderModeItems, rudderMode, getFieldFlags(0)) end local function rudderMenu(event) @@ -227,7 +227,7 @@ local function rudderMenu(event) dirty = false drawRudderMenu() end - + navigate(event, fieldsMax, page-1, page+1) if field==0 then @@ -252,7 +252,7 @@ local function drawServoMenu(limits) else lcd.drawText(129, 50, "\127", getFieldFlags(3)); end - fieldsMax = 3 + fieldsMax = 3 end local function servoMenu(event) @@ -288,7 +288,7 @@ local function addMix(channel, input, name, weight, index) if weight ~= nil then mix.weight = weight end - if index == nil then + if index == nil then index = 0 end model.insertMix(channel, index, mix) @@ -296,7 +296,7 @@ end local function applySettings() model.defaultInputs() - model.deleteMixes() + model.deleteMixes() if engineMode == 1 then addMix(thrCH1, MIXSRC_FIRST_INPUT+defaultChannel(2), "Engine") end @@ -346,7 +346,7 @@ local function confirmationMenu(event) end navigate(event, fieldsMax, RUDDER_PAGE, page) - + if event == EVT_EXIT_BREAK then return 2 elseif event == EVT_ENTER_LONG then @@ -366,7 +366,7 @@ local function run(event) end if servoPage ~= nil then - servoMenu(event) + servoMenu(event) elseif page == ENGINE_PAGE then engineMenu(event) elseif page == ELEVONS_PAGE then diff --git a/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/multi.lua b/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/multi.lua index ee69d3e98..d4d53b974 100755 --- a/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/multi.lua +++ b/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/multi.lua @@ -50,10 +50,10 @@ end local function fieldIncDec(event, value, max, force) if edit or force==true then - if event == EVT_ROT_RIGHT then + if event == EVT_ROT_RIGHT or event == EVT_UP_BREAK then value = (value + max) dirty = true - elseif event == EVT_ROT_LEFT then + elseif event == EVT_ROT_LEFT or event == EVT_DOWN_BREAK then value = (value + max + 2) dirty = true end @@ -64,12 +64,12 @@ end local function valueIncDec(event, value, min, max) if edit then - if event == EVT_ROT_RIGHT or event == EVT_ROT_RIGHT then + if event == EVT_ROT_RIGHT or event == EVT_RIGHT_BREAK then if value < max then value = (value + 1) dirty = true end - elseif event == EVT_ROT_LEFT or event == EVT_ROT_LEFT then + elseif event == EVT_ROT_LEFT or event == EVT_LEFT_BREAK then if value > min then value = (value - 1) dirty = true @@ -86,16 +86,16 @@ local function navigate(event, fieldMax, prevPage, nextPage) elseif edit then if event == EVT_EXIT_BREAK then edit = false - dirty = true + dirty = true elseif not dirty then dirty = blinkChanged() end else - if event == EVT_PAGE_BREAK then + if event == EVT_PAGE_BREAK or event==EVT_SHIFT_BREAK then page = nextPage field = 0 dirty = true - elseif event == EVT_PAGE_LONG then + elseif event == EVT_PAGE_LONG or event==EVT_SHIFT_LONG then page = prevPage field = 0 killEvents(event); @@ -140,7 +140,7 @@ local function drawThrottleMenu() lcd.clear() lcd.drawText(1, 0, "Multicopter", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, {"Throttle"}, comboBoxMode, getFieldFlags(1)) + lcd.drawCombobox(0, 8, LCD_W, {"Throttle"}, comboBoxMode, getFieldFlags(1)) lcd.drawText(5, 30, "Assign channel", 0); lcd.drawText(5, 40, ">>>", 0); lcd.drawSource(25, 40, MIXSRC_CH1+thrCH1, getFieldFlags(0)) @@ -161,7 +161,7 @@ local function drawRollMenu() lcd.clear() lcd.drawText(1, 0, "Multicopter", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, {"Roll"}, comboBoxMode, getFieldFlags(1)) + lcd.drawCombobox(0, 8, LCD_W, {"Roll"}, comboBoxMode, getFieldFlags(1)) lcd.drawText(5, 30, "Assign channel", 0); lcd.drawText(5, 40, ">>>", 0); lcd.drawSource(25, 40, MIXSRC_CH1+rollCH1, getFieldFlags(0)) @@ -182,7 +182,7 @@ local function drawPitchMenu() lcd.clear() lcd.drawText(1, 0, "Multicopter", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, {"Pitch"}, comboBoxMode, getFieldFlags(1)) + lcd.drawCombobox(0, 8, LCD_W, {"Pitch"}, comboBoxMode, getFieldFlags(1)) lcd.drawText(5, 30, "Assign channel", 0); lcd.drawText(5, 40, ">>>", 0); lcd.drawSource(25, 40, MIXSRC_CH1+pitchCH1, getFieldFlags(0)) @@ -203,7 +203,7 @@ local function drawYawMenu() lcd.clear() lcd.drawText(1, 0, "Multicopter", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, {"Yaw"}, comboBoxMode, getFieldFlags(1)) + lcd.drawCombobox(0, 8, LCD_W, {"Yaw"}, comboBoxMode, getFieldFlags(1)) lcd.drawText(5, 30, "Assign channel", 0); lcd.drawText(5, 40, ">>>", 0); lcd.drawSource(25, 40, MIXSRC_CH1+yawCH1, getFieldFlags(0)) @@ -251,7 +251,7 @@ local function addMix(channel, input, name, weight, index) if weight ~= nil then mix.weight = weight end - if index == nil then + if index == nil then index = 0 end model.insertMix(channel, index, mix) @@ -259,7 +259,7 @@ end local function applySettings() model.defaultInputs() - model.deleteMixes() + model.deleteMixes() addMix(thrCH1, MIXSRC_FIRST_INPUT+defaultChannel(2), "Engine") addMix(rollCH1, MIXSRC_FIRST_INPUT+defaultChannel(3), "Roll") addMix(yawCH1, MIXSRC_FIRST_INPUT+defaultChannel(0), "Yaw") diff --git a/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/plane.lua b/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/plane.lua index 16cd03ddd..e04d35aef 100755 --- a/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/plane.lua +++ b/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/plane.lua @@ -62,10 +62,10 @@ end local function fieldIncDec(event, value, max, force) if edit or force==true then - if event == EVT_ROT_LEFT then + if event == EVT_ROT_LEFT or event == EVT_UP_BREAK then value = (value + max) dirty = true - elseif event == EVT_ROT_RIGHT then + elseif event == EVT_ROT_RIGHT or event == EVT_DOWN_BREAK then value = (value + max + 2) dirty = true end @@ -76,12 +76,12 @@ end local function valueIncDec(event, value, min, max) if edit then - if event == EVT_ROT_LEFT or event == EVT_ROT_LEFT then + if event == EVT_ROT_RIGHT or event == EVT_RIGHT_BREAK then if value < max then value = (value + 1) dirty = true end - elseif event == EVT_ROT_RIGHT or event == EVT_ROT_RIGHT then + elseif event == EVT_ROT_LEFT or event == EVT_LEFT_BREAK then if value > min then value = (value - 1) dirty = true @@ -98,16 +98,16 @@ local function navigate(event, fieldMax, prevPage, nextPage) elseif edit then if event == EVT_EXIT_BREAK then edit = false - dirty = true + dirty = true elseif not dirty then dirty = blinkChanged() end else - if event == EVT_PAGE_BREAK then + if event == EVT_PAGE_BREAK or event==EVT_SHIFT_BREAK then page = nextPage field = 0 dirty = true - elseif event == EVT_PAGE_LONG then + elseif event == EVT_PAGE_LONG or event==EVT_SHIFT_LONG then page = prevPage field = 0 killEvents(event); @@ -163,7 +163,7 @@ local function drawEngineMenu() end lcd.drawText(1, 0, "Got an engine?", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, engineModeItems, engineMode, getFieldFlags(0)) + lcd.drawCombobox(0, 8, LCD_W, engineModeItems, engineMode, getFieldFlags(0)) end local function engineMenu(event) @@ -206,7 +206,7 @@ local function drawAileronsMenu() end lcd.drawText(1, 0, "Got ailerons?", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, aileronsModeItems, aileronsMode, getFieldFlags(0)) + lcd.drawCombobox(0, 8, LCD_W, aileronsModeItems, aileronsMode, getFieldFlags(0)) end local function aileronsMenu(event) @@ -251,7 +251,7 @@ local function drawFlapsMenu() end lcd.drawText(1, 0, "Got flaps?", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, flapsModeItems, flapsMode, getFieldFlags(0)) + lcd.drawCombobox(0, 8, LCD_W, flapsModeItems, flapsMode, getFieldFlags(0)) end local function flapsMenu(event) @@ -296,7 +296,7 @@ local function drawBrakesMenu() end lcd.drawText(1, 0, "Got air brakes?", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, brakesModeItems, brakesMode, getFieldFlags(0)) + lcd.drawCombobox(0, 8, LCD_W, brakesModeItems, brakesMode, getFieldFlags(0)) end local function brakesMenu(event) @@ -313,7 +313,7 @@ local function brakesMenu(event) brakesCH1 = channelIncDec(event, brakesCH1) elseif field==2 then brakesCH2 = channelIncDec(event, brakesCH2) - end + end end -- Tail Menu @@ -358,7 +358,7 @@ local function drawTailMenu() end lcd.drawText(1, 0, "Tail config", 0) lcd.drawFilledRectangle(0, 0, LCD_W, 8, FILL_WHITE) - lcd.drawCombobox(0, 8, LCD_W, tailModeItems, tailMode, getFieldFlags(0)) + lcd.drawCombobox(0, 8, LCD_W, tailModeItems, tailMode, getFieldFlags(0)) end local function tailMenu(event) @@ -377,7 +377,7 @@ local function tailMenu(event) rudCH1 = channelIncDec(event, rudCH1) elseif field==2 then eleCH2 = channelIncDec(event, eleCH2) - end + end end -- Servo (limits) Menu @@ -396,7 +396,7 @@ local function drawServoMenu(limits) else lcd.drawText(129, 50, "\127", getFieldFlags(3)); end - fieldsMax = 3 + fieldsMax = 3 end local function servoMenu(event) @@ -487,7 +487,7 @@ local function addMix(channel, input, name, weight, index) if weight ~= nil then mix.weight = weight end - if index == nil then + if index == nil then index = 0 end model.insertMix(channel, index, mix) @@ -495,7 +495,7 @@ end local function applySettings() model.defaultInputs() - model.deleteMixes() + model.deleteMixes() if engineMode > 0 then addMix(thrCH1, MIXSRC_FIRST_INPUT+defaultChannel(2), "Engine") end @@ -561,7 +561,7 @@ local function run(event) end if servoPage ~= nil then - servoMenu(event) + servoMenu(event) elseif page == ENGINE_PAGE then engineMenu(event) elseif page == AILERONS_PAGE then diff --git a/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/wizard.lua b/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/wizard.lua index 6847a417d..513ce253a 100755 --- a/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/wizard.lua +++ b/radio/sdcard/taranis-x7/SCRIPTS/WIZARD/wizard.lua @@ -25,10 +25,10 @@ local MODELTYPE_QUAD = 2 -- Common functions local function fieldIncDec(event, value, max) - if event == EVT_ROT_LEFT then + if event == EVT_ROT_LEFT or event == EVT_UP_BREAK then value = (value + max) dirty = true - elseif event == EVT_ROT_RIGHT then + elseif event == EVT_ROT_RIGHT or event == EVT_DOWN_BREAK then value = (value + max + 2) dirty = true end @@ -80,13 +80,13 @@ local function run(event) if event == nil then error("Cannot be run as a model script!") end - + if event == EVT_EXIT_BREAK then return 2 end - - return modelTypeMenu(event) + + return modelTypeMenu(event) end return { run=run } diff --git a/radio/sdcard/taranis-x7/SxR/SxR.lua b/radio/sdcard/taranis-x7/SxR/SxR.lua index 9f0340c47..2238648f0 100644 --- a/radio/sdcard/taranis-x7/SxR/SxR.lua +++ b/radio/sdcard/taranis-x7/SxR/SxR.lua @@ -212,15 +212,15 @@ local function runFieldsPage(event) end end elseif edit then - if event == EVT_PLUS_FIRST or event == EVT_ROT_RIGHT or event == EVT_PLUS_REPT then + if event == EVT_PLUS_FIRST or event == EVT_ROT_RIGHT or event == EVT_PLUS_REPT or event == EVT_RIGHT_BREAK then addField(1) - elseif event == EVT_MINUS_FIRST or event == EVT_ROT_LEFT or event == EVT_MINUS_REPT then + elseif event == EVT_MINUS_FIRST or event == EVT_ROT_LEFT or event == EVT_MINUS_REPT or event == EVT_LEFT_BREAK then addField(-1) end else - if event == EVT_MINUS_FIRST or event == EVT_ROT_RIGHT then + if event == EVT_MINUS_FIRST or event == EVT_ROT_RIGHT or event == EVT_DOWN_BREAK then selectField(1) - elseif event == EVT_PLUS_FIRST or event == EVT_ROT_LEFT then + elseif event == EVT_PLUS_FIRST or event == EVT_ROT_LEFT or event == EVT_UP_BREAK then selectField(-1) end end @@ -262,9 +262,9 @@ local function run(event) if event == nil then error("Cannot be run as a model script!") return 2 - elseif event == EVT_PAGE_BREAK then + elseif event == EVT_PAGE_BREAK or event==EVT_SHIFT_BREAK then selectPage(1) - elseif event == EVT_PAGE_LONG then + elseif event == EVT_PAGE_LONG or event==EVT_SHIFT_LONG then killEvents(event); selectPage(-1) end diff --git a/radio/sdcard/taranis-x7/SxR/SxR_Calibrate.lua b/radio/sdcard/taranis-x7/SxR/SxR_Calibrate.lua index 58a053406..2ff6a77aa 100644 --- a/radio/sdcard/taranis-x7/SxR/SxR_Calibrate.lua +++ b/radio/sdcard/taranis-x7/SxR/SxR_Calibrate.lua @@ -196,15 +196,15 @@ local function runFieldsPage(event) end end elseif edit then - if event == EVT_PLUS_FIRST or event == EVT_ROT_RIGHT or event == EVT_PLUS_REPT then + if event == EVT_PLUS_FIRST or event == EVT_ROT_RIGHT or event == EVT_PLUS_REPT or event == EVT_DOWN_BREAK then addField(1) - elseif event == EVT_MINUS_FIRST or event == EVT_ROT_LEFT or event == EVT_MINUS_REPT then + elseif event == EVT_MINUS_FIRST or event == EVT_ROT_LEFT or event == EVT_MINUS_REPT or event == EVT_UP_BREAK then addField(-1) end else - if event == EVT_MINUS_FIRST or event == EVT_ROT_LEFT then + if event == EVT_MINUS_FIRST or event == EVT_ROT_LEFT or event == EVT_UP_BREAK then selectField(1) - elseif event == EVT_PLUS_FIRST or event == EVT_ROT_RIGHT then + elseif event == EVT_PLUS_FIRST or event == EVT_ROT_RIGHT or event == EVT_DOWN_BREAK then selectField(-1) end end @@ -284,9 +284,9 @@ local function run(event) if event == nil then error("Cannot be run as a model script!") return 2 - elseif event == EVT_PAGE_BREAK then + elseif event == EVT_PAGE_BREAK or event==EVT_SHIFT_BREAK then selectPage(1) - elseif event == EVT_PAGE_LONG then + elseif event == EVT_PAGE_LONG or event==EVT_SHIFT_LONG then killEvents(event); selectPage(-1) end diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 346999fd7..e7a9301fa 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -20,7 +20,7 @@ set_property(CACHE FONT PROPERTY STRINGS SQT5) option(HELI "Heli menu" ON) option(FLIGHT_MODES "Flight Modes" ON) option(CURVES "Curves" ON) -option(GVARS "Global variables" OFF) +option(GVARS "Global variables" ON) option(GUI "GUI enabled" ON) option(PPM_CENTER_ADJUSTABLE "PPM center adjustable" ON) option(PPM_LIMITS_SYMETRICAL "PPM limits symetrical" OFF) @@ -35,6 +35,7 @@ option(WATCHDOG_DISABLED "Disable hardware Watchdog" OFF) if(SDL_FOUND) option(SIMU_AUDIO "Enable simulator audio." ON) endif() +option(LUA "Enable LUA support" ON) option(SIMU_DISKIO "Enable disk IO simulation in simulator. Simulator will use FatFs module and simulated IO layer that uses \"./sdcard.image\" file as image of SD card. This file must contain whole SD card from first to last sector" OFF) option(SIMU_LUA_COMPILER "Pre-compile and save Lua scripts in simulator." ON) option(FAS_PROTOTYPE "Support of old FAS prototypes (different resistors)" OFF) @@ -45,7 +46,6 @@ option(TRACE_LUA_INTERNALS "Turn on traces for Lua internals" OFF) option(FRSKY_STICKS "Reverse sticks for FrSky sticks" OFF) option(NANO "Use nano newlib and binalloc") option(NIGHTLY_BUILD_WARNING "Warn this is a nightly build" OFF) -option(USEHORUSBT "X9E BT module replaced by Horus BT module" OFF) # since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags. set(FIRMWARE_C_FLAGS "" CACHE STRING "Additional flags for firmware target c compiler (note: all CMAKE_C_FLAGS[_*] are ignored for firmware/bootloader).") @@ -352,10 +352,6 @@ if(NIGHTLY_BUILD_WARNING) add_definitions(-DNIGHTLY_BUILD_WARNING) endif(NIGHTLY_BUILD_WARNING) -if(USEHORUSBT) - add_definitions(-DUSEHORUSBT) -endif(USEHORUSBT) - set(SRC ${SRC} opentx.cpp diff --git a/radio/src/bluetooth.cpp b/radio/src/bluetooth.cpp index fc1f14fdc..8a5c3c948 100644 --- a/radio/src/bluetooth.cpp +++ b/radio/src/bluetooth.cpp @@ -20,7 +20,7 @@ #include "opentx.h" -#if defined(PCBX7) || defined(PCBHORUS) || defined(USEHORUSBT) +#if defined(PCBHORUS) || defined(PCBX7) || defined(PCBXLITE) || defined(USEHORUSBT) #define BLUETOOTH_COMMAND_NAME "AT+NAME" #define BLUETOOTH_ANSWER_NAME "OK+" #define BLUETOOTH_COMMAND_BAUD_115200 "AT+BAUD115200" diff --git a/radio/src/bluetooth.h b/radio/src/bluetooth.h index d61506dda..0c3d8dddd 100644 --- a/radio/src/bluetooth.h +++ b/radio/src/bluetooth.h @@ -42,10 +42,13 @@ enum BluetoothStates { BLUETOOTH_STATE_DISCONNECTED, }; -#define LEN_BLUETOOTH_ADDR 16 +#define LEN_BLUETOOTH_ADDR 16 -#if defined(PCBX7) || defined(PCBXLITE) +#if defined(PCBX7) extern uint8_t btChipPresent; +#define IS_BLUETOOTH_CHIP_PRESENT() (btChipPresent) +#else +#define IS_BLUETOOTH_CHIP_PRESENT() (true) #endif extern volatile uint8_t bluetoothState; diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index 916567281..01a04dc62 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -188,20 +188,6 @@ enum CurveType { #define NUM_ROTARY_ENCODERS 0 #endif -#if defined(PCBX10) - #define NUM_TRIMS (NUM_STICKS + 2) - #define NUM_MOUSE_ANALOGS 2 - #define NUM_DUMMY_ANAS 2 -#elif defined(PCBHORUS) - #define NUM_TRIMS (NUM_STICKS + 2) - #define NUM_MOUSE_ANALOGS 2 - #define NUM_DUMMY_ANAS 0 -#else - #define NUM_TRIMS NUM_STICKS - #define NUM_MOUSE_ANALOGS 0 - #define NUM_DUMMY_ANAS 0 -#endif - #if defined(COLORLCD) enum MainViews { VIEW_BLANK, diff --git a/radio/src/gui/128x64/lcd.cpp b/radio/src/gui/128x64/lcd.cpp index a529b94df..277bd62eb 100644 --- a/radio/src/gui/128x64/lcd.cpp +++ b/radio/src/gui/128x64/lcd.cpp @@ -1607,7 +1607,7 @@ void lcdDrawHorizontalLine(coord_t x, coord_t y, coord_t w, uint8_t pat, LcdFlag } } -#if defined(PWR_PRESS_BUTTON) +#if defined(PWR_BUTTON_PRESS) void drawShutdownAnimation(uint32_t index, const char * message) { lcdClear(); diff --git a/radio/src/gui/128x64/model_display.cpp b/radio/src/gui/128x64/model_display.cpp index fe475f182..5c4f60759 100644 --- a/radio/src/gui/128x64/model_display.cpp +++ b/radio/src/gui/128x64/model_display.cpp @@ -149,9 +149,11 @@ void menuModelDisplay(event_t event) } } } +#if !defined(PCBXLITE) else if (attr) { MOVE_CURSOR_FROM_HERE(); } +#endif #endif break; } diff --git a/radio/src/gui/128x64/model_input_edit.cpp b/radio/src/gui/128x64/model_input_edit.cpp index ba1c2c8bb..1cf15385e 100644 --- a/radio/src/gui/128x64/model_input_edit.cpp +++ b/radio/src/gui/128x64/model_input_edit.cpp @@ -72,11 +72,6 @@ enum ExposFields { void menuModelExpoOne(event_t event) { - if (event == EVT_KEY_LONG(KEY_MENU)) { - // TODO pushMenu(menuChannelsView); - killEvents(event); - } - ExpoData * ed = expoAddress(s_currIdx); drawSource(PSIZE(TR_MENUINPUTS)*FW+FW, 0, MIXSRC_FIRST_INPUT+ed->chn, 0); diff --git a/radio/src/gui/128x64/model_mix_edit.cpp b/radio/src/gui/128x64/model_mix_edit.cpp index 92bbfe847..79ef4ca93 100644 --- a/radio/src/gui/128x64/model_mix_edit.cpp +++ b/radio/src/gui/128x64/model_mix_edit.cpp @@ -85,11 +85,6 @@ void drawOffsetBar(uint8_t x, uint8_t y, MixData * md) void menuModelMixOne(event_t event) { - if (event == EVT_KEY_LONG(KEY_MENU)) { - // TODO pushMenu(menuChannelsView); - killEvents(event); - } - MixData * md2 = mixAddress(s_currIdx) ; putsChn(PSIZE(TR_MIXER)*FW+FW, 0, md2->destCh+1,0); diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 10ba8ce9f..fa23f5db3 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -119,6 +119,11 @@ enum MenuModelSetupItems { #endif ITEM_MODEL_TRAINER_CHANNELS, ITEM_MODEL_TRAINER_PARAMS, +#elif defined(PCBXLITE) + ITEM_MODEL_TRAINER_LABEL, + ITEM_MODEL_TRAINER_MODE, + ITEM_MODEL_TRAINER_BLUETOOTH, + ITEM_MODEL_TRAINER_CHANNELS, #endif ITEM_MODEL_SETUP_MAX }; @@ -134,9 +139,7 @@ enum MenuModelSetupItems { #define MODEL_SETUP_RANGE_OFS 4*FW+3 #define MODEL_SETUP_SET_FAILSAFE_OFS 7*FW-2 -#if defined(PCBXLITE) - #define CURRENT_MODULE_EDITED(k) (k>=ITEM_MODEL_EXTERNAL_MODULE_LABEL ? EXTERNAL_MODULE : INTERNAL_MODULE) -#elif defined(PCBX7) +#if defined(PCBTARANIS) #define CURRENT_MODULE_EDITED(k) (k>=ITEM_MODEL_TRAINER_LABEL ? TRAINER_MODULE : (k>=ITEM_MODEL_EXTERNAL_MODULE_LABEL ? EXTERNAL_MODULE : INTERNAL_MODULE)) #elif defined(PCBSKY9X) && !defined(REVA) #define CURRENT_MODULE_EDITED(k) (k>=ITEM_MODEL_EXTRA_MODULE_LABEL ? EXTRA_MODULE : EXTERNAL_MODULE) @@ -186,6 +189,13 @@ enum MenuModelSetupItems { #define TRAINER_CHANNELS_ROW (IS_SLAVE_TRAINER() ? (uint8_t)1 : HIDDEN_ROW) #define TRAINER_PARAMS_ROW (IS_SLAVE_TRAINER() ? (uint8_t)2 : HIDDEN_ROW) #define TRAINER_ROWS LABEL(Trainer), 0, TRAINER_BLUETOOTH_ROW TRAINER_CHANNELS_ROW, TRAINER_PARAMS_ROW +#elif defined(PCBXLITE) + #define IF_BT_TRAINER_ON(x) (g_eeGeneral.bluetoothMode == BLUETOOTH_TRAINER ? (uint8_t)(x) : HIDDEN_ROW) + #define TRAINER_BLUETOOTH_M_ROW ((bluetoothDistantAddr[0] == '\0' || bluetoothState == BLUETOOTH_STATE_CONNECTED) ? (uint8_t)0 : (uint8_t)1) + #define TRAINER_BLUETOOTH_S_ROW (bluetoothDistantAddr[0] == '\0' ? HIDDEN_ROW : LABEL()) + #define TRAINER_BLUETOOTH_ROW (g_model.trainerMode == TRAINER_MODE_MASTER_BLUETOOTH ? TRAINER_BLUETOOTH_M_ROW : (g_model.trainerMode == TRAINER_MODE_SLAVE_BLUETOOTH ? TRAINER_BLUETOOTH_S_ROW : HIDDEN_ROW)) + #define TRAINER_CHANNELS_ROW (IS_SLAVE_TRAINER() ? (uint8_t)1 : HIDDEN_ROW) + #define TRAINER_ROWS IF_BT_TRAINER_ON(LABEL(Trainer)), IF_BT_TRAINER_ON(0), IF_BT_TRAINER_ON(TRAINER_BLUETOOTH_ROW), IF_BT_TRAINER_ON(TRAINER_CHANNELS_ROW) #else #define TRAINER_ROWS #endif @@ -261,16 +271,35 @@ void menuModelSetup(event_t event) } #endif -#if defined(PCBTARANIS) +#if defined(PCBXLITE) + MENU_TAB({ HEADER_LINE_COLUMNS 0, TIMER_ROWS, TIMER_ROWS, TIMER_ROWS, 0, 1, 0, 0, 0, 0, 0, CASE_CPUARM(LABEL(PreflightCheck)) CASE_CPUARM(0) 0, SW_WARN_ROWS, NUM_POTS, NUM_STICKS + NUM_POTS + NUM_SLIDERS + NUM_ROTARY_ENCODERS - 1, 0, + LABEL(InternalModule), + INTERNAL_MODULE_MODE_ROWS, + INTERNAL_MODULE_CHANNELS_ROWS, + IF_INTERNAL_MODULE_ON(HAS_RF_PROTOCOL_MODELINDEX(g_model.moduleData[INTERNAL_MODULE].rfProtocol) ? (uint8_t)2 : (uint8_t)1), + IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)), + IF_INTERNAL_MODULE_ON(0), + LABEL(ExternalModule), + EXTERNAL_MODULE_MODE_ROWS, + MULTIMODULE_SUBTYPE_ROWS(EXTERNAL_MODULE) + MULTIMODULE_STATUS_ROWS + EXTERNAL_MODULE_CHANNELS_ROWS, + EXTERNAL_MODULE_BIND_ROWS(), + OUTPUT_TYPE_ROWS() + FAILSAFE_ROWS(EXTERNAL_MODULE), + EXTERNAL_MODULE_OPTION_ROW, + (IS_MODULE_R9M_LBT(EXTERNAL_MODULE) ? (uint8_t)0 : HIDDEN_ROW), + MULTIMODULE_MODULE_ROWS + EXTERNAL_MODULE_POWER_ROW, + EXTRA_MODULE_ROWS + TRAINER_ROWS }); +#elif defined(PCBTARANIS) MENU_TAB({ HEADER_LINE_COLUMNS 0, TIMER_ROWS, TIMER_ROWS, TIMER_ROWS, 0, 1, 0, 0, 0, 0, 0, CASE_CPUARM(LABEL(PreflightCheck)) CASE_CPUARM(0) 0, SW_WARN_ROWS, NUM_POTS, NUM_STICKS+NUM_POTS+NUM_SLIDERS+NUM_ROTARY_ENCODERS-1, 0, LABEL(InternalModule), INTERNAL_MODULE_MODE_ROWS, INTERNAL_MODULE_CHANNELS_ROWS, IF_INTERNAL_MODULE_ON(HAS_RF_PROTOCOL_MODELINDEX(g_model.moduleData[INTERNAL_MODULE].rfProtocol) ? (uint8_t)2 : (uint8_t)1), IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)), -#if defined(PCBXLITE) - IF_INTERNAL_MODULE_ON(0), -#endif LABEL(ExternalModule), EXTERNAL_MODULE_MODE_ROWS, MULTIMODULE_SUBTYPE_ROWS(EXTERNAL_MODULE) @@ -581,10 +610,17 @@ void menuModelSetup(event_t event) break; } - lcdDrawTextAlignedLeft(y, STR_SWITCHWARNING); swarnstate_t states = g_model.switchWarningState; char c; + + lcdDrawTextAlignedLeft(y, STR_SWITCHWARNING); +#if defined(PCBXLITE) + lcdDrawText(LCD_W, y, "<]", RIGHT); + if (menuHorizontalPosition > NUM_SWITCHES) menuHorizontalPosition = NUM_SWITCHES; + if ((attr) && (menuHorizontalPosition == NUM_SWITCHES)) { +#else if (attr) { +#endif s_editMode = 0; if (!READ_ONLY()) { switch (event) { @@ -592,7 +628,7 @@ void menuModelSetup(event_t event) break; case EVT_KEY_LONG(KEY_ENTER): - if (menuHorizontalPosition < 0) { + if (menuHorizontalPosition < 0 || menuHorizontalPosition >= NUM_SWITCHES) { START_NO_HIGHLIGHT(); getMovedSwitch(); g_model.switchWarningState = switches_states; @@ -624,7 +660,7 @@ void menuModelSetup(event_t event) } states >>= 2; } - if (attr && menuHorizontalPosition < 0) { + if (attr && ((menuHorizontalPosition < 0) || menuHorizontalPosition >= NUM_SWITCHES)) { lcdDrawFilledRect(MODEL_SETUP_2ND_COLUMN-1, y-1, 8*(2*FW+1), 1+FH*((current+4)/5)); } #else @@ -907,7 +943,7 @@ void menuModelSetup(event_t event) break; #endif -#if defined(PCBX7) +#if defined(PCBTARANIS) case ITEM_MODEL_TRAINER_LABEL: lcdDrawTextAlignedLeft(y, STR_TRAINER); break; @@ -927,7 +963,7 @@ void menuModelSetup(event_t event) break; #endif -#if defined(PCBX7) && defined(BLUETOOTH) +#if defined(PCBTARANIS) && defined(BLUETOOTH) case ITEM_MODEL_TRAINER_BLUETOOTH: if (g_model.trainerMode == TRAINER_MODE_MASTER_BLUETOOTH) { if (attr) { @@ -976,10 +1012,8 @@ void menuModelSetup(event_t event) break; #endif -#if defined(PCBX7) - case ITEM_MODEL_TRAINER_CHANNELS: -#endif #if defined(PCBTARANIS) + case ITEM_MODEL_TRAINER_CHANNELS: case ITEM_MODEL_INTERNAL_MODULE_CHANNELS: #endif #if defined(PCBSKY9X) @@ -1595,6 +1629,6 @@ void menuModelFailsafe(event_t event) if (menuVerticalPosition >= NUM_CHANNELS(g_moduleIdx)) { // Outputs => Failsafe lcdDrawText(CENTER_OFS, LCD_H - (FH + 1), STR_OUTPUTS2FAILSAFE, INVERS); - } + } } #endif diff --git a/radio/src/gui/128x64/navigation.cpp b/radio/src/gui/128x64/navigation.cpp index 27928009a..b6852bdd2 100644 --- a/radio/src/gui/128x64/navigation.cpp +++ b/radio/src/gui/128x64/navigation.cpp @@ -37,7 +37,16 @@ int8_t p2valdiff; int8_t checkIncDec_Ret; -#if defined(PCBX7) +#if defined(PCBXLITE) +// invert the value +#define DBLKEYS_PRESSED_RGT_LFT(in) ((in & ((1<0 && (IS_ROTARY_RIGHT(event) || event==EVT_KEY_FIRST(KEY_UP) || event==EVT_KEY_REPT(KEY_UP)))) { - do { - newval++; - } while (isValueAvailable && !isValueAvailable(newval) && newval<=i_max); +#if defined(PCBXLITE) + if (s_editMode > 0) { + if (event==EVT_KEY_FIRST(KEY_RIGHT) || event==EVT_KEY_REPT(KEY_RIGHT)) { +#else + if (event==EVT_KEY_FIRST(KEY_RIGHT) || event==EVT_KEY_REPT(KEY_RIGHT) || (s_editMode>0 && (IS_ROTARY_RIGHT(event) || event==EVT_KEY_FIRST(KEY_UP) || event==EVT_KEY_REPT(KEY_UP)))) { +#endif + do { + newval++; + } while (isValueAvailable && !isValueAvailable(newval) && newval<=i_max); - if (newval > i_max) { - newval = val; - killEvents(event); - AUDIO_KEY_ERROR(); + if (newval > i_max) { + newval = val; + killEvents(event); + AUDIO_KEY_ERROR(); + } } - } - else if (event==EVT_KEY_FIRST(KEY_LEFT) || event==EVT_KEY_REPT(KEY_LEFT) || (s_editMode>0 && (IS_ROTARY_LEFT(event) || event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_REPT(KEY_DOWN)))) { - do { - if (IS_KEY_REPT(event) && (i_flags & INCDEC_REP10)) { - newval -= min(10, val-i_min); - } - else { - newval--; - } - } while (isValueAvailable && !isValueAvailable(newval) && newval>=i_min); +#if defined(PCBXLITE) + else if (event==EVT_KEY_FIRST(KEY_LEFT) || event==EVT_KEY_REPT(KEY_LEFT)) { +#else + else if (event==EVT_KEY_FIRST(KEY_LEFT) || event==EVT_KEY_REPT(KEY_LEFT) || (s_editMode>0 && (IS_ROTARY_LEFT(event) || event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_REPT(KEY_DOWN)))) { +#endif + do { + if (IS_KEY_REPT(event) && (i_flags & INCDEC_REP10)) { + newval -= min(10, val-i_min); + } + else { + newval--; + } + } while (isValueAvailable && !isValueAvailable(newval) && newval>=i_min); - if (newval < i_min) { - newval = val; - killEvents(event); - AUDIO_KEY_ERROR(); + if (newval < i_min) { + newval = val; + killEvents(event); + AUDIO_KEY_ERROR(); + } } +#if defined(PCBXLITE) } +#endif if (!READ_ONLY() && i_min==0 && i_max==1 && (event==EVT_KEY_BREAK(KEY_ENTER) || IS_ROTARY_BREAK(event))) { s_editMode = 0; @@ -407,6 +430,83 @@ int checkIncDec(event_t event, int val, int i_min, int i_max, unsigned int i_fla else { checkIncDec_Ret = 0; } + +#if defined(PCBXLITE) + if (i_flags & INCDEC_SOURCE) { + if (event == EVT_KEY_LONG(KEY_ENTER)) { + killEvents(event); + checkIncDecSelection = MIXSRC_NONE; + + if (i_min <= MIXSRC_FIRST_INPUT && i_max >= MIXSRC_FIRST_INPUT) { + if (getFirstAvailable(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable) != MIXSRC_NONE) { + POPUP_MENU_ADD_ITEM(STR_MENU_INPUTS); + } + } +#if defined(LUA_MODEL_SCRIPTS) + if (i_min <= MIXSRC_FIRST_LUA && i_max >= MIXSRC_FIRST_LUA) { + if (getFirstAvailable(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable) != MIXSRC_NONE) { + POPUP_MENU_ADD_ITEM(STR_MENU_LUA); + } + } +#endif + if (i_min <= MIXSRC_FIRST_STICK && i_max >= MIXSRC_FIRST_STICK) POPUP_MENU_ADD_ITEM(STR_MENU_STICKS); + if (i_min <= MIXSRC_FIRST_POT && i_max >= MIXSRC_FIRST_POT) POPUP_MENU_ADD_ITEM(STR_MENU_POTS); + if (i_min <= MIXSRC_MAX && i_max >= MIXSRC_MAX) POPUP_MENU_ADD_ITEM(STR_MENU_MAX); +#if defined(HELI) + if (i_min <= MIXSRC_FIRST_HELI && i_max >= MIXSRC_FIRST_HELI) POPUP_MENU_ADD_ITEM(STR_MENU_HELI); +#endif + if (i_min <= MIXSRC_FIRST_TRIM && i_max >= MIXSRC_FIRST_TRIM) POPUP_MENU_ADD_ITEM(STR_MENU_TRIMS); + if (i_min <= MIXSRC_FIRST_SWITCH && i_max >= MIXSRC_FIRST_SWITCH) POPUP_MENU_ADD_ITEM(STR_MENU_SWITCHES); + if (i_min <= MIXSRC_FIRST_TRAINER && i_max >= MIXSRC_FIRST_TRAINER) POPUP_MENU_ADD_ITEM(STR_MENU_TRAINER); + if (i_min <= MIXSRC_FIRST_CH && i_max >= MIXSRC_FIRST_CH) POPUP_MENU_ADD_ITEM(STR_MENU_CHANNELS); + if (i_min <= MIXSRC_FIRST_GVAR && i_max >= MIXSRC_FIRST_GVAR && isValueAvailable(MIXSRC_FIRST_GVAR)) { + POPUP_MENU_ADD_ITEM(STR_MENU_GVARS); + } + + if (i_min <= MIXSRC_FIRST_TELEM && i_max >= MIXSRC_FIRST_TELEM) { + for (int i = 0; i < MAX_TELEMETRY_SENSORS; i++) { + TelemetrySensor * sensor = & g_model.telemetrySensors[i]; + if (sensor->isAvailable()) { + POPUP_MENU_ADD_ITEM(STR_MENU_TELEMETRY); + break; + } + } + } + POPUP_MENU_START(onSourceLongEnterPress); + } + if (checkIncDecSelection != 0) { + newval = checkIncDecSelection; + if (checkIncDecSelection != MIXSRC_MAX) + s_editMode = EDIT_MODIFY_FIELD; + checkIncDecSelection = 0; + } + } + else if (i_flags & INCDEC_SWITCH) { + if (event == EVT_KEY_LONG(KEY_ENTER)) { + killEvents(event); + checkIncDecSelection = SWSRC_NONE; + if (i_min <= SWSRC_FIRST_SWITCH && i_max >= SWSRC_LAST_SWITCH) POPUP_MENU_ADD_ITEM(STR_MENU_SWITCHES); + if (i_min <= SWSRC_FIRST_TRIM && i_max >= SWSRC_LAST_TRIM) POPUP_MENU_ADD_ITEM(STR_MENU_TRIMS); + if (i_min <= SWSRC_FIRST_LOGICAL_SWITCH && i_max >= SWSRC_LAST_LOGICAL_SWITCH) { + for (int i = 0; i < MAX_LOGICAL_SWITCHES; i++) { + if (isValueAvailable && isValueAvailable(SWSRC_FIRST_LOGICAL_SWITCH+i)) { + POPUP_MENU_ADD_ITEM(STR_MENU_LOGICAL_SWITCHES); + break; + } + } + } + if (isValueAvailable && isValueAvailable(SWSRC_ON)) POPUP_MENU_ADD_ITEM(STR_MENU_OTHER); + if (isValueAvailable && isValueAvailable(-newval)) POPUP_MENU_ADD_ITEM(STR_MENU_INVERT); + POPUP_MENU_START(onSwitchLongEnterPress); + s_editMode = EDIT_MODIFY_FIELD; + } + if (checkIncDecSelection != 0) { + newval = (checkIncDecSelection == SWSRC_INVERT ? -newval : checkIncDecSelection); + s_editMode = EDIT_MODIFY_FIELD; + checkIncDecSelection = 0; + } + } +#endif return newval; } #endif diff --git a/radio/src/gui/128x64/radio_calibration.cpp b/radio/src/gui/128x64/radio_calibration.cpp index 88d543055..cb4c092d6 100644 --- a/radio/src/gui/128x64/radio_calibration.cpp +++ b/radio/src/gui/128x64/radio_calibration.cpp @@ -41,13 +41,44 @@ void menuCommonCalib(event_t event) if (IS_POT_WITHOUT_DETENT(i)) { reusableBuffer.calib.midVals[i] = (reusableBuffer.calib.hiVals[i] + reusableBuffer.calib.loVals[i]) / 2; } +#if defined(PCBTARANIS) + uint8_t idx = i - POT1; + int count = reusableBuffer.calib.xpotsCalib[idx].stepsCount; + if (IS_POT_MULTIPOS(i) && count <= XPOTS_MULTIPOS_COUNT) { + // use raw analog value for multipos calibraton, anaIn() already has multipos decoded value + vt = getAnalogValue(i) >> 1; + if (reusableBuffer.calib.xpotsCalib[idx].lastCount == 0 || vt < reusableBuffer.calib.xpotsCalib[idx].lastPosition - XPOT_DELTA || vt > reusableBuffer.calib.xpotsCalib[idx].lastPosition + XPOT_DELTA) { + reusableBuffer.calib.xpotsCalib[idx].lastPosition = vt; + reusableBuffer.calib.xpotsCalib[idx].lastCount = 1; + } + else { + if (reusableBuffer.calib.xpotsCalib[idx].lastCount < 255) reusableBuffer.calib.xpotsCalib[idx].lastCount++; + } + if (reusableBuffer.calib.xpotsCalib[idx].lastCount == XPOT_DELAY) { + int16_t position = reusableBuffer.calib.xpotsCalib[idx].lastPosition; + bool found = false; + for (int j=0; j= step-XPOT_DELTA && position <= step+XPOT_DELTA) { + found = true; + break; + } + } + if (!found) { + if (count < XPOTS_MULTIPOS_COUNT) { + reusableBuffer.calib.xpotsCalib[idx].steps[count] = position; + } + reusableBuffer.calib.xpotsCalib[idx].stepsCount += 1; + } + } + } +#endif } } menuCalibrationState = reusableBuffer.calib.state; // make sure we don't scroll while calibrating - switch (event) - { + switch (event) { case EVT_ENTRY: case EVT_KEY_BREAK(KEY_EXIT): reusableBuffer.calib.state = CALIB_START; @@ -70,11 +101,18 @@ void menuCommonCalib(event_t event) // SET MIDPOINT lcdDrawText(0*FW, MENU_HEADER_HEIGHT+FH, STR_SETMIDPOINT, INVERS); lcdDrawTextAlignedLeft(MENU_HEADER_HEIGHT+2*FH, STR_MENUWHENDONE); - for (uint8_t i=0; i> 1; + if (i 50) { g_eeGeneral.calib[i].mid = reusableBuffer.calib.midVals[i]; @@ -96,6 +133,31 @@ void menuCommonCalib(event_t event) break; case CALIB_STORE: +#if defined(PCBTARANIS) + for (uint8_t i=POT1; i<=POT_LAST; i++) { + int idx = i - POT1; + int count = reusableBuffer.calib.xpotsCalib[idx].stepsCount; + if (IS_POT_MULTIPOS(i)) { + if (count > 1 && count <= XPOTS_MULTIPOS_COUNT) { + for (int j=0; jcount = count - 1; + for (int j=0; jcount; j++) { + calib->steps[j] = (reusableBuffer.calib.xpotsCalib[idx].steps[j+1] + reusableBuffer.calib.xpotsCalib[idx].steps[j]) >> 5; + } + } + else { + g_eeGeneral.potsConfig &= ~(0x03<<(2*idx)); + } + } + } +#endif g_eeGeneral.chkSum = evalChkSum(); storageDirty(EE_GENERAL); reusableBuffer.calib.state = CALIB_FINISHED; diff --git a/radio/src/gui/128x64/radio_diagkeys.cpp b/radio/src/gui/128x64/radio_diagkeys.cpp index d08b028c8..4cd34b416 100644 --- a/radio/src/gui/128x64/radio_diagkeys.cpp +++ b/radio/src/gui/128x64/radio_diagkeys.cpp @@ -43,7 +43,7 @@ void menuRadioDiagKeys(event_t event) for (uint8_t i=0; i<9; i++) { coord_t y; - if (i < 8) { + if (i < NUM_TRIMS_KEYS) { y = MENU_HEADER_HEIGHT + FH*3 + FH*(i/2); if (i&1) lcdDraw1bitBitmap(14*FW, y, sticks, i/2, 0); displayKeyState(i&1? 20*FW : 18*FW, y, TRM_BASE+i); @@ -60,7 +60,7 @@ void menuRadioDiagKeys(event_t event) #elif defined(PCBXLITE) y = MENU_HEADER_HEIGHT + FH*i; lcdDrawTextAtIndex(0, y, STR_VKEYS, (TRM_BASE-1-i), 0); - displayKeyState(5*FW+2, y, KEY_MENU+(TRM_BASE-1-i)); + displayKeyState(5*FW+2, y, KEY_SHIFT+(TRM_BASE-1-i)); #else y = MENU_HEADER_HEIGHT + FH + FH*i; lcdDrawTextAtIndex(0, y, STR_VKEYS, (TRM_BASE-1-i), 0); diff --git a/radio/src/gui/128x64/radio_hardware.cpp b/radio/src/gui/128x64/radio_hardware.cpp index f1e3a8866..a78feb7a7 100644 --- a/radio/src/gui/128x64/radio_hardware.cpp +++ b/radio/src/gui/128x64/radio_hardware.cpp @@ -134,7 +134,7 @@ enum MenuRadioHardwareItems { #endif #if defined(PCBTARANIS) -#define BLUETOOTH_ROWS uint8_t(btChipPresent ? 0 : HIDDEN_ROW), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_TELEMETRY ? -1 : HIDDEN_ROW), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : -1), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : -1), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : 0), +#define BLUETOOTH_ROWS uint8_t(IS_BLUETOOTH_CHIP_PRESENT() ? 0 : HIDDEN_ROW), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_TELEMETRY ? -1 : HIDDEN_ROW), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : -1), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : -1), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : 0), #elif defined(BLUETOOTH) #define BLUETOOTH_ROWS 0, uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : -1), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : -1), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : 0), #else @@ -151,7 +151,7 @@ enum MenuRadioHardwareItems { void menuRadioHardware(event_t event) { - MENU(STR_HARDWARE, menuTabGeneral, MENU_RADIO_HARDWARE, HEADER_LINE+ITEM_RADIO_HARDWARE_MAX, { HEADER_LINE_COLUMNS LABEL(Sticks), 0, 0, 0, 0, LABEL(Pots), POTS_ROWS, LABEL(Switches), SWITCHES_ROWS, 0, BLUETOOTH_ROWS 0 }); + MENU(STR_HARDWARE, menuTabGeneral, MENU_RADIO_HARDWARE, HEADER_LINE+ITEM_RADIO_HARDWARE_MAX, { HEADER_LINE_COLUMNS LABEL(Sticks), 0, 0, 0, 0, LABEL(Pots), POTS_ROWS, LABEL(Switches), SWITCHES_ROWS, 0/*max bauds*/, BLUETOOTH_ROWS 0/*jitter filter*/ }); uint8_t sub = menuVerticalPosition - HEADER_LINE; @@ -159,7 +159,7 @@ void menuRadioHardware(event_t event) coord_t y = MENU_HEADER_HEIGHT + 1 + i*FH; uint8_t k = i+menuVerticalOffset; for (int j=0; j<=k; j++) { - if (mstate_tab[j] == HIDDEN_ROW) + if (mstate_tab[j+HEADER_LINE] == HIDDEN_ROW) k++; } uint8_t blink = ((s_editMode>0) ? BLINK|INVERS : INVERS); @@ -248,7 +248,7 @@ void menuRadioHardware(event_t event) case ITEM_RADIO_HARDWARE_BLUETOOTH_MODE: lcdDrawTextAlignedLeft(y, STR_BLUETOOTH); lcdDrawTextAtIndex(HW_SETTINGS_COLUMN2, y, STR_BLUETOOTH_MODES, g_eeGeneral.bluetoothMode, attr); - if ((g_eeGeneral.bluetoothMode != BLUETOOTH_OFF) && !btChipPresent) { + if (g_eeGeneral.bluetoothMode != BLUETOOTH_OFF && !IS_BLUETOOTH_CHIP_PRESENT()) { g_eeGeneral.bluetoothMode = BLUETOOTH_OFF; } if (attr) { @@ -278,11 +278,8 @@ void menuRadioHardware(event_t event) #endif case ITEM_RADIO_HARDWARE_JITTER_FILTER: - { - uint8_t b = 1-g_eeGeneral.jitterFilter; - g_eeGeneral.jitterFilter = 1 - editCheckBox(b, HW_SETTINGS_COLUMN2, y, STR_JITTER_FILTER, attr, event); + g_eeGeneral.jitterFilter = 1 - editCheckBox(1 - g_eeGeneral.jitterFilter, HW_SETTINGS_COLUMN2, y, STR_JITTER_FILTER, attr, event); break; - } } } } diff --git a/radio/src/gui/128x64/radio_version.cpp b/radio/src/gui/128x64/radio_version.cpp index 7b12e61c9..866ad58e0 100644 --- a/radio/src/gui/128x64/radio_version.cpp +++ b/radio/src/gui/128x64/radio_version.cpp @@ -48,6 +48,17 @@ void menuRadioVersion(event_t event) lcdDrawTextAlignedLeft(MENU_HEADER_HEIGHT+6*FH+1, STR_FACTORYRESET); lcdDrawFilledRect(0, MENU_HEADER_HEIGHT+5*FH, LCD_W, 2*FH+1, SOLID); +#if defined(PCBXLITE) + if (event == EVT_KEY_LONG(KEY_ENTER)) { + killEvents(KEY_ENTER); + if (IS_SHIFT_PRESSED()) { + POPUP_CONFIRMATION(STR_CONFIRMRESET); + } + else { + eepromBackup(); + } + } +#else if (event == EVT_KEY_LONG(KEY_ENTER)) { eepromBackup(); } @@ -55,4 +66,5 @@ void menuRadioVersion(event_t event) POPUP_CONFIRMATION(STR_CONFIRMRESET); } #endif +#endif } diff --git a/radio/src/gui/128x64/view_main.cpp b/radio/src/gui/128x64/view_main.cpp index a307748a9..645e3f645 100644 --- a/radio/src/gui/128x64/view_main.cpp +++ b/radio/src/gui/128x64/view_main.cpp @@ -247,6 +247,16 @@ void displayVoltageOrAlarm() #define EVT_KEY_MODEL_MENU EVT_KEY_BREAK(KEY_MENU) #define EVT_KEY_GENERAL_MENU EVT_KEY_LONG(KEY_MENU) #define EVT_KEY_TELEMETRY EVT_KEY_LONG(KEY_PAGE) +#elif defined(PCBXLITE) +#define EVT_KEY_CONTEXT_MENU EVT_KEY_LONG(KEY_ENTER) +#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_UP) +#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_DOWN) +#define EVT_KEY_NEXT_PAGE EVT_KEY_BREAK(KEY_RIGHT) +#define EVT_KEY_PREVIOUS_PAGE EVT_KEY_BREAK(KEY_LEFT) +#define EVT_KEY_MODEL_MENU EVT_KEY_LONG(KEY_RIGHT) +#define EVT_KEY_GENERAL_MENU EVT_KEY_LONG(KEY_LEFT) +#define EVT_KEY_TELEMETRY EVT_KEY_LONG(KEY_DOWN) +#define EVT_KEY_STATISTICS EVT_KEY_LONG(KEY_UP) #else #define EVT_KEY_CONTEXT_MENU EVT_KEY_BREAK(KEY_MENU) #define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_UP) diff --git a/radio/src/gui/128x64/view_statistics.cpp b/radio/src/gui/128x64/view_statistics.cpp index c81de3088..51a63f97f 100644 --- a/radio/src/gui/128x64/view_statistics.cpp +++ b/radio/src/gui/128x64/view_statistics.cpp @@ -48,7 +48,9 @@ void menuStatisticsView(event_t event) break; #if defined(CPUARM) - case EVT_KEY_LONG(KEY_MENU): // historical +#if !defined(PCBTARANIS) + case EVT_KEY_LONG(KEY_MENU): // historical +#endif #if !defined(PCBSKY9X) case EVT_KEY_LONG(KEY_ENTER): #endif @@ -309,8 +311,10 @@ void menuStatisticsDebug2(event_t event) lcdDrawTextAlignedLeft(MENU_DEBUG_ROW1, "Tlm RX Err"); lcdDrawNumber(MENU_DEBUG_COL1_OFS, MENU_DEBUG_ROW1, telemetryErrors, RIGHT); +#if defined(PCBX7) lcdDrawTextAlignedLeft(MENU_DEBUG_ROW2, "BT status"); - lcdDrawNumber(MENU_DEBUG_COL1_OFS, MENU_DEBUG_ROW2, btChipPresent, RIGHT); + lcdDrawNumber(MENU_DEBUG_COL1_OFS, MENU_DEBUG_ROW2, IS_BLUETOOTH_CHIP_PRESENT(), RIGHT); +#endif lcdDrawText(4*FW, 7*FH+1, STR_MENUTORESET); lcdInvertLastLine(); diff --git a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp index 8e99429db..38564b427 100644 --- a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp +++ b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp @@ -200,7 +200,7 @@ void menuRadioSdManager(event_t _event) menuVerticalOffset = reusableBuffer.sdmanager.offset; break; -#if defined(PCBTARANIS) +#if defined(PCBX9) || defined(PCBX7) // TODO NO_MENU_KEY case EVT_KEY_LONG(KEY_MENU): if (!READ_ONLY() && s_editMode == 0) { killEvents(_event); @@ -237,7 +237,7 @@ void menuRadioSdManager(event_t _event) break; case EVT_KEY_LONG(KEY_ENTER): -#if !defined(PCBTARANIS) +#if !defined(PCBX9) && !defined(PCBX7) // TODO NO_HEADER_LINE if (menuVerticalPosition < HEADER_LINE) { killEvents(_event); POPUP_MENU_ADD_ITEM(STR_SD_INFO); diff --git a/radio/src/gui/common/stdlcd/widgets.cpp b/radio/src/gui/common/stdlcd/widgets.cpp index de3337c17..a9c5766af 100644 --- a/radio/src/gui/common/stdlcd/widgets.cpp +++ b/radio/src/gui/common/stdlcd/widgets.cpp @@ -104,7 +104,7 @@ void editName(coord_t x, coord_t y, char * name, uint8_t size, event_t event, ui s_editMode = 0; break; -#if !defined(PCBTARANIS) +#if defined(PCBXLITE) || !defined(PCBTARANIS) case EVT_KEY_BREAK(KEY_LEFT): if (cur>0) cur--; break; @@ -114,7 +114,9 @@ void editName(coord_t x, coord_t y, char * name, uint8_t size, event_t event, ui break; #endif -#if defined(PCBTARANIS) +#if defined(PCBXLITE) + case EVT_KEY_BREAK(KEY_SHIFT): +#elif defined(PCBTARANIS) case EVT_KEY_LONG(KEY_ENTER): #else case EVT_KEY_LONG(KEY_LEFT): @@ -122,7 +124,7 @@ void editName(coord_t x, coord_t y, char * name, uint8_t size, event_t event, ui #endif if (attr & ZCHAR) { -#if defined(PCBTARANIS) +#if defined(PCBTARANIS) && !defined(PCBXLITE) if (v == 0) { s_editMode = 0; killEvents(event); @@ -133,12 +135,15 @@ void editName(coord_t x, coord_t y, char * name, uint8_t size, event_t event, ui } } else { +#if !defined(PCBXLITE) if (v == ' ') { s_editMode = 0; killEvents(event); break; } - else if (v >= 'A' && v <= 'Z') { + else +#endif + if (v >= 'A' && v <= 'Z') { v = 'a' + v - 'A'; // toggle case } else if (v >= 'a' && v <= 'z') { diff --git a/radio/src/gui/gui_common_arm.cpp b/radio/src/gui/gui_common_arm.cpp index 3af679f6b..e99831680 100644 --- a/radio/src/gui/gui_common_arm.cpp +++ b/radio/src/gui/gui_common_arm.cpp @@ -594,6 +594,14 @@ bool isTrainerModeAvailable(int mode) else return true; } +#elif defined(PCBXLITE) +bool isTrainerModeAvailable(int mode) +{ + if (g_eeGeneral.bluetoothMode == BLUETOOTH_TRAINER && (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH)) + return true; + else + return false; +} #endif bool modelHasNotes() diff --git a/radio/src/keys.cpp b/radio/src/keys.cpp index 4c0580b06..1f9752c3a 100644 --- a/radio/src/keys.cpp +++ b/radio/src/keys.cpp @@ -127,7 +127,8 @@ void Key::input(bool val) if ((m_cnt & (m_state-1)) == 0) { // this produces repeat events that at first repeat slowly and then increase in speed // TRACE("key %d REPEAT", key()); - putEvent(EVT_KEY_REPT(key())); + if (!IS_SHIFT_KEY(key())) + putEvent(EVT_KEY_REPT(key())); } break; @@ -237,5 +238,3 @@ void clearKeyEvents() putEvent(0); } #endif // #if defined(CPUARM) - - diff --git a/radio/src/keys.h b/radio/src/keys.h index a6803de1d..77da81c2e 100644 --- a/radio/src/keys.h +++ b/radio/src/keys.h @@ -52,7 +52,15 @@ #define IS_KEY_REPT(evt) (((evt) & _MSK_KEY_FLAGS) == _MSK_KEY_REPT) #define IS_KEY_BREAK(evt) (((evt) & _MSK_KEY_FLAGS) == _MSK_KEY_BREAK) -#if (defined(PCBHORUS) || defined(PCBTARANIS)) && defined(ROTARY_ENCODER_NAVIGATION) +#if defined(PCBXLITE) + typedef uint16_t event_t; + #define EVT_ROTARY_BREAK EVT_KEY_BREAK(KEY_ENTER) + #define EVT_ROTARY_LONG EVT_KEY_LONG(KEY_ENTER) + #define EVT_ROTARY_LEFT 0xDF00 + #define EVT_ROTARY_RIGHT 0xDE00 + #define IS_NEXT_EVENT(event) (event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_REPT(KEY_DOWN)) + #define IS_PREVIOUS_EVENT(event) (event==EVT_KEY_FIRST(KEY_UP) || event==EVT_KEY_REPT(KEY_UP)) +#elif (defined(PCBHORUS) || defined(PCBTARANIS)) && defined(ROTARY_ENCODER_NAVIGATION) typedef uint16_t event_t; #define EVT_ROTARY_BREAK EVT_KEY_BREAK(KEY_ENTER) #define EVT_ROTARY_LONG EVT_KEY_LONG(KEY_ENTER) @@ -103,11 +111,13 @@ void killEvents(event_t event); #if defined(CPUARM) bool clearKeyEvents(); event_t getEvent(bool trim=false); + bool keyDown(); #else void clearKeyEvents(); event_t getEvent(); + uint8_t keyDown(); #endif -uint8_t keyDown(); + #endif // _KEYS_H_ diff --git a/radio/src/logs.cpp b/radio/src/logs.cpp index c13059967..cdf7d7532 100644 --- a/radio/src/logs.cpp +++ b/radio/src/logs.cpp @@ -192,6 +192,8 @@ void writeHeader() } #if defined(PCBX7) #define STR_SWITCHES_LOG_HEADER "SA,SB,SC,SD,SF,SH" +#elif defined(PCBXLITE) + #define STR_SWITCHES_LOG_HEADER "SA,SB,SC,SD" #else #define STR_SWITCHES_LOG_HEADER "SA,SB,SC,SD,SE,SF,SG,SH" #endif @@ -344,10 +346,13 @@ void logsWrite() f_printf(&g_oLogFile, "%d,", calibratedAnalogs[i]); } +// TODO: use hardware config to populate #if defined(PCBXLITE) - f_printf(&g_oLogFile, "%d,%d,0x%08X%08X,", + f_printf(&g_oLogFile, "%d,%d,%d,%d,0x%08X%08X,", GET_3POS_STATE(SA), GET_3POS_STATE(SB), + GET_2POS_STATE(SC), + GET_2POS_STATE(SD), getLogicalSwitchesStates(32), getLogicalSwitchesStates(0)); #elif defined(PCBX7) diff --git a/radio/src/lua/CMakeLists.txt b/radio/src/lua/CMakeLists.txt index fddd31df3..28a163848 100644 --- a/radio/src/lua/CMakeLists.txt +++ b/radio/src/lua/CMakeLists.txt @@ -40,9 +40,10 @@ set(LUA_INCLUDES_STM32F4 ) if(PYTHONINTERP_FOUND) - add_lua_export_target(x7 ${LUA_INCLUDES_STM32F2} -DPCBTARANIS -DPCBX7) - add_lua_export_target(x9d ${LUA_INCLUDES_STM32F2} -DPCBTARANIS -DPCBX9D) - add_lua_export_target(x9e ${LUA_INCLUDES_STM32F4} -DPCBTARANIS -DPCBX9E -DSTM32F40_41xxx) - add_lua_export_target(x10 ${LUA_INCLUDES_STM32F4} -DPCBHORUS -DPCBX10 -DSTM32F40_41xxx) - add_lua_export_target(x12s ${LUA_INCLUDES_STM32F4} -DPCBHORUS -DPCBX12S -DSTM32F40_41xxx) + add_lua_export_target(x7 ${LUA_INCLUDES_STM32F2} -DPCBTARANIS -DPCBX7) + add_lua_export_target(xlite ${LUA_INCLUDES_STM32F2} -DPCBTARANIS -DPCBXLITE) + add_lua_export_target(x9d ${LUA_INCLUDES_STM32F2} -DPCBTARANIS -DPCBX9D) + add_lua_export_target(x9e ${LUA_INCLUDES_STM32F4} -DPCBTARANIS -DPCBX9E -DSTM32F40_41xxx) + add_lua_export_target(x10 ${LUA_INCLUDES_STM32F4} -DPCBHORUS -DPCBX10 -DSTM32F40_41xxx) + add_lua_export_target(x12s ${LUA_INCLUDES_STM32F4} -DPCBHORUS -DPCBX12S -DSTM32F40_41xxx) endif() diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp index 17803e88a..1debc8fc1 100644 --- a/radio/src/lua/api_general.cpp +++ b/radio/src/lua/api_general.cpp @@ -33,6 +33,8 @@ #include "lua/lua_exports_x9e.inc" #elif defined(PCBX7) #include "lua/lua_exports_x7.inc" +#elif defined(PCBXLITE) + #include "lua/lua_exports_xlite.inc" #elif defined(PCBTARANIS) #include "lua/lua_exports_x9d.inc" #endif @@ -1344,12 +1346,14 @@ const luaR_value_entry opentxConstants[] = { { "MIXSRC_SB", MIXSRC_SB }, { "MIXSRC_SC", MIXSRC_SC }, { "MIXSRC_SD", MIXSRC_SD }, -#if !defined(PCBX7) +#if !defined(PCBX7) && !defined(PCBXLITE) { "MIXSRC_SE", MIXSRC_SE }, { "MIXSRC_SG", MIXSRC_SG }, #endif +#if !defined(PCBXLITE) { "MIXSRC_SF", MIXSRC_SF }, { "MIXSRC_SH", MIXSRC_SH }, +#endif { "MIXSRC_CH1", MIXSRC_CH1 }, { "SWSRC_LAST", SWSRC_LAST_LOGICAL_SWITCH }, #if defined(COLORLCD) @@ -1402,6 +1406,22 @@ const luaR_value_entry opentxConstants[] = { { "EVT_MODEL_FIRST", EVT_KEY_FIRST(KEY_MODEL) }, { "EVT_SYS_FIRST", EVT_KEY_FIRST(KEY_RADIO) }, { "EVT_RTN_FIRST", EVT_KEY_FIRST(KEY_EXIT) }, +#elif defined(PCBXLITE) + { "EVT_DOWN_FIRST", EVT_KEY_FIRST(KEY_DOWN) }, + { "EVT_UP_FIRST", EVT_KEY_FIRST(KEY_UP) }, + { "EVT_LEFT_FIRST", EVT_KEY_FIRST(KEY_LEFT) }, + { "EVT_RIGHT_FIRST", EVT_KEY_FIRST(KEY_RIGHT) }, + { "EVT_SHIFT_FIRST", EVT_KEY_FIRST(KEY_SHIFT) }, + { "EVT_DOWN_BREAK", EVT_KEY_BREAK(KEY_DOWN) }, + { "EVT_UP_BREAK", EVT_KEY_BREAK(KEY_UP) }, + { "EVT_LEFT_BREAK", EVT_KEY_BREAK(KEY_LEFT) }, + { "EVT_RIGHT_BREAK", EVT_KEY_BREAK(KEY_RIGHT) }, + { "EVT_SHIFT_BREAK", EVT_KEY_BREAK(KEY_SHIFT) }, + { "EVT_DOWN_LONG", EVT_KEY_LONG(KEY_DOWN) }, + { "EVT_UP_LONG", EVT_KEY_LONG(KEY_UP) }, + { "EVT_LEFT_LONG", EVT_KEY_LONG(KEY_LEFT) }, + { "EVT_RIGHT_LONG", EVT_KEY_LONG(KEY_RIGHT) }, + { "EVT_SHIFT_LONG", EVT_KEY_LONG(KEY_SHIFT) }, #elif defined(PCBTARANIS) { "EVT_MENU_BREAK", EVT_KEY_BREAK(KEY_MENU) }, { "EVT_MENU_LONG", EVT_KEY_LONG(KEY_MENU) }, diff --git a/radio/src/lua/interface.cpp b/radio/src/lua/interface.cpp index 024f565f8..d16c3658c 100644 --- a/radio/src/lua/interface.cpp +++ b/radio/src/lua/interface.cpp @@ -878,7 +878,7 @@ void luaDoOneRunStandalone(event_t evt) standaloneScript.state = SCRIPT_NOFILE; luaState = INTERPRETER_RELOAD_PERMANENT_SCRIPTS; } -#if !defined(PCBHORUS) +#if !defined(PCBHORUS) && !defined(PCBXLITE) // TODO find another key and add a #define else if (evt == EVT_KEY_LONG(KEY_MENU)) { killEvents(evt); diff --git a/radio/src/lua/lua_api.h b/radio/src/lua/lua_api.h index 08a936d83..7093bcd6d 100644 --- a/radio/src/lua/lua_api.h +++ b/radio/src/lua/lua_api.h @@ -155,7 +155,9 @@ extern uint16_t maxLuaInterval; extern uint16_t maxLuaDuration; extern uint8_t instructionsPercent; -#if defined(PCBTARANIS) +#if defined(PCBXLITE) + #define IS_MASKABLE(key) ((key) != KEY_EXIT && (key) != KEY_ENTER) +#elif defined(PCBTARANIS) #define IS_MASKABLE(key) ((key) != KEY_EXIT && (key) != KEY_ENTER && ((luaState & INTERPRETER_RUNNING_STANDALONE_SCRIPT) || (key) != KEY_PAGE)) #elif defined(PCBHORUS) #define IS_MASKABLE(key) ((key) != KEY_EXIT && (key) != KEY_ENTER) diff --git a/radio/src/main_arm.cpp b/radio/src/main_arm.cpp index bc59d620e..f0cb5ce33 100644 --- a/radio/src/main_arm.cpp +++ b/radio/src/main_arm.cpp @@ -58,7 +58,7 @@ void handleUsbConnection() #endif POPUP_MENU_START(onUSBConnectMenu); } - if (g_eeGeneral.USBMode != USB_UNSELECTED_MODE && g_eeGeneral.USBMode <= USB_MAX_MODE) { + if (g_eeGeneral.USBMode != USB_UNSELECTED_MODE) { setSelectedUsbMode(g_eeGeneral.USBMode); } } @@ -414,12 +414,10 @@ void perMain() mainRequestFlags &= ~(1 << REQUEST_FLIGHT_RESET); } - event_t evt = getEvent(false); - if (evt && (g_eeGeneral.backlightMode & e_backlight_mode_keys)) { - // on keypress turn the light on - backlightOn(); - } doLoopCommonActions(); + + event_t evt = getEvent(false); + #if defined(NAVIGATION_STICKS) uint8_t sticks_evt = getSticksNavigationEvent(); if (sticks_evt) { diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 6330fb2fd..efd91585f 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -261,7 +261,9 @@ void generalDefault() #endif g_eeGeneral.slidersConfig = 0x0f; // 4 sliders g_eeGeneral.blOffBright = 20; -#elif defined(PCBX7) || defined(PCBXLITE) +#elif defined(PCBXLITE) + g_eeGeneral.potsConfig = 0x0F; // S1 and S2 = pot without detent +#elif defined(PCBX7) g_eeGeneral.potsConfig = 0x07; // S1 = pot without detent, S2 = pot with detent #elif defined(PCBTARANIS) g_eeGeneral.potsConfig = 0x05; // S1 and S2 = pots with detent @@ -276,25 +278,12 @@ void generalDefault() g_eeGeneral.switchConfig = 0x00007bff; // 6x3POS, 1x2POS, 1xTOGGLE #endif -// vBatWarn is voltage in 100mV, vBatMin is in 100mV but with -9V offset, vBatMax has a -12V offset -#if defined(PCBX9E) || defined(PCBX12S) - // NI-MH 9.6V - g_eeGeneral.vBatWarn = 87; - g_eeGeneral.vBatMin = -5; //8,5V - g_eeGeneral.vBatMax = -5; //11,5V -#elif defined(PCBX10) - // Lipo 2V - g_eeGeneral.vBatWarn = 66; - g_eeGeneral.vBatMin = -28; // 6.2V - g_eeGeneral.vBatMax = -38; // 8.2V -#elif defined(PCBTARANIS) - // NI-MH 7.2V, X9D, X9D+ and X7 - g_eeGeneral.vBatWarn = 65; - g_eeGeneral.vBatMin = -30; //6V - g_eeGeneral.vBatMax = -40; //8V -#else - g_eeGeneral.vBatWarn = 90; -#endif + // vBatWarn is voltage in 100mV, vBatMin is in 100mV but with -9V offset, vBatMax has a -12V offset + g_eeGeneral.vBatWarn = BATTERY_WARN; + if (BATTERY_MIN != 90) + g_eeGeneral.vBatMin = BATTERY_MIN - 90; + if (BATTERY_MAX != 120) + g_eeGeneral.vBatMax = BATTERY_MAX - 120; #if defined(DEFAULT_MODE) g_eeGeneral.stickMode = DEFAULT_MODE-1; @@ -2860,7 +2849,7 @@ uint32_t pwrCheck() event_t evt = getEvent(false); DISPLAY_WARNING(evt); lcdRefresh(); - + if (warningResult) { pwr_check_state = PWR_CHECK_OFF; return e_power_off; diff --git a/radio/src/opentx.h b/radio/src/opentx.h index a2187dcd9..77a1874d5 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -327,10 +327,12 @@ void memswap(void * a, void * b, uint8_t size); #define IS_POT_SLIDER_AVAILABLE(x) (IS_POT_AVAILABLE(x) || IS_SLIDER_AVAILABLE(x)) #define IS_MULTIPOS_CALIBRATED(cal) (cal->count>0 && cal->count> (2*((x)-POT1)))&0x03) + #define IS_POT_MULTIPOS(x) (IS_POT(x) && POT_CONFIG(x)==POT_MULTIPOS_SWITCH) + #define IS_POT_WITHOUT_DETENT(x) (IS_POT(x) && POT_CONFIG(x)==POT_WITHOUT_DETENT) + #define IS_POT_AVAILABLE(x) (IS_POT(x) && POT_CONFIG(x)!=POT_NONE) + #define IS_POT_SLIDER_AVAILABLE(x) (IS_POT_AVAILABLE(x)) + #define IS_MULTIPOS_CALIBRATED(cal) (cal->count>0 && cal->count ppm; diff --git a/radio/src/pulses/pxx_arm.cpp b/radio/src/pulses/pxx_arm.cpp index 2e9933162..cdea5a00f 100644 --- a/radio/src/pulses/pxx_arm.cpp +++ b/radio/src/pulses/pxx_arm.cpp @@ -60,7 +60,7 @@ const uint16_t CRCTable[]= 0x7bc7,0x6a4e,0x58d5,0x495c,0x3de3,0x2c6a,0x1ef1,0x0f78 }; -#if defined(INTMODULE_USART) +#if defined(INTMODULE_USART) || defined(EXTMODULE_USART) inline void uartPutPcmPart(uint8_t port, uint8_t byte) { if (0x7E == byte) { @@ -204,7 +204,7 @@ void pxxPutPcmCrc(uint8_t port) pxxPutPcmByte(port, pulseValue); } -#if defined(INTMODULE_USART) +#if defined(INTMODULE_USART) || defined(EXTMODULE_USART) inline void initPcmArray(uint8_t port) { if (IS_UART_MODULE(port)) diff --git a/radio/src/simu.cpp b/radio/src/simu.cpp index e5cd5ff95..a54d32f5d 100644 --- a/radio/src/simu.cpp +++ b/radio/src/simu.cpp @@ -251,7 +251,7 @@ void Open9xSim::updateKeysAndSwitches(bool start) KEY_Right, KEY_RIGHT, KEY_Left, KEY_LEFT, #elif defined(PCBXLITE) - KEY_Page_Up, KEY_MENU, + KEY_Shift_L, KEY_SHIFT, KEY_Return, KEY_ENTER, KEY_BackSpace, KEY_EXIT, KEY_Right, KEY_RIGHT, diff --git a/radio/src/switches.cpp b/radio/src/switches.cpp index 8edd24c04..39f08c434 100644 --- a/radio/src/switches.cpp +++ b/radio/src/switches.cpp @@ -837,7 +837,7 @@ void checkSwitches() last_bad_switches = 0xff; } #else - if (pwrCheck()==e_power_off || keyDown()) break; + if (pwrCheck() == e_power_off || keyDown()) break; doLoopCommonActions(); diff --git a/radio/src/targets/9x/board.h b/radio/src/targets/9x/board.h index 67ed58a4b..b23ee8e9b 100644 --- a/radio/src/targets/9x/board.h +++ b/radio/src/targets/9x/board.h @@ -79,8 +79,12 @@ void boardInit(void); #define KEYS_GPIO_PIN_UP (1<<4) #define KEYS_GPIO_REG_DOWN pinb #define KEYS_GPIO_PIN_DOWN (1<<3) +#define IS_SHIFT_KEY(index) (false) +#define IS_SHIFT_PRESSED() (false) // Trims +#define NUM_TRIMS 4 +#define NUM_TRIMS_KEYS (NUM_TRIMS * 2) #define TRIMS_GPIO_REG_LHL pind #define TRIMS_GPIO_PIN_LHL (1<<6) #define TRIMS_GPIO_REG_LVD pind @@ -257,4 +261,13 @@ void rotencPoll(); #define buzzerOn() PORTE |= (1 << OUT_E_BUZZER) #define buzzerOff() PORTE &= ~(1 << OUT_E_BUZZER) +// Battery driver +#define BATTERY_MIN 90 // 9V +#define BATTERY_MAX 120 // 12V +#define BATTERY_WARN 90 // 9V + +// Analogs +#define NUM_MOUSE_ANALOGS 0 +#define NUM_DUMMY_ANAS 0 + #endif // _BOARD_STOCK_H_ diff --git a/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp b/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp index 9ab7d6eeb..7cbf06438 100644 --- a/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp +++ b/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp @@ -23,7 +23,7 @@ Fifo btTxFifo; Fifo btRxFifo; -#if defined(PCBX7) || defined(PCBXLITE) +#if defined(PCBX7) uint8_t btChipPresent = 0; #endif @@ -109,8 +109,9 @@ extern "C" void BT_USART_IRQHandler(void) USART_ClearITPendingBit(BT_USART, USART_IT_RXNE); uint8_t byte = USART_ReceiveData(BT_USART); btRxFifo.push(byte); -#if defined(PCBX7) || defined(PCBXLITE) - if (!btChipPresent) { //This is to differentiate X7 and X7S +#if defined(PCBX7) + if (!btChipPresent) { + // This is to differentiate X7 and X7S btChipPresent = 1; bluetoothDone(); } diff --git a/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt b/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt index 48f15d29f..c88ac1bb6 100644 --- a/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt +++ b/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt @@ -21,7 +21,7 @@ elseif(PCB STREQUAL X9E) set(BOOTLOADER_SRC ${BOOTLOADER_SRC} ../f4/system_stm32f4xx.c - ../../../../../${STM32LIB_DIR}/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc_ride7/startup_stm32f40_41xxx.s + ../../../../../targets/${TARGET_DIR}/startup_stm32f40_41xxx.s ../../../../../${STM32LIB_DIR}/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_rcc.c ../../../../../${STM32LIB_DIR}/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_gpio.c ../../../../../${STM32LIB_DIR}/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_spi.c diff --git a/radio/src/targets/common/arm/stm32/bootloader/boot.cpp b/radio/src/targets/common/arm/stm32/bootloader/boot.cpp index 8b71eef84..48e42f342 100644 --- a/radio/src/targets/common/arm/stm32/bootloader/boot.cpp +++ b/radio/src/targets/common/arm/stm32/bootloader/boot.cpp @@ -256,13 +256,13 @@ int main() // init screen bootloaderInitScreen(); -#if defined(PWR_PRESS_BUTTON) or defined(PCBHORUS) +#if defined(PWR_BUTTON_PRESS) // wait until power button is released while(pwrPressed()) { - wdt_reset(); + wdt_reset(); } #endif - + for (;;) { wdt_reset(); diff --git a/radio/src/targets/gruvin9x/board.h b/radio/src/targets/gruvin9x/board.h index 99e7f709e..d0f2b76a8 100644 --- a/radio/src/targets/gruvin9x/board.h +++ b/radio/src/targets/gruvin9x/board.h @@ -40,8 +40,12 @@ void boardInit(void); #define KEYS_GPIO_PIN_UP (1<<1) #define KEYS_GPIO_REG_DOWN pinl #define KEYS_GPIO_PIN_DOWN (1<<0) +#define IS_SHIFT_KEY(index) (false) +#define IS_SHIFT_PRESSED() (false) // Trims +#define NUM_TRIMS 4 +#define NUM_TRIMS_KEYS (NUM_TRIMS * 2) #define TRIMS_GPIO_REG_LHL pinj #define TRIMS_GPIO_REG_LVD pinj #define TRIMS_GPIO_REG_RVU pinj @@ -168,4 +172,13 @@ void pwrOff(); #define buzzerOn() PORTE |= (1 << OUT_E_BUZZER) #define buzzerOff() PORTE &= ~(1 << OUT_E_BUZZER) +// Battery driver +#define BATTERY_MIN 90 // 9V +#define BATTERY_MAX 120 // 12V +#define BATTERY_WARN 90 // 9V + +// Analogs driver +#define NUM_MOUSE_ANALOGS 0 +#define NUM_DUMMY_ANAS 0 + #endif // _BOARD_GRUVIN9X_H_ diff --git a/radio/src/targets/horus/board.h b/radio/src/targets/horus/board.h index 40cf97744..220059a49 100644 --- a/radio/src/targets/horus/board.h +++ b/radio/src/targets/horus/board.h @@ -242,6 +242,9 @@ enum EnumKeys NUM_KEYS }; +#define IS_SHIFT_KEY(index) (false) +#define IS_SHIFT_PRESSED() (false) + enum EnumSwitches { SW_SA, @@ -287,13 +290,17 @@ void keysInit(void); uint8_t keyState(uint8_t index); uint32_t switchState(uint8_t index); uint32_t readKeys(void); +#define KEYS_PRESSED() (readKeys()) +#define DBLKEYS_PRESSED_RGT_LFT(in) ((in & ((1< 0 extern uint8_t analogs_pwm_disabled; #define ANALOGS_PWM_ENABLED() (analogs_pwm_disabled == false) @@ -406,6 +419,20 @@ void analogPwmCheck(); extern volatile uint32_t pwm_interrupt_count; #endif +// Battery driver +#if defined(PCBX10) + // Lipo 2S + #define BATTERY_WARN 66 // 6.6V + #define BATTERY_MIN 62 // 6.2V + #define BATTERY_MAX 82 // 8.2V +#else + // NI-MH 9.6V + #define BATTERY_WARN 87 // 8.7V + #define BATTERY_MIN 85 // 8.5V + #define BATTERY_MAX 115 // 11.5V +#endif +uint16_t getBatteryVoltage(); // returns current battery voltage in 10mV steps + #if defined(__cplusplus) && !defined(SIMU) extern "C" { #endif diff --git a/radio/src/targets/horus/keys_driver.cpp b/radio/src/targets/horus/keys_driver.cpp index a20d37397..c78a41dd0 100644 --- a/radio/src/targets/horus/keys_driver.cpp +++ b/radio/src/targets/horus/keys_driver.cpp @@ -142,9 +142,9 @@ uint16_t trimDown(uint16_t idx) return readTrims() & (1 << idx); } -uint8_t keyDown() +bool keyDown() { - return readKeys(); + return readKeys() || readTrims(); } /* TODO common to ARM */ @@ -153,14 +153,19 @@ void readKeysAndTrims() uint32_t i; uint8_t index = 0; - uint32_t in = readKeys(); + uint32_t keys_input = readKeys(); for (i = 0; i < TRM_BASE; i++) { - keys[index++].input(in & (1 << i)); + keys[index++].input(keys_input & (1 << i)); } - in = readTrims(); + uint32_t trims_input = readTrims(); for (i = 1; i <= 1 << (TRM_LAST-TRM_BASE); i <<= 1) { - keys[index++].input(in & i); + keys[index++].input(trims_input & i); + } + + if ((keys_input || trims_input) && (g_eeGeneral.backlightMode & e_backlight_mode_keys)) { + // on keypress turn the light on + backlightOn(); } } diff --git a/radio/src/targets/horus/pwr_driver.cpp b/radio/src/targets/horus/pwr_driver.cpp index e7d9fbfde..7c7dab489 100644 --- a/radio/src/targets/horus/pwr_driver.cpp +++ b/radio/src/targets/horus/pwr_driver.cpp @@ -28,14 +28,11 @@ uint32_t powerupReason __NOINIT; // Stores power up reason beyond initializati void pwrInit() { GPIO_InitTypeDef GPIO_InitStructure; - GPIO_InitStructure.GPIO_Pin = PWR_ON_GPIO_PIN; + // Init Module PWR GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; - GPIO_Init(PWR_GPIO, &GPIO_InitStructure); - - // Init Module PWR GPIO_ResetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN); GPIO_InitStructure.GPIO_Pin = INTMODULE_PWR_GPIO_PIN; GPIO_Init(INTMODULE_PWR_GPIO, &GPIO_InitStructure); diff --git a/radio/src/targets/mega2560/board.h b/radio/src/targets/mega2560/board.h index 2ba24140c..d5e9cf9a3 100644 --- a/radio/src/targets/mega2560/board.h +++ b/radio/src/targets/mega2560/board.h @@ -41,7 +41,12 @@ void boardInit(void); #define KEYS_GPIO_REG_DOWN pinl #define KEYS_GPIO_PIN_DOWN (1<<0) +#define IS_SHIFT_KEY(index) (false) +#define IS_SHIFT_PRESSED() (false) + // Trims +#define NUM_TRIMS 4 +#define NUM_TRIMS_KEYS (NUM_TRIMS * 2) #define TRIMS_GPIO_REG_LHL pinf #define TRIMS_GPIO_PIN_LHL (1<<7) #define TRIMS_GPIO_REG_LVD pinf @@ -193,4 +198,13 @@ void pwrOff(); #define JQ6500_BUSY (PINB & (1<CR &= ~DMA_SxCR_EN; // Disable DMA + +#if defined(EXTMODULE_USART) + NVIC_DisableIRQ(EXTMODULE_USART_DMA_STREAM_IRQn); + EXTMODULE_USART_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA +#endif - EXTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA EXTMODULE_TIMER->DIER &= ~(TIM_DIER_CC2IE | TIM_DIER_UDE); EXTMODULE_TIMER->CR1 &= ~TIM_CR1_CEN; @@ -70,7 +75,7 @@ void extmodulePpmStart() { EXTERNAL_MODULE_ON(); - GPIO_PinAFConfig(EXTMODULE_TX_GPIO, EXTMODULE_TX_GPIO_PinSource, EXTMODULE_TX_GPIO_AF); + GPIO_PinAFConfig(EXTMODULE_TX_GPIO, EXTMODULE_TX_GPIO_PinSource, EXTMODULE_TIMER_TX_GPIO_AF); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = EXTMODULE_TX_GPIO_PIN; @@ -84,7 +89,7 @@ void extmodulePpmStart() EXTMODULE_TIMER->PSC = EXTMODULE_TIMER_FREQ / 2000000 - 1; // 0.5uS from 30MHz EXTMODULE_TIMER->ARR = 45000; EXTMODULE_TIMER->CCR1 = GET_PPM_DELAY(EXTERNAL_MODULE)*2; - EXTMODULE_TIMER->CCER = TIM_CCER_CC1NE | (GET_PPM_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC1NP : 0); // // we are using complementary output so logic has to be reversed here + EXTMODULE_TIMER->CCER = EXTMODULE_TIMER_OUTPUT_ENABLE | (GET_PPM_POLARITY(EXTERNAL_MODULE) ? EXTMODULE_TIMER_OUTPUT_POLARITY : 0); // // we are using complementary output so logic has to be reversed here EXTMODULE_TIMER->BDTR = TIM_BDTR_MOE; EXTMODULE_TIMER->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0; // Force O/P high EXTMODULE_TIMER->EGR = 1; @@ -94,17 +99,73 @@ void extmodulePpmStart() extmoduleSendNextFrame(); - NVIC_EnableIRQ(EXTMODULE_DMA_IRQn); - NVIC_SetPriority(EXTMODULE_DMA_IRQn, 7); + NVIC_EnableIRQ(EXTMODULE_TIMER_DMA_STREAM_IRQn); + NVIC_SetPriority(EXTMODULE_TIMER_DMA_STREAM_IRQn, 7); NVIC_EnableIRQ(EXTMODULE_TIMER_CC_IRQn); NVIC_SetPriority(EXTMODULE_TIMER_CC_IRQn, 7); } +#if defined(EXTMODULE_USART) void extmodulePxxStart() { EXTERNAL_MODULE_ON(); - GPIO_PinAFConfig(EXTMODULE_TX_GPIO, EXTMODULE_TX_GPIO_PinSource, EXTMODULE_TX_GPIO_AF); + NVIC_InitTypeDef NVIC_InitStructure; + NVIC_InitStructure.NVIC_IRQChannel = EXTMODULE_USART_DMA_STREAM_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /* Not used as 4 bits are used for the pre-emption priority. */; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); + + // TX Pin + GPIO_PinAFConfig(EXTMODULE_TX_GPIO, EXTMODULE_TX_GPIO_PinSource, EXTMODULE_USART_TX_GPIO_AF); + + GPIO_InitTypeDef GPIO_InitStructure; + GPIO_InitStructure.GPIO_Pin = EXTMODULE_TX_GPIO_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(EXTMODULE_TX_GPIO, &GPIO_InitStructure); + +#if 0 + // RX Pin + GPIO_PinAFConfig(EXTMODULE_RX_GPIO, EXTMODULE_RX_GPIO_PinSource, EXTMODULE_TX_GPIO_USART_AF); + GPIO_InitStructure.GPIO_Pin = EXTMODULE_RX_GPIO_PIN; + GPIO_Init(EXTMODULE_RX_GPIO, &GPIO_InitStructure); +#endif + + // UART config + USART_DeInit(EXTMODULE_USART); + USART_InitTypeDef USART_InitStructure; + USART_InitStructure.USART_BaudRate = 115200; + USART_InitStructure.USART_Parity = USART_Parity_No; + USART_InitStructure.USART_StopBits = USART_StopBits_1; + USART_InitStructure.USART_WordLength = USART_WordLength_8b; + USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; + USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; + USART_Init(EXTMODULE_USART, &USART_InitStructure); + USART_Cmd(EXTMODULE_USART, ENABLE); + + // Timer + EXTMODULE_TIMER->CR1 &= ~TIM_CR1_CEN; + EXTMODULE_TIMER->PSC = EXTMODULE_TIMER_FREQ / 2000000 - 1; // 0.5uS from 30MHz + EXTMODULE_TIMER->ARR = 18000; // 9mS + EXTMODULE_TIMER->CCR2 = 16000; // Update time + EXTMODULE_TIMER->EGR = 1; // Restart + EXTMODULE_TIMER->SR &= ~TIM_SR_CC2IF; + EXTMODULE_TIMER->DIER |= TIM_DIER_CC2IE; // Enable this interrupt + EXTMODULE_TIMER->CR1 |= TIM_CR1_CEN; + + NVIC_EnableIRQ(EXTMODULE_TIMER_CC_IRQn); + NVIC_SetPriority(EXTMODULE_TIMER_CC_IRQn, 7); +} +#else +void extmodulePxxStart() +{ + EXTERNAL_MODULE_ON(); + + GPIO_PinAFConfig(EXTMODULE_TX_GPIO, EXTMODULE_TX_GPIO_PinSource, EXTMODULE_TIMER_TX_GPIO_AF); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = EXTMODULE_TX_GPIO_PIN; @@ -117,7 +178,7 @@ void extmodulePxxStart() EXTMODULE_TIMER->CR1 &= ~TIM_CR1_CEN; EXTMODULE_TIMER->PSC = EXTMODULE_TIMER_FREQ / 2000000 - 1; // 0.5uS (2Mhz) EXTMODULE_TIMER->ARR = 18000; - EXTMODULE_TIMER->CCER = TIM_CCER_CC1E | TIM_CCER_CC1NE; //polarity, default low + EXTMODULE_TIMER->CCER = EXTMODULE_TIMER_OUTPUT_ENABLE | EXTMODULE_TIMER_OUTPUT_POLARITY; // polarity, default low EXTMODULE_TIMER->BDTR = TIM_BDTR_MOE; // Enable outputs EXTMODULE_TIMER->CCR1 = 18; EXTMODULE_TIMER->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0; // Force O/P high @@ -128,18 +189,19 @@ void extmodulePxxStart() extmoduleSendNextFrame(); - NVIC_EnableIRQ(EXTMODULE_DMA_IRQn); - NVIC_SetPriority(EXTMODULE_DMA_IRQn, 7); + NVIC_EnableIRQ(EXTMODULE_TIMER_DMA_STREAM_IRQn); + NVIC_SetPriority(EXTMODULE_TIMER_DMA_STREAM_IRQn, 7); NVIC_EnableIRQ(EXTMODULE_TIMER_CC_IRQn); NVIC_SetPriority(EXTMODULE_TIMER_CC_IRQn, 7); } +#endif #if defined(DSM2) || defined(MULTIMODULE) void extmoduleDsm2Start() { EXTERNAL_MODULE_ON(); - GPIO_PinAFConfig(EXTMODULE_TX_GPIO, EXTMODULE_TX_GPIO_PinSource, EXTMODULE_TX_GPIO_AF); + GPIO_PinAFConfig(EXTMODULE_TX_GPIO, EXTMODULE_TX_GPIO_PinSource, EXTMODULE_TIMER_TX_GPIO_AF); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = EXTMODULE_TX_GPIO_PIN; @@ -152,7 +214,7 @@ void extmoduleDsm2Start() EXTMODULE_TIMER->CR1 &= ~TIM_CR1_CEN; EXTMODULE_TIMER->PSC = EXTMODULE_TIMER_FREQ / 2000000 - 1; // 0.5uS from 30MHz EXTMODULE_TIMER->ARR = 44000; // 22mS - EXTMODULE_TIMER->CCER = TIM_CCER_CC1NE | TIM_CCER_CC1NP; + EXTMODULE_TIMER->CCER = EXTMODULE_TIMER_OUTPUT_ENABLE | EXTMODULE_TIMER_OUTPUT_POLARITY; EXTMODULE_TIMER->BDTR = TIM_BDTR_MOE; // Enable outputs EXTMODULE_TIMER->CCR1 = 0; EXTMODULE_TIMER->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0; // Force O/P high @@ -163,8 +225,8 @@ void extmoduleDsm2Start() extmoduleSendNextFrame(); - NVIC_EnableIRQ(EXTMODULE_DMA_IRQn); - NVIC_SetPriority(EXTMODULE_DMA_IRQn, 7); + NVIC_EnableIRQ(EXTMODULE_TIMER_DMA_STREAM_IRQn); + NVIC_SetPriority(EXTMODULE_TIMER_DMA_STREAM_IRQn, 7); NVIC_EnableIRQ(EXTMODULE_TIMER_CC_IRQn); NVIC_SetPriority(EXTMODULE_TIMER_CC_IRQn, 7); } @@ -202,46 +264,70 @@ void extmoduleSendNextFrame() { if (s_current_protocol[EXTERNAL_MODULE] == PROTO_PPM) { EXTMODULE_TIMER->CCR1 = GET_PPM_DELAY(EXTERNAL_MODULE)*2; - EXTMODULE_TIMER->CCER = TIM_CCER_CC1NE | (GET_PPM_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC1NP : 0); // // we are using complementary output so logic has to be reversed here + EXTMODULE_TIMER->CCER = EXTMODULE_TIMER_OUTPUT_ENABLE | (GET_PPM_POLARITY(EXTERNAL_MODULE) ? EXTMODULE_TIMER_OUTPUT_POLARITY : 0); // // we are using complementary output so logic has to be reversed here EXTMODULE_TIMER->CCR2 = *(modulePulsesData[EXTERNAL_MODULE].ppm.ptr - 1) - 4000; // 2mS in advance - EXTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA - EXTMODULE_DMA_STREAM->CR |= EXTMODULE_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1; - EXTMODULE_DMA_STREAM->PAR = CONVERT_PTR_UINT(&EXTMODULE_TIMER->ARR); - EXTMODULE_DMA_STREAM->M0AR = CONVERT_PTR_UINT(modulePulsesData[EXTERNAL_MODULE].ppm.pulses); - EXTMODULE_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].ppm.ptr - modulePulsesData[EXTERNAL_MODULE].ppm.pulses; - EXTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA + EXTMODULE_TIMER_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA + EXTMODULE_TIMER_DMA_STREAM->CR |= EXTMODULE_TIMER_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1; + EXTMODULE_TIMER_DMA_STREAM->PAR = CONVERT_PTR_UINT(&EXTMODULE_TIMER->ARR); + EXTMODULE_TIMER_DMA_STREAM->M0AR = CONVERT_PTR_UINT(modulePulsesData[EXTERNAL_MODULE].ppm.pulses); + EXTMODULE_TIMER_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].ppm.ptr - modulePulsesData[EXTERNAL_MODULE].ppm.pulses; + EXTMODULE_TIMER_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA } else if (s_current_protocol[EXTERNAL_MODULE] == PROTO_PXX) { +#if defined(EXTMODULE_USART) + DMA_InitTypeDef DMA_InitStructure; + DMA_DeInit(EXTMODULE_USART_DMA_STREAM); + DMA_InitStructure.DMA_Channel = EXTMODULE_USART_DMA_CHANNEL; + DMA_InitStructure.DMA_PeripheralBaseAddr = CONVERT_PTR_UINT(&EXTMODULE_USART->DR); + DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; + DMA_InitStructure.DMA_Memory0BaseAddr = CONVERT_PTR_UINT(modulePulsesData[EXTERNAL_MODULE].pxx_uart.pulses); + DMA_InitStructure.DMA_BufferSize = modulePulsesData[EXTERNAL_MODULE].pxx_uart.ptr - modulePulsesData[EXTERNAL_MODULE].pxx_uart.pulses; + DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; + DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; + DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; + DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; + DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; + DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; + DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; + DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; + DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; + DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; + DMA_Init(EXTMODULE_USART_DMA_STREAM, &DMA_InitStructure); + DMA_Cmd(EXTMODULE_USART_DMA_STREAM, ENABLE); + USART_DMACmd(EXTMODULE_USART, USART_DMAReq_Tx, ENABLE); + EXTMODULE_TIMER->DIER |= TIM_DIER_CC2IE; +#else EXTMODULE_TIMER->CCR2 = *(modulePulsesData[EXTERNAL_MODULE].pxx.ptr - 1) - 4000; // 2mS in advance - EXTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA - EXTMODULE_DMA_STREAM->CR |= EXTMODULE_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1; - EXTMODULE_DMA_STREAM->PAR = CONVERT_PTR_UINT(&EXTMODULE_TIMER->ARR); - EXTMODULE_DMA_STREAM->M0AR = CONVERT_PTR_UINT(modulePulsesData[EXTERNAL_MODULE].pxx.pulses); - EXTMODULE_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].pxx.ptr - modulePulsesData[EXTERNAL_MODULE].pxx.pulses; - EXTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA + EXTMODULE_TIMER_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA + EXTMODULE_TIMER_DMA_STREAM->CR |= EXTMODULE_TIMER_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1; + EXTMODULE_TIMER_DMA_STREAM->PAR = CONVERT_PTR_UINT(&EXTMODULE_TIMER->ARR); + EXTMODULE_TIMER_DMA_STREAM->M0AR = CONVERT_PTR_UINT(modulePulsesData[EXTERNAL_MODULE].pxx.pulses); + EXTMODULE_TIMER_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].pxx.ptr - modulePulsesData[EXTERNAL_MODULE].pxx.pulses; + EXTMODULE_TIMER_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA +#endif } else if (IS_DSM2_PROTOCOL(s_current_protocol[EXTERNAL_MODULE]) || IS_MULTIMODULE_PROTOCOL(s_current_protocol[EXTERNAL_MODULE]) || IS_SBUS_PROTOCOL(s_current_protocol[EXTERNAL_MODULE])) { if (IS_SBUS_PROTOCOL(s_current_protocol[EXTERNAL_MODULE])) EXTMODULE_TIMER->CCER = TIM_CCER_CC1NE | (GET_SBUS_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC1NP : 0); // reverse polarity for Sbus if needed EXTMODULE_TIMER->CCR2 = *(modulePulsesData[EXTERNAL_MODULE].dsm2.ptr - 1) - 4000; // 2mS in advance - EXTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA - EXTMODULE_DMA_STREAM->CR |= EXTMODULE_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1; - EXTMODULE_DMA_STREAM->PAR = CONVERT_PTR_UINT(&EXTMODULE_TIMER->ARR); - EXTMODULE_DMA_STREAM->M0AR = CONVERT_PTR_UINT(modulePulsesData[EXTERNAL_MODULE].dsm2.pulses); - EXTMODULE_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].dsm2.ptr - modulePulsesData[EXTERNAL_MODULE].dsm2.pulses; - EXTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA + EXTMODULE_TIMER_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA + EXTMODULE_TIMER_DMA_STREAM->CR |= EXTMODULE_TIMER_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1; + EXTMODULE_TIMER_DMA_STREAM->PAR = CONVERT_PTR_UINT(&EXTMODULE_TIMER->ARR); + EXTMODULE_TIMER_DMA_STREAM->M0AR = CONVERT_PTR_UINT(modulePulsesData[EXTERNAL_MODULE].dsm2.pulses); + EXTMODULE_TIMER_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].dsm2.ptr - modulePulsesData[EXTERNAL_MODULE].dsm2.pulses; + EXTMODULE_TIMER_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA } else { EXTMODULE_TIMER->DIER |= TIM_DIER_CC2IE; } } -extern "C" void EXTMODULE_DMA_IRQHandler() +extern "C" void EXTMODULE_TIMER_DMA_STREAM_IRQHandler() { - if (!DMA_GetITStatus(EXTMODULE_DMA_STREAM, EXTMODULE_DMA_FLAG_TC)) + if (!DMA_GetITStatus(EXTMODULE_TIMER_DMA_STREAM, EXTMODULE_TIMER_DMA_FLAG_TC)) return; - DMA_ClearITPendingBit(EXTMODULE_DMA_STREAM, EXTMODULE_DMA_FLAG_TC); + DMA_ClearITPendingBit(EXTMODULE_TIMER_DMA_STREAM, EXTMODULE_TIMER_DMA_FLAG_TC); EXTMODULE_TIMER->SR &= ~TIM_SR_CC2IF; // Clear flag EXTMODULE_TIMER->DIER |= TIM_DIER_CC2IE; // Enable this interrupt diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 05d804c22..c4ee06126 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -32,8 +32,8 @@ #define KEYS_GPIO_REG_ENTER GPIOF->IDR #define KEYS_GPIO_PIN_ENTER GPIO_Pin_0 // PF.00 #elif defined(PCBXLITE) - #define KEYS_GPIO_REG_MENU GPIOE->IDR - #define KEYS_GPIO_PIN_MENU GPIO_Pin_8 // PE.08 + #define KEYS_GPIO_REG_SHIFT GPIOE->IDR + #define KEYS_GPIO_PIN_SHIFT GPIO_Pin_8 // PE.08 #define KEYS_GPIO_REG_EXIT GPIOE->IDR #define KEYS_GPIO_PIN_EXIT GPIO_Pin_7 // PE.07 #define KEYS_GPIO_REG_ENTER GPIOE->IDR @@ -161,10 +161,10 @@ #define SWITCHES_GPIO_REG_A_L GPIOD->IDR #define SWITCHES_GPIO_PIN_A_L GPIO_Pin_14 // PD.14 #elif defined(PCBXLITE) - #define SWITCHES_GPIO_REG_A_L GPIOE->IDR - #define SWITCHES_GPIO_PIN_A_L GPIO_Pin_1 // PE.01 #define SWITCHES_GPIO_REG_A_H GPIOE->IDR - #define SWITCHES_GPIO_PIN_A_H GPIO_Pin_0 // PE.00 + #define SWITCHES_GPIO_PIN_A_H GPIO_Pin_1 // PE.01 + #define SWITCHES_GPIO_REG_A_L GPIOE->IDR + #define SWITCHES_GPIO_PIN_A_L GPIO_Pin_0 // PE.00 #elif defined(PCBX7) #define SWITCHES_GPIO_REG_A_L GPIOE->IDR #define SWITCHES_GPIO_PIN_A_L GPIO_Pin_7 // PE.07 @@ -183,10 +183,10 @@ #define SWITCHES_GPIO_REG_B_L GPIOG->IDR #define SWITCHES_GPIO_PIN_B_L GPIO_Pin_10 // PG.10 #elif defined(PCBXLITE) - #define SWITCHES_GPIO_REG_B_H GPIOA->IDR - #define SWITCHES_GPIO_PIN_B_H GPIO_Pin_6 // PA.06 #define SWITCHES_GPIO_REG_B_L GPIOA->IDR - #define SWITCHES_GPIO_PIN_B_L GPIO_Pin_5 // PA.05 + #define SWITCHES_GPIO_PIN_B_L GPIO_Pin_6 // PA.06 + #define SWITCHES_GPIO_REG_B_H GPIOA->IDR + #define SWITCHES_GPIO_PIN_B_H GPIO_Pin_5 // PA.05 #elif defined(PCBX7) #define SWITCHES_GPIO_REG_B_L GPIOE->IDR #define SWITCHES_GPIO_PIN_B_L GPIO_Pin_15 // PE.15 @@ -205,10 +205,10 @@ #define SWITCHES_GPIO_REG_C_L GPIOF->IDR #define SWITCHES_GPIO_PIN_C_L GPIO_Pin_14 // PF.14 #elif defined(PCBXLITE) - #define SWITCHES_GPIO_REG_C_H GPIOE->IDR - #define SWITCHES_GPIO_PIN_C_H GPIO_Pin_2 // PE.02 #define SWITCHES_GPIO_REG_C_L GPIOE->IDR - #define SWITCHES_GPIO_PIN_C_L GPIO_Pin_3 // PE.03 + #define SWITCHES_GPIO_PIN_C_L GPIO_Pin_2 // PE.02 + #define SWITCHES_GPIO_REG_C_H GPIOE->IDR + #define SWITCHES_GPIO_PIN_C_H GPIO_Pin_3 // PE.03 #elif defined(PCBX7) #define SWITCHES_GPIO_REG_C_L GPIOD->IDR #define SWITCHES_GPIO_PIN_C_L GPIO_Pin_11 // PD.11 @@ -232,10 +232,10 @@ #define SWITCHES_GPIO_REG_D_L GPIOE->IDR #define SWITCHES_GPIO_PIN_D_L GPIO_Pin_13 // PE.13 #elif defined(PCBXLITE) - #define SWITCHES_GPIO_REG_D_H GPIOB->IDR - #define SWITCHES_GPIO_PIN_D_H GPIO_Pin_4 // PB.04 #define SWITCHES_GPIO_REG_D_L GPIOB->IDR - #define SWITCHES_GPIO_PIN_D_L GPIO_Pin_5 // PB.05 + #define SWITCHES_GPIO_PIN_D_L GPIO_Pin_4 // PB.04 + #define SWITCHES_GPIO_REG_D_H GPIOB->IDR + #define SWITCHES_GPIO_PIN_D_H GPIO_Pin_5 // PB.05 #elif defined(PCBX7) #define SWITCHES_GPIO_REG_D_L GPIOE->IDR #define SWITCHES_GPIO_PIN_D_L GPIO_Pin_1 // PE.01 @@ -538,9 +538,7 @@ // PWR and LED driver #define PWR_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE) -#if defined(PCBX9E) || defined(PCBX7) || defined(PCBXLITE) -#define PWR_PRESS_BUTTON -#endif + #if defined(PCBXLITE) #define PWR_SWITCH_GPIO GPIOA #define PWR_SWITCH_GPIO_PIN GPIO_Pin_7 // PA.07 @@ -560,9 +558,9 @@ #define GPIO_LED_GPIO_ON GPIO_ResetBits #define GPIO_LED_GPIO_OFF GPIO_SetBits #define LED_BLUE_GPIO GPIOE - #define LED_BLUE_GPIO_PIN GPIO_Pin_4 // PE.04 + #define LED_BLUE_GPIO_PIN GPIO_Pin_6 // PE.06 #define LED_RED_GPIO GPIOE - #define LED_RED_GPIO_PIN GPIO_Pin_6 // PE.06 + #define LED_RED_GPIO_PIN GPIO_Pin_4 // PE.04 #define LED_GREEN_GPIO GPIOE #define LED_GREEN_GPIO_PIN GPIO_Pin_5 // PE.05 #elif defined(PCBX7) @@ -648,22 +646,32 @@ #define EXTMODULE_PULSES #if defined(PCBXLITE) #define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2) - #define EXTMODULE_RCC_APB2Periph RCC_APB2Periph_TIM8 + #define EXTMODULE_RCC_APB2Periph (RCC_APB2Periph_TIM8 | RCC_APB2Periph_USART6) #define EXTMODULE_PWR_GPIO GPIOD #define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_11 // PD.11 #define EXTMODULE_TX_GPIO GPIOC #define EXTMODULE_TX_GPIO_PIN GPIO_Pin_6 // PC.06 #define EXTMODULE_TX_GPIO_PinSource GPIO_PinSource6 #define EXTMODULE_TIMER TIM8 - #define EXTMODULE_TX_GPIO_AF GPIO_AF_TIM8 // TIM8_CH1 + #define EXTMODULE_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2) #define EXTMODULE_TIMER_CC_IRQn TIM8_CC_IRQn #define EXTMODULE_TIMER_CC_IRQHandler TIM8_CC_IRQHandler - #define EXTMODULE_DMA_CHANNEL DMA_Channel_7 - #define EXTMODULE_DMA_STREAM DMA2_Stream1 - #define EXTMODULE_DMA_IRQn DMA2_Stream1_IRQn - #define EXTMODULE_DMA_IRQHandler DMA2_Stream1_IRQHandler - #define EXTMODULE_DMA_FLAG_TC DMA_IT_TCIF1 - #define EXTMODULE_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2) + #define EXTMODULE_TIMER_TX_GPIO_AF GPIO_AF_TIM8 // TIM8_CH1 + #define EXTMODULE_TIMER_DMA_CHANNEL DMA_Channel_7 + #define EXTMODULE_TIMER_DMA_STREAM DMA2_Stream1 + #define EXTMODULE_TIMER_DMA_STREAM_IRQn DMA2_Stream1_IRQn + #define EXTMODULE_TIMER_DMA_STREAM_IRQHandler DMA2_Stream1_IRQHandler + #define EXTMODULE_TIMER_DMA_FLAG_TC DMA_IT_TCIF1 + #define EXTMODULE_TIMER_OUTPUT_ENABLE TIM_CCER_CC1E + #define EXTMODULE_TIMER_OUTPUT_POLARITY TIM_CCER_CC1P + #define EXTMODULE_USART_TX_GPIO_AF GPIO_AF_USART6 + #define EXTMODULE_USART USART6 + #define EXTMODULE_USART_IRQn USART6_IRQn + #define EXTMODULE_USART_DMA_CHANNEL DMA_Channel_5 + #define EXTMODULE_USART_DMA_STREAM DMA2_Stream6 + #define EXTMODULE_USART_DMA_STREAM_IRQn DMA2_Stream6_IRQn + #define EXTMODULE_USART_DMA_STREAM_IRQHandler DMA2_Stream6_IRQHandler + #define EXTMODULE_USART_DMA_FLAG_TC DMA_IT_TCIF6 #else #define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2) #define EXTMODULE_RCC_APB2Periph RCC_APB2Periph_TIM8 @@ -673,14 +681,16 @@ #define EXTMODULE_TX_GPIO_PIN GPIO_Pin_7 // PA.07 #define EXTMODULE_TX_GPIO_PinSource GPIO_PinSource7 #define EXTMODULE_TIMER TIM8 - #define EXTMODULE_TX_GPIO_AF GPIO_AF_TIM8 // TIM8_CH1N + #define EXTMODULE_TIMER_TX_GPIO_AF GPIO_AF_TIM8 // TIM8_CH1N #define EXTMODULE_TIMER_CC_IRQn TIM8_CC_IRQn #define EXTMODULE_TIMER_CC_IRQHandler TIM8_CC_IRQHandler - #define EXTMODULE_DMA_CHANNEL DMA_Channel_7 - #define EXTMODULE_DMA_STREAM DMA2_Stream1 - #define EXTMODULE_DMA_IRQn DMA2_Stream1_IRQn - #define EXTMODULE_DMA_IRQHandler DMA2_Stream1_IRQHandler - #define EXTMODULE_DMA_FLAG_TC DMA_IT_TCIF1 + #define EXTMODULE_TIMER_DMA_CHANNEL DMA_Channel_7 + #define EXTMODULE_TIMER_DMA_STREAM DMA2_Stream1 + #define EXTMODULE_TIMER_DMA_STREAM_IRQn DMA2_Stream1_IRQn + #define EXTMODULE_TIMER_DMA_STREAM_IRQHandler DMA2_Stream1_IRQHandler + #define EXTMODULE_TIMER_DMA_FLAG_TC DMA_IT_TCIF1 + #define EXTMODULE_TIMER_OUTPUT_ENABLE TIM_CCER_CC1NE + #define EXTMODULE_TIMER_OUTPUT_POLARITY TIM_CCER_CC1NP #define EXTMODULE_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2) #endif @@ -775,11 +785,15 @@ #define SPORT_UPDATE_RCC_AHB1Periph RCC_AHB1Periph_GPIOD #define SPORT_UPDATE_PWR_GPIO GPIOD #define SPORT_UPDATE_PWR_GPIO_PIN GPIO_Pin_8 // PD.08 + #define GPIO_SPORT_UPDATE_PWR_GPIO_ON GPIO_SetBits + #define GPIO_SPORT_UPDATE_PWR_GPIO_OFF GPIO_ResetBits #elif defined(PCBX7) #define SPORT_MAX_BAUDRATE 250000 // < 400000 #define SPORT_UPDATE_RCC_AHB1Periph RCC_AHB1Periph_GPIOB #define SPORT_UPDATE_PWR_GPIO GPIOB #define SPORT_UPDATE_PWR_GPIO_PIN GPIO_Pin_2 // PB.02 + #define GPIO_SPORT_UPDATE_PWR_GPIO_ON GPIO_SetBits + #define GPIO_SPORT_UPDATE_PWR_GPIO_OFF GPIO_ResetBits #else #define SPORT_MAX_BAUDRATE 400000 #define SPORT_UPDATE_RCC_AHB1Periph 0 diff --git a/radio/src/targets/taranis/keys_driver.cpp b/radio/src/targets/taranis/keys_driver.cpp index a6d038d52..c7870caae 100644 --- a/radio/src/targets/taranis/keys_driver.cpp +++ b/radio/src/targets/taranis/keys_driver.cpp @@ -27,22 +27,30 @@ uint32_t rotencPosition; uint32_t readKeys() { uint32_t result = 0; + if (~KEYS_GPIO_REG_ENTER & KEYS_GPIO_PIN_ENTER) result |= 1 << KEY_ENTER; + +#if defined(KEYS_GPIO_PIN_MENU) if (~KEYS_GPIO_REG_MENU & KEYS_GPIO_PIN_MENU) result |= 1 << KEY_MENU; +#endif + #if defined(KEYS_GPIO_PIN_PAGE) if (~KEYS_GPIO_REG_PAGE & KEYS_GPIO_PIN_PAGE) result |= 1 << KEY_PAGE; #endif + if (~KEYS_GPIO_REG_EXIT & KEYS_GPIO_PIN_EXIT) result |= 1 << KEY_EXIT; + #if defined(KEYS_GPIO_PIN_PLUS) if (~KEYS_GPIO_REG_PLUS & KEYS_GPIO_PIN_PLUS) result |= 1 << KEY_PLUS; if (~KEYS_GPIO_REG_MINUS & KEYS_GPIO_PIN_MINUS) result |= 1 << KEY_MINUS; #endif + #if defined(KEYS_GPIO_PIN_LEFT) if (~KEYS_GPIO_REG_LEFT & KEYS_GPIO_PIN_LEFT) result |= 1 << KEY_LEFT; @@ -54,6 +62,11 @@ uint32_t readKeys() result |= 1 << KEY_DOWN; #endif +#if defined(KEYS_GPIO_PIN_SHIFT) + if (~KEYS_GPIO_REG_SHIFT & KEYS_GPIO_PIN_SHIFT) + result |= 1 << KEY_SHIFT; +#endif + // if (result != 0) TRACE("readKeys(): result=0x%02x", result); return result; @@ -72,7 +85,10 @@ uint32_t readTrims() if (~TRIMS_GPIO_REG_LVU & TRIMS_GPIO_PIN_LVU) result |= 0x08; -#if !defined(PCBXLITE) +#if defined(PCBXLITE) + if (IS_SHIFT_PRESSED()) + result = ((result & 0x03) << 6) | ((result & 0x0c) << 2); +#else if (~TRIMS_GPIO_REG_RVD & TRIMS_GPIO_PIN_RVD) result |= 0x10; if (~TRIMS_GPIO_REG_RVU & TRIMS_GPIO_PIN_RVU) @@ -93,9 +109,9 @@ uint8_t trimDown(uint8_t idx) return readTrims() & (1 << idx); } -uint8_t keyDown() +bool keyDown() { - return readKeys(); + return readKeys() || readTrims(); } #if defined(ROTARY_ENCODER_NAVIGATION) @@ -118,14 +134,19 @@ void checkRotaryEncoder() void readKeysAndTrims() { uint8_t index = 0; - uint32_t in = readKeys(); + uint32_t keys_input = readKeys(); for (uint8_t i = 1; i != uint8_t(1 << TRM_BASE); i <<= 1) { - keys[index++].input(in & i); + keys[index++].input(keys_input & i); } - in = readTrims(); + uint32_t trims_input = readTrims(); for (uint8_t i = 1; i != uint8_t(1 << 8); i <<= 1) { - keys[index++].input(in & i); + keys[index++].input(trims_input & i); + } + + if ((keys_input || trims_input) && (g_eeGeneral.backlightMode & e_backlight_mode_keys)) { + // on keypress turn the light on + backlightOn(); } } diff --git a/radio/src/targets/taranis/pwr_driver.cpp b/radio/src/targets/taranis/pwr_driver.cpp index effd57ed0..0bb6e28f4 100644 --- a/radio/src/targets/taranis/pwr_driver.cpp +++ b/radio/src/targets/taranis/pwr_driver.cpp @@ -22,17 +22,13 @@ void pwrInit() { - // if any changes are done to the PWR PIN or pwrOn() function - // then the same changes must be done in _bootStart() - GPIO_InitTypeDef GPIO_InitStructure; + GPIO_InitStructure.GPIO_Pin = PWR_ON_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; - GPIO_Init(PWR_ON_GPIO, &GPIO_InitStructure); - GPIO_ResetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN); GPIO_InitStructure.GPIO_Pin = INTMODULE_PWR_GPIO_PIN; GPIO_Init(INTMODULE_PWR_GPIO, &GPIO_InitStructure); @@ -63,6 +59,15 @@ void pwrInit() void pwrOn() { + GPIO_InitTypeDef GPIO_InitStructure; + + GPIO_InitStructure.GPIO_Pin = PWR_ON_GPIO_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(PWR_ON_GPIO, &GPIO_InitStructure); + GPIO_SetBits(PWR_ON_GPIO, PWR_ON_GPIO_PIN); } @@ -75,7 +80,7 @@ void pwrOff() while (1) { wdt_reset(); -#if defined(PWR_PRESS_BUTTON) +#if defined(PWR_BUTTON_PRESS) // X9E/X7 needs watchdog reset because CPU is still running while // the power key is held pressed by the user. // The power key should be released by now, but we must make sure @@ -99,3 +104,17 @@ uint32_t pwrPressed() { return GPIO_ReadInputDataBit(PWR_SWITCH_GPIO, PWR_SWITCH_GPIO_PIN) == Bit_RESET; } + +void pwrResetHandler() +{ + RCC->AHB1ENR |= RCC_AHB1ENR_GPIOEEN; + + // these two NOPs are needed (see STM32F errata sheet) before the peripheral + // register can be written after the peripheral clock was enabled + __ASM volatile ("nop"); + __ASM volatile ("nop"); + + if (WAS_RESET_BY_WATCHDOG_OR_SOFTWARE()) { + pwrOn(); + } +} \ No newline at end of file diff --git a/radio/src/targets/taranis/telemetry_driver.cpp b/radio/src/targets/taranis/telemetry_driver.cpp index 6b19bcb51..fbcfdbd56 100644 --- a/radio/src/targets/taranis/telemetry_driver.cpp +++ b/radio/src/targets/taranis/telemetry_driver.cpp @@ -54,7 +54,7 @@ void telemetryPortInit(uint32_t baudrate, uint8_t mode) GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(TELEMETRY_DIR_GPIO, &GPIO_InitStructure); - GPIO_ResetBits(TELEMETRY_DIR_GPIO, TELEMETRY_DIR_GPIO_PIN); + TELEMETRY_DIR_INPUT(); USART_InitStructure.USART_BaudRate = baudrate; if (mode & TELEMETRY_SERIAL_8E2) { diff --git a/radio/src/thirdparty/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/gcc_ride7/startup_stm32f2xx.s b/radio/src/thirdparty/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/gcc_ride7/startup_stm32f2xx.s index 14e568956..e521a2f5f 100644 --- a/radio/src/thirdparty/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/gcc_ride7/startup_stm32f2xx.s +++ b/radio/src/thirdparty/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/gcc_ride7/startup_stm32f2xx.s @@ -71,6 +71,8 @@ defined in linker script */ .type Reset_Handler, %function Reset_Handler: + bl pwrResetHandler /*jump to WDT reset handler where soft power control pin is turned on as soon as possible */ + /* Copy the data segment initializers from flash to SRAM */ movs r1, #0 b LoopCopyDataInit diff --git a/radio/src/thirdparty/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc_ride7/startup_stm32f40_41xxx.s b/radio/src/thirdparty/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc_ride7/startup_stm32f40_41xxx.s deleted file mode 100644 index 25fd9cf8c..000000000 --- a/radio/src/thirdparty/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc_ride7/startup_stm32f40_41xxx.s +++ /dev/null @@ -1,527 +0,0 @@ -/** - ****************************************************************************** - * @file startup_stm32f40_41xxx.s - * @author MCD Application Team - * @version V1.3.0 - * @date 08-November-2013 - * @brief STM32F40xxx/41xxx Devices vector table for RIDE7 toolchain. - * This module performs: - * - Set the initial SP - * - Set the initial PC == Reset_Handler, - * - Set the vector table entries with the exceptions ISR address - * - Configure the clock system and the external SRAM mounted on - * STM324xG-EVAL board to be used as data memory (optional, - * to be enabled by user) - * - Branches to main in the C library (which eventually - * calls main()). - * After Reset the Cortex-M4 processor is in Thread mode, - * priority is Privileged, and the Stack is set to Main. - ****************************************************************************** - * @attention - * - *

© COPYRIGHT 2013 STMicroelectronics

- * - * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.st.com/software_license_agreement_liberty_v2 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** - */ - - .syntax unified - .cpu cortex-m3 - .fpu softvfp - .thumb - -.global g_pfnVectors -.global Default_Handler - -/* start address for the initialization values of the .data section. -defined in linker script */ -.word _sidata -/* start address for the .data section. defined in linker script */ -.word _sdata -/* end address for the .data section. defined in linker script */ -.word _edata -/* start address for the .bss section. defined in linker script */ -.word _sbss -/* end address for the .bss section. defined in linker script */ -.word _ebss -/* stack used for SystemInit_ExtMemCtl; always internal RAM used */ - -/** - * @brief This is the code that gets called when the processor first - * starts execution following a reset event. Only the absolutely - * necessary set is performed, after which the application - * supplied main() routine is called. - * @param None - * @retval : None -*/ - - .section .text.Reset_Handler - .weak Reset_Handler - .type Reset_Handler, %function -Reset_Handler: - -/* Copy the data segment initializers from flash to SRAM */ - movs r1, #0 - b LoopCopyDataInit - -CopyDataInit: - ldr r3, =_sidata - ldr r3, [r3, r1] - str r3, [r0, r1] - adds r1, r1, #4 - -LoopCopyDataInit: - ldr r0, =_sdata - ldr r3, =_edata - adds r2, r0, r1 - cmp r2, r3 - bcc CopyDataInit - ldr r2, =_sbss - b LoopFillZerobss -/* Zero fill the bss segment. */ -FillZerobss: - movs r3, #0 - str r3, [r2], #4 - -LoopFillZerobss: - ldr r3, = _ebss - cmp r2, r3 - bcc FillZerobss - -/*Paint Main Stack */ - ldr r2, = _main_stack_start -PaintMainStack: - movs r3, #0x55555555 - str r3, [r2], #4 -LoopPaintMainStack: - ldr r3, = _estack - cmp r2, r3 - bcc PaintMainStack - -/* Call the clock system intitialization function.*/ - bl SystemInit -/* Call C++ constructors for static objects */ - bl __libc_init_array -/* Call the application's entry point.*/ - bl main - bx lr -.size Reset_Handler, .-Reset_Handler - -/** - * @brief This is the code that gets called when the processor receives an - * unexpected interrupt. This simply enters an infinite loop, preserving - * the system state for examination by a debugger. - * @param None - * @retval None -*/ - .section .text.Default_Handler,"ax",%progbits -Default_Handler: -Infinite_Loop: - b Infinite_Loop - .size Default_Handler, .-Default_Handler -/****************************************************************************** -* -* The minimal vector table for a Cortex M3. Note that the proper constructs -* must be placed on this to ensure that it ends up at physical address -* 0x0000.0000. -* -*******************************************************************************/ - .section .isr_vector,"a",%progbits - .type g_pfnVectors, %object - .size g_pfnVectors, .-g_pfnVectors - - -g_pfnVectors: - .word _estack - .word Reset_Handler - .word NMI_Handler - .word HardFault_Handler - .word MemManage_Handler - .word BusFault_Handler - .word UsageFault_Handler - .word 0 - .word 0 - .word 0 - .word 0 - .word SVC_Handler - .word DebugMon_Handler - .word 0 - .word PendSV_Handler - .word SysTick_Handler - - /* External Interrupts */ - .word WWDG_IRQHandler /* Window WatchDog */ - .word PVD_IRQHandler /* PVD through EXTI Line detection */ - .word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */ - .word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */ - .word FLASH_IRQHandler /* FLASH */ - .word RCC_IRQHandler /* RCC */ - .word EXTI0_IRQHandler /* EXTI Line0 */ - .word EXTI1_IRQHandler /* EXTI Line1 */ - .word EXTI2_IRQHandler /* EXTI Line2 */ - .word EXTI3_IRQHandler /* EXTI Line3 */ - .word EXTI4_IRQHandler /* EXTI Line4 */ - .word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */ - .word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */ - .word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */ - .word DMA1_Stream3_IRQHandler /* DMA1 Stream 3 */ - .word DMA1_Stream4_IRQHandler /* DMA1 Stream 4 */ - .word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */ - .word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */ - .word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */ - .word CAN1_TX_IRQHandler /* CAN1 TX */ - .word CAN1_RX0_IRQHandler /* CAN1 RX0 */ - .word CAN1_RX1_IRQHandler /* CAN1 RX1 */ - .word CAN1_SCE_IRQHandler /* CAN1 SCE */ - .word EXTI9_5_IRQHandler /* External Line[9:5]s */ - .word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break and TIM9 */ - .word TIM1_UP_TIM10_IRQHandler /* TIM1 Update and TIM10 */ - .word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation and TIM11 */ - .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ - .word TIM2_IRQHandler /* TIM2 */ - .word TIM3_IRQHandler /* TIM3 */ - .word TIM4_IRQHandler /* TIM4 */ - .word I2C1_EV_IRQHandler /* I2C1 Event */ - .word I2C1_ER_IRQHandler /* I2C1 Error */ - .word I2C2_EV_IRQHandler /* I2C2 Event */ - .word I2C2_ER_IRQHandler /* I2C2 Error */ - .word SPI1_IRQHandler /* SPI1 */ - .word SPI2_IRQHandler /* SPI2 */ - .word USART1_IRQHandler /* USART1 */ - .word USART2_IRQHandler /* USART2 */ - .word USART3_IRQHandler /* USART3 */ - .word EXTI15_10_IRQHandler /* External Line[15:10]s */ - .word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */ - .word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI line */ - .word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break and TIM12 */ - .word TIM8_UP_TIM13_IRQHandler /* TIM8 Update and TIM13 */ - .word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation and TIM14 */ - .word TIM8_CC_IRQHandler /* TIM8 Capture Compare */ - .word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */ - .word FSMC_IRQHandler /* FSMC */ - .word SDIO_IRQHandler /* SDIO */ - .word TIM5_IRQHandler /* TIM5 */ - .word SPI3_IRQHandler /* SPI3 */ - .word UART4_IRQHandler /* UART4 */ - .word UART5_IRQHandler /* UART5 */ - .word TIM6_DAC_IRQHandler /* TIM6 and DAC1&2 underrun errors */ - .word TIM7_IRQHandler /* TIM7 */ - .word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */ - .word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */ - .word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */ - .word DMA2_Stream3_IRQHandler /* DMA2 Stream 3 */ - .word DMA2_Stream4_IRQHandler /* DMA2 Stream 4 */ - .word ETH_IRQHandler /* Ethernet */ - .word ETH_WKUP_IRQHandler /* Ethernet Wakeup through EXTI line */ - .word CAN2_TX_IRQHandler /* CAN2 TX */ - .word CAN2_RX0_IRQHandler /* CAN2 RX0 */ - .word CAN2_RX1_IRQHandler /* CAN2 RX1 */ - .word CAN2_SCE_IRQHandler /* CAN2 SCE */ - .word OTG_FS_IRQHandler /* USB OTG FS */ - .word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */ - .word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */ - .word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */ - .word USART6_IRQHandler /* USART6 */ - .word I2C3_EV_IRQHandler /* I2C3 event */ - .word I2C3_ER_IRQHandler /* I2C3 error */ - .word OTG_HS_EP1_OUT_IRQHandler /* USB OTG HS End Point 1 Out */ - .word OTG_HS_EP1_IN_IRQHandler /* USB OTG HS End Point 1 In */ - .word OTG_HS_WKUP_IRQHandler /* USB OTG HS Wakeup through EXTI */ - .word OTG_HS_IRQHandler /* USB OTG HS */ - .word DCMI_IRQHandler /* DCMI */ - .word CRYP_IRQHandler /* CRYP crypto */ - .word HASH_RNG_IRQHandler /* Hash and Rng */ - .word FPU_IRQHandler /* FPU */ - -/******************************************************************************* -* -* Provide weak aliases for each Exception handler to the Default_Handler. -* As they are weak aliases, any function with the same name will override -* this definition. -* -*******************************************************************************/ - .weak NMI_Handler - .thumb_set NMI_Handler,Default_Handler - - .weak HardFault_Handler - .thumb_set HardFault_Handler,Default_Handler - - .weak MemManage_Handler - .thumb_set MemManage_Handler,Default_Handler - - .weak BusFault_Handler - .thumb_set BusFault_Handler,Default_Handler - - .weak UsageFault_Handler - .thumb_set UsageFault_Handler,Default_Handler - - .weak SVC_Handler - .thumb_set SVC_Handler,Default_Handler - - .weak DebugMon_Handler - .thumb_set DebugMon_Handler,Default_Handler - - .weak PendSV_Handler - .thumb_set PendSV_Handler,Default_Handler - - .weak SysTick_Handler - .thumb_set SysTick_Handler,Default_Handler - - .weak WWDG_IRQHandler - .thumb_set WWDG_IRQHandler,Default_Handler - - .weak PVD_IRQHandler - .thumb_set PVD_IRQHandler,Default_Handler - - .weak TAMP_STAMP_IRQHandler - .thumb_set TAMP_STAMP_IRQHandler,Default_Handler - - .weak RTC_WKUP_IRQHandler - .thumb_set RTC_WKUP_IRQHandler,Default_Handler - - .weak FLASH_IRQHandler - .thumb_set FLASH_IRQHandler,Default_Handler - - .weak RCC_IRQHandler - .thumb_set RCC_IRQHandler,Default_Handler - - .weak EXTI0_IRQHandler - .thumb_set EXTI0_IRQHandler,Default_Handler - - .weak EXTI1_IRQHandler - .thumb_set EXTI1_IRQHandler,Default_Handler - - .weak EXTI2_IRQHandler - .thumb_set EXTI2_IRQHandler,Default_Handler - - .weak EXTI3_IRQHandler - .thumb_set EXTI3_IRQHandler,Default_Handler - - .weak EXTI4_IRQHandler - .thumb_set EXTI4_IRQHandler,Default_Handler - - .weak DMA1_Stream0_IRQHandler - .thumb_set DMA1_Stream0_IRQHandler,Default_Handler - - .weak DMA1_Stream1_IRQHandler - .thumb_set DMA1_Stream1_IRQHandler,Default_Handler - - .weak DMA1_Stream2_IRQHandler - .thumb_set DMA1_Stream2_IRQHandler,Default_Handler - - .weak DMA1_Stream3_IRQHandler - .thumb_set DMA1_Stream3_IRQHandler,Default_Handler - - .weak DMA1_Stream4_IRQHandler - .thumb_set DMA1_Stream4_IRQHandler,Default_Handler - - .weak DMA1_Stream5_IRQHandler - .thumb_set DMA1_Stream5_IRQHandler,Default_Handler - - .weak DMA1_Stream6_IRQHandler - .thumb_set DMA1_Stream6_IRQHandler,Default_Handler - - .weak ADC_IRQHandler - .thumb_set ADC_IRQHandler,Default_Handler - - .weak CAN1_TX_IRQHandler - .thumb_set CAN1_TX_IRQHandler,Default_Handler - - .weak CAN1_RX0_IRQHandler - .thumb_set CAN1_RX0_IRQHandler,Default_Handler - - .weak CAN1_RX1_IRQHandler - .thumb_set CAN1_RX1_IRQHandler,Default_Handler - - .weak CAN1_SCE_IRQHandler - .thumb_set CAN1_SCE_IRQHandler,Default_Handler - - .weak EXTI9_5_IRQHandler - .thumb_set EXTI9_5_IRQHandler,Default_Handler - - .weak TIM1_BRK_TIM9_IRQHandler - .thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler - - .weak TIM1_UP_TIM10_IRQHandler - .thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler - - .weak TIM1_TRG_COM_TIM11_IRQHandler - .thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler - - .weak TIM1_CC_IRQHandler - .thumb_set TIM1_CC_IRQHandler,Default_Handler - - .weak TIM2_IRQHandler - .thumb_set TIM2_IRQHandler,Default_Handler - - .weak TIM3_IRQHandler - .thumb_set TIM3_IRQHandler,Default_Handler - - .weak TIM4_IRQHandler - .thumb_set TIM4_IRQHandler,Default_Handler - - .weak I2C1_EV_IRQHandler - .thumb_set I2C1_EV_IRQHandler,Default_Handler - - .weak I2C1_ER_IRQHandler - .thumb_set I2C1_ER_IRQHandler,Default_Handler - - .weak I2C2_EV_IRQHandler - .thumb_set I2C2_EV_IRQHandler,Default_Handler - - .weak I2C2_ER_IRQHandler - .thumb_set I2C2_ER_IRQHandler,Default_Handler - - .weak SPI1_IRQHandler - .thumb_set SPI1_IRQHandler,Default_Handler - - .weak SPI2_IRQHandler - .thumb_set SPI2_IRQHandler,Default_Handler - - .weak USART1_IRQHandler - .thumb_set USART1_IRQHandler,Default_Handler - - .weak USART2_IRQHandler - .thumb_set USART2_IRQHandler,Default_Handler - - .weak USART3_IRQHandler - .thumb_set USART3_IRQHandler,Default_Handler - - .weak EXTI15_10_IRQHandler - .thumb_set EXTI15_10_IRQHandler,Default_Handler - - .weak RTC_Alarm_IRQHandler - .thumb_set RTC_Alarm_IRQHandler,Default_Handler - - .weak OTG_FS_WKUP_IRQHandler - .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler - - .weak TIM8_BRK_TIM12_IRQHandler - .thumb_set TIM8_BRK_TIM12_IRQHandler,Default_Handler - - .weak TIM8_UP_TIM13_IRQHandler - .thumb_set TIM8_UP_TIM13_IRQHandler,Default_Handler - - .weak TIM8_TRG_COM_TIM14_IRQHandler - .thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler - - .weak TIM8_CC_IRQHandler - .thumb_set TIM8_CC_IRQHandler,Default_Handler - - .weak DMA1_Stream7_IRQHandler - .thumb_set DMA1_Stream7_IRQHandler,Default_Handler - - .weak FSMC_IRQHandler - .thumb_set FSMC_IRQHandler,Default_Handler - - .weak SDIO_IRQHandler - .thumb_set SDIO_IRQHandler,Default_Handler - - .weak TIM5_IRQHandler - .thumb_set TIM5_IRQHandler,Default_Handler - - .weak SPI3_IRQHandler - .thumb_set SPI3_IRQHandler,Default_Handler - - .weak UART4_IRQHandler - .thumb_set UART4_IRQHandler,Default_Handler - - .weak UART5_IRQHandler - .thumb_set UART5_IRQHandler,Default_Handler - - .weak TIM6_DAC_IRQHandler - .thumb_set TIM6_DAC_IRQHandler,Default_Handler - - .weak TIM7_IRQHandler - .thumb_set TIM7_IRQHandler,Default_Handler - - .weak DMA2_Stream0_IRQHandler - .thumb_set DMA2_Stream0_IRQHandler,Default_Handler - - .weak DMA2_Stream1_IRQHandler - .thumb_set DMA2_Stream1_IRQHandler,Default_Handler - - .weak DMA2_Stream2_IRQHandler - .thumb_set DMA2_Stream2_IRQHandler,Default_Handler - - .weak DMA2_Stream3_IRQHandler - .thumb_set DMA2_Stream3_IRQHandler,Default_Handler - - .weak DMA2_Stream4_IRQHandler - .thumb_set DMA2_Stream4_IRQHandler,Default_Handler - - .weak ETH_IRQHandler - .thumb_set ETH_IRQHandler,Default_Handler - - .weak ETH_WKUP_IRQHandler - .thumb_set ETH_WKUP_IRQHandler,Default_Handler - - .weak CAN2_TX_IRQHandler - .thumb_set CAN2_TX_IRQHandler,Default_Handler - - .weak CAN2_RX0_IRQHandler - .thumb_set CAN2_RX0_IRQHandler,Default_Handler - - .weak CAN2_RX1_IRQHandler - .thumb_set CAN2_RX1_IRQHandler,Default_Handler - - .weak CAN2_SCE_IRQHandler - .thumb_set CAN2_SCE_IRQHandler,Default_Handler - - .weak OTG_FS_IRQHandler - .thumb_set OTG_FS_IRQHandler,Default_Handler - - .weak DMA2_Stream5_IRQHandler - .thumb_set DMA2_Stream5_IRQHandler,Default_Handler - - .weak DMA2_Stream6_IRQHandler - .thumb_set DMA2_Stream6_IRQHandler,Default_Handler - - .weak DMA2_Stream7_IRQHandler - .thumb_set DMA2_Stream7_IRQHandler,Default_Handler - - .weak USART6_IRQHandler - .thumb_set USART6_IRQHandler,Default_Handler - - .weak I2C3_EV_IRQHandler - .thumb_set I2C3_EV_IRQHandler,Default_Handler - - .weak I2C3_ER_IRQHandler - .thumb_set I2C3_ER_IRQHandler,Default_Handler - - .weak OTG_HS_EP1_OUT_IRQHandler - .thumb_set OTG_HS_EP1_OUT_IRQHandler,Default_Handler - - .weak OTG_HS_EP1_IN_IRQHandler - .thumb_set OTG_HS_EP1_IN_IRQHandler,Default_Handler - - .weak OTG_HS_WKUP_IRQHandler - .thumb_set OTG_HS_WKUP_IRQHandler,Default_Handler - - .weak OTG_HS_IRQHandler - .thumb_set OTG_HS_IRQHandler,Default_Handler - - .weak DCMI_IRQHandler - .thumb_set DCMI_IRQHandler,Default_Handler - - .weak CRYP_IRQHandler - .thumb_set CRYP_IRQHandler,Default_Handler - - .weak HASH_RNG_IRQHandler - .thumb_set HASH_RNG_IRQHandler,Default_Handler - - .weak FPU_IRQHandler - .thumb_set FPU_IRQHandler,Default_Handler - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 07ddf0efb..3ac175361 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -458,28 +458,31 @@ #endif #if defined(PCBX12S) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX10) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\310S4\0""\311LS\0""\311RS\0""\311LS2""\311RS2" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" + #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" #elif defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBSKY9X) - #define TR_POTS_VSRCRAW "POT1""POT2""POT3" - #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #else - #define TR_POTS_VSRCRAW "POT1""POT2""POT3" - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif #if defined(CPUARM) @@ -490,8 +493,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Sl""\313Sp""\313Vd""\313Vn""\313Pd""\313Pn""\313Kl""\313Kp""\3135d""\3135n""\3136d""\3136n" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tSl""tSp""tVd""tVn""tPd""tPn""tKl""tKp", "\313Sl""\313Sp""\313Vd""\313Vn""\313Pd""\313Pn""\313Kl""\313Kp") #endif diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index e5fb7eab4..62575edd9 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -483,26 +483,32 @@ #define TR_TRIMS_VSRCRAW TR("TrmS""TrmH""TrmG""TrmQ", "\313Sei""\313Höh""\313Gas""\313que") #endif -#if defined(PCBHORUS) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#if defined(PCBX12S) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBX10) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) - #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" + #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" #elif defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBSKY9X) - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif #if defined(CPUARM) @@ -513,8 +519,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar") #endif diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 78bcb7f63..8cdf2856e 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -433,10 +433,10 @@ #define TR_VKEYS "Menu\0""Exit\0""Enter""Up\0 ""Down\0""Right""Left\0" #elif defined(PCBXLITE) #define LEN_VKEYS "\005" - #define TR_VKEYS "Menu\0""Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" + #define TR_VKEYS "Shift""Exit\0""Enter""Down\0""Up\0 ""Right""Left\0" #elif defined(PCBTARANIS) #define LEN_VKEYS "\005" - #define TR_VKEYS "Menu\0""Exit\0""Enter""Page\0""Plus\0""Minus" + #define TR_VKEYS "Menu\0""Exit\0""Enter""Page\0""Plus\0""Minus" #else #define LEN_VKEYS "\005" #define TR_VKEYS "Menu\0""Exit\0""Down\0""Up\0 ""Right""Left\0" @@ -502,8 +502,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar") #endif @@ -1109,6 +1107,9 @@ #if defined(COLORLCD) #define TR_EEBACKUP "EEPROM backup" #define TR_FACTORYRESET "Factory reset" +#elif defined(PCBXLITE) +#define TR_EEBACKUP "\001[ENT. Long]: Backup" +#define TR_FACTORYRESET "\001[\300ENT. Long]: Fact. reset" #else #define TR_EEBACKUP TR("\001[ENTER Long]: Backup", "\012[ENTER Long]: EEPROM backup") #define TR_FACTORYRESET TR("\001[MENU Long]: Fact. reset", "\012[MENU Long]: Factory reset") diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index bc035c4a9..7a1519bb7 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -463,22 +463,32 @@ #define TR_TRIMS_VSRCRAW TR("TrmD" "TrmE" "TrmT" "TrmA", "\313Dir""\313Ele""\313Thr""\313Ale") #endif -#if defined(PCBHORUS) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#if defined(PCBX12S) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBX10) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) - #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" + #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" #elif defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBSKY9X) + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif #if defined(CPUARM) @@ -489,8 +499,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar") #endif diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 7b7022d8f..1b7aa3427 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -463,26 +463,32 @@ #define TR_TRIMS_VSRCRAW TR("TrmR""TrmE""TrmT""TrmA", "\313Rud""\313Ele""\313Thr""\313Ail") #endif -#if defined(PCBHORUS) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#if defined(PCBX12S) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBX10) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) - #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" + #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" #elif defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBSKY9X) - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif #if defined(CPUARM) @@ -493,8 +499,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar") #endif diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 3b0b287a0..872e0cb71 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -454,14 +454,17 @@ #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #if defined(PCBHORUS) -#define LEN_VKEYS "\006" -#define TR_VKEYS "Menu\0 ""Exit\0 ""Entree""Haut\0 ""Bas\0 ""Droit\0""Gauche" + #define LEN_VKEYS "\006" + #define TR_VKEYS "Menu\0 ""Exit\0 ""Entree""Haut\0 ""Bas\0 ""Droit\0""Gauche" +#elif defined(PCBXLITE) + #define LEN_VKEYS "\005" + #define TR_VKEYS "Shift""Exit\0""Enter""Bas\0 ""Haut\0""Droit""Gauch" #elif defined(PCBTARANIS) -#define LEN_VKEYS "\005" -#define TR_VKEYS "Menu\0""Exit\0""Enter""Page\0""Plus\0""Moins" + #define LEN_VKEYS "\005" + #define TR_VKEYS "Menu\0""Exit\0""Enter""Page\0""Plus\0""Moins" #else -#define LEN_VKEYS "\005" -#define TR_VKEYS "Menu\0""Exit\0""Bas\0 ""Haut\0""Droit""Gauch" + #define LEN_VKEYS "\005" + #define TR_VKEYS "Menu\0""Exit\0""Bas\0 ""Haut\0""Droit""Gauch" #endif #define LEN_VRENCODERS "\003" @@ -484,12 +487,18 @@ #define TR_TRIMS_VSRCRAW "TrmD""TrmP""TrmG""TrmA" #endif -#if defined(PCBHORUS) +#if defined(PCBX12S) #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBX10) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""Rien""Rien""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" @@ -514,8 +523,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Dg""\313Dd""\313Pb""\313Ph""\313Gb""\313Gh""\313Ag""\313Ad""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tDg""tDd""tPb""tPh""tGb""tGh""tAg""tAd", "\313Dg""\313Dd""\313Pb""\313Ph""\313Gb""\313Gh""\313Ag""\313Ad") #endif @@ -733,7 +740,7 @@ #define TR_MEMORYWARNING INDENT "Mémoire pleine" #define TR_ALARMWARNING TR(INDENT "Silence", INDENT "Sons désactivés") #define TR_RSSISHUTDOWNALARM TR(INDENT "RSSI extinction", INDENT "Vérif RSSI à l'extinction") -#define TR_MODEL_STILL_POWERED "Modèle encore allumé" +#define TR_MODEL_STILL_POWERED TR("Modèle allumé", "Modèle encore allumé") #define TR_MODEL_SHUTDOWN "Eteindre ?" #define TR_PRESS_ENTER_TO_CONFIRM "Presser [Enter] pour confirmer" #define TR_RENAVIG "Navig EncRot" @@ -1116,8 +1123,16 @@ #define TR_SCRIPT "Script" #define TR_INPUTS "Entrées" #define TR_OUTPUTS "Sorties" +#if defined(COLORLCD) +#define TR_EEBACKUP "Sauvegarder l'EEPROM" +#define TR_FACTORYRESET "RAZ d'usine" +#elif defined(PCBXLITE) +#define TR_EEBACKUP "[ENTER Long]:Sauvegarde" +#define TR_FACTORYRESET "[\300ENTER Long]: RAZ usine" +#else #define TR_EEBACKUP TR("[ENTER Long]:Sauvegarde", "\004[ENTER Long]: Sauvegarder l'EEPROM") #define TR_FACTORYRESET TR("\001[MENU Long]: RAZ d'usine", "\016[MENU Long]: RAZ d'usine") +#endif #define TR_CONFIRMRESET TR("Effacer TOUT?","Effacer TOUS modèles/réglages?") #define TR_TO_MANY_LUA_SCRIPTS "Trop de scripts lua!" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index ba53cbef0..c8a9764f9 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -470,26 +470,32 @@ #define TR_TRIMS_VSRCRAW TR("TrmR""TrmE""TrmT""TrmA", "\313Dir""\313Ele""\313Mot""\313Ale") #endif -#if defined(PCBHORUS) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#if defined(PCBX12S) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBX10) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) - #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" + #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" #elif defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBSKY9X) - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif #if defined(CPUARM) @@ -500,8 +506,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar") #endif diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index c622c4e48..7f94d67ba 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -457,26 +457,32 @@ #define TR_TRIMS_VSRCRAW TR("TrmR""TrmE""TrmT""TrmA", "\313Rud""\313Ele""\313Thr""\313Ail") #endif -#if defined(PCBHORUS) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#if defined(PCBX12S) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBX10) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) - #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" + #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" #elif defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBSKY9X) - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif #if defined(CPUARM) @@ -487,8 +493,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar") #endif diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 761a9dbd9..3e56dbd79 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -472,26 +472,32 @@ #define TR_TRIMS_VSRCRAW TR("TrSK""TrSW""TrGA""TrLO", "\313SK ""\313SW ""\313Gaz""\313Lot") #endif -#if defined(PCBHORUS) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#if defined(PCBX12S) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBX10) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\310S4\0""\311LS\0""\311RS\0""\311LS2""\311RS2" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" + #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" #elif defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBSKY9X) - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif #if defined(CPUARM) @@ -502,8 +508,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar") #endif diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 3012400fc..293e3f6a4 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -462,26 +462,32 @@ #define TR_TRIMS_VSRCRAW TR("TrmL""TrmP""TrmM""TrmA", "\313Lem""\313Pfd""\313Mot""\313Ail") #endif -#if defined(PCBHORUS) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#if defined(PCBX12S) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBX10) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) - #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" + #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" #elif defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBSKY9X) - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif #if defined(CPUARM) @@ -492,8 +498,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rl""\313Rr""\313Ed""\313Eu""\313Td""\313Tu""\313Al""\313Ar""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tRl""tRr""tEd""tEu""tTd""tTu""tAl""tAr", "\313Rl""\313Rr""\313Ed""\313Eu""\313Eu""\313Td""\313Tu""\313Al""\313Ar") #endif diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 24773c8a0..90dfd2272 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -477,26 +477,32 @@ #define TR_TRIMS_VSRCRAW TR("TrmR""TrmH""TrmG""TrmS", "\313Rod""\313Hjd""\313Gas""\313Ske") #endif -#if defined(PCBHORUS) - #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#if defined(PCBX12S) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\313L1\0""\313L2\0""\311LS\0""\311RS\0""\310JSx""\310JSy" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" +#elif defined(PCBX10) + #define TR_POTS_VSRCRAW "\310S1\0""\3106P\0""\310S2\0""\311LS\0""\311RS\0""None""None""\310EX1""\310EX2" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBX9E) - #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" + #define TR_POTS_VSRCRAW "\310F1\0""\310F2\0""\310F3\0""\310F4\0""\311S1\0""\311S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0" +#elif defined(PCBXLITE) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0" #elif defined(PCBX7) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0" #elif defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" - #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0" #elif defined(PCBSKY9X) - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" "THR\0""RUD\0""ELE\0""AIL\0""GEA\0""TRN\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3Pos" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" #endif #if defined(CPUARM) @@ -507,8 +513,6 @@ #if defined(PCBHORUS) #define TR_TRIMS_SWITCHES "\313Rv""\313Rh""\313Hn""\313Hu""\313Gn""\313Gu""\313Sv""\313Sh""\3135d""\3135u""\3136d""\3136u" -#elif defined(PCBXLITE) - #define TR_TRIMS_SWITCHES "tRl""tRr""tEd""tEu" #else #define TR_TRIMS_SWITCHES TR("tRv""tRh""tHn""tHu""tGn""tGu""tSv""tSh", "\313Rv""\313Rh""\313Hn""\313Hu""\313Gn""\313Gu""\313Sv""\313Sh") #endif