[Taranis] frsky_sport kept as before with the fix from André!
This commit is contained in:
@@ -38,6 +38,7 @@
|
||||
|
||||
#define START_STOP 0x7e
|
||||
#define BYTESTUFF 0x7d
|
||||
#define STUFF_MASK 0x20
|
||||
|
||||
// FrSky PRIM IDs (1 byte)
|
||||
#define DATA_FRAME 0x10
|
||||
@@ -123,7 +124,8 @@ uint8_t frskyTxBufferCount = 0;
|
||||
uint8_t link_counter = 0;
|
||||
FrskyData frskyData;
|
||||
|
||||
#if defined(DEBUG)
|
||||
#if defined(DEBUG) && !defined(SIMU)
|
||||
#include "../fifo.h"
|
||||
extern FIL g_telemetryFile;
|
||||
Fifo<512> debugTelemetryFifo;
|
||||
#endif
|
||||
@@ -389,7 +391,7 @@ void processSportPacket(uint8_t *packet)
|
||||
enum FrSkyDataState {
|
||||
STATE_DATA_IDLE,
|
||||
STATE_DATA_IN_FRAME,
|
||||
STATE_DATA_STUFF,
|
||||
STATE_DATA_XOR,
|
||||
};
|
||||
|
||||
void processSerialData(uint8_t data)
|
||||
@@ -402,7 +404,7 @@ void processSerialData(uint8_t data)
|
||||
btPushByte(data);
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG)
|
||||
#if defined(DEBUG) && !defined(SIMU)
|
||||
debugTelemetryFifo.push(data);
|
||||
#endif
|
||||
|
||||
@@ -412,17 +414,14 @@ void processSerialData(uint8_t data)
|
||||
}
|
||||
else {
|
||||
switch (dataState) {
|
||||
case STATE_DATA_STUFF:
|
||||
if (data == 0x5E)
|
||||
frskyRxBuffer[numPktBytes++] = 0x7E;
|
||||
else if (data == 0x5D)
|
||||
frskyRxBuffer[numPktBytes++] = 0x7D;
|
||||
case STATE_DATA_XOR:
|
||||
frskyRxBuffer[numPktBytes++] = data ^ STUFF_MASK;
|
||||
dataState = STATE_DATA_IN_FRAME;
|
||||
break;
|
||||
|
||||
case STATE_DATA_IN_FRAME:
|
||||
if (data == BYTESTUFF)
|
||||
dataState = STATE_DATA_STUFF;
|
||||
dataState = STATE_DATA_XOR; // XOR next byte
|
||||
else
|
||||
frskyRxBuffer[numPktBytes++] = data;
|
||||
break;
|
||||
@@ -508,7 +507,7 @@ void telemetryWakeup()
|
||||
varioWakeup();
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG)
|
||||
#if defined(DEBUG) && !defined(SIMU)
|
||||
static tmr10ms_t lastTime = 0;
|
||||
tmr10ms_t newTime = get_tmr10ms();
|
||||
uint8_t data;
|
||||
|
||||
Reference in New Issue
Block a user