frame payload lengths is now const. depending on frame type

This commit is contained in:
Pawel Spychalski
2018-04-10 09:17:46 +02:00
parent db1cd344cb
commit 4ec1525659
3 changed files with 21 additions and 7 deletions

View File

@@ -13,8 +13,8 @@
* DEVICE_MODE_TX
* DEVICE_MODE_RX
*/
#define DEVICE_MODE_TX
// #define DEVICE_MODE_RX
// #define DEVICE_MODE_TX
#define DEVICE_MODE_RX
// #define FEATURE_TX_OLED
// #define FORCE_TX_WITHOUT_INPUT

View File

@@ -77,7 +77,7 @@ void encodeRxHealthPayload(QspConfiguration_t *qsp, RxDeviceState_t *rxDeviceSta
qsp->payload[5] = flags;
qsp->payloadLength = 6;
qsp->payloadLength = qspFrameLengths[QSP_FRAME_RX_HEALTH];
}
void decodeRxHealthPayload(QspConfiguration_t *qsp, RxDeviceState_t *rxDeviceState) {
@@ -139,7 +139,7 @@ void encodeRcDataPayload(QspConfiguration_t *qsp, volatile int16_t channels[], u
}
}
qsp->payloadLength = 9;
qsp->payloadLength = qspFrameLengths[QSP_FRAME_RC_DATA];
}
void qspClearPayload(QspConfiguration_t *qsp)
@@ -186,7 +186,9 @@ void qspDecodeIncomingFrame(
qspComputeCrc(qsp, incomingByte);
qsp->frameId = (incomingByte >> 4) & 0x0f;
payloadLength = incomingByte & 0x0f;
payloadLength = qspFrameLengths[qsp->frameId];
//4 bytes are now free to use for something else
// payloadLength = incomingByte & 0x0f;
qsp->protocolState = QSP_STATE_FRAME_TYPE_RECEIVED;
}
@@ -233,7 +235,9 @@ void qspEncodeFrame(QspConfiguration_t *qsp, uint8_t buffer[], uint8_t *size) {
buffer[0] = CHANNEL_ID;
//Write frame type and length
uint8_t data = qsp->payloadLength & 0x0f;
// We are no longer sending payload length, so 4 bits are now free for other usages
// uint8_t data = qsp->payloadLength & 0x0f;
uint8_t data = 0;
data |= (qsp->frameToSend << 4) & 0xf0;
qspComputeCrc(qsp, data);
buffer[1] = data;
@@ -254,5 +258,5 @@ void encodePingPayload(QspConfiguration_t *qsp, uint32_t currentMicros) {
qsp->payload[2] = (currentMicros >> 16) & 255;
qsp->payload[3] = (currentMicros >> 24) & 255;
qsp->payloadLength = 4;
qsp->payloadLength = qspFrameLengths[QSP_FRAME_PING];
}

View File

@@ -31,6 +31,16 @@
#define QSP_FRAME_PONG 0x6
#define QSP_FRAME_COUNT 0x7
static const uint8_t qspFrameLengths[QSP_FRAME_COUNT] = {
9, //QSP_FRAME_RC_DATA
6, //QSP_FRAME_RX_HEALTH
0, //QSP_FRAME_GET_RX_CONFIG -> Not used
0, //QSP_FRAME_RX_CONFIG -> Not used
0, //QSP_FRAME_SET_RX_CONFIG -> Not used
4, //QSP_FRAME_PING
4, //QSP_FRAME_PONG
};
#define RX_ADC_PIN_1 A0
#define RX_ADC_PIN_2 A1
#define RX_ADC_PIN_3 A2