performance improvements
This commit is contained in:
25
crossbow.ino
25
crossbow.ino
@@ -138,9 +138,9 @@ void setup(void)
|
|||||||
* Use interrupt driven approach only on RX side
|
* Use interrupt driven approach only on RX side
|
||||||
* TX interrupts breaks PPM readout
|
* TX interrupts breaks PPM readout
|
||||||
*/
|
*/
|
||||||
#ifdef DEVICE_MODE_RX
|
// #ifdef DEVICE_MODE_RX
|
||||||
LoRa.onReceive(onReceive);
|
LoRa.onReceive(onReceive);
|
||||||
#endif
|
// #endif
|
||||||
LoRa.receive();
|
LoRa.receive();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -272,12 +272,21 @@ int8_t getFrameToTransmit(QspConfiguration_t *qsp) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
volatile bool readPacket = false;
|
||||||
|
uint8_t myRssi = 0;
|
||||||
|
uint8_t mySnr = 0;
|
||||||
|
|
||||||
void loop(void)
|
void loop(void)
|
||||||
{
|
{
|
||||||
#ifdef DEVICE_MODE_TX
|
#ifdef DEVICE_MODE_TX
|
||||||
if (LoRa.available()) {
|
if (readPacket) {
|
||||||
|
while (LoRa.available()) {
|
||||||
qspDecodeIncomingFrame(&qsp, LoRa.read(), ppm, &rxDeviceState);
|
qspDecodeIncomingFrame(&qsp, LoRa.read(), ppm, &rxDeviceState);
|
||||||
}
|
}
|
||||||
|
myRssi = getRadioRssi();
|
||||||
|
mySnr = getRadioSnr();
|
||||||
|
readPacket = false;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint32_t currentMillis = millis();
|
uint32_t currentMillis = millis();
|
||||||
@@ -402,11 +411,11 @@ void loop(void)
|
|||||||
display.setTextColor(WHITE, BLACK);
|
display.setTextColor(WHITE, BLACK);
|
||||||
display.setCursor(0, 0);
|
display.setCursor(0, 0);
|
||||||
display.print("TX RSSI: ");
|
display.print("TX RSSI: ");
|
||||||
display.print(map(getRadioRssi(), 0, 255, 0, 100));
|
display.print(map(myRssi, 0, 255, 0, 100));
|
||||||
|
|
||||||
display.setCursor(0, 12);
|
display.setCursor(0, 12);
|
||||||
display.print("TX SNR: ");
|
display.print("TX SNR: ");
|
||||||
display.print(getRadioSnr());
|
display.print(mySnr);
|
||||||
|
|
||||||
display.setCursor(0, 24);
|
display.setCursor(0, 24);
|
||||||
display.print("RX RSSI: ");
|
display.print("RX RSSI: ");
|
||||||
@@ -442,6 +451,11 @@ void onReceive(int packetSize)
|
|||||||
if (packetSize == 0)
|
if (packetSize == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#ifdef DEVICE_MODE_TX
|
||||||
|
readPacket = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DEVICE_MODE_RX
|
||||||
while (LoRa.available())
|
while (LoRa.available())
|
||||||
{
|
{
|
||||||
qspDecodeIncomingFrame(&qsp, LoRa.read(), ppm, &rxDeviceState);
|
qspDecodeIncomingFrame(&qsp, LoRa.read(), ppm, &rxDeviceState);
|
||||||
@@ -449,4 +463,5 @@ void onReceive(int packetSize)
|
|||||||
|
|
||||||
rxDeviceState.rssi = getRadioRssi();
|
rxDeviceState.rssi = getRadioRssi();
|
||||||
rxDeviceState.snr = getRadioSnr();
|
rxDeviceState.snr = getRadioSnr();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user