mirror of
https://github.com/opentx/opentx.git
synced 2025-07-20 06:45:10 +03:00
parent
a59776a8e8
commit
f7f1b1ff7b
27 changed files with 188 additions and 117 deletions
|
@ -546,12 +546,12 @@ bool isInternalModuleAvailable(int module)
|
||||||
bool isExternalModuleAvailable(int module)
|
bool isExternalModuleAvailable(int module)
|
||||||
{
|
{
|
||||||
#if !defined(PXX1)
|
#if !defined(PXX1)
|
||||||
if (module == MODULE_TYPE_XJT || module == MODULE_TYPE_R9M) {
|
if (module == MODULE_TYPE_XJT || module == MODULE_TYPE_R9M || module == MODULE_TYPE_R9M_LITE) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if !defined(PXX2)
|
#if !defined(PXX2)
|
||||||
if (module == MODULE_TYPE_XJT2 || module == MODULE_TYPE_R9M2) {
|
if (module == MODULE_TYPE_XJT2 || module == MODULE_TYPE_R9M2 || module == MODULE_TYPE_R9M_LITE2 || module == MODULE_TYPE_R9M_LITE_PRO2) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -408,6 +408,9 @@ enum ModuleTypes {
|
||||||
MODULE_TYPE_MULTIMODULE,
|
MODULE_TYPE_MULTIMODULE,
|
||||||
MODULE_TYPE_R9M,
|
MODULE_TYPE_R9M,
|
||||||
MODULE_TYPE_R9M2,
|
MODULE_TYPE_R9M2,
|
||||||
|
MODULE_TYPE_R9M_LITE,
|
||||||
|
MODULE_TYPE_R9M_LITE2,
|
||||||
|
MODULE_TYPE_R9M_LITE_PRO2,
|
||||||
MODULE_TYPE_SBUS,
|
MODULE_TYPE_SBUS,
|
||||||
MODULE_TYPE_MAX = MODULE_TYPE_SBUS,
|
MODULE_TYPE_MAX = MODULE_TYPE_SBUS,
|
||||||
MODULE_TYPE_COUNT
|
MODULE_TYPE_COUNT
|
||||||
|
|
|
@ -59,7 +59,6 @@ inline bool isModuleXJT2(uint8_t idx)
|
||||||
return g_model.moduleData[idx].type == MODULE_TYPE_XJT2;
|
return g_model.moduleData[idx].type == MODULE_TYPE_XJT2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline bool isModuleXJTVariant(uint8_t idx)
|
inline bool isModuleXJTVariant(uint8_t idx)
|
||||||
{
|
{
|
||||||
return g_model.moduleData[idx].type == MODULE_TYPE_XJT || g_model.moduleData[idx].type == MODULE_TYPE_XJT2;
|
return g_model.moduleData[idx].type == MODULE_TYPE_XJT || g_model.moduleData[idx].type == MODULE_TYPE_XJT2;
|
||||||
|
@ -112,12 +111,12 @@ inline bool isModulePPM(uint8_t idx)
|
||||||
|
|
||||||
inline bool isModuleR9M(uint8_t idx)
|
inline bool isModuleR9M(uint8_t idx)
|
||||||
{
|
{
|
||||||
return g_model.moduleData[idx].type == MODULE_TYPE_R9M;
|
return g_model.moduleData[idx].type == MODULE_TYPE_R9M || g_model.moduleData[idx].type == MODULE_TYPE_R9M_LITE;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool isModuleR9M2(uint8_t idx)
|
inline bool isModuleR9M2(uint8_t idx)
|
||||||
{
|
{
|
||||||
return g_model.moduleData[idx].type == MODULE_TYPE_R9M2;
|
return g_model.moduleData[idx].type == MODULE_TYPE_R9M2 || g_model.moduleData[idx].type == MODULE_TYPE_R9M_LITE2 || g_model.moduleData[idx].type == MODULE_TYPE_R9M_LITE_PRO2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(PCBXLITE)
|
#if defined(PCBXLITE)
|
||||||
|
|
|
@ -50,12 +50,26 @@ uint8_t getRequiredProtocol(uint8_t module)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MODULE_TYPE_XJT:
|
case MODULE_TYPE_XJT:
|
||||||
|
#if defined(INTMODULE_USART)
|
||||||
|
if (module == INTERNAL_MODULE) {
|
||||||
|
protocol = PROTOCOL_CHANNELS_PXX1_SERIAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
// no break
|
||||||
|
|
||||||
case MODULE_TYPE_R9M:
|
case MODULE_TYPE_R9M:
|
||||||
protocol = PROTOCOL_CHANNELS_PXX1;
|
protocol = PROTOCOL_CHANNELS_PXX1_PULSES;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MODULE_TYPE_R9M_LITE:
|
||||||
|
protocol = PROTOCOL_CHANNELS_PXX1_SERIAL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MODULE_TYPE_XJT2:
|
case MODULE_TYPE_XJT2:
|
||||||
case MODULE_TYPE_R9M2:
|
case MODULE_TYPE_R9M2:
|
||||||
|
case MODULE_TYPE_R9M_LITE2:
|
||||||
|
case MODULE_TYPE_R9M_LITE_PRO2:
|
||||||
protocol = PROTOCOL_CHANNELS_PXX2;
|
protocol = PROTOCOL_CHANNELS_PXX2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -119,10 +133,18 @@ void disablePulses(uint8_t module, uint8_t protocol)
|
||||||
// stop existing protocol hardware
|
// stop existing protocol hardware
|
||||||
|
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
case PROTOCOL_CHANNELS_PXX1:
|
#if defined(PXX1)
|
||||||
disable_pxx(module);
|
case PROTOCOL_CHANNELS_PXX1_PULSES:
|
||||||
|
disable_pxx1_pulses(module);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if defined(INTMODULE_USART) || defined(EXTMODULE_USART)
|
||||||
|
case PROTOCOL_CHANNELS_PXX1_SERIAL:
|
||||||
|
disable_pxx1_serial(module);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(DSM2)
|
#if defined(DSM2)
|
||||||
case PROTOCOL_CHANNELS_DSM2_LP45:
|
case PROTOCOL_CHANNELS_DSM2_LP45:
|
||||||
case PROTOCOL_CHANNELS_DSM2_DSM2:
|
case PROTOCOL_CHANNELS_DSM2_DSM2:
|
||||||
|
@ -137,9 +159,11 @@ void disablePulses(uint8_t module, uint8_t protocol)
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(PXX2)
|
||||||
case PROTOCOL_CHANNELS_PXX2:
|
case PROTOCOL_CHANNELS_PXX2:
|
||||||
disable_pxx2(module);
|
disable_pxx2(module);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(MULTIMODULE)
|
#if defined(MULTIMODULE)
|
||||||
case PROTOCOL_CHANNELS_MULTIMODULE:
|
case PROTOCOL_CHANNELS_MULTIMODULE:
|
||||||
|
@ -159,10 +183,18 @@ void enablePulses(uint8_t module, uint8_t protocol)
|
||||||
// start new protocol hardware here
|
// start new protocol hardware here
|
||||||
|
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
case PROTOCOL_CHANNELS_PXX1:
|
#if defined(PXX1)
|
||||||
init_pxx(module);
|
case PROTOCOL_CHANNELS_PXX1_PULSES:
|
||||||
|
init_pxx1_pulses(module);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if defined(INTMODULE_USART) || defined(EXTMODULE_USART)
|
||||||
|
case PROTOCOL_CHANNELS_PXX1_SERIAL:
|
||||||
|
init_pxx1_serial(module);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(DSM2)
|
#if defined(DSM2)
|
||||||
case PROTOCOL_CHANNELS_DSM2_LP45:
|
case PROTOCOL_CHANNELS_DSM2_LP45:
|
||||||
case PROTOCOL_CHANNELS_DSM2_DSM2:
|
case PROTOCOL_CHANNELS_DSM2_DSM2:
|
||||||
|
@ -177,9 +209,11 @@ void enablePulses(uint8_t module, uint8_t protocol)
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(PXX2)
|
||||||
case PROTOCOL_CHANNELS_PXX2:
|
case PROTOCOL_CHANNELS_PXX2:
|
||||||
init_pxx2(module);
|
init_pxx2(module);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(MULTIMODULE)
|
#if defined(MULTIMODULE)
|
||||||
case PROTOCOL_CHANNELS_MULTIMODULE:
|
case PROTOCOL_CHANNELS_MULTIMODULE:
|
||||||
|
@ -197,28 +231,19 @@ void enablePulses(uint8_t module, uint8_t protocol)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(PXX1)
|
|
||||||
void setupPulsesPXXInternalModule()
|
|
||||||
{
|
|
||||||
#if defined(INTMODULE_USART)
|
|
||||||
intmodulePulsesData.pxx_uart.setupFrame(INTERNAL_MODULE);
|
|
||||||
#else
|
|
||||||
intmodulePulsesData.pxx.setupFrame(INTERNAL_MODULE);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void setupPulsesPXXExternalModule()
|
|
||||||
{
|
|
||||||
extmodulePulsesData.pxx.setupFrame(EXTERNAL_MODULE);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void setupPulsesInternalModule(uint8_t protocol)
|
void setupPulsesInternalModule(uint8_t protocol)
|
||||||
{
|
{
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
#if defined(PXX1)
|
#if defined(PXX1) && !defined(INTMODULE_USART)
|
||||||
case PROTOCOL_CHANNELS_PXX1:
|
case PROTOCOL_CHANNELS_PXX1_PULSES:
|
||||||
setupPulsesPXXInternalModule();
|
intmodulePulsesData.pxx.setupFrame(INTERNAL_MODULE);
|
||||||
|
scheduleNextMixerCalculation(INTERNAL_MODULE, INTMODULE_PXX_PERIOD);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(PXX1) && defined(INTMODULE_USART)
|
||||||
|
case PROTOCOL_CHANNELS_PXX1_SERIAL:
|
||||||
|
intmodulePulsesData.pxx_uart.setupFrame(INTERNAL_MODULE);
|
||||||
scheduleNextMixerCalculation(INTERNAL_MODULE, INTMODULE_PXX_PERIOD);
|
scheduleNextMixerCalculation(INTERNAL_MODULE, INTMODULE_PXX_PERIOD);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
@ -246,9 +271,14 @@ void setupPulsesExternalModule(uint8_t protocol)
|
||||||
{
|
{
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
#if defined(PXX1)
|
#if defined(PXX1)
|
||||||
case PROTOCOL_CHANNELS_PXX1:
|
case PROTOCOL_CHANNELS_PXX1_PULSES:
|
||||||
setupPulsesPXXExternalModule();
|
extmodulePulsesData.pxx.setupFrame(EXTERNAL_MODULE);
|
||||||
scheduleNextMixerCalculation(EXTERNAL_MODULE, EXTMODULE_PXX_PERIOD);
|
scheduleNextMixerCalculation(EXTERNAL_MODULE, PXX_PULSES_PERIOD);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PROTOCOL_CHANNELS_PXX1_SERIAL:
|
||||||
|
extmodulePulsesData.pxx_uart.setupFrame(EXTERNAL_MODULE);
|
||||||
|
scheduleNextMixerCalculation(EXTERNAL_MODULE, EXTMODULE_PXX_SERIAL_PERIOD);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -152,6 +152,9 @@ union InternalModulePulsesData {
|
||||||
|
|
||||||
union ExternalModulePulsesData {
|
union ExternalModulePulsesData {
|
||||||
#if defined(PXX1)
|
#if defined(PXX1)
|
||||||
|
#if defined(EXTMODULE_USART)
|
||||||
|
UartPxx1Pulses pxx_uart;
|
||||||
|
#endif
|
||||||
#if defined(PPM_PIN_SERIAL)
|
#if defined(PPM_PIN_SERIAL)
|
||||||
SerialPxx1Pulses pxx;
|
SerialPxx1Pulses pxx;
|
||||||
#else
|
#else
|
||||||
|
@ -225,7 +228,8 @@ enum ChannelsProtocols {
|
||||||
PROTOCOL_CHANNELS_NONE,
|
PROTOCOL_CHANNELS_NONE,
|
||||||
PROTOCOL_CHANNELS_PPM,
|
PROTOCOL_CHANNELS_PPM,
|
||||||
#if defined(PXX) || defined(DSM2)
|
#if defined(PXX) || defined(DSM2)
|
||||||
PROTOCOL_CHANNELS_PXX1,
|
PROTOCOL_CHANNELS_PXX1_PULSES,
|
||||||
|
PROTOCOL_CHANNELS_PXX1_SERIAL,
|
||||||
#endif
|
#endif
|
||||||
#if defined(DSM2)
|
#if defined(DSM2)
|
||||||
PROTOCOL_CHANNELS_DSM2_LP45,
|
PROTOCOL_CHANNELS_DSM2_LP45,
|
||||||
|
|
|
@ -31,13 +31,15 @@
|
||||||
#define PXX2_PERIOD 4 // 4ms
|
#define PXX2_PERIOD 4 // 4ms
|
||||||
#define PXX2_FRAME_MAXLENGTH 64
|
#define PXX2_FRAME_MAXLENGTH 64
|
||||||
|
|
||||||
#define EXTMODULE_PXX_PERIOD 9/*ms*/
|
#define PXX_PULSES_PERIOD 9/*ms*/
|
||||||
|
#define EXTMODULE_PXX_SERIAL_PERIOD 4/*ms*/
|
||||||
|
#define EXTMODULE_PXX_SERIAL_BAUDRATE 420000
|
||||||
|
|
||||||
#if defined(PXX_FREQUENCY_HIGH)
|
#if defined(PXX_FREQUENCY_HIGH)
|
||||||
#define INTMODULE_USART_PXX_BAUDRATE 450000
|
#define INTMODULE_PXX_BAUDRATE 450000
|
||||||
#define INTMODULE_PXX_PERIOD 4/*ms*/
|
#define INTMODULE_PXX_PERIOD 4/*ms*/
|
||||||
#else
|
#else
|
||||||
#define INTMODULE_USART_PXX_BAUDRATE 115200
|
#define INTMODULE_PXX_BAUDRATE 115200
|
||||||
#define INTMODULE_PXX_PERIOD 9/*ms*/
|
#define INTMODULE_PXX_PERIOD 9/*ms*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -53,9 +55,6 @@
|
||||||
#error "Pulses array needs to be increased (PXX_FREQUENCY=HIGH)"
|
#error "Pulses array needs to be increased (PXX_FREQUENCY=HIGH)"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define PXX_PERIOD_HALF_US (PXX_PERIOD * 2000)
|
|
||||||
|
|
||||||
// Used by the Sky9x family boards
|
// Used by the Sky9x family boards
|
||||||
class SerialPxxBitTransport: public DataBuffer<uint8_t, 64> {
|
class SerialPxxBitTransport: public DataBuffer<uint8_t, 64> {
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -216,10 +216,10 @@ void Pxx1Pulses<PxxTransport>::add8ChannelsFrame(uint8_t module, uint8_t sendUpp
|
||||||
template <class PxxTransport>
|
template <class PxxTransport>
|
||||||
void Pxx1Pulses<PxxTransport>::setupFrame(uint8_t module)
|
void Pxx1Pulses<PxxTransport>::setupFrame(uint8_t module)
|
||||||
{
|
{
|
||||||
PxxTransport::initFrame(module == INTERNAL_MODULE ? INTMODULE_PXX_PERIOD : EXTMODULE_PXX_PERIOD);
|
PxxTransport::initFrame(PXX_PULSES_PERIOD);
|
||||||
|
|
||||||
#if defined(PXX_FREQUENCY_HIGH)
|
#if defined(PXX_FREQUENCY_HIGH)
|
||||||
if (module == INTERNAL_MODULE) {
|
if (moduleSettings[module].protocol == PROTOCOL_CHANNELS_PXX1_SERIAL) {
|
||||||
add8ChannelsFrame(module, 0);
|
add8ChannelsFrame(module, 0);
|
||||||
if (sentModuleChannels(module) > 8) {
|
if (sentModuleChannels(module) > 8) {
|
||||||
add8ChannelsFrame(module, 8);
|
add8ChannelsFrame(module, 8);
|
||||||
|
|
|
@ -41,7 +41,7 @@ void intmoduleStop()
|
||||||
|
|
||||||
void intmodulePxxStart()
|
void intmodulePxxStart()
|
||||||
{
|
{
|
||||||
intmoduleSerialStart(INTMODULE_USART_PXX_BAUDRATE, false);
|
intmoduleSerialStart(INTMODULE_PXX_BAUDRATE, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void intmoduleSerialStart(uint32_t baudrate, uint8_t rxEnable)
|
void intmoduleSerialStart(uint32_t baudrate, uint8_t rxEnable)
|
||||||
|
@ -138,8 +138,9 @@ void intmoduleSendNextFrame()
|
||||||
intmoduleSendBuffer(intmodulePulsesData.pxx2.getData(), intmodulePulsesData.pxx2.getSize());
|
intmoduleSendBuffer(intmodulePulsesData.pxx2.getData(), intmodulePulsesData.pxx2.getSize());
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PXX1)
|
#if defined(PXX1)
|
||||||
case PROTOCOL_CHANNELS_PXX1:
|
case PROTOCOL_CHANNELS_PXX1_SERIAL:
|
||||||
intmoduleSendBuffer(intmodulePulsesData.pxx_uart.getData(), intmodulePulsesData.pxx_uart.getSize());
|
intmoduleSendBuffer(intmodulePulsesData.pxx_uart.getData(), intmodulePulsesData.pxx_uart.getSize());
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -209,8 +209,8 @@ extern HardwareOptions hardwareOptions;
|
||||||
|
|
||||||
void init_ppm(uint8_t module);
|
void init_ppm(uint8_t module);
|
||||||
void disable_ppm(uint8_t module);
|
void disable_ppm(uint8_t module);
|
||||||
void init_pxx(uint8_t module);
|
void init_pxx1_pulses(uint8_t module);
|
||||||
void disable_pxx(uint8_t module);
|
void disable_pxx1_pulses(uint8_t module);
|
||||||
void init_pxx2(uint8_t module);
|
void init_pxx2(uint8_t module);
|
||||||
void disable_pxx2(uint8_t module);
|
void disable_pxx2(uint8_t module);
|
||||||
void init_serial(uint8_t module, uint32_t baudrate, uint32_t period_half_us);
|
void init_serial(uint8_t module, uint32_t baudrate, uint32_t period_half_us);
|
||||||
|
|
|
@ -232,7 +232,7 @@ void extmoduleSendNextFrame()
|
||||||
EXTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
|
EXTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
|
||||||
}
|
}
|
||||||
#if defined(PXX1)
|
#if defined(PXX1)
|
||||||
else if (moduleSettings[EXTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX1) {
|
else if (moduleSettings[EXTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX1_PULSES) {
|
||||||
EXTMODULE_TIMER->CCR2 = extmodulePulsesData.pxx.getLast() - 4000; // 2mS in advance
|
EXTMODULE_TIMER->CCR2 = extmodulePulsesData.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
|
||||||
|
@ -245,6 +245,9 @@ void extmoduleSendNextFrame()
|
||||||
EXTMODULE_DMA_STREAM->NDTR = extmodulePulsesData.pxx.getSize();
|
EXTMODULE_DMA_STREAM->NDTR = extmodulePulsesData.pxx.getSize();
|
||||||
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 (moduleSettings[EXTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX1_SERIAL) {
|
||||||
|
#warning "Take it from 2.2"
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
#if defined(PXX2)
|
#if defined(PXX2)
|
||||||
else if (moduleSettings[EXTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX2) {
|
else if (moduleSettings[EXTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX2) {
|
||||||
|
|
|
@ -48,7 +48,7 @@ void disable_ppm(uint8_t module)
|
||||||
void init_pxx2(uint8_t module)
|
void init_pxx2(uint8_t module)
|
||||||
{
|
{
|
||||||
if (module == INTERNAL_MODULE)
|
if (module == INTERNAL_MODULE)
|
||||||
intmoduleSerialStart(INTMODULE_USART_PXX_BAUDRATE, true);
|
intmoduleSerialStart(INTMODULE_PXX_BAUDRATE, true);
|
||||||
else
|
else
|
||||||
extmodulePxx2Start();
|
extmodulePxx2Start();
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ void disable_pxx2(uint8_t module)
|
||||||
extmoduleStop();
|
extmoduleStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_pxx(uint8_t module)
|
void init_pxx1_pulses(uint8_t module)
|
||||||
{
|
{
|
||||||
if (module == INTERNAL_MODULE)
|
if (module == INTERNAL_MODULE)
|
||||||
intmodulePxxStart();
|
intmodulePxxStart();
|
||||||
|
@ -69,7 +69,7 @@ void init_pxx(uint8_t module)
|
||||||
extmodulePxxStart();
|
extmodulePxxStart();
|
||||||
}
|
}
|
||||||
|
|
||||||
void disable_pxx(uint8_t module)
|
void disable_pxx1_pulses(uint8_t module)
|
||||||
{
|
{
|
||||||
if (module == INTERNAL_MODULE)
|
if (module == INTERNAL_MODULE)
|
||||||
intmoduleStop();
|
intmoduleStop();
|
||||||
|
|
|
@ -177,8 +177,10 @@ void init_ppm(uint8_t module);
|
||||||
void disable_ppm(uint8_t module);
|
void disable_ppm(uint8_t module);
|
||||||
void init_pxx2(uint8_t module);
|
void init_pxx2(uint8_t module);
|
||||||
void disable_pxx2(uint8_t module);
|
void disable_pxx2(uint8_t module);
|
||||||
void init_pxx(uint8_t module);
|
void init_pxx1_pulses(uint8_t module);
|
||||||
void disable_pxx(uint8_t module);
|
void init_pxx1_serial(uint8_t module);
|
||||||
|
void disable_pxx1_pulses(uint8_t module);
|
||||||
|
void disable_pxx1_serial(uint8_t module);
|
||||||
void init_serial(uint8_t module, uint32_t baudrate, uint32_t period);
|
void init_serial(uint8_t module, uint32_t baudrate, uint32_t period);
|
||||||
void disable_serial(uint8_t module);
|
void disable_serial(uint8_t module);
|
||||||
void intmoduleStop();
|
void intmoduleStop();
|
||||||
|
@ -192,7 +194,8 @@ void intmoduleSendNextFrame();
|
||||||
|
|
||||||
void extmoduleStop();
|
void extmoduleStop();
|
||||||
void extmodulePpmStart();
|
void extmodulePpmStart();
|
||||||
void extmodulePxxStart();
|
void extmodulePxxPulsesStart();
|
||||||
|
void extmodulePxxSerialStart();
|
||||||
void extmodulePxx2Start();
|
void extmodulePxx2Start();
|
||||||
void extmoduleSerialStart(uint32_t baudrate, uint32_t period_half_us);
|
void extmoduleSerialStart(uint32_t baudrate, uint32_t period_half_us);
|
||||||
void extmoduleInvertedSerialStart(uint32_t baudrate);
|
void extmoduleInvertedSerialStart(uint32_t baudrate);
|
||||||
|
|
|
@ -207,7 +207,7 @@ void extmodulePxx2Start()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PXX1)
|
#if defined(PXX1)
|
||||||
void extmodulePxxStart()
|
void extmodulePxxPulsesStart()
|
||||||
{
|
{
|
||||||
EXTERNAL_MODULE_ON();
|
EXTERNAL_MODULE_ON();
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ void extmodulePxxStart()
|
||||||
|
|
||||||
EXTMODULE_TIMER->CR1 &= ~TIM_CR1_CEN;
|
EXTMODULE_TIMER->CR1 &= ~TIM_CR1_CEN;
|
||||||
EXTMODULE_TIMER->PSC = EXTMODULE_TIMER_FREQ / 2000000 - 1; // 0.5uS (2Mhz)
|
EXTMODULE_TIMER->PSC = EXTMODULE_TIMER_FREQ / 2000000 - 1; // 0.5uS (2Mhz)
|
||||||
EXTMODULE_TIMER->ARR = EXTMODULE_PXX_PERIOD * 2000; // 0.5uS (2Mhz)
|
EXTMODULE_TIMER->ARR = PXX_PULSES_PERIOD * 2000; // 0.5uS (2Mhz)
|
||||||
EXTMODULE_TIMER->CCER = EXTMODULE_TIMER_OUTPUT_ENABLE | EXTMODULE_TIMER_OUTPUT_POLARITY; // polarity, default low
|
EXTMODULE_TIMER->CCER = EXTMODULE_TIMER_OUTPUT_ENABLE | EXTMODULE_TIMER_OUTPUT_POLARITY; // polarity, default low
|
||||||
EXTMODULE_TIMER->BDTR = TIM_BDTR_MOE; // Enable outputs
|
EXTMODULE_TIMER->BDTR = TIM_BDTR_MOE; // Enable outputs
|
||||||
EXTMODULE_TIMER->CCR1 = 18;
|
EXTMODULE_TIMER->CCR1 = 18;
|
||||||
|
@ -243,6 +243,13 @@ void extmodulePxxStart()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(PXX1) && defined(EXTMODULE_USART)
|
||||||
|
void extmodulePxxSerialStart()
|
||||||
|
{
|
||||||
|
extmoduleInvertedSerialStart(EXTMODULE_PXX_SERIAL_BAUDRATE);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void extmoduleSendNextFrame()
|
void extmoduleSendNextFrame()
|
||||||
{
|
{
|
||||||
switch(moduleSettings[EXTERNAL_MODULE].protocol) {
|
switch(moduleSettings[EXTERNAL_MODULE].protocol) {
|
||||||
|
@ -259,7 +266,7 @@ void extmoduleSendNextFrame()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if defined(PXX1)
|
#if defined(PXX1)
|
||||||
case PROTOCOL_CHANNELS_PXX1:
|
case PROTOCOL_CHANNELS_PXX1_PULSES:
|
||||||
EXTMODULE_TIMER->CCR2 = extmodulePulsesData.pxx.getLast() - 4000; // 2mS in advance
|
EXTMODULE_TIMER->CCR2 = extmodulePulsesData.pxx.getLast() - 4000; // 2mS in advance
|
||||||
EXTMODULE_TIMER_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA
|
EXTMODULE_TIMER_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA
|
||||||
EXTMODULE_TIMER_DMA_STREAM->CR |= EXTMODULE_TIMER_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;
|
EXTMODULE_TIMER_DMA_STREAM->CR |= EXTMODULE_TIMER_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;
|
||||||
|
@ -268,6 +275,10 @@ void extmoduleSendNextFrame()
|
||||||
EXTMODULE_TIMER_DMA_STREAM->NDTR = extmodulePulsesData.pxx.getSize();
|
EXTMODULE_TIMER_DMA_STREAM->NDTR = extmodulePulsesData.pxx.getSize();
|
||||||
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
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROTOCOL_CHANNELS_PXX1_SERIAL:
|
||||||
|
extmoduleSendBuffer(extmodulePulsesData.pxx_uart.getData(), extmodulePulsesData.pxx_uart.getSize());
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PXX2)
|
#if defined(PXX2)
|
||||||
|
|
|
@ -34,10 +34,9 @@ void intmoduleStop()
|
||||||
|
|
||||||
void intmoduleSendNextFrame()
|
void intmoduleSendNextFrame()
|
||||||
{
|
{
|
||||||
if (0) {
|
switch (moduleSettings[INTERNAL_MODULE].protocol) {
|
||||||
}
|
|
||||||
#if defined(PXX1)
|
#if defined(PXX1)
|
||||||
else if (moduleSettings[INTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX1) {
|
case PROTOCOL_CHANNELS_PXX1_PULSES:
|
||||||
INTMODULE_TIMER->CCR2 = intmodulePulsesData.pxx.getLast() - 4000; // 2mS in advance
|
INTMODULE_TIMER->CCR2 = intmodulePulsesData.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;
|
||||||
|
@ -45,10 +44,11 @@ void intmoduleSendNextFrame()
|
||||||
INTMODULE_DMA_STREAM->M0AR = CONVERT_PTR_UINT(intmodulePulsesData.pxx.getData());
|
INTMODULE_DMA_STREAM->M0AR = CONVERT_PTR_UINT(intmodulePulsesData.pxx.getData());
|
||||||
INTMODULE_DMA_STREAM->NDTR = intmodulePulsesData.pxx.getSize();
|
INTMODULE_DMA_STREAM->NDTR = intmodulePulsesData.pxx.getSize();
|
||||||
INTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
|
INTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
|
||||||
}
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(TARANIS_INTERNAL_PPM)
|
#if defined(TARANIS_INTERNAL_PPM)
|
||||||
else if (moduleSettings[INTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PPM) {
|
case PROTOCOL_CHANNELS_PPM:
|
||||||
INTMODULE_TIMER->CCR3 = GET_MODULE_PPM_DELAY(INTERNAL_MODULE) * 2;
|
INTMODULE_TIMER->CCR3 = GET_MODULE_PPM_DELAY(INTERNAL_MODULE) * 2;
|
||||||
INTMODULE_TIMER->CCER = TIM_CCER_CC3E | (GET_MODULE_PPM_POLARITY(INTERNAL_MODULE) ? 0 : TIM_CCER_CC3P);
|
INTMODULE_TIMER->CCER = TIM_CCER_CC3E | (GET_MODULE_PPM_POLARITY(INTERNAL_MODULE) ? 0 : TIM_CCER_CC3P);
|
||||||
INTMODULE_TIMER->CCR2 = *(intmodulePulsesData.ppm.ptr - 1) - 4000; // 2mS in advance
|
INTMODULE_TIMER->CCR2 = *(intmodulePulsesData.ppm.ptr - 1) - 4000; // 2mS in advance
|
||||||
|
@ -58,10 +58,12 @@ void intmoduleSendNextFrame()
|
||||||
INTMODULE_DMA_STREAM->M0AR = CONVERT_PTR_UINT(intmodulePulsesData.ppm.pulses);
|
INTMODULE_DMA_STREAM->M0AR = CONVERT_PTR_UINT(intmodulePulsesData.ppm.pulses);
|
||||||
INTMODULE_DMA_STREAM->NDTR = intmodulePulsesData.ppm.ptr - intmodulePulsesData.ppm.pulses;
|
INTMODULE_DMA_STREAM->NDTR = intmodulePulsesData.ppm.ptr - intmodulePulsesData.ppm.pulses;
|
||||||
INTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
|
INTMODULE_DMA_STREAM->CR |= DMA_SxCR_EN | DMA_SxCR_TCIE; // Enable DMA
|
||||||
}
|
break;
|
||||||
#endif
|
#endif
|
||||||
else {
|
|
||||||
|
default:
|
||||||
INTMODULE_TIMER->DIER |= TIM_DIER_CC2IE;
|
INTMODULE_TIMER->DIER |= TIM_DIER_CC2IE;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,17 +20,24 @@
|
||||||
|
|
||||||
#include "opentx.h"
|
#include "opentx.h"
|
||||||
|
|
||||||
void init_pxx(uint8_t module)
|
|
||||||
{
|
|
||||||
#if defined(PXX1)
|
#if defined(PXX1)
|
||||||
|
void init_pxx1_pulses(uint8_t module)
|
||||||
|
{
|
||||||
if (module == INTERNAL_MODULE)
|
if (module == INTERNAL_MODULE)
|
||||||
intmodulePxxStart();
|
intmodulePxxStart();
|
||||||
else
|
else
|
||||||
extmodulePxxStart();
|
extmodulePxxPulsesStart();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void disable_pxx(uint8_t module)
|
void init_pxx1_serial(uint8_t module)
|
||||||
|
{
|
||||||
|
if (module == INTERNAL_MODULE)
|
||||||
|
intmodulePxxStart();
|
||||||
|
else
|
||||||
|
extmodulePxxSerialStart();
|
||||||
|
}
|
||||||
|
|
||||||
|
void disable_pxx1_pulses(uint8_t module)
|
||||||
{
|
{
|
||||||
if (module == INTERNAL_MODULE)
|
if (module == INTERNAL_MODULE)
|
||||||
intmoduleStop();
|
intmoduleStop();
|
||||||
|
@ -38,10 +45,19 @@ void disable_pxx(uint8_t module)
|
||||||
extmoduleStop();
|
extmoduleStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void disable_pxx1_serial(uint8_t module)
|
||||||
|
{
|
||||||
|
if (module == INTERNAL_MODULE)
|
||||||
|
intmoduleStop();
|
||||||
|
else
|
||||||
|
extmoduleStop();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void init_pxx2(uint8_t module)
|
void init_pxx2(uint8_t module)
|
||||||
{
|
{
|
||||||
if (module == INTERNAL_MODULE)
|
if (module == INTERNAL_MODULE)
|
||||||
intmoduleSerialStart(INTMODULE_USART_PXX_BAUDRATE, true);
|
intmoduleSerialStart(INTMODULE_PXX_BAUDRATE, true);
|
||||||
else
|
else
|
||||||
extmodulePxx2Start();
|
extmodulePxx2Start();
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,8 +78,8 @@ bool isModuleSynchronous(uint8_t module)
|
||||||
uint8_t protocol = moduleSettings[module].protocol;
|
uint8_t protocol = moduleSettings[module].protocol;
|
||||||
if (protocol == PROTOCOL_CHANNELS_PXX2 || protocol == PROTOCOL_CHANNELS_CROSSFIRE || protocol == PROTOCOL_CHANNELS_NONE)
|
if (protocol == PROTOCOL_CHANNELS_PXX2 || protocol == PROTOCOL_CHANNELS_CROSSFIRE || protocol == PROTOCOL_CHANNELS_NONE)
|
||||||
return true;
|
return true;
|
||||||
#if defined(INTMODULE_USART)
|
#if defined(INTMODULE_USART) || defined(EXTMODULE_USART)
|
||||||
if (protocol == PROTOCOL_CHANNELS_PXX1 && module == INTERNAL_MODULE)
|
if (protocol == PROTOCOL_CHANNELS_PXX1_SERIAL)
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -102,8 +102,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS "Vyp\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "Vyp\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 FrSky D\0 FrSky D (kabel)Spektrum\0 "
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 FrSky D\0 FrSky D (kabel)Spektrum\0 "
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS "AUS\0""PPM\0""XJT\0""DSM?""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "AUS\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (Kabel)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (Kabel)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
|
@ -106,8 +106,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS "UIT\0""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "UIT\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Popup\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS )"OFF\0""PPM\0""XJT\0""XJT2""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
#define LEN_JACKMODES "\007"
|
#define LEN_JACKMODES "\007"
|
||||||
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
#define TR_JACKMODES "Ask\0 ""Audio\0 ""Trainer"
|
||||||
|
|
||||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
#define LEN_TARANIS_PROTOCOLS "\005"
|
||||||
#define TR_TARANIS_PROTOCOLS "Av\0 ""PPM\0""XJT\0""DSM2""CRSF""MULT""R9M\0""R9M2""SBUS"
|
#define TR_TARANIS_PROTOCOLS "Av\0 ""PPM\0 ""XJT\0 ""XJT2\0""DSM2\0""CRSF\0""MULT\0""R9M\0 ""R9M2\0""R9LT\0""R9LT2""R9LP2""SBUS\0"
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
#define TR_TELEMETRY_PROTOCOLS "FrSky S.PORT\0 ""FrSky D\0 ""FrSky D (cable)""TBS Crossfire\0 ""Spektrum\0 ""AFHDS2A IBUS\0 ""Multi Telemetry"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue