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:
parent
b30c9b63cd
commit
b72ccb4836
34 changed files with 174 additions and 343 deletions
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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()
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue