@@ -53,7 +53,7 @@ option(MODULE_PROTOCOL_FLEX "Add support for non certified FLEX modules" OFF)
|
||||
option(MODULE_PROTOCOL_D8 "Add support for D8 modules" ON)
|
||||
option(FRSKY_RELEASE "Used to build FrSky released firmware" OFF)
|
||||
option(TBS_RELEASE "Used to build TBS released firmware" OFF)
|
||||
option(ALLOW_TRAINER_MULTI "Allow multi trainer" OFF)
|
||||
option(HARDWARE_TRAINER_MULTI "Allow multi trainer" OFF)
|
||||
option(BOOTLOADER "Include Bootloader" ON)
|
||||
|
||||
# since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags.
|
||||
@@ -371,8 +371,8 @@ if(FRSKY_RELEASE)
|
||||
set(POPUP_LEVEL 3)
|
||||
endif()
|
||||
|
||||
if(ALLOW_TRAINER_MULTI)
|
||||
add_definitions(-DALLOW_TRAINER_MULTI)
|
||||
if(HARDWARE_TRAINER_MULTI)
|
||||
add_definitions(-DHARDWARE_TRAINER_MULTI)
|
||||
endif()
|
||||
|
||||
add_definitions(-DPOPUP_LEVEL=${POPUP_LEVEL})
|
||||
|
||||
@@ -187,18 +187,16 @@ enum ModuleIndex {
|
||||
SPORT_MODULE,
|
||||
};
|
||||
enum TrainerMode {
|
||||
TRAINER_MODE_OFF,
|
||||
TRAINER_MODE_MASTER_TRAINER_JACK,
|
||||
TRAINER_MODE_SLAVE,
|
||||
#if defined(PCBTARANIS)
|
||||
TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE,
|
||||
TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE,
|
||||
#endif
|
||||
#if defined(PCBTARANIS) || defined(AUX_SERIAL)
|
||||
TRAINER_MODE_MASTER_BATTERY_COMPARTMENT,
|
||||
#endif
|
||||
TRAINER_MODE_MASTER_BLUETOOTH,
|
||||
TRAINER_MODE_SLAVE_BLUETOOTH,
|
||||
TRAINER_MODE_MULTI,
|
||||
TRAINER_MODE_MAX = TRAINER_MODE_MULTI
|
||||
};
|
||||
#elif defined(PCBSKY9X)
|
||||
enum ModuleIndex {
|
||||
@@ -208,16 +206,6 @@ enum TrainerMode {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(RADIO_FAMILY_T16) || defined(ALLOW_TRAINER_MULTI)
|
||||
#define TRAINER_MODE_MAX() TRAINER_MODE_MULTI
|
||||
#elif defined(BLUETOOTH)
|
||||
#define TRAINER_MODE_MAX() TRAINER_MODE_SLAVE_BLUETOOTH
|
||||
#elif defined(PCBX7) || defined(PCBXLITE)
|
||||
#define TRAINER_MODE_MAX() TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE
|
||||
#else
|
||||
#define TRAINER_MODE_MAX() HAS_WIRELESS_TRAINER_HARDWARE() ? TRAINER_MODE_MASTER_BATTERY_COMPARTMENT : TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE
|
||||
#endif
|
||||
|
||||
#if defined(HARDWARE_INTERNAL_MODULE)
|
||||
#define IS_INTERNAL_MODULE_ENABLED() (g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE)
|
||||
#else
|
||||
|
||||
@@ -405,8 +405,7 @@ PACK(struct TelemetrySensor {
|
||||
*/
|
||||
|
||||
PACK(struct TrainerModuleData {
|
||||
uint8_t mode:3;
|
||||
uint8_t spare1:5 SKIP;
|
||||
uint8_t mode;
|
||||
uint8_t channelsStart;
|
||||
int8_t channelsCount; // 0=8 channels
|
||||
int8_t frameLength;
|
||||
|
||||
@@ -1039,7 +1039,7 @@ void menuModelSetup(event_t event)
|
||||
lcdDrawTextAlignedLeft(y, INDENT TR_MODE);
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_VTRAINERMODES, g_model.trainerData.mode, attr);
|
||||
if (attr) {
|
||||
g_model.trainerData.mode = checkIncDec(event, g_model.trainerData.mode, 0, TRAINER_MODE_MAX(), EE_MODEL, isTrainerModeAvailable);
|
||||
g_model.trainerData.mode = checkIncDec(event, g_model.trainerData.mode, 0, TRAINER_MODE_MAX, EE_MODEL, isTrainerModeAvailable);
|
||||
#if defined(BLUETOOTH)
|
||||
if (checkIncDec_Ret) {
|
||||
bluetooth.state = BLUETOOTH_STATE_OFF;
|
||||
|
||||
@@ -916,7 +916,7 @@ void menuModelSetup(event_t event)
|
||||
lcdDrawTextAlignedLeft(y, INDENT TR_MODE);
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_VTRAINERMODES, g_model.trainerData.mode, attr);
|
||||
if (attr) {
|
||||
g_model.trainerData.mode = checkIncDec(event, g_model.trainerData.mode, 0, TRAINER_MODE_MAX(), EE_MODEL, isTrainerModeAvailable);
|
||||
g_model.trainerData.mode = checkIncDec(event, g_model.trainerData.mode, 0, TRAINER_MODE_MAX, EE_MODEL, isTrainerModeAvailable);
|
||||
#if defined(BLUETOOTH)
|
||||
if (checkIncDec_Ret) {
|
||||
bluetooth.state = BLUETOOTH_STATE_OFF;
|
||||
|
||||
@@ -449,6 +449,88 @@ class ReceiverButton: public TextButton {
|
||||
uint8_t receiverIdx;
|
||||
};
|
||||
|
||||
class TrainerModuleWindow : public FormGroup {
|
||||
public:
|
||||
TrainerModuleWindow(FormWindow * parent, const rect_t & rect) :
|
||||
FormGroup(parent, rect, FORWARD_SCROLL | FORM_FORWARD_FOCUS)
|
||||
{
|
||||
update();
|
||||
}
|
||||
|
||||
void update()
|
||||
{
|
||||
FormGridLayout grid;
|
||||
clear();
|
||||
|
||||
new StaticText(this, grid.getLabelSlot(true), STR_MODE);
|
||||
moduleChoice = new Choice(this, grid.getFieldSlot(), STR_VTRAINERMODES, 0, TRAINER_MODE_MAX, GET_DEFAULT(g_model.trainerData.mode), [=](int32_t newValue) {
|
||||
g_model.trainerData.mode = newValue;
|
||||
update();
|
||||
SET_DIRTY();
|
||||
moduleChoice->setFocus();
|
||||
});
|
||||
moduleChoice->setAvailableHandler(isTrainerModeAvailable);
|
||||
grid.nextLine();
|
||||
|
||||
if (g_model.trainerData.mode > TRAINER_MODE_OFF) {
|
||||
new StaticText(this, grid.getLabelSlot(true), STR_CHANNELRANGE);
|
||||
channelStart = new NumberEdit(this, grid.getFieldSlot(2, 0), 1,
|
||||
MAX_OUTPUT_CHANNELS - 8 + g_model.trainerData.channelsCount + 1,
|
||||
GET_DEFAULT(1 + g_model.trainerData.channelsStart));
|
||||
channelEnd = new NumberEdit(this, grid.getFieldSlot(2, 1),
|
||||
g_model.trainerData.channelsStart + 1,
|
||||
min<int8_t>(MAX_TRAINER_CHANNELS, g_model.trainerData.channelsStart + MAX_TRAINER_CHANNELS_M8),
|
||||
GET_DEFAULT(g_model.trainerData.channelsStart + 8 + g_model.trainerData.channelsCount));
|
||||
channelStart->setPrefix(STR_CH);
|
||||
channelEnd->setPrefix(STR_CH);
|
||||
channelStart->setSetValueHandler([=](int32_t newValue) {
|
||||
g_model.trainerData.channelsStart = newValue - 1;
|
||||
SET_DIRTY();
|
||||
channelEnd->setMin(g_model.trainerData.channelsStart + 1);
|
||||
channelEnd->setMax(min<int8_t>(MAX_TRAINER_CHANNELS, g_model.trainerData.channelsStart + MAX_TRAINER_CHANNELS_M8));
|
||||
channelEnd->invalidate();
|
||||
});
|
||||
channelEnd->setSetValueHandler([=](int32_t newValue) {
|
||||
g_model.trainerData.channelsCount = newValue - g_model.trainerData.channelsStart - 8;
|
||||
SET_DIRTY();
|
||||
channelStart->setMax(MAX_TRAINER_CHANNELS - 8 + g_model.trainerData.channelsCount + 1);
|
||||
});
|
||||
grid.nextLine();
|
||||
}
|
||||
|
||||
if (g_model.trainerData.mode == TRAINER_MODE_SLAVE) {
|
||||
// PPM frame
|
||||
new StaticText(this, grid.getLabelSlot(true), STR_PPMFRAME);
|
||||
|
||||
// PPM frame length
|
||||
auto edit = new NumberEdit(this, grid.getFieldSlot(3, 0), 125, 35 * 5 + 225,
|
||||
GET_DEFAULT(g_model.trainerData.frameLength * 5 + 225),
|
||||
SET_VALUE(g_model.trainerData.frameLength, (newValue - 225) / 5),
|
||||
PREC1);
|
||||
edit->setStep(5);
|
||||
edit->setSuffix(STR_MS);
|
||||
|
||||
// PPM frame delay
|
||||
edit = new NumberEdit(this, grid.getFieldSlot(3, 1), 100, 800,
|
||||
GET_DEFAULT(g_model.trainerData.delay * 50 + 300),
|
||||
SET_VALUE(g_model.trainerData.delay, (newValue - 300) / 50));
|
||||
edit->setStep(50);
|
||||
edit->setSuffix("us");
|
||||
|
||||
// PPM Polarity
|
||||
new Choice(this, grid.getFieldSlot(3, 2), STR_PPM_POL, 0, 1, GET_SET_DEFAULT(g_model.trainerData.pulsePol ));
|
||||
grid.nextLine();
|
||||
}
|
||||
getParent()->moveWindowsTop(top(), adjustHeight());
|
||||
getParent()->invalidate(); // TODO should be automatically done
|
||||
}
|
||||
|
||||
protected:
|
||||
Choice * moduleChoice = nullptr;
|
||||
NumberEdit * channelStart = nullptr;
|
||||
NumberEdit * channelEnd = nullptr;
|
||||
};
|
||||
|
||||
class ModuleWindow : public FormGroup {
|
||||
public:
|
||||
ModuleWindow(FormWindow * parent, const rect_t &rect, uint8_t moduleIdx) :
|
||||
@@ -1067,7 +1149,12 @@ void ModelSetupPage::build(FormWindow * window)
|
||||
grid.addWindow(new ModuleWindow(window, {0, grid.getWindowHeight(), LCD_W, 0}, EXTERNAL_MODULE));
|
||||
}
|
||||
|
||||
grid.nextLine();
|
||||
// Trainer
|
||||
{
|
||||
new Subtitle(window, grid.getLineSlot(), STR_TRAINER);
|
||||
grid.nextLine();
|
||||
grid.addWindow(new TrainerModuleWindow(window, {0, grid.getWindowHeight(), LCD_W, 0}));
|
||||
}
|
||||
|
||||
window->setInnerHeight(grid.getWindowHeight());
|
||||
}
|
||||
|
||||
@@ -734,40 +734,49 @@ bool isTelemetryProtocolAvailable(int protocol)
|
||||
|
||||
bool isTrainerModeAvailable(int mode)
|
||||
{
|
||||
#if defined(PCBTARANIS)
|
||||
if (IS_EXTERNAL_MODULE_ENABLED() && (mode == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE || mode == TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE))
|
||||
return false;
|
||||
switch(mode) {
|
||||
#if defined(HARDWARE_TRAINER_EXTERNAL_MODULE)
|
||||
case TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE:
|
||||
case TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE:
|
||||
return !IS_EXTERNAL_MODULE_ENABLED();
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9E)
|
||||
if (g_eeGeneral.bluetoothMode && mode == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE) {
|
||||
// bluetooth uses the same USART than SBUS
|
||||
return false;
|
||||
case TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE:
|
||||
// bluetooth uses the same USART than SBUS
|
||||
return !g_eeGeneral.bluetoothMode;
|
||||
#endif
|
||||
|
||||
#if defined(HARDWARE_TRAINER_AUX_SERIAL)
|
||||
case TRAINER_MODE_MASTER_BATTERY_COMPARTMENT:
|
||||
return g_eeGeneral.auxSerialMode == UART_MODE_SBUS_TRAINER;
|
||||
#endif
|
||||
|
||||
#if defined(HARDWARE_TRAINER_BLUETOOTH)
|
||||
case TRAINER_MODE_MASTER_BLUETOOTH:
|
||||
case TRAINER_MODE_SLAVE_BLUETOOTH:
|
||||
return g_eeGeneral.bluetoothMode == BLUETOOTH_TRAINER;
|
||||
#endif
|
||||
|
||||
#if defined(HARDWARE_TRAINER_JACK)
|
||||
case TRAINER_MODE_MASTER_TRAINER_JACK:
|
||||
case TRAINER_MODE_SLAVE:
|
||||
return true;
|
||||
#endif
|
||||
|
||||
#if defined(HARDWARE_TRAINER_MULTI)
|
||||
case TRAINER_MODE_MULTI:
|
||||
return true;
|
||||
#endif
|
||||
|
||||
#if !defined(TRAINER_DETECT_GPIO)
|
||||
case TRAINER_MODE_OFF:
|
||||
return true;
|
||||
#endif
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS) && !defined(TRAINER_BATTERY_COMPARTMENT)
|
||||
if (mode == TRAINER_MODE_MASTER_BATTERY_COMPARTMENT)
|
||||
return false;
|
||||
#elif defined(PCBTARANIS)
|
||||
if (mode == TRAINER_MODE_MASTER_BATTERY_COMPARTMENT)
|
||||
return g_eeGeneral.auxSerialMode == UART_MODE_SBUS_TRAINER;
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9E)
|
||||
if (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH)
|
||||
return false;
|
||||
#elif defined(BLUETOOTH)
|
||||
if (g_eeGeneral.bluetoothMode != BLUETOOTH_TRAINER && (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH))
|
||||
return false;
|
||||
#endif
|
||||
|
||||
#if defined(PCBXLITE) && !defined(PCBXLITES)
|
||||
if (mode == TRAINER_MODE_MASTER_TRAINER_JACK || mode == TRAINER_MODE_SLAVE)
|
||||
return false;
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool modelHasNotes()
|
||||
|
||||
@@ -10,7 +10,7 @@ endmacro(add_lua_export_target)
|
||||
|
||||
set(LUA_INCLUDES
|
||||
-DCPUARM -DLUA -DLUA_INPUTS -DLUA_EXPORT_GENERATION -DSIMU
|
||||
-I${RADIO_SRC_DIRECTORY}
|
||||
-I${RADIO_SRC_DIR}
|
||||
-I${RADIO_SRC_DIR}/targets/${TARGET_DIR}
|
||||
-I${RADIO_SRC_DIR}/thirdparty
|
||||
-I${RADIO_SRC_DIR}/targets/common/arm/stm32
|
||||
|
||||
@@ -33,15 +33,12 @@
|
||||
#define GET_MODULE_PPM_DELAY(idx) (g_model.moduleData[idx].ppm.delay * 50 + 300)
|
||||
#define GET_TRAINER_PPM_DELAY() (g_model.trainerData.delay * 50 + 300)
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#define IS_TRAINER_EXTERNAL_MODULE() false
|
||||
#define HAS_WIRELESS_TRAINER_HARDWARE() (g_eeGeneral.auxSerialMode==UART_MODE_SBUS_TRAINER)
|
||||
#elif defined(PCBTARANIS)
|
||||
#define IS_TRAINER_EXTERNAL_MODULE() (g_model.trainerData.mode == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE || g_model.trainerData.mode == TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE)
|
||||
#define HAS_WIRELESS_TRAINER_HARDWARE() (g_eeGeneral.auxSerialMode == UART_MODE_SBUS_TRAINER)
|
||||
#if defined(HARDWARE_TRAINER_EXTERNAL_MODULE)
|
||||
#define IS_TRAINER_EXTERNAL_MODULE() (g_model.trainerData.mode == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE || g_model.trainerData.mode == TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE)
|
||||
#else
|
||||
#define IS_TRAINER_EXTERNAL_MODULE() false
|
||||
#define IS_TRAINER_EXTERNAL_MODULE() false
|
||||
#endif
|
||||
#define IS_TRAINER_AUX_SERIAL() (g_eeGeneral.auxSerialMode==UART_MODE_SBUS_TRAINER)
|
||||
|
||||
#define IS_PLAY_FUNC(func) ((func) >= FUNC_PLAY_SOUND && func <= FUNC_PLAY_VALUE)
|
||||
|
||||
|
||||
@@ -129,6 +129,7 @@ add_definitions(-DPCBHORUS -DSTM32F429_439xx -DSDRAM -DCOLORLCD -DHARDWARE_KEYS)
|
||||
add_definitions(-DEEPROM_VARIANT=0 -DAUDIO -DVOICE -DRTCLOCK)
|
||||
add_definitions(-DGPS_USART_BAUDRATE=${INTERNAL_GPS_BAUDRATE})
|
||||
add_definitions(-DPWR_BUTTON_${PWR_BUTTON})
|
||||
add_definitions(-DHARDWARE_TRAINER_JACK)
|
||||
|
||||
if(NOT UNEXPECTED_SHUTDOWN)
|
||||
add_definitions(-DNO_UNEXPECTED_SHUTDOWN)
|
||||
@@ -186,6 +187,7 @@ if(BLUETOOTH)
|
||||
add_definitions(-DBLUETOOTH)
|
||||
set(TARGET_SRC ${TARGET_SRC} ../common/arm/stm32/bluetooth_driver.cpp)
|
||||
set(SRC ${SRC} bluetooth.cpp)
|
||||
add_definitions(-DHARDWARE_TRAINER_BLUETOOTH)
|
||||
endif()
|
||||
|
||||
if (AUX_SERIAL)
|
||||
|
||||
@@ -407,7 +407,7 @@
|
||||
#define AUX_SERIAL_DMA_Channel_RX DMA_Channel_5
|
||||
#define AUX_SERIAL_PWR_GPIO GPIOB
|
||||
#define AUX_SERIAL_PWR_GPIO_PIN GPIO_Pin_0 // PB.00
|
||||
#define TRAINER_BATTERY_COMPARTMENT
|
||||
#define HARDWARE_TRAINER_AUX_SERIAL
|
||||
|
||||
#define AUX2_SERIAL_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
|
||||
#define AUX2_SERIAL_PWR_GPIO GPIOA
|
||||
|
||||
@@ -16,6 +16,7 @@ set(GUI_DIR colorlcd)
|
||||
set(BITMAPS_DIR 480x272)
|
||||
# set(NAVIGATION_TYPE touch)
|
||||
set(TARGET_DIR nv14)
|
||||
add_definitions(-DHARDWARE_TRAINER_JACK)
|
||||
|
||||
if(BOOTLOADER)
|
||||
set(LINKER_SCRIPT targets/nv14/stm32f4_flash_bootloader.ld)
|
||||
|
||||
@@ -215,6 +215,9 @@ void calcConsumption();
|
||||
#define TRAINER_CONNECTED() (PIOA->PIO_PDSR & PIO_PA8)
|
||||
void init_trainer_capture();
|
||||
void stop_trainer_capture();
|
||||
#define TRAINER_DETECT_GPIO PIOA
|
||||
#define TRAINER_DETECT_GPIO_PIN PIO_PA8
|
||||
#define TRAINER_CONNECTED() (TRAINER_DETECT_GPIO->PIO_PDSR & TRAINER_DETECT_GPIO_PIN)
|
||||
|
||||
// Write Flash driver
|
||||
#define FLASH_PAGESIZE 256
|
||||
|
||||
@@ -281,6 +281,10 @@ elseif(PCB STREQUAL XLITES)
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
endif()
|
||||
|
||||
if(NOT PCB STREQUAL PCBXLITE)
|
||||
add_definitions(-DHARDWARE_TRAINER_JACK)
|
||||
endif()
|
||||
|
||||
if(GYRO)
|
||||
add_definitions(-DGYRO)
|
||||
set(TARGET_SRC
|
||||
@@ -326,6 +330,10 @@ if(BLUETOOTH)
|
||||
${SRC}
|
||||
bluetooth.cpp
|
||||
)
|
||||
if(NOT PCB STREQUAL X9E)
|
||||
# Bluetooth on X9E is compatible with almost nothing
|
||||
add_definitions(-DHARDWARE_TRAINER_BLUETOOTH)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(AUTOUPDATE)
|
||||
|
||||
@@ -1233,6 +1233,7 @@
|
||||
#endif
|
||||
|
||||
// Trainer Port
|
||||
#define HARDWARE_TRAINER_EXTERNAL_MODULE
|
||||
#if defined(PCBXLITES) || defined(PCBX9LITE)
|
||||
// on these 2 radios the trainer port already uses DMA1_Stream6, we won't use the DMA
|
||||
#define TRAINER_RCC_AHB1Periph RCC_AHB1Periph_GPIOD
|
||||
@@ -1311,7 +1312,7 @@
|
||||
#define AUX_SERIAL_RCC_APB1Periph 0
|
||||
#define AUX_SERIAL_RCC_APB2Periph 0
|
||||
#else
|
||||
#define TRAINER_BATTERY_COMPARTMENT
|
||||
#define HARDWARE_TRAINER_AUX_SERIAL
|
||||
#define AUX_SERIAL_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
|
||||
#define AUX_SERIAL_RCC_APB1Periph RCC_APB1Periph_USART3
|
||||
#define AUX_SERIAL_RCC_APB2Periph 0
|
||||
|
||||
@@ -87,7 +87,7 @@ void checkTrainerSettings()
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(TRAINER_BATTERY_COMPARTMENT)
|
||||
#if defined(HARDWARE_TRAINER_AUX_SERIAL)
|
||||
case TRAINER_MODE_MASTER_BATTERY_COMPARTMENT:
|
||||
auxSerialStop();
|
||||
break;
|
||||
@@ -113,7 +113,7 @@ void checkTrainerSettings()
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(TRAINER_BATTERY_COMPARTMENT)
|
||||
#if defined(HARDWARE_TRAINER_AUX_SERIAL)
|
||||
case TRAINER_MODE_MASTER_BATTERY_COMPARTMENT:
|
||||
if (g_eeGeneral.auxSerialMode == UART_MODE_SBUS_TRAINER)
|
||||
auxSerialSbusInit();
|
||||
|
||||
@@ -357,6 +357,7 @@
|
||||
#define TR_VTMRMODES "OFF\0""ON\0 ""Strt""THs\0""TH%\0""THt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Master/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Slave/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Master/SBUS Module"
|
||||
|
||||
@@ -348,6 +348,7 @@
|
||||
#define TR_VTMRMODES "VYP\0""ZAP\0""Pln>""Pln%""Pln*"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Učitel/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Žák/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Učitel/SBUS Modul\0"
|
||||
|
||||
@@ -354,6 +354,7 @@
|
||||
#define TR_VTMRMODES "AUS""EIN""GSs""GS%""GSt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Lehrer/Buchse\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Schüler/Buchse\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Lehrer/SBUS Modul\0"
|
||||
|
||||
@@ -354,6 +354,7 @@
|
||||
#define TR_VTMRMODES "OFF\0""ON\0 ""Strt""THs\0""TH%\0""THt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Master/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Slave/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Master/SBUS Module"
|
||||
|
||||
@@ -369,6 +369,7 @@
|
||||
#define TR_VTMRMODES "OFF""ABS""THs""TH%""THt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Master/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Esclav/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Master/SBUS Module"
|
||||
|
||||
@@ -369,6 +369,7 @@
|
||||
#define TR_VTMRMODES "OFF""ABS""THs""TH%""THt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Master/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Slave/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Master/SBUS Module"
|
||||
|
||||
@@ -371,6 +371,7 @@
|
||||
#define TR_VTMRMODES "OFF""ON\0""GZs""GZ%""GZt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Maître/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Elève/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Maître/SBUS Module"
|
||||
|
||||
@@ -376,6 +376,7 @@
|
||||
#define TR_VTMRMODES "OFF""ABS""MOs""MO%""MOt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Maestro/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Allievo/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Master/Modulo SBUS"
|
||||
|
||||
@@ -351,6 +351,7 @@
|
||||
#define TR_VTMRMODES "UIT""AAN""THs""TH%""THt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Master/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Slave/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Master/SBUS Module"
|
||||
|
||||
@@ -371,7 +371,8 @@
|
||||
#define LEN_VTMRMODES "\003"
|
||||
#define TR_VTMRMODES "WYŁ""ABS""THs""TH%""THt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022" /*18 decimal*/
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 " /*18 decimal*/
|
||||
#define TR_VTRAINER_MASTER_JACK "Trener/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Uczeń/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Trener/SBUS Moduł "
|
||||
|
||||
@@ -354,6 +354,7 @@
|
||||
#define TR_VTMRMODES "OFF""ABS""MTs""MT%""MTt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Master/Jack\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Slave/Jack\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Master/SBUS Module"
|
||||
|
||||
@@ -370,6 +370,7 @@
|
||||
#define TR_VTMRMODES "Av\0""På\0""GAs""GA%""GAt"
|
||||
|
||||
#define LEN_VTRAINERMODES "\022"
|
||||
#define TR_VTRAINER_MASTER_OFF "Off\0 "
|
||||
#define TR_VTRAINER_MASTER_JACK "Lärare/Uttag\0 "
|
||||
#define TR_VTRAINER_SLAVE_JACK "Elev./Uttag\0 "
|
||||
#define TR_VTRAINER_MASTER_SBUS_MODULE "Lärare/SBUS-Modul\0"
|
||||
|
||||
@@ -71,7 +71,9 @@
|
||||
#define TR_VSWITCHES "---" "ID0""ID1""ID2" "THR""RUD""ELE""AIL""GEA""TRN" TR_TRIMS_SWITCHES TR_ROTENC_SWITCHES TR_ON_ONE_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS) && defined(AUX_SERIAL)
|
||||
#if defined(PCBNV14)
|
||||
#define TR_VTRAINERMODES TR_VTRAINER_MASTER_OFF TR_VTRAINER_MASTER_JACK TR_VTRAINER_SLAVE_JACK TR_VTRAINER_BLUETOOTH TR_VTRAINER_MULTI
|
||||
#elif defined(PCBHORUS) && defined(AUX_SERIAL)
|
||||
#define TR_VTRAINERMODES TR_VTRAINER_MASTER_JACK TR_VTRAINER_SLAVE_JACK TR_VTRAINER_MASTER_BATTERY TR_VTRAINER_BLUETOOTH TR_VTRAINER_MULTI
|
||||
#elif defined(PCBHORUS)
|
||||
#define TR_VTRAINERMODES TR_VTRAINER_MASTER_JACK TR_VTRAINER_SLAVE_JACK TR_VTRAINER_BLUETOOTH TR_VTRAINER_MULTI
|
||||
|
||||
Reference in New Issue
Block a user