From eb7488f670b4853c98a5d5abcc54b87a3899521f Mon Sep 17 00:00:00 2001 From: "bsongis@gmail.com" Date: Tue, 30 Apr 2013 08:59:09 +0000 Subject: [PATCH] [Taranis] Trainer master / slave toggled --- src/opentx.cpp | 19 ++++++++++++++++++- src/taranis/board_taranis.h | 2 ++ src/taranis/trainer_driver.cpp | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/opentx.cpp b/src/opentx.cpp index d66e569f2..c7f0a5c45 100644 --- a/src/opentx.cpp +++ b/src/opentx.cpp @@ -3590,6 +3590,23 @@ void perMain() telemetryWakeup(); #endif +#if defined(PCBTARANIS) + uint8_t requiredTrainerMode = g_model.trainerMode; + if (requiredTrainerMode != currentTrainerMode) { + currentTrainerMode = requiredTrainerMode; + if (requiredTrainerMode) { + // slave + stop_trainer_capture(); + init_trainer_ppm(); + } + else { + // master + stop_trainer_ppm(); + init_trainer_capture(); + } + } +#endif + lcd_clear(); const char *warn = s_warning; uint8_t menu = s_menu_count; @@ -4163,7 +4180,7 @@ void mixerTask(void * pdata) uint8_t heartbeatCheck = HEART_TIMER_10MS; #if defined(PCBTARANIS) if (g_model.moduleData[0].rfProtocol != RF_PROTO_OFF) - heartbeatCheck |= HEART_TIMER_PULSES; + heartbeatCheck |= HEART_TIMER_PULSES << 0; if (g_model.externalModule != MODULE_TYPE_NONE) heartbeatCheck |= HEART_TIMER_PULSES << 1; #else diff --git a/src/taranis/board_taranis.h b/src/taranis/board_taranis.h index 601213ac8..909aeaf67 100644 --- a/src/taranis/board_taranis.h +++ b/src/taranis/board_taranis.h @@ -183,4 +183,6 @@ void eeWriteBlockCmp(const void *pointer_ram, uint16_t pointer_eeprom, size_t si #endif #define EEPROM_MASSSTORAGE() (usb_connected) +extern uint8_t currentTrainerMode; + #endif diff --git a/src/taranis/trainer_driver.cpp b/src/taranis/trainer_driver.cpp index 70cc8fef2..984a4e73e 100644 --- a/src/taranis/trainer_driver.cpp +++ b/src/taranis/trainer_driver.cpp @@ -50,6 +50,7 @@ uint16_t TrainerPpmStream[20] = 0,0,0,0,0,0,0,0,0,0,0 }; +uint8_t currentTrainerMode; uint16_t * TrainerPulsePtr; // TODO remove duplicated code