[Taranis] frsky_sport kept as before with the fix from André!

This commit is contained in:
bsongis@gmail.com
2013-07-14 18:32:00 +00:00
parent b941aa0277
commit 50c7a8b5db
+9 -10
View File
@@ -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;