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(NIGHTLY_BUILD_WARNING "Warn this is a nightly build" 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.
|
||||
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)
|
||||
endif()
|
||||
|
||||
if(PXX2)
|
||||
add_definitions(-DPXX2)
|
||||
endif()
|
||||
|
||||
set(SRC
|
||||
${SRC}
|
||||
opentx.cpp
|
||||
|
|
|
@ -228,8 +228,8 @@ enum BeeperMode {
|
|||
#elif defined(PCBSKY9X)
|
||||
#define IS_INTERNAL_MODULE_ENABLED() (false)
|
||||
#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 {
|
||||
#if defined(CLI) || defined(DEBUG)
|
||||
|
|
|
@ -155,8 +155,7 @@ void evalFunctions(const CustomFunctionData * functions, CustomFunctionsContext
|
|||
active &= (bool)CFN_ACTIVE(cfn);
|
||||
}
|
||||
|
||||
if (active || IS_PLAY_BOTH_FUNC(CFN_FUNC(cfn))) {
|
||||
|
||||
if (active) {
|
||||
switch (CFN_FUNC(cfn)) {
|
||||
|
||||
#if defined(OVERRIDE_CHANNEL_FUNCTION)
|
||||
|
|
|
@ -543,7 +543,7 @@ void menuModelTelemetryFrsky(event_t event)
|
|||
|
||||
case ITEM_TELEMETRY_RSSI_LABEL:
|
||||
#if defined(MULTIMODULE)
|
||||
if (telemetryProtocol == PROTOCOL_MULTIMODULE &&
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_MULTIMODULE &&
|
||||
g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false) == MM_RF_PROTO_FS_AFHDS2A)
|
||||
lcdDrawTextAlignedLeft(y, "RSNR");
|
||||
else
|
||||
|
|
|
@ -537,23 +537,23 @@ bool isRfProtocolAvailable(int protocol)
|
|||
bool isTelemetryProtocolAvailable(int protocol)
|
||||
{
|
||||
#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;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (protocol== PROTOCOL_PULSES_CROSSFIRE) {
|
||||
if (protocol== PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#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;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
if (protocol == PROTOCOL_FRSKY_D_SECONDARY) {
|
||||
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -176,7 +176,7 @@ const char * sportUpdatePowerOn(ModuleIndex module)
|
|||
sportUpdateState = SPORT_POWERUP_REQ;
|
||||
sportWaitState(SPORT_IDLE, 500); // Clear the fifo
|
||||
|
||||
telemetryInit(PROTOCOL_FRSKY_SPORT);
|
||||
telemetryInit(PROTOCOL_TELEMETRY_FRSKY_SPORT);
|
||||
|
||||
#if defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
if (module == INTERNAL_MODULE)
|
||||
|
@ -199,7 +199,7 @@ const char * sportUpdatePowerOn(ModuleIndex module)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if (telemetryProtocol != PROTOCOL_FRSKY_SPORT) {
|
||||
if (telemetryProtocol != PROTOCOL_TELEMETRY_FRSKY_SPORT) {
|
||||
return TR("Not responding", "Not S.Port 1");
|
||||
}
|
||||
|
||||
|
|
|
@ -23,18 +23,6 @@
|
|||
|
||||
#include "datastructs.h"
|
||||
|
||||
#define WARN_THR_BIT 0x01
|
||||
#define WARN_BEP_BIT 0x80
|
||||
#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
|
||||
|
||||
|
@ -55,9 +43,6 @@
|
|||
|
||||
#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)
|
||||
#define IS_ADJUST_GV_FUNC(func) ((func) == FUNC_ADJUST_GVAR)
|
||||
#else
|
||||
|
@ -141,7 +126,6 @@ enum CurveRefType {
|
|||
CURVE_REF_CUSTOM
|
||||
};
|
||||
|
||||
|
||||
#define MIN_EXPO_WEIGHT -100
|
||||
#define EXPO_VALID(ed) ((ed)->mode)
|
||||
#define EXPO_MODE_ENABLE(ed, v) (((v)<0 && ((ed)->mode&1)) || ((v)>=0 && ((ed)->mode&2)))
|
||||
|
@ -191,8 +175,6 @@ enum CurveRefType {
|
|||
#define MD_OFFSET(md) (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_SETOFFSET(md, val) md->offset = val
|
||||
|
||||
|
||||
enum LogicalSwitchesFunctions {
|
||||
LS_FUNC_NONE,
|
||||
|
@ -222,14 +204,6 @@ enum LogicalSwitchesFunctions {
|
|||
#define MAX_LS_DELAY 250 /*25s*/
|
||||
#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
|
||||
{
|
||||
TELEM_TYPE_CUSTOM,
|
||||
|
@ -251,16 +225,10 @@ enum TelemetrySensorFormula
|
|||
};
|
||||
|
||||
enum VarioSource {
|
||||
#if !defined(TELEMETRY_FRSKY_SPORT)
|
||||
VARIO_SOURCE_ALTI,
|
||||
VARIO_SOURCE_ALTI_PLUS,
|
||||
#endif
|
||||
VARIO_SOURCE_VSPEED,
|
||||
VARIO_SOURCE_A1,
|
||||
VARIO_SOURCE_A2,
|
||||
#if defined(TELEMETRY_FRSKY_SPORT)
|
||||
VARIO_SOURCE_DTE,
|
||||
#endif
|
||||
VARIO_SOURCE_COUNT,
|
||||
VARIO_SOURCE_LAST = VARIO_SOURCE_COUNT-1
|
||||
};
|
||||
|
@ -292,8 +260,6 @@ enum FrskyVoltsSource {
|
|||
FRSKY_VOLTS_SOURCE_LAST=FRSKY_VOLTS_SOURCE_CELLS
|
||||
};
|
||||
|
||||
|
||||
|
||||
enum SwashType {
|
||||
SWASH_TYPE_NONE,
|
||||
SWASH_TYPE_120,
|
||||
|
@ -321,37 +287,23 @@ enum SwashType {
|
|||
#define TIMER_COUNTDOWN_START(x) 10
|
||||
#endif
|
||||
|
||||
enum Protocols {
|
||||
PROTO_PPM,
|
||||
#if defined(PXX) || defined(DSM2) || defined(IRPROTOS)
|
||||
PROTO_PXX,
|
||||
enum ChannelsProtocols {
|
||||
PROTOCOL_CHANNELS_PPM,
|
||||
#if defined(PXX) || defined(DSM2)
|
||||
PROTOCOL_CHANNELS_PXX,
|
||||
#endif
|
||||
#if defined(DSM2) || defined(IRPROTOS)
|
||||
PROTO_DSM2_LP45,
|
||||
PROTO_DSM2_DSM2,
|
||||
PROTO_DSM2_DSMX,
|
||||
#if defined(DSM2)
|
||||
PROTOCOL_CHANNELS_DSM2_LP45,
|
||||
PROTOCOL_CHANNELS_DSM2_DSM2,
|
||||
PROTOCOL_CHANNELS_DSM2_DSMX,
|
||||
#endif
|
||||
PROTO_CROSSFIRE,
|
||||
#if defined(IRPROTOS)
|
||||
// only used on AVR
|
||||
// we will need 4 bits for proto :(
|
||||
PROTO_SILV,
|
||||
PROTO_TRAC09,
|
||||
PROTO_PICZ,
|
||||
PROTO_SWIFT,
|
||||
#endif
|
||||
PROTO_MULTIMODULE,
|
||||
PROTO_SBUS,
|
||||
PROTO_PXX2,
|
||||
PROTO_NONE
|
||||
PROTOCOL_CHANNELS_CROSSFIRE,
|
||||
PROTOCOL_CHANNELS_MULTIMODULE,
|
||||
PROTOCOL_CHANNELS_SBUS,
|
||||
PROTOCOL_CHANNELS_PXX2,
|
||||
PROTOCOL_CHANNELS_NONE
|
||||
};
|
||||
|
||||
#if defined(PXX2)
|
||||
#define PROTO_PXX_EXTERNAL_MODULE PROTO_PXX2
|
||||
#else
|
||||
#define PROTO_PXX_EXTERNAL_MODULE PROTO_PXX
|
||||
#endif
|
||||
|
||||
enum XJTRFProtocols {
|
||||
RF_PROTO_OFF = -1,
|
||||
RF_PROTO_X16,
|
||||
|
@ -492,17 +444,18 @@ enum ThrottleSources {
|
|||
THROTTLE_SOURCE_CH1,
|
||||
};
|
||||
|
||||
enum TelemetryType
|
||||
enum TelemetryProtocols
|
||||
{
|
||||
PROTOCOL_TELEMETRY_FIRST,
|
||||
PROTOCOL_FRSKY_SPORT = PROTOCOL_TELEMETRY_FIRST,
|
||||
PROTOCOL_FRSKY_D,
|
||||
PROTOCOL_FRSKY_D_SECONDARY,
|
||||
PROTOCOL_PULSES_CROSSFIRE,
|
||||
PROTOCOL_SPEKTRUM,
|
||||
PROTOCOL_FLYSKY_IBUS,
|
||||
PROTOCOL_MULTIMODULE,
|
||||
PROTOCOL_TELEMETRY_LAST=PROTOCOL_MULTIMODULE
|
||||
PROTOCOL_TELEMETRY_FRSKY_SPORT = PROTOCOL_TELEMETRY_FIRST,
|
||||
PROTOCOL_TELEMETRY_FRSKY_D,
|
||||
PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY,
|
||||
PROTOCOL_TELEMETRY_CROSSFIRE,
|
||||
PROTOCOL_TELEMETRY_SPEKTRUM,
|
||||
PROTOCOL_TELEMETRY_FLYSKY_IBUS,
|
||||
PROTOCOL_TELEMETRY_MULTIMODULE,
|
||||
PROTOCOL_TELEMETRY_LAST=PROTOCOL_TELEMETRY_MULTIMODULE,
|
||||
PROTOCOL_TELEMETRY_PXX2,
|
||||
};
|
||||
|
||||
enum DisplayTrims
|
||||
|
@ -512,8 +465,6 @@ enum DisplayTrims
|
|||
DISPLAY_TRIMS_ALWAYS
|
||||
};
|
||||
|
||||
#define TOTAL_EEPROM_USAGE (sizeof(ModelData)*MAX_MODELS + sizeof(RadioData))
|
||||
|
||||
extern RadioData g_eeGeneral;
|
||||
extern ModelData g_model;
|
||||
|
||||
|
|
|
@ -125,10 +125,10 @@ void setupPulsesDSM2(uint8_t port)
|
|||
modulePulsesData[EXTERNAL_MODULE].dsm2.ptr = modulePulsesData[EXTERNAL_MODULE].dsm2.pulses;
|
||||
|
||||
switch (s_current_protocol[port]) {
|
||||
case PROTO_DSM2_LP45:
|
||||
case PROTOCOL_CHANNELS_DSM2_LP45:
|
||||
dsmDat[0] = 0x00;
|
||||
break;
|
||||
case PROTO_DSM2_DSM2:
|
||||
case PROTOCOL_CHANNELS_DSM2_DSM2:
|
||||
dsmDat[0] = 0x10;
|
||||
break;
|
||||
default: // DSMX
|
||||
|
|
|
@ -51,7 +51,7 @@ enum ModuleFlag
|
|||
#endif
|
||||
|
||||
#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
|
||||
#define IS_DSM2_PROTOCOL(protocol) (0)
|
||||
#endif
|
||||
|
@ -63,7 +63,7 @@ enum ModuleFlag
|
|||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
#define IS_MULTIMODULE_PROTOCOL(protocol) (protocol==PROTO_MULTIMODULE)
|
||||
#define IS_MULTIMODULE_PROTOCOL(protocol) (protocol==PROTOCOL_CHANNELS_MULTIMODULE)
|
||||
#if !defined(DSM2)
|
||||
#error You need to enable DSM2 = PPM for MULTIMODULE support
|
||||
#endif
|
||||
|
@ -71,7 +71,7 @@ enum ModuleFlag
|
|||
#define IS_MULTIMODULE_PROTOCOL(protocol) (0)
|
||||
#endif
|
||||
|
||||
#define IS_SBUS_PROTOCOL(protocol) (protocol == PROTO_SBUS)
|
||||
#define IS_SBUS_PROTOCOL(protocol) (protocol == PROTOCOL_CHANNELS_SBUS)
|
||||
|
||||
|
||||
#include "pulses_arm.h"
|
||||
|
|
|
@ -19,11 +19,8 @@
|
|||
*/
|
||||
|
||||
#include "opentx.h"
|
||||
|
||||
#if defined(PXX2)
|
||||
#include "io/pxx2.h"
|
||||
#include "pulses/pxx2.h"
|
||||
#endif
|
||||
|
||||
uint8_t s_pulses_paused = 0;
|
||||
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) {
|
||||
#if defined(TARANIS_INTERNAL_PPM)
|
||||
case MODULE_TYPE_PPM:
|
||||
required_protocol = PROTO_PPM;
|
||||
required_protocol = PROTOCOL_CHANNELS_PPM;
|
||||
break;
|
||||
#endif
|
||||
case MODULE_TYPE_XJT:
|
||||
required_protocol = PROTO_PXX;
|
||||
required_protocol = PROTOCOL_CHANNELS_PXX;
|
||||
break;
|
||||
default:
|
||||
required_protocol = PROTO_NONE;
|
||||
required_protocol = PROTOCOL_CHANNELS_NONE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -63,30 +60,32 @@ uint8_t getRequiredProtocol(uint8_t port)
|
|||
default:
|
||||
switch (g_model.moduleData[EXTERNAL_MODULE].type) {
|
||||
case MODULE_TYPE_PPM:
|
||||
required_protocol = PROTO_PPM;
|
||||
required_protocol = PROTOCOL_CHANNELS_PPM;
|
||||
break;
|
||||
case MODULE_TYPE_XJT:
|
||||
required_protocol = PROTOCOL_CHANNELS_PXX;
|
||||
break;
|
||||
case MODULE_TYPE_R9M:
|
||||
required_protocol = PROTO_PXX_EXTERNAL_MODULE; // either PXX or PXX2 depending on compilation options
|
||||
required_protocol = PROTOCOL_CHANNELS_PXX2;
|
||||
break;
|
||||
case MODULE_TYPE_SBUS:
|
||||
required_protocol = PROTO_SBUS;
|
||||
required_protocol = PROTOCOL_CHANNELS_SBUS;
|
||||
break;
|
||||
#if defined(MULTIMODULE)
|
||||
case MODULE_TYPE_MULTIMODULE:
|
||||
required_protocol = PROTO_MULTIMODULE;
|
||||
required_protocol = PROTOCOL_CHANNELS_MULTIMODULE;
|
||||
break;
|
||||
#endif
|
||||
#if defined(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
|
||||
{
|
||||
static tmr10ms_t bindStartTime = 0;
|
||||
if (moduleFlag[EXTERNAL_MODULE] == MODULE_BIND) {
|
||||
if (bindStartTime == 0) bindStartTime = get_tmr10ms();
|
||||
if ((tmr10ms_t)(get_tmr10ms() - bindStartTime) < 100) {
|
||||
required_protocol = PROTO_NONE;
|
||||
required_protocol = PROTOCOL_CHANNELS_NONE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -98,24 +97,24 @@ uint8_t getRequiredProtocol(uint8_t port)
|
|||
#endif
|
||||
#if defined(CROSSFIRE)
|
||||
case MODULE_TYPE_CROSSFIRE:
|
||||
required_protocol = PROTO_CROSSFIRE;
|
||||
required_protocol = PROTOCOL_CHANNELS_CROSSFIRE;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
required_protocol = PROTO_NONE;
|
||||
required_protocol = PROTOCOL_CHANNELS_NONE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (s_pulses_paused) {
|
||||
required_protocol = PROTO_NONE;
|
||||
required_protocol = PROTOCOL_CHANNELS_NONE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
// will need an EEPROM conversion
|
||||
if (moduleFlag[port] == MODULE_OFF) {
|
||||
required_protocol = PROTO_NONE;
|
||||
required_protocol = PROTOCOL_CHANNELS_NONE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -146,38 +145,36 @@ void setupPulses(uint8_t port)
|
|||
if (s_current_protocol[port] != required_protocol) {
|
||||
init_needed = true;
|
||||
switch (s_current_protocol[port]) { // stop existing protocol hardware
|
||||
case PROTO_PXX:
|
||||
case PROTOCOL_CHANNELS_PXX:
|
||||
disable_pxx(port);
|
||||
break;
|
||||
|
||||
#if defined(DSM2)
|
||||
case PROTO_DSM2_LP45:
|
||||
case PROTO_DSM2_DSM2:
|
||||
case PROTO_DSM2_DSMX:
|
||||
case PROTOCOL_CHANNELS_DSM2_LP45:
|
||||
case PROTOCOL_CHANNELS_DSM2_DSM2:
|
||||
case PROTOCOL_CHANNELS_DSM2_DSMX:
|
||||
disable_serial(port);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
case PROTO_CROSSFIRE:
|
||||
case PROTOCOL_CHANNELS_CROSSFIRE:
|
||||
disable_module_timer(port);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(PXX2)
|
||||
case PROTO_PXX2:
|
||||
case PROTOCOL_CHANNELS_PXX2:
|
||||
disable_module_timer(port);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
case PROTO_MULTIMODULE:
|
||||
case PROTOCOL_CHANNELS_MULTIMODULE:
|
||||
#endif
|
||||
case PROTO_SBUS:
|
||||
case PROTOCOL_CHANNELS_SBUS:
|
||||
disable_serial(port);
|
||||
break;
|
||||
|
||||
case PROTO_PPM:
|
||||
case PROTOCOL_CHANNELS_PPM:
|
||||
disable_ppm(port);
|
||||
break;
|
||||
|
||||
|
@ -190,28 +187,28 @@ void setupPulses(uint8_t port)
|
|||
|
||||
// Set up output data here
|
||||
switch (required_protocol) {
|
||||
case PROTO_PXX:
|
||||
case PROTOCOL_CHANNELS_PXX:
|
||||
setupPulsesPXX(port);
|
||||
scheduleNextMixerCalculation(port, PXX_PERIOD);
|
||||
break;
|
||||
|
||||
case PROTO_SBUS:
|
||||
case PROTOCOL_CHANNELS_SBUS:
|
||||
setupPulsesSbus(port);
|
||||
scheduleNextMixerCalculation(port, SBUS_PERIOD);
|
||||
break;
|
||||
|
||||
#if defined(DSM2)
|
||||
case PROTO_DSM2_LP45:
|
||||
case PROTO_DSM2_DSM2:
|
||||
case PROTO_DSM2_DSMX:
|
||||
case PROTOCOL_CHANNELS_DSM2_LP45:
|
||||
case PROTOCOL_CHANNELS_DSM2_DSM2:
|
||||
case PROTOCOL_CHANNELS_DSM2_DSMX:
|
||||
setupPulsesDSM2(port);
|
||||
scheduleNextMixerCalculation(port, DSM2_PERIOD);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
case PROTO_CROSSFIRE:
|
||||
if (telemetryProtocol == PROTOCOL_PULSES_CROSSFIRE && !init_needed) {
|
||||
case PROTOCOL_CHANNELS_CROSSFIRE:
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_CROSSFIRE && !init_needed) {
|
||||
uint8_t * crossfire = modulePulsesData[port].crossfire.pulses;
|
||||
uint8_t len;
|
||||
#if defined(LUA)
|
||||
|
@ -232,26 +229,25 @@ void setupPulses(uint8_t port)
|
|||
break;
|
||||
#endif
|
||||
|
||||
#if defined(PXX2)
|
||||
case PROTO_PXX2:
|
||||
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT && !init_needed) {
|
||||
case PROTOCOL_CHANNELS_PXX2:
|
||||
// here we have to wait that telemetryInit() is called, hence this test
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_PXX2 && !init_needed) {
|
||||
modulePulsesData[port].pxx2.setupFrame(port);
|
||||
sportSendBuffer(modulePulsesData[port].pxx2.getData(), modulePulsesData[port].pxx2.getSize());
|
||||
}
|
||||
scheduleNextMixerCalculation(port, PXX2_PERIOD);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
case PROTO_MULTIMODULE:
|
||||
case PROTOCOL_CHANNELS_MULTIMODULE:
|
||||
setupPulsesMultimodule(port);
|
||||
scheduleNextMixerCalculation(port, MULTIMODULE_PERIOD);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case PROTO_PPM:
|
||||
case PROTOCOL_CHANNELS_PPM:
|
||||
#if defined(PCBSKY9X)
|
||||
case PROTO_NONE:
|
||||
case PROTOCOL_CHANNELS_NONE:
|
||||
#endif
|
||||
setupPulsesPPMModule(port);
|
||||
scheduleNextMixerCalculation(port, PPM_PERIOD(port));
|
||||
|
@ -263,41 +259,39 @@ void setupPulses(uint8_t port)
|
|||
|
||||
if (init_needed) {
|
||||
switch (required_protocol) { // Start new protocol hardware here
|
||||
case PROTO_PXX:
|
||||
case PROTOCOL_CHANNELS_PXX:
|
||||
init_pxx(port);
|
||||
break;
|
||||
|
||||
#if defined(DSM2)
|
||||
case PROTO_DSM2_LP45:
|
||||
case PROTO_DSM2_DSM2:
|
||||
case PROTO_DSM2_DSMX:
|
||||
case PROTOCOL_CHANNELS_DSM2_LP45:
|
||||
case PROTOCOL_CHANNELS_DSM2_DSM2:
|
||||
case PROTOCOL_CHANNELS_DSM2_DSMX:
|
||||
init_serial(port, DSM2_BAUDRATE, DSM2_PERIOD * 2000);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
case PROTO_CROSSFIRE:
|
||||
case PROTOCOL_CHANNELS_CROSSFIRE:
|
||||
init_module_timer(port, CROSSFIRE_PERIOD, true);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(PXX2)
|
||||
case PROTO_PXX2:
|
||||
case PROTOCOL_CHANNELS_PXX2:
|
||||
init_module_timer(port, PXX2_PERIOD, true);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
case PROTO_MULTIMODULE:
|
||||
case PROTOCOL_CHANNELS_MULTIMODULE:
|
||||
init_serial(port, MULTIMODULE_BAUDRATE, MULTIMODULE_PERIOD * 2000);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case PROTO_SBUS:
|
||||
case PROTOCOL_CHANNELS_SBUS:
|
||||
init_serial(port, SBUS_BAUDRATE, SBUS_PERIOD_HALF_US);
|
||||
break;
|
||||
|
||||
case PROTO_PPM:
|
||||
case PROTOCOL_CHANNELS_PPM:
|
||||
init_ppm(port);
|
||||
break;
|
||||
|
||||
|
|
|
@ -82,9 +82,7 @@ union ModulePulsesData {
|
|||
PwmPxxPulses pxx;
|
||||
#endif
|
||||
|
||||
#if defined(PXX2)
|
||||
Pxx2Pulses pxx2;
|
||||
#endif
|
||||
|
||||
#if defined(PPM_PIN_SERIAL)
|
||||
Dsm2SerialPulsesData dsm2;
|
||||
|
|
|
@ -132,13 +132,7 @@ set(PULSES_SRC
|
|||
ppm_arm.cpp
|
||||
pxx.cpp
|
||||
pxx1.cpp
|
||||
pxx2.cpp
|
||||
dsm2_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()
|
||||
{
|
||||
if (s_current_protocol[INTERNAL_MODULE] == PROTO_PXX) {
|
||||
if (s_current_protocol[INTERNAL_MODULE] == PROTOCOL_CHANNELS_PXX) {
|
||||
DMA_InitTypeDef DMA_InitStructure;
|
||||
DMA_DeInit(INTMODULE_DMA_STREAM);
|
||||
DMA_InitStructure.DMA_Channel = INTMODULE_DMA_CHANNEL;
|
||||
|
|
|
@ -97,7 +97,7 @@ void serial2Init(unsigned int mode, unsigned int protocol)
|
|||
break;
|
||||
#endif
|
||||
case UART_MODE_TELEMETRY:
|
||||
if (protocol == PROTOCOL_FRSKY_D_SECONDARY) {
|
||||
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
||||
uart3Setup(FRSKY_D_BAUDRATE, true);
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -215,7 +215,7 @@ void extmoduleSerialStart(uint32_t /*baudrate*/, uint32_t period_half_us)
|
|||
|
||||
void extmoduleSendNextFrame()
|
||||
{
|
||||
if (s_current_protocol[EXTERNAL_MODULE] == PROTO_PPM) {
|
||||
if (s_current_protocol[EXTERNAL_MODULE] == PROTOCOL_CHANNELS_PPM) {
|
||||
#if defined(PCBX10) || PCBREV >= 13
|
||||
EXTMODULE_TIMER->CCR3 = GET_PPM_DELAY(EXTERNAL_MODULE)*2;
|
||||
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->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_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA
|
||||
#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)) {
|
||||
DMA_ClearITPendingBit(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC);
|
||||
TELEMETRY_USART->CR1 |= USART_CR1_TCIE;
|
||||
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) {
|
||||
outputTelemetryBufferSize = 0;
|
||||
outputTelemetryBufferTrigger = 0x7E;
|
||||
}
|
||||
|
@ -205,7 +205,7 @@ extern "C" void TELEMETRY_USART_IRQHandler(void)
|
|||
else {
|
||||
telemetryNoDMAFifo.push(data);
|
||||
#if defined(LUA)
|
||||
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) {
|
||||
static uint8_t prevdata;
|
||||
if (prevdata == 0x7E && outputTelemetryBufferSize > 0 && data == outputTelemetryBufferTrigger) {
|
||||
sportSendBuffer(outputTelemetryBuffer, outputTelemetryBufferSize);
|
||||
|
|
|
@ -238,7 +238,7 @@ void extmodulePxxStart()
|
|||
|
||||
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->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
|
||||
|
@ -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->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)
|
||||
DMA_InitTypeDef DMA_InitStructure;
|
||||
DMA_DeInit(EXTMODULE_USART_DMA_STREAM);
|
||||
|
|
|
@ -60,7 +60,7 @@ void intmoduleNoneStart()
|
|||
|
||||
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_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;
|
||||
|
@ -70,7 +70,7 @@ void intmoduleSendNextFrame()
|
|||
INTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
|
||||
}
|
||||
#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->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
|
||||
|
|
|
@ -127,7 +127,7 @@ extern "C" void TELEMETRY_DMA_TX_IRQHandler(void)
|
|||
if (DMA_GetITStatus(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;
|
||||
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) {
|
||||
outputTelemetryBufferSize = 0;
|
||||
outputTelemetryBufferTrigger = 0x7E;
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ extern "C" void TELEMETRY_USART_IRQHandler(void)
|
|||
else {
|
||||
telemetryFifo.push(data);
|
||||
#if defined(LUA)
|
||||
if (telemetryProtocol == PROTOCOL_FRSKY_SPORT) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) {
|
||||
static uint8_t prevdata;
|
||||
if (prevdata == 0x7E && outputTelemetryBufferSize > 0 && data == outputTelemetryBufferTrigger) {
|
||||
sportSendBuffer(outputTelemetryBuffer, outputTelemetryBufferSize);
|
||||
|
@ -174,7 +174,7 @@ extern "C" void TELEMETRY_USART_IRQHandler(void)
|
|||
uint8_t telemetryGetByte(uint8_t * byte)
|
||||
{
|
||||
#if defined(SERIAL2)
|
||||
if (telemetryProtocol == PROTOCOL_FRSKY_D_SECONDARY) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
||||
if (serial2Mode == UART_MODE_TELEMETRY)
|
||||
return serial2RxFifo.pop(*byte);
|
||||
else
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "../definitions.h"
|
||||
#include "telemetry_holders.h"
|
||||
#include "io/pxx2.h"
|
||||
|
||||
// Receive buffer state machine state enum
|
||||
enum FrSkyDataState {
|
||||
|
@ -32,12 +33,7 @@ enum FrSkyDataState {
|
|||
STATE_DATA_XOR,
|
||||
};
|
||||
|
||||
#if defined(PXX2)
|
||||
#include "io/pxx2.h"
|
||||
#define FRSKY_SPORT_BAUDRATE PXX2_BAUDRATE
|
||||
#else
|
||||
#define FRSKY_SPORT_BAUDRATE 57600
|
||||
#endif
|
||||
|
||||
#define FRSKY_D_BAUDRATE 9600
|
||||
|
||||
|
|
|
@ -42,21 +42,21 @@ uint8_t serialInversion = 0;
|
|||
void processTelemetryData(uint8_t data)
|
||||
{
|
||||
#if defined(CROSSFIRE)
|
||||
if (telemetryProtocol == PROTOCOL_PULSES_CROSSFIRE) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||
processCrossfireTelemetryData(data);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#if defined(MULTIMODULE)
|
||||
if (telemetryProtocol == PROTOCOL_SPEKTRUM) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_SPEKTRUM) {
|
||||
processSpektrumTelemetryData(data);
|
||||
return;
|
||||
}
|
||||
if (telemetryProtocol == PROTOCOL_FLYSKY_IBUS) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_FLYSKY_IBUS) {
|
||||
processFlySkyTelemetryData(data);
|
||||
return;
|
||||
}
|
||||
if (telemetryProtocol == PROTOCOL_MULTIMODULE) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_MULTIMODULE) {
|
||||
processMultiTelemetryData(data);
|
||||
return;
|
||||
}
|
||||
|
@ -67,15 +67,18 @@ void processTelemetryData(uint8_t data)
|
|||
void telemetryWakeup()
|
||||
{
|
||||
uint8_t requiredTelemetryProtocol = modelTelemetryProtocol();
|
||||
|
||||
#if defined(REVX)
|
||||
uint8_t requiredSerialInversion = g_model.moduleData[EXTERNAL_MODULE].invertedSerial;
|
||||
if (telemetryProtocol != requiredTelemetryProtocol || serialInversion != requiredSerialInversion) {
|
||||
serialInversion = requiredSerialInversion;
|
||||
#else
|
||||
if (telemetryProtocol != requiredTelemetryProtocol) {
|
||||
#endif
|
||||
telemetryInit(requiredTelemetryProtocol);
|
||||
}
|
||||
#else
|
||||
if (telemetryProtocol != requiredTelemetryProtocol) {
|
||||
telemetryInit(requiredTelemetryProtocol);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(STM32)
|
||||
uint8_t data;
|
||||
|
@ -87,7 +90,7 @@ void telemetryWakeup()
|
|||
} while (telemetryGetByte(&data));
|
||||
}
|
||||
#elif defined(PCBSKY9X)
|
||||
if (telemetryProtocol == PROTOCOL_FRSKY_D_SECONDARY) {
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
||||
uint8_t data;
|
||||
while (telemetrySecondPortReceive(data)) {
|
||||
processTelemetryData(data);
|
||||
|
@ -99,7 +102,6 @@ void telemetryWakeup()
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
for (int i=0; i<MAX_TELEMETRY_SENSORS; i++) {
|
||||
const TelemetrySensor & sensor = g_model.telemetrySensors[i];
|
||||
if (sensor.type == TELEM_TYPE_CALCULATED) {
|
||||
|
@ -223,12 +225,12 @@ void telemetryInit(uint8_t protocol)
|
|||
{
|
||||
telemetryProtocol = protocol;
|
||||
|
||||
if (protocol == PROTOCOL_FRSKY_D) {
|
||||
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D) {
|
||||
telemetryPortInit(FRSKY_D_BAUDRATE, TELEMETRY_SERIAL_DEFAULT);
|
||||
}
|
||||
|
||||
#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
|
||||
telemetryPortInit(MULTIMODULE_BAUDRATE, TELEMETRY_SERIAL_8E2);
|
||||
#if defined(LUA)
|
||||
|
@ -236,14 +238,14 @@ void telemetryInit(uint8_t protocol)
|
|||
outputTelemetryBufferTrigger = 0x7E;
|
||||
#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
|
||||
telemetryPortInit(125000, TELEMETRY_SERIAL_DEFAULT);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
else if (protocol == PROTOCOL_PULSES_CROSSFIRE) {
|
||||
else if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||
telemetryPortInit(CROSSFIRE_BAUDRATE, TELEMETRY_SERIAL_DEFAULT);
|
||||
#if defined(LUA)
|
||||
outputTelemetryBufferSize = 0;
|
||||
|
@ -254,12 +256,19 @@ void telemetryInit(uint8_t protocol)
|
|||
#endif
|
||||
|
||||
#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);
|
||||
serial2TelemetryInit(PROTOCOL_FRSKY_D_SECONDARY);
|
||||
serial2TelemetryInit(PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY);
|
||||
}
|
||||
#endif
|
||||
|
||||
else if (protocol == PROTOCOL_TELEMETRY_PXX2) {
|
||||
telemetryPortInit(PXX2_BAUDRATE, TELEMETRY_SERIAL_WITHOUT_DMA);
|
||||
#if defined(LUA)
|
||||
outputTelemetryBufferSize = 0;
|
||||
outputTelemetryBufferTrigger = 0x7E;
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
telemetryPortInit(FRSKY_SPORT_BAUDRATE, TELEMETRY_SERIAL_WITHOUT_DMA);
|
||||
#if defined(LUA)
|
||||
|
|
|
@ -110,17 +110,17 @@ extern uint8_t telemetryProtocol;
|
|||
#define IS_FRSKY_D_PROTOCOL() (telemetryProtocol == PROTOCOL_FRSKY_D)
|
||||
#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_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
|
||||
#define IS_FRSKY_SPORT_PROTOCOL() (telemetryProtocol == PROTOCOL_FRSKY_SPORT)
|
||||
#define IS_FRSKY_SPORT_PROTOCOL() (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT)
|
||||
#endif
|
||||
#define IS_SPEKTRUM_PROTOCOL() (telemetryProtocol == PROTOCOL_SPEKTRUM)
|
||||
#define IS_SPEKTRUM_PROTOCOL() (telemetryProtocol == PROTOCOL_TELEMETRY_SPEKTRUM)
|
||||
|
||||
inline uint8_t modelTelemetryProtocol()
|
||||
{
|
||||
#if defined(CROSSFIRE)
|
||||
if (g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_CROSSFIRE) {
|
||||
return PROTOCOL_PULSES_CROSSFIRE;
|
||||
return PROTOCOL_TELEMETRY_CROSSFIRE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -128,14 +128,18 @@ inline uint8_t modelTelemetryProtocol()
|
|||
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 (!IS_INTERNAL_MODULE_ENABLED() && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_MULTIMODULE) {
|
||||
return PROTOCOL_MULTIMODULE;
|
||||
return PROTOCOL_TELEMETRY_MULTIMODULE;
|
||||
}
|
||||
#endif
|
||||
|
||||
// default choice
|
||||
return PROTOCOL_FRSKY_SPORT;
|
||||
return PROTOCOL_TELEMETRY_FRSKY_SPORT;
|
||||
}
|
||||
|
||||
#include "telemetry_sensors.h"
|
||||
|
|
|
@ -33,7 +33,7 @@ bool isFaiForbidden(source_t idx)
|
|||
|
||||
switch (telemetryProtocol) {
|
||||
|
||||
case PROTOCOL_FRSKY_SPORT:
|
||||
case PROTOCOL_TELEMETRY_FRSKY_SPORT:
|
||||
if (sensor->id == RSSI_ID) {
|
||||
return false;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ bool isFaiForbidden(source_t idx)
|
|||
}
|
||||
break;
|
||||
|
||||
case PROTOCOL_FRSKY_D:
|
||||
case PROTOCOL_TELEMETRY_FRSKY_D:
|
||||
if (sensor->id == D_RSSI_ID) {
|
||||
return false;
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ bool isFaiForbidden(source_t idx)
|
|||
break;
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
case PROTOCOL_PULSES_CROSSFIRE:
|
||||
case PROTOCOL_TELEMETRY_CROSSFIRE:
|
||||
if (sensor->id == RX_RSSI1_INDEX) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -149,7 +149,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -157,21 +157,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POZ""NEG"
|
||||
|
|
|
@ -152,7 +152,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -160,21 +160,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POS""NEG"
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -159,22 +159,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POS""NEG"
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -159,21 +159,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POS""NEG"
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -159,21 +159,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POS""NEG"
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -159,21 +159,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POS""NEG"
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -159,21 +159,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POS""NEG"
|
||||
|
|
|
@ -153,7 +153,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -161,21 +161,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POS""NEG"
|
||||
|
|
|
@ -152,7 +152,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -160,21 +160,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POZ""NEG"
|
||||
|
|
|
@ -150,7 +150,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -158,21 +158,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "POS""NEG"
|
||||
|
|
|
@ -149,7 +149,7 @@
|
|||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#elif defined(DSM2) || defined(IRPROTOS)
|
||||
#elif defined(DSM2)
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#else
|
||||
#define TR_PXX
|
||||
|
@ -157,19 +157,11 @@
|
|||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 "
|
||||
#elif defined(IRPROTOS)
|
||||
#define TR_DSM2 "[LP45]""[DSM2]""[DSMX]"
|
||||
#else
|
||||
#define TR_DSM2
|
||||
#endif
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#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 TR_VPROTOS "PPM\0 " TR_PXX TR_DSM2
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
#define TR_POSNEG "Pos""Neg"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue