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

19
qsp.cpp
View File

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

View File

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