From 6c4918876e20931f1d3bf0f1ef47d37822d46d1d Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 4 Apr 2020 11:28:10 +0200 Subject: [PATCH 01/33] Update CREDITS.txt --- CREDITS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS.txt b/CREDITS.txt index 31cfd4122..217bf93b4 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1709,3 +1709,4 @@ Kevin Bowens David Frech Udo Kastenholz Julio Margarido +Uwe Muendelein From 6eef77a6b31edd2f0b0d31518469139c0ea13fe0 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sun, 5 Apr 2020 22:19:53 +0200 Subject: [PATCH 02/33] Update CREDITS.txt --- CREDITS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS.txt b/CREDITS.txt index 217bf93b4..40825416c 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1710,3 +1710,4 @@ David Frech Udo Kastenholz Julio Margarido Uwe Muendelein +James Jewitt From 91ea30451e2bbe49d774a5ab608164451f239157 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 7 Apr 2020 15:10:25 +0200 Subject: [PATCH 03/33] Update CREDITS.txt --- CREDITS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS.txt b/CREDITS.txt index 40825416c..128250e63 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1711,3 +1711,4 @@ Udo Kastenholz Julio Margarido Uwe Muendelein James Jewitt +Daniel Ferreira From 4ffb1a34dc424f6c6bea5cd948b7769ec96b1391 Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 9 Apr 2020 10:19:49 +0200 Subject: [PATCH 04/33] Fix T12 DMA conflict (#7505) --- .../arm/stm32/intmodule_serial_driver.cpp | 32 ++++++++++++++++++- radio/src/targets/taranis/hal.h | 5 --- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/radio/src/targets/common/arm/stm32/intmodule_serial_driver.cpp b/radio/src/targets/common/arm/stm32/intmodule_serial_driver.cpp index e2f01f586..56b71d97c 100755 --- a/radio/src/targets/common/arm/stm32/intmodule_serial_driver.cpp +++ b/radio/src/targets/common/arm/stm32/intmodule_serial_driver.cpp @@ -21,12 +21,18 @@ #include "opentx.h" ModuleFifo intmoduleFifo; +#if !defined(INTMODULE_DMA_STREAM) +uint8_t * intmoduleTxBufferData; +uint8_t intmoduleTxBufferRemaining; +#endif void intmoduleStop() { GPIO_ResetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN); +#if defined(INTMODULE_DMA_STREAM) INTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA +#endif GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = INTMODULE_TX_GPIO_PIN | INTMODULE_RX_GPIO_PIN; @@ -57,7 +63,11 @@ void intmoduleSerialStart(uint32_t baudrate, uint8_t rxEnable, uint16_t parity, INTERNAL_MODULE_ON(); NVIC_InitTypeDef NVIC_InitStructure; +#if defined(INTMODULE_DMA_STREAM) NVIC_InitStructure.NVIC_IRQChannel = INTMODULE_DMA_STREAM_IRQ; +#else + NVIC_InitStructure.NVIC_IRQChannel = INTMODULE_USART_IRQn; +#endif 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; @@ -118,8 +128,22 @@ void intmoduleTimerStart(uint32_t periodMs) #define USART_FLAG_ERRORS (USART_FLAG_ORE | USART_FLAG_NE | USART_FLAG_FE | USART_FLAG_PE) extern "C" void INTMODULE_USART_IRQHandler(void) { - uint32_t status = INTMODULE_USART->SR; +#if !defined(INTMODULE_DMA_STREAM) + // Send + if (USART_GetITStatus(INTMODULE_USART, USART_IT_TXE) != RESET) { + if (intmoduleTxBufferRemaining) { + USART_SendData(INTMODULE_USART, intmoduleTxBufferData[0]); + intmoduleTxBufferData++; + intmoduleTxBufferRemaining--; + } + else { + USART_ITConfig(INTMODULE_USART, USART_IT_TXE, DISABLE); + } + } +#endif + // Receive + uint32_t status = INTMODULE_USART->SR; while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) { uint8_t data = INTMODULE_USART->DR; if (status & USART_FLAG_ERRORS) { @@ -143,6 +167,7 @@ void intmoduleSendBuffer(const uint8_t * data, uint8_t size) if (size == 0) return; +#if defined(INTMODULE_DMA_STREAM) DMA_InitTypeDef DMA_InitStructure; DMA_DeInit(INTMODULE_DMA_STREAM); DMA_InitStructure.DMA_Channel = INTMODULE_DMA_CHANNEL; @@ -163,6 +188,11 @@ void intmoduleSendBuffer(const uint8_t * data, uint8_t size) DMA_Init(INTMODULE_DMA_STREAM, &DMA_InitStructure); DMA_Cmd(INTMODULE_DMA_STREAM, ENABLE); USART_DMACmd(INTMODULE_USART, USART_DMAReq_Tx, ENABLE); +#else + intmoduleTxBufferData = (uint8_t *)data; + intmoduleTxBufferRemaining = size; + USART_ITConfig(INTMODULE_USART, USART_IT_TXE, ENABLE); +#endif } void intmoduleSendNextFrame() diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index b8d1c7177..b55226edf 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -1078,11 +1078,6 @@ #define INTMODULE_GPIO_AF GPIO_AF_USART3 #define INTMODULE_USART_IRQn USART3_IRQn #define INTMODULE_USART_IRQHandler USART3_IRQHandler - #define INTMODULE_DMA_STREAM DMA1_Stream3 - #define INTMODULE_DMA_STREAM_IRQ DMA1_Stream3_IRQn - #define INTMODULE_DMA_STREAM_IRQHandler DMA1_Stream3_IRQHandler - #define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF3 - #define INTMODULE_DMA_CHANNEL DMA_Channel_4 #define INTMODULE_RCC_APB1Periph RCC_APB1Periph_TIM2 #define INTMODULE_RCC_APB2Periph RCC_APB1Periph_USART3 #define INTMODULE_TIMER TIM2 From 352b33e12d806766575c6a730bcbb8b35d3c0dc9 Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 9 Apr 2020 10:21:35 +0200 Subject: [PATCH 05/33] Add LUA units to Taranis too (#7489) --- radio/src/lua/api_general.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp index 214e2f4e1..ff7b96da4 100644 --- a/radio/src/lua/api_general.cpp +++ b/radio/src/lua/api_general.cpp @@ -1875,8 +1875,6 @@ const luaR_value_entry opentxConstants[] = { { "PLAY_BACKGROUND", PLAY_BACKGROUND }, { "TIMEHOUR", TIMEHOUR }, -#if defined(PCBHORUS) - // Adding the unit consts for the set Telemetry function adds about 1k of flash usage {"UNIT_RAW", UNIT_RAW }, {"UNIT_VOLTS", UNIT_VOLTS }, {"UNIT_AMPS", UNIT_AMPS }, @@ -1910,6 +1908,6 @@ const luaR_value_entry opentxConstants[] = { {"UNIT_GPS", UNIT_GPS}, {"UNIT_BITFIELD", UNIT_BITFIELD}, {"UNIT_TEXT", UNIT_TEXT}, -#endif + { nullptr, 0 } /* sentinel */ }; From 63c5e7fa3da61ce2043a5a2f9cec7a60d877a223 Mon Sep 17 00:00:00 2001 From: RealTadango Date: Thu, 9 Apr 2020 10:22:29 +0200 Subject: [PATCH 06/33] Missing leading 0 for date format (#7485) --- radio/src/gui/480x272/lcd.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/radio/src/gui/480x272/lcd.cpp b/radio/src/gui/480x272/lcd.cpp index f139eaa5c..6659e386b 100644 --- a/radio/src/gui/480x272/lcd.cpp +++ b/radio/src/gui/480x272/lcd.cpp @@ -339,9 +339,9 @@ void drawDate(coord_t x, coord_t y, TelemetryItem & telemetryItem, LcdFlags att) att &= ~FONTSIZE_MASK; lcdDrawNumber(x, y, telemetryItem.datetime.day, att|LEADING0|LEFT, 2); lcdDrawChar(lcdNextPos-1, y, '-', att); - lcdDrawNumber(lcdNextPos-1, y, telemetryItem.datetime.month, att|LEFT, 2); + lcdDrawNumber(lcdNextPos-1, y, telemetryItem.datetime.month, att|LEADING0|LEFT, 2); lcdDrawChar(lcdNextPos-1, y, '-', att); - lcdDrawNumber(lcdNextPos-1, y, telemetryItem.datetime.year-2000, att|LEFT); + lcdDrawNumber(lcdNextPos-1, y, telemetryItem.datetime.year-2000, att|LEADING0|LEFT); y += FH; lcdDrawNumber(x, y, telemetryItem.datetime.hour, att|LEADING0|LEFT, 2); lcdDrawChar(lcdNextPos, y, ':', att); @@ -352,9 +352,9 @@ void drawDate(coord_t x, coord_t y, TelemetryItem & telemetryItem, LcdFlags att) else { lcdDrawNumber(x, y, telemetryItem.datetime.day, att|LEADING0|LEFT, 2); lcdDrawChar(lcdNextPos-1, y, '-', att); - lcdDrawNumber(lcdNextPos, y, telemetryItem.datetime.month, att|LEFT, 2); + lcdDrawNumber(lcdNextPos, y, telemetryItem.datetime.month, att|LEADING0|LEFT, 2); lcdDrawChar(lcdNextPos-1, y, '-', att); - lcdDrawNumber(lcdNextPos, y, telemetryItem.datetime.year-2000, att|LEFT); + lcdDrawNumber(lcdNextPos, y, telemetryItem.datetime.year-2000, att|LEADING0|LEFT); lcdDrawNumber(lcdNextPos+11, y, telemetryItem.datetime.hour, att|LEADING0|LEFT, 2); lcdDrawChar(lcdNextPos, y, ':', att); lcdDrawNumber(lcdNextPos, y, telemetryItem.datetime.min, att|LEADING0|LEFT, 2); From 2e1237cc0e7bf487364d6dc1bf738ec95f4e1060 Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 9 Apr 2020 10:27:50 +0200 Subject: [PATCH 07/33] Improve popupConfirmation (#7481) --- .../horus/SCRIPTS/TOOLS/CROSSFIRE/device.lua | 2 +- radio/src/lua/api_general.cpp | 24 +++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/radio/sdcard/horus/SCRIPTS/TOOLS/CROSSFIRE/device.lua b/radio/sdcard/horus/SCRIPTS/TOOLS/CROSSFIRE/device.lua index d592677db..3e4c2e4eb 100644 --- a/radio/sdcard/horus/SCRIPTS/TOOLS/CROSSFIRE/device.lua +++ b/radio/sdcard/horus/SCRIPTS/TOOLS/CROSSFIRE/device.lua @@ -489,7 +489,7 @@ end local function runPopupPage(event) local result if fieldPopup.status == 3 then - result = popupConfirmation(fieldPopup.info, event) + result = popupConfirmation("Confirmation", fieldPopup.info, event) else result = popupWarning(fieldPopup.info, event) end diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp index ff7b96da4..b750c7f16 100644 --- a/radio/src/lua/api_general.cpp +++ b/radio/src/lua/api_general.cpp @@ -1206,11 +1206,14 @@ static int luaPopupWarning(lua_State * L) } /*luadoc -@function popupConfirmation(title, event) +@function popupConfirmation(title, event) deprecated, please replace by +@function popupConfirmation(title, message, event) Raises a pop-up on screen that asks for confirmation -@param title (string) text to display +@param title (string) title to display + +@param message (string) text to display @param event (number) the event variable that is passed in from the Run function (key pressed) @@ -1219,13 +1222,24 @@ Run function (key pressed) @notice Use only from stand-alone and telemetry scripts. -@status current Introduced in 2.2.0 +@status current Introduced in 2.2.0, changed to (title, message, event) in 2.3.8 */ static int luaPopupConfirmation(lua_State * L) { - event_t event = luaL_checkinteger(L, 2); - warningText = luaL_checkstring(L, 1); warningType = WARNING_TYPE_CONFIRM; + event_t event; + + if (lua_isnone(L, 3)) { + // only two args: deprecated mode + warningText = luaL_checkstring(L, 1); + event = luaL_checkinteger(L, 2); + } + else { + warningText = luaL_checkstring(L, 1); + warningInfoText = luaL_checkstring(L, 2); + event = luaL_optinteger(L, 3, 0); + } + runPopupWarning(event); if (!warningText) { lua_pushstring(L, warningResult ? "OK" : "CANCEL"); From 41f64a9a2e1411ec9f675c79929bdc63f23d2fa5 Mon Sep 17 00:00:00 2001 From: Martin <5703553+pre-martin@users.noreply.github.com> Date: Thu, 9 Apr 2020 10:29:00 +0200 Subject: [PATCH 08/33] Adds a page to the windows installer to select the location of the start menu entries. (#7484) --- companion/targets/windows/companion.nsi.in | 83 +++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/companion/targets/windows/companion.nsi.in b/companion/targets/windows/companion.nsi.in index 1a54e4b4d..173edec97 100644 --- a/companion/targets/windows/companion.nsi.in +++ b/companion/targets/windows/companion.nsi.in @@ -6,6 +6,7 @@ ;Include Modern UI !include "MUI2.nsh" + !include "nsDialogs.nsh" !include "@CMAKE_CURRENT_SOURCE_DIR@\..\targets\windows\FileAssociation.nsh" ;-------------------------------- @@ -32,6 +33,10 @@ ;Variables Var StartMenuFolder + Var StartMenuLocationDialog + Var StartMenuLocationRadioCurrent + Var StartMenuLocationRadioAll + Var StartMenuLocationValue ; "current_user" or "all_users" ;-------------------------------- ;Interface Settings @@ -68,9 +73,11 @@ !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenTX\Companion @VERSION_FAMILY@" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder + ;Start Menu Folder for current user or all users? + Page custom StartMenuLocationCreator StartMenuLocationLeave + !insertmacro MUI_PAGE_INSTFILES # These indented statements modify settings for MUI_PAGE_FINISH @@ -127,10 +134,14 @@ Section "OpenTX Companion @VERSION_FAMILY@" SecDummy !insertmacro MUI_STARTMENU_WRITE_BEGIN Application ;Create shortcuts + ${If} $StartMenuLocationValue == "all_users" + SetShellVarContext all + ${Endif} CreateDirectory "$SMPROGRAMS\$StartMenuFolder" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Companion @VERSION_FAMILY@.lnk" "$INSTDIR\companion.exe" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Firmware Simulator @VERSION_FAMILY@.lnk" "$INSTDIR\simulator.exe" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall Companion @VERSION_FAMILY@.lnk" "$INSTDIR\Uninstall.exe" + SetShellVarContext current !insertmacro MUI_STARTMENU_WRITE_END @@ -142,6 +153,14 @@ SectionEnd ;Language strings LangString DESC_SecDummy ${LANG_ENGLISH} "Models and settings editor for OpenTX" LangString DESC_SecDummy ${LANG_FRENCH} "Editeur de r�glages et mod�les pour OpenTX" + LangString SML_SubTitle ${LANG_ENGLISH} "Choose a location for the Start Menu shortcuts" + LangString SML_SubTitle ${LANG_FRENCH} "Choisissez un emplacement pour les raccourcis de l'application" + LangString SML_MainLabel ${LANG_ENGLISH} "Create start menu shortcuts for:" + LangString SML_MainLabel ${LANG_FRENCH} "Emplacement pour les raccourcis de l'application:" + LangString SML_RadioCurrent ${LANG_ENGLISH} "Current user only" + LangString SML_RadioCurrent ${LANG_FRENCH} "Utilisateur actuel" + LangString SML_RadioAll ${LANG_ENGLISH} "All users" + LangString SML_RadioAll ${LANG_FRENCH} "Tous les utilisateurs" ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN @@ -204,6 +223,13 @@ Section "un.OpenTX Companion @VERSION_FAMILY@" !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder + ; Always remove start menu folder for both locations: current user and all users + SetShellVarContext all + Delete "$SMPROGRAMS\$StartMenuFolder\Companion @VERSION_FAMILY@.lnk" + Delete "$SMPROGRAMS\$StartMenuFolder\Firmware Simulator @VERSION_FAMILY@.lnk" + Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Companion @VERSION_FAMILY@.lnk" + RMDir "$SMPROGRAMS\$StartMenuFolder" + SetShellVarContext current Delete "$SMPROGRAMS\$StartMenuFolder\Companion @VERSION_FAMILY@.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Firmware Simulator @VERSION_FAMILY@.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Companion @VERSION_FAMILY@.lnk" @@ -219,3 +245,58 @@ SectionEnd Function LaunchLink ExecShell "" "$INSTDIR\companion.exe" FunctionEnd + + +; Custom page with radio buttons, if the start menu entries shall be created +; for the current user or for all users. +Function StartMenuLocationCreator + ; Set default value if not already set. Do this before we might "abort" this page. + ${If} $StartMenuLocationValue == "" + StrCpy $StartMenuLocationValue "current_user" + ${EndIf} + + ; If the folder starts with >, the user has chosen not to create a shortcut (see NSIS/StartMenu.nsh) + StrCpy $R0 $StartMenuFolder 1 + ${If} $R0 == ">" + Abort + ${EndIf} + + !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_STARTMENU_TITLE) $(SML_SubTitle) + + nsDialogs::Create 1018 + Pop $StartMenuLocationDialog + + ${If} $StartMenuLocationDialog == error + Abort + ${EndIf} + + ${NSD_CreateLabel} 0u 0u 100% 12u $(SML_MainLabel) + Pop $R0 + + ${NSD_CreateRadioButton} 8u 20u 100% 12u $(SML_RadioCurrent) + Pop $StartMenuLocationRadioCurrent + ${NSD_AddStyle} $StartMenuLocationRadioCurrent ${WS_GROUP} + + ${NSD_CreateRadioButton} 8u 40u 100% 12u $(SML_RadioAll) + Pop $StartMenuLocationRadioAll + + ${If} $StartMenuLocationValue == "all_users" + ${NSD_SetState} $StartMenuLocationRadioAll ${BST_CHECKED} + ${Else} + ${NSD_SetState} $StartMenuLocationRadioCurrent ${BST_CHECKED} + ${EndIf} + + ${NSD_OnBack} StartMenuLocationLeave + + nsDialogs::Show +FunctionEnd + +; Converts the radio button state back into a value for "StartMenuLocationValue" +Function StartMenuLocationLeave + ${NSD_GetState} $StartMenuLocationRadioAll $R0 + ${If} $R0 == ${BST_CHECKED} + StrCpy $StartMenuLocationValue "all_users" + ${Else} + StrCpy $StartMenuLocationValue "current_user" + ${Endif} +FunctionEnd From 5cf4e9be4e68d62dbde8887331252903d9265d3e Mon Sep 17 00:00:00 2001 From: Neil Horne Date: Thu, 9 Apr 2020 18:32:57 +1000 Subject: [PATCH 09/33] Add basic context menu to telemetry sensors in companion model edit (#7500) --- companion/src/modeledit/telemetry.cpp | 133 +++++++++- companion/src/modeledit/telemetry.h | 19 +- companion/src/modeledit/telemetry_sensor.ui | 44 ++-- companion/src/shared/CMakeLists.txt | 1 + companion/src/shared/autoprecisioncombobox.h | 257 +++++++++++++++++++ companion/src/shared/genericpanel.h | 1 + 6 files changed, 423 insertions(+), 32 deletions(-) create mode 100644 companion/src/shared/autoprecisioncombobox.h diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp index 68be10638..83565c03e 100644 --- a/companion/src/modeledit/telemetry.cpp +++ b/companion/src/modeledit/telemetry.cpp @@ -592,13 +592,28 @@ void TelemetryCustomScreen::barTimeChanged() } } -TelemetrySensorPanel::TelemetrySensorPanel(QWidget *parent, SensorData & sensor, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware): +/******************************************************/ + +TelemetrySensorPanel::TelemetrySensorPanel(QWidget *parent, SensorData & sensor, int sensorIndex, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware): ModelPanel(parent, model, generalSettings, firmware), ui(new Ui::TelemetrySensor), sensor(sensor), - lock(false) + lock(false), + sensorIndex(sensorIndex), + selectedIndex(0) { ui->setupUi(this); + ui->numLabel->setText(tr("TELE%1").arg(sensorIndex + 1)); + ui->numLabel->setProperty("index", sensorIndex); + ui->numLabel->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); + QFontMetrics *f = new QFontMetrics(QFont()); + QSize sz; + sz = f->size(Qt::TextSingleLine, "TELE00"); + ui->numLabel->setMinimumWidth(sz.width()); + ui->numLabel->setContextMenuPolicy(Qt::CustomContextMenu); + ui->numLabel->setToolTip(tr("Popup menu available")); + ui->numLabel->setMouseTracking(true); + connect(ui->numLabel, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(on_customContextMenuRequested(QPoint))); ui->id->setField(sensor.id, this); ui->instance->setField(sensor.instance, this); ui->ratio->setField(sensor.ratio, this); @@ -613,7 +628,7 @@ TelemetrySensorPanel::TelemetrySensorPanel(QWidget *parent, SensorData & sensor, ui->ampsSensor->setField(sensor.amps, this); ui->cellsSensor->setField(sensor.source, this); ui->cellsIndex->addItem(tr("Lowest"), SensorData::TELEM_CELL_INDEX_LOWEST); - for (int i=1; i<=6; i++) + for (int i = 1; i <= 6; i++) ui->cellsIndex->addItem(tr("Cell %1").arg(i), i); ui->cellsIndex->addItem(tr("Highest"), SensorData::TELEM_CELL_INDEX_HIGHEST); ui->cellsIndex->addItem(tr("Delta"), SensorData::TELEM_CELL_INDEX_DELTA); @@ -622,6 +637,7 @@ TelemetrySensorPanel::TelemetrySensorPanel(QWidget *parent, SensorData & sensor, ui->source2->setField(sensor.sources[1], this); ui->source3->setField(sensor.sources[2], this); ui->source4->setField(sensor.sources[3], this); + ui->prec->setField(sensor.prec, 0, 2, false, "", this); update(); } @@ -645,7 +661,21 @@ void TelemetrySensorPanel::update() ui->name->setText(sensor.label); ui->type->setCurrentIndex(sensor.type); ui->unit->setCurrentIndex(sensor.unit); - ui->prec->setValue(sensor.prec); + ui->id->updateValue(); + ui->instance->updateValue(); + ui->ratio->updateValue(); + ui->offset->updateValue(); + ui->autoOffset->updateValue(); + ui->filter->updateValue(); + ui->logs->updateValue(); + ui->persistent->updateValue(); + ui->onlyPositive->updateValue(); + ui->gpsSensor->updateValue(); + ui->altSensor->updateValue(); + ui->ampsSensor->updateValue(); + ui->cellsSensor->updateValue(); + ui->cellsIndex->updateValue(); + ui->prec->updateValue(); if (sensor.type == SensorData::TELEM_TYPE_CALCULATED) { sensor.updateUnit(); @@ -825,15 +855,85 @@ void TelemetrySensorPanel::on_unit_currentIndexChanged(int index) } } -void TelemetrySensorPanel::on_prec_valueChanged(double value) +void TelemetrySensorPanel::on_prec_valueChanged() { if (!lock) { - sensor.prec = value; + update(); + } +} + +void TelemetrySensorPanel::on_customContextMenuRequested(QPoint pos) +{ + QLabel *label = (QLabel *)sender(); + selectedIndex = label->property("index").toInt(); + QPoint globalPos = label->mapToGlobal(pos); + + QMenu contextMenu; + contextMenu.addAction(CompanionIcon("copy.png"), tr("Copy"),this,SLOT(cmCopy())); + contextMenu.addAction(CompanionIcon("cut.png"), tr("Cut"),this,SLOT(cmCut())); + contextMenu.addAction(CompanionIcon("paste.png"), tr("Paste"),this,SLOT(cmPaste()))->setEnabled(hasClipboardData()); + contextMenu.addAction(CompanionIcon("clear.png"), tr("Clear"),this,SLOT(cmClear())); + contextMenu.addSeparator(); + contextMenu.addAction(CompanionIcon("clear.png"), tr("Clear All"),this,SLOT(cmClearAll())); + + contextMenu.exec(globalPos); +} + +bool TelemetrySensorPanel::hasClipboardData(QByteArray * data) const +{ + const QClipboard * clipboard = QApplication::clipboard(); + const QMimeData * mimeData = clipboard->mimeData(); + if (mimeData->hasFormat(MIMETYPE_TELE_SENSOR)) { + if (data) + data->append(mimeData->data(MIMETYPE_TELE_SENSOR)); + return true; + } + return false; +} + +void TelemetrySensorPanel::cmCopy() +{ + QByteArray data; + data.append((char*)&sensor, sizeof(SensorData)); + QMimeData *mimeData = new QMimeData; + mimeData->setData(MIMETYPE_TELE_SENSOR, data); + QApplication::clipboard()->setMimeData(mimeData, QClipboard::Clipboard); +} + +void TelemetrySensorPanel::cmCut() +{ + cmCopy(); + cmClear(); +} + +void TelemetrySensorPanel::cmPaste() +{ + QByteArray data; + if (hasClipboardData(&data)) { + memcpy(&sensor, data.constData(), sizeof(SensorData)); emit dataModified(); emit modified(); } } +void TelemetrySensorPanel::cmClear() +{ + if (QMessageBox::question(this, CPN_STR_APP_NAME, tr("Clear Telemetry Sensor. Are you sure?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) + return; + + sensor.clear(); + emit dataModified(); + emit modified(); +} + +void TelemetrySensorPanel::cmClearAll() +{ + if (QMessageBox::question(this, CPN_STR_APP_NAME, tr("Clear all Telemetry Sensors. Are you sure?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) + return; + + emit clearAllSensors(); +} + /******************************************************/ TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware): @@ -851,12 +951,13 @@ TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model, GeneralSettin ui->varioCenterSilent->setField(model.frsky.varioCenterSilent, this); ui->A1GB->hide(); ui->A2GB->hide(); - for (unsigned i=0; isensorsLayout->addWidget(panel); sensorPanels[i] = panel; connect(panel, SIGNAL(dataModified()), this, SLOT(update())); connect(panel, SIGNAL(modified()), this, SLOT(onModified())); + connect(panel, SIGNAL(clearAllSensors()), this, SLOT(on_clearAllSensors())); } } else { @@ -869,7 +970,7 @@ TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model, GeneralSettin ui->A2Layout->addWidget(analogs[1]); connect(analogs[1], SIGNAL(modified()), this, SLOT(onModified())); } - + if (IS_TARANIS_X9(firmware->getBoard())) { ui->voltsSource->setField(model.frsky.voltsSource, this); ui->altitudeSource->setField(model.frsky.altitudeSource, this); @@ -881,7 +982,7 @@ TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model, GeneralSettin RawSourceFilterItemModel * srcModel = (new RawSourceFilterItemModel(&generalSettings, &model, this)); connect(this, &TelemetryPanel::updated, srcModel, &RawSourceFilterItemModel::update); - for (int i=0; igetCapability(TelemetryCustomScreens); i++) { + for (int i = 0; i < firmware->getCapability(TelemetryCustomScreens); i++) { TelemetryCustomScreen * tab = new TelemetryCustomScreen(this, model, model.frsky.screens[i], generalSettings, firmware, srcModel); ui->customScreens->addTab(tab, tr("Telemetry screen %1").arg(i+1)); telemetryCustomScreens[i] = tab; @@ -963,7 +1064,7 @@ void TelemetryPanel::setup() ui->rssiSourceCB->setField(model->rssiSource, this); ui->rssiSourceCB->show(); populateTelemetrySourcesComboBox(ui->rssiSourceCB, model, false); - + ui->rssiAlarmWarningCB->hide(); ui->rssiAlarmCriticalCB->hide(); ui->rssiAlarmWarningLabel->setText(tr("Low Alarm")); @@ -1198,3 +1299,13 @@ void TelemetryPanel::on_mahCount_ChkB_toggled(bool checked) ui->mahCount_SB->setDisabled(!checked); emit modified(); } + +void TelemetryPanel::on_clearAllSensors() +{ + for (int i = 0; i < CPN_MAX_SENSORS; i++) { + model->sensorData[i].clear(); + } + + update(); + emit modified(); +} diff --git a/companion/src/modeledit/telemetry.h b/companion/src/modeledit/telemetry.h index b23214927..39f3a42ad 100644 --- a/companion/src/modeledit/telemetry.h +++ b/companion/src/modeledit/telemetry.h @@ -24,6 +24,8 @@ #include "modeledit.h" #include "eeprominterface.h" +constexpr char MIMETYPE_TELE_SENSOR[] = "application/x-companion-tele-sensor"; + class AutoComboBox; class RawSourceFilterItemModel; class TimerEdit; @@ -103,19 +105,27 @@ class TelemetrySensorPanel: public ModelPanel Q_OBJECT public: - TelemetrySensorPanel(QWidget *parent, SensorData & sensor, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware); + TelemetrySensorPanel(QWidget *parent, SensorData & sensor, int sensorIndex, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware); ~TelemetrySensorPanel(); void update(); signals: void dataModified(); + void clearAllSensors(); protected slots: void on_name_editingFinished(); void on_type_currentIndexChanged(int index); void on_formula_currentIndexChanged(int index); void on_unit_currentIndexChanged(int index); - void on_prec_valueChanged(double value); + void on_prec_valueChanged(); + void on_customContextMenuRequested(QPoint pos); + bool hasClipboardData(QByteArray * data = nullptr) const; + void cmCopy(); + void cmCut(); + void cmPaste(); + void cmClear(); + void cmClearAll(); protected: void updateSourcesComboBox(AutoComboBox * cb, bool negative); @@ -123,7 +133,9 @@ class TelemetrySensorPanel: public ModelPanel private: Ui::TelemetrySensor * ui; SensorData & sensor; - bool lock; + bool lock = false; + int sensorIndex = 0; + int selectedIndex = 0; }; class TelemetryPanel : public ModelPanel @@ -154,6 +166,7 @@ class TelemetryPanel : public ModelPanel void on_fasOffset_DSB_editingFinished(); void on_mahCount_SB_editingFinished(); void on_mahCount_ChkB_toggled(bool checked); + void on_clearAllSensors(); private: Ui::Telemetry *ui; diff --git a/companion/src/modeledit/telemetry_sensor.ui b/companion/src/modeledit/telemetry_sensor.ui index 7d08243e0..52660b4f0 100644 --- a/companion/src/modeledit/telemetry_sensor.ui +++ b/companion/src/modeledit/telemetry_sensor.ui @@ -13,13 +13,32 @@ Form - + 0 0 + + + + + 0 + 0 + + + + + 0 + 0 + + + + TELE## + + + @@ -536,23 +555,7 @@ - - - true - - - - 0 - 0 - - - - 0 - - - 2.000000000000000 - - + @@ -711,6 +714,11 @@ QSpinBox
autohexspinbox.h
+ + AutoPrecisionComboBox + QComboBox +
autoprecisioncombobox.h
+
diff --git a/companion/src/shared/CMakeLists.txt b/companion/src/shared/CMakeLists.txt index 81df9dd67..2fbbafbf9 100644 --- a/companion/src/shared/CMakeLists.txt +++ b/companion/src/shared/CMakeLists.txt @@ -15,6 +15,7 @@ set(shared_HDRS autolineedit.h genericpanel.h hexspinbox.h + autoprecisioncombobox.h ) qt5_wrap_cpp(shared_SRCS ${shared_HDRS}) diff --git a/companion/src/shared/autoprecisioncombobox.h b/companion/src/shared/autoprecisioncombobox.h new file mode 100644 index 000000000..4e143f286 --- /dev/null +++ b/companion/src/shared/autoprecisioncombobox.h @@ -0,0 +1,257 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _AUTOPRECISIONCOMBOBOX_H_ +#define _AUTOPRECISIONCOMBOBOX_H_ + +#include "genericpanel.h" + +#include +#include + +class AutoPrecisionComboBox: public QComboBox +{ + Q_OBJECT + //! \property minDecimals Determines the first list item + Q_PROPERTY(unsigned int minDecimals READ minDecimals WRITE setMinDecimals) + //! \property maxDecimals Determines the last list item + Q_PROPERTY(unsigned int maxDecimals READ maxDecimals WRITE setMaxDecimals) + //! \property padding If true, add trailing underscore placeholders to each list item + Q_PROPERTY(bool padding READ padding WRITE setPadding) + //! \property suffix Optional text suffix to each list value + Q_PROPERTY(QString suffix READ suffix WRITE setSuffix) + + public: + explicit AutoPrecisionComboBox(QWidget * parent = nullptr): + QComboBox(parent) + { + init(); + } + + explicit AutoPrecisionComboBox(unsigned int & field, unsigned int minDecimals = 0, unsigned int maxDecimals = 1, bool padding = false, QString suffix = "", QWidget * parent = nullptr, GenericPanel * panel = nullptr): + QComboBox(parent) + { + setField(field, minDecimals, maxDecimals, padding, suffix, panel); + init(); + } + + explicit AutoPrecisionComboBox(int & field, unsigned int minDecimals = 0, unsigned int maxDecimals = 1, bool padding = false, QString suffix = "", QWidget * parent = nullptr, GenericPanel * panel = nullptr): + QComboBox(parent) + { + setField(field, minDecimals, maxDecimals, padding, suffix, panel); + init(); + } + + inline int minDecimals() const { return m_minDecimals; } + inline int maxDecimals() const { return m_maxDecimals; } + inline bool padding() const { return m_padding; } + inline QString suffix() const { return m_suffix; } + + public slots: + void setField(int & field, unsigned int minDecimals = 0, unsigned int maxDecimals = 1, bool padding = false, QString suffix = "", GenericPanel * panel = nullptr) + { + m_field = reinterpret_cast(&field); + initField(minDecimals, maxDecimals, padding, suffix); + setPanel(panel); + } + + void setField(unsigned int & field, unsigned int minDecimals = 0, unsigned int maxDecimals = 1, bool padding = false, QString suffix = "", GenericPanel * panel = nullptr) + { + m_field = &field; + initField(minDecimals, maxDecimals, padding, suffix); + setPanel(panel); + } + + void setMinDecimals(unsigned int minDecimals) + { + m_minDecimals = rangecheckDecimals(minDecimals); + if (m_minDecimals > m_maxDecimals) + m_minDecimals = m_maxDecimals; + if (!m_lock) + updateList(); + } + + void setMaxDecimals(unsigned int maxDecimals) + { + m_maxDecimals = rangecheckDecimals(maxDecimals); + if (m_maxDecimals < m_minDecimals) + m_maxDecimals = m_minDecimals; + if (!m_lock) + updateList(); + } + + void setPadding(bool padding) + { + m_padding = padding; + if (!m_lock) + updateList(); + } + + void setSuffix(QString suffix) + { + m_suffix = suffix.trimmed(); + if (!m_lock) + updateList(); + } + + void setPanel(GenericPanel * panel) + { + m_panel = panel; + } + + void setValue(int value) + { + if (!m_field) + return; + const unsigned int val = (unsigned int)value; + if (*m_field != val) { + *m_field = rangecheckDecimals(val); + updateValue(); + emit valueChanged(); + } + } + + void setValue(unsigned int value) + { + if (!m_field) + return; + if (*m_field != value) { + *m_field = rangecheckDecimals(value); + updateValue(); + emit valueChanged(); + } + } + + void updateValue() + { + if (!m_field) + return; + if (!isValidDecimals(*m_field)) + return; + if (*m_field > m_maxDecimals) { + setMaxDecimals(*m_field); + } + const bool savedlock = setLocked(true); + setCurrentIndex(findData(*m_field)); + setLocked(savedlock); + } + + void setAutoIndexes() + { + for (int i = 0; i < count(); ++i) + setItemData(i, i); + updateValue(); + } + + signals: + void valueChanged(); + + protected slots: + void init() + { + connect(this, QOverload::of(&AutoPrecisionComboBox::currentIndexChanged), this, &AutoPrecisionComboBox::onCurrentIndexChanged); + } + + void initField(unsigned int minDecimals, unsigned int maxDecimals, bool padding, QString suffix) + { + const bool savedlock = setLocked(true); + setMinDecimals(minDecimals); + setMaxDecimals(maxDecimals); + setPadding(padding); + setSuffix(suffix); + setLocked(savedlock); + updateList(); + } + + void updateList() + { + const bool savedlock = setLocked(true); + unsigned int i; + int j; + clear(); + + for (i = APCB_DECIMALS_MIN, j = (int)m_maxDecimals; j >= 0; i++, j--) { + if (i >= m_minDecimals) { + QString str = QString("0.%1").arg(QString(i, '0')); + if (m_padding) + str.append(QString(j, '_')); + if (m_suffix != "") + str.append(QString(" %1").arg(m_suffix)); + addItem(str, i); + } + } + + setSizeAdjustPolicy(QComboBox::AdjustToContents); + setLocked(savedlock); + } + + void onCurrentIndexChanged(int index) + { + if (index < 0) + return; + if (m_field && !m_lock) { + *m_field = itemData(index).toUInt(); + if (m_panel) + emit m_panel->modified(); + emit valueChanged(); + } + } + + unsigned int rangecheckDecimals(unsigned int decimals) + { + unsigned int ret; + if (decimals < APCB_DECIMALS_MIN) + ret = APCB_DECIMALS_MIN; + else if (decimals > APCB_DECIMALS_MAX) + ret = APCB_DECIMALS_MAX; + else + ret = decimals; + return ret; + } + + bool isValidDecimals(unsigned int value) + { + if (value >= APCB_DECIMALS_MIN && value <= APCB_DECIMALS_MAX) + return true; + else + return false; + } + + bool setLocked(bool lock) + { + const bool ret = m_lock; + m_lock = lock; + return ret; + } + + protected: + constexpr static unsigned int APCB_DECIMALS_MIN = {0}; + constexpr static unsigned int APCB_DECIMALS_MAX = {6}; + + unsigned int * m_field = nullptr; + GenericPanel * m_panel = nullptr; + unsigned int m_minDecimals = 0; + unsigned int m_maxDecimals = 0; + bool m_padding = false; + QString m_suffix = ""; + bool m_lock = false; +}; + +#endif // _AUTOPRECISIONCOMBOBOX_H_ diff --git a/companion/src/shared/genericpanel.h b/companion/src/shared/genericpanel.h index 1ce8e906e..5351355b6 100644 --- a/companion/src/shared/genericpanel.h +++ b/companion/src/shared/genericpanel.h @@ -39,6 +39,7 @@ class GenericPanel : public QWidget friend class AutoHexSpinBox; friend class AutoLineEdit; friend class GVarGroup; + friend class AutoPrecisionComboBox; public: GenericPanel(QWidget *parent, ModelData * model, GeneralSettings & generalSettings, Firmware * firmware); From f40327a1ff5463fca63e83715bddac55abcb0687 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 10 Apr 2020 19:46:08 +0200 Subject: [PATCH 10/33] Update CREDITS.txt --- CREDITS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS.txt b/CREDITS.txt index 128250e63..b84116363 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1712,3 +1712,4 @@ Julio Margarido Uwe Muendelein James Jewitt Daniel Ferreira +Michael Charlston From 57198209aa0d7335098e77157ee2c99fc50bd24e Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 10 Apr 2020 20:54:21 +0200 Subject: [PATCH 11/33] Fixes for OTA on Horus --- radio/src/gui/480x272/menus.h | 2 ++ radio/src/gui/480x272/radio_sdmanager.cpp | 3 ++- radio/src/gui/common/stdlcd/radio_sdmanager.cpp | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/480x272/menus.h b/radio/src/gui/480x272/menus.h index 83c667f19..a63e64c8d 100644 --- a/radio/src/gui/480x272/menus.h +++ b/radio/src/gui/480x272/menus.h @@ -559,6 +559,8 @@ inline void CLEAR_POPUP() warningInfoText = nullptr; popupMenuHandler = nullptr; popupMenuItemsCount = 0; + // TODO ? popupFunc = nullptr; + pushEvent(EVT_REFRESH); } inline void POPUP_WAIT(const char * s) diff --git a/radio/src/gui/480x272/radio_sdmanager.cpp b/radio/src/gui/480x272/radio_sdmanager.cpp index 90b5e5f57..96fb7c18d 100644 --- a/radio/src/gui/480x272/radio_sdmanager.cpp +++ b/radio/src/gui/480x272/radio_sdmanager.cpp @@ -97,6 +97,7 @@ void onUpdateConfirmation(const char * result) OtaUpdateInformation * destination = moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].otaUpdateInformation; Pxx2OtaUpdate otaUpdate(reusableBuffer.sdManager.otaUpdateInformation.module, destination->candidateReceiversNames[destination->selectedReceiverIndex]); otaUpdate.flashFirmware(destination->filename); + putEvent(EVT_REFRESH); } else { moduleState[reusableBuffer.sdManager.otaUpdateInformation.module].mode = MODULE_MODE_NORMAL; @@ -563,7 +564,7 @@ bool menuRadioSdManager(event_t _event) if (reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount > 0) { if (reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount != popupMenuItemsCount) { CLEAR_POPUP(); - popupMenuItemsCount = min(reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount,PXX2_MAX_RECEIVERS_PER_MODULE); + popupMenuItemsCount = min(reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount, PXX2_MAX_RECEIVERS_PER_MODULE); for (auto rx = 0; rx < popupMenuItemsCount; rx++) { popupMenuItems[rx] = reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversNames[rx]; } diff --git a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp index d6def8115..e719951b3 100644 --- a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp +++ b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp @@ -576,7 +576,7 @@ void menuRadioSdManager(event_t _event) if (reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount > 0) { if (reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount != popupMenuItemsCount) { CLEAR_POPUP(); - popupMenuItemsCount = min(reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount,PXX2_MAX_RECEIVERS_PER_MODULE); + popupMenuItemsCount = min(reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversCount, PXX2_MAX_RECEIVERS_PER_MODULE); for (auto rx = 0; rx < popupMenuItemsCount; rx++) { popupMenuItems[rx] = reusableBuffer.sdManager.otaUpdateInformation.candidateReceiversNames[rx]; } From ebe33693b415bf47bb25ee9f42d708f578faa1d0 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 11 Apr 2020 07:44:48 +0200 Subject: [PATCH 12/33] Compilation fix --- radio/src/gui/480x272/menus.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/gui/480x272/menus.h b/radio/src/gui/480x272/menus.h index a63e64c8d..f82baeb14 100644 --- a/radio/src/gui/480x272/menus.h +++ b/radio/src/gui/480x272/menus.h @@ -560,7 +560,7 @@ inline void CLEAR_POPUP() popupMenuHandler = nullptr; popupMenuItemsCount = 0; // TODO ? popupFunc = nullptr; - pushEvent(EVT_REFRESH); + putEvent(EVT_REFRESH); } inline void POPUP_WAIT(const char * s) From d90ac28cc19e859924dd934652a486b3adaeb0c6 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 11 Apr 2020 13:18:57 +0200 Subject: [PATCH 13/33] Refactoring to have globals splitted from opentx.h for easier includes (#7511) --- radio/src/buzzer.h | 2 - radio/src/datastructs.h | 3 +- radio/src/globals.h | 97 +++++++++++++++++++ radio/src/gui/480x272/model_setup.cpp | 5 +- radio/src/gui/480x272/radio_power_meter.cpp | 5 +- .../gui/480x272/radio_spectrum_analyser.cpp | 5 +- radio/src/mixer.cpp | 12 +-- radio/src/opentx.h | 79 +-------------- radio/src/pulses/modules_helpers.h | 11 +++ radio/src/pulses/pulses.cpp | 4 +- 10 files changed, 119 insertions(+), 104 deletions(-) create mode 100644 radio/src/globals.h diff --git a/radio/src/buzzer.h b/radio/src/buzzer.h index aa13746f8..f0c545d5e 100644 --- a/radio/src/buzzer.h +++ b/radio/src/buzzer.h @@ -22,8 +22,6 @@ #define _BUZZER_H_ #if defined(BUZZER) -extern uint8_t g_beepCnt; -extern uint8_t beepAgain; extern uint8_t beepAgainOrig; extern uint8_t beepOn; extern bool warble; diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 7a2454034..413c5efcd 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -26,6 +26,7 @@ #include "dataconstants.h" #include "definitions.h" #include "bitfield.h" +#include "globals.h" #if defined(PCBTARANIS) #define N_TARANIS_FIELD(x) @@ -483,8 +484,6 @@ PACK(struct ModuleData { * Model structure */ -typedef uint16_t BeepANACenter; - #if LEN_BITMAP_NAME > 0 #define MODEL_HEADER_BITMAP_FIELD NOBACKUP(char bitmap[LEN_BITMAP_NAME]); #else diff --git a/radio/src/globals.h b/radio/src/globals.h new file mode 100644 index 000000000..cf67dbc4a --- /dev/null +++ b/radio/src/globals.h @@ -0,0 +1,97 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _GLOBALS_H_ +#define _GLOBALS_H_ + +#include "definitions.h" +#include "dataconstants.h" + +PACK(struct GlobalData { + uint8_t unexpectedShutdown:1; + uint8_t externalAntennaEnabled:1; + uint8_t authenticationCount:2; + uint8_t upgradeModulePopup:1; + uint8_t internalModuleVersionChecked:1; + uint8_t spare:2; +}); + +extern GlobalData globalData; + +extern uint16_t sessionTimer; +extern uint16_t s_timeCumThr; +extern uint16_t s_timeCum16ThrP; + +#if defined(OVERRIDE_CHANNEL_FUNCTION) +#define OVERRIDE_CHANNEL_UNDEFINED -4096 +extern safetych_t safetyCh[MAX_OUTPUT_CHANNELS]; +#endif + +extern uint8_t trimsCheckTimer; +extern uint8_t trimsDisplayTimer; +extern uint8_t trimsDisplayMask; +extern uint16_t maxMixerDuration; + +extern uint8_t requiredSpeakerVolume; + +enum MainRequest { + REQUEST_SCREENSHOT, + REQUEST_FLIGHT_RESET, +}; + +extern uint8_t mainRequestFlags; + +#define DELAY_POS_MARGIN 3 +typedef int16_t delayval_t; +PACK(struct SwOn { + uint16_t delay:14; // max = 2550 + uint8_t activeMix:1; + uint8_t activeExpo:1; + int16_t now; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw + int16_t prev; +}); + +extern SwOn swOn[MAX_MIXERS]; +extern int32_t act[MAX_MIXERS]; + +// static variables used in evalFlightModeMixes - moved here so they don't interfere with the stack +// It's also easier to initialize them here. +extern int8_t virtualInputsTrims[MAX_INPUTS]; + +extern int16_t anas [MAX_INPUTS]; +extern int16_t trims[NUM_TRIMS]; +extern int32_t chans[MAX_OUTPUT_CHANNELS]; +extern int16_t ex_chans[MAX_OUTPUT_CHANNELS]; // Outputs (before LIMITS) of the last perMain +extern int16_t channelOutputs[MAX_OUTPUT_CHANNELS]; + +typedef uint16_t BeepANACenter; +extern BeepANACenter bpanaCenter; + +extern uint8_t s_mixer_first_run_done; + +extern int16_t calibratedAnalogs[NUM_CALIBRATED_ANALOGS]; + +extern uint8_t g_beepCnt; +extern uint8_t beepAgain; +extern uint16_t lightOffCounter; +extern uint8_t flashCounter; +extern uint8_t mixWarning; + +#endif diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index b8c01cbaa..3cd369ddb 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -1018,10 +1018,6 @@ bool menuModelSetup(event_t event) uint8_t moduleType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].type, MODULE_TYPE_NONE, MODULE_TYPE_MAX, EE_MODEL, isInternalModuleAvailable); if (checkIncDec_Ret) { setModuleType(INTERNAL_MODULE, moduleType); -#if defined(ACCESS_LIB) - // the module will reset on mode switch, we need to reset the authentication counter - globalData.authenticationCount = 0; -#endif } } else if (isModuleXJT(INTERNAL_MODULE)) { @@ -1034,6 +1030,7 @@ bool menuModelSetup(event_t event) } else if (isModulePXX2(INTERNAL_MODULE)) { g_model.moduleData[INTERNAL_MODULE].subType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].subType, 0, MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16, EE_MODEL); + resetAccessAuthenticationCount(); } } break; diff --git a/radio/src/gui/480x272/radio_power_meter.cpp b/radio/src/gui/480x272/radio_power_meter.cpp index f49eeb93c..c1f6ac316 100644 --- a/radio/src/gui/480x272/radio_power_meter.cpp +++ b/radio/src/gui/480x272/radio_power_meter.cpp @@ -50,10 +50,7 @@ bool menuRadioPowerMeter(event_t event) lcdDrawCenteredText(LCD_H/2, STR_STOPPING); lcdRefresh(); moduleState[g_moduleIdx].readModuleInformation(&reusableBuffer.moduleSetup.pxx2.moduleInformation, PXX2_HW_INFO_TX_ID, PXX2_HW_INFO_TX_ID); -#if defined(ACCESS_LIB) - // the module will reset on mode switch, we need to reset the authentication counter - globalData.authenticationCount = 0; -#endif + resetAccessAuthenticationCount(); /* wait 1s to resume normal operation before leaving */ watchdogSuspend(500 /*5s*/); RTOS_WAIT_MS(1000); diff --git a/radio/src/gui/480x272/radio_spectrum_analyser.cpp b/radio/src/gui/480x272/radio_spectrum_analyser.cpp index 39ff66e02..95e40e9db 100644 --- a/radio/src/gui/480x272/radio_spectrum_analyser.cpp +++ b/radio/src/gui/480x272/radio_spectrum_analyser.cpp @@ -58,10 +58,7 @@ bool menuRadioSpectrumAnalyser(event_t event) lcdRefresh(); if (isModulePXX2(g_moduleIdx)) { moduleState[g_moduleIdx].readModuleInformation(&reusableBuffer.moduleSetup.pxx2.moduleInformation, PXX2_HW_INFO_TX_ID, PXX2_HW_INFO_TX_ID); -#if defined(ACCESS_LIB) - // the module will reset on mode switch, we need to reset the authentication counter - globalData.authenticationCount = 0; -#endif + resetAccessAuthenticationCount(); } else if (isModuleMultimodule(g_moduleIdx)) { if (reusableBuffer.spectrumAnalyser.moduleOFF) diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index a8100da22..d361ac479 100644 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -901,9 +901,7 @@ void evalMixes(uint8_t tick10ms) static uint16_t fp_act[MAX_FLIGHT_MODES] = {0}; static uint16_t delta = 0; - static ACTIVE_PHASES_TYPE flightModesFade = 0; - - LS_RECURSIVE_EVALUATION_RESET(); + static uint16_t flightModesFade = 0; uint8_t fm = getFlightMode(); @@ -915,7 +913,7 @@ void evalMixes(uint8_t tick10ms) } else { uint8_t fadeTime = max(g_model.flightModeData[lastFlightMode].fadeOut, g_model.flightModeData[fm].fadeIn); - ACTIVE_PHASES_TYPE transitionMask = ((ACTIVE_PHASES_TYPE)1 << lastFlightMode) + ((ACTIVE_PHASES_TYPE)1 << fm); + uint16_t transitionMask = (0x01u << lastFlightMode) + (0x01u << fm); if (fadeTime) { flightModesFade |= transitionMask; delta = (MAX_ACT / 10) / fadeTime; @@ -945,15 +943,13 @@ void evalMixes(uint8_t tick10ms) if (flightModesFade) { memclear(sum_chans512, sizeof(sum_chans512)); for (uint8_t p=0; p> 4) * fp_act[p]; weight += fp_act[p]; } - LS_RECURSIVE_EVALUATION_RESET(); } assert(weight); mixerCurrentFlightMode = fm; @@ -994,7 +990,7 @@ void evalMixes(uint8_t tick10ms) if (tick10ms && flightModesFade) { uint16_t tick_delta = delta * tick10ms; for (uint8_t p=0; p tick_delta) diff --git a/radio/src/opentx.h b/radio/src/opentx.h index cd9ac3a58..7ca6a1db6 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -21,14 +21,12 @@ #ifndef _OPENTX_H_ #define _OPENTX_H_ -#include -#include -#include #include -#include #include "definitions.h" #include "opentx_types.h" #include "debounce.h" +#include "globals.h" +#include "opentx_helpers.h" #if defined(SIMU) #include "targets/simu/simpgmspace.h" @@ -502,7 +500,6 @@ void logicalSwitchesReset(); void evalLogicalSwitches(bool isCurrentFlightmode=true); void logicalSwitchesCopyState(uint8_t src, uint8_t dst); -#define LS_RECURSIVE_EVALUATION_RESET() #if defined(PCBTARANIS) || defined(PCBHORUS) void getSwitchesPosition(bool startup); @@ -547,34 +544,8 @@ bool setTrimValue(uint8_t phase, uint8_t idx, int trim); #include "gvars.h" -extern uint16_t sessionTimer; -extern uint16_t s_timeCumThr; -extern uint16_t s_timeCum16ThrP; - -#if defined(OVERRIDE_CHANNEL_FUNCTION) -#define OVERRIDE_CHANNEL_UNDEFINED -4096 -extern safetych_t safetyCh[MAX_OUTPUT_CHANNELS]; -#endif - -extern uint8_t trimsCheckTimer; -extern uint8_t trimsDisplayTimer; -extern uint8_t trimsDisplayMask; - void flightReset(uint8_t check=true); -PACK(struct GlobalData { - uint8_t unexpectedShutdown:1; - uint8_t externalAntennaEnabled:1; - uint8_t authenticationCount:2; - uint8_t upgradeModulePopup:1; - uint8_t internalModuleVersionChecked:1; - uint8_t spare:2; -}); - -extern GlobalData globalData; - -extern uint16_t maxMixerDuration; - #define DURATION_MS_PREC2(x) ((x)/20) #if defined(THRTRACE) @@ -723,14 +694,9 @@ extern const char vers_stamp[]; const char * getOtherVersion(char * buffer); #define g_blinkTmr10ms (*(uint8_t*)&g_tmr10ms) -extern uint8_t g_beepCnt; #include "trainer.h" -extern int32_t chans[MAX_OUTPUT_CHANNELS]; -extern int16_t ex_chans[MAX_OUTPUT_CHANNELS]; // Outputs (before LIMITS) of the last perMain -extern int16_t channelOutputs[MAX_OUTPUT_CHANNELS]; - int expo(int x, int k); inline void getMixSrcRange(const int source, int16_t & valMin, int16_t & valMax, LcdFlags * flags = 0) @@ -829,33 +795,15 @@ int16_t applyLimits(uint8_t channel, int32_t value); void evalInputs(uint8_t mode); uint16_t anaIn(uint8_t chan); -extern int16_t calibratedAnalogs[NUM_CALIBRATED_ANALOGS]; - #define FLASH_DURATION 20 /*200ms*/ -extern uint8_t beepAgain; -extern uint16_t lightOffCounter; -extern uint8_t flashCounter; -extern uint8_t mixWarning; - FlightModeData * flightModeAddress(uint8_t idx); ExpoData * expoAddress(uint8_t idx); MixData * mixAddress(uint8_t idx); LimitData * limitAddress(uint8_t idx); LogicalSwitchData * lswAddress(uint8_t idx); -// static variables used in evalFlightModeMixes - moved here so they don't interfere with the stack -// It's also easier to initialize them here. -extern int8_t virtualInputsTrims[MAX_INPUTS]; - -extern int16_t anas [MAX_INPUTS]; -extern int16_t trims[NUM_TRIMS]; -extern BeepANACenter bpanaCenter; - -extern uint8_t s_mixer_first_run_done; - void applyDefaultTemplate(); - void instantTrim(); void evalTrims(); void copyTrimsToOffset(uint8_t ch); @@ -863,20 +811,6 @@ void copySticksToOffset(uint8_t ch); void copyMinMaxToOutputs(uint8_t ch); void moveTrimsToOffsets(); -typedef uint16_t ACTIVE_PHASES_TYPE; -#define DELAY_POS_MARGIN 3 -typedef int16_t delayval_t; -PACK(struct SwOn { - uint16_t delay:14; // max = 2550 - uint8_t activeMix:1; - uint8_t activeExpo:1; - int16_t now; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw - int16_t prev; -}); - -extern SwOn swOn[MAX_MIXERS]; -extern int32_t act[MAX_MIXERS]; - #if defined(BOLD_FONT) inline bool isExpoActive(uint8_t expo) { @@ -1050,15 +984,6 @@ void setMFP(); void clearMFP(); #endif -extern uint8_t requiredSpeakerVolume; - -enum MainRequest { - REQUEST_SCREENSHOT, - REQUEST_FLIGHT_RESET, -}; - -extern uint8_t mainRequestFlags; - void checkBattery(); void opentxClose(uint8_t shutdown=true); void opentxInit(); diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index a1e3cee65..5327938d2 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -26,6 +26,7 @@ #include "opentx_helpers.h" #include "telemetry/telemetry.h" #include "storage/storage.h" +#include "globals.h" #if defined(MULTIMODULE) #include "telemetry/multi.h" @@ -534,6 +535,14 @@ inline void setDefaultPpmFrameLength(uint8_t moduleIdx) g_model.moduleData[moduleIdx].ppm.frameLength = 4 * max(0, g_model.moduleData[moduleIdx].channelsCount); } +inline void resetAccessAuthenticationCount() +{ +#if defined(ACCESS_LIB) + // the module will reset on mode switch, we need to reset the authentication counter + globalData.authenticationCount = 0; +#endif +} + inline void setModuleType(uint8_t moduleIdx, uint8_t moduleType) { ModuleData & moduleData = g_model.moduleData[moduleIdx]; @@ -544,6 +553,8 @@ inline void setModuleType(uint8_t moduleIdx, uint8_t moduleType) moduleData.sbus.refreshRate = -31; else if (moduleData.type == MODULE_TYPE_PPM) setDefaultPpmFrameLength(moduleIdx); + else + resetAccessAuthenticationCount(); } extern bool isExternalAntennaEnabled(); diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index 42f04fb26..afcbaa061 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -308,9 +308,7 @@ static void enablePulsesInternalModule(uint8_t protocol) #if defined(PXX2) case PROTOCOL_CHANNELS_PXX2_HIGHSPEED: intmoduleSerialStart(PXX2_HIGHSPEED_BAUDRATE, true, USART_Parity_No, USART_StopBits_1, USART_WordLength_8b); -#if defined(HARDWARE_INTERNAL_MODULE) && defined(INTERNAL_MODULE_PXX2) && defined(ACCESS_LIB) - globalData.authenticationCount = 0; -#endif + resetAccessAuthenticationCount(); break; #endif From 673fcb9287bd5beededb4a0b7d01178b568c16be Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 11 Apr 2020 17:25:46 +0200 Subject: [PATCH 14/33] Update CREDITS.txt --- CREDITS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS.txt b/CREDITS.txt index b84116363..2f1fbc891 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1713,3 +1713,4 @@ Uwe Muendelein James Jewitt Daniel Ferreira Michael Charlston +Leopoldo Cicero From 5e2fc7f1aed9169031fb05b4594db6792c7c91fe Mon Sep 17 00:00:00 2001 From: pascallanger Date: Mon, 13 Apr 2020 11:39:59 +0200 Subject: [PATCH 15/33] Multi: Enable D8, D16v1 and D16v2.1 TX clone mode (#7516) * Clone mode * Switch table from octal to hex * Revert change to octal as requested by 3djc * Changing to Cloned to please 3djc ;-) * Minimum Multi version: 1.3.0.87 * Cosmetics * Cosmetics * Add cloned to X2 Co-authored-by: Pascal Langer Co-authored-by: 3djc --- jumpertx-t16-2.3.8.bin | Bin 0 -> 1051568 bytes radio/src/gui/gui_common.cpp | 10 +++++----- radio/src/pulses/modules_constants.h | 4 +++- radio/src/pulses/modules_helpers.h | 2 +- radio/src/pulses/multi.cpp | 16 ++++++++++++---- radio/src/telemetry/multi.cpp | 2 +- radio/src/telemetry/telemetry.h | 2 +- 7 files changed, 23 insertions(+), 13 deletions(-) create mode 100644 jumpertx-t16-2.3.8.bin diff --git a/jumpertx-t16-2.3.8.bin b/jumpertx-t16-2.3.8.bin new file mode 100644 index 0000000000000000000000000000000000000000..25865937a4c010c9c4550dfd68130acc7c799dba GIT binary patch literal 1051568 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 RLhnLpm8m0HSY;=0 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�e|l~U$(5jW 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%0AozS;!BQ#O2Z4q`_+?IB> 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
I71p(h}H9j%_pxtH{H79sv6 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�=woc)c{ z@z8E)a_J52u3WgpppN^kffi9K6X1PDt}Rm%_yHUyTw27`FhwK)(>V9GYQ@1podS$0rLY4nG37-o>pg9lc4 zc7Ig9XYA!v7*_hn;?FSLtD{H-VR_v{K`iP^R0 zp20?7=U-@x_`*fSX2Yq{JPq##>6-ZIZj2Cp!3d^ql~_iiAf*+N4Ss^WSbC-fqZ{Kb zcTJ92Ph8TntVmLJ-|6D13Q{mp6GgFq(>1Hi0$QvRtYX4r6I*sOq!d<$zb}L&&&J9W z`HE=e@}~ugDRm*gVD_kaP2W@@4pY1v?ZZIWMnq*h61@4Bz=MoHGi$^f@DaFVCRj1P zVY)CvhmJ$&Ymh@dvhJC!Craln&n``>7d>!3V1GD_8#^LsmtvOuqbLN@KUOfiPI zneAi-h%5d@+w(5wn~zJMNL*1*edU}$CjWWkY*uF>tM8!t6kAAFG)1%!%@|S*;YBxw zPCLkkVf+Y=tuTwQ;OwBekU~hBigp4g zP=KS~OB9|WM&O$={93EC0vu(MDk9GjNML!m8}&YHtUMngw25%|Vu(>e z=c%zAUjY-ig-XDNk@GV`Y<~#khaZe(?gCRqoV#2z!5KogZ!QYt9z55(>yS>27^XXB z;I~VXLN#!2DTgDE8K7%qKj8Jt*-IyG6H=DEeGf4-DsMdJx0Gs2aI*(Ac3Wj-f6`AeXM{6I2rbrmMuX75OzUu95l&lGa(N|uDuL8a*HGeX1IdYFc2D6Usb+N+Kc z^9dui8lf01L|DOBtvD!`cU~bbRsi?OV*siln=(+7xcAdrC0o0=B8av5DD+3aZLqGx$ znG>?zTdU4RXk%lA+6EwVI=B4N0fvUCx82~tOl5^B`z1ptaHl}c7kYvvNePxySvnKr zVFu%dRNLb(SP*F!0M-WbMxbbk4kqMj<-+r_BRr9ulz8)rC864OX%*l8C`U= zP|!vp9%_95)Gl4N4#AQJpI6p`vA6`qbbL;wb1)S{)u+-kP^KtQjC|MB?h_#pbVSYb zoU&Hc5ls_97%r5DV2$g^D!BDO_Yf3DAn|Z0a|oHxfJouIj3TiN%(vGQmOWtl3>9H0 zBG8x)utYTB7tfJ@Fy=H%8l%I*S9GL_P`Mxqrxg|{QuV#aB2vod#E?`)WT7(EPCN7j z#i4%a=Tb41@Q693fR8v(J+Pmb$+HP|q@k8>92&FZtofoTu}`@}C$(91Gw>rUAG23a zF%O9~Bwb00<{?{}LoAK6l;+3BK;3L{(@Bf8_q@qZ_=~HEk4si5^SE-4 zHUm4e!#-@;+kwxh&dxDSHsejxI}X~w{wr}*Z4aEocYMIkrc5|Nz=#^ed9 z(rSGrwNs)7;w^8zlkm|(o0a^xYec3e8q7SMuV!&1dDYm;D8pc*Cblv~w{g2nUrC`y z)07O%9CIdJiA8+O2*cc7U1dI7V{2zG@dJ8`z6GCw(uMM92A^iN7S@QpY{D5Fd46YP zepa+-wOo4GwbPY|OSytnc9r-!%)MpjnD9W>m<%$>h=)|g%3_do=9NlRzU}oHSt&Q< zN8P+_H%{k3rm+h+TIEQ`Rt1TXc$&&dWDPbOqsSeZI2uGMb$E&&cm0=>vUq?!(GA|K#ooQ8W?QEMS!QDaJ4s87t zc$#pB)zx&8WWJ>mVI;8tV$F3mP||mpLfe$GcvX-!Fc73vH!4JMYae%;-DvKPZfQm* zkaS2x3k635<$H`;Lg)a49Ru_j5Kzrfi=HJ>Fb+-spHKu>qIhIZ-*aMmLykWD(R6zc z?TtuGrgC&IfAqTMf|Ag+2vBF#(`Pc9eOkLX>e5uJHglNH3(CqP+7E5Oc;U>_;f3Yt zL-7L@+Xs@wFM)+haa*mL2H3Sy;rt-L4x|liNDSD#EkLcXnulQZg1>y`&Vd0MfCi&X zCk~j zp#6y!EI%mmj_lncOqV@cP^m^NbIlXQVuTG7I}(Y3gbsLugNc?iq9guc<}6Qz3<2nj z`_nmj3&OJaH7??4LgVSox~3Hv*;$u})o0T%D4a_&>X?vGQ{2>sXu8{&TmJINs(wP= z<*j!Rz1bvrhOC5>%L*5gyZ~qiqiPhaEB}eQM}?#O z8jMl9t_Z^=vmH5_P}ocq0O4r8yS;w8c^&!O`Ppq99ppikes0KTm6%g= z{`{BCHk^KgKs)b>X!9D!%iL<6EJH19${kax$n&0*FCVk-e5`GG+t;;|P-595dypfR zncOroa)6ZhmW*w27=1d2xKU#shu=+au&Tw-y^{B~gNGn*i#n?WT$wYW*TKy6K!s`Ξ+A69`379P5X(NS#dnChExRAt+jvsdl>OS(!5 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�>Cm-v6KK?&%RW;d}Rf?|tukucb5HU0q#u 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 M#F@ufK>x7+34D(%c>n+a literal 0 HcmV?d00001 diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 045357b64..5efab1510 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -803,7 +803,7 @@ uint8_t convertMultiProtocol(uint8_t moduleIdx, uint8_t type) if (type == MODULE_SUBTYPE_MULTI_FRSKY) { int subtype = g_model.moduleData[moduleIdx].subType; - if (subtype == MM_RF_FRSKY_SUBTYPE_D8) { + if (subtype == MM_RF_FRSKY_SUBTYPE_D8 || subtype == MM_RF_FRSKY_SUBTYPE_D8_CLONED) { //D8 type = 3; } @@ -831,8 +831,8 @@ uint8_t convertMultiProtocol(uint8_t moduleIdx, uint8_t type) const char STR_SUBTYPE_FLYSKY[] = "\004""Std\0""V9x9""V6x6""V912""CX20"; const char STR_SUBTYPE_HUBSAN[] = "\004""H107""H301""H501"; -const char STR_SUBTYPE_FRSKY[] = "\007""D16\0 ""D8\0 ""D16 8ch""V8\0 ""LBT(EU)""LBT 8ch"; -const char STR_SUBTYPE_FRSKYX2[] = "\007""D16\0 ""D16 8ch""LBT(EU)""LBT 8ch"; +const char STR_SUBTYPE_FRSKY[] = "\011""D16\0 ""D8\0 ""D16 8ch\0 ""V8\0 ""LBT(EU)\0 ""LBT 8ch\0 ""D8Cloned\0""D16Cloned"; +const char STR_SUBTYPE_FRSKYX2[] = "\011""D16\0 ""D16 8ch\0 ""LBT(EU)\0 ""LBT 8ch\0 ""D16Cloned"; const char STR_SUBTYPE_HISKY[] = "\005""Std\0 ""HK310"; const char STR_SUBTYPE_V2X2[] = "\006""Std\0 ""JXD506"; const char STR_SUBTYPE_DSM[] = "\006""2 22ms""2 11ms""X 22ms""X 11ms"; @@ -883,7 +883,7 @@ const mm_protocol_definition multi_protocols[] = { // Protocol as defined in pulses\modules_constants.h, number of sub_protocols - 1, Failsafe supported, Disable channel mapping supported, Subtype string, Option type {MODULE_SUBTYPE_MULTI_FLYSKY, 4, false, true, STR_SUBTYPE_FLYSKY, nullptr}, {MODULE_SUBTYPE_MULTI_HUBSAN, 2, false, false, STR_SUBTYPE_HUBSAN, STR_MULTI_VIDFREQ}, - {MODULE_SUBTYPE_MULTI_FRSKY, 5, false, false, STR_SUBTYPE_FRSKY, STR_MULTI_RFTUNE}, + {MODULE_SUBTYPE_MULTI_FRSKY, 7, false, false, STR_SUBTYPE_FRSKY, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_HISKY, 1, false, true, STR_SUBTYPE_HISKY, nullptr}, {MODULE_SUBTYPE_MULTI_V2X2, 1, false, false, STR_SUBTYPE_V2X2, nullptr}, {MODULE_SUBTYPE_MULTI_DSM2, 3, false, true, STR_SUBTYPE_DSM, STR_MULTI_MAX_THROW}, @@ -924,7 +924,7 @@ const mm_protocol_definition multi_protocols[] = { {MODULE_SUBTYPE_MULTI_ESKY150, 1, false, false, STR_SUBTYPE_ESKY150, nullptr}, {MODULE_SUBTYPE_MULTI_FX816, 0, false, false, STR_SUBTYPE_FX816, nullptr}, {MODULE_SUBTYPE_MULTI_HOTT, 0, true, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, - {MODULE_SUBTYPE_MULTI_FRSKYX2, 3, true, false, STR_SUBTYPE_FRSKYX2, STR_MULTI_RFTUNE}, + {MODULE_SUBTYPE_MULTI_FRSKYX2, 4, true, false, STR_SUBTYPE_FRSKYX2, STR_MULTI_RFTUNE}, {MM_RF_CUSTOM_SELECTED, 7, true, true, NO_SUBTYPE, STR_MULTI_OPTION}, // Sentinel and default for protocols not listed above (MM_RF_CUSTOM is 0xff) diff --git a/radio/src/pulses/modules_constants.h b/radio/src/pulses/modules_constants.h index efbcd1b3d..d890e38ab 100644 --- a/radio/src/pulses/modules_constants.h +++ b/radio/src/pulses/modules_constants.h @@ -182,7 +182,9 @@ enum MMRFrskySubtypes { MM_RF_FRSKY_SUBTYPE_D16_8CH, MM_RF_FRSKY_SUBTYPE_V8, MM_RF_FRSKY_SUBTYPE_D16_LBT, - MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH + MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH, + MM_RF_FRSKY_SUBTYPE_D8_CLONED, + MM_RF_FRSKY_SUBTYPE_D16_CLONED }; enum ModuleSubtypeDSM2 { diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index 5327938d2..244e58a79 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -58,7 +58,7 @@ inline uint8_t getMaxMultiSubtype(uint8_t moduleIdx) const mm_protocol_definition *pdef = getMultiProtocolDefinition(g_model.moduleData[moduleIdx].getMultiProtocol()); if (g_model.moduleData[moduleIdx].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FRSKY) { - return 5; + return 7; } if (g_model.moduleData[moduleIdx].getMultiProtocol() > MODULE_SUBTYPE_MULTI_LAST) { diff --git a/radio/src/pulses/multi.cpp b/radio/src/pulses/multi.cpp index 936da0948..3d0402da4 100644 --- a/radio/src/pulses/multi.cpp +++ b/radio/src/pulses/multi.cpp @@ -295,11 +295,18 @@ void sendFrameProtocolHeader(uint8_t moduleIdx, bool failsafe) //D8 type = 3; subtype = 0; - } else if (subtype == MM_RF_FRSKY_SUBTYPE_V8) { + } + else if (subtype == MM_RF_FRSKY_SUBTYPE_D8_CLONED) { + //D8 + type = 3; + subtype = 1; + } + else if (subtype == MM_RF_FRSKY_SUBTYPE_V8) { //V8 type = 25; subtype = 0; - } else { + } + else { type = 15; if (subtype == MM_RF_FRSKY_SUBTYPE_D16_8CH) // D16 8ch subtype = 1; @@ -307,8 +314,9 @@ void sendFrameProtocolHeader(uint8_t moduleIdx, bool failsafe) subtype = 0; // D16 else if (subtype == MM_RF_FRSKY_SUBTYPE_D16_LBT) subtype = 2; - else - subtype = 3; // MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH + else if (subtype == MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH) + subtype = 3; + else subtype = 4; } } diff --git a/radio/src/telemetry/multi.cpp b/radio/src/telemetry/multi.cpp index 738237bfc..b86347547 100644 --- a/radio/src/telemetry/multi.cpp +++ b/radio/src/telemetry/multi.cpp @@ -555,7 +555,7 @@ void MultiModuleStatus::getStatusString(char * statusText) const return; } - if (major <= 1 && minor <= 3 && revision <= 0 && patch <= 78 && SLOW_BLINK_ON_PHASE) { + if (major <= 1 && minor <= 3 && revision <= 0 && patch < 87 && SLOW_BLINK_ON_PHASE) { strcpy(statusText, STR_MODULE_UPGRADE); } else { diff --git a/radio/src/telemetry/telemetry.h b/radio/src/telemetry/telemetry.h index 4252eb9a8..c74057c78 100644 --- a/radio/src/telemetry/telemetry.h +++ b/radio/src/telemetry/telemetry.h @@ -108,7 +108,7 @@ void frskyDSetDefault(int index, uint16_t id); extern uint8_t telemetryProtocol; #if defined (MULTIMODULE) - #define IS_D16_MULTI(module) (((g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FRSKY) && (g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16 || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_8CH || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_LBT || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH)) \ + #define IS_D16_MULTI(module) (((g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FRSKY) && (g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16 || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_8CH || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_LBT || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_CLONED)) \ || (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FRSKYX2)) #define IS_HOTT_MULTI(module) (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_HOTT) #if defined(HARDWARE_INTERNAL_MODULE) From ccb159ddc9c65879987c30915746fdca4097f860 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 13 Apr 2020 20:55:54 +0200 Subject: [PATCH 16/33] Avoid duplicate enter handling (#7518) --- radio/src/gui/128x64/view_channels.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/radio/src/gui/128x64/view_channels.cpp b/radio/src/gui/128x64/view_channels.cpp index 2e3ed0a40..ccd8fc9b3 100644 --- a/radio/src/gui/128x64/view_channels.cpp +++ b/radio/src/gui/128x64/view_channels.cpp @@ -128,10 +128,6 @@ void menuChannelsView(event_t event) case EVT_KEY_PREVIOUS_PAGE: g_eeGeneral.view = (g_eeGeneral.view + (4 * ALTERNATE_VIEW) - ALTERNATE_VIEW) % (4 * ALTERNATE_VIEW); break; - - case EVT_KEY_FIRST(KEY_ENTER): - reusableBuffer.viewChannels.mixersView = !reusableBuffer.viewChannels.mixersView; - break; } menuChannelsViewCommon(event); From 2c342d84132b9e79e14f35bb47ec9275ee53ef7e Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 13 Apr 2020 22:26:32 +0200 Subject: [PATCH 17/33] Update CREDITS.txt --- CREDITS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS.txt b/CREDITS.txt index 2f1fbc891..61fde21ee 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1714,3 +1714,4 @@ James Jewitt Daniel Ferreira Michael Charlston Leopoldo Cicero +Tom Van Driel From dbee58bb054d35f256d7b6c26c7a6760ceb302f0 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 14 Apr 2020 08:34:19 +0200 Subject: [PATCH 18/33] Cosmetics --- radio/src/pulses/multi.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/radio/src/pulses/multi.cpp b/radio/src/pulses/multi.cpp index 3d0402da4..ca7a77480 100644 --- a/radio/src/pulses/multi.cpp +++ b/radio/src/pulses/multi.cpp @@ -316,7 +316,8 @@ void sendFrameProtocolHeader(uint8_t moduleIdx, bool failsafe) subtype = 2; else if (subtype == MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH) subtype = 3; - else subtype = 4; + else + subtype = 4; } } From e5d31e9df3533d38faba2ff664a74a531b1e155a Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 15 Apr 2020 09:57:00 +0200 Subject: [PATCH 19/33] Update CREDITS.txt --- CREDITS.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CREDITS.txt b/CREDITS.txt index 61fde21ee..128dde40f 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1715,3 +1715,5 @@ Daniel Ferreira Michael Charlston Leopoldo Cicero Tom Van Driel +Karl Vetter +Johannes Janssen From 70ad47574054595f75f60ec1c1b1be66385fd565 Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 17 Apr 2020 17:46:41 +0200 Subject: [PATCH 20/33] Fix #7512 --- radio/src/translations/es.h.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 045855d01..a62532e1a 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1161,7 +1161,7 @@ #define TR_SETUP_WIDGETS "Config. widgets" #define TR_USER_INTERFACE "Interfaz" #define TR_THEME "Tema" -#define TR_SETUP "Configiracion" +#define TR_SETUP "Configuracion" #define TR_MAINVIEWX "Vista pral. X" #define TR_LAYOUT "Diseño" #define TR_ADDMAINVIEW "Añadir vista pral." From 8da4cb2506dea6302dfe89d7deb6cc861dc893d1 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 18 Apr 2020 08:46:34 +0200 Subject: [PATCH 21/33] Fix #7490 --- radio/src/translations/it.h.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 11f4c411c..522b22477 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -859,7 +859,7 @@ #define TR_INTERNAL_MODULE TR("Modulo int.", "Modulo interno") #define TR_EXTERNAL_MODULE TR("Modulo est.", "Modulo esterno") #define TR_OPENTX_UPGRADE_REQUIRED "OpenTX richiede aggiornamento" -#define TR_TELEMETRY_DISABLED "Telem. disabilitata" +#define TR_TELEMETRY_DISABLED TR("Telem. off", ""Telem. disabilitata") #define TR_MORE_OPTIONS_AVAILABLE "Altre opzioni assenti" #define TR_NO_MODULE_INFORMATION "Nessuna info del modulo" #define TR_EXTERNALRF "Modulo esterno" From f80ffce6b1ba0ed258d212d1b94d6b5777a60315 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sun, 19 Apr 2020 13:09:44 +0200 Subject: [PATCH 22/33] Update CREDITS.txt --- CREDITS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS.txt b/CREDITS.txt index 128dde40f..7886cfb81 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1717,3 +1717,4 @@ Leopoldo Cicero Tom Van Driel Karl Vetter Johannes Janssen +François Blondé From e1a0641c2a077e43bc79f421f4b44695adc9ba10 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 20 Apr 2020 12:48:29 +0200 Subject: [PATCH 23/33] Fix typo --- radio/src/translations/it.h.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 522b22477..ac873883b 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -859,7 +859,7 @@ #define TR_INTERNAL_MODULE TR("Modulo int.", "Modulo interno") #define TR_EXTERNAL_MODULE TR("Modulo est.", "Modulo esterno") #define TR_OPENTX_UPGRADE_REQUIRED "OpenTX richiede aggiornamento" -#define TR_TELEMETRY_DISABLED TR("Telem. off", ""Telem. disabilitata") +#define TR_TELEMETRY_DISABLED TR("Telem. off", "Telem. disabilitata") #define TR_MORE_OPTIONS_AVAILABLE "Altre opzioni assenti" #define TR_NO_MODULE_INFORMATION "Nessuna info del modulo" #define TR_EXTERNALRF "Modulo esterno" From bfec17e806742af4a9ac2bb58714e93a3931d31d Mon Sep 17 00:00:00 2001 From: DanielGeA <33811722+dgatf@users.noreply.github.com> Date: Tue, 21 Apr 2020 11:11:56 +0100 Subject: [PATCH 24/33] Spanish translation (#7530) --- radio/src/translations/es.h.txt | 320 +++++++++++++++----------------- 1 file changed, 151 insertions(+), 169 deletions(-) diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index a62532e1a..73bbf0b16 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -19,7 +19,7 @@ * */ -// ES translations author: Jose Moreno +// ES translations authors: Jose Moreno , Daniel GeA /* * !!!!! DO NOT EDIT es.h - EDIT es.h.txt INSTEAD !!!!!!! @@ -49,11 +49,11 @@ #define LEN_MMMINV "\003" #define TR_MMMINV "---""INV" -#define LEN_VBEEPMODE "\005" -#define TR_VBEEPMODE "Mudo ""Alarm""NoKey""Todo " +#define LEN_VBEEPMODE "\010" +#define TR_VBEEPMODE "Silencio""Alarma\0 ""No tecla""Todo\0 " -#define LEN_VBLMODE "\005" -#define TR_VBLMODE "OFF\0 ""Keys\0""Stks\0""Ambos""ON\0" +#define LEN_VBLMODE "\006" +#define TR_VBLMODE "OFF\0 ""Teclas""Sticks""Ambos\0""ON\0 " #define LEN_TRNMODE "\003" #define TR_TRNMODE "OFF""+=\0"":=" @@ -68,8 +68,8 @@ #define TR_AUX_SERIAL_MODES "OFF\0 ""Telem Mirror\0""Telemetria\0 ""Entrenador SBUS""LUA\0 " #endif -#define LEN_SWTYPES "\006" -#define TR_SWTYPES "Nada\0 ""Palanc""2POS\0 ""3POS\0" +#define LEN_SWTYPES "\007" +#define TR_SWTYPES "Nada\0 ""Palanca""2POS\0 ""3POS\0 " #define LEN_POTTYPES TR("\013", "\017") #define TR_POTTYPES TR("Nada\0 ""Pot con fij""Multipos\0 ""Pot\0 ", "Nada\0 ""Pot con fijador""Switch multipos""Pot\0 ") @@ -86,11 +86,11 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japon\0 ""Europa\0") -#define LEN_USBMODES TR("\006", "\010") -#define TR_USBMODES TR("Pregun""Joyst\0""SDCard""Serie\0", "Pregunta""Joystick""SDCard\0 ""Serie\0 ") +#define LEN_USBMODES "\010" +#define TR_USBMODES "Pregunta""Joystick""SDCard\0 ""Serie\0 " -#define LEN_JACKMODES "\007" -#define TR_JACKMODES "Pregunt""Audio\0 ""Entrena" +#define LEN_JACKMODES "\010" +#define TR_JACKMODES "Pregunta""Audio\0 ""Entrena." #define LEN_TELEMETRY_PROTOCOLS "\017" #define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetr." @@ -98,13 +98,13 @@ #define TR_MULTI_CUSTOM "Custom" #define LEN_VTRIMINC TR("\006", "\013") -#define TR_VTRIMINC TR("Expo ""ExFino""Fino ""Medio ""Grueso", "Exponencial""Extra Fino ""Fino ""Medio ""Grueso ") +#define TR_VTRIMINC TR("Expo\0 ""ExFino""Fino\0 ""Medio\0""Grueso", "Exponencial""Extra fino\0""Fino\0 ""Medio\0 ""Grueso\0 ") -#define LEN_VDISPLAYTRIMS "\006" -#define TR_VDISPLAYTRIMS "No\0 ""Cambiar""Si\0 " +#define LEN_VDISPLAYTRIMS "\007" +#define TR_VDISPLAYTRIMS "No\0 ""Cambiar""Si\0 " -#define LEN_VBEEPCOUNTDOWN "\006" -#define TR_VBEEPCOUNTDOWN "SilencBeeps\0Voz\0 Haptic" +#define LEN_VBEEPCOUNTDOWN "\010" +#define TR_VBEEPCOUNTDOWN "Silencio""Beeps\0 ""Voz\0 ""Haptic\0 " #define LEN_VVARIOCENTER "\010" #define TR_VVARIOCENTER "Tono\0 ""Silencio" @@ -143,21 +143,21 @@ #define LEN_VMIXTRIMS "\003" #if defined(PCBHORUS) - #define TR_VMIXTRIMS "OFF""ON\0""Dir""Ele""Ace""Ale""T5\0""T6\0" + #define TR_VMIXTRIMS "OFF""ON\0""Rud""Ele""Thr""Ail""T5\0""T6\0" #else - #define TR_VMIXTRIMS "OFF""ON\0""Dir""Ele""Ace""Ale" + #define TR_VMIXTRIMS "OFF""ON\0""Rud""Ele""Thr""Ail" #endif -#if defined(PCBTARANIS) +#if LCD_W >= 212 #define TR_CSWTIMER "Timer" - #define TR_CSWSTICKY "Stcky" - #define TR_CSWRANGE "Range" - #define TR_CSWSTAY "Edge\0" + #define TR_CSWSTICKY "Pega\0" + #define TR_CSWRANGE "Rango" + #define TR_CSWSTAY "Borde" #else #define TR_CSWTIMER "Tim\0 " - #define TR_CSWSTICKY "Glue\0" - #define TR_CSWRANGE "Rnge\0" - #define TR_CSWSTAY "Edge\0" + #define TR_CSWSTICKY "Pega\0" + #define TR_CSWRANGE "Rngo\0" + #define TR_CSWSTAY "Bord\0" #endif #define TR_CSWEQUAL "a=x\0 " @@ -174,7 +174,7 @@ #endif #if defined(AUDIO) - #define TR_SOUND "Oir Sonido" + #define TR_SOUND "Oir sonido" #else #define TR_SOUND "Beep\0 " #endif @@ -234,57 +234,39 @@ #define TR_SF_SCREENSHOT "Captura" #define TR_SF_RESERVE "[reserv.]\0" -#define TR_VFSWFUNC TR_SF_SAFETY "Entrena.\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volumen\0 " "SetFailsfe" "RangeCheck" "ModuleBind" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz fondo\0" TR_SF_SCREENSHOT TR_SF_TEST - -#define LEN_VFSWRESET TR("\004", "\011") +#define TR_VFSWFUNC TR_SF_SAFETY "Entrenador""Inst. Trim""Reset\0 ""Ajuste \0 " TR_ADJUST_GVAR "Volumen\0 " "Failsafe\0 " "CheckRango" "Enl.Modulo" TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_SF_RESERVE TR_SF_PLAY_SCRIPT TR_SF_RESERVE TR_SF_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz Fondo\0" TR_SF_SCREENSHOT TR_SF_TEST +#define LEN_VFSWRESET TR("\004", "\012") #define TR_FSW_RESET_TELEM TR("Telm", "Telemetria") -#if defined(PCBTARANIS) +#if LCD_W >= 212 #define TR_FSW_RESET_TIMERS "Timer 1\0 ""Timer 2\0 ""Timer 3\0 " #else #define TR_FSW_RESET_TIMERS "Tmr1""Tmr2""Tmr3" #endif -#define TR_VFSWRESET TR(TR_FSW_RESET_TIMERS "All\0" TR_FSW_RESET_TELEM, TR_FSW_RESET_TIMERS "All\0 " TR_FSW_RESET_TELEM) +#define TR_VFSWRESET TR(TR_FSW_RESET_TIMERS "Todo" TR_FSW_RESET_TELEM, TR_FSW_RESET_TIMERS "Todo\0 " TR_FSW_RESET_TELEM) #define LEN_FUNCSOUNDS TR("\004", "\006") #define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Avs1""Avs2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Aviso1""Aviso2""Cheep ""Ratata""Tick ""Sirena""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk") #define LEN_VTELEMCHNS "\004" - #define TR_TELEM_RESERVE TR("[--]", "[---]") - #define TR_TELEM_TIME TR("Time", "Time\0") - #define TR_RAS TR("SWR\0", "SWR\0 ") - #define TR_RX_BATT TR("[NA]", "[NA]\0") - #define TR_A3_A4 TR("A3\0 ""A4\0 ", "A3\0 ""A4\0 ") - #define TR_A3_A4_MIN TR("A3-\0""A4-\0", "A3-\0 ""A4-\0 ") - -#define TR_ASPD_MAX TR("ASp+", "ASpd+") - -#if defined(PCBTARANIS) - #define TR_TELEM_RSSI_RX "RSSI\0" -#else - #define TR_TELEM_RSSI_RX TR("Rx\0 ", "Rx\0 ") -#endif - - #define TR_TELEM_TIMERS TR("Tmr1""Tmr2""Tmr3", "Tmr1\0""Tmr2\0""Tmr3\0") - #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" #define LENGTH_UNIT_METR "m\0 " #define SPEED_UNIT_METR "kmh" - #define LEN_VUNITSSYSTEM "\007" - #define TR_VUNITSSYSTEM "Metrico""Imperial" - #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" +#define LEN_VUNITSSYSTEM "\010" +#define TR_VUNITSSYSTEM "Metrico\0""Imperial" +#define LEN_VTELEMUNIT "\003" +#define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""mW\0""dB\0""rpm""g\0 ""@\0 ""rad""ml\0""fOz" #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) -#define LEN_VTELEMSCREENTYPE "\004" -#define TR_VTELEMSCREENTYPE "Nums""Bars" +#define LEN_VTELEMSCREENTYPE "\007" +#define TR_VTELEMSCREENTYPE "Nada\0 ""Numeros""Barras\0""Script\0" #define LEN_GPSFORMAT "\004" #define TR_GPSFORMAT "HMS NMEA" @@ -323,12 +305,12 @@ #define LEN_VSWITCHES "\003" #define LEN_VSRCRAW "\004" -#define TR_STICKS_VSRCRAW "\307Dir""\307Ele""\307Thr""\307Ale" +#define TR_STICKS_VSRCRAW "\307Rud""\307Ele""\307Thr""\307Ail" #if defined(PCBHORUS) - #define TR_TRIMS_VSRCRAW "\313Dir""\313Ele""\313Thr""\313Ale""\313T5\0""\313T6\0" + #define TR_TRIMS_VSRCRAW "\313Rud""\313Ele""\313Thr""\313Ail""\313T5\0""\313T6\0" #else - #define TR_TRIMS_VSRCRAW TR("TrmD" "TrmE" "TrmT" "TrmA", "\313Dir""\313Ele""\313Thr""\313Ale") + #define TR_TRIMS_VSRCRAW TR("TrmR" "TrmE" "TrmT" "TrmA", "\313Rud""\313Ele""\313Thr""\313Ail") #endif #if defined(PCBHORUS) @@ -375,14 +357,14 @@ #define TR_VTRAINER_MULTI "Master/Multi" #define LEN_VFAILSAFE "\011" -#define TR_VFAILSAFE "No\0 ""Guardar\0 ""Adaptar\0 ""Sin pulso""Receptor\0" +#define TR_VFAILSAFE "No\0 ""Hold\0 ""Custom\0 ""No pulsos""Receptor\0" #define LEN_VSENSORTYPES "\012" #define TR_VSENSORTYPES "Custom\0 ""Calculado" -#define LEN_VFORMULAS "\010" -#define TR_VFORMULAS "Suma\0 ""Media\0 ""Min\0 ""Max\0 ""Multipl.""Total\0 ""Cell\0 ""Consumo\0""Distanc." +#define LEN_VFORMULAS "\011" +#define TR_VFORMULAS "Suma\0 ""Media\0 ""Min\0 ""Max\0 ""Multipl. ""Total\0 ""Cell\0 ""Consumo\0 ""Distancia" #define LEN_VPREC "\004" #define TR_VPREC "0.--""0.0 ""0.00" @@ -431,24 +413,24 @@ #define TR_FREE "libre" #define TR_DELETEMODEL "BORRAR MODELO" #define TR_COPYINGMODEL "Copiando modelo.." -#define TR_MOVINGMODEL "Mover modelo..." -#define TR_LOADINGMODEL "Cargar modelo..." +#define TR_MOVINGMODEL "Moviendo modelo..." +#define TR_LOADINGMODEL "Cargando modelo..." #define TR_NAME "Nombre" -#define TR_MODELNAME "Nom.Modelo" -#define TR_PHASENAME "Nom.Fase " -#define TR_MIXNAME "Nom.Mezcla" -#define TR_INPUTNAME TR("N.entr","Nombre entrada") -#define TR_EXPONAME TR("N.expo","Nombre expo") -#define TR_BITMAP "Imagen Modelo" -#define TR_TIMER TR("Reloj","Reloj ") -#define TR_ELIMITS TR("E.Limite","Ampliar Limites") -#define TR_ETRIMS TR("E.Trims","Ampliar Trims") -#define TR_TRIMINC "Paso Trim" -#define TR_DISPLAY_TRIMS "Ver Trims" -#define TR_TTRACE TR("Fuente-A", INDENT "Fuente Acelerad") -#define TR_TTRIM TR("Trim-A", INDENT "Trim Acelerad") -#define TR_BEEPCTR TR("Beep ctr","Beep centro") -#define TR_USE_GLOBAL_FUNCS "Funcs glob." +#define TR_MODELNAME TR("Nom. modelo", "Nombre modelo") +#define TR_PHASENAME "Nombre fase " +#define TR_MIXNAME TR("Nom. mezcla", "Nombre mezcla") +#define TR_INPUTNAME TR("Entrada", "Nom. entrada") +#define TR_EXPONAME TR("Nom.", "Nombre expo") +#define TR_BITMAP "Imagen modelo" +#define TR_TIMER TR("Timer", "Timer ") +#define TR_ELIMITS TR("E.Limite", "Ampliar limites") +#define TR_ETRIMS TR("E.Trims", "Ampliar trims") +#define TR_TRIMINC "Paso trim" +#define TR_DISPLAY_TRIMS "Ver trims" +#define TR_TTRACE TR("Fuente-A", INDENT "Fuente acelerador") +#define TR_TTRIM TR("Trim-A", INDENT "Trim acelerador") +#define TR_BEEPCTR TR("Beep ctr", "Beep centro") +#define TR_USE_GLOBAL_FUNCS TR("Funcs. glob.", "Usar func. globales") #if defined(PCBSKY9X) && defined(REVX) #define TR_OUTPUT_TYPE INDENT "Output" #endif @@ -458,7 +440,7 @@ #define STR_WARN_BATTVOLTAGE TR(INDENT "Salida es VBAT: ", INDENT "Aviso: señal salida es VBAT: ") #define TR_MS "ms" #define TR_FREQUENCY INDENT "Frequencia" -#define TR_SWITCH "Interr" +#define TR_SWITCH TR("Interr.", "Interruptor") #define TR_TRIMS "Trims" #define TR_FADEIN "Inicio" #define TR_FADEOUT "Final" @@ -466,28 +448,28 @@ #define TR_CHECKTRIMS CENTER "\006Check\012Trims" #define OFS_CHECKTRIMS CENTER_OFS+(9*FW) #define TR_SWASHTYPE "Tipo ciclico" -#define TR_COLLECTIVE TR("Colectivo", "Fuente Colectivo") +#define TR_COLLECTIVE TR("Colectivo", "Fuente colectivo") #define TR_AILERON TR("Col. lateral", "Fuente col. lateral") #define TR_ELEVATOR TR("Col. long. ", "Fuente col. longitudinal") #define TR_SWASHRING "Ciclico" -#define TR_ELEDIRECTION TR("ELE Direccion","Largo cyc. direccion") -#define TR_AILDIRECTION TR("AIL Direccion","Lateral cyc. direccion") -#define TR_COLDIRECTION TR("PIT Direccion","Coll. pitch direccion") +#define TR_ELEDIRECTION TR("ELE Direccion", "Largo cyc. direccion") +#define TR_AILDIRECTION TR("AIL Direccion", "Lateral cyc. direccion") +#define TR_COLDIRECTION TR("PIT Direccion", "Coll. pitch direccion") #define TR_MODE "Modo" #define TR_SUBTYPE INDENT "Subtipo" #define TR_NOFREEEXPO "No expo libre!" #define TR_NOFREEMIXER "No mezcla lib!" #define TR_SOURCE "Fuente" #define TR_WEIGHT "Cantidad" -#define TR_EXPO TR("Expo","Exponencial") -#define TR_SIDE "Lado" +#define TR_EXPO TR("Expo", "Exponencial") +#define TR_SIDE "Zona" #define TR_DIFFERENTIAL "Diferenc" #define TR_OFFSET "Offset" #define TR_TRIM "Trim" #define TR_DREX "DRex" #define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Curva" -#define TR_FLMODE TR("Modo","Modos") +#define TR_FLMODE TR("Modo", "Modos") #define TR_MIXWARNING "Aviso" #define TR_OFF "OFF" #define TR_ANTENNA "Antena" @@ -497,7 +479,7 @@ #define TR_DELAYUP "Atraso subir" #define TR_SLOWDOWN "Bajar lento " #define TR_SLOWUP "Subir lento" -#define TR_MIXES "MEZCLAS" +#define TR_MIXES "MIXES" #define TR_CV "CV" #define TR_GV TR("G", "GV") #define TR_ACHANNEL "A\004canal" @@ -512,48 +494,48 @@ #define TR_LENGTH INDENT"Longitud" #define TR_BEEP_LENGTH INDENT "Duracion Beep" #define TR_SPKRPITCH INDENT"Tono" -#define TR_HAPTIC_LABEL "Tactil" +#define TR_HAPTIC_LABEL "Haptic" #define TR_HAPTICSTRENGTH INDENT"Intensidad" #define TR_GYRO_LABEL "Gyro" #define TR_GYRO_OFFSET "Offset" #define TR_GYRO_MAX "Max" #define TR_CONTRAST "Contraste" #define TR_ALARMS_LABEL "Alarmas" -#define TR_BATTERY_RANGE TR("Rango bateria","Rango medidor Bater") -#define TR_BATTERYWARNING INDENT"Bateria Baja" +#define TR_BATTERY_RANGE TR("Rango bateria", "Rango medidor bateria") +#define TR_BATTERYWARNING INDENT"Bateria baja" #define TR_INACTIVITYALARM INDENT"Inactividad" -#define TR_MEMORYWARNING INDENT"Memoria Baja" -#define TR_ALARMWARNING INDENT"Sin Sonido" +#define TR_MEMORYWARNING INDENT"Memoria baja" +#define TR_ALARMWARNING INDENT"Sin sonido" #define TR_RSSISHUTDOWNALARM TR(INDENT "Apagado Rssi", INDENT "Check Rssi al apagar") #define TR_MODEL_STILL_POWERED "Modelo aun encendido" #define TR_MODEL_SHUTDOWN "Apagar ?" #define TR_PRESS_ENTER_TO_CONFIRM "Enter para confirmar" #define TR_THROTTLE_LABEL "Potencia" -#define TR_THROTTLEREVERSE TR("Invert_Acel", INDENT "Invertir Acel.") -#define TR_MINUTEBEEP TR("Minuto", "Cada Minuto") -#define TR_BEEPCOUNTDOWN INDENT"Cta. atras" -#define TR_PERSISTENT TR(INDENT"Persist.", INDENT"Persistente") -#define TR_BACKLIGHT_LABEL "Luz Fondo" +#define TR_THROTTLEREVERSE TR("Invert acel", INDENT "Invertir acel.") +#define TR_MINUTEBEEP TR("Minuto", "Cada minuto") +#define TR_BEEPCOUNTDOWN TR(INDENT"Cta. atras", INDENT"Cuenta atras") +#define TR_PERSISTENT TR(INDENT"Persisten.", INDENT"Persistente") +#define TR_BACKLIGHT_LABEL "Luz fondo" #define TR_BLDELAY INDENT"Duracion" -#define TR_BLONBRIGHTNESS INDENT"MAS Brillo" -#define TR_BLOFFBRIGHTNESS INDENT"MENOS Brillo" +#define TR_BLONBRIGHTNESS INDENT"MAS brillo" +#define TR_BLOFFBRIGHTNESS INDENT"MENOS brillo" #define TR_BLCOLOR INDENT "Color" -#define TR_SPLASHSCREEN "Pant. inicio" -#define TR_PWR_ON_DELAY "Atraso On" -#define TR_PWR_OFF_DELAY "Atraso Off" -#define TR_THROTTLEWARNING TR("Aviso-A", INDENT "Aviso Acelerador") -#define TR_SWITCHWARNING TR("Aviso-I", INDENT "Aviso Intrptor") +#define TR_SPLASHSCREEN "Pantalla inicio" +#define TR_PWR_ON_DELAY TR("Atraso On", "Atraso encendido") +#define TR_PWR_OFF_DELAY TR("Atraso Off", "Atraso apagado") +#define TR_THROTTLEWARNING TR("Aviso-A", INDENT "Aviso acelerador") +#define TR_SWITCHWARNING TR("Aviso-I", INDENT "Aviso interruptor") #define TR_POTWARNINGSTATE TR(INDENT "Pot&Slid.", INDENT "Pots & sliders") #define TR_SLIDERWARNING TR(INDENT "Pos. slid.", INDENT "Posiciones slider") #define TR_POTWARNING TR("Aviso pot", INDENT "Aviso pot") -#define TR_TIMEZONE TR("Zona Hora", "GPS Zona Hora") +#define TR_TIMEZONE TR("Zona horaria", INDENT "Zona horaria") #define TR_ADJUST_RTC TR("Ajustar RTC", INDENT "Ajustar RTC") #define TR_GPS "GPS" #define TR_RXCHANNELORD TR("Rx Orden canal", "Orden habitual canales") #define TR_STICKS "Sticks" #define TR_POTS "Pots" #define TR_SWITCHES "Switches" -#define TR_SWITCHES_DELAY "Atraso switch." +#define TR_SWITCHES_DELAY TR("Atraso switch.", "Atraso switches") #define TR_SLAVE "Esclavo" #define TR_MODESRC "Modo\006% Fuente" #define TR_MULTIPLIER "Multiplicar" @@ -588,7 +570,7 @@ #define TR_PRESSANYKEYTOSKIP "Pulsar tecla para omitir" #define TR_THROTTLENOTIDLE "Aceler. Activado" #define TR_ALARMSDISABLED "Alarmas Desact." -#define TR_PRESSANYKEY TR("\010Pulsa una Tecla", "Pulsa una Tecla") +#define TR_PRESSANYKEY TR("\010Pulsa una tecla", "Pulsa una tecla") #define TR_BADEEPROMDATA "Error datos EEprom" #define TR_BAD_RADIO_DATA "Error datos radio" #define TR_EEPROMFORMATTING "Formateo EEPROM" @@ -599,8 +581,8 @@ #define TR_MENUTRAINER "ENTRENADOR" #define TR_MENUSPECIALFUNCS "FUNCIONES GLOBALES" #define TR_MENUVERSION "VERSION" -#define TR_MENU_RADIO_SWITCHES TR("INTERUPTS", "TEST INTERUP.") -#define TR_MENU_RADIO_ANALOGS TR("ANAS", "ENTRADAS ANALOG") +#define TR_MENU_RADIO_SWITCHES TR("INTERUPTS", "TEST INTERRUPTORES") +#define TR_MENU_RADIO_ANALOGS TR("ANALOGICOS", "TEST ANALOGICOS") #define TR_MENUCALIBRATION "CALIBRACION" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Offsets" @@ -610,7 +592,7 @@ #define TR_CHANNELS2FAILSAFE "Canales=>Failsafe" #define TR_CHANNEL2FAILSAFE "Canal=>Failsafe" #define TR_MENUMODELSEL TR("MODELOS", "SELECCION MODELO") -#define TR_MENUSETUP "CONFIG. MODELO" +#define TR_MENUSETUP TR("CONFIG. MODELO", "CONFIGURACION MODELO") #define TR_MENUFLIGHTMODE "MODO DE VUELO" #define TR_MENUFLIGHTMODES "MODOS DE VUELO" #define TR_MENUHELISETUP "CONFIGURACION HELI" @@ -628,13 +610,13 @@ #define TR_MENUCURVES "CURVAS" #define TR_MENUCURVE "CURVA" -#define TR_MENULOGICALSWITCH "INTERRUP. LOGICO" -#define TR_MENULOGICALSWITCHES "INTERRUP. LOGICOS" -#define TR_MENUCUSTOMFUNC "FUNCIONES" +#define TR_MENULOGICALSWITCH "INTERRUP.LOGICO" +#define TR_MENULOGICALSWITCHES TR3("INTERRUP. LOGICOS", "INTERRUP. LOGICOS", "INTERRUPTORES LOGICOS") +#define TR_MENUCUSTOMFUNC TR("FUNCIONES", "FUNCIONES ESPECIALES") #define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "PLANTILLAS" -#define TR_MENUSTAT "ESTADISTICAS" +#define TR_MENUSTAT TR("ESTAD.", "ESTADISTICAS") #define TR_MENUDEBUG "DEBUG" #define TR_MONITOR_CHANNELS1 "MONITOR CANALES 1/8" #define TR_MONITOR_CHANNELS2 "MONITOR CANALES 9/16" @@ -642,23 +624,23 @@ #define TR_MONITOR_CHANNELS3 "MONITOR CANALES 17/24" #define TR_MONITOR_CHANNELS4 "MONITOR CANALES 25/32" #define TR_MONITOR_OUTPUT_DESC "SALIDAS" -#define TR_MONITOR_MIXER_DESC "MEZCLAS" -#define TR_RECEIVER_NUM TR("RxNum", "Receptor No.") +#define TR_MONITOR_MIXER_DESC "Mixers" +#define TR_RECEIVER_NUM TR("Num Rx", "Receptor No.") #define TR_RECEIVER "Receptor" #define TR_MULTI_RFTUNE TR("Sint.freq.", "RF Freq. sint.fina") #define TR_MULTI_TELEMETRY "Telemetria" -#define TR_MULTI_VIDFREQ TR("Freq. Vid.", "Frecuancia Video") +#define TR_MULTI_VIDFREQ TR("Freq. Vid.", "Frecuencia Video") #define TR_RFPOWER "RF Power" #define TR_MULTI_FIXEDID TR("ID Fijo", "ID Fijo") #define TR_MULTI_OPTION TR("Opcion", "Valor opcion") #define TR_MULTI_AUTOBIND TR(INDENT "Emp Cnl",INDENT "Emparejar en canal") #define TR_DISABLE_CH_MAP TR("No ch map", "Desactivar mapa cnl") -#define TR_DISABLE_TELEM TR("No Telem", "Desactivar Telemetria") +#define TR_DISABLE_TELEM TR("No telem", "Desactivar telem.") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetectar formato") -#define TR_MULTI_LOWPOWER TR(INDENT "Baja potencia", INDENT "Modo de baja potencia") +#define TR_MULTI_LOWPOWER TR(INDENT "Baja poten.", INDENT "Modo de baja poten.") #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("ON", "Activado") -#define TR_DISABLE_INTERNAL TR("Desac.RF int", "Desactivar modulo interno RF") +#define TR_DISABLE_INTERNAL TR("Desac.RF int", "Desact. mod. int. RF") #define TR_MODULE_NO_SERIAL_MODE TR("No modo serie", "No en modo serie") #define TR_MODULE_NO_INPUT TR("Sin señal", "Sin señal") #define TR_MODULE_NO_TELEMETRY TR3( "No telemetria", "No MULTI_TELEMETRY", "No telemetria (activa MULTI_TELEMETRY)") @@ -674,7 +656,7 @@ #define TR_BINDING_CH9_16_TELEM_ON "Ch9-16 Telem ON" #define TR_BINDING_CH9_16_TELEM_OFF "Ch9-16 Telem OFF" #define TR_PROTOCOL_INVALID TR("Prot. invalido", "Protocolo invalido") -#define TR_MODULE_STATUS TR(INDENT "EStado", INDENT "Estado modulo") +#define TR_MODULE_STATUS TR(INDENT "Estado", INDENT "Estado modulo") #define TR_MODULE_SYNC TR(INDENT "Sync", INDENT "Estado proto sync") #define TR_MULTI_SERVOFREQ TR("V ref serv", "Vel. refr. servo") #define TR_MULTI_MAX_THROW TR("Max. Throw", "Activar max. throw") @@ -684,18 +666,18 @@ #define TR_MINRSSI "Min Rssi" #define TR_LATITUDE "Latitud" #define TR_LONGITUDE "Longitud" -#define TR_GPSCOORD TR("Coords GPS", "GPS formato coordenadas") +#define TR_GPSCOORD TR("Coords GPS", INDENT "Formato coordenadas") #define TR_VARIO TR("Vario", "Variometro") #define TR_PITCH_AT_ZERO INDENT "Pitch en cero" #define TR_PITCH_AT_MAX INDENT "Pitch en max" -#define TR_REPEAT_AT_ZERO INDENT "Repet. en cero" +#define TR_REPEAT_AT_ZERO TR(INDENT "Repet. en cero", INDENT "Repetir en cero") #define TR_SHUTDOWN "APAGANDO" #define TR_SAVEMODEL "Grabando modelo" -#define TR_BATT_CALIB "Calib.bat." +#define TR_BATT_CALIB TR("Calib.bat.", "Calibracion bateria") #define TR_CURRENT_CALIB "Calib. actual" #define TR_VOLTAGE INDENT"Voltaje" #define TR_CURRENT INDENT"Actual" -#define TR_SELECT_MODEL "Selec Modelo" +#define TR_SELECT_MODEL TR("Selec. modelo", "Seleccionar modelo") #define TR_CREATE_CATEGORY "Crear categoria" #define TR_RENAME_CATEGORY "Renombrar categoria" #define TR_DELETE_CATEGORY "Borrar categoria" @@ -703,7 +685,7 @@ #define TR_DUPLICATE_MODEL "Duplicar modelo" #define TR_COPY_MODEL "Copiar modelo" #define TR_MOVE_MODEL "Mover modelo" -#define TR_BACKUP_MODEL "Copia sgdad mod." +#define TR_BACKUP_MODEL TR("Copia sgdad. mod.", "Copia seguridad modelo") #define TR_DELETE_MODEL "Borrar modelo" #define TR_RESTORE_MODEL "Restaurar modelo" #define TR_DELETE_ERROR "Error de borrado" @@ -735,8 +717,8 @@ #define TR_RF_PROTOCOL "Protocolo RF" #define TR_MODULE_OPTIONS "Opciones modulo" #define TR_POWER "Potencia" -#define TR_NO_TX_OPTIONS "Sin pciones TX" -#define TR_RTC_BATT "Bat. RTC" +#define TR_NO_TX_OPTIONS "Sin opciones TX" +#define TR_RTC_BATT TR("Bat. RTC", "Bateria RTC") #define TR_POWER_METER_EXT "Medidor potencia(EXT)" #define TR_POWER_METER_INT "Medidor potencia(INT)" #define TR_SPECTRUM_ANALYSER_EXT "Spectro (EXT)" @@ -750,22 +732,22 @@ #define TR_EEPROMWARN "EEPROM" #define TR_STORAGE_WARNING "ALMAC." #define TR_EEPROM_CONVERTING "Convirtiendo EEPROM" -#define TR_THROTTLEWARN "ACELERADOR" +#define TR_THROTTLEWARN TR("ACELERAD.", "ACELERADOR") #define TR_ALARMSWARN "ALARMAS" -#define TR_SWITCHWARN "INTERPTOR" +#define TR_SWITCHWARN TR("INTERRUP.", "INTERRUPTOR") #define TR_FAILSAFEWARN "FAILSAFE" #define TR_TEST_WARNING TR("TESTING", "TEST BUILD") #define TR_TEST_NOTSAFE "Usar solo para test" -#define TR_WRONG_SDCARDVERSION TR("Ver esperada: ","Version esperada: ") +#define TR_WRONG_SDCARDVERSION TR("Ver esperada: ", "Version esperada: ") #define TR_WARN_RTC_BATTERY_LOW "Bateria RTC baja" #define TR_WARN_MULTI_LOWPOWER "Modo baja potencia" -#define TR_BATTERY "BATERiA" +#define TR_BATTERY "BATERIA" #define TR_WRONG_PCBREV "Placa PCB erronea" #define TR_EMERGENCY_MODE "MODO EMERGENCIA" #define TR_PCBREV_ERROR "Error PCB" #define TR_NO_FAILSAFE "Failsafe no fijado" #define TR_KEYSTUCK "Tecla atascada" -#define TR_INVERT_THR TR("Invertir Acel?", "Invertir Acel.?") +#define TR_INVERT_THR TR("Invertir acel?", "Invertir acel.?") #define TR_SPEAKER_VOLUME INDENT "Volumen" #define TR_LCD "LCD" #define TR_BRIGHTNESS INDENT "Brillo" @@ -774,9 +756,9 @@ #define TR_CPU_MAH "Consumo" #define TR_COPROC "CoProc." #define TR_COPROC_TEMP "MB Temp. \016>" -#define TR_CAPAWARNING INDENT "Capacidad Baja" +#define TR_CAPAWARNING INDENT "Capacidad baja" #define TR_TEMPWARNING INDENT "Sobrecalent" -#define TR_FUNC "Func" +#define TR_FUNC "Funcion" #define TR_V1 "V1" #define TR_V2 "V2" #define TR_DURATION "Duracion" @@ -842,8 +824,8 @@ #define TR_FLASH_BOOTLOADER "Flash bootloader" #define TR_FLASH_EXTERNAL_DEVICE "Flash disp. externo" #define TR_FLASH_RECEIVER_OTA "Flash RX OTA" -#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX by ext. OTA" -#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX by int. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_EXTERNAL "Flash RX por ext. OTA" +#define TR_FLASH_RECEIVER_OTA_BY_INTERNAL "Flash RX por int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash modulo BT", "Flash modulo bluetooth") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash unid. pwr mngt" #define TR_CURRENT_VERSION TR("Vers. actual", "Version actual: ") @@ -851,20 +833,20 @@ #define TR_FLASH_INTERNAL_MULTI TR("Flash Multi int", "Flash Multi interno") #define TR_FLASH_EXTERNAL_MODULE TR("Flash modulo ext", "Flash modulo externo") #define TR_FLASH_EXTERNAL_MULTI TR("Flash Multi ext", "Flash Multi externo") -#define TR_FIRMWARE_UPDATE_ERROR TR("Error act FW","Error actualiz. firmware") +#define TR_FIRMWARE_UPDATE_ERROR TR("Error act FW", "Error actualiz. firmware") #define TR_FIRMWARE_UPDATE_SUCCESS "Flash ok" #define TR_WRITING "Escribiendo..." #define TR_CONFIRM_FORMAT "Confirmar formato?" #define TR_INTERNALRF "RF interna" -#define TR_INTERNAL_MODULE TR("Modulo int","Modulo interno") -#define TR_EXTERNAL_MODULE TR("Modulo ext","Modulo externo") +#define TR_INTERNAL_MODULE TR("Modulo int", "Modulo interno") +#define TR_EXTERNAL_MODULE TR("Modulo ext", "Modulo externo") #define TR_OPENTX_UPGRADE_REQUIRED "Actualiz. OpenTX requerida" #define TR_TELEMETRY_DISABLED "Telem. inactiva" #define TR_MORE_OPTIONS_AVAILABLE "Mas opciones disp." #define TR_NO_MODULE_INFORMATION "Sin informacion modulo" #define TR_EXTERNALRF "RF externa" -#define TR_FAILSAFE INDENT"Modo sgdad." -#define TR_FAILSAFESET "AJUSTES SGDAD." +#define TR_FAILSAFE INDENT"Failsafe" +#define TR_FAILSAFESET "AJUSTES FAILSAFE" #define TR_REG_ID "Reg. ID" #define TR_OWNER_ID "Pers. ID" #define TR_PINMAPSET "PINMAP" @@ -908,7 +890,7 @@ #define TR_USB_SERIAL "Serie USB (Debug)" #define TR_SETUP_SCREENS "Pantallas config" #define TR_MONITOR_SCREENS "Monitores" -#define TR_AND_SWITCH "AND Inter." +#define TR_AND_SWITCH TR("Inter. AND", "Interruptor AND") #define TR_SF "CF" #define TR_GF "GF" #define TR_SPEAKER INDENT"Altavoz" @@ -932,13 +914,13 @@ #define TR_DEL_BUTTON BUTTON(TR("Del", "Borrar")) #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" -#define TR_KEYS_BTN BUTTON(TR("SW","Switches")) -#define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) +#define TR_KEYS_BTN BUTTON(TR("SW", "Switches")) +#define TR_ANALOGS_BTN BUTTON(TR("Analog", "Analogs")) #define TR_CALIBRATION "Calibracion" #define TR_SET "[Ajuste]" -#define TR_TRAINER "Entrena." +#define TR_TRAINER "Entrenador" #define TR_CHANS "Chans" -#define TR_ANTENNAPROBLEM CENTER "¡Problema antena TX!" +#define TR_ANTENNAPROBLEM CENTER "Problema antena TX!" #define TR_MODELIDUSED TR("ID en uso", "ID modelo en uso") #define TR_MODULE "Modulo" #define TR_RX_NAME "Nombre Rx" @@ -947,15 +929,15 @@ #define TR_VALUE "Valor" #define TR_TOPLCDTIMER "Timer LCD superior" #define TR_UNIT "Unidad" -#define TR_TELEMETRY_NEWSENSOR INDENT "Añadir nuevo sensor..." +#define TR_TELEMETRY_NEWSENSOR INDENT "Añadir sensor..." #define TR_CHANNELRANGE INDENT "Canales" #define TR_ANTENNACONFIRM1 "ANTENA EXT." #if defined(PCBX12S) -#define LEN_ANTENNA_MODES "\023" -#define TR_ANTENNA_MODES "Interna\0 ""Preguntar\0 ""Por modelo\0 ""Interno + Externo\0 " +#define LEN_ANTENNA_MODES "\020" +#define TR_ANTENNA_MODES "Interna\0 ""Preguntar\0 ""Por modelo\0 ""Interno + Externo\0" #else -#define LEN_ANTENNA_MODES "\011" -#define TR_ANTENNA_MODES "Interna\0 ""Preguntar\0""Por model""Externa\0 " +#define LEN_ANTENNA_MODES "\012" +#define TR_ANTENNA_MODES "Interna\0 ""Preguntar\0""Por modelo""Externa\0 " #endif #define TR_USE_INTERNAL_ANTENNA TR("Usa antena int.", "Usa antena interna") #define TR_USE_EXTERNAL_ANTENNA TR("Use antena ext.", "Usa antena externa") @@ -967,7 +949,7 @@ #define TR_MODULE_PROTOCOL_WARN_LINE2 "firmware certificado" #define TR_LOWALARM INDENT "Alarma baja" #define TR_CRITICALALARM INDENT "Alarma critica" -#define TR_RSSIALARM_WARN TR("RSSI","TELEMETRY RSSI") +#define TR_RSSIALARM_WARN TR("RSSI", "TELEMETRY RSSI") #define TR_NO_RSSIALARM TR(INDENT "Alarmas desact.", INDENT "Alarmas telemetria desact.") #define TR_DISABLE_ALARM TR(INDENT "Desact. alarmas", INDENT "Desact. alarmas telem.") #define TR_ENABLE_POPUP "Activa Popup" @@ -984,7 +966,7 @@ #define TR_COUNT "Puntos" #define TR_PT "pt" #define TR_PTS "pts" -#define TR_SMOOTH "Suaviz" +#define TR_SMOOTH TR3("Suaviz.", "Suaviz.", "Suavizado") #define TR_COPY_STICKS_TO_OFS TR("Copia stick->subtr", "Copia Sticks a Offset") #define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Copia min/max a sal", "Copia min/max/ctr a salidas") #define TR_COPY_TRIMS_TO_OFS TR("Copia trim->subtr", "Copia trims a subtrim") @@ -993,8 +975,8 @@ #define TR_MIXSOURCE "Entrada mixer" #define TR_CONSTANT "Constante" #define TR_PERSISTENT_MAH INDENT "Valor mAh" -#define TR_PREFLIGHT "Chequeos Prevuelo" -#define TR_CHECKLIST INDENT "Lista verif" +#define TR_PREFLIGHT "Chequeos prevuelo" +#define TR_CHECKLIST TR(INDENT "Lista verif", INDENT "Lista verificacion") #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_AUX_SERIAL_MODE "Puerto serie" #define TR_SCRIPT "Script" @@ -1002,7 +984,7 @@ #define TR_OUTPUTS "Salidas" #define STR_EEBACKUP "Copia seg. EEPROM" #define STR_FACTORYRESET "Rest. fabrica" -#define TR_CONFIRMRESET "Borrar TODOS los modelos y configuracion?" +#define TR_CONFIRMRESET "Borrar TODOS los " LCDW_128_480_LINEBREAK "modelos y conf?" #define TR_TOO_MANY_LUA_SCRIPTS "Demasiados Lua scripts!" #define TR_SPORT_UPDATE_POWER_MODE "SP Power" #define LEN_SPORT_UPDATE_POWER_MODES "\004" @@ -1033,7 +1015,7 @@ #define TR_LSW_HEADERS_FUNCTION "Funcion" #define TR_LSW_HEADERS_V1 "V1" #define TR_LSW_HEADERS_V2 "V2" -#define TR_LSW_HEADERS_ANDSW "AND Interrup." +#define TR_LSW_HEADERS_ANDSW "Interrup. AND" #define TR_LSW_HEADERS_DURATION "Duracion" #define TR_LSW_HEADERS_DELAY "Retardo" @@ -1115,10 +1097,10 @@ #define TR_TOP_BAR "Panel superior" #define TR_FLASH_ERASE "Borrar flash..." -#define TR_FLASH_WRITE "Escrivir flash..." +#define TR_FLASH_WRITE "Escribir flash..." #define TR_OTA_UPDATE "Actualizacion OTA..." #define TR_MODULE_RESET "Reset modulo..." -#define TR_UNKNOWN_RX "RX deconocido" +#define TR_UNKNOWN_RX "RX desconocido" #define TR_UNSUPPORTED_RX "RX no soportado" #define TR_OTA_UPDATE_ERROR "Error actualizacion OTA" #define TR_DEVICE_RESET "Reset dispositivo..." @@ -1127,7 +1109,7 @@ #define TR_VIEW_CHANNELS "Ver Canales" #define TR_VIEW_NOTES "Ver Notas" #define TR_MODEL_SELECT "Seleccionar modelo" -#define TR_MODS_FORBIDDEN "Modificacions prohibidas!" +#define TR_MODS_FORBIDDEN "Modificaciones prohibidas" #define TR_UNLOCKED "Desbloqueado" #define TR_ID "ID" #define TR_PRECISION "Precision" @@ -1142,22 +1124,22 @@ #define TR_CELLSENSOR "Cell sensor" #define TR_GPSSENSOR "GPS sensor" #define TR_CURRENTSENSOR "Sensor" -#define TR_AUTOOFFSET "Auto Offset" +#define TR_AUTOOFFSET "Auto offset" #define TR_ONLYPOSITIVE "Positivo" #define TR_FILTER "Filtro" #define TR_TELEMETRYFULL TR("Telem. llena!", "Todas las entradas de telemetria llenas!") #define TR_SERVOS_OK "Servos OK" #define TR_SERVOS_KO "Servos KO" #define TR_INVERTED_SERIAL INDENT "Invertir" -#define TR_IGNORE_INSTANCE INDENT "Ignorar instancia" -#define TR_DISCOVER_SENSORS "Buscar nuevos sensores" +#define TR_IGNORE_INSTANCE TR(INDENT "No inst.", INDENT "Ignora instancias") +#define TR_DISCOVER_SENSORS "Buscar sensores" #define TR_STOP_DISCOVER_SENSORS "Parar busqueda" #define TR_DELETE_ALL_SENSORS "Borrar sensores" #define TR_CONFIRMDELETE "Seguro " LCDW_128_480_LINEBREAK "borrar todo ?" #define TR_SELECT_WIDGET "Seleccionar widget" #define TR_REMOVE_WIDGET "Borrar widget" #define TR_WIDGET_SETTINGS "Config. widget" -#define TR_REMOVE_SCREEN "Borar pantalla" +#define TR_REMOVE_SCREEN "Borrar pantalla" #define TR_SETUP_WIDGETS "Config. widgets" #define TR_USER_INTERFACE "Interfaz" #define TR_THEME "Tema" @@ -1169,25 +1151,25 @@ #define TR_MAIN_COLOR "Color principal" #define TR_TEXT_VIEWER "Visor de texto" -#define TR_MENU_INPUTS "\314Inputs" +#define TR_MENU_INPUTS "\314Entradas" #define TR_MENU_LUA "\322Lua scripts" #define TR_MENU_STICKS "\307Sticks" #define TR_MENU_POTS "\310Pots" #define TR_MENU_MAX "\315MAX" #define TR_MENU_HELI "\316Ciclico" #define TR_MENU_TRIMS "\313Trims" -#define TR_MENU_SWITCHES "\312Switches" -#define TR_MENU_LOGICAL_SWITCHES "\312Logical Switches" +#define TR_MENU_SWITCHES "\312Interruptores" +#define TR_MENU_LOGICAL_SWITCHES TR("\312Interr. logicos", "\312Interruptores logicos") #define TR_MENU_TRAINER "\317Entrenador" #define TR_MENU_CHANNELS "\320Canales" #define TR_MENU_GVARS "\311GVars" #define TR_MENU_TELEMETRY "\321Telemetria" -#define TR_MENU_DISPLAY "Monitor" +#define TR_MENU_DISPLAY "MONITOR" #define TR_MENU_OTHER "Otros" #define TR_MENU_INVERT "Invertir" #define TR_JITTER_FILTER "Filtro ADC" #define TR_RTC_CHECK TR("Check RTC", "Check RTC voltaje") -#define TR_AUTH_FAILURE "Fallo auth." +#define TR_AUTH_FAILURE "Fallo " LCDW_128_480_LINEBREAK "autentificacion" #define ZSTR_FLR "FLR" #define ZSTR_RSSI "RSSI" From ef8640a7733899d5d6519bd11f4417949c803782 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 21 Apr 2020 12:14:24 +0200 Subject: [PATCH 25/33] Allow alphanumerical in ownerID (#7523) --- companion/src/generaledit/generalsetup.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/companion/src/generaledit/generalsetup.ui b/companion/src/generaledit/generalsetup.ui index d4e9bff01..98f9e76dd 100644 --- a/companion/src/generaledit/generalsetup.ui +++ b/companion/src/generaledit/generalsetup.ui @@ -1124,7 +1124,7 @@ p, li { white-space: pre-wrap; } - aaaaaaAA + nnnnnnNN 8 From e7f599237e19f2c6162b853a5d567c33218a0fb4 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 21 Apr 2020 12:22:29 +0200 Subject: [PATCH 26/33] Add mililiter per minute unit to Companion (#7529) --- companion/src/firmwares/sensordata.cpp | 2 ++ companion/src/firmwares/sensordata.h | 1 + companion/src/modeledit/telemetry_sensor.ui | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/companion/src/firmwares/sensordata.cpp b/companion/src/firmwares/sensordata.cpp index 8d677ed50..0a7e7eada 100644 --- a/companion/src/firmwares/sensordata.cpp +++ b/companion/src/firmwares/sensordata.cpp @@ -82,6 +82,8 @@ QString SensorData::unitString() const return tr("seconds"); case UNIT_CELLS: return tr("V"); + case UNIT_MILLILITERS_PER_MINUTE: + return tr("ml/minute"); default: return ""; } diff --git a/companion/src/firmwares/sensordata.h b/companion/src/firmwares/sensordata.h index a5cdb4957..65a8a4957 100644 --- a/companion/src/firmwares/sensordata.h +++ b/companion/src/firmwares/sensordata.h @@ -90,6 +90,7 @@ class SensorData { UNIT_RADIANS, UNIT_MILLILITERS, UNIT_FLOZ, + UNIT_MILLILITERS_PER_MINUTE, UNIT_HOURS, UNIT_MINUTES, UNIT_SECONDS, diff --git a/companion/src/modeledit/telemetry_sensor.ui b/companion/src/modeledit/telemetry_sensor.ui index 52660b4f0..12af2cf06 100644 --- a/companion/src/modeledit/telemetry_sensor.ui +++ b/companion/src/modeledit/telemetry_sensor.ui @@ -539,6 +539,11 @@ US fl.Oz. + + + ml/min + + From a1cd83598f5bef9ceb1b47479f3bad983cd41209 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 21 Apr 2020 14:44:21 +0200 Subject: [PATCH 27/33] Add output name on bottom status bar even when no mix line is active (#7537) --- radio/src/gui/480x272/model_mixes.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/radio/src/gui/480x272/model_mixes.cpp b/radio/src/gui/480x272/model_mixes.cpp index 0f98dc9d9..da1b74f78 100644 --- a/radio/src/gui/480x272/model_mixes.cpp +++ b/radio/src/gui/480x272/model_mixes.cpp @@ -607,6 +607,8 @@ bool menuModelMixAll(event_t event) if (!s_copyMode) { attr = INVERS; } + if (g_model.limitData[ch-1].name[0] != '\0') + lcdDrawSizedText(MENUS_MARGIN_LEFT, MENU_FOOTER_TOP, g_model.limitData[ch-1].name, sizeof(g_model.limitData[ch-1].name), MENU_TITLE_COLOR | LEFT | ZCHAR); } if (cur-menuVerticalOffset >= 0 && cur-menuVerticalOffset < NUM_BODY_LINES) { putsChn(MENUS_MARGIN_LEFT, y, ch, attr); // show CHx From 07b096ff4417e794ad0f7029451158e71408372b Mon Sep 17 00:00:00 2001 From: DanielGeA <33811722+dgatf@users.noreply.github.com> Date: Tue, 21 Apr 2020 13:49:18 +0100 Subject: [PATCH 28/33] Add missing translatables (#7532) Add missing translatables --- radio/src/gui/480x272/layouts/layout1x1.cpp | 4 ++-- radio/src/gui/480x272/layouts/layout2+1.cpp | 8 +++---- radio/src/gui/480x272/layouts/layout2x1.cpp | 2 +- radio/src/gui/480x272/layouts/layout2x2.cpp | 2 +- radio/src/gui/480x272/layouts/layout2x4.cpp | 16 +++++++------- radio/src/gui/480x272/model_curves.cpp | 2 +- radio/src/gui/480x272/model_failsafe.cpp | 2 +- radio/src/gui/480x272/model_select.cpp | 2 +- radio/src/gui/480x272/model_setup.cpp | 2 +- radio/src/gui/480x272/radio_hardware.cpp | 2 +- radio/src/gui/480x272/screens_setup.cpp | 4 ++-- radio/src/gui/480x272/widgets/gauge.cpp | 8 +++---- radio/src/gui/480x272/widgets/outputs.cpp | 6 ++--- radio/src/gui/480x272/widgets/text.cpp | 8 +++---- radio/src/gui/480x272/widgets/timer.cpp | 2 +- radio/src/gui/480x272/widgets/value.cpp | 6 ++--- .../src/gui/common/stdlcd/view_telemetry.cpp | 2 +- radio/src/translations.cpp | 20 +++++++++++++++++ radio/src/translations.h | 17 ++++++++++++++ radio/src/translations/cz.h.txt | 21 ++++++++++++++++++ radio/src/translations/de.h.txt | 22 +++++++++++++++++++ radio/src/translations/en.h.txt | 21 ++++++++++++++++++ radio/src/translations/es.h.txt | 22 ++++++++++++++++++- radio/src/translations/fi.h.txt | 22 ++++++++++++++++++- radio/src/translations/fr.h.txt | 21 ++++++++++++++++++ radio/src/translations/it.h.txt | 22 ++++++++++++++++++- radio/src/translations/nl.h.txt | 22 ++++++++++++++++++- radio/src/translations/pl.h.txt | 22 ++++++++++++++++++- radio/src/translations/pt.h.txt | 22 ++++++++++++++++++- radio/src/translations/se.h.txt | 22 ++++++++++++++++++- 30 files changed, 308 insertions(+), 46 deletions(-) diff --git a/radio/src/gui/480x272/layouts/layout1x1.cpp b/radio/src/gui/480x272/layouts/layout1x1.cpp index 0feeb1436..79bc53739 100644 --- a/radio/src/gui/480x272/layouts/layout1x1.cpp +++ b/radio/src/gui/480x272/layouts/layout1x1.cpp @@ -25,8 +25,8 @@ const uint8_t LBM_LAYOUT_1x1[] = { }; const ZoneOption OPTIONS_LAYOUT_1x1[] = { - { "Top bar", ZoneOption::Bool }, - { "Sliders+Trims", ZoneOption::Bool }, + { STR_TOP_BAR, ZoneOption::Bool }, + { STR_SLIDERS_TRIMS, ZoneOption::Bool }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/480x272/layouts/layout2+1.cpp b/radio/src/gui/480x272/layouts/layout2+1.cpp index 39abb1a9e..860cc94f9 100644 --- a/radio/src/gui/480x272/layouts/layout2+1.cpp +++ b/radio/src/gui/480x272/layouts/layout2+1.cpp @@ -25,10 +25,10 @@ const uint8_t LBM_LAYOUT_2P1[] = { }; const ZoneOption OPTIONS_LAYOUT_2P1[] = { - { "Top bar", ZoneOption::Bool }, - { "Flight mode", ZoneOption::Bool }, - { "Sliders", ZoneOption::Bool }, - { "Trims", ZoneOption::Bool }, + { STR_TOP_BAR, ZoneOption::Bool }, + { STR_FLIGHT_MODE, ZoneOption::Bool }, + { STR_SLIDERS, ZoneOption::Bool }, + { STR_TRIMS, ZoneOption::Bool }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/480x272/layouts/layout2x1.cpp b/radio/src/gui/480x272/layouts/layout2x1.cpp index a96fc7006..3c06d7079 100644 --- a/radio/src/gui/480x272/layouts/layout2x1.cpp +++ b/radio/src/gui/480x272/layouts/layout2x1.cpp @@ -25,7 +25,7 @@ const uint8_t LBM_LAYOUT_2x1[] = { }; const ZoneOption OPTIONS_LAYOUT_2x1[] = { - { "Top bar", ZoneOption::Bool }, + { STR_TOP_BAR, ZoneOption::Bool }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/480x272/layouts/layout2x2.cpp b/radio/src/gui/480x272/layouts/layout2x2.cpp index 0efa2df62..7d2f16f09 100644 --- a/radio/src/gui/480x272/layouts/layout2x2.cpp +++ b/radio/src/gui/480x272/layouts/layout2x2.cpp @@ -25,7 +25,7 @@ const uint8_t LBM_LAYOUT_2x2[] = { }; const ZoneOption OPTIONS_LAYOUT_2x2[] = { - { "Top bar", ZoneOption::Bool }, + { STR_TOP_BAR, ZoneOption::Bool }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/480x272/layouts/layout2x4.cpp b/radio/src/gui/480x272/layouts/layout2x4.cpp index b6e009acc..0850c7e67 100644 --- a/radio/src/gui/480x272/layouts/layout2x4.cpp +++ b/radio/src/gui/480x272/layouts/layout2x4.cpp @@ -25,14 +25,14 @@ const uint8_t LBM_LAYOUT_2x4[] = { }; const ZoneOption OPTIONS_LAYOUT_2x4[] = { - { "Top bar", ZoneOption::Bool }, - { "Flight mode", ZoneOption::Bool }, - { "Sliders", ZoneOption::Bool }, - { "Trims", ZoneOption::Bool }, - { "Panel1 background", ZoneOption::Bool }, - { " Color", ZoneOption::Color }, - { "Panel2 background", ZoneOption::Bool }, - { " Color", ZoneOption::Color }, + { STR_TOP_BAR, ZoneOption::Bool }, + { STR_FLIGHT_MODE, ZoneOption::Bool }, + { STR_SLIDERS, ZoneOption::Bool }, + { STR_TRIMS, ZoneOption::Bool }, + { STR_PANEL1_BACKGROUND, ZoneOption::Bool }, + { INDENT TR_COLOR, ZoneOption::Color }, + { STR_PANEL2_BACKGROUND, ZoneOption::Bool }, + { INDENT TR_COLOR, ZoneOption::Color }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/480x272/model_curves.cpp b/radio/src/gui/480x272/model_curves.cpp index 7d15edcaf..3abf03ddb 100644 --- a/radio/src/gui/480x272/model_curves.cpp +++ b/radio/src/gui/480x272/model_curves.cpp @@ -133,7 +133,7 @@ bool menuModelCurveOne(event_t event) // Curve type LcdFlags attr = (menuVerticalPosition==ITEM_CURVE_TYPE ? (s_editMode>0 ? INVERS|BLINK : INVERS) : 0); - lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP, "Type"); + lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP, STR_TYPE); lcdDrawTextAtIndex(MODEL_CURVE_ONE_2ND_COLUMN, MENU_CONTENT_TOP, STR_CURVE_TYPES, crv.type, attr); if (attr) { uint8_t newType = checkIncDecModelZero(event, crv.type, CURVE_TYPE_LAST); diff --git a/radio/src/gui/480x272/model_failsafe.cpp b/radio/src/gui/480x272/model_failsafe.cpp index 269cfad75..706c36f4b 100644 --- a/radio/src/gui/480x272/model_failsafe.cpp +++ b/radio/src/gui/480x272/model_failsafe.cpp @@ -60,7 +60,7 @@ bool menuModelFailsafe(event_t event) } SIMPLE_SUBMENU_WITH_OPTIONS("FAILSAFE", ICON_STATS_ANALOGS, sentModuleChannels(g_moduleIdx)+1, OPTION_MENU_NO_SCROLLBAR); - drawStringWithIndex(50, 3+FH, "Module", g_moduleIdx+1, MENU_TITLE_COLOR); + drawStringWithIndex(50, 3+FH, STR_MODULE, g_moduleIdx+1, MENU_TITLE_COLOR); for (uint8_t col=0; col < cols; col++) { for (uint8_t line=0; line < 8; line++) { diff --git a/radio/src/gui/480x272/model_select.cpp b/radio/src/gui/480x272/model_select.cpp index 5f6615041..9cb0f3979 100644 --- a/radio/src/gui/480x272/model_select.cpp +++ b/radio/src/gui/480x272/model_select.cpp @@ -279,7 +279,7 @@ void onModelSelectMenu(const char * result) setCurrentModel(currentCategory->size() - 1); } else { - POPUP_WARNING("Invalid File"); + POPUP_WARNING(STR_INVALID_FILE); } } else if (result == STR_MOVE_MODEL) { diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index 3cd369ddb..b165d201f 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -788,7 +788,7 @@ bool menuModelSetup(event_t event) case ITEM_MODEL_SETUP_DISPLAY_TRIMS: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_DISPLAY_TRIMS); - g_model.displayTrims = editChoice(MODEL_SETUP_2ND_COLUMN, y, "\006No\0 ChangeYes", g_model.displayTrims, 0, 2, attr, event); + g_model.displayTrims = editChoice(MODEL_SETUP_2ND_COLUMN, y, STR_VDISPLAYTRIMS, g_model.displayTrims, 0, 2, attr, event); break; case ITEM_MODEL_SETUP_TRIM_INC: diff --git a/radio/src/gui/480x272/radio_hardware.cpp b/radio/src/gui/480x272/radio_hardware.cpp index 23d6e85de..37f81bed3 100644 --- a/radio/src/gui/480x272/radio_hardware.cpp +++ b/radio/src/gui/480x272/radio_hardware.cpp @@ -187,7 +187,7 @@ bool menuRadioHardware(event_t event) LcdFlags attr = (sub == k ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0); switch (k) { case ITEM_RADIO_HARDWARE_CALIBRATION: - lcdDrawText(MENUS_MARGIN_LEFT, y, "Calibration", attr); + lcdDrawText(MENUS_MARGIN_LEFT, y, STR_CALIBRATION, attr); if (attr && s_editMode>0) { pushMenu(menuRadioCalibration); } diff --git a/radio/src/gui/480x272/screens_setup.cpp b/radio/src/gui/480x272/screens_setup.cpp index 749bd50c2..c1f251460 100644 --- a/radio/src/gui/480x272/screens_setup.cpp +++ b/radio/src/gui/480x272/screens_setup.cpp @@ -121,7 +121,7 @@ bool editZoneOption(coord_t y, const ZoneOption * option, ZoneOptionValue * valu } } else if (option->type == ZoneOption::TextSize) { - lcdDrawTextAtIndex(SCREENS_SETUP_2ND_COLUMN, y, "\010StandardTiny\0 Small\0 Mid\0 Double", value->unsignedValue, attr); + lcdDrawTextAtIndex(SCREENS_SETUP_2ND_COLUMN, y, STR_TEXT_SIZE, value->unsignedValue, attr); if (attr) { value->unsignedValue = checkIncDec(event, value->unsignedValue, 0, 4, i_flags); } @@ -558,7 +558,7 @@ bool menuScreenSetup(int index, event_t event) currentContainer = currentScreen; bool needsOffsetCheck = (menuVerticalPosition != 0 || menuHorizontalPosition < 0); - char title[] = "Main view X"; + char title[] = TR_MAIN_VIEW_X; title[sizeof(title)-2] = '1' + index; menuPageCount = updateMainviewsMenu(); diff --git a/radio/src/gui/480x272/widgets/gauge.cpp b/radio/src/gui/480x272/widgets/gauge.cpp index 5e8772540..099920abc 100644 --- a/radio/src/gui/480x272/widgets/gauge.cpp +++ b/radio/src/gui/480x272/widgets/gauge.cpp @@ -34,10 +34,10 @@ class GaugeWidget: public Widget }; const ZoneOption GaugeWidget::options[] = { - { "Source", ZoneOption::Source, OPTION_VALUE_UNSIGNED(1) }, - { "Min", ZoneOption::Integer, OPTION_VALUE_SIGNED(-RESX), OPTION_VALUE_SIGNED(-RESX), OPTION_VALUE_SIGNED(RESX) }, - { "Max", ZoneOption::Integer, OPTION_VALUE_SIGNED(RESX), OPTION_VALUE_SIGNED(-RESX), OPTION_VALUE_SIGNED(RESX) }, - { "Color", ZoneOption::Color, OPTION_VALUE_UNSIGNED(RED) }, + { STR_SOURCE, ZoneOption::Source, OPTION_VALUE_UNSIGNED(1) }, + { STR_MIN, ZoneOption::Integer, OPTION_VALUE_SIGNED(-RESX), OPTION_VALUE_SIGNED(-RESX), OPTION_VALUE_SIGNED(RESX) }, + { STR_MAX, ZoneOption::Integer, OPTION_VALUE_SIGNED(RESX), OPTION_VALUE_SIGNED(-RESX), OPTION_VALUE_SIGNED(RESX) }, + { STR_COLOR, ZoneOption::Color, OPTION_VALUE_UNSIGNED(RED) }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/480x272/widgets/outputs.cpp b/radio/src/gui/480x272/widgets/outputs.cpp index 1365e4f72..0628b5faa 100644 --- a/radio/src/gui/480x272/widgets/outputs.cpp +++ b/radio/src/gui/480x272/widgets/outputs.cpp @@ -86,9 +86,9 @@ class OutputsWidget: public Widget }; const ZoneOption OutputsWidget::options[] = { - { "First channel", ZoneOption::Integer, OPTION_VALUE_UNSIGNED(1), OPTION_VALUE_UNSIGNED(1), OPTION_VALUE_UNSIGNED(32) }, - { "Fill Background?", ZoneOption::Bool, OPTION_VALUE_BOOL(false) }, - { "BG Color", ZoneOption::Color, OPTION_VALUE_UNSIGNED(LIGHTGREY) }, + { STR_FIRST_CHANNEL, ZoneOption::Integer, OPTION_VALUE_UNSIGNED(1), OPTION_VALUE_UNSIGNED(1), OPTION_VALUE_UNSIGNED(32) }, + { STR_FILL_BACKGROUND, ZoneOption::Bool, OPTION_VALUE_BOOL(false) }, + { STR_BG_COLOR, ZoneOption::Color, OPTION_VALUE_UNSIGNED(LIGHTGREY) }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/480x272/widgets/text.cpp b/radio/src/gui/480x272/widgets/text.cpp index 30d593be6..ce18b7b26 100644 --- a/radio/src/gui/480x272/widgets/text.cpp +++ b/radio/src/gui/480x272/widgets/text.cpp @@ -36,10 +36,10 @@ class TextWidget: public Widget }; const ZoneOption TextWidget::options[] = { - { "Text", ZoneOption::String, OPTION_VALUE_STRING(TEXT_WIDGET_DEFAULT_LABEL) }, - { "Color", ZoneOption::Color, OPTION_VALUE_UNSIGNED(RED) }, - { "Size", ZoneOption::TextSize, OPTION_VALUE_UNSIGNED(0) }, - { "Shadow", ZoneOption::Bool, OPTION_VALUE_BOOL(false) }, + { STR_TEXT, ZoneOption::String, OPTION_VALUE_STRING(TEXT_WIDGET_DEFAULT_LABEL) }, + { STR_COLOR, ZoneOption::Color, OPTION_VALUE_UNSIGNED(RED) }, + { STR_SIZE, ZoneOption::TextSize, OPTION_VALUE_UNSIGNED(0) }, + { STR_SHADOW, ZoneOption::Bool, OPTION_VALUE_BOOL(false) }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/480x272/widgets/timer.cpp b/radio/src/gui/480x272/widgets/timer.cpp index 1293a8701..424db91e7 100644 --- a/radio/src/gui/480x272/widgets/timer.cpp +++ b/radio/src/gui/480x272/widgets/timer.cpp @@ -34,7 +34,7 @@ class TimerWidget: public Widget }; const ZoneOption TimerWidget::options[] = { - { "Timer source", ZoneOption::Timer, OPTION_VALUE_UNSIGNED(0) }, + { STR_TIMER_SOURCE, ZoneOption::Timer, OPTION_VALUE_UNSIGNED(0) }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/480x272/widgets/value.cpp b/radio/src/gui/480x272/widgets/value.cpp index 2a36ba7f3..96fc885db 100644 --- a/radio/src/gui/480x272/widgets/value.cpp +++ b/radio/src/gui/480x272/widgets/value.cpp @@ -34,9 +34,9 @@ class ValueWidget: public Widget }; const ZoneOption ValueWidget::options[] = { - { "Source", ZoneOption::Source, OPTION_VALUE_UNSIGNED(MIXSRC_Rud) }, - { "Color", ZoneOption::Color, OPTION_VALUE_UNSIGNED(WHITE) }, - { "Shadow", ZoneOption::Bool, OPTION_VALUE_BOOL(false) }, + { STR_SOURCE, ZoneOption::Source, OPTION_VALUE_UNSIGNED(MIXSRC_Rud) }, + { STR_COLOR, ZoneOption::Color, OPTION_VALUE_UNSIGNED(WHITE) }, + { STR_SHADOW, ZoneOption::Bool, OPTION_VALUE_BOOL(false) }, { NULL, ZoneOption::Bool } }; diff --git a/radio/src/gui/common/stdlcd/view_telemetry.cpp b/radio/src/gui/common/stdlcd/view_telemetry.cpp index e2bf39503..61b506269 100644 --- a/radio/src/gui/common/stdlcd/view_telemetry.cpp +++ b/radio/src/gui/common/stdlcd/view_telemetry.cpp @@ -92,7 +92,7 @@ void menuViewTelemetry(event_t event) } drawTelemetryTopBar(); - lcdDrawText(LCD_W / 2, 3 * FH, "No Telemetry Screens", CENTERED); + lcdDrawText(LCD_W / 2, 3 * FH, STR_NO_TELEMETRY_SCREENS, CENTERED); displayRssiLine(); } diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 293e5abf8..ad6ab9675 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -100,6 +100,10 @@ ISTR(MULTI_PROTOCOLS); ISTR(BLUETOOTH_MODES); #endif +#if defined(PCBHORUS) +ISTR(TEXT_SIZE); +#endif + const char STR_POPUPS_ENTER_EXIT[] = TR_POPUPS_ENTER_EXIT; const char STR_OK[] = TR_OK; const char STR_FREE[] = TR_FREE; @@ -587,10 +591,26 @@ const char STR_SPORT_UPDATE_POWER_MODE[] = TR_SPORT_UPDATE_POWER_MODE; #if defined(PCBHORUS) const char STR_ASSIGN_SPLASH[] = TR_ASSIGN_SPLASH; +const char STR_FIRST_CHANNEL[] = TR_FIRST_CHANNEL; +const char STR_FILL_BACKGROUND[] = TR_FILL_BACKGROUND; +const char STR_BG_COLOR[] = TR_BG_COLOR; +const char STR_SLIDERS_TRIMS[] = TR_SLIDERS_TRIMS; +const char STR_SLIDERS[] = TR_SLIDERS; +const char STR_FLIGHT_MODE[] = TR_FLIGHT_MODE; +const char STR_INVALID_FILE[] = TR_INVALID_FILE; +const char STR_TIMER_SOURCE[] = TR_TIMER_SOURCE; +const char STR_SIZE[] = TR_SIZE; +const char STR_SHADOW[] = TR_SHADOW; +const char STR_TEXT[] = TR_TEXT; +const char STR_COLOR[] = TR_COLOR; +const char STR_MAIN_VIEW_X[] = TR_MAIN_VIEW_X; +const char STR_PANEL1_BACKGROUND[] = TR_PANEL1_BACKGROUND; +const char STR_PANEL2_BACKGROUND[] = TR_PANEL2_BACKGROUND; #endif #if !defined(COLORLCD) const char STR_MENUWHENDONE[] = TR_MENUWHENDONE; +const char STR_NO_TELEMETRY_SCREENS[] = TR_NO_TELEMETRY_SCREENS; #endif #if defined(PCBSKY9X) && defined(REVX) diff --git a/radio/src/translations.h b/radio/src/translations.h index 7a28a4299..78c2d123f 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -188,6 +188,7 @@ extern const char STR_EXIT[]; #if !defined(PCBHORUS) extern const char STR_MENUWHENDONE[]; +extern const char STR_NO_TELEMETRY_SCREENS[]; #endif extern const char STR_FREE[]; @@ -592,6 +593,22 @@ extern const char STR_PLAY_FILE[]; extern const char STR_ASSIGN_BITMAP[]; #if defined(PCBHORUS) extern const char STR_ASSIGN_SPLASH[]; +extern const char STR_FIRST_CHANNEL[]; +extern const char STR_FILL_BACKGROUND[]; +extern const char STR_BG_COLOR[]; +extern const char STR_SLIDERS_TRIMS[]; +extern const char STR_SLIDERS[]; +extern const char STR_FLIGHT_MODE[]; +extern const char STR_INVALID_FILE[]; +extern const char STR_TIMER_SOURCE[]; +extern const char STR_TEXT_SIZE[]; +extern const char STR_SIZE[]; +extern const char STR_SHADOW[]; +extern const char STR_TEXT[]; +extern const char STR_COLOR[]; +extern const char STR_MAIN_VIEW_X[]; +extern const char STR_PANEL1_BACKGROUND[]; +extern const char STR_PANEL2_BACKGROUND[]; #endif extern const char STR_EXECUTE_FILE[]; extern const char STR_DELETE_FILE[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index e46a70230..ddf79cef8 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -375,6 +375,9 @@ #define LEN_GYROS "\004" #define TR_GYROS "GyrX""GyrY" +#define LEN_TEXT_SIZE "\010" +#define TR_TEXT_SIZE "Standard""Tiny\0 ""Small\0 ""Mid\0 ""Double\0 " + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT "\007" @@ -985,6 +988,7 @@ #define TR_SPORT_UPDATE_POWER_MODE "SP Power" #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " +#define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Název" @@ -1028,6 +1032,23 @@ // Horus footer descriptions #define TR_LSW_DESCRIPTIONS { "Typ porovnávací funkce", "První proměnná", "Druhá proměnná nebo konstanta", "Druhá proměnná nebo konstanta", "Další stav povolující tenko spínač", "Minimální doba trvání sepnutého stavu", "Minimální doba platné podmínky pro aktivaci" } +// Horus layouts and widgets +#define TR_FIRST_CHANNEL "First channel" +#define TR_FILL_BACKGROUND "Fill background?" +#define TR_BG_COLOR "BG Color" +#define TR_SLIDERS_TRIMS "Sliders+Trims" +#define TR_SLIDERS "Sliders" +#define TR_FLIGHT_MODE "Flight mode" +#define TR_INVALID_FILE "Invalid File" +#define TR_TIMER_SOURCE "Timer source" +#define TR_SIZE "Size" +#define TR_SHADOW "Shadow" +#define TR_TEXT "Text" +#define TR_COLOR "Color" +#define TR_MAIN_VIEW_X "Main view X" +#define TR_PANEL1_BACKGROUND "Panel1 background" +#define TR_PANEL2_BACKGROUND "Panel2 background" + // Taranis About screen #define TR_ABOUTUS TR(" O nás ", "O nás") diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 9da0cadc6..e8be3ab1c 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -378,6 +378,9 @@ #define LEN_GYROS "\004" #define TR_GYROS "GyrX""GyrY" +#define LEN_TEXT_SIZE "\010" +#define TR_TEXT_SIZE "Standard""Tiny\0 ""Small\0 ""Mid\0 ""Double\0 " + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT " " @@ -991,6 +994,7 @@ #define TR_SPORT_UPDATE_POWER_MODE "SP Power" #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " +#define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" // Horus and Taranis specific column headers #define TR_PHASES_HEADERS_NAME "Name " @@ -1003,6 +1007,24 @@ #define TR_PHASES_HEADERS_CH6_TRIM "Trim 6" #define TR_PHASES_HEADERS_FAD_IN "Langs Ein" #define TR_PHASES_HEADERS_FAD_OUT "Langs Aus" + +// Horus layouts and widgets +#define TR_FIRST_CHANNEL "First channel" +#define TR_FILL_BACKGROUND "Fill background?" +#define TR_BG_COLOR "BG Color" +#define TR_SLIDERS_TRIMS "Sliders+Trims" +#define TR_SLIDERS "Sliders" +#define TR_FLIGHT_MODE "Flight mode" +#define TR_INVALID_FILE "Invalid File" +#define TR_TIMER_SOURCE "Timer source" +#define TR_SIZE "Size" +#define TR_SHADOW "Shadow" +#define TR_TEXT "Text" +#define TR_COLOR "Color" +#define TR_MAIN_VIEW_X "Main view X" +#define TR_PANEL1_BACKGROUND "Panel1 background" +#define TR_PANEL2_BACKGROUND "Panel2 background" + // Taranis Info Zeile Anzeigen #define TR_LIMITS_HEADERS_NAME "Name" #define TR_LIMITS_HEADERS_SUBTRIM "Subtrim" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index c5211468e..b0982cb19 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -378,6 +378,9 @@ #define LEN_GYROS "\004" #define TR_GYROS "GyrX""GyrY" +#define LEN_TEXT_SIZE "\010" +#define TR_TEXT_SIZE "Standard""Tiny\0 ""Small\0 ""Mid\0 ""Double\0 " + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT " " @@ -990,6 +993,7 @@ #define TR_SPORT_UPDATE_POWER_MODE "SP Power" #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " +#define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Name" @@ -1033,6 +1037,23 @@ // Horus footer descriptions #define TR_LSW_DESCRIPTIONS { "Comparison type or function", "First variable", "Second variable or constant", "Second variable or constant", "Additional condition for line to be enabled", "Minimum ON duration of the logical switch", "Minimum TRUE duration for the switch to become ON" } +// Horus layouts and widgets +#define TR_FIRST_CHANNEL "First channel" +#define TR_FILL_BACKGROUND "Fill background?" +#define TR_BG_COLOR "BG Color" +#define TR_SLIDERS_TRIMS "Sliders+Trims" +#define TR_SLIDERS "Sliders" +#define TR_FLIGHT_MODE "Flight mode" +#define TR_INVALID_FILE "Invalid File" +#define TR_TIMER_SOURCE "Timer source" +#define TR_SIZE "Size" +#define TR_SHADOW "Shadow" +#define TR_TEXT "Text" +#define TR_COLOR "Color" +#define TR_MAIN_VIEW_X "Main view X" +#define TR_PANEL1_BACKGROUND "Panel1 background" +#define TR_PANEL2_BACKGROUND "Panel2 background" + // About screen #define TR_ABOUTUS TR(" ABOUT ", "ABOUT") diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 73bbf0b16..6a823ddcb 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -375,6 +375,9 @@ #define LEN_GYROS "\004" #define TR_GYROS "GyrX""GyrY" +#define LEN_TEXT_SIZE "\013" +#define TR_TEXT_SIZE "Normal\0 ""Muy pequeño""Pequeño\0 ""Medio\0 ""Doble\0 " + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT " " @@ -989,7 +992,7 @@ #define TR_SPORT_UPDATE_POWER_MODE "SP Power" #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " - +#define TR_NO_TELEMETRY_SCREENS TR("No hay pant. telemetria", "No hay pantallas de telemetria") // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Nombre" @@ -1033,6 +1036,23 @@ // Horus footer descriptions #define TR_LSW_DESCRIPTIONS { "Tipo de comparacion o funcion", "Primera variable", "Segunda variable o constante", "Segunda variable o constante", "Condicion adicional para activar linea", "Duracion minima de switch logico", "Duracion minima TRUE para activar switch logico" } +// Horus layouts and widgets +#define TR_FIRST_CHANNEL "Primer canal" +#define TR_FILL_BACKGROUND "Rellenar fondo" +#define TR_BG_COLOR "Color BG" +#define TR_SLIDERS_TRIMS "Sliders+Trims" +#define TR_SLIDERS "Sliders" +#define TR_FLIGHT_MODE "Modo de vuelo" +#define TR_INVALID_FILE "Fichero no valido" +#define TR_TIMER_SOURCE "Entrada timer" +#define TR_SIZE "Tamaño" +#define TR_SHADOW "Sombra" +#define TR_TEXT "Texto" +#define TR_COLOR "Color" +#define TR_MAIN_VIEW_X "Vista principal X" +#define TR_PANEL1_BACKGROUND "Fondo panel1" +#define TR_PANEL2_BACKGROUND "Fondo panel2" + // Taranis About screen #define TR_ABOUTUS "Nosotros" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index b3665f787..2c8041379 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -165,6 +165,9 @@ #define LEN_VCSWFUNC "\005" #define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a~x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a Date: Tue, 21 Apr 2020 14:53:33 +0200 Subject: [PATCH 29/33] Streamline multi interface (#7524) --- radio/src/gui/128x64/model_setup.cpp | 27 +++++++++++++++++---- radio/src/gui/212x64/model_setup.cpp | 34 +++++++++++++++++++++++---- radio/src/gui/480x272/model_setup.cpp | 30 +++++++++++++++++++---- radio/src/gui/gui_common.cpp | 26 +++++++++++++++++++- radio/src/gui/gui_common.h | 11 ++++++--- radio/src/io/multi_firmware_update.h | 2 +- radio/src/pulses/modules_constants.h | 34 ++++++++++++++------------- radio/src/pulses/modules_helpers.h | 3 +++ radio/src/telemetry/multi.cpp | 2 +- radio/src/telemetry/telemetry.h | 1 + radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/cz.h.txt | 1 + radio/src/translations/de.h.txt | 1 + radio/src/translations/en.h.txt | 1 + radio/src/translations/es.h.txt | 1 + radio/src/translations/fi.h.txt | 1 + radio/src/translations/fr.h.txt | 1 + radio/src/translations/it.h.txt | 1 + radio/src/translations/nl.h.txt | 1 + radio/src/translations/pl.h.txt | 1 + radio/src/translations/pt.h.txt | 1 + radio/src/translations/se.h.txt | 1 + 23 files changed, 147 insertions(+), 36 deletions(-) diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 2f40a0d0e..eb7fea4ab 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -313,7 +313,7 @@ void onBluetoothConnectMenu(const char * result) MULTIMODULE_SUBTYPE_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_SUBTYPE */ \ MULTIMODULE_STATUS_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_STATUS, ITEM_MODEL_SETUP_INTERNAL_MODULE_SYNCSTATUS */ \ MODULE_CHANNELS_ROWS(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_CHANNELS */ \ - IF_NOT_ACCESS_MODULE_RF(INTERNAL_MODULE, IF_INTERNAL_MODULE_ON(IF_INTERNAL_MODULE_ON(isModuleRxNumAvailable(INTERNAL_MODULE) ? (uint8_t)2 : (uint8_t)1))), /* *ITEM_MODEL_SETUP_INTERNAL_MODULE_NOT_ACCESS_RXNUM_BIND_RANGE */\ + IF_NOT_ACCESS_MODULE_RF(INTERNAL_MODULE, IF_INTERNAL_MODULE_ON(IF_INTERNAL_MODULE_ON(MODULE_BIND_ROWS(INTERNAL_MODULE)))), /* *ITEM_MODEL_SETUP_INTERNAL_MODULE_NOT_ACCESS_RXNUM_BIND_RANGE */\ IF_ACCESS_MODULE_RF(INTERNAL_MODULE, 0), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_PXX2_MODEL_NUM */ \ MODULE_OPTION_ROW(INTERNAL_MODULE), /* ITEM_MODEL_SETUP_INTERNAL_MODULE_OPTIONS */ \ MULTIMODULE_MODULE_ROWS(INTERNAL_MODULE) /* ITEM_MODEL_SETUP_INTERNAL_MODULE_AUTOBIND */ \ @@ -1000,7 +1000,25 @@ void menuModelSetup(event_t event) lcdDrawMultiProtocolString(MODEL_SETUP_2ND_COLUMN, y, moduleIdx, multi_rfProto, attr); if (attr) { int multiRfProto = g_model.moduleData[moduleIdx].getMultiProtocol(); - CHECK_INCDEC_MODELVAR_CHECK(event, multiRfProto, MODULE_SUBTYPE_MULTI_FIRST, MULTI_MAX_PROTOCOLS, isMultiProtocolSelectable); + MultiModuleStatus &status = getMultiModuleStatus(moduleIdx); + if (status.isValid()) { + int8_t direction = checkIncDec(event, 0, -1, 1); + if (direction == -1) { + if (multiRfProto == MODULE_SUBTYPE_MULTI_FRSKY) + multiRfProto = MODULE_SUBTYPE_MULTI_FRSKYX_RX; + else + multiRfProto = convertMultiToOtx(status.protocolPrev); + } + if (direction == 1) { + if (multiRfProto == MODULE_SUBTYPE_MULTI_FRSKY) + multiRfProto = MODULE_SUBTYPE_MULTI_FRSKYX2; + else + multiRfProto = convertMultiToOtx(status.protocolNext); + } + } + else { + CHECK_INCDEC_MODELVAR_CHECK(event, multiRfProto, MODULE_SUBTYPE_MULTI_FIRST, MULTI_MAX_PROTOCOLS, isMultiProtocolSelectable); + } if (checkIncDec_Ret) { g_model.moduleData[moduleIdx].setMultiProtocol(multiRfProto); g_model.moduleData[moduleIdx].subType = 0; @@ -1326,7 +1344,8 @@ void menuModelSetup(event_t event) } } lcdDrawText(MODEL_SETUP_2ND_COLUMN+xOffsetBind, y, STR_MODULE_BIND, l_posHorz==1 ? attr : 0); - lcdDrawText(MODEL_SETUP_2ND_COLUMN+MODEL_SETUP_RANGE_OFS+xOffsetBind, y, STR_MODULE_RANGE, l_posHorz==2 ? attr : 0); + if (!IS_RX_MULTI(moduleIdx)) + lcdDrawText(MODEL_SETUP_2ND_COLUMN+MODEL_SETUP_RANGE_OFS+xOffsetBind, y, STR_MODULE_RANGE, l_posHorz==2 ? attr : 0); uint8_t newFlag = 0; #if defined(MULTIMODULE) if (getMultiBindStatus(moduleIdx) == MULTI_BIND_FINISHED) { @@ -1586,7 +1605,7 @@ void menuModelSetup(event_t event) } #if defined(MULTIMODULE) else if (isModuleMultimodule(moduleIdx)) { - module.multi.lowPowerMode = editCheckBox(module.multi.lowPowerMode, MODEL_SETUP_2ND_COLUMN, y, STR_MULTI_LOWPOWER, attr, event); + module.multi.lowPowerMode = editCheckBox(module.multi.lowPowerMode, MODEL_SETUP_2ND_COLUMN, y, IS_RX_MULTI(moduleIdx) ? STR_MULTI_LNA_DISABLE : STR_MULTI_LOWPOWER, attr, event); } #endif diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index b03b13d17..0de6b7294 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -907,7 +907,25 @@ void menuModelSetup(event_t event) switch (menuHorizontalPosition) { case 0: { int multiRfProto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(); - CHECK_INCDEC_MODELVAR_CHECK(event, multiRfProto, MODULE_SUBTYPE_MULTI_FIRST, MULTI_MAX_PROTOCOLS, isMultiProtocolSelectable); + MultiModuleStatus &status = getMultiModuleStatus(EXTERNAL_MODULE); + if (status.isValid()) { + int8_t direction = checkIncDec(event, 0, -1, 1); + if (direction == -1) { + if (multiRfProto == MODULE_SUBTYPE_MULTI_FRSKY) + multiRfProto = MODULE_SUBTYPE_MULTI_FRSKYX_RX; + else + multiRfProto = convertMultiToOtx(status.protocolPrev); + } + if (direction == 1) { + if (multiRfProto == MODULE_SUBTYPE_MULTI_FRSKY) + multiRfProto = MODULE_SUBTYPE_MULTI_FRSKYX2; + else + multiRfProto = convertMultiToOtx(status.protocolNext); + } + } + else { + CHECK_INCDEC_MODELVAR_CHECK(event, multiRfProto, MODULE_SUBTYPE_MULTI_FIRST, MULTI_MAX_PROTOCOLS, isMultiProtocolSelectable); + } if (checkIncDec_Ret) { g_model.moduleData[EXTERNAL_MODULE].setMultiProtocol(multiRfProto); g_model.moduleData[EXTERNAL_MODULE].subType = 0; @@ -1122,8 +1140,13 @@ void menuModelSetup(event_t event) lcdDrawText(INDENT_WIDTH, y, STR_RECEIVER_NUM); } if (isModuleBindRangeAvailable(moduleIdx)) { - lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.header.modelId[moduleIdx], (l_posHorz==0 ? attr : 0) | LEADING0|LEFT, 2); - bindButtonPos = lcdNextPos + FW; + if (!IS_RX_MULTI(moduleIdx)) { + lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.header.modelId[moduleIdx], (l_posHorz == 0 ? attr : 0) | LEADING0 | LEFT, 2); + bindButtonPos = lcdNextPos + FW; + } + else { + bindButtonPos = MODEL_SETUP_2ND_COLUMN; + } if (attr && l_posHorz==0) { if (s_editMode>0) { CHECK_INCDEC_MODELVAR_ZERO(event, g_model.header.modelId[moduleIdx], getMaxRxNum(moduleIdx)); @@ -1141,7 +1164,8 @@ void menuModelSetup(event_t event) } } lcdDrawText(bindButtonPos, y, STR_MODULE_BIND, l_posHorz==1 ? attr : 0); - lcdDrawText(lcdNextPos + FW, y, STR_MODULE_RANGE, l_posHorz==2 ? attr : 0); + if (!IS_RX_MULTI(moduleIdx)) + lcdDrawText(lcdNextPos + FW, y, STR_MODULE_RANGE, l_posHorz==2 ? attr : 0); uint8_t newFlag = 0; #if defined(MULTIMODULE) if (getMultiBindStatus(moduleIdx) == MULTI_BIND_FINISHED) { @@ -1306,7 +1330,7 @@ void menuModelSetup(event_t event) } #if defined (MULTIMODULE) else if (isModuleMultimodule(moduleIdx)) { - g_model.moduleData[EXTERNAL_MODULE].multi.lowPowerMode = editCheckBox(g_model.moduleData[EXTERNAL_MODULE].multi.lowPowerMode, MODEL_SETUP_2ND_COLUMN, y, STR_MULTI_LOWPOWER, attr, event); + g_model.moduleData[EXTERNAL_MODULE].multi.lowPowerMode = editCheckBox(g_model.moduleData[EXTERNAL_MODULE].multi.lowPowerMode, MODEL_SETUP_2ND_COLUMN, y, IS_RX_MULTI(moduleIdx) ? STR_MULTI_LNA_DISABLE : STR_MULTI_LOWPOWER, attr, event); } #endif break; diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index b165d201f..83c23161b 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -1112,9 +1112,27 @@ bool menuModelSetup(event_t event) if (isModuleDSM2(moduleIdx)) CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].rfProtocol, DSM2_PROTO_LP45, DSM2_PROTO_DSMX); #if defined(MULTIMODULE) - else if (isModuleMultimodule(moduleIdx)) { + else if (isModuleMultimodule(moduleIdx)) { int multiRfProto = g_model.moduleData[moduleIdx].getMultiProtocol(); - CHECK_INCDEC_MODELVAR_CHECK(event, multiRfProto, MODULE_SUBTYPE_MULTI_FIRST, MULTI_MAX_PROTOCOLS, isMultiProtocolSelectable); + MultiModuleStatus &status = getMultiModuleStatus(moduleIdx); + if (status.isValid()) { + int8_t direction = checkIncDec(event, 0, -1, 1); + if (direction == -1) { + if (multiRfProto == MODULE_SUBTYPE_MULTI_FRSKY) + multiRfProto = MODULE_SUBTYPE_MULTI_FRSKYX_RX; + else + multiRfProto = convertMultiToOtx(status.protocolPrev); + } + if (direction == 1) { + if (multiRfProto == MODULE_SUBTYPE_MULTI_FRSKY) + multiRfProto = MODULE_SUBTYPE_MULTI_FRSKYX2; + else + multiRfProto = convertMultiToOtx(status.protocolNext); + } + } + else { + CHECK_INCDEC_MODELVAR_CHECK(event, multiRfProto, MODULE_SUBTYPE_MULTI_FIRST, MULTI_MAX_PROTOCOLS, isMultiProtocolSelectable); + } if (checkIncDec_Ret) { g_model.moduleData[moduleIdx].setMultiProtocol(multiRfProto); g_model.moduleData[moduleIdx].subType = 0; @@ -1336,7 +1354,8 @@ bool menuModelSetup(event_t event) { lcdDrawText(MENUS_MARGIN_LEFT + INDENT_WIDTH, y, STR_MODULE); drawButton(MODEL_SETUP_2ND_COLUMN, y, STR_REGISTER, (menuHorizontalPosition == 0 ? attr : 0)); - drawButton(MODEL_SETUP_2ND_COLUMN + MODEL_SETUP_SET_FAILSAFE_OFS, y, STR_MODULE_RANGE, (menuHorizontalPosition == 1 ? attr : 0)); + if (!IS_RX_MULTI(moduleIdx)) + drawButton(MODEL_SETUP_2ND_COLUMN + MODEL_SETUP_SET_FAILSAFE_OFS, y, STR_MODULE_RANGE, (menuHorizontalPosition == 1 ? attr : 0)); if (attr) { if (moduleState[moduleIdx].mode == MODULE_MODE_NORMAL && s_editMode > 0) { if (menuHorizontalPosition == 0 && event == EVT_KEY_BREAK(KEY_ENTER)) { @@ -1520,7 +1539,8 @@ bool menuModelSetup(event_t event) } } drawButton(MODEL_SETUP_2ND_COLUMN+xOffsetBind, y, STR_MODULE_BIND, (moduleState[moduleIdx].mode == MODULE_MODE_BIND ? BUTTON_ON : BUTTON_OFF) | (l_posHorz==1 ? attr : 0)); - drawButton(MODEL_SETUP_2ND_COLUMN+MODEL_SETUP_RANGE_OFS+xOffsetBind, y, STR_MODULE_RANGE, (moduleState[moduleIdx].mode == MODULE_MODE_RANGECHECK ? BUTTON_ON : BUTTON_OFF) | (l_posHorz==2 ? attr : 0)); + if (!IS_RX_MULTI(moduleIdx)) + drawButton(MODEL_SETUP_2ND_COLUMN+MODEL_SETUP_RANGE_OFS+xOffsetBind, y, STR_MODULE_RANGE, (moduleState[moduleIdx].mode == MODULE_MODE_RANGECHECK ? BUTTON_ON : BUTTON_OFF) | (l_posHorz==2 ? attr : 0)); uint8_t newFlag = 0; #if defined(MULTIMODULE) if (getMultiBindStatus(moduleIdx) == MULTI_BIND_FINISHED) { @@ -1683,7 +1703,7 @@ bool menuModelSetup(event_t event) } #if defined(MULTIMODULE) else if (isModuleMultimodule(moduleIdx)) { - lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MULTI_LOWPOWER); + lcdDrawText(MENUS_MARGIN_LEFT, y, IS_RX_MULTI(moduleIdx) ? STR_MULTI_LNA_DISABLE : STR_MULTI_LOWPOWER); g_model.moduleData[moduleIdx].multi.lowPowerMode = editCheckBox(g_model.moduleData[moduleIdx].multi.lowPowerMode, MODEL_SETUP_2ND_COLUMN, y, attr, event); } #endif diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 5efab1510..07a093fdf 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -789,7 +789,7 @@ int getFirstAvailable(int min, int max, IsValueAvailable isValueAvailable) #if defined(MULTIMODULE) // This maps OpenTX multi type with Pascal's Multi type -uint8_t convertMultiProtocol(uint8_t moduleIdx, uint8_t type) +uint8_t multiConvertOtxToMulti(uint8_t moduleIdx, uint8_t type) { // 15 for Multimodule is FrskyX or D16 which we map as a subprotocol of 3 (FrSky) @@ -818,6 +818,27 @@ uint8_t convertMultiProtocol(uint8_t moduleIdx, uint8_t type) return type; } +// This maps multi type to OpenTX number, type ONLY (no subtype) +int convertMultiToOtx(int type) +{ + if (type == 3) //FrSkyD + return MODULE_SUBTYPE_MULTI_FRSKY; + + if (type == 15) //FrSkyX + return MODULE_SUBTYPE_MULTI_FRSKY; + + if (type == 25) //FrSkyV + return MODULE_SUBTYPE_MULTI_FRSKY; + + if (type > 25) + type = type - 1; + + if (type > 15) + type = type - 1; + + return type - 1; //Multi list starts at 1 +} + // Third row is number of subtypes -1 (max valid subtype) #define NO_SUBTYPE nullptr @@ -866,6 +887,7 @@ const char STR_SUBTYPE_ZSX[] = "\007""280JJRC"; const char STR_SUBTYPE_FLYZONE[] = "\005""FZ410"; const char STR_SUBTYPE_FX816[] = "\003""P38"; const char STR_SUBTYPE_ESKY150[] = "\003""4CH""7CH"; +const char STR_SUBTYPE_FRSKYL[] = "\010""LR12\0 ""LR12 6ch"; const char* mm_options_strings::options[] = { nullptr, @@ -925,6 +947,8 @@ const mm_protocol_definition multi_protocols[] = { {MODULE_SUBTYPE_MULTI_FX816, 0, false, false, STR_SUBTYPE_FX816, nullptr}, {MODULE_SUBTYPE_MULTI_HOTT, 0, true, false, NO_SUBTYPE, STR_MULTI_RFTUNE}, {MODULE_SUBTYPE_MULTI_FRSKYX2, 4, true, false, STR_SUBTYPE_FRSKYX2, STR_MULTI_RFTUNE}, + {MODULE_SUBTYPE_MULTI_PROPEL, 0, false, false, NO_SUBTYPE, nullptr}, + {MODULE_SUBTYPE_MULTI_FRSKYL, 1, false, false, STR_SUBTYPE_FRSKYL, STR_MULTI_RFTUNE}, {MM_RF_CUSTOM_SELECTED, 7, true, true, NO_SUBTYPE, STR_MULTI_OPTION}, // Sentinel and default for protocols not listed above (MM_RF_CUSTOM is 0xff) diff --git a/radio/src/gui/gui_common.h b/radio/src/gui/gui_common.h index 55233ea17..5b8c61a97 100644 --- a/radio/src/gui/gui_common.h +++ b/radio/src/gui/gui_common.h @@ -122,6 +122,8 @@ void drawSensorCustomValue(coord_t x, coord_t y, uint8_t sensor, int32_t value, void drawSourceCustomValue(coord_t x, coord_t y, source_t channel, int32_t val, LcdFlags flags=0); void drawSourceValue(coord_t x, coord_t y, source_t channel, LcdFlags flags=0); +int convertMultiToOtx(int type); + void drawCurve(coord_t offset=0); #if defined(COLORLCD) @@ -139,6 +141,9 @@ void runFatalErrorScreen(const char * message); inline uint8_t MODULE_BIND_ROWS(int moduleIdx) { + if (IS_RX_MULTI(moduleIdx)) + return 0; + if (isModuleXJTD8(moduleIdx) || isModuleSBUS(moduleIdx)) return 1; @@ -150,7 +155,7 @@ inline uint8_t MODULE_BIND_ROWS(int moduleIdx) inline uint8_t MODULE_CHANNELS_ROWS(int moduleIdx) { - if (!IS_MODULE_ENABLED(moduleIdx)) + if (!IS_MODULE_ENABLED(moduleIdx) || IS_RX_MULTI(moduleIdx)) return HIDDEN_ROW; if (isModuleDSM2(moduleIdx) || isModuleCrossfire(moduleIdx) || isModuleSBUS(moduleIdx) || (isModuleMultimodule(moduleIdx) && g_model.moduleData[moduleIdx].getMultiProtocol() != MODULE_SUBTYPE_MULTI_DSM2)) @@ -250,14 +255,14 @@ inline uint8_t MULTIMODULE_HASOPTIONS(uint8_t moduleIdx) return false; } -#define MULTIMODULE_MODULE_ROWS(moduleIdx) MULTIMODULE_PROTOCOL_KNOWN(moduleIdx) ? (uint8_t) 0 : HIDDEN_ROW, MULTIMODULE_PROTOCOL_KNOWN(moduleIdx) ? (uint8_t) 0 : HIDDEN_ROW, MULTI_DISABLE_CHAN_MAP_ROW(moduleIdx), // AUTOBIND, DISABLE TELEM, DISABLE CN.MAP +#define MULTIMODULE_MODULE_ROWS(moduleIdx) (MULTIMODULE_PROTOCOL_KNOWN(moduleIdx) && !IS_RX_MULTI(moduleIdx)) ? (uint8_t) 0 : HIDDEN_ROW, (MULTIMODULE_PROTOCOL_KNOWN(moduleIdx) && !IS_RX_MULTI(moduleIdx)) ? (uint8_t) 0 : HIDDEN_ROW, MULTI_DISABLE_CHAN_MAP_ROW(moduleIdx), // AUTOBIND, DISABLE TELEM, DISABLE CN.MAP #define MULTIMODULE_TYPE_ROW(moduleIdx) isModuleMultimodule(moduleIdx) ? MULTIMODULE_RFPROTO_COLUMNS(moduleIdx) : HIDDEN_ROW, #define MULTIMODULE_STATUS_ROWS(moduleIdx) isModuleMultimodule(moduleIdx) ? TITLE_ROW : HIDDEN_ROW, (isModuleMultimodule(moduleIdx) && getMultiSyncStatus(moduleIdx).isValid()) ? TITLE_ROW : HIDDEN_ROW, #define MULTIMODULE_MODE_ROWS(moduleIdx) (g_model.moduleData[moduleIdx].multi.customProto) ? (uint8_t) 3 : MULTIMODULE_HAS_SUBTYPE(moduleIdx) ? (uint8_t)2 : (uint8_t)1 #define MULTIMODULE_TYPE_ROWS(moduleIdx) isModuleMultimodule(moduleIdx) ? (uint8_t) 0 : HIDDEN_ROW, #define MULTIMODULE_SUBTYPE_ROWS(moduleIdx) isModuleMultimodule(moduleIdx) ? MULTIMODULE_RFPROTO_COLUMNS(moduleIdx) : HIDDEN_ROW, #define MULTIMODULE_OPTIONS_ROW(moduleIdx) (isModuleMultimodule(moduleIdx) && MULTIMODULE_HASOPTIONS(moduleIdx)) ? (uint8_t) 0: HIDDEN_ROW -#define MODULE_POWER_ROW(moduleIdx) (MULTIMODULE_PROTOCOL_KNOWN(moduleIdx) || isModuleR9MNonAccess(moduleIdx)) ? (isModuleR9MLiteNonPro(moduleIdx) ? (isModuleR9M_FCC_VARIANT(moduleIdx) ? READONLY_ROW : (uint8_t)0) : (uint8_t)0) : HIDDEN_ROW +#define MODULE_POWER_ROW(moduleIdx) (MULTIMODULE_PROTOCOL_KNOWN(moduleIdx) || isModuleR9MNonAccess(moduleIdx)) ? (isModuleR9MLiteNonPro(moduleIdx) ? (isModuleR9M_FCC_VARIANT(moduleIdx) ? READONLY_ROW : (uint8_t)0) : (uint8_t)0) : HIDDEN_ROW #else #define MULTIMODULE_STATUS_ROWS(moduleIdx) diff --git a/radio/src/io/multi_firmware_update.h b/radio/src/io/multi_firmware_update.h index a4ad7156f..a4cb255fb 100644 --- a/radio/src/io/multi_firmware_update.h +++ b/radio/src/io/multi_firmware_update.h @@ -71,7 +71,7 @@ class MultiFirmwareInformation { bool isMultiInternalFirmware() const { - return (boardType == FIRMWARE_MULTI_STM && telemetryInversion == false && optibootSupport == true && bootloaderCheck == true && telemetryType == FIRMWARE_MULTI_TELEM_MULTI_TELEMETRY); + return (boardType == FIRMWARE_MULTI_STM && optibootSupport == true && bootloaderCheck == true && telemetryType == FIRMWARE_MULTI_TELEM_MULTI_TELEMETRY); } bool isMultiExternalFirmware() const diff --git a/radio/src/pulses/modules_constants.h b/radio/src/pulses/modules_constants.h index d890e38ab..a519d0269 100644 --- a/radio/src/pulses/modules_constants.h +++ b/radio/src/pulses/modules_constants.h @@ -102,68 +102,70 @@ enum ModuleSubtypeR9M { enum ModuleSubtypeMulti { MODULE_SUBTYPE_MULTI_FIRST = 0, MODULE_SUBTYPE_MULTI_FLYSKY = MODULE_SUBTYPE_MULTI_FIRST, - MODULE_SUBTYPE_MULTI_HUBSAN, - MODULE_SUBTYPE_MULTI_FRSKY, - MODULE_SUBTYPE_MULTI_HISKY, - MODULE_SUBTYPE_MULTI_V2X2, - MODULE_SUBTYPE_MULTI_DSM2, + MODULE_SUBTYPE_MULTI_HUBSAN, //1 + MODULE_SUBTYPE_MULTI_FRSKY, //2 + MODULE_SUBTYPE_MULTI_HISKY, //3 + MODULE_SUBTYPE_MULTI_V2X2, //4 + MODULE_SUBTYPE_MULTI_DSM2, //5 MODULE_SUBTYPE_MULTI_DEVO, MODULE_SUBTYPE_MULTI_YD717, MODULE_SUBTYPE_MULTI_KN, MODULE_SUBTYPE_MULTI_SYMAX, - MODULE_SUBTYPE_MULTI_SLT, + MODULE_SUBTYPE_MULTI_SLT, //10 MODULE_SUBTYPE_MULTI_CX10, MODULE_SUBTYPE_MULTI_CG023, MODULE_SUBTYPE_MULTI_BAYANG, MODULE_SUBTYPE_MULTI_ESky, - MODULE_SUBTYPE_MULTI_MT99XX, + MODULE_SUBTYPE_MULTI_MT99XX, //15 MODULE_SUBTYPE_MULTI_MJXQ, MODULE_SUBTYPE_MULTI_SHENQI, MODULE_SUBTYPE_MULTI_FY326, MODULE_SUBTYPE_MULTI_SFHSS, - MODULE_SUBTYPE_MULTI_J6PRO, + MODULE_SUBTYPE_MULTI_J6PRO, //20 MODULE_SUBTYPE_MULTI_FQ777, MODULE_SUBTYPE_MULTI_ASSAN, MODULE_SUBTYPE_MULTI_HONTAI, MODULE_SUBTYPE_MULTI_OLRS, - MODULE_SUBTYPE_MULTI_FS_AFHDS2A, + MODULE_SUBTYPE_MULTI_FS_AFHDS2A, //25 MODULE_SUBTYPE_MULTI_Q2X2, MODULE_SUBTYPE_MULTI_WK_2X01, MODULE_SUBTYPE_MULTI_Q303, MODULE_SUBTYPE_MULTI_GW008, - MODULE_SUBTYPE_MULTI_DM002, + MODULE_SUBTYPE_MULTI_DM002, //30 MODULE_SUBTYPE_MULTI_CABELL, MODULE_SUBTYPE_MULTI_ESKY150, MODULE_SUBTYPE_MULTI_H83D, MODULE_SUBTYPE_MULTI_CORONA, - MODULE_SUBTYPE_MULTI_CFLIE, + MODULE_SUBTYPE_MULTI_CFLIE, //35 MODULE_SUBTYPE_MULTI_HITEC, MODULE_SUBTYPE_MULTI_WFLY, MODULE_SUBTYPE_MULTI_BUGS, MODULE_SUBTYPE_MULTI_BUGS_MINI, - MODULE_SUBTYPE_MULTI_TRAXXAS, + MODULE_SUBTYPE_MULTI_TRAXXAS, //40 MODULE_SUBTYPE_MULTI_NCC1701, MODULE_SUBTYPE_MULTI_E01X, MODULE_SUBTYPE_MULTI_V911S, MODULE_SUBTYPE_MULTI_GD00X, - MODULE_SUBTYPE_MULTI_V761, + MODULE_SUBTYPE_MULTI_V761, //45 MODULE_SUBTYPE_MULTI_KF606, MODULE_SUBTYPE_MULTI_REDPINE, MODULE_SUBTYPE_MULTI_POTENSIC, MODULE_SUBTYPE_MULTI_ZSX, - MODULE_SUBTYPE_MULTI_FLYZONE, + MODULE_SUBTYPE_MULTI_FLYZONE, //50 MODULE_SUBTYPE_MULTI_SCANNER, MODULE_SUBTYPE_MULTI_FRSKYX_RX, MODULE_SUBTYPE_MULTI_AFHDS2A_RX, MODULE_SUBTYPE_MULTI_HOTT, - MODULE_SUBTYPE_MULTI_FX816, + MODULE_SUBTYPE_MULTI_FX816, //55 MODULE_SUBTYPE_MULTI_BAYANG_RX, MODULE_SUBTYPE_MULTI_PELIKAN, MODULE_SUBTYPE_MULTI_TIGER, MODULE_SUBTYPE_MULTI_XK, - MODULE_SUBTYPE_MULTI_XN297DUMP, + MODULE_SUBTYPE_MULTI_XN297DUMP, //60 MODULE_SUBTYPE_MULTI_FRSKYX2, MODULE_SUBTYPE_MULTI_FRSKY_R9, + MODULE_SUBTYPE_MULTI_PROPEL, + MODULE_SUBTYPE_MULTI_FRSKYL, MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_FRSKY_R9 }; #define MODULE_SUBTYPE_MULTI_XN297DP 63-3 diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index 244e58a79..c8e8411c4 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -384,6 +384,9 @@ inline bool isModuleRxNumAvailable(uint8_t moduleIdx) if (isModuleISRM(moduleIdx)) return true; + if (IS_RX_MULTI(moduleIdx)) + return false; + if (isModuleMultimodule(moduleIdx)) return true; diff --git a/radio/src/telemetry/multi.cpp b/radio/src/telemetry/multi.cpp index b86347547..3719d660b 100644 --- a/radio/src/telemetry/multi.cpp +++ b/radio/src/telemetry/multi.cpp @@ -555,7 +555,7 @@ void MultiModuleStatus::getStatusString(char * statusText) const return; } - if (major <= 1 && minor <= 3 && revision <= 0 && patch < 87 && SLOW_BLINK_ON_PHASE) { + if (major <= 1 && minor <= 3 && revision <= 0 && patch < 91 && SLOW_BLINK_ON_PHASE) { strcpy(statusText, STR_MODULE_UPGRADE); } else { diff --git a/radio/src/telemetry/telemetry.h b/radio/src/telemetry/telemetry.h index c74057c78..c7228a0ff 100644 --- a/radio/src/telemetry/telemetry.h +++ b/radio/src/telemetry/telemetry.h @@ -111,6 +111,7 @@ extern uint8_t telemetryProtocol; #define IS_D16_MULTI(module) (((g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FRSKY) && (g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16 || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_8CH || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_LBT || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH || g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_CLONED)) \ || (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FRSKYX2)) #define IS_HOTT_MULTI(module) (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_HOTT) + #define IS_RX_MULTI(module) ((g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_AFHDS2A_RX) || (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FRSKYX_RX) || (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_BAYANG_RX)) #if defined(HARDWARE_INTERNAL_MODULE) #define IS_FRSKY_SPORT_PROTOCOL() (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT || (telemetryProtocol == PROTOCOL_TELEMETRY_MULTIMODULE && (IS_D16_MULTI(INTERNAL_MODULE)||IS_D16_MULTI(EXTERNAL_MODULE)))) #else diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index ad6ab9675..24f18e058 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -695,6 +695,7 @@ const char STR_DISABLE_CH_MAP[] = TR_DISABLE_CH_MAP; const char STR_DISABLE_TELEM[] = TR_DISABLE_TELEM; const char STR_MULTI_DSM_AUTODTECT[] = TR_MULTI_DSM_AUTODTECT; const char STR_MULTI_LOWPOWER[] = TR_MULTI_LOWPOWER; +const char STR_MULTI_LNA_DISABLE[] = TR_MULTI_LNA_DISABLE; const char STR_MODULE_NO_SERIAL_MODE[] = TR_MODULE_NO_SERIAL_MODE; const char STR_MODULE_NO_INPUT[] = TR_MODULE_NO_INPUT; const char STR_MODULE_WAITFORBIND[] = TR_MODULE_WAITFORBIND; diff --git a/radio/src/translations.h b/radio/src/translations.h index 78c2d123f..179972304 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -394,6 +394,7 @@ extern const char STR_DISABLE_CH_MAP[]; extern const char STR_DISABLE_TELEM[]; extern const char STR_MULTI_DSM_AUTODTECT[]; extern const char STR_MULTI_LOWPOWER[]; +extern const char STR_MULTI_LNA_DISABLE[]; extern const char STR_MODULE_NO_SERIAL_MODE[]; extern const char STR_MODULE_NO_INPUT[]; extern const char STR_MODULE_WAITFORBIND[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index ddf79cef8..3b4beb3dd 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -638,6 +638,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Disable Telemetry") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetekce", INDENT "Formát autodetekce") #define TR_MULTI_LOWPOWER TR(INDENT "Nízký výkon", INDENT "Režim nízkého výkonu") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("Zap", "Zapnuto") #define TR_DISABLE_INTERNAL TR("Vypnout int.", "Vypnout interní RF") diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index e8be3ab1c..79974e4a1 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -640,6 +640,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Disable Telemetry") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") #define TR_MULTI_LOWPOWER TR(INDENT "Low power", INDENT "Low power mode") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("ON", "Enabled") #define TR_DISABLE_INTERNAL TR("Disable int. RF", "Disable internal RF") diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index b0982cb19..55efa2cf3 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -639,6 +639,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Disable Telemetry") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") #define TR_MULTI_LOWPOWER TR(INDENT "Low power", INDENT "Low power mode") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("ON", "Enabled") #define TR_DISABLE_INTERNAL TR("Disable int.", "Disable internal RF") diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 6a823ddcb..7b10a3f93 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -641,6 +641,7 @@ #define TR_DISABLE_TELEM TR("No telem", "Desactivar telem.") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetectar formato") #define TR_MULTI_LOWPOWER TR(INDENT "Baja poten.", INDENT "Modo de baja poten.") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("ON", "Activado") #define TR_DISABLE_INTERNAL TR("Desac.RF int", "Desact. mod. int. RF") diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 2c8041379..933ad7103 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -657,6 +657,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Disable Telemetry") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") #define TR_MULTI_LOWPOWER TR(INDENT "Low power", INDENT "Low power mode") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("ON", "Enabled") #define TR_DISABLE_INTERNAL TR("Disable int. RF", "Disable internal RF") diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index bad7562ec..4a8e95e9d 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -660,6 +660,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Désact Télémétrie") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodét.", INDENT "Autodétection") #define TR_MULTI_LOWPOWER TR(INDENT "Basse puis.", INDENT "Mode basse puiss.") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "Lien S.Port") #define TR_MODULE_TELEM_ON TR("ON", "Actif") #define TR_DISABLE_INTERNAL TR("Désact intRF", "Désact. RF interne") diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 2035c5c80..e118fcd21 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -659,6 +659,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Telem. disabil.") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Trova autom.", INDENT "Autoril. il formato") #define TR_MULTI_LOWPOWER TR(INDENT "Bassa pot.", INDENT "Modo bassa potenza") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "Link S.Port") #define TR_MODULE_TELEM_ON TR("ON", "Abilitato") #define TR_DISABLE_INTERNAL TR("Disatt. RF int.", "Disattiva RF interna") diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 256bf0513..5425c6033 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -645,6 +645,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Disable Telemetry") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") #define TR_MULTI_LOWPOWER TR(INDENT "Low power", INDENT "Low power mode") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("ON", "Enabled") #define TR_DISABLE_INTERNAL TR("Disable int. RF", "Disable internal RF") diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index f4c388f21..d82ffc70c 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -658,6 +658,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Disable Telemetry") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") #define TR_MULTI_LOWPOWER TR(INDENT "Low power", INDENT "Low power mode") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("ON", "Enabled") #define TR_DISABLE_INTERNAL TR("Disable int. RF", "Disable internal RF") diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index a43757e1c..671370d01 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -649,6 +649,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Disable Telemetry") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") #define TR_MULTI_LOWPOWER TR(INDENT "Low power", INDENT "Low power mode") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("ON", "Enabled") #define TR_DISABLE_INTERNAL TR("Disable int. RF", "Disable internal RF") diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 2c4e585b5..b2fbe7ec4 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -658,6 +658,7 @@ #define TR_DISABLE_TELEM TR("No Telem", "Disable Telemetry") #define TR_MULTI_DSM_AUTODTECT TR(INDENT "Autodetect", INDENT "Autodetect format") #define TR_MULTI_LOWPOWER TR(INDENT "Low power", INDENT "Low power mode") +#define TR_MULTI_LNA_DISABLE INDENT "LNA disable" #define TR_MODULE_TELEMETRY TR(INDENT "S.Port", INDENT "S.Port link") #define TR_MODULE_TELEM_ON TR("ON", "Enabled") #define TR_DISABLE_INTERNAL TR("Disable int. RF", "Disable internal RF") From ce3f8374a1e316f159e9d9cc59b24583d5bf28b6 Mon Sep 17 00:00:00 2001 From: RealTadango Date: Tue, 21 Apr 2020 15:04:17 +0200 Subject: [PATCH 30/33] Using the right precision for unknown (custom) sensors (#7508) Co-authored-by: Herman Kruisman --- radio/src/telemetry/frsky_sport.cpp | 2 +- radio/src/telemetry/telemetry_sensors.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/radio/src/telemetry/frsky_sport.cpp b/radio/src/telemetry/frsky_sport.cpp index ebb90586a..0e4f3920c 100644 --- a/radio/src/telemetry/frsky_sport.cpp +++ b/radio/src/telemetry/frsky_sport.cpp @@ -130,7 +130,7 @@ uint16_t rboxState; void sportProcessTelemetryPacket(uint16_t id, uint8_t subId, uint8_t instance, uint32_t data, TelemetryUnit unit=UNIT_RAW) { const FrSkySportSensor * sensor = getFrSkySportSensor(id, subId); - uint8_t precision = 0; + uint8_t precision = 255; if (sensor) { if (unit == UNIT_RAW) unit = sensor->unit; diff --git a/radio/src/telemetry/telemetry_sensors.cpp b/radio/src/telemetry/telemetry_sensors.cpp index dc9742b55..66b0e2255 100644 --- a/radio/src/telemetry/telemetry_sensors.cpp +++ b/radio/src/telemetry/telemetry_sensors.cpp @@ -82,6 +82,10 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32 { int32_t newVal = val; + if(prec == 255) { + prec = sensor.prec; + } + if (unit == UNIT_CELLS) { uint32_t data = uint32_t(newVal); uint8_t cellsCount = (data >> 24); From 4ac35a2e23a06f841290b441ecbd3bb0c6cad95b Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 21 Apr 2020 15:14:20 +0200 Subject: [PATCH 31/33] Add one more line to text viewer (#7528) --- radio/src/gui/128x64/gui.h | 1 + radio/src/gui/212x64/gui.h | 1 + radio/src/gui/480x272/gui.h | 1 + radio/src/gui/480x272/view_text.cpp | 8 ++++---- radio/src/sdcard.cpp | 8 ++++---- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/radio/src/gui/128x64/gui.h b/radio/src/gui/128x64/gui.h index d7e1538f5..b5ba20b5d 100644 --- a/radio/src/gui/128x64/gui.h +++ b/radio/src/gui/128x64/gui.h @@ -40,6 +40,7 @@ #define drawFieldLabel(x, y, str) lcdDrawTextAlignedLeft(y, str) #define NUM_BODY_LINES (LCD_LINES-1) +#define TEXT_VIEWER_LINES NUM_BODY_LINES #define MENU_HEADER_HEIGHT FH #define CURVE_SIDE_WIDTH (LCD_H/2) diff --git a/radio/src/gui/212x64/gui.h b/radio/src/gui/212x64/gui.h index c430a0646..20dc6b09b 100644 --- a/radio/src/gui/212x64/gui.h +++ b/radio/src/gui/212x64/gui.h @@ -32,6 +32,7 @@ #define DEFAULT_SCROLLBAR_X (LCD_W-1) #define NUM_BODY_LINES (LCD_LINES-1) +#define TEXT_VIEWER_LINES NUM_BODY_LINES #define MENU_HEADER_HEIGHT FH #define MODEL_BITMAP_WIDTH 64 diff --git a/radio/src/gui/480x272/gui.h b/radio/src/gui/480x272/gui.h index e17858f22..17618563e 100644 --- a/radio/src/gui/480x272/gui.h +++ b/radio/src/gui/480x272/gui.h @@ -47,6 +47,7 @@ #define FH 20 #define NUM_BODY_LINES (MENU_BODY_HEIGHT / FH) +#define TEXT_VIEWER_LINES ((MENU_FOOTER_TOP-MENU_HEADER_HEIGHT) / FH) #define INVERT_HORZ_MARGIN 2 #define INVERT_VERT_MARGIN 1 diff --git a/radio/src/gui/480x272/view_text.cpp b/radio/src/gui/480x272/view_text.cpp index 24a1779db..e09f62699 100644 --- a/radio/src/gui/480x272/view_text.cpp +++ b/radio/src/gui/480x272/view_text.cpp @@ -42,7 +42,7 @@ bool menuTextView(event_t event) break; case EVT_ROTARY_RIGHT: - if (menuVerticalOffset + NUM_BODY_LINES >= lines_count) + if (menuVerticalOffset + TEXT_VIEWER_LINES >= lines_count) break; else ++menuVerticalOffset; @@ -55,11 +55,11 @@ bool menuTextView(event_t event) break; } - for (int i=0; idrawTextMaxWidth(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + i * FH, reusableBuffer.viewText.lines[i], 0, LCD_W - 2 * MENUS_MARGIN_LEFT); + for (int i = 0; i < TEXT_VIEWER_LINES; i++) { + lcd->drawTextMaxWidth(MENUS_MARGIN_LEFT, MENU_HEADER_HEIGHT + i * FH, reusableBuffer.viewText.lines[i], 0, LCD_W - 2 * MENUS_MARGIN_LEFT); } - drawVerticalScrollbar(LCD_W-5, 50, 195, menuVerticalOffset, lines_count, NUM_BODY_LINES); + drawVerticalScrollbar(LCD_W-5, 50, 195, menuVerticalOffset, lines_count, TEXT_VIEWER_LINES); return true; } diff --git a/radio/src/sdcard.cpp b/radio/src/sdcard.cpp index be89633f3..42bf5491e 100644 --- a/radio/src/sdcard.cpp +++ b/radio/src/sdcard.cpp @@ -412,7 +412,7 @@ bool sdListFiles(const char * path, const char * extension, const uint8_t maxlen constexpr uint32_t TEXT_FILE_MAXSIZE = 2048; -void sdReadTextFile(const char * filename, char lines[NUM_BODY_LINES][LCD_COLS + 1], int & lines_count) +void sdReadTextFile(const char * filename, char lines[TEXT_VIEWER_LINES][LCD_COLS + 1], int & lines_count) { FIL file; int result; @@ -423,17 +423,17 @@ void sdReadTextFile(const char * filename, char lines[NUM_BODY_LINES][LCD_COLS + char escape_chars[4] = {0}; int current_line = 0; - memclear(lines, NUM_BODY_LINES * (LCD_COLS + 1)); + memclear(lines, TEXT_VIEWER_LINES * (LCD_COLS + 1)); result = f_open(&file, filename, FA_OPEN_EXISTING | FA_READ); if (result == FR_OK) { - for (unsigned i = 0; i < TEXT_FILE_MAXSIZE && f_read(&file, &c, 1, &sz) == FR_OK && sz == 1 && (lines_count == 0 || current_line - menuVerticalOffset < NUM_BODY_LINES); i++) { + for (unsigned i = 0; i < TEXT_FILE_MAXSIZE && f_read(&file, &c, 1, &sz) == FR_OK && sz == 1 && (lines_count == 0 || current_line - menuVerticalOffset < TEXT_VIEWER_LINES); i++) { if (c == '\n') { ++current_line; line_length = 0; escape = 0; } - else if (c!='\r' && current_line>=menuVerticalOffset && current_line-menuVerticalOffset=menuVerticalOffset && current_line-menuVerticalOffset Date: Wed, 22 Apr 2020 16:01:15 +0200 Subject: [PATCH 32/33] Update CREDITS.txt --- CREDITS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS.txt b/CREDITS.txt index 7886cfb81..a016b2c53 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1718,3 +1718,4 @@ Tom Van Driel Karl Vetter Johannes Janssen François Blondé +Precision Aero From 8ae2f4f782c2f404fc078aaa0000e5b134f20950 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 22 Apr 2020 19:23:32 +0200 Subject: [PATCH 33/33] Multi channels naming tool (#7538) Mostly-authored-by: Pascal Langer --- .../SCRIPTS/TOOLS/MultiChannelsUpdater.lua | 377 ++++++++++++++++++ .../SCRIPTS/TOOLS/MultiChannelsUpdater.lua | 377 ++++++++++++++++++ .../SCRIPTS/TOOLS/MultiChannelsUpdater.lua | 377 ++++++++++++++++++ radio/src/lua/api_model.cpp | 43 +- radio/src/pulses/multi.cpp | 90 +++-- radio/src/pulses/multi.h | 1 + 6 files changed, 1222 insertions(+), 43 deletions(-) create mode 100644 radio/sdcard/horus/SCRIPTS/TOOLS/MultiChannelsUpdater.lua create mode 100644 radio/sdcard/taranis-x7/SCRIPTS/TOOLS/MultiChannelsUpdater.lua create mode 100644 radio/sdcard/taranis-x9/SCRIPTS/TOOLS/MultiChannelsUpdater.lua diff --git a/radio/sdcard/horus/SCRIPTS/TOOLS/MultiChannelsUpdater.lua b/radio/sdcard/horus/SCRIPTS/TOOLS/MultiChannelsUpdater.lua new file mode 100644 index 000000000..73b667b81 --- /dev/null +++ b/radio/sdcard/horus/SCRIPTS/TOOLS/MultiChannelsUpdater.lua @@ -0,0 +1,377 @@ +local toolName = "TNS|Multi chan namer|TNE" + +---- ######################################################################### +---- # # +---- # Copyright (C) OpenTX # +-----# # +---- # License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html # +---- # # +---- # This program is free software; you can redistribute it and/or modify # +---- # it under the terms of the GNU General Public License version 2 as # +---- # published by the Free Software Foundation. # +---- # # +---- # This program is distributed in the hope that it will be useful # +---- # but WITHOUT ANY WARRANTY; without even the implied warranty of # +---- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +---- # GNU General Public License for more details. # +---- # # +---- ######################################################################### + +local done = 0 +local Protocols = { + {1, 0, "Flysky", "Flysky", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {1, 1, "Flysky", "V9x9", { "Flip", "Light", "Pict", "Video" }, 1 }, + {1, 2, "Flysky", "V6x6", { "Flip", "Light", "Pict", "Video", "HLess", "RTH", "XCAL", "YCAL" }, 1 }, + {1, 3, "Flysky", "V912", { "BtmBtn", "TopBtn" }, 1 }, + {1, 4, "Flysky", "CX20", { "CH5", "CH6", "CH7" }, 0 }, + {28, 0, "Flysky AFHDS2A", "PWM_IBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {28, 1, "Flysky AFHDS2A", "PPM_IBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {28, 2, "Flysky AFHDS2A", "PWM_SBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {28, 3, "Flysky AFHDS2A", "PPM_SBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {53, 0, "Flyzone", "FZ-410", { }, 0 }, + {2, 0, "Hubsan", "H107", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {2, 1, "Hubsan", "H301", { "RTH", "Light", "Stab", "Video" }, 0 }, + {2, 2, "Hubsan", "H501", { "RTH", "Light", "Pict", "Video", "HLess", "GPS_H", "ALT_H", "Flip", "FModes" }, 0 }, + {41, 0, "Bugs", "3-6-8", { "Arm", "Angle", "Flip", "Pict", "Video", "LED" }, 0 }, + {60, 0, "Pelikan", "PRO_V4", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {37, 0, "Corona", "COR_V1", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {37, 1, "Corona", "COR_V2", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {37, 2, "Corona", "FD_V3", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {25, 0, "FrSkyV", "V8", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {3, 0, "FrSkyD", "D8", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {3, 0, "FrSkyD", "D8Cloned", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {67, 0, "FrSkyL", "LR12", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {67, 1, "FrSkyL", "LR12_6CH", { "CH5", "CH6" }, 0 }, + {15, 0, "FrSkyX", "D16 FCC", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {15, 1, "FrSkyX", "D16_8CH FCC", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {15, 2, "FrSkyX", "D16 LBT", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {15, 3, "FrSkyX", "D16_8CH LBT", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {15, 4, "FrSkyX", "D16Cloned", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {64, 0, "FrSkyX2", "D16 FCC", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {64, 1, "FrSkyX2", "D16_8CH FCC", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {64, 2, "FrSkyX2", "D16 LBT", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {64, 3, "FrSkyX2", "D16_8CH LBT", { "CH5", "CH6", "CH7", "CH8" }, 1 }, + {64, 4, "FrSkyX2", "D16Cloned", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {55, 0, "FrSkyRX", "RX", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {55, 1, "FrSkyRX", "CloneTX", { }, 0 }, + {39, 0, "Hitec", "Opt_Fw", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {39, 1, "Hitec", "Opt_Hub", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {39, 2, "Hitec", "Minima", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {57, 0, "HoTT", "Std", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {21, 0, "SFHSS", "Std", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {68, 0, "Skyartec", "Std", { "CH5", "CH6", "CH7" }, 0 }, + {7 , 0, "Devo", "8CH", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {7 , 1, "Devo", "10CH", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10" }, 0 }, + {7 , 2, "Devo", "12CH", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {7 , 3, "Devo", "6CH", { "CH5", "CH6" }, 0 }, + {7 , 4, "Devo", "7CH", { "CH5", "CH6", "CH7" }, 0 }, + {30, 0, "WK2x01", "WK2801", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {30, 1, "WK2x01", "WK2401", { }, 0 }, + {30, 2, "WK2x01", "W6_5_1", { "Gear", "Dis", "Gyro" }, 0 }, + {30, 3, "WK2x01", "W6_6_1", { "Gear", "Col", "Gyro" }, 0 }, + {30, 4, "WK2x01", "W6HEL", { "Gear", "Col", "Gyro" }, 0 }, + {30, 5, "WK2x01", "W6HEL_I", { "Gear", "Col", "Gyro" }, 0 }, + {6 , 0, "DSM", "2_22", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {6 , 1, "DSM", "2_11", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {6 , 2, "DSM", "X_22", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {6 , 3, "DSM", "X_11", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {22, 0, "J6Pro", "Std", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {22, 0, "WFLY", "WFR0xS", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {24, 0, "Assan", "Std", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {14, 0, "Bayang", "Std", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "n-a", "n-a", "AnAux1", "AnAux2" }, 1 }, + {14, 1, "Bayang", "H8S3D", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates" }, 1 }, + {14, 2, "Bayang", "X16_AH", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "TakeOf" }, 1 }, + {14, 3, "Bayang", "IRDRONE", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "TakeOf", "EmStop" }, 1 }, + {14, 4, "Bayang", "DHD_D4", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "TakeOf", "EmStop" }, 1 }, + {59, 0, "BayangRX", "RX", { "AnAux1", "AnAux2", "Flip", "RTH", "Pict", "Video" }, 1 }, + {42, 0, "BugsMini", "Mini", { "Arm", "Angle", "Flip", "Pict", "Video", "LED" }, 0 }, + {42, 1, "BugsMini", "3H", { "Arm", "Angle", "Flip", "Pict", "Video", "LED", "AltHol" }, 0 }, + {34, 0, "Cabell", "V3", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {34, 1, "Cabell", "V3Telem", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {13, 0, "CG023", "Std", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {13, 1, "CG023", "YD829", { "Flip", "n-a", "Pict", "Video", "HLess" }, 1 }, + {12, 0, "CX10", "Green", { "Flip", "Rate" }, 1 }, + {12, 1, "CX10", "Blue", { "Flip", "Rate", "Pict", "Video" }, 1 }, + {12, 2, "CX10", "DM007", { "Flip", "Mode", "Pict", "Video", "HLess" }, 1 }, + {12, 4, "CX10", "JC3015_1", { "Flip", "Mode", "Pict", "Video" }, 1 }, + {12, 5, "CX10", "JC3015_2", { "Flip", "Mode", "LED", "DFlip" }, 1 }, + {12, 6, "CX10", "MK33041", { "Flip", "Mode", "Pict", "Video", "HLess", "RTH" }, 1 }, + {33, 0, "DM022", "Std", { "Flip", "LED", "Cam1", "Cam2", "HLess", "RTH", "RLow" }, 1 }, + {45, 0, "E01X", "E012", { "n-a", "Flip", "n-a", "HLess", "RTH" }, 1 }, + {45, 1, "E01X", "E015", { "Arm", "Flip", "LED", "HLess", "RTH" }, 1 }, + {45, 2, "E01X", "E016H", { "Stop", "Flip", "n-a", "HLess", "RTH" }, 1 }, + {16, 0, "ESKY", "Std", { "Gyro", "Pitch" }, 0 }, + {16, 1, "ESKY", "ET4", { "Gyro", "Pitch" }, 0 }, + {35, 0, "ESKY150", "4CH", { }, 0 }, + {35, 1, "ESKY150", "7CH", { "FMode", "Aux6", "Aux7" }, 0 }, + {20, 0, "FY326", "FY326", { "Flip", "RTH", "HLess", "Expert", "Calib" }, 1 }, + {20, 1, "FY326", "FY319", { "Flip", "RTH", "HLess", "Expert", "Calib" }, 1 }, + {23, 0, "FY326", "FY326", { "Flip", "RTH", "HLess", "Expert" }, 1 }, + {32, 0, "GW008", "FY326", { "Flip" }, 1 }, + {36, 0, "H8_3D", "Std", { "Flip", "Light", "Pict", "Video", "RTH", "FlMode", "Cal1" }, 1 }, + {36, 1, "H8_3D", "H20H", { "Flip", "Light", "Pict", "Video", "Opt1", "Opt2", "Cal1", "Cal2", "Gimbal" }, 1 }, + {36, 2, "H8_3D", "H20", { "Flip", "Light", "Pict", "Video", "Opt1", "Opt2", "Cal1", "Cal2", "Gimbal" }, 1 }, + {36, 3, "H8_3D", "H30", { "Flip", "Light", "Pict", "Video", "Opt1", "Opt2", "Cal1", "Cal2", "Gimbal" }, 1 }, + {4 , 0, "Hisky", "Std", { "Gear", "Pitch", "Gyro", "CH8" }, 0 }, + {9 , 0, "KN", "WLToys", { "DRate", "THold", "IdleUp", "Gyro", "Ttrim", "Atrim", "Etrim" }, 0 }, + {9 , 1, "KN", "Feilun", { "DRate", "THold", "IdleUp", "Gyro", "Ttrim", "Atrim", "Etrim" }, 0 }, + {26, 0, "Hontai", "Std", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {26, 1, "Hontai", "JJRCX1", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {26, 2, "Hontai", "X5C1", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {26, 3, "Hontai", "FQ777_951", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {18, 0, "MJXQ", "WHL08", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 1, "MJXQ", "X600", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 2, "MJXQ", "X800", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 3, "MJXQ", "H26D", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 4, "MJXQ", "E010", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 5, "MJXQ", "H26WH", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 6, "MJXQ", "Phoenix", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {17, 0, "MT99XX", "Std", { "Flip", "LED", "Pict", "Video", "HLess" }, 1 }, + {17, 1, "MT99XX", "H7", { "Flip", "LED", "Pict", "Video", "HLess" }, 1 }, + {17, 2, "MT99XX", "YZ", { "Flip", "LED", "Pict", "Video", "HLess" }, 1 }, + {17, 3, "MT99XX", "LS", { "Flip", "Invert", "Pict", "Video", "HLess" }, 1 }, + {17, 4, "MT99XX", "FY805", { "Flip", "n-a", "n-a", "n-a", "HLess" }, 1 }, + {44, 0, "NCC1701", "Std", { "Warp" }, 1 }, + {51, 0, "Potensic", "A20", { "TakLan", "Emerg", "Mode", "HLess" }, 1 }, + {56, 0, "Propel", "74-Z", { "LEDs", "RollCW", "RolCCW", "Fire", "Weapon", "Calib", "AltHol", "TakeOf", "Land", "Train" }, 1 }, + {29, 0, "Q2x2", "Q222", { "Flip", "LED", "Mod2", "Mod1", "HLess", "RTH", "XCal", "YCal" }, 1 }, + {29, 1, "Q2x2", "Q242", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "XCal", "YCal" }, 1 }, + {29, 2, "Q2x2", "Q282", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "XCal", "YCal" }, 1 }, + {31, 0, "Q303", "Q303", { "AltHol", "Flip", "Pict", "Video", "HLess", "RTH", "Gimbal" }, 1 }, + {31, 1, "Q303", "C35", { "Arm", "VTX", "Pict", "Video", "n-a", "RTH", "Gimbal" }, 1 }, + {31, 2, "Q303", "CX10D", { "Arm", "Flip" }, 1 }, + {31, 3, "Q303", "CX10WD", { "Arm", "Flip" }, 1 }, + {50, 0, "Redpine", "Fast", { "sCH5", "sCH6", "sCH7", "sCH8", "sCH9", "sCH10", "sCH11", "sCH12", "sCH13", "sCH14", "sCH15", "sCH16" }, 0 }, + {50, 1, "Redpine", "Slow", { "sCH5", "sCH6", "sCH7", "sCH8", "sCH9", "sCH10", "sCH11", "sCH12", "sCH13", "sCH14", "sCH15", "sCH16" }, 0 }, + {11, 0, "SLT", "V1", { "Gear", "Pitch" }, 0 }, + {11, 1, "SLT", "V2", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {11, 2, "SLT", "Q100", { "Rates", "n-a", "CH7", "CH8", "Mode", "Flip", "n-a", "n-a", "Calib" }, 0 }, + {11, 3, "SLT", "Q200", { "Rates", "n-a", "CH7", "CH8", "Mode", "VidOn", "VidOff", "Calib" }, 0 }, + {11, 4, "SLT", "MR100", { "Rates", "n-a", "CH7", "CH8", "Mode", "Flip", "Video", "Pict" }, 0 }, + {10, 0, "Symax", "Std", { "Flip", "Rates", "Pict", "Video", "HLess" }, 1 }, + {10, 1, "Symax", "X5C", { "Flip", "Rates", "Pict", "Video", "HLess" }, 1 }, + {5 , 0, "V2x2", "Std", { "Flip", "Light", "Pict", "Video", "HLess", "CalX", "CalY" }, 1 }, + {5 , 1, "V2x2", "JXD506", { "Flip", "Light", "Pict", "Video", "HLess", "StaSto", "Emerg", "Cam_UD" }, 1 }, + {61, 0, "Tiger", "Std", { "Flip", "Light" }, 1 }, + {46, 0, "V911s", "Std", { "Calib" }, 1 }, + {46, 1, "E119", "Std", { "Calib" }, 1 }, + {62, 0, "XK", "X450", { "FMode", "TakeOf", "Emerg", "3D_6G", "Pict", "Video" }, 1 }, + {62, 1, "XK", "X420", { "FMode", "TakeOf", "Emerg", "3D_6G", "Pict", "Video" }, 1 }, + {8 , 0, "YD717", "Std", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 1, "YD717", "SkyWlkr", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 2, "YD717", "Simax4", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 3, "YD717", "XinXun", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 4, "YD717", "NiHui", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {65,0, "FrSkyR9", "R9_915", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {65,1, "FrSkyR9", "R9_868", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {65,2, "FrSkyR9", "R9_915_8CH", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {65,3, "FrSkyR9", "R9_968_8CH", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + +-- Need first 4 channels changed... + {19, 0, "Shenqi", "Cycle", { }, 1 }, + {4 , 1, "Hisky", "HK310", { "Aux" }, 0 }, + {43, 0, "Traxxas", "6519", { }, 0 }, + {52, 0, "ZSX", "280", { "Light" }, 1 }, + {48, 0, "V761", "Std", { "Gyro" }, 1 }, + {49, 0, "KF606", "Std", { "Trim" }, 1 }, + {47, 0, "GD00x", "V1", { "Trim", "LED", "Rate" }, 1 }, + {47, 1, "GD00x", "V2", { "Trim", "LED", "Rate" }, 1 }, + {58, 0, "FX816", "P38", { },1 } +} + +local function drawScreenTitle(title) + if LCD_W == 480 then + lcd.drawFilledRectangle(0, 0, LCD_W, 30, TITLE_BGCOLOR) + lcd.drawText(1, 5, title, MENU_TITLE_COLOR) + else + lcd.drawScreenTitle(title, 0, 0) + end +end + +function bitand(a, b) + local result = 0 + local bitval = 1 + while a > 0 and b > 0 do + if a % 2 == 1 and b % 2 == 1 then -- test the rightmost bits + result = result + bitval -- set the current bit + end + bitval = bitval * 2 -- shift left + a = math.floor(a/2) -- shift right + b = math.floor(b/2) + end + return result +end + +local function Multi_Draw_LCD() + local line = 0 + local module_conf = {} + local module_pos = "Internal" + + lcd.clear() + drawScreenTitle("Multi channels namer") + module_conf = model.getModule(0) + if module_conf["Type"] ~= 6 then + module_pos = "External" + module_conf = model.getModule(1) + if module_conf["Type"] ~= 6 then + if LCD_W == 480 then + lcd.drawText(10,50,"No Multi module configured...", BLINK) + else + --Draw on LCD_W=128 + lcd.drawText(2,17,"No Multi module configured...",SMLSIZE) + end + return + end + end + + local protocol = module_conf["protocol"] + local sub_protocol = module_conf["subProtocol"] + + --Display settings + local lcd_opt + if LCD_W == 480 then + x_pos = 10 + y_pos = 32 + y_inc = 20 + else + x_pos = 0 + y_pos = 9 + y_inc = 8 + lcd_opt = SMLSIZE + end + + --Exceptions on first 4 channels... + local stick_names = { "Rud", "Ele", "Thr", "Ail" } + if ( protocol == 4 and sub_protocol ==1 ) or protocol == 19 or protocol == 52 then -- Hisky/HK310, Shenqi, ZSX + stick_names[2] = "n-a" + stick_names[4] = "n-a" + elseif protocol == 43 then -- Traxxas + stick_names[2] = "Aux4" + stick_names[4] = "Aux3" + elseif protocol == 48 then -- V761 + stick_names[4] = "n-a" + elseif protocol == 47 or protocol == 49 or protocol == 58 then -- GD00x, KF606, FX816 + stick_names[1] = "n-a" + stick_names[2] = "n-a" + end + + --Determine fist 4 channels order + local channel_names={} + local ch_order=module_conf["channelsOrder"] + if (ch_order == -1) then + channel_names[1] = stick_names[defaultChannel(0)+1] + channel_names[2] = stick_names[defaultChannel(1)+1] + channel_names[3] = stick_names[defaultChannel(2)+1] + channel_names[4] = stick_names[defaultChannel(3)+1] + else + channel_names[bitand(ch_order,3)+1] = stick_names[4] + ch_order = math.floor(ch_order/4) + channel_names[bitand(ch_order,3)+1] = stick_names[2] + ch_order = math.floor(ch_order/4) + channel_names[bitand(ch_order,3)+1] = stick_names[3] + ch_order = math.floor(ch_order/4) + channel_names[bitand(ch_order,3)+1] = stick_names[1] + end + + --Specific channels for protocol + local protocol_name, sub_protocol_name, bind_ch + for i,v in ipairs(Protocols) do + if v[1] == protocol and v[2] == sub_protocol then + protocol_name = v[3] + sub_protocol_name = v[4] + for j,w in ipairs(v[5]) do + channel_names[4+j]=w; + end + bind_ch = v[6] + end + end + + lcd.drawText(x_pos, y_pos+y_inc*line,module_pos .. " Multi detected.", lcd_opt) + line = line + 1 + if (ch_order == -1) then + lcd.drawText(x_pos, y_pos+y_inc*line,"Channels order can't be read from Multi...", lcd_opt) + line = line + 1 + end + if protocol_name == nil or sub_protocol_name == nil then + lcd.drawText(x_pos, y_pos+y_inc*line,"Unknown protocol/sub_protocol...", lcd_opt) + else if LCD_W > 128 then + lcd.drawText(x_pos, y_pos+y_inc*line,"Protocol: " .. protocol_name .. " / SubProtocol: " .. sub_protocol_name, lcd_opt) + line = line + 1 + else + lcd.drawText(x_pos, y_pos+y_inc*line,"Protocol: " .. protocol_name, lcd_opt) + line = line + 1 + lcd.drawText(x_pos, y_pos+y_inc*line,"SubProtocol: " .. sub_protocol_name, lcd_opt) + line = line + 1 + end + text1="" + text2="" + for i,v in ipairs(channel_names) do + if i<=8 then + if i==1 then + text1 = v + else + text1=text1 .. "," .. v + end + else + if i==9 then + text2 = v + else + text2=text2 .. "," .. v + end + end + end + if LCD_W > 128 then + lcd.drawText(x_pos, y_pos+y_inc*line,"Channels: " .. text1, lcd_opt) + line = line + 1 + if text2 ~= "" then + lcd.drawText(x_pos*9, y_pos+y_inc*line,text2, lcd_opt) + line = line + 1 + end + end + lcd.drawText(x_pos, y_pos+y_inc*line,"Setting channel names.", lcd_opt) + line = line + 1 + local output, nbr + for i,v in ipairs(channel_names) do + output = model.getOutput(i-1) + output["name"] = v + model.setOutput(i-1,output) + nbr = i + end + for i = nbr, 15 do + output = model.getOutput(i) + output["name"] = "n-a" + model.setOutput(i,output) + end + if bind_ch == 1 then + output = model.getOutput(15) + output["name"] = "BindCH" + model.setOutput(15,output) + end + lcd.drawText(x_pos, y_pos+y_inc*line,"Done!", lcd_opt) + line = line + 1 + done = 1 + end +end + +-- Init +local function Multi_Init() +end + +-- Main +local function Multi_Run(event) + if event == nil then + error("Cannot be run as a model script!") + return 2 + else + if done == 0 then + Multi_Draw_LCD() + else + if event == EVT_VIRTUAL_ENTER or event == EVT_VIRTUAL_EXIT then + return 2 + end + end + return 0 + end +end + +return { init=Multi_Init, run=Multi_Run } diff --git a/radio/sdcard/taranis-x7/SCRIPTS/TOOLS/MultiChannelsUpdater.lua b/radio/sdcard/taranis-x7/SCRIPTS/TOOLS/MultiChannelsUpdater.lua new file mode 100644 index 000000000..675b25e15 --- /dev/null +++ b/radio/sdcard/taranis-x7/SCRIPTS/TOOLS/MultiChannelsUpdater.lua @@ -0,0 +1,377 @@ +local toolName = "TNS|Multi chan namer|TNE" + +---- ######################################################################### +---- # # +---- # Copyright (C) OpenTX # +-----# # +---- # License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html # +---- # # +---- # This program is free software; you can redistribute it and/or modify # +---- # it under the terms of the GNU General Public License version 2 as # +---- # published by the Free Software Foundation. # +---- # # +---- # This program is distributed in the hope that it will be useful # +---- # but WITHOUT ANY WARRANTY; without even the implied warranty of # +---- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +---- # GNU General Public License for more details. # +---- # # +---- ######################################################################### + +local done = 0 +local Protocols = { + {1, 0, "Flysky", "Flysky", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {1, 1, "Flysky", "V9x9", { "Flip", "Light", "Pict", "Video" }, 1 }, + {1, 2, "Flysky", "V6x6", { "Flip", "Light", "Pict", "Video", "HLess", "RTH", "XCAL", "YCAL" }, 1 }, + {1, 3, "Flysky", "V912", { "BtmBtn", "TopBtn" }, 1 }, + {1, 4, "Flysky", "CX20", { "CH5", "CH6", "CH7" }, 0 }, + {28, 0, "Flysky AFHDS2A", "PWM_IBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {28, 1, "Flysky AFHDS2A", "PPM_IBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {28, 2, "Flysky AFHDS2A", "PWM_SBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {28, 3, "Flysky AFHDS2A", "PPM_SBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {53, 0, "Flyzone", "FZ-410", { }, 0 }, + {2, 0, "Hubsan", "H107", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {2, 1, "Hubsan", "H301", { "RTH", "Light", "Stab", "Video" }, 0 }, + {2, 2, "Hubsan", "H501", { "RTH", "Light", "Pict", "Video", "HLess", "GPS_H", "ALT_H", "Flip", "FModes" }, 0 }, + {41, 0, "Bugs", "3-6-8", { "Arm", "Angle", "Flip", "Pict", "Video", "LED" }, 0 }, + {60, 0, "Pelikan", "PRO_V4", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {37, 0, "Corona", "COR_V1", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {37, 1, "Corona", "COR_V2", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {37, 2, "Corona", "FD_V3", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {25, 0, "FrSkyV", "V8", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {3, 0, "FrSkyD", "D8", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {3, 0, "FrSkyD", "D8Cloned", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {67, 0, "FrSkyL", "LR12", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {67, 1, "FrSkyL", "LR12_6CH", { "CH5", "CH6" }, 0 }, + {15, 0, "FrSkyX", "D16 FCC", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {15, 1, "FrSkyX", "D16_8CH FCC", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {15, 2, "FrSkyX", "D16 LBT", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {15, 3, "FrSkyX", "D16_8CH LBT", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {15, 4, "FrSkyX", "D16Cloned", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {64, 0, "FrSkyX2", "D16 FCC", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {64, 1, "FrSkyX2", "D16_8CH FCC", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {64, 2, "FrSkyX2", "D16 LBT", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {64, 3, "FrSkyX2", "D16_8CH LBT", { "CH5", "CH6", "CH7", "CH8" }, 1 }, + {64, 4, "FrSkyX2", "D16Cloned", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {55, 0, "FrSkyRX", "RX", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {55, 1, "FrSkyRX", "CloneTX", { }, 0 }, + {39, 0, "Hitec", "Opt_Fw", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {39, 1, "Hitec", "Opt_Hub", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {39, 2, "Hitec", "Minima", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {57, 0, "HoTT", "Std", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {21, 0, "SFHSS", "Std", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {68, 0, "Skyartec", "Std", { "CH5", "CH6", "CH7" }, 0 }, + {7 , 0, "Devo", "8CH", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {7 , 1, "Devo", "10CH", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10" }, 0 }, + {7 , 2, "Devo", "12CH", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {7 , 3, "Devo", "6CH", { "CH5", "CH6" }, 0 }, + {7 , 4, "Devo", "7CH", { "CH5", "CH6", "CH7" }, 0 }, + {30, 0, "WK2x01", "WK2801", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {30, 1, "WK2x01", "WK2401", { }, 0 }, + {30, 2, "WK2x01", "W6_5_1", { "Gear", "Dis", "Gyro" }, 0 }, + {30, 3, "WK2x01", "W6_6_1", { "Gear", "Col", "Gyro" }, 0 }, + {30, 4, "WK2x01", "W6HEL", { "Gear", "Col", "Gyro" }, 0 }, + {30, 5, "WK2x01", "W6HEL_I", { "Gear", "Col", "Gyro" }, 0 }, + {6 , 0, "DSM", "2_22", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {6 , 1, "DSM", "2_11", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {6 , 2, "DSM", "X_22", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {6 , 3, "DSM", "X_11", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {22, 0, "J6Pro", "Std", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {22, 0, "WFLY", "WFR0xS", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {24, 0, "Assan", "Std", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {14, 0, "Bayang", "Std", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "n-a", "n-a", "AnAux1", "AnAux2" }, 1 }, + {14, 1, "Bayang", "H8S3D", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates" }, 1 }, + {14, 2, "Bayang", "X16_AH", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "TakeOf" }, 1 }, + {14, 3, "Bayang", "IRDRONE", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "TakeOf", "EmStop" }, 1 }, + {14, 4, "Bayang", "DHD_D4", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "TakeOf", "EmStop" }, 1 }, + {59, 0, "BayangRX", "RX", { "AnAux1", "AnAux2", "Flip", "RTH", "Pict", "Video" }, 1 }, + {42, 0, "BugsMini", "Mini", { "Arm", "Angle", "Flip", "Pict", "Video", "LED" }, 0 }, + {42, 1, "BugsMini", "3H", { "Arm", "Angle", "Flip", "Pict", "Video", "LED", "AltHol" }, 0 }, + {34, 0, "Cabell", "V3", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {34, 1, "Cabell", "V3Telem", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {13, 0, "CG023", "Std", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {13, 1, "CG023", "YD829", { "Flip", "n-a", "Pict", "Video", "HLess" }, 1 }, + {12, 0, "CX10", "Green", { "Flip", "Rate" }, 1 }, + {12, 1, "CX10", "Blue", { "Flip", "Rate", "Pict", "Video" }, 1 }, + {12, 2, "CX10", "DM007", { "Flip", "Mode", "Pict", "Video", "HLess" }, 1 }, + {12, 4, "CX10", "JC3015_1", { "Flip", "Mode", "Pict", "Video" }, 1 }, + {12, 5, "CX10", "JC3015_2", { "Flip", "Mode", "LED", "DFlip" }, 1 }, + {12, 6, "CX10", "MK33041", { "Flip", "Mode", "Pict", "Video", "HLess", "RTH" }, 1 }, + {33, 0, "DM022", "Std", { "Flip", "LED", "Cam1", "Cam2", "HLess", "RTH", "RLow" }, 1 }, + {45, 0, "E01X", "E012", { "n-a", "Flip", "n-a", "HLess", "RTH" }, 1 }, + {45, 1, "E01X", "E015", { "Arm", "Flip", "LED", "HLess", "RTH" }, 1 }, + {45, 2, "E01X", "E016H", { "Stop", "Flip", "n-a", "HLess", "RTH" }, 1 }, + {16, 0, "ESKY", "Std", { "Gyro", "Pitch" }, 0 }, + {16, 1, "ESKY", "ET4", { "Gyro", "Pitch" }, 0 }, + {35, 0, "ESKY150", "4CH", { }, 0 }, + {35, 1, "ESKY150", "7CH", { "FMode", "Aux6", "Aux7" }, 0 }, + {20, 0, "FY326", "FY326", { "Flip", "RTH", "HLess", "Expert", "Calib" }, 1 }, + {20, 1, "FY326", "FY319", { "Flip", "RTH", "HLess", "Expert", "Calib" }, 1 }, + {23, 0, "FY326", "FY326", { "Flip", "RTH", "HLess", "Expert" }, 1 }, + {32, 0, "GW008", "FY326", { "Flip" }, 1 }, + {36, 0, "H8_3D", "Std", { "Flip", "Light", "Pict", "Video", "RTH", "FlMode", "Cal1" }, 1 }, + {36, 1, "H8_3D", "H20H", { "Flip", "Light", "Pict", "Video", "Opt1", "Opt2", "Cal1", "Cal2", "Gimbal" }, 1 }, + {36, 2, "H8_3D", "H20", { "Flip", "Light", "Pict", "Video", "Opt1", "Opt2", "Cal1", "Cal2", "Gimbal" }, 1 }, + {36, 3, "H8_3D", "H30", { "Flip", "Light", "Pict", "Video", "Opt1", "Opt2", "Cal1", "Cal2", "Gimbal" }, 1 }, + {4 , 0, "Hisky", "Std", { "Gear", "Pitch", "Gyro", "CH8" }, 0 }, + {9 , 0, "KN", "WLToys", { "DRate", "THold", "IdleUp", "Gyro", "Ttrim", "Atrim", "Etrim" }, 0 }, + {9 , 1, "KN", "Feilun", { "DRate", "THold", "IdleUp", "Gyro", "Ttrim", "Atrim", "Etrim" }, 0 }, + {26, 0, "Hontai", "Std", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {26, 1, "Hontai", "JJRCX1", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {26, 2, "Hontai", "X5C1", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {26, 3, "Hontai", "FQ777_951", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {18, 0, "MJXQ", "WHL08", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 1, "MJXQ", "X600", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 2, "MJXQ", "X800", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 3, "MJXQ", "H26D", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 4, "MJXQ", "E010", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 5, "MJXQ", "H26WH", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 6, "MJXQ", "Phoenix", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {17, 0, "MT99XX", "Std", { "Flip", "LED", "Pict", "Video", "HLess" }, 1 }, + {17, 1, "MT99XX", "H7", { "Flip", "LED", "Pict", "Video", "HLess" }, 1 }, + {17, 2, "MT99XX", "YZ", { "Flip", "LED", "Pict", "Video", "HLess" }, 1 }, + {17, 3, "MT99XX", "LS", { "Flip", "Invert", "Pict", "Video", "HLess" }, 1 }, + {17, 4, "MT99XX", "FY805", { "Flip", "n-a", "n-a", "n-a", "HLess" }, 1 }, + {44, 0, "NCC1701", "Std", { "Warp" }, 1 }, + {51, 0, "Potensic", "A20", { "TakLan", "Emerg", "Mode", "HLess" }, 1 }, + {56, 0, "Propel", "74-Z", { "LEDs", "RollCW", "RolCCW", "Fire", "Weapon", "Calib", "AltHol", "TakeOf", "Land", "Train" }, 1 }, + {29, 0, "Q2x2", "Q222", { "Flip", "LED", "Mod2", "Mod1", "HLess", "RTH", "XCal", "YCal" }, 1 }, + {29, 1, "Q2x2", "Q242", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "XCal", "YCal" }, 1 }, + {29, 2, "Q2x2", "Q282", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "XCal", "YCal" }, 1 }, + {31, 0, "Q303", "Q303", { "AltHol", "Flip", "Pict", "Video", "HLess", "RTH", "Gimbal" }, 1 }, + {31, 1, "Q303", "C35", { "Arm", "VTX", "Pict", "Video", "n-a", "RTH", "Gimbal" }, 1 }, + {31, 2, "Q303", "CX10D", { "Arm", "Flip" }, 1 }, + {31, 3, "Q303", "CX10WD", { "Arm", "Flip" }, 1 }, + {50, 0, "Redpine", "Fast", { "sCH5", "sCH6", "sCH7", "sCH8", "sCH9", "sCH10", "sCH11", "sCH12", "sCH13", "sCH14", "sCH15", "sCH16" }, 0 }, + {50, 1, "Redpine", "Slow", { "sCH5", "sCH6", "sCH7", "sCH8", "sCH9", "sCH10", "sCH11", "sCH12", "sCH13", "sCH14", "sCH15", "sCH16" }, 0 }, + {11, 0, "SLT", "V1", { "Gear", "Pitch" }, 0 }, + {11, 1, "SLT", "V2", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {11, 2, "SLT", "Q100", { "Rates", "n-a", "CH7", "CH8", "Mode", "Flip", "n-a", "n-a", "Calib" }, 0 }, + {11, 3, "SLT", "Q200", { "Rates", "n-a", "CH7", "CH8", "Mode", "VidOn", "VidOff", "Calib" }, 0 }, + {11, 4, "SLT", "MR100", { "Rates", "n-a", "CH7", "CH8", "Mode", "Flip", "Video", "Pict" }, 0 }, + {10, 0, "Symax", "Std", { "Flip", "Rates", "Pict", "Video", "HLess" }, 1 }, + {10, 1, "Symax", "X5C", { "Flip", "Rates", "Pict", "Video", "HLess" }, 1 }, + {5 , 0, "V2x2", "Std", { "Flip", "Light", "Pict", "Video", "HLess", "CalX", "CalY" }, 1 }, + {5 , 1, "V2x2", "JXD506", { "Flip", "Light", "Pict", "Video", "HLess", "StaSto", "Emerg", "Cam_UD" }, 1 }, + {61, 0, "Tiger", "Std", { "Flip", "Light" }, 1 }, + {46, 0, "V911s", "Std", { "Calib" }, 1 }, + {46, 1, "E119", "Std", { "Calib" }, 1 }, + {62, 0, "XK", "X450", { "FMode", "TakeOf", "Emerg", "3D_6G", "Pict", "Video" }, 1 }, + {62, 1, "XK", "X420", { "FMode", "TakeOf", "Emerg", "3D_6G", "Pict", "Video" }, 1 }, + {8 , 0, "YD717", "Std", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 1, "YD717", "SkyWlkr", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 2, "YD717", "Simax4", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 3, "YD717", "XinXun", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 4, "YD717", "NiHui", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {65,0, "FrSkyR9", "R9_915", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {65,1, "FrSkyR9", "R9_868", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {65,2, "FrSkyR9", "R9_915_8CH", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {65,3, "FrSkyR9", "R9_968_8CH", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + +-- Need first 4 channels changed... + {19, 0, "Shenqi", "Cycle", { }, 1 }, + {4 , 1, "Hisky", "HK310", { "Aux" }, 0 }, + {43, 0, "Traxxas", "6519", { }, 0 }, + {52, 0, "ZSX", "280", { "Light" }, 1 }, + {48, 0, "V761", "Std", { "Gyro" }, 1 }, + {49, 0, "KF606", "Std", { "Trim" }, 1 }, + {47, 0, "GD00x", "V1", { "Trim", "LED", "Rate" }, 1 }, + {47, 1, "GD00x", "V2", { "Trim", "LED", "Rate" }, 1 }, + {58, 0, "FX816", "P38", { },1 } +} + +local function drawScreenTitle(title) + if LCD_W == 480 then + lcd.drawFilledRectangle(0, 0, LCD_W, 30, TITLE_BGCOLOR) + lcd.drawText(1, 5, title, MENU_TITLE_COLOR) + else + lcd.drawScreenTitle(title, 0, 0) + end +end + +function bitand(a, b) + local result = 0 + local bitval = 1 + while a > 0 and b > 0 do + if a % 2 == 1 and b % 2 == 1 then -- test the rightmost bits + result = result + bitval -- set the current bit + end + bitval = bitval * 2 -- shift left + a = math.floor(a/2) -- shift right + b = math.floor(b/2) + end + return result +end + +local function Multi_Draw_LCD() + local line = 0 + local module_conf = {} + local module_pos = "Internal" + + lcd.clear() + drawScreenTitle("Multi channels namer") + module_conf = model.getModule(0) + if module_conf["Type"] ~= 6 then + module_pos = "External" + module_conf = model.getModule(1) + if module_conf["Type"] ~= 6 then + if LCD_W == 480 then + lcd.drawText(10,50,"No Multi module configured...", BLINK) + else + --Draw on LCD_W=128 + lcd.drawText(2,17,"No Multi module configured...",SMLSIZE) + end + return + end + end + + local protocol = module_conf["protocol"] + local sub_protocol = module_conf["subProtocol"] + + --Display settings + local lcd_opt + if LCD_W == 480 then + x_pos = 10 + y_pos = 32 + y_inc = 20 + else + x_pos = 0 + y_pos = 9 + y_inc = 8 + lcd_opt = SMLSIZE + end + + --Exceptions on first 4 channels... + local stick_names = { "Rud", "Ele", "Thr", "Ail" } + if ( protocol == 4 and sub_protocol ==1 ) or protocol == 19 or protocol == 52 then -- Hisky/HK310, Shenqi, ZSX + stick_names[2] = "n-a" + stick_names[4] = "n-a" + elseif protocol == 43 then -- Traxxas + stick_names[2] = "Aux4" + stick_names[4] = "Aux3" + elseif protocol == 48 then -- V761 + stick_names[4] = "n-a" + elseif protocol == 47 or protocol == 49 or protocol == 58 then -- GD00x, KF606, FX816 + stick_names[1] = "n-a" + stick_names[2] = "n-a" + end + + --Determine fist 4 channels order + local channel_names={} + local ch_order=module_conf["channelsOrder"] + if (ch_order == -1) then + channel_names[1] = stick_names[defaultChannel(0)+1] + channel_names[2] = stick_names[defaultChannel(1)+1] + channel_names[3] = stick_names[defaultChannel(2)+1] + channel_names[4] = stick_names[defaultChannel(3)+1] + else + channel_names[bitand(ch_order,3)+1] = stick_names[4] + ch_order = math.floor(ch_order/4) + channel_names[bitand(ch_order,3)+1] = stick_names[2] + ch_order = math.floor(ch_order/4) + channel_names[bitand(ch_order,3)+1] = stick_names[3] + ch_order = math.floor(ch_order/4) + channel_names[bitand(ch_order,3)+1] = stick_names[1] + end + + --Specific channels for protocol + local protocol_name, sub_protocol_name, bind_ch + for i,v in ipairs(Protocols) do + if v[1] == protocol and v[2] == sub_protocol then + protocol_name = v[3] + sub_protocol_name = v[4] + for j,w in ipairs(v[5]) do + channel_names[4+j]=w; + end + bind_ch = v[6] + end + end + + lcd.drawText(x_pos, y_pos+y_inc*line,module_pos .. " Multi detected.",lcd_opt) + line = line + 1 + if (ch_order == -1) then + lcd.drawText(x_pos, y_pos+y_inc*line,"Channels order can't be read from Multi...",lcd_opt) + line = line + 1 + end + if protocol_name == nil or sub_protocol_name == nil then + lcd.drawText(x_pos, y_pos+y_inc*line,"Unknown protocol/sub_protocol...",lcd_opt) + else if LCD_W > 128 then + lcd.drawText(x_pos, y_pos+y_inc*line,"Protocol: " .. protocol_name .. " / SubProtocol: " .. sub_protocol_name,lcd_opt) + line = line + 1 + else + lcd.drawText(x_pos, y_pos+y_inc*line,"Protocol: " .. protocol_name, lcd_opt) + line = line + 1 + lcd.drawText(x_pos, y_pos+y_inc*line,"SubProtocol: " .. sub_protocol_name, lcd_opt) + line = line + 1 + end + text1="" + text2="" + for i,v in ipairs(channel_names) do + if i<=8 then + if i==1 then + text1 = v + else + text1=text1 .. "," .. v + end + else + if i==9 then + text2 = v + else + text2=text2 .. "," .. v + end + end + end + if LCD_W > 128 then + lcd.drawText(x_pos, y_pos+y_inc*line,"Channels: " .. text1,lcd_opt) + line = line + 1 + if text2 ~= "" then + lcd.drawText(x_pos*9, y_pos+y_inc*line,text2,lcd_opt) + line = line + 1 + end + end + lcd.drawText(x_pos, y_pos+y_inc*line,"Setting channel names.",lcd_opt) + line = line + 1 + local output, nbr + for i,v in ipairs(channel_names) do + output = model.getOutput(i-1) + output["name"] = v + model.setOutput(i-1,output) + nbr = i + end + for i = nbr, 15 do + output = model.getOutput(i) + output["name"] = "n-a" + model.setOutput(i,output) + end + if bind_ch == 1 then + output = model.getOutput(15) + output["name"] = "BindCH" + model.setOutput(15,output) + end + lcd.drawText(x_pos, y_pos+y_inc*line,"Done!",lcd_opt) + line = line + 1 + done = 1 + end +end + +-- Init +local function Multi_Init() +end + +-- Main +local function Multi_Run(event) + if event == nil then + error("Cannot be run as a model script!") + return 2 + else + if done == 0 then + Multi_Draw_LCD() + else + if event == EVT_VIRTUAL_ENTER or event == EVT_VIRTUAL_EXIT then + return 2 + end + end + return 0 + end +end + +return { init=Multi_Init, run=Multi_Run } diff --git a/radio/sdcard/taranis-x9/SCRIPTS/TOOLS/MultiChannelsUpdater.lua b/radio/sdcard/taranis-x9/SCRIPTS/TOOLS/MultiChannelsUpdater.lua new file mode 100644 index 000000000..73b667b81 --- /dev/null +++ b/radio/sdcard/taranis-x9/SCRIPTS/TOOLS/MultiChannelsUpdater.lua @@ -0,0 +1,377 @@ +local toolName = "TNS|Multi chan namer|TNE" + +---- ######################################################################### +---- # # +---- # Copyright (C) OpenTX # +-----# # +---- # License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html # +---- # # +---- # This program is free software; you can redistribute it and/or modify # +---- # it under the terms of the GNU General Public License version 2 as # +---- # published by the Free Software Foundation. # +---- # # +---- # This program is distributed in the hope that it will be useful # +---- # but WITHOUT ANY WARRANTY; without even the implied warranty of # +---- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +---- # GNU General Public License for more details. # +---- # # +---- ######################################################################### + +local done = 0 +local Protocols = { + {1, 0, "Flysky", "Flysky", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {1, 1, "Flysky", "V9x9", { "Flip", "Light", "Pict", "Video" }, 1 }, + {1, 2, "Flysky", "V6x6", { "Flip", "Light", "Pict", "Video", "HLess", "RTH", "XCAL", "YCAL" }, 1 }, + {1, 3, "Flysky", "V912", { "BtmBtn", "TopBtn" }, 1 }, + {1, 4, "Flysky", "CX20", { "CH5", "CH6", "CH7" }, 0 }, + {28, 0, "Flysky AFHDS2A", "PWM_IBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {28, 1, "Flysky AFHDS2A", "PPM_IBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {28, 2, "Flysky AFHDS2A", "PWM_SBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {28, 3, "Flysky AFHDS2A", "PPM_SBUS", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14" }, 0 }, + {53, 0, "Flyzone", "FZ-410", { }, 0 }, + {2, 0, "Hubsan", "H107", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {2, 1, "Hubsan", "H301", { "RTH", "Light", "Stab", "Video" }, 0 }, + {2, 2, "Hubsan", "H501", { "RTH", "Light", "Pict", "Video", "HLess", "GPS_H", "ALT_H", "Flip", "FModes" }, 0 }, + {41, 0, "Bugs", "3-6-8", { "Arm", "Angle", "Flip", "Pict", "Video", "LED" }, 0 }, + {60, 0, "Pelikan", "PRO_V4", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {37, 0, "Corona", "COR_V1", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {37, 1, "Corona", "COR_V2", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {37, 2, "Corona", "FD_V3", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {25, 0, "FrSkyV", "V8", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {3, 0, "FrSkyD", "D8", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {3, 0, "FrSkyD", "D8Cloned", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {67, 0, "FrSkyL", "LR12", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {67, 1, "FrSkyL", "LR12_6CH", { "CH5", "CH6" }, 0 }, + {15, 0, "FrSkyX", "D16 FCC", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {15, 1, "FrSkyX", "D16_8CH FCC", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {15, 2, "FrSkyX", "D16 LBT", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {15, 3, "FrSkyX", "D16_8CH LBT", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {15, 4, "FrSkyX", "D16Cloned", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {64, 0, "FrSkyX2", "D16 FCC", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {64, 1, "FrSkyX2", "D16_8CH FCC", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {64, 2, "FrSkyX2", "D16 LBT", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {64, 3, "FrSkyX2", "D16_8CH LBT", { "CH5", "CH6", "CH7", "CH8" }, 1 }, + {64, 4, "FrSkyX2", "D16Cloned", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {55, 0, "FrSkyRX", "RX", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {55, 1, "FrSkyRX", "CloneTX", { }, 0 }, + {39, 0, "Hitec", "Opt_Fw", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {39, 1, "Hitec", "Opt_Hub", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {39, 2, "Hitec", "Minima", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {57, 0, "HoTT", "Std", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {21, 0, "SFHSS", "Std", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {68, 0, "Skyartec", "Std", { "CH5", "CH6", "CH7" }, 0 }, + {7 , 0, "Devo", "8CH", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {7 , 1, "Devo", "10CH", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10" }, 0 }, + {7 , 2, "Devo", "12CH", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {7 , 3, "Devo", "6CH", { "CH5", "CH6" }, 0 }, + {7 , 4, "Devo", "7CH", { "CH5", "CH6", "CH7" }, 0 }, + {30, 0, "WK2x01", "WK2801", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {30, 1, "WK2x01", "WK2401", { }, 0 }, + {30, 2, "WK2x01", "W6_5_1", { "Gear", "Dis", "Gyro" }, 0 }, + {30, 3, "WK2x01", "W6_6_1", { "Gear", "Col", "Gyro" }, 0 }, + {30, 4, "WK2x01", "W6HEL", { "Gear", "Col", "Gyro" }, 0 }, + {30, 5, "WK2x01", "W6HEL_I", { "Gear", "Col", "Gyro" }, 0 }, + {6 , 0, "DSM", "2_22", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {6 , 1, "DSM", "2_11", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {6 , 2, "DSM", "X_22", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {6 , 3, "DSM", "X_11", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "n-a", "ThKill" }, 0 }, + {22, 0, "J6Pro", "Std", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12" }, 0 }, + {22, 0, "WFLY", "WFR0xS", { "CH5", "CH6", "CH7", "CH8", "CH9" }, 0 }, + {24, 0, "Assan", "Std", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {14, 0, "Bayang", "Std", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "n-a", "n-a", "AnAux1", "AnAux2" }, 1 }, + {14, 1, "Bayang", "H8S3D", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates" }, 1 }, + {14, 2, "Bayang", "X16_AH", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "TakeOf" }, 1 }, + {14, 3, "Bayang", "IRDRONE", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "TakeOf", "EmStop" }, 1 }, + {14, 4, "Bayang", "DHD_D4", { "Flip", "RTH", "Pict", "Video", "HLess", "Invert", "Rates", "TakeOf", "EmStop" }, 1 }, + {59, 0, "BayangRX", "RX", { "AnAux1", "AnAux2", "Flip", "RTH", "Pict", "Video" }, 1 }, + {42, 0, "BugsMini", "Mini", { "Arm", "Angle", "Flip", "Pict", "Video", "LED" }, 0 }, + {42, 1, "BugsMini", "3H", { "Arm", "Angle", "Flip", "Pict", "Video", "LED", "AltHol" }, 0 }, + {34, 0, "Cabell", "V3", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {34, 1, "Cabell", "V3Telem", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {13, 0, "CG023", "Std", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {13, 1, "CG023", "YD829", { "Flip", "n-a", "Pict", "Video", "HLess" }, 1 }, + {12, 0, "CX10", "Green", { "Flip", "Rate" }, 1 }, + {12, 1, "CX10", "Blue", { "Flip", "Rate", "Pict", "Video" }, 1 }, + {12, 2, "CX10", "DM007", { "Flip", "Mode", "Pict", "Video", "HLess" }, 1 }, + {12, 4, "CX10", "JC3015_1", { "Flip", "Mode", "Pict", "Video" }, 1 }, + {12, 5, "CX10", "JC3015_2", { "Flip", "Mode", "LED", "DFlip" }, 1 }, + {12, 6, "CX10", "MK33041", { "Flip", "Mode", "Pict", "Video", "HLess", "RTH" }, 1 }, + {33, 0, "DM022", "Std", { "Flip", "LED", "Cam1", "Cam2", "HLess", "RTH", "RLow" }, 1 }, + {45, 0, "E01X", "E012", { "n-a", "Flip", "n-a", "HLess", "RTH" }, 1 }, + {45, 1, "E01X", "E015", { "Arm", "Flip", "LED", "HLess", "RTH" }, 1 }, + {45, 2, "E01X", "E016H", { "Stop", "Flip", "n-a", "HLess", "RTH" }, 1 }, + {16, 0, "ESKY", "Std", { "Gyro", "Pitch" }, 0 }, + {16, 1, "ESKY", "ET4", { "Gyro", "Pitch" }, 0 }, + {35, 0, "ESKY150", "4CH", { }, 0 }, + {35, 1, "ESKY150", "7CH", { "FMode", "Aux6", "Aux7" }, 0 }, + {20, 0, "FY326", "FY326", { "Flip", "RTH", "HLess", "Expert", "Calib" }, 1 }, + {20, 1, "FY326", "FY319", { "Flip", "RTH", "HLess", "Expert", "Calib" }, 1 }, + {23, 0, "FY326", "FY326", { "Flip", "RTH", "HLess", "Expert" }, 1 }, + {32, 0, "GW008", "FY326", { "Flip" }, 1 }, + {36, 0, "H8_3D", "Std", { "Flip", "Light", "Pict", "Video", "RTH", "FlMode", "Cal1" }, 1 }, + {36, 1, "H8_3D", "H20H", { "Flip", "Light", "Pict", "Video", "Opt1", "Opt2", "Cal1", "Cal2", "Gimbal" }, 1 }, + {36, 2, "H8_3D", "H20", { "Flip", "Light", "Pict", "Video", "Opt1", "Opt2", "Cal1", "Cal2", "Gimbal" }, 1 }, + {36, 3, "H8_3D", "H30", { "Flip", "Light", "Pict", "Video", "Opt1", "Opt2", "Cal1", "Cal2", "Gimbal" }, 1 }, + {4 , 0, "Hisky", "Std", { "Gear", "Pitch", "Gyro", "CH8" }, 0 }, + {9 , 0, "KN", "WLToys", { "DRate", "THold", "IdleUp", "Gyro", "Ttrim", "Atrim", "Etrim" }, 0 }, + {9 , 1, "KN", "Feilun", { "DRate", "THold", "IdleUp", "Gyro", "Ttrim", "Atrim", "Etrim" }, 0 }, + {26, 0, "Hontai", "Std", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {26, 1, "Hontai", "JJRCX1", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {26, 2, "Hontai", "X5C1", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {26, 3, "Hontai", "FQ777_951", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "Calib" }, 1 }, + {18, 0, "MJXQ", "WHL08", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 1, "MJXQ", "X600", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 2, "MJXQ", "X800", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 3, "MJXQ", "H26D", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 4, "MJXQ", "E010", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 5, "MJXQ", "H26WH", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {18, 6, "MJXQ", "Phoenix", { "Flip", "Arm", "Pict", "Video", "HLess", "RTH", "AuFlip", "Pan", "Tilt", "Rate" }, 1 }, + {17, 0, "MT99XX", "Std", { "Flip", "LED", "Pict", "Video", "HLess" }, 1 }, + {17, 1, "MT99XX", "H7", { "Flip", "LED", "Pict", "Video", "HLess" }, 1 }, + {17, 2, "MT99XX", "YZ", { "Flip", "LED", "Pict", "Video", "HLess" }, 1 }, + {17, 3, "MT99XX", "LS", { "Flip", "Invert", "Pict", "Video", "HLess" }, 1 }, + {17, 4, "MT99XX", "FY805", { "Flip", "n-a", "n-a", "n-a", "HLess" }, 1 }, + {44, 0, "NCC1701", "Std", { "Warp" }, 1 }, + {51, 0, "Potensic", "A20", { "TakLan", "Emerg", "Mode", "HLess" }, 1 }, + {56, 0, "Propel", "74-Z", { "LEDs", "RollCW", "RolCCW", "Fire", "Weapon", "Calib", "AltHol", "TakeOf", "Land", "Train" }, 1 }, + {29, 0, "Q2x2", "Q222", { "Flip", "LED", "Mod2", "Mod1", "HLess", "RTH", "XCal", "YCal" }, 1 }, + {29, 1, "Q2x2", "Q242", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "XCal", "YCal" }, 1 }, + {29, 2, "Q2x2", "Q282", { "Flip", "LED", "Pict", "Video", "HLess", "RTH", "XCal", "YCal" }, 1 }, + {31, 0, "Q303", "Q303", { "AltHol", "Flip", "Pict", "Video", "HLess", "RTH", "Gimbal" }, 1 }, + {31, 1, "Q303", "C35", { "Arm", "VTX", "Pict", "Video", "n-a", "RTH", "Gimbal" }, 1 }, + {31, 2, "Q303", "CX10D", { "Arm", "Flip" }, 1 }, + {31, 3, "Q303", "CX10WD", { "Arm", "Flip" }, 1 }, + {50, 0, "Redpine", "Fast", { "sCH5", "sCH6", "sCH7", "sCH8", "sCH9", "sCH10", "sCH11", "sCH12", "sCH13", "sCH14", "sCH15", "sCH16" }, 0 }, + {50, 1, "Redpine", "Slow", { "sCH5", "sCH6", "sCH7", "sCH8", "sCH9", "sCH10", "sCH11", "sCH12", "sCH13", "sCH14", "sCH15", "sCH16" }, 0 }, + {11, 0, "SLT", "V1", { "Gear", "Pitch" }, 0 }, + {11, 1, "SLT", "V2", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {11, 2, "SLT", "Q100", { "Rates", "n-a", "CH7", "CH8", "Mode", "Flip", "n-a", "n-a", "Calib" }, 0 }, + {11, 3, "SLT", "Q200", { "Rates", "n-a", "CH7", "CH8", "Mode", "VidOn", "VidOff", "Calib" }, 0 }, + {11, 4, "SLT", "MR100", { "Rates", "n-a", "CH7", "CH8", "Mode", "Flip", "Video", "Pict" }, 0 }, + {10, 0, "Symax", "Std", { "Flip", "Rates", "Pict", "Video", "HLess" }, 1 }, + {10, 1, "Symax", "X5C", { "Flip", "Rates", "Pict", "Video", "HLess" }, 1 }, + {5 , 0, "V2x2", "Std", { "Flip", "Light", "Pict", "Video", "HLess", "CalX", "CalY" }, 1 }, + {5 , 1, "V2x2", "JXD506", { "Flip", "Light", "Pict", "Video", "HLess", "StaSto", "Emerg", "Cam_UD" }, 1 }, + {61, 0, "Tiger", "Std", { "Flip", "Light" }, 1 }, + {46, 0, "V911s", "Std", { "Calib" }, 1 }, + {46, 1, "E119", "Std", { "Calib" }, 1 }, + {62, 0, "XK", "X450", { "FMode", "TakeOf", "Emerg", "3D_6G", "Pict", "Video" }, 1 }, + {62, 1, "XK", "X420", { "FMode", "TakeOf", "Emerg", "3D_6G", "Pict", "Video" }, 1 }, + {8 , 0, "YD717", "Std", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 1, "YD717", "SkyWlkr", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 2, "YD717", "Simax4", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 3, "YD717", "XinXun", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {8 , 4, "YD717", "NiHui", { "Flip", "Light", "Pict", "Video", "HLess" }, 1 }, + {65,0, "FrSkyR9", "R9_915", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {65,1, "FrSkyR9", "R9_868", { "CH5", "CH6", "CH7", "CH8", "CH9", "CH10", "CH11", "CH12", "CH13", "CH14", "CH15", "CH16" }, 0 }, + {65,2, "FrSkyR9", "R9_915_8CH", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + {65,3, "FrSkyR9", "R9_968_8CH", { "CH5", "CH6", "CH7", "CH8" }, 0 }, + +-- Need first 4 channels changed... + {19, 0, "Shenqi", "Cycle", { }, 1 }, + {4 , 1, "Hisky", "HK310", { "Aux" }, 0 }, + {43, 0, "Traxxas", "6519", { }, 0 }, + {52, 0, "ZSX", "280", { "Light" }, 1 }, + {48, 0, "V761", "Std", { "Gyro" }, 1 }, + {49, 0, "KF606", "Std", { "Trim" }, 1 }, + {47, 0, "GD00x", "V1", { "Trim", "LED", "Rate" }, 1 }, + {47, 1, "GD00x", "V2", { "Trim", "LED", "Rate" }, 1 }, + {58, 0, "FX816", "P38", { },1 } +} + +local function drawScreenTitle(title) + if LCD_W == 480 then + lcd.drawFilledRectangle(0, 0, LCD_W, 30, TITLE_BGCOLOR) + lcd.drawText(1, 5, title, MENU_TITLE_COLOR) + else + lcd.drawScreenTitle(title, 0, 0) + end +end + +function bitand(a, b) + local result = 0 + local bitval = 1 + while a > 0 and b > 0 do + if a % 2 == 1 and b % 2 == 1 then -- test the rightmost bits + result = result + bitval -- set the current bit + end + bitval = bitval * 2 -- shift left + a = math.floor(a/2) -- shift right + b = math.floor(b/2) + end + return result +end + +local function Multi_Draw_LCD() + local line = 0 + local module_conf = {} + local module_pos = "Internal" + + lcd.clear() + drawScreenTitle("Multi channels namer") + module_conf = model.getModule(0) + if module_conf["Type"] ~= 6 then + module_pos = "External" + module_conf = model.getModule(1) + if module_conf["Type"] ~= 6 then + if LCD_W == 480 then + lcd.drawText(10,50,"No Multi module configured...", BLINK) + else + --Draw on LCD_W=128 + lcd.drawText(2,17,"No Multi module configured...",SMLSIZE) + end + return + end + end + + local protocol = module_conf["protocol"] + local sub_protocol = module_conf["subProtocol"] + + --Display settings + local lcd_opt + if LCD_W == 480 then + x_pos = 10 + y_pos = 32 + y_inc = 20 + else + x_pos = 0 + y_pos = 9 + y_inc = 8 + lcd_opt = SMLSIZE + end + + --Exceptions on first 4 channels... + local stick_names = { "Rud", "Ele", "Thr", "Ail" } + if ( protocol == 4 and sub_protocol ==1 ) or protocol == 19 or protocol == 52 then -- Hisky/HK310, Shenqi, ZSX + stick_names[2] = "n-a" + stick_names[4] = "n-a" + elseif protocol == 43 then -- Traxxas + stick_names[2] = "Aux4" + stick_names[4] = "Aux3" + elseif protocol == 48 then -- V761 + stick_names[4] = "n-a" + elseif protocol == 47 or protocol == 49 or protocol == 58 then -- GD00x, KF606, FX816 + stick_names[1] = "n-a" + stick_names[2] = "n-a" + end + + --Determine fist 4 channels order + local channel_names={} + local ch_order=module_conf["channelsOrder"] + if (ch_order == -1) then + channel_names[1] = stick_names[defaultChannel(0)+1] + channel_names[2] = stick_names[defaultChannel(1)+1] + channel_names[3] = stick_names[defaultChannel(2)+1] + channel_names[4] = stick_names[defaultChannel(3)+1] + else + channel_names[bitand(ch_order,3)+1] = stick_names[4] + ch_order = math.floor(ch_order/4) + channel_names[bitand(ch_order,3)+1] = stick_names[2] + ch_order = math.floor(ch_order/4) + channel_names[bitand(ch_order,3)+1] = stick_names[3] + ch_order = math.floor(ch_order/4) + channel_names[bitand(ch_order,3)+1] = stick_names[1] + end + + --Specific channels for protocol + local protocol_name, sub_protocol_name, bind_ch + for i,v in ipairs(Protocols) do + if v[1] == protocol and v[2] == sub_protocol then + protocol_name = v[3] + sub_protocol_name = v[4] + for j,w in ipairs(v[5]) do + channel_names[4+j]=w; + end + bind_ch = v[6] + end + end + + lcd.drawText(x_pos, y_pos+y_inc*line,module_pos .. " Multi detected.", lcd_opt) + line = line + 1 + if (ch_order == -1) then + lcd.drawText(x_pos, y_pos+y_inc*line,"Channels order can't be read from Multi...", lcd_opt) + line = line + 1 + end + if protocol_name == nil or sub_protocol_name == nil then + lcd.drawText(x_pos, y_pos+y_inc*line,"Unknown protocol/sub_protocol...", lcd_opt) + else if LCD_W > 128 then + lcd.drawText(x_pos, y_pos+y_inc*line,"Protocol: " .. protocol_name .. " / SubProtocol: " .. sub_protocol_name, lcd_opt) + line = line + 1 + else + lcd.drawText(x_pos, y_pos+y_inc*line,"Protocol: " .. protocol_name, lcd_opt) + line = line + 1 + lcd.drawText(x_pos, y_pos+y_inc*line,"SubProtocol: " .. sub_protocol_name, lcd_opt) + line = line + 1 + end + text1="" + text2="" + for i,v in ipairs(channel_names) do + if i<=8 then + if i==1 then + text1 = v + else + text1=text1 .. "," .. v + end + else + if i==9 then + text2 = v + else + text2=text2 .. "," .. v + end + end + end + if LCD_W > 128 then + lcd.drawText(x_pos, y_pos+y_inc*line,"Channels: " .. text1, lcd_opt) + line = line + 1 + if text2 ~= "" then + lcd.drawText(x_pos*9, y_pos+y_inc*line,text2, lcd_opt) + line = line + 1 + end + end + lcd.drawText(x_pos, y_pos+y_inc*line,"Setting channel names.", lcd_opt) + line = line + 1 + local output, nbr + for i,v in ipairs(channel_names) do + output = model.getOutput(i-1) + output["name"] = v + model.setOutput(i-1,output) + nbr = i + end + for i = nbr, 15 do + output = model.getOutput(i) + output["name"] = "n-a" + model.setOutput(i,output) + end + if bind_ch == 1 then + output = model.getOutput(15) + output["name"] = "BindCH" + model.setOutput(15,output) + end + lcd.drawText(x_pos, y_pos+y_inc*line,"Done!", lcd_opt) + line = line + 1 + done = 1 + end +end + +-- Init +local function Multi_Init() +end + +-- Main +local function Multi_Run(event) + if event == nil then + error("Cannot be run as a model script!") + return 2 + else + if done == 0 then + Multi_Draw_LCD() + else + if event == EVT_VIRTUAL_ENTER or event == EVT_VIRTUAL_EXIT then + return 2 + end + end + return 0 + end +end + +return { init=Multi_Init, run=Multi_Run } diff --git a/radio/src/lua/api_model.cpp b/radio/src/lua/api_model.cpp index b183043c7..8eea9d5ec 100644 --- a/radio/src/lua/api_model.cpp +++ b/radio/src/lua/api_model.cpp @@ -86,7 +86,24 @@ static int luaModelSetInfo(lua_State *L) Get RF module parameters -`subType` values: +`Type` values: + * 0 NONE + * 1 PPM + * 2 XJT_PXX1 + * 3 ISRM_PXX2 + * 4 DSM2 + * 5 CROSSFIRE + * 6 MULTIMODULE + * 7 R9M_PXX1 + * 8 R9M_PXX2 + * 9 R9M_LITE_PXX1 + * 10 R9M_LITE_PXX2 + * 11 R9M_LITE_PRO_PXX1 + * 12 R9M_LITE_PRO_PXX2 + * 13 SBUS + * 14 XJT_LITE_PXX2 + +`subType` values for XJT_PXX1: * -1 OFF * 0 D16 * 1 D8 @@ -101,6 +118,11 @@ Get RF module parameters * `modelId` (number) receiver number * `firstChannel` (number) start channel (0 is CH1) * `channelsCount` (number) number of channels sent to module + * `Type` (number) module type + * if the module type is Multi additional information are available + * `protocol` (number) protocol number + * `subProtocol` (number) sub-protocol number + * `channelsOrder` (number) first 4 channels expected order @status current Introduced in TODO */ @@ -114,6 +136,25 @@ static int luaModelGetModule(lua_State *L) lua_pushtableinteger(L, "modelId", g_model.header.modelId[idx]); lua_pushtableinteger(L, "firstChannel", module.channelsStart); lua_pushtableinteger(L, "channelsCount", module.channelsCount + 8); + lua_pushtableinteger(L, "Type", module.type); +#if defined(MULTIMODULE) + if (module.type == MODULE_TYPE_MULTIMODULE) { + int protocol = g_model.moduleData[idx].getMultiProtocol() + 1; + int subprotocol = g_model.moduleData[idx].subType; + convertOtxProtocolToMulti(&protocol, &subprotocol); // Special treatment for the FrSky entry... + lua_pushtableinteger(L, "protocol", protocol); + lua_pushtableinteger(L, "subProtocol", subprotocol); + if (getMultiModuleStatus(idx).isValid()) { + if (getMultiModuleStatus(idx).ch_order == 0xFF) + lua_pushtableinteger(L, "channelsOrder", -1); + else + lua_pushtableinteger(L, "channelsOrder", getMultiModuleStatus(idx).ch_order); + } + else { + lua_pushtableinteger(L, "channelsOrder", -1); + } + } +#endif } else { lua_pushnil(L); diff --git a/radio/src/pulses/multi.cpp b/radio/src/pulses/multi.cpp index ca7a77480..9fe10113c 100644 --- a/radio/src/pulses/multi.cpp +++ b/radio/src/pulses/multi.cpp @@ -244,6 +244,50 @@ void sendChannels(uint8_t moduleIdx) } } +void convertOtxProtocolToMulti(int *protocol, int *subprotocol) +{ + // Special treatment for the FrSky entry... + if (*protocol == MODULE_SUBTYPE_MULTI_FRSKY +1) { + if (*subprotocol == MM_RF_FRSKY_SUBTYPE_D8) { + //D8 + *protocol = 3; + *subprotocol = 0; + } + else if (*subprotocol == MM_RF_FRSKY_SUBTYPE_D8_CLONED) { + //D8 + *protocol = 3; + *subprotocol = 1; + } + else if (*subprotocol == MM_RF_FRSKY_SUBTYPE_V8) { + //V8 + *protocol = 25; + *subprotocol = 0; + } + else { + *protocol = 15; + if (*subprotocol == MM_RF_FRSKY_SUBTYPE_D16_8CH) + *subprotocol = 1; + else if (*subprotocol == MM_RF_FRSKY_SUBTYPE_D16) + *subprotocol = 0; // D16 + else if (*subprotocol == MM_RF_FRSKY_SUBTYPE_D16_LBT) + *subprotocol = 2; + else if (*subprotocol == MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH) + *subprotocol = 3; + else + *subprotocol = 4; // D16_CLONED + } + } + else { + // 15 for Multimodule is FrskyX or D16 which we map as a protocol of 3 (FrSky) + // all protos > frskyx are therefore also off by one + if (*protocol >= 15) + *protocol = *protocol + 1; + // 25 is again a FrSky *protocol (FrskyV) so shift again + if (*protocol >= 25) + *protocol = *protocol + 1; + } +} + void sendFrameProtocolHeader(uint8_t moduleIdx, bool failsafe) {// byte 1+2, protocol information @@ -268,8 +312,7 @@ void sendFrameProtocolHeader(uint8_t moduleIdx, bool failsafe) protoByte |= MULTI_SEND_RANGECHECK; // rfProtocol - if (g_model.moduleData[moduleIdx].getMultiProtocol() == MODULE_SUBTYPE_MULTI_DSM2) { - + if (type == MODULE_SUBTYPE_MULTI_DSM2 +1 ) { // Autobinding should always be done in DSMX 11ms if (g_model.moduleData[moduleIdx].multi.autoBindMode && moduleState[moduleIdx].mode == MODULE_MODE_BIND) subtype = MM_RF_DSM2_SUBTYPE_AUTO; @@ -279,48 +322,11 @@ void sendFrameProtocolHeader(uint8_t moduleIdx, bool failsafe) optionValue = 0x80 | sentModuleChannels(moduleIdx); // Max throw else optionValue = sentModuleChannels(moduleIdx); -} - - // 15 for Multimodule is FrskyX or D16 which we map as a subprotocol of 3 (FrSky) - // all protos > frskyx are therefore also off by one - if (type >= 15) - type = type + 1; - - // 25 is again a FrSky protocol (FrskyV) so shift again - if (type >= 25) - type = type + 1; - - if (g_model.moduleData[moduleIdx].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FRSKY) { - if (subtype == MM_RF_FRSKY_SUBTYPE_D8) { - //D8 - type = 3; - subtype = 0; - } - else if (subtype == MM_RF_FRSKY_SUBTYPE_D8_CLONED) { - //D8 - type = 3; - subtype = 1; - } - else if (subtype == MM_RF_FRSKY_SUBTYPE_V8) { - //V8 - type = 25; - subtype = 0; - } - else { - type = 15; - if (subtype == MM_RF_FRSKY_SUBTYPE_D16_8CH) // D16 8ch - subtype = 1; - else if (subtype == MM_RF_FRSKY_SUBTYPE_D16) - subtype = 0; // D16 - else if (subtype == MM_RF_FRSKY_SUBTYPE_D16_LBT) - subtype = 2; - else if (subtype == MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH) - subtype = 3; - else - subtype = 4; - } } + // Special treatment for the FrSky entry... + convertOtxProtocolToMulti(&type, &subtype); + // Set the highest bit of option byte in AFHDS2A protocol to instruct MULTI to passthrough telemetry bytes instead // of sending Frsky D telemetry if (g_model.moduleData[moduleIdx].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FS_AFHDS2A) diff --git a/radio/src/pulses/multi.h b/radio/src/pulses/multi.h index a19e526eb..29e335d3a 100644 --- a/radio/src/pulses/multi.h +++ b/radio/src/pulses/multi.h @@ -24,6 +24,7 @@ #include "pulses_common.h" void multiPatchCustom(uint8_t moduleIdx); +void convertOtxProtocolToMulti(int *protocol, int *subprotocol); class UartMultiPulses: public DataBuffer {