1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-25 01:05:10 +03:00
AUX2 added
This commit is contained in:
3djc 2020-05-15 14:51:36 +02:00 committed by GitHub
parent 1cad34eb73
commit f0d8d340fd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
32 changed files with 323 additions and 17 deletions

View file

@ -666,7 +666,8 @@ PACK(struct TrainerData {
#if defined(PCBHORUS)
#define EXTRA_GENERAL_FIELDS \
NOBACKUP(uint8_t auxSerialMode); \
NOBACKUP(uint8_t auxSerialMode:4); \
NOBACKUP(uint8_t aux2SerialMode:4); \
swconfig_t switchConfig; \
uint16_t potsConfig; /* two bits per pot */ \
uint8_t slidersConfig; /* 1 bit per slider */ \

View file

@ -38,6 +38,7 @@ extern "C" {
#endif
uint8_t auxSerialTracesEnabled();
uint8_t aux2SerialTracesEnabled();
#if defined(SIMU)
typedef void (*traceCallbackFunc)(const char * text);

View file

@ -70,7 +70,9 @@ enum MenuRadioHardwareItems {
#if defined(AUX_SERIAL)
ITEM_RADIO_HARDWARE_AUX_SERIAL_MODE,
#endif
#if defined(AUX2_SERIAL)
ITEM_RADIO_HARDWARE_AUX2_SERIAL_MODE,
#endif
ITEM_RADIO_HARDWARE_JITTER_FILTER,
ITEM_RADIO_HARDWARE_RAS,
@ -89,6 +91,11 @@ enum MenuRadioHardwareItems {
#else
#define AUX_SERIAL_ROW
#endif
#if defined(AUX2_SERIAL)
#define AUX2_SERIAL_ROW 0,
#else
#define AUX2_SERIAL_ROW
#endif
#define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1
#define SWITCHES_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1
@ -159,6 +166,7 @@ bool menuRadioHardware(event_t event)
EXTERNAL_ANTENNA_ROW
AUX_SERIAL_ROW /* aux serial mode */
AUX2_SERIAL_ROW /* aux2 serial mode */
0, /* ADC filter */
READONLY_ROW /* RAS */,
SPORT_POWER_ROWS
@ -371,6 +379,19 @@ bool menuRadioHardware(event_t event)
break;
#endif
#if defined(AUX2_SERIAL)
case ITEM_RADIO_HARDWARE_AUX2_SERIAL_MODE:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_AUX2_SERIAL_MODE);
#if defined(RADIO_TX16S)
lcdDrawText(lcdNextPos, y, " (TTL)");
#endif
g_eeGeneral.aux2SerialMode = editChoice(HW_SETTINGS_COLUMN2, y, STR_AUX_SERIAL_MODES, g_eeGeneral.aux2SerialMode, 0, UART_MODE_MAX, attr, event);
if (attr && checkIncDec_Ret) {
aux2SerialInit(g_eeGeneral.aux2SerialMode, modelTelemetryProtocol());
}
break;
#endif
case ITEM_RADIO_HARDWARE_JITTER_FILTER:
{
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_JITTER_FILTER);

View file

@ -1601,6 +1601,13 @@ static int luaSerialWrite(lua_State * L)
while(wr_len--) auxSerialPutc(*p++);
}
#endif
#if defined(AUX2_SERIAL)
if (aux2SerialMode == UART_MODE_LUA) {
size_t wr_len = len;
const char* p = str;
while(wr_len--) aux2SerialPutc(*p++);
}
#endif
#else
debugPrintf("luaSerialWrite: %.*s",len,str);
#endif

View file

@ -1939,6 +1939,10 @@ void opentxInit()
auxSerialInit(g_eeGeneral.auxSerialMode, modelTelemetryProtocol());
#endif
#if defined(AUX2_SERIAL)
aux2SerialInit(g_eeGeneral.aux2SerialMode, modelTelemetryProtocol());
#endif
#if MENUS_LOCK == 1
getMovedSwitch();
if (TRIMS_PRESSED() && g_eeGeneral.switchUnlockStates==switches_states) {

View file

@ -34,6 +34,10 @@ void serialPutc(char c) {
if (auxSerialTracesEnabled())
auxSerialPutc(c);
#endif
#if defined(AUX2_SERIAL)
if (aux2SerialTracesEnabled())
aux2SerialPutc(c);
#endif
}
void serialPrintf(const char * format, ...)

View file

@ -400,7 +400,7 @@ void convertRadioData_218_to_219(RadioData & settings)
#if defined(PCBHORUS)
// 2 new pots from X10:
// - copy btw. 'chkSum' and 'auxSerialMode' (excl.)
memcpy(&settings.chkSum, &oldSettings.chkSum, offsetof(RadioData, auxSerialMode) - offsetof(RadioData, chkSum));
memcpy(&settings.chkSum, &oldSettings.chkSum, offsetof(RadioData, switchConfig) - sizeof(uint8_t) - offsetof(RadioData, chkSum));
// - move calibration data
memcpy(&settings.calib[NUM_STICKS + 5], &oldSettings.calib[NUM_STICKS + 3], sizeof(CalibData) * (STORAGE_NUM_SLIDERS + STORAGE_NUM_MOUSE_ANALOGS));
memclear(&settings.calib[NUM_STICKS + 3], sizeof(CalibData) * 2);

View file

@ -193,5 +193,181 @@ extern "C" void AUX_SERIAL_USART_IRQHandler(void)
}
#endif
}
#endif
#if defined(AUX2_SERIAL)
uint8_t aux2SerialMode = 0;
Fifo<uint8_t, 512> aux2SerialTxFifo;
AuxSerialRxFifo aux2SerialRxFifo __DMA (AUX2_SERIAL_DMA_Stream_RX);
void aux2SerialSetup(unsigned int baudrate, bool dma)
{
USART_InitTypeDef USART_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_PinAFConfig(AUX2_SERIAL_GPIO, AUX2_SERIAL_GPIO_PinSource_RX, AUX2_SERIAL_GPIO_AF);
GPIO_PinAFConfig(AUX2_SERIAL_GPIO, AUX2_SERIAL_GPIO_PinSource_TX, AUX2_SERIAL_GPIO_AF);
GPIO_InitStructure.GPIO_Pin = AUX2_SERIAL_GPIO_PIN_TX | AUX2_SERIAL_GPIO_PIN_RX;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(AUX2_SERIAL_GPIO, &GPIO_InitStructure);
#if defined(AUX2_SERIAL_PWR_GPIO)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = AUX2_SERIAL_PWR_GPIO_PIN;
GPIO_Init(AUX2_SERIAL_PWR_GPIO, &GPIO_InitStructure);
#endif
USART_InitStructure.USART_BaudRate = baudrate;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_Init(AUX2_SERIAL_USART, &USART_InitStructure);
if (dma) {
DMA_InitTypeDef DMA_InitStructure;
aux2SerialRxFifo.clear();
USART_ITConfig(AUX2_SERIAL_USART, USART_IT_RXNE, DISABLE);
USART_ITConfig(AUX2_SERIAL_USART, USART_IT_TXE, DISABLE);
DMA_InitStructure.DMA_Channel = AUX2_SERIAL_DMA_Channel_RX;
DMA_InitStructure.DMA_PeripheralBaseAddr = CONVERT_PTR_UINT(&AUX2_SERIAL_USART->DR);
DMA_InitStructure.DMA_Memory0BaseAddr = CONVERT_PTR_UINT(aux2SerialRxFifo.buffer());
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
DMA_InitStructure.DMA_BufferSize = aux2SerialRxFifo.size();
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_Low;
DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;
DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
DMA_Init(AUX2_SERIAL_DMA_Stream_RX, &DMA_InitStructure);
USART_DMACmd(AUX2_SERIAL_USART, USART_DMAReq_Rx, ENABLE);
USART_Cmd(AUX2_SERIAL_USART, ENABLE);
DMA_Cmd(AUX2_SERIAL_DMA_Stream_RX, ENABLE);
}
else {
USART_Cmd(AUX2_SERIAL_USART, ENABLE);
USART_ITConfig(AUX2_SERIAL_USART, USART_IT_RXNE, ENABLE);
USART_ITConfig(AUX2_SERIAL_USART, USART_IT_TXE, DISABLE);
NVIC_SetPriority(AUX2_SERIAL_USART_IRQn, 7);
NVIC_EnableIRQ(AUX2_SERIAL_USART_IRQn);
}
}
void aux2SerialInit(unsigned int mode, unsigned int protocol)
{
aux2SerialStop();
aux2SerialMode = mode;
switch (mode) {
case UART_MODE_TELEMETRY_MIRROR:
#if defined(CROSSFIRE)
if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
aux2SerialSetup(CROSSFIRE_TELEM_MIRROR_BAUDRATE, false);
break;
}
#endif
aux2SerialSetup(FRSKY_TELEM_MIRROR_BAUDRATE, false);
break;
#if defined(DEBUG) || defined(CLI)
case UART_MODE_DEBUG:
aux2SerialSetup(DEBUG_BAUDRATE, false);
break;
#endif
case UART_MODE_TELEMETRY:
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
aux2SerialSetup(FRSKY_D_BAUDRATE, true);
}
break;
case UART_MODE_LUA:
aux2SerialSetup(DEBUG_BAUDRATE, false);
}
}
void aux2SerialPutc(char c)
{
#if !defined(SIMU)
int n = 0;
while (aux2SerialTxFifo.isFull()) {
delay_ms(1);
if (++n > 100) return;
}
aux2SerialTxFifo.push(c);
USART_ITConfig(AUX2_SERIAL_USART, USART_IT_TXE, ENABLE);
#endif
}
void aux2SerialSbusInit()
{
aux2SerialSetup(SBUS_BAUDRATE, true);
AUX2_SERIAL_USART->CR1 |= USART_CR1_M | USART_CR1_PCE ;
AUX2_SERIAL_POWER_ON();
}
void aux2SerialStop()
{
DMA_DeInit(AUX2_SERIAL_DMA_Stream_RX);
USART_DeInit(AUX2_SERIAL_USART);
}
uint8_t aux2SerialTracesEnabled()
{
#if defined(DEBUG)
return (aux2SerialMode == UART_MODE_DEBUG);
#else
return false;
#endif
}
#if !defined(SIMU)
extern "C" void AUX2_SERIAL_USART_IRQHandler(void)
{
DEBUG_INTERRUPT(INT_SER2);
// Send
if (USART_GetITStatus(AUX2_SERIAL_USART, USART_IT_TXE) != RESET) {
uint8_t txchar;
if (aux2SerialTxFifo.pop(txchar)) {
/* Write one byte to the transmit data register */
USART_SendData(AUX2_SERIAL_USART, txchar);
}
else {
USART_ITConfig(AUX2_SERIAL_USART, USART_IT_TXE, DISABLE);
}
}
#if defined(CLI)
if (getSelectedUsbMode() != USB_SERIAL_MODE) {
// Receive
uint32_t status = AUX2_SERIAL_USART->SR;
while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) {
uint8_t data = AUX2_SERIAL_USART->DR;
if (!(status & USART_FLAG_ERRORS)) {
switch (aux2SerialMode) {
case UART_MODE_DEBUG:
cliRxFifo.push(data);
break;
}
}
status = AUX2_SERIAL_USART->SR;
}
}
#endif
}
#endif
#endif
#endif // AUX_SERIAL

View file

@ -197,15 +197,15 @@ int main()
RCC_AHB1PeriphClockCmd(PWR_RCC_AHB1Periph | KEYS_RCC_AHB1Periph |
LCD_RCC_AHB1Periph | BACKLIGHT_RCC_AHB1Periph |
AUX_SERIAL_RCC_AHB1Periph | I2C_RCC_AHB1Periph |
AUX_SERIAL_RCC_AHB1Periph | AUX2_SERIAL_RCC_AHB1Periph | I2C_RCC_AHB1Periph |
SD_RCC_AHB1Periph, ENABLE);
RCC_APB1PeriphClockCmd(ROTARY_ENCODER_RCC_APB1Periph | LCD_RCC_APB1Periph | BACKLIGHT_RCC_APB1Periph |
INTERRUPT_xMS_RCC_APB1Periph | I2C_RCC_APB1Periph |
AUX_SERIAL_RCC_APB1Periph |
AUX_SERIAL_RCC_APB1Periph | AUX2_SERIAL_RCC_APB1Periph |
SD_RCC_APB1Periph, ENABLE);
RCC_APB2PeriphClockCmd(LCD_RCC_APB2Periph | BACKLIGHT_RCC_APB2Periph | RCC_APB2Periph_SYSCFG | AUX_SERIAL_RCC_APB2Periph, ENABLE);
RCC_APB2PeriphClockCmd(LCD_RCC_APB2Periph | BACKLIGHT_RCC_APB2Periph | RCC_APB2Periph_SYSCFG | AUX_SERIAL_RCC_APB2Periph | AUX2_SERIAL_RCC_APB2Periph, ENABLE);
pwrInit();
keysInit();
@ -249,6 +249,9 @@ int main()
#if defined(DEBUG) && defined(AUX_SERIAL)
auxSerialInit(UART_MODE_DEBUG, 0); // default serial mode (None if DEBUG not defined)
#endif
#if defined(DEBUG) && defined(AUX2_SERIAL)
aux2SerialInit(UART_MODE_DEBUG, 0); // default serial mode (None if DEBUG not defined)
#endif
__enable_irq();

View file

@ -64,8 +64,9 @@ if (PCB STREQUAL X10)
set(HARDWARE_TOUCH YES)
set(USB_CHARGER YES)
set(DEFAULT_THEME "DARKBLUE")
if (NOT BLUETOOTH)
set(AUX_SERIAL ON)
if (NOT BLUETOOTH)
set(AUX2_SERIAL ON)
endif()
else()
set(FLAVOUR x10)
@ -238,6 +239,11 @@ if (AUX_SERIAL)
set(AUX_SERIAL_DRIVER ../common/arm/stm32/aux_serial_driver.cpp)
endif()
if (AUX2_SERIAL)
add_definitions(-DAUX2_SERIAL)
set(AUX_SERIAL_DRIVER ../common/arm/stm32/aux_serial_driver.cpp)
endif()
set(FIRMWARE_TARGET_SRC
${FIRMWARE_TARGET_SRC}
${LCD_DRIVER}

View file

@ -96,6 +96,7 @@ void boardInit()
KEYS_RCC_AHB1Periph |
ADC_RCC_AHB1Periph |
AUX_SERIAL_RCC_AHB1Periph |
AUX2_SERIAL_RCC_AHB1Periph |
TELEMETRY_RCC_AHB1Periph |
TRAINER_RCC_AHB1Periph |
BT_RCC_AHB1Periph |
@ -116,6 +117,7 @@ void boardInit()
TIMER_2MHz_RCC_APB1Periph |
AUDIO_RCC_APB1Periph |
AUX_SERIAL_RCC_APB1Periph |
AUX2_SERIAL_RCC_APB1Periph |
TELEMETRY_RCC_APB1Periph |
TRAINER_RCC_APB1Periph |
AUDIO_RCC_APB1Periph |
@ -135,6 +137,7 @@ void boardInit()
TELEMETRY_RCC_APB2Periph |
BT_RCC_APB2Periph |
AUX_SERIAL_RCC_APB2Periph |
AUX2_SERIAL_RCC_APB2Periph |
BACKLIGHT_RCC_APB2Periph,
ENABLE);
@ -147,6 +150,9 @@ void boardInit()
#if defined(DEBUG) && defined(AUX_SERIAL)
auxSerialInit(UART_MODE_DEBUG, 0); // default serial mode (None if DEBUG not defined)
#endif
#if defined(DEBUG) && defined(AUX2_SERIAL)
aux2SerialInit(UART_MODE_DEBUG, 0); // default serial mode (None if DEBUG not defined)
#endif
TRACE("\nHorus board started :)");
TRACE("RCC->CSR = %08x", RCC->CSR);

View file

@ -615,7 +615,7 @@ void sportUpdatePowerInit();
#define IS_SPORT_UPDATE_POWER_ON() (false)
#endif
// Second serial port driver
// Aux serial port driver
#if defined(AUX_SERIAL_GPIO)
#define DEBUG_BAUDRATE 115200
extern uint8_t auxSerialMode;
@ -635,6 +635,25 @@ void auxSerialPowerOff();
#endif
#endif
// Aux2 serial port driver
#if defined(AUX2_SERIAL)
extern uint8_t aux2SerialMode;
void aux2SerialInit(unsigned int mode, unsigned int protocol);
void aux2SerialPutc(char c);
#define aux2SerialTelemetryInit(protocol) aux2SerialInit(UART_MODE_TELEMETRY, protocol)
void aux2SerialSbusInit();
void aux2SerialStop();
void aux2SerialPowerOn();
void aux2SerialPowerOff();
#if defined(AUX2_SERIAL_PWR_GPIO)
#define AUX2_SERIAL_POWER_ON() aux2SerialPowerOn()
#define AUX2_SERIAL__POWER_OFF() aux2SerialPowerOff()
#else
#define AUX2_SERIAL_POWER_ON()
#define AUX2_SERIAL__POWER_OFF()
#endif
#endif
// Haptic driver
void hapticInit();
void hapticDone();

View file

@ -433,6 +433,10 @@
#define AUX2_SERIAL_DMA_Channel_RX DMA_Channel_5
#define AUX2_SERIAL_PWR_GPIO GPIOB
#define AUX2_SERIAL_PWR_GPIO_PIN GPIO_Pin_0 // PB.00
#else
#define AUX2_SERIAL_RCC_AHB1Periph 0
#define AUX2_SERIAL_RCC_APB1Periph 0
#define AUX2_SERIAL_RCC_APB2Periph 0
#endif
// Telemetry

View file

@ -787,3 +787,23 @@ void auxSerialStop()
{
}
#endif
#if defined(AUX2_SERIAL)
AuxSerialRxFifo aux2SerialRxFifo(nullptr);
uint8_t aux2SerialMode;
void aux2SerialInit(unsigned int mode, unsigned int protocol)
{
}
void aux2SerialPutc(char c)
{
}
void aux2SerialSbusInit()
{
}
void aux2SerialStop()
{
}
#endif

View file

@ -785,7 +785,7 @@ void hapticOff();
void hapticOn();
#endif
// Second serial port driver
// Aux serial port driver
#if defined(AUX_SERIAL_GPIO)
#define DEBUG_BAUDRATE 115200
#define AUX_SERIAL
@ -796,7 +796,7 @@ void auxSerialPutc(char c);
void auxSerialSbusInit();
void auxSerialStop();
#define AUX_SERIAL_POWER_ON()
#define AUX_SERIAL__POWER_OFF()
#define AUX_SERIAL_POWER_OFF()
#endif
// BT driver

View file

@ -1323,6 +1323,11 @@
#define AUX_SERIAL_DMA_Channel_RX DMA_Channel_4
#endif
// No aux2 on taranis
#define AUX2_SERIAL_RCC_AHB1Periph 0
#define AUX2_SERIAL_RCC_APB1Periph 0
#define AUX2_SERIAL_RCC_APB2Periph 0
// Telemetry
#define TELEMETRY_RCC_AHB1Periph (RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA1)
#define TELEMETRY_RCC_APB1Periph RCC_APB1Periph_USART2

View file

@ -201,6 +201,11 @@ void processCrossfireTelemetryData(uint8_t data)
auxSerialPutc(data);
}
#endif
#if defined(AUX2_SERIAL)
if (g_eeGeneral.aux2SerialMode == UART_MODE_TELEMETRY_MIRROR) {
aux2SerialPutc(data);
}
#endif
if (telemetryRxBufferCount == 0 && data != RADIO_ADDRESS) {
TRACE("[XF] address 0x%02X error", data);

View file

@ -32,6 +32,11 @@ void processFrskyTelemetryData(uint8_t data)
auxSerialPutc(data);
}
#endif
#if defined(AUX2_SERIAL)
if (g_eeGeneral.aux2SerialMode == UART_MODE_TELEMETRY_MIRROR) {
aux2SerialPutc(data);
}
#endif
if (pushFrskyTelemetryData(data)) {
if (IS_FRSKY_SPORT_PROTOCOL()) {

View file

@ -322,6 +322,12 @@ static void processMultiTelemetryPaket(const uint8_t * packet, uint8_t module)
auxSerialPutc(packet[c]);
}
#endif
#if defined(AUX2_SERIAL)
if (g_eeGeneral.aux2SerialMode == UART_MODE_TELEMETRY_MIRROR) {
for (uint8_t c=0; c < len; c++)
aux2SerialPutc(packet[c]);
}
#endif
// Switch type
switch (type) {

View file

@ -564,6 +564,7 @@ const char STR_ALTITUDE[] = TR_ALTITUDE;
const char STR_SCALE[] = TR_SCALE;
const char STR_VIEW_CHANNELS[] = TR_VIEW_CHANNELS;
const char STR_AUX_SERIAL_MODE[] = TR_AUX_SERIAL_MODE;
const char STR_AUX2_SERIAL_MODE[] = TR_AUX2_SERIAL_MODE;
const char STR_THROTTLE_LABEL[] = TR_THROTTLE_LABEL;
const char STR_SCRIPT[] = TR_SCRIPT;
const char STR_INPUTS[] = TR_INPUTS;

View file

@ -864,6 +864,7 @@ extern const char STR_SCALE[];
extern const char STR_VIEW_CHANNELS[];
extern const char STR_POTWARNING[];
extern const char STR_AUX_SERIAL_MODE[];
extern const char STR_AUX2_SERIAL_MODE[];
extern const char STR_THROTTLE_LABEL[];
extern const char STR_SCRIPT[];
extern const char STR_INPUTS[];

View file

@ -981,6 +981,7 @@
#define TR_CHECKLIST TR(INDENT "Poznámky", INDENT "Zobrazit poznámky")
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Ofset")
#define TR_AUX_SERIAL_MODE "Seriový port"
#define TR_AUX2_SERIAL_MODE "Seriový port 2"
#define TR_SCRIPT "Skript"
#define TR_INPUTS "Vstupy"
#define TR_OUTPUTS "Výstupy"

View file

@ -987,6 +987,7 @@
#define TR_CHECKLIST TR(INDENT "Checkliste", INDENT "Checkliste anzeigen") //9XR-Pro
#define TR_FAS_OFFSET TR(INDENT "FAS-Ofs", INDENT "FAS-Offset")
#define TR_AUX_SERIAL_MODE "Serieller Port"
#define TR_AUX2_SERIAL_MODE "Serieller Port 2"
#define TR_SCRIPT "Lua-Skript"
#define TR_INPUTS "Eingaben"
#define TR_OUTPUTS "Ausgaben"

View file

@ -986,6 +986,7 @@
#define TR_CHECKLIST TR(INDENT "Checklist", INDENT "Display checklist")
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS offset")
#define TR_AUX_SERIAL_MODE "Serial port"
#define TR_AUX2_SERIAL_MODE "Serial port 2"
#define TR_SCRIPT "Script"
#define TR_INPUTS "Inputs"
#define TR_OUTPUTS "Outputs"

View file

@ -985,6 +985,7 @@
#define TR_CHECKLIST TR(INDENT "Lista verif", INDENT "Lista verificación")
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
#define TR_AUX_SERIAL_MODE "Puerto serie"
#define TR_AUX2_SERIAL_MODE "Puerto serie 2"
#define TR_SCRIPT "Script"
#define TR_INPUTS "Entradas"
#define TR_OUTPUTS "Salidas"

View file

@ -1000,6 +1000,7 @@
#define TR_CHECKLIST INDENT "Display Checklist"
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
#define TR_AUX_SERIAL_MODE "Serial port"
#define TR_AUX2_SERIAL_MODE "Serial port 2"
#define TR_SCRIPT "Script"
#define TR_INPUTS "Inputs"
#define TR_OUTPUTS "Outputs"

View file

@ -1002,6 +1002,7 @@
#define TR_CHECKLIST TR(INDENT "Notes", INDENT "Afficher notes")
#define TR_FAS_OFFSET TR(INDENT "Corr FAS", INDENT "Correction FAS")
#define TR_AUX_SERIAL_MODE "Port série"
#define TR_AUX2_SERIAL_MODE "Port série 2"
#define TR_SCRIPT "Script"
#define TR_INPUTS "Entrées"
#define TR_OUTPUTS "Sorties"

View file

@ -1002,6 +1002,7 @@
#define TR_CHECKLIST INDENT "Mostra Checklist"
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
#define TR_AUX_SERIAL_MODE "Porta Seriale"
#define TR_AUX2_SERIAL_MODE "Porta Seriale 2"
#define TR_SCRIPT "Script"
#define TR_INPUTS "Ingresso"
#define TR_OUTPUTS "Uscita"

View file

@ -988,6 +988,7 @@
#define TR_CHECKLIST TR(INDENT "Checklist", INDENT "Toon Checklist")
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
#define TR_AUX_SERIAL_MODE "Seriele poort"
#define TR_AUX2_SERIAL_MODE "Seriele poort 2"
#define TR_SCRIPT "Script"
#define TR_INPUTS "Inputs"
#define TR_OUTPUTS "Outputs"

View file

@ -1001,6 +1001,7 @@
#define TR_CHECKLIST TR(INDENT "Czeklista",INDENT "Pokaż Listę Ostrzeżeń")
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
#define TR_AUX_SERIAL_MODE "Port szreg."
#define TR_AUX2_SERIAL_MODE "Port szreg. 2"
#define TR_SCRIPT "Skrypt"
#define TR_INPUTS "Wejścia"
#define TR_OUTPUTS "Wyjścia"

View file

@ -991,6 +991,7 @@
#define TR_CHECKLIST INDENT "Display Checklist"
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
#define TR_AUX_SERIAL_MODE "Serial port"
#define TR_AUX2_SERIAL_MODE "Serial port 2"
#define TR_SCRIPT "Script"
#define TR_INPUTS "Inputs"
#define TR_OUTPUTS "Outputs"

View file

@ -1001,6 +1001,7 @@
#define TR_CHECKLIST TR(INDENT "Checklista", INDENT "Visa Checklista")
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
#define TR_AUX_SERIAL_MODE "Serieporten"
#define TR_AUX2_SERIAL_MODE "Serieporten 2"
#define TR_SCRIPT "Programkod"
#define TR_INPUTS "Input"
#define TR_OUTPUTS "Outputs"