Small optimization

This commit is contained in:
Pawel Spychalski (DzikuVx)
2017-10-29 09:56:06 +01:00
parent a2fb5abffa
commit 86c7c3af0a
4 changed files with 22 additions and 12 deletions

View File

@@ -279,7 +279,7 @@ void loop(void)
if (txDeviceState.readPacket) { if (txDeviceState.readPacket) {
int incomingByte = LoRa.read(); int incomingByte = LoRa.read();
if (incomingByte > -1) { if (incomingByte > -1) {
qspDecodeIncomingFrame(&qsp, incomingByte, ppm, &rxDeviceState); qspDecodeIncomingFrame(&qsp, incomingByte, ppm, &rxDeviceState, &txDeviceState);
} else { } else {
txDeviceState.rssi = getRadioRssi(); txDeviceState.rssi = getRadioRssi();
txDeviceState.snr = getRadioSnr(); txDeviceState.snr = getRadioSnr();
@@ -428,7 +428,7 @@ void loop(void)
display.setCursor(54, 48); display.setCursor(54, 48);
display.setTextSize(2); display.setTextSize(2);
display.print(rxDeviceState.roundtrip); display.print(txDeviceState.roundtrip);
display.display(); display.display();
} }
@@ -461,7 +461,7 @@ void onReceive(int packetSize)
while (incomingByte = LoRa.read(), incomingByte > -1) while (incomingByte = LoRa.read(), incomingByte > -1)
{ {
qspDecodeIncomingFrame(&qsp, incomingByte, ppm, &rxDeviceState); qspDecodeIncomingFrame(&qsp, incomingByte, ppm, &rxDeviceState, &txDeviceState);
} }
rxDeviceState.rssi = getRadioRssi(); rxDeviceState.rssi = getRadioRssi();

19
qsp.cpp
View File

@@ -143,8 +143,13 @@ void qspClearPayload(QspConfiguration_t *qsp)
qsp->payloadLength = 0; qsp->payloadLength = 0;
} }
void qspDecodeIncomingFrame(QspConfiguration_t *qsp, uint8_t incomingByte, int ppm[], RxDeviceState_t *rxDeviceState) void qspDecodeIncomingFrame(
{ QspConfiguration_t *qsp,
uint8_t incomingByte,
int ppm[],
RxDeviceState_t *rxDeviceState,
TxDeviceState_t *txDeviceState
) {
static uint8_t frameId; static uint8_t frameId;
static uint8_t payloadLength; static uint8_t payloadLength;
static uint8_t receivedPayload; static uint8_t receivedPayload;
@@ -228,12 +233,12 @@ void qspDecodeIncomingFrame(QspConfiguration_t *qsp, uint8_t incomingByte, int p
break; break;
case QSP_FRAME_PONG: case QSP_FRAME_PONG:
rxDeviceState->roundtrip = qsp->payload[0]; txDeviceState->roundtrip = qsp->payload[0];
rxDeviceState->roundtrip += (uint32_t) qsp->payload[1] << 8; txDeviceState->roundtrip += (uint32_t) qsp->payload[1] << 8;
rxDeviceState->roundtrip += (uint32_t) qsp->payload[2] << 16; txDeviceState->roundtrip += (uint32_t) qsp->payload[2] << 16;
rxDeviceState->roundtrip += (uint32_t) qsp->payload[3] << 24; txDeviceState->roundtrip += (uint32_t) qsp->payload[3] << 24;
rxDeviceState->roundtrip = (micros() - rxDeviceState->roundtrip) / 1000; txDeviceState->roundtrip = (micros() - txDeviceState->roundtrip) / 1000;
break; break;

8
qsp.h
View File

@@ -9,7 +9,13 @@ uint8_t get10bitLowShift(uint8_t channel);
void qspComputeCrc(QspConfiguration_t *qsp, uint8_t dataByte); void qspComputeCrc(QspConfiguration_t *qsp, uint8_t dataByte);
void encodeRxHealthPayload(QspConfiguration_t *qsp, RxDeviceState_t *rxDeviceState); void encodeRxHealthPayload(QspConfiguration_t *qsp, RxDeviceState_t *rxDeviceState);
void encodeRcDataPayload(QspConfiguration_t *qsp, PPMReader *ppmSource, uint8_t noOfChannels); void encodeRcDataPayload(QspConfiguration_t *qsp, PPMReader *ppmSource, uint8_t noOfChannels);
void qspDecodeIncomingFrame(QspConfiguration_t *qsp, uint8_t incomingByte, int ppm[], RxDeviceState_t *rxDeviceState); void qspDecodeIncomingFrame(
QspConfiguration_t *qsp,
uint8_t incomingByte,
int ppm[],
RxDeviceState_t *rxDeviceState,
TxDeviceState_t *txDeviceState
);
void qspClearPayload(QspConfiguration_t *qsp); void qspClearPayload(QspConfiguration_t *qsp);
void qspEncodeFrame(QspConfiguration_t *qsp); void qspEncodeFrame(QspConfiguration_t *qsp);

View File

@@ -98,6 +98,5 @@ struct RxDeviceState_t {
uint8_t rxVoltage = 0; uint8_t rxVoltage = 0;
uint8_t a1Voltage = 0; uint8_t a1Voltage = 0;
uint8_t a2Voltage = 0; uint8_t a2Voltage = 0;
uint32_t roundtrip = 0;
uint8_t flags = 0; uint8_t flags = 0;
}; };