Fast read implementation

This commit is contained in:
Pawel Spychalski
2017-12-06 14:02:08 +01:00
parent 51b7d696af
commit 37e55a0f47
3 changed files with 9 additions and 4 deletions

View File

@@ -487,7 +487,7 @@ void onReceive(int packetSize)
//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++) { for (int i = 0; i < packetSize; i++) {
radioState.data[i] = LoRa.read(); radioState.data[i] = LoRa.fastRead();
} }
radioState.rssi = getRadioRssi(); radioState.rssi = getRadioRssi();
radioState.snr = getRadioSnr(); radioState.snr = getRadioSnr();

View File

@@ -238,15 +238,19 @@ int LoRaClass::available()
return (readRegister(REG_RX_NB_BYTES) - _packetIndex); return (readRegister(REG_RX_NB_BYTES) - _packetIndex);
} }
int LoRaClass::fastRead() {
_packetIndex++;
return readRegister(REG_FIFO);
}
int LoRaClass::read() int LoRaClass::read()
{ {
if (!available()) { if (!available()) {
return -1; return -1;
} }
_packetIndex++; return fastRead();
return readRegister(REG_FIFO);
} }
void LoRaClass::onReceive(void(*callback)(int)) void LoRaClass::onReceive(void(*callback)(int))

1
lora.h
View File

@@ -34,6 +34,7 @@ public:
size_t write(const uint8_t *buffer, size_t size); size_t write(const uint8_t *buffer, size_t size);
int available(); int available();
int read(); int read();
int fastRead();
void onReceive(void(*callback)(int)); void onReceive(void(*callback)(int));