1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-25 17:25:13 +03:00

PXX2 always defined. PROTOCOL enums renamed. IRPROTOS removed

This commit is contained in:
Bertrand Songis 2018-11-28 18:02:14 +01:00
parent b30c9b63cd
commit b72ccb4836
34 changed files with 174 additions and 343 deletions

View file

@ -47,7 +47,6 @@ option(FRSKY_STICKS "Reverse sticks for FrSky sticks" OFF)
option(NANO "Use nano newlib and binalloc") option(NANO "Use nano newlib and binalloc")
option(NIGHTLY_BUILD_WARNING "Warn this is a nightly build" OFF) option(NIGHTLY_BUILD_WARNING "Warn this is a nightly build" OFF)
option(MODULE_R9M_FLEX_FW "Add R9M options for non certified firmwwares" OFF) option(MODULE_R9M_FLEX_FW "Add R9M options for non certified firmwwares" OFF)
option(PXX2 "Enable PXX v2 support" OFF)
# since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags. # since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags.
set(FIRMWARE_C_FLAGS "" CACHE STRING "Additional flags for firmware target c compiler (note: all CMAKE_C_FLAGS[_*] are ignored for firmware/bootloader).") set(FIRMWARE_C_FLAGS "" CACHE STRING "Additional flags for firmware target c compiler (note: all CMAKE_C_FLAGS[_*] are ignored for firmware/bootloader).")
@ -317,10 +316,6 @@ if(MODULE_R9M_FLEX_FW)
add_definitions(-DMODULE_R9M_FLEX_FW) add_definitions(-DMODULE_R9M_FLEX_FW)
endif() endif()
if(PXX2)
add_definitions(-DPXX2)
endif()
set(SRC set(SRC
${SRC} ${SRC}
opentx.cpp opentx.cpp

View file

@ -224,12 +224,12 @@ enum BeeperMode {
#endif #endif
#if defined(PCBTARANIS) || defined(PCBHORUS) #if defined(PCBTARANIS) || defined(PCBHORUS)
#define IS_INTERNAL_MODULE_ENABLED() (g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE) #define IS_INTERNAL_MODULE_ENABLED() (g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE)
#elif defined(PCBSKY9X) #elif defined(PCBSKY9X)
#define IS_INTERNAL_MODULE_ENABLED() (false) #define IS_INTERNAL_MODULE_ENABLED() (false)
#endif #endif
#define IS_EXTERNAL_MODULE_ENABLED() (g_model.moduleData[EXTERNAL_MODULE].type != MODULE_TYPE_NONE)
#define IS_EXTERNAL_MODULE_ENABLED() (g_model.moduleData[EXTERNAL_MODULE].type != MODULE_TYPE_NONE)
enum UartModes { enum UartModes {
#if defined(CLI) || defined(DEBUG) #if defined(CLI) || defined(DEBUG)

View file

@ -155,8 +155,7 @@ void evalFunctions(const CustomFunctionData * functions, CustomFunctionsContext
active &= (bool)CFN_ACTIVE(cfn); active &= (bool)CFN_ACTIVE(cfn);
} }
if (active || IS_PLAY_BOTH_FUNC(CFN_FUNC(cfn))) { if (active) {
switch (CFN_FUNC(cfn)) { switch (CFN_FUNC(cfn)) {
#if defined(OVERRIDE_CHANNEL_FUNCTION) #if defined(OVERRIDE_CHANNEL_FUNCTION)

View file

@ -543,7 +543,7 @@ void menuModelTelemetryFrsky(event_t event)
case ITEM_TELEMETRY_RSSI_LABEL: case ITEM_TELEMETRY_RSSI_LABEL:
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
if (telemetryProtocol == PROTOCOL_MULTIMODULE && if (telemetryProtocol == PROTOCOL_TELEMETRY_MULTIMODULE &&
g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false) == MM_RF_PROTO_FS_AFHDS2A) g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false) == MM_RF_PROTO_FS_AFHDS2A)
lcdDrawTextAlignedLeft(y, "RSNR"); lcdDrawTextAlignedLeft(y, "RSNR");
else else

View file

@ -537,23 +537,23 @@ bool isRfProtocolAvailable(int protocol)
bool isTelemetryProtocolAvailable(int protocol) bool isTelemetryProtocolAvailable(int protocol)
{ {
#if defined(PCBTARANIS) #if defined(PCBTARANIS)
if (protocol == PROTOCOL_FRSKY_D_SECONDARY && g_eeGeneral.serial2Mode != UART_MODE_TELEMETRY) { if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY && g_eeGeneral.serial2Mode != UART_MODE_TELEMETRY) {
return false; return false;
} }
#endif #endif
if (protocol== PROTOCOL_PULSES_CROSSFIRE) { if (protocol== PROTOCOL_TELEMETRY_CROSSFIRE) {
return false; return false;
} }
#if !defined(MULTIMODULE) #if !defined(MULTIMODULE)
if (protocol == PROTOCOL_SPEKTRUM || protocol == PROTOCOL_FLYSKY_IBUS || protocol == PROTOCOL_MULTIMODULE) { if (protocol == PROTOCOL_TELEMETRY_SPEKTRUM || protocol == PROTOCOL_TELEMETRY_FLYSKY_IBUS || protocol == PROTOCOL_TELEMETRY_MULTIMODULE) {
return false; return false;
} }
#endif #endif
#if defined(PCBHORUS) #if defined(PCBHORUS)
if (protocol == PROTOCOL_FRSKY_D_SECONDARY) { if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
return false; return false;
} }
#endif #endif

View file

@ -176,7 +176,7 @@ const char * sportUpdatePowerOn(ModuleIndex module)
sportUpdateState = SPORT_POWERUP_REQ; sportUpdateState = SPORT_POWERUP_REQ;
sportWaitState(SPORT_IDLE, 500); // Clear the fifo sportWaitState(SPORT_IDLE, 500); // Clear the fifo
telemetryInit(PROTOCOL_FRSKY_SPORT); telemetryInit(PROTOCOL_TELEMETRY_FRSKY_SPORT);
#if defined(PCBTARANIS) || defined(PCBHORUS) #if defined(PCBTARANIS) || defined(PCBHORUS)
if (module == INTERNAL_MODULE) if (module == INTERNAL_MODULE)
@ -199,7 +199,7 @@ const char * sportUpdatePowerOn(ModuleIndex module)
return NULL; return NULL;
} }
if (telemetryProtocol != PROTOCOL_FRSKY_SPORT) { if (telemetryProtocol != PROTOCOL_TELEMETRY_FRSKY_SPORT) {
return TR("Not responding", "Not S.Port 1"); return TR("Not responding", "Not S.Port 1");
} }

View file

@ -23,20 +23,8 @@
#include "datastructs.h" #include "datastructs.h"
#define WARN_THR_BIT 0x01 #define EEPROM_VER 218
#define WARN_BEP_BIT 0x80 #define FIRST_CONV_EEPROM_VER 216
#define WARN_SW_BIT 0x02
#define WARN_MEM_BIT 0x04
#define WARN_BVAL_BIT 0x38
#define WARN_THR (!(g_eeGeneral.warnOpts & WARN_THR_BIT))
#define WARN_BEP (!(g_eeGeneral.warnOpts & WARN_BEP_BIT))
#define WARN_SW (!(g_eeGeneral.warnOpts & WARN_SW_BIT))
#define WARN_MEM (!(g_eeGeneral.warnOpts & WARN_MEM_BIT))
#define BEEP_VAL ( (g_eeGeneral.warnOpts & WARN_BVAL_BIT) >>3 )
#define EEPROM_VER 218
#define FIRST_CONV_EEPROM_VER 216
#define GET_PPM_POLARITY(idx) g_model.moduleData[idx].ppm.pulsePol #define GET_PPM_POLARITY(idx) g_model.moduleData[idx].ppm.pulsePol
#define GET_SBUS_POLARITY(idx) g_model.moduleData[idx].sbus.noninverted #define GET_SBUS_POLARITY(idx) g_model.moduleData[idx].sbus.noninverted
@ -53,10 +41,7 @@
#define IS_TRAINER_EXTERNAL_MODULE() false #define IS_TRAINER_EXTERNAL_MODULE() false
#endif #endif
#define IS_PLAY_FUNC(func) ((func) >= FUNC_PLAY_SOUND && func <= FUNC_PLAY_VALUE) #define IS_PLAY_FUNC(func) ((func) >= FUNC_PLAY_SOUND && func <= FUNC_PLAY_VALUE)
#define IS_PLAY_BOTH_FUNC(func) (0)
#define IS_VOLUME_FUNC(func) ((func) == FUNC_VOLUME)
#if defined(GVARS) #if defined(GVARS)
#define IS_ADJUST_GV_FUNC(func) ((func) == FUNC_ADJUST_GVAR) #define IS_ADJUST_GV_FUNC(func) ((func) == FUNC_ADJUST_GVAR)
@ -141,21 +126,20 @@ enum CurveRefType {
CURVE_REF_CUSTOM CURVE_REF_CUSTOM
}; };
#define MIN_EXPO_WEIGHT -100 #define MIN_EXPO_WEIGHT -100
#define EXPO_VALID(ed) ((ed)->mode) #define EXPO_VALID(ed) ((ed)->mode)
#define EXPO_MODE_ENABLE(ed, v) (((v)<0 && ((ed)->mode&1)) || ((v)>=0 && ((ed)->mode&2))) #define EXPO_MODE_ENABLE(ed, v) (((v)<0 && ((ed)->mode&1)) || ((v)>=0 && ((ed)->mode&2)))
#define limit_min_max_t int16_t #define limit_min_max_t int16_t
#define LIMIT_EXT_PERCENT 150 #define LIMIT_EXT_PERCENT 150
#define LIMIT_EXT_MAX (LIMIT_EXT_PERCENT*10) #define LIMIT_EXT_MAX (LIMIT_EXT_PERCENT*10)
#define PPM_CENTER_MAX 500 #define PPM_CENTER_MAX 500
#define LIMIT_MAX(lim) (GV_IS_GV_VALUE(lim->max, -GV_RANGELARGE, GV_RANGELARGE) ? GET_GVAR_PREC1(lim->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, mixerCurrentFlightMode) : lim->max+1000) #define LIMIT_MAX(lim) (GV_IS_GV_VALUE(lim->max, -GV_RANGELARGE, GV_RANGELARGE) ? GET_GVAR_PREC1(lim->max, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, mixerCurrentFlightMode) : lim->max+1000)
#define LIMIT_MIN(lim) (GV_IS_GV_VALUE(lim->min, -GV_RANGELARGE, GV_RANGELARGE) ? GET_GVAR_PREC1(lim->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, mixerCurrentFlightMode) : lim->min-1000) #define LIMIT_MIN(lim) (GV_IS_GV_VALUE(lim->min, -GV_RANGELARGE, GV_RANGELARGE) ? GET_GVAR_PREC1(lim->min, -LIMIT_EXT_MAX, LIMIT_EXT_MAX, mixerCurrentFlightMode) : lim->min-1000)
#define LIMIT_OFS(lim) (GV_IS_GV_VALUE(lim->offset, -1000, 1000) ? GET_GVAR_PREC1(lim->offset, -1000, 1000, mixerCurrentFlightMode) : lim->offset) #define LIMIT_OFS(lim) (GV_IS_GV_VALUE(lim->offset, -1000, 1000) ? GET_GVAR_PREC1(lim->offset, -1000, 1000, mixerCurrentFlightMode) : lim->offset)
#define LIMIT_MAX_RESX(lim) calc1000toRESX(LIMIT_MAX(lim)) #define LIMIT_MAX_RESX(lim) calc1000toRESX(LIMIT_MAX(lim))
#define LIMIT_MIN_RESX(lim) calc1000toRESX(LIMIT_MIN(lim)) #define LIMIT_MIN_RESX(lim) calc1000toRESX(LIMIT_MIN(lim))
#define LIMIT_OFS_RESX(lim) calc1000toRESX(LIMIT_OFS(lim)) #define LIMIT_OFS_RESX(lim) calc1000toRESX(LIMIT_OFS(lim))
#define TRIM_OFF (1) #define TRIM_OFF (1)
#define TRIM_ON (0) #define TRIM_ON (0)
@ -191,8 +175,6 @@ enum CurveRefType {
#define MD_OFFSET(md) (md->offset) #define MD_OFFSET(md) (md->offset)
#define MD_OFFSET_TO_UNION(md, var) var.word = md->offset #define MD_OFFSET_TO_UNION(md, var) var.word = md->offset
#define MD_UNION_TO_OFFSET(var, md) md->offset = var.word #define MD_UNION_TO_OFFSET(var, md) md->offset = var.word
// #define MD_SETOFFSET(md, val) md->offset = val
enum LogicalSwitchesFunctions { enum LogicalSwitchesFunctions {
LS_FUNC_NONE, LS_FUNC_NONE,
@ -222,14 +204,6 @@ enum LogicalSwitchesFunctions {
#define MAX_LS_DELAY 250 /*25s*/ #define MAX_LS_DELAY 250 /*25s*/
#define MAX_LS_ANDSW SWSRC_LAST #define MAX_LS_ANDSW SWSRC_LAST
//#define TELEM_FLAG_TIMEOUT 0x01
#define TELEM_FLAG_LOG 0x02
//#define TELEM_FLAG_PERSISTENT 0x04
//#define TELEM_FLAG_SCALE 0x08
#define TELEM_FLAG_AUTO_OFFSET 0x10
#define TELEM_FLAG_FILTER 0x20
#define TELEM_FLAG_LOSS_ALARM 0x40
enum TelemetrySensorType enum TelemetrySensorType
{ {
TELEM_TYPE_CUSTOM, TELEM_TYPE_CUSTOM,
@ -251,16 +225,10 @@ enum TelemetrySensorFormula
}; };
enum VarioSource { enum VarioSource {
#if !defined(TELEMETRY_FRSKY_SPORT)
VARIO_SOURCE_ALTI,
VARIO_SOURCE_ALTI_PLUS,
#endif
VARIO_SOURCE_VSPEED, VARIO_SOURCE_VSPEED,
VARIO_SOURCE_A1, VARIO_SOURCE_A1,
VARIO_SOURCE_A2, VARIO_SOURCE_A2,
#if defined(TELEMETRY_FRSKY_SPORT)
VARIO_SOURCE_DTE, VARIO_SOURCE_DTE,
#endif
VARIO_SOURCE_COUNT, VARIO_SOURCE_COUNT,
VARIO_SOURCE_LAST = VARIO_SOURCE_COUNT-1 VARIO_SOURCE_LAST = VARIO_SOURCE_COUNT-1
}; };
@ -292,8 +260,6 @@ enum FrskyVoltsSource {
FRSKY_VOLTS_SOURCE_LAST=FRSKY_VOLTS_SOURCE_CELLS FRSKY_VOLTS_SOURCE_LAST=FRSKY_VOLTS_SOURCE_CELLS
}; };
enum SwashType { enum SwashType {
SWASH_TYPE_NONE, SWASH_TYPE_NONE,
SWASH_TYPE_120, SWASH_TYPE_120,
@ -310,8 +276,8 @@ enum SwashType {
#define ROTARY_ENCODER_MAX 1024 #define ROTARY_ENCODER_MAX 1024
#define TRIMS_ARRAY_SIZE 8 #define TRIMS_ARRAY_SIZE 8
#define TRIM_MODE_NONE 0x1F // 0b11111 #define TRIM_MODE_NONE 0x1F // 0b11111
#define IS_MANUAL_RESET_TIMER(idx) (g_model.timers[idx].persistent == 2) #define IS_MANUAL_RESET_TIMER(idx) (g_model.timers[idx].persistent == 2)
@ -321,37 +287,23 @@ enum SwashType {
#define TIMER_COUNTDOWN_START(x) 10 #define TIMER_COUNTDOWN_START(x) 10
#endif #endif
enum Protocols { enum ChannelsProtocols {
PROTO_PPM, PROTOCOL_CHANNELS_PPM,
#if defined(PXX) || defined(DSM2) || defined(IRPROTOS) #if defined(PXX) || defined(DSM2)
PROTO_PXX, PROTOCOL_CHANNELS_PXX,
#endif #endif
#if defined(DSM2) || defined(IRPROTOS) #if defined(DSM2)
PROTO_DSM2_LP45, PROTOCOL_CHANNELS_DSM2_LP45,
PROTO_DSM2_DSM2, PROTOCOL_CHANNELS_DSM2_DSM2,
PROTO_DSM2_DSMX, PROTOCOL_CHANNELS_DSM2_DSMX,
#endif #endif
PROTO_CROSSFIRE, PROTOCOL_CHANNELS_CROSSFIRE,
#if defined(IRPROTOS) PROTOCOL_CHANNELS_MULTIMODULE,
// only used on AVR PROTOCOL_CHANNELS_SBUS,
// we will need 4 bits for proto :( PROTOCOL_CHANNELS_PXX2,
PROTO_SILV, PROTOCOL_CHANNELS_NONE
PROTO_TRAC09,
PROTO_PICZ,
PROTO_SWIFT,
#endif
PROTO_MULTIMODULE,
PROTO_SBUS,
PROTO_PXX2,
PROTO_NONE
}; };
#if defined(PXX2)
#define PROTO_PXX_EXTERNAL_MODULE PROTO_PXX2
#else
#define PROTO_PXX_EXTERNAL_MODULE PROTO_PXX
#endif
enum XJTRFProtocols { enum XJTRFProtocols {
RF_PROTO_OFF = -1, RF_PROTO_OFF = -1,
RF_PROTO_X16, RF_PROTO_X16,
@ -492,17 +444,18 @@ enum ThrottleSources {
THROTTLE_SOURCE_CH1, THROTTLE_SOURCE_CH1,
}; };
enum TelemetryType enum TelemetryProtocols
{ {
PROTOCOL_TELEMETRY_FIRST, PROTOCOL_TELEMETRY_FIRST,
PROTOCOL_FRSKY_SPORT = PROTOCOL_TELEMETRY_FIRST, PROTOCOL_TELEMETRY_FRSKY_SPORT = PROTOCOL_TELEMETRY_FIRST,
PROTOCOL_FRSKY_D, PROTOCOL_TELEMETRY_FRSKY_D,
PROTOCOL_FRSKY_D_SECONDARY, PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY,
PROTOCOL_PULSES_CROSSFIRE, PROTOCOL_TELEMETRY_CROSSFIRE,
PROTOCOL_SPEKTRUM, PROTOCOL_TELEMETRY_SPEKTRUM,
PROTOCOL_FLYSKY_IBUS, PROTOCOL_TELEMETRY_FLYSKY_IBUS,
PROTOCOL_MULTIMODULE, PROTOCOL_TELEMETRY_MULTIMODULE,
PROTOCOL_TELEMETRY_LAST=PROTOCOL_MULTIMODULE PROTOCOL_TELEMETRY_LAST=PROTOCOL_TELEMETRY_MULTIMODULE,
PROTOCOL_TELEMETRY_PXX2,
}; };
enum DisplayTrims enum DisplayTrims
@ -512,8 +465,6 @@ enum DisplayTrims
DISPLAY_TRIMS_ALWAYS DISPLAY_TRIMS_ALWAYS
}; };
#define TOTAL_EEPROM_USAGE (sizeof(ModelData)*MAX_MODELS + sizeof(RadioData))
extern RadioData g_eeGeneral; extern RadioData g_eeGeneral;
extern ModelData g_model; extern ModelData g_model;

View file

@ -125,10 +125,10 @@ void setupPulsesDSM2(uint8_t port)
modulePulsesData[EXTERNAL_MODULE].dsm2.ptr = modulePulsesData[EXTERNAL_MODULE].dsm2.pulses; modulePulsesData[EXTERNAL_MODULE].dsm2.ptr = modulePulsesData[EXTERNAL_MODULE].dsm2.pulses;
switch (s_current_protocol[port]) { switch (s_current_protocol[port]) {
case PROTO_DSM2_LP45: case PROTOCOL_CHANNELS_DSM2_LP45:
dsmDat[0] = 0x00; dsmDat[0] = 0x00;
break; break;
case PROTO_DSM2_DSM2: case PROTOCOL_CHANNELS_DSM2_DSM2:
dsmDat[0] = 0x10; dsmDat[0] = 0x10;
break; break;
default: // DSMX default: // DSMX

View file

@ -51,7 +51,7 @@ enum ModuleFlag
#endif #endif
#if defined(DSM2) #if defined(DSM2)
#define IS_DSM2_PROTOCOL(protocol) (protocol>=PROTO_DSM2_LP45 && protocol<=PROTO_DSM2_DSMX) #define IS_DSM2_PROTOCOL(protocol) (protocol>=PROTOCOL_CHANNELS_DSM2_LP45 && protocol<=PROTOCOL_CHANNELS_DSM2_DSMX)
#else #else
#define IS_DSM2_PROTOCOL(protocol) (0) #define IS_DSM2_PROTOCOL(protocol) (0)
#endif #endif
@ -63,7 +63,7 @@ enum ModuleFlag
#endif #endif
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
#define IS_MULTIMODULE_PROTOCOL(protocol) (protocol==PROTO_MULTIMODULE) #define IS_MULTIMODULE_PROTOCOL(protocol) (protocol==PROTOCOL_CHANNELS_MULTIMODULE)
#if !defined(DSM2) #if !defined(DSM2)
#error You need to enable DSM2 = PPM for MULTIMODULE support #error You need to enable DSM2 = PPM for MULTIMODULE support
#endif #endif
@ -71,7 +71,7 @@ enum ModuleFlag
#define IS_MULTIMODULE_PROTOCOL(protocol) (0) #define IS_MULTIMODULE_PROTOCOL(protocol) (0)
#endif #endif
#define IS_SBUS_PROTOCOL(protocol) (protocol == PROTO_SBUS) #define IS_SBUS_PROTOCOL(protocol) (protocol == PROTOCOL_CHANNELS_SBUS)
#include "pulses_arm.h" #include "pulses_arm.h"

View file

@ -19,11 +19,8 @@
*/ */
#include "opentx.h" #include "opentx.h"
#if defined(PXX2)
#include "io/pxx2.h" #include "io/pxx2.h"
#include "pulses/pxx2.h" #include "pulses/pxx2.h"
#endif
uint8_t s_pulses_paused = 0; uint8_t s_pulses_paused = 0;
uint8_t s_current_protocol[NUM_MODULES] = { MODULES_INIT(255) }; uint8_t s_current_protocol[NUM_MODULES] = { MODULES_INIT(255) };
@ -47,14 +44,14 @@ uint8_t getRequiredProtocol(uint8_t port)
switch (g_model.moduleData[INTERNAL_MODULE].type) { switch (g_model.moduleData[INTERNAL_MODULE].type) {
#if defined(TARANIS_INTERNAL_PPM) #if defined(TARANIS_INTERNAL_PPM)
case MODULE_TYPE_PPM: case MODULE_TYPE_PPM:
required_protocol = PROTO_PPM; required_protocol = PROTOCOL_CHANNELS_PPM;
break; break;
#endif #endif
case MODULE_TYPE_XJT: case MODULE_TYPE_XJT:
required_protocol = PROTO_PXX; required_protocol = PROTOCOL_CHANNELS_PXX;
break; break;
default: default:
required_protocol = PROTO_NONE; required_protocol = PROTOCOL_CHANNELS_NONE;
break; break;
} }
break; break;
@ -63,30 +60,32 @@ uint8_t getRequiredProtocol(uint8_t port)
default: default:
switch (g_model.moduleData[EXTERNAL_MODULE].type) { switch (g_model.moduleData[EXTERNAL_MODULE].type) {
case MODULE_TYPE_PPM: case MODULE_TYPE_PPM:
required_protocol = PROTO_PPM; required_protocol = PROTOCOL_CHANNELS_PPM;
break; break;
case MODULE_TYPE_XJT: case MODULE_TYPE_XJT:
required_protocol = PROTOCOL_CHANNELS_PXX;
break;
case MODULE_TYPE_R9M: case MODULE_TYPE_R9M:
required_protocol = PROTO_PXX_EXTERNAL_MODULE; // either PXX or PXX2 depending on compilation options required_protocol = PROTOCOL_CHANNELS_PXX2;
break; break;
case MODULE_TYPE_SBUS: case MODULE_TYPE_SBUS:
required_protocol = PROTO_SBUS; required_protocol = PROTOCOL_CHANNELS_SBUS;
break; break;
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
case MODULE_TYPE_MULTIMODULE: case MODULE_TYPE_MULTIMODULE:
required_protocol = PROTO_MULTIMODULE; required_protocol = PROTOCOL_CHANNELS_MULTIMODULE;
break; break;
#endif #endif
#if defined(DSM2) #if defined(DSM2)
case MODULE_TYPE_DSM2: case MODULE_TYPE_DSM2:
required_protocol = limit<uint8_t>(PROTO_DSM2_LP45, PROTO_DSM2_LP45+g_model.moduleData[EXTERNAL_MODULE].rfProtocol, PROTO_DSM2_DSMX); required_protocol = limit<uint8_t>(PROTOCOL_CHANNELS_DSM2_LP45, PROTOCOL_CHANNELS_DSM2_LP45+g_model.moduleData[EXTERNAL_MODULE].rfProtocol, PROTOCOL_CHANNELS_DSM2_DSMX);
// The module is set to OFF during one second before BIND start // The module is set to OFF during one second before BIND start
{ {
static tmr10ms_t bindStartTime = 0; static tmr10ms_t bindStartTime = 0;
if (moduleFlag[EXTERNAL_MODULE] == MODULE_BIND) { if (moduleFlag[EXTERNAL_MODULE] == MODULE_BIND) {
if (bindStartTime == 0) bindStartTime = get_tmr10ms(); if (bindStartTime == 0) bindStartTime = get_tmr10ms();
if ((tmr10ms_t)(get_tmr10ms() - bindStartTime) < 100) { if ((tmr10ms_t)(get_tmr10ms() - bindStartTime) < 100) {
required_protocol = PROTO_NONE; required_protocol = PROTOCOL_CHANNELS_NONE;
break; break;
} }
} }
@ -98,24 +97,24 @@ uint8_t getRequiredProtocol(uint8_t port)
#endif #endif
#if defined(CROSSFIRE) #if defined(CROSSFIRE)
case MODULE_TYPE_CROSSFIRE: case MODULE_TYPE_CROSSFIRE:
required_protocol = PROTO_CROSSFIRE; required_protocol = PROTOCOL_CHANNELS_CROSSFIRE;
break; break;
#endif #endif
default: default:
required_protocol = PROTO_NONE; required_protocol = PROTOCOL_CHANNELS_NONE;
break; break;
} }
break; break;
} }
if (s_pulses_paused) { if (s_pulses_paused) {
required_protocol = PROTO_NONE; required_protocol = PROTOCOL_CHANNELS_NONE;
} }
#if 0 #if 0
// will need an EEPROM conversion // will need an EEPROM conversion
if (moduleFlag[port] == MODULE_OFF) { if (moduleFlag[port] == MODULE_OFF) {
required_protocol = PROTO_NONE; required_protocol = PROTOCOL_CHANNELS_NONE;
} }
#endif #endif
@ -146,38 +145,36 @@ void setupPulses(uint8_t port)
if (s_current_protocol[port] != required_protocol) { if (s_current_protocol[port] != required_protocol) {
init_needed = true; init_needed = true;
switch (s_current_protocol[port]) { // stop existing protocol hardware switch (s_current_protocol[port]) { // stop existing protocol hardware
case PROTO_PXX: case PROTOCOL_CHANNELS_PXX:
disable_pxx(port); disable_pxx(port);
break; break;
#if defined(DSM2) #if defined(DSM2)
case PROTO_DSM2_LP45: case PROTOCOL_CHANNELS_DSM2_LP45:
case PROTO_DSM2_DSM2: case PROTOCOL_CHANNELS_DSM2_DSM2:
case PROTO_DSM2_DSMX: case PROTOCOL_CHANNELS_DSM2_DSMX:
disable_serial(port); disable_serial(port);
break; break;
#endif #endif
#if defined(CROSSFIRE) #if defined(CROSSFIRE)
case PROTO_CROSSFIRE: case PROTOCOL_CHANNELS_CROSSFIRE:
disable_module_timer(port); disable_module_timer(port);
break; break;
#endif #endif
#if defined(PXX2) case PROTOCOL_CHANNELS_PXX2:
case PROTO_PXX2:
disable_module_timer(port); disable_module_timer(port);
break; break;
#endif
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
case PROTO_MULTIMODULE: case PROTOCOL_CHANNELS_MULTIMODULE:
#endif #endif
case PROTO_SBUS: case PROTOCOL_CHANNELS_SBUS:
disable_serial(port); disable_serial(port);
break; break;
case PROTO_PPM: case PROTOCOL_CHANNELS_PPM:
disable_ppm(port); disable_ppm(port);
break; break;
@ -190,28 +187,28 @@ void setupPulses(uint8_t port)
// Set up output data here // Set up output data here
switch (required_protocol) { switch (required_protocol) {
case PROTO_PXX: case PROTOCOL_CHANNELS_PXX:
setupPulsesPXX(port); setupPulsesPXX(port);
scheduleNextMixerCalculation(port, PXX_PERIOD); scheduleNextMixerCalculation(port, PXX_PERIOD);
break; break;
case PROTO_SBUS: case PROTOCOL_CHANNELS_SBUS:
setupPulsesSbus(port); setupPulsesSbus(port);
scheduleNextMixerCalculation(port, SBUS_PERIOD); scheduleNextMixerCalculation(port, SBUS_PERIOD);
break; break;
#if defined(DSM2) #if defined(DSM2)
case PROTO_DSM2_LP45: case PROTOCOL_CHANNELS_DSM2_LP45:
case PROTO_DSM2_DSM2: case PROTOCOL_CHANNELS_DSM2_DSM2:
case PROTO_DSM2_DSMX: case PROTOCOL_CHANNELS_DSM2_DSMX:
setupPulsesDSM2(port); setupPulsesDSM2(port);
scheduleNextMixerCalculation(port, DSM2_PERIOD); scheduleNextMixerCalculation(port, DSM2_PERIOD);
break; break;
#endif #endif
#if defined(CROSSFIRE) #if defined(CROSSFIRE)
case PROTO_CROSSFIRE: case PROTOCOL_CHANNELS_CROSSFIRE:
if (telemetryProtocol == PROTOCOL_PULSES_CROSSFIRE && !init_needed) { if (telemetryProtocol == PROTOCOL_TELEMETRY_CROSSFIRE && !init_needed) {
uint8_t * crossfire = modulePulsesData[port].crossfire.pulses; uint8_t * crossfire = modulePulsesData[port].crossfire.pulses;
uint8_t len; uint8_t len;
#if defined(LUA) #if defined(LUA)
@ -232,26 +229,25 @@ void setupPulses(uint8_t port)
break; break;
#endif #endif
#if defined(PXX2) case PROTOCOL_CHANNELS_PXX2:
case PROTO_PXX2: // here we have to wait that telemetryInit() is called, hence this test
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT && !init_needed) { if (telemetryProtocol == PROTOCOL_TELEMETRY_PXX2 && !init_needed) {
modulePulsesData[port].pxx2.setupFrame(port); modulePulsesData[port].pxx2.setupFrame(port);
sportSendBuffer(modulePulsesData[port].pxx2.getData(), modulePulsesData[port].pxx2.getSize()); sportSendBuffer(modulePulsesData[port].pxx2.getData(), modulePulsesData[port].pxx2.getSize());
} }
scheduleNextMixerCalculation(port, PXX2_PERIOD); scheduleNextMixerCalculation(port, PXX2_PERIOD);
break; break;
#endif
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
case PROTO_MULTIMODULE: case PROTOCOL_CHANNELS_MULTIMODULE:
setupPulsesMultimodule(port); setupPulsesMultimodule(port);
scheduleNextMixerCalculation(port, MULTIMODULE_PERIOD); scheduleNextMixerCalculation(port, MULTIMODULE_PERIOD);
break; break;
#endif #endif
case PROTO_PPM: case PROTOCOL_CHANNELS_PPM:
#if defined(PCBSKY9X) #if defined(PCBSKY9X)
case PROTO_NONE: case PROTOCOL_CHANNELS_NONE:
#endif #endif
setupPulsesPPMModule(port); setupPulsesPPMModule(port);
scheduleNextMixerCalculation(port, PPM_PERIOD(port)); scheduleNextMixerCalculation(port, PPM_PERIOD(port));
@ -263,41 +259,39 @@ void setupPulses(uint8_t port)
if (init_needed) { if (init_needed) {
switch (required_protocol) { // Start new protocol hardware here switch (required_protocol) { // Start new protocol hardware here
case PROTO_PXX: case PROTOCOL_CHANNELS_PXX:
init_pxx(port); init_pxx(port);
break; break;
#if defined(DSM2) #if defined(DSM2)
case PROTO_DSM2_LP45: case PROTOCOL_CHANNELS_DSM2_LP45:
case PROTO_DSM2_DSM2: case PROTOCOL_CHANNELS_DSM2_DSM2:
case PROTO_DSM2_DSMX: case PROTOCOL_CHANNELS_DSM2_DSMX:
init_serial(port, DSM2_BAUDRATE, DSM2_PERIOD * 2000); init_serial(port, DSM2_BAUDRATE, DSM2_PERIOD * 2000);
break; break;
#endif #endif
#if defined(CROSSFIRE) #if defined(CROSSFIRE)
case PROTO_CROSSFIRE: case PROTOCOL_CHANNELS_CROSSFIRE:
init_module_timer(port, CROSSFIRE_PERIOD, true); init_module_timer(port, CROSSFIRE_PERIOD, true);
break; break;
#endif #endif
#if defined(PXX2) case PROTOCOL_CHANNELS_PXX2:
case PROTO_PXX2:
init_module_timer(port, PXX2_PERIOD, true); init_module_timer(port, PXX2_PERIOD, true);
break; break;
#endif
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
case PROTO_MULTIMODULE: case PROTOCOL_CHANNELS_MULTIMODULE:
init_serial(port, MULTIMODULE_BAUDRATE, MULTIMODULE_PERIOD * 2000); init_serial(port, MULTIMODULE_BAUDRATE, MULTIMODULE_PERIOD * 2000);
break; break;
#endif #endif
case PROTO_SBUS: case PROTOCOL_CHANNELS_SBUS:
init_serial(port, SBUS_BAUDRATE, SBUS_PERIOD_HALF_US); init_serial(port, SBUS_BAUDRATE, SBUS_PERIOD_HALF_US);
break; break;
case PROTO_PPM: case PROTOCOL_CHANNELS_PPM:
init_ppm(port); init_ppm(port);
break; break;

View file

@ -82,9 +82,7 @@ union ModulePulsesData {
PwmPxxPulses pxx; PwmPxxPulses pxx;
#endif #endif
#if defined(PXX2)
Pxx2Pulses pxx2; Pxx2Pulses pxx2;
#endif
#if defined(PPM_PIN_SERIAL) #if defined(PPM_PIN_SERIAL)
Dsm2SerialPulsesData dsm2; Dsm2SerialPulsesData dsm2;

View file

@ -132,13 +132,7 @@ set(PULSES_SRC
ppm_arm.cpp ppm_arm.cpp
pxx.cpp pxx.cpp
pxx1.cpp pxx1.cpp
pxx2.cpp
dsm2_arm.cpp dsm2_arm.cpp
sbus_arm.cpp sbus_arm.cpp
) )
if(PXX2)
set(PULSES_SRC
${PULSES_SRC}
pxx2.cpp
)
endif()

View file

@ -124,7 +124,7 @@ extern "C" void INTMODULE_DMA_STREAM_IRQHandler(void)
void intmoduleSendNextFrame() void intmoduleSendNextFrame()
{ {
if (s_current_protocol[INTERNAL_MODULE] == PROTO_PXX) { if (s_current_protocol[INTERNAL_MODULE] == PROTOCOL_CHANNELS_PXX) {
DMA_InitTypeDef DMA_InitStructure; DMA_InitTypeDef DMA_InitStructure;
DMA_DeInit(INTMODULE_DMA_STREAM); DMA_DeInit(INTMODULE_DMA_STREAM);
DMA_InitStructure.DMA_Channel = INTMODULE_DMA_CHANNEL; DMA_InitStructure.DMA_Channel = INTMODULE_DMA_CHANNEL;

View file

@ -97,7 +97,7 @@ void serial2Init(unsigned int mode, unsigned int protocol)
break; break;
#endif #endif
case UART_MODE_TELEMETRY: case UART_MODE_TELEMETRY:
if (protocol == PROTOCOL_FRSKY_D_SECONDARY) { if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
uart3Setup(FRSKY_D_BAUDRATE, true); uart3Setup(FRSKY_D_BAUDRATE, true);
} }
break; break;

View file

@ -215,7 +215,7 @@ void extmoduleSerialStart(uint32_t /*baudrate*/, uint32_t period_half_us)
void extmoduleSendNextFrame() void extmoduleSendNextFrame()
{ {
if (s_current_protocol[EXTERNAL_MODULE] == PROTO_PPM) { if (s_current_protocol[EXTERNAL_MODULE] == PROTOCOL_CHANNELS_PPM) {
#if defined(PCBX10) || PCBREV >= 13 #if defined(PCBX10) || PCBREV >= 13
EXTMODULE_TIMER->CCR3 = GET_PPM_DELAY(EXTERNAL_MODULE)*2; EXTMODULE_TIMER->CCR3 = GET_PPM_DELAY(EXTERNAL_MODULE)*2;
EXTMODULE_TIMER->CCER = TIM_CCER_CC3E | (GET_PPM_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC3P : 0); EXTMODULE_TIMER->CCER = TIM_CCER_CC3E | (GET_PPM_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC3P : 0);
@ -234,7 +234,7 @@ void extmoduleSendNextFrame()
EXTMODULE_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].ppm.ptr - modulePulsesData[EXTERNAL_MODULE].ppm.pulses; EXTMODULE_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].ppm.ptr - modulePulsesData[EXTERNAL_MODULE].ppm.pulses;
EXTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA EXTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
} }
else if (s_current_protocol[EXTERNAL_MODULE] == PROTO_PXX) { else if (s_current_protocol[EXTERNAL_MODULE] == PROTOCOL_CHANNELS_PXX) {
EXTMODULE_TIMER->CCR2 = modulePulsesData[EXTERNAL_MODULE].pxx.getLast() - 4000; // 2mS in advance EXTMODULE_TIMER->CCR2 = modulePulsesData[EXTERNAL_MODULE].pxx.getLast() - 4000; // 2mS in advance
EXTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA EXTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA
#if defined(PCBX10) || PCBREV >= 13 #if defined(PCBX10) || PCBREV >= 13

View file

@ -175,7 +175,7 @@ extern "C" void TELEMETRY_DMA_TX_IRQHandler(void)
if (DMA_GetITStatus(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC)) { if (DMA_GetITStatus(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC)) {
DMA_ClearITPendingBit(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC); DMA_ClearITPendingBit(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC);
TELEMETRY_USART->CR1 |= USART_CR1_TCIE; TELEMETRY_USART->CR1 |= USART_CR1_TCIE;
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT) { if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) {
outputTelemetryBufferSize = 0; outputTelemetryBufferSize = 0;
outputTelemetryBufferTrigger = 0x7E; outputTelemetryBufferTrigger = 0x7E;
} }
@ -205,7 +205,7 @@ extern "C" void TELEMETRY_USART_IRQHandler(void)
else { else {
telemetryNoDMAFifo.push(data); telemetryNoDMAFifo.push(data);
#if defined(LUA) #if defined(LUA)
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT) { if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) {
static uint8_t prevdata; static uint8_t prevdata;
if (prevdata == 0x7E && outputTelemetryBufferSize > 0 && data == outputTelemetryBufferTrigger) { if (prevdata == 0x7E && outputTelemetryBufferSize > 0 && data == outputTelemetryBufferTrigger) {
sportSendBuffer(outputTelemetryBuffer, outputTelemetryBufferSize); sportSendBuffer(outputTelemetryBuffer, outputTelemetryBufferSize);

View file

@ -238,7 +238,7 @@ void extmodulePxxStart()
void extmoduleSendNextFrame() void extmoduleSendNextFrame()
{ {
if (s_current_protocol[EXTERNAL_MODULE] == PROTO_PPM) { if (s_current_protocol[EXTERNAL_MODULE] == PROTOCOL_CHANNELS_PPM) {
EXTMODULE_TIMER->CCR1 = GET_PPM_DELAY(EXTERNAL_MODULE)*2; EXTMODULE_TIMER->CCR1 = GET_PPM_DELAY(EXTERNAL_MODULE)*2;
EXTMODULE_TIMER->CCER = EXTMODULE_TIMER_OUTPUT_ENABLE | (GET_PPM_POLARITY(EXTERNAL_MODULE) ? EXTMODULE_TIMER_OUTPUT_POLARITY : 0); // // we are using complementary output so logic has to be reversed here EXTMODULE_TIMER->CCER = EXTMODULE_TIMER_OUTPUT_ENABLE | (GET_PPM_POLARITY(EXTERNAL_MODULE) ? EXTMODULE_TIMER_OUTPUT_POLARITY : 0); // // we are using complementary output so logic has to be reversed here
EXTMODULE_TIMER->CCR2 = *(modulePulsesData[EXTERNAL_MODULE].ppm.ptr - 1) - 4000; // 2mS in advance EXTMODULE_TIMER->CCR2 = *(modulePulsesData[EXTERNAL_MODULE].ppm.ptr - 1) - 4000; // 2mS in advance
@ -249,7 +249,7 @@ void extmoduleSendNextFrame()
EXTMODULE_TIMER_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].ppm.ptr - modulePulsesData[EXTERNAL_MODULE].ppm.pulses; EXTMODULE_TIMER_DMA_STREAM->NDTR = modulePulsesData[EXTERNAL_MODULE].ppm.ptr - modulePulsesData[EXTERNAL_MODULE].ppm.pulses;
EXTMODULE_TIMER_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA EXTMODULE_TIMER_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
} }
else if (s_current_protocol[EXTERNAL_MODULE] == PROTO_PXX) { else if (s_current_protocol[EXTERNAL_MODULE] == PROTOCOL_CHANNELS_PXX) {
#if defined(EXTMODULE_USART) #if defined(EXTMODULE_USART)
DMA_InitTypeDef DMA_InitStructure; DMA_InitTypeDef DMA_InitStructure;
DMA_DeInit(EXTMODULE_USART_DMA_STREAM); DMA_DeInit(EXTMODULE_USART_DMA_STREAM);

View file

@ -60,7 +60,7 @@ void intmoduleNoneStart()
void intmoduleSendNextFrame() void intmoduleSendNextFrame()
{ {
if (s_current_protocol[INTERNAL_MODULE] == PROTO_PXX) { if (s_current_protocol[INTERNAL_MODULE] == PROTOCOL_CHANNELS_PXX) {
INTMODULE_TIMER->CCR2 = modulePulsesData[INTERNAL_MODULE].pxx.getLast() - 4000; // 2mS in advance INTMODULE_TIMER->CCR2 = modulePulsesData[INTERNAL_MODULE].pxx.getLast() - 4000; // 2mS in advance
INTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA INTMODULE_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA
INTMODULE_DMA_STREAM->CR |= INTMODULE_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1; INTMODULE_DMA_STREAM->CR |= INTMODULE_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | DMA_SxCR_PSIZE_0 | DMA_SxCR_MSIZE_0 | DMA_SxCR_PL_0 | DMA_SxCR_PL_1;
@ -70,7 +70,7 @@ void intmoduleSendNextFrame()
INTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA INTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
} }
#if defined(TARANIS_INTERNAL_PPM) #if defined(TARANIS_INTERNAL_PPM)
else if (s_current_protocol[INTERNAL_MODULE] == PROTO_PPM) { else if (s_current_protocol[INTERNAL_MODULE] == PROTOCOL_CHANNELS_PPM) {
INTMODULE_TIMER->CCR3 = GET_PPM_DELAY(INTERNAL_MODULE)*2; INTMODULE_TIMER->CCR3 = GET_PPM_DELAY(INTERNAL_MODULE)*2;
INTMODULE_TIMER->CCER = TIM_CCER_CC3E | (GET_PPM_POLARITY(INTERNAL_MODULE) ? 0 : TIM_CCER_CC3P); INTMODULE_TIMER->CCER = TIM_CCER_CC3E | (GET_PPM_POLARITY(INTERNAL_MODULE) ? 0 : TIM_CCER_CC3P);
INTMODULE_TIMER->CCR2 = *(modulePulsesData[INTERNAL_MODULE].ppm.ptr - 1) - 4000; // 2mS in advance INTMODULE_TIMER->CCR2 = *(modulePulsesData[INTERNAL_MODULE].ppm.ptr - 1) - 4000; // 2mS in advance

View file

@ -127,7 +127,7 @@ extern "C" void TELEMETRY_DMA_TX_IRQHandler(void)
if (DMA_GetITStatus(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC)) { if (DMA_GetITStatus(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC)) {
DMA_ClearITPendingBit(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC); DMA_ClearITPendingBit(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC);
TELEMETRY_USART->CR1 |= USART_CR1_TCIE; TELEMETRY_USART->CR1 |= USART_CR1_TCIE;
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT) { if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) {
outputTelemetryBufferSize = 0; outputTelemetryBufferSize = 0;
outputTelemetryBufferTrigger = 0x7E; outputTelemetryBufferTrigger = 0x7E;
} }
@ -157,7 +157,7 @@ extern "C" void TELEMETRY_USART_IRQHandler(void)
else { else {
telemetryFifo.push(data); telemetryFifo.push(data);
#if defined(LUA) #if defined(LUA)
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT) { if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) {
static uint8_t prevdata; static uint8_t prevdata;
if (prevdata == 0x7E && outputTelemetryBufferSize > 0 && data == outputTelemetryBufferTrigger) { if (prevdata == 0x7E && outputTelemetryBufferSize > 0 && data == outputTelemetryBufferTrigger) {
sportSendBuffer(outputTelemetryBuffer, outputTelemetryBufferSize); sportSendBuffer(outputTelemetryBuffer, outputTelemetryBufferSize);
@ -174,7 +174,7 @@ extern "C" void TELEMETRY_USART_IRQHandler(void)
uint8_t telemetryGetByte(uint8_t * byte) uint8_t telemetryGetByte(uint8_t * byte)
{ {
#if defined(SERIAL2) #if defined(SERIAL2)
if (telemetryProtocol == PROTOCOL_FRSKY_D_SECONDARY) { if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
if (serial2Mode == UART_MODE_TELEMETRY) if (serial2Mode == UART_MODE_TELEMETRY)
return serial2RxFifo.pop(*byte); return serial2RxFifo.pop(*byte);
else else

View file

@ -23,6 +23,7 @@
#include "../definitions.h" #include "../definitions.h"
#include "telemetry_holders.h" #include "telemetry_holders.h"
#include "io/pxx2.h"
// Receive buffer state machine state enum // Receive buffer state machine state enum
enum FrSkyDataState { enum FrSkyDataState {
@ -32,12 +33,7 @@ enum FrSkyDataState {
STATE_DATA_XOR, STATE_DATA_XOR,
}; };
#if defined(PXX2)
#include "io/pxx2.h"
#define FRSKY_SPORT_BAUDRATE PXX2_BAUDRATE
#else
#define FRSKY_SPORT_BAUDRATE 57600 #define FRSKY_SPORT_BAUDRATE 57600
#endif
#define FRSKY_D_BAUDRATE 9600 #define FRSKY_D_BAUDRATE 9600

View file

@ -42,21 +42,21 @@ uint8_t serialInversion = 0;
void processTelemetryData(uint8_t data) void processTelemetryData(uint8_t data)
{ {
#if defined(CROSSFIRE) #if defined(CROSSFIRE)
if (telemetryProtocol == PROTOCOL_PULSES_CROSSFIRE) { if (telemetryProtocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
processCrossfireTelemetryData(data); processCrossfireTelemetryData(data);
return; return;
} }
#endif #endif
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
if (telemetryProtocol == PROTOCOL_SPEKTRUM) { if (telemetryProtocol == PROTOCOL_TELEMETRY_SPEKTRUM) {
processSpektrumTelemetryData(data); processSpektrumTelemetryData(data);
return; return;
} }
if (telemetryProtocol == PROTOCOL_FLYSKY_IBUS) { if (telemetryProtocol == PROTOCOL_TELEMETRY_FLYSKY_IBUS) {
processFlySkyTelemetryData(data); processFlySkyTelemetryData(data);
return; return;
} }
if (telemetryProtocol == PROTOCOL_MULTIMODULE) { if (telemetryProtocol == PROTOCOL_TELEMETRY_MULTIMODULE) {
processMultiTelemetryData(data); processMultiTelemetryData(data);
return; return;
} }
@ -67,15 +67,18 @@ void processTelemetryData(uint8_t data)
void telemetryWakeup() void telemetryWakeup()
{ {
uint8_t requiredTelemetryProtocol = modelTelemetryProtocol(); uint8_t requiredTelemetryProtocol = modelTelemetryProtocol();
#if defined(REVX) #if defined(REVX)
uint8_t requiredSerialInversion = g_model.moduleData[EXTERNAL_MODULE].invertedSerial; uint8_t requiredSerialInversion = g_model.moduleData[EXTERNAL_MODULE].invertedSerial;
if (telemetryProtocol != requiredTelemetryProtocol || serialInversion != requiredSerialInversion) { if (telemetryProtocol != requiredTelemetryProtocol || serialInversion != requiredSerialInversion) {
serialInversion = requiredSerialInversion; serialInversion = requiredSerialInversion;
#else
if (telemetryProtocol != requiredTelemetryProtocol) {
#endif
telemetryInit(requiredTelemetryProtocol); telemetryInit(requiredTelemetryProtocol);
} }
#else
if (telemetryProtocol != requiredTelemetryProtocol) {
telemetryInit(requiredTelemetryProtocol);
}
#endif
#if defined(STM32) #if defined(STM32)
uint8_t data; uint8_t data;
@ -87,7 +90,7 @@ void telemetryWakeup()
} while (telemetryGetByte(&data)); } while (telemetryGetByte(&data));
} }
#elif defined(PCBSKY9X) #elif defined(PCBSKY9X)
if (telemetryProtocol == PROTOCOL_FRSKY_D_SECONDARY) { if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
uint8_t data; uint8_t data;
while (telemetrySecondPortReceive(data)) { while (telemetrySecondPortReceive(data)) {
processTelemetryData(data); processTelemetryData(data);
@ -99,7 +102,6 @@ void telemetryWakeup()
} }
#endif #endif
for (int i=0; i<MAX_TELEMETRY_SENSORS; i++) { for (int i=0; i<MAX_TELEMETRY_SENSORS; i++) {
const TelemetrySensor & sensor = g_model.telemetrySensors[i]; const TelemetrySensor & sensor = g_model.telemetrySensors[i];
if (sensor.type == TELEM_TYPE_CALCULATED) { if (sensor.type == TELEM_TYPE_CALCULATED) {
@ -223,12 +225,12 @@ void telemetryInit(uint8_t protocol)
{ {
telemetryProtocol = protocol; telemetryProtocol = protocol;
if (protocol == PROTOCOL_FRSKY_D) { if (protocol == PROTOCOL_TELEMETRY_FRSKY_D) {
telemetryPortInit(FRSKY_D_BAUDRATE, TELEMETRY_SERIAL_DEFAULT); telemetryPortInit(FRSKY_D_BAUDRATE, TELEMETRY_SERIAL_DEFAULT);
} }
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
else if (protocol == PROTOCOL_MULTIMODULE || protocol == PROTOCOL_FLYSKY_IBUS) { else if (protocol == PROTOCOL_TELEMETRY_MULTIMODULE || protocol == PROTOCOL_TELEMETRY_FLYSKY_IBUS) {
// The DIY Multi module always speaks 100000 baud regardless of the telemetry protocol in use // The DIY Multi module always speaks 100000 baud regardless of the telemetry protocol in use
telemetryPortInit(MULTIMODULE_BAUDRATE, TELEMETRY_SERIAL_8E2); telemetryPortInit(MULTIMODULE_BAUDRATE, TELEMETRY_SERIAL_8E2);
#if defined(LUA) #if defined(LUA)
@ -236,14 +238,14 @@ void telemetryInit(uint8_t protocol)
outputTelemetryBufferTrigger = 0x7E; outputTelemetryBufferTrigger = 0x7E;
#endif #endif
} }
else if (protocol == PROTOCOL_SPEKTRUM) { else if (protocol == PROTOCOL_TELEMETRY_SPEKTRUM) {
// Spektrum's own small race RX (SPM4648) uses 125000 8N1, use the same since there is no real standard // Spektrum's own small race RX (SPM4648) uses 125000 8N1, use the same since there is no real standard
telemetryPortInit(125000, TELEMETRY_SERIAL_DEFAULT); telemetryPortInit(125000, TELEMETRY_SERIAL_DEFAULT);
} }
#endif #endif
#if defined(CROSSFIRE) #if defined(CROSSFIRE)
else if (protocol == PROTOCOL_PULSES_CROSSFIRE) { else if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
telemetryPortInit(CROSSFIRE_BAUDRATE, TELEMETRY_SERIAL_DEFAULT); telemetryPortInit(CROSSFIRE_BAUDRATE, TELEMETRY_SERIAL_DEFAULT);
#if defined(LUA) #if defined(LUA)
outputTelemetryBufferSize = 0; outputTelemetryBufferSize = 0;
@ -254,12 +256,19 @@ void telemetryInit(uint8_t protocol)
#endif #endif
#if defined(SERIAL2) || defined(PCBSKY9X) #if defined(SERIAL2) || defined(PCBSKY9X)
else if (protocol == PROTOCOL_FRSKY_D_SECONDARY) { else if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
telemetryPortInit(0, TELEMETRY_SERIAL_DEFAULT); telemetryPortInit(0, TELEMETRY_SERIAL_DEFAULT);
serial2TelemetryInit(PROTOCOL_FRSKY_D_SECONDARY); serial2TelemetryInit(PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY);
} }
#endif #endif
else if (protocol == PROTOCOL_TELEMETRY_PXX2) {
telemetryPortInit(PXX2_BAUDRATE, TELEMETRY_SERIAL_WITHOUT_DMA);
#if defined(LUA)
outputTelemetryBufferSize = 0;
outputTelemetryBufferTrigger = 0x7E;
#endif
}
else { else {
telemetryPortInit(FRSKY_SPORT_BAUDRATE, TELEMETRY_SERIAL_WITHOUT_DMA); telemetryPortInit(FRSKY_SPORT_BAUDRATE, TELEMETRY_SERIAL_WITHOUT_DMA);
#if defined(LUA) #if defined(LUA)

View file

@ -110,32 +110,36 @@ extern uint8_t telemetryProtocol;
#define IS_FRSKY_D_PROTOCOL() (telemetryProtocol == PROTOCOL_FRSKY_D) #define IS_FRSKY_D_PROTOCOL() (telemetryProtocol == PROTOCOL_FRSKY_D)
#if defined (MULTIMODULE) #if defined (MULTIMODULE)
#define IS_D16_MULTI() ((g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false) == MM_RF_PROTO_FRSKY) && (g_model.moduleData[EXTERNAL_MODULE].subType == MM_RF_FRSKY_SUBTYPE_D16 || g_model.moduleData[EXTERNAL_MODULE].subType == MM_RF_FRSKY_SUBTYPE_D16_8CH)) #define IS_D16_MULTI() ((g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false) == MM_RF_PROTO_FRSKY) && (g_model.moduleData[EXTERNAL_MODULE].subType == MM_RF_FRSKY_SUBTYPE_D16 || g_model.moduleData[EXTERNAL_MODULE].subType == MM_RF_FRSKY_SUBTYPE_D16_8CH))
#define IS_FRSKY_SPORT_PROTOCOL() (telemetryProtocol == PROTOCOL_FRSKY_SPORT || (telemetryProtocol == PROTOCOL_MULTIMODULE && IS_D16_MULTI())) #define IS_FRSKY_SPORT_PROTOCOL() (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT || (telemetryProtocol == PROTOCOL_TELEMETRY_MULTIMODULE && IS_D16_MULTI()))
#else #else
#define IS_FRSKY_SPORT_PROTOCOL() (telemetryProtocol == PROTOCOL_FRSKY_SPORT) #define IS_FRSKY_SPORT_PROTOCOL() (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT)
#endif #endif
#define IS_SPEKTRUM_PROTOCOL() (telemetryProtocol == PROTOCOL_SPEKTRUM) #define IS_SPEKTRUM_PROTOCOL() (telemetryProtocol == PROTOCOL_TELEMETRY_SPEKTRUM)
inline uint8_t modelTelemetryProtocol() inline uint8_t modelTelemetryProtocol()
{ {
#if defined(CROSSFIRE) #if defined(CROSSFIRE)
if (g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_CROSSFIRE) { if (g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_CROSSFIRE) {
return PROTOCOL_PULSES_CROSSFIRE; return PROTOCOL_TELEMETRY_CROSSFIRE;
} }
#endif #endif
if (!IS_INTERNAL_MODULE_ENABLED() && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_PPM) { if (!IS_INTERNAL_MODULE_ENABLED() && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_PPM) {
return g_model.telemetryProtocol; return g_model.telemetryProtocol;
} }
if (!IS_INTERNAL_MODULE_ENABLED() && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_R9M) {
return PROTOCOL_TELEMETRY_PXX2;
}
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
if (!IS_INTERNAL_MODULE_ENABLED() && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_MULTIMODULE) { if (!IS_INTERNAL_MODULE_ENABLED() && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_MULTIMODULE) {
return PROTOCOL_MULTIMODULE; return PROTOCOL_TELEMETRY_MULTIMODULE;
} }
#endif #endif
// default choice // default choice
return PROTOCOL_FRSKY_SPORT; return PROTOCOL_TELEMETRY_FRSKY_SPORT;
} }
#include "telemetry_sensors.h" #include "telemetry_sensors.h"

View file

@ -33,7 +33,7 @@ bool isFaiForbidden(source_t idx)
switch (telemetryProtocol) { switch (telemetryProtocol) {
case PROTOCOL_FRSKY_SPORT: case PROTOCOL_TELEMETRY_FRSKY_SPORT:
if (sensor->id == RSSI_ID) { if (sensor->id == RSSI_ID) {
return false; return false;
} }
@ -42,7 +42,7 @@ bool isFaiForbidden(source_t idx)
} }
break; break;
case PROTOCOL_FRSKY_D: case PROTOCOL_TELEMETRY_FRSKY_D:
if (sensor->id == D_RSSI_ID) { if (sensor->id == D_RSSI_ID) {
return false; return false;
} }
@ -52,7 +52,7 @@ bool isFaiForbidden(source_t idx)
break; break;
#if defined(CROSSFIRE) #if defined(CROSSFIRE)
case PROTOCOL_PULSES_CROSSFIRE: case PROTOCOL_TELEMETRY_CROSSFIRE:
if (sensor->id == RX_RSSI1_INDEX) { if (sensor->id == RX_RSSI1_INDEX) {
return false; return false;
} }

View file

@ -149,7 +149,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -157,21 +157,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POZ""NEG" #define TR_POSNEG "POZ""NEG"

View file

@ -152,7 +152,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -160,21 +160,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG" #define TR_POSNEG "POS""NEG"

View file

@ -151,7 +151,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -159,22 +159,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG" #define TR_POSNEG "POS""NEG"

View file

@ -151,7 +151,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -159,21 +159,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG" #define TR_POSNEG "POS""NEG"

View file

@ -151,7 +151,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -159,21 +159,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG" #define TR_POSNEG "POS""NEG"

View file

@ -151,7 +151,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -159,21 +159,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SLV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG" #define TR_POSNEG "POS""NEG"

View file

@ -151,7 +151,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -159,21 +159,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG" #define TR_POSNEG "POS""NEG"

View file

@ -153,7 +153,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -161,21 +161,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG" #define TR_POSNEG "POS""NEG"

View file

@ -152,7 +152,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -160,21 +160,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POZ""NEG" #define TR_POSNEG "POZ""NEG"

View file

@ -150,7 +150,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -158,21 +158,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_XPPM
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "POS""NEG" #define TR_POSNEG "POS""NEG"

View file

@ -149,7 +149,7 @@
#if defined(PXX) #if defined(PXX)
#define TR_PXX "PXX\0 " #define TR_PXX "PXX\0 "
#elif defined(DSM2) || defined(IRPROTOS) #elif defined(DSM2)
#define TR_PXX "[PXX]\0" #define TR_PXX "[PXX]\0"
#else #else
#define TR_PXX #define TR_PXX
@ -157,19 +157,11 @@
#if defined(DSM2) #if defined(DSM2)
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
#elif defined(IRPROTOS)
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
#else #else
#define TR_DSM2 #define TR_DSM2
#endif #endif
#if defined(IRPROTOS) #define TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
#else
#define TR_IRPROTOS
#endif
#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS
#define LEN_POSNEG "\003" #define LEN_POSNEG "\003"
#define TR_POSNEG "Pos""Neg" #define TR_POSNEG "Pos""Neg"