Processing improvements

This commit is contained in:
Pawel Spychalski (DzikuVx)
2017-12-14 11:55:42 +01:00
parent 37e55a0f47
commit 65e6521121

View File

@@ -1,8 +1,8 @@
// #define DEVICE_MODE_TX #define DEVICE_MODE_TX
#define DEVICE_MODE_RX // #define DEVICE_MODE_RX
#define FEATURE_TX_OLED #define FEATURE_TX_OLED
#define FORCE_TX_WITHOUT_INPUT // #define FORCE_TX_WITHOUT_INPUT
// #define DEBUG_SERIAL // #define DEBUG_SERIAL
// #define DEBUG_PING_PONG // #define DEBUG_PING_PONG
@@ -264,9 +264,15 @@ void loop(void)
if (radioState.bytesToRead != NO_DATA_TO_READ) { if (radioState.bytesToRead != NO_DATA_TO_READ) {
for (uint8_t i = 0; i < radioState.bytesToRead; i++) { for (int i = 0; i < radioState.bytesToRead; i++) {
qspDecodeIncomingFrame(&qsp, radioState.data[i], &rxDeviceState, &txDeviceState, &radioState); qspDecodeIncomingFrame(&qsp, LoRa.fastRead(), &rxDeviceState, &txDeviceState, &radioState);
} }
radioState.rssi = getRadioRssi();
radioState.snr = getRadioSnr();
//After reading, flush radio buffer, we have no need for whatever might be over there
LoRa.sleep();
LoRa.receive();
radioState.bytesToRead = NO_DATA_TO_READ; radioState.bytesToRead = NO_DATA_TO_READ;
} }
@@ -483,21 +489,21 @@ void onReceive(int packetSize)
if (packetSize == 0) if (packetSize == 0)
return; return;
/*
* We can start reading only when radio is not reading.
* If not reading, then we might start
*/
if (radioState.bytesToRead == NO_DATA_TO_READ) {
if (packetSize >= MIN_PACKET_SIZE && packetSize <= MAX_PACKET_SIZE) { if (packetSize >= MIN_PACKET_SIZE && packetSize <= MAX_PACKET_SIZE) {
//We have a packet candidate that might contain a valid QSP packet //We have a packet candidate that might contain a valid QSP packet
radioState.bytesToRead = packetSize; radioState.bytesToRead = packetSize;
for (int i = 0; i < packetSize; i++) { } else {
radioState.data[i] = LoRa.fastRead();
}
radioState.rssi = getRadioRssi();
radioState.snr = getRadioSnr();
}
/* /*
If data has been read from radio, flush whetever else there might be left That packet was not very interesting, just flush it, we have no use
Including packets that are not valid by putting rafio to sleep and then to
recive mode again
*/ */
LoRa.sleep(); LoRa.sleep();
LoRa.receive(); LoRa.receive();
}
}
} }