Small optimization
This commit is contained in:
@@ -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
19
qsp.cpp
@@ -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
8
qsp.h
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
Reference in New Issue
Block a user