return pkt_rssi;
}
-float LoRaClass::packetSnr()
-{
+uint8_t LoRaClass::packetSnrRaw() {
+ return readRegister(REG_PKT_SNR_VALUE);
+}
+
+float LoRaClass::packetSnr() {
return ((int8_t)readRegister(REG_PKT_SNR_VALUE)) * 0.25;
}
// Copyright (c) Sandeep Mistry. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed under the MIT license.
+
+// Modifications and additions copyright 2018 by Mark Qvist
+// Obviously still under the MIT license.
#ifndef LORA_H
#define LORA_H
int parsePacket(int size = 0);
int packetRssi();
uint8_t packetRssiRaw();
+ uint8_t packetSnrRaw();
float packetSnr();
long packetFrequencyError();
read_len = 0;
seq = sequence;
last_rssi = LoRa.packetRssi();
- last_snr = LoRa.packetSnr();
+ last_snr_raw = LoRa.packetSnrRaw();
getPacketData(packet_size);
} else if (isSplitPacket(header) && seq == sequence) {
// This is the second part of a split
// packet, so we add it to the buffer
// and set the ready flag.
last_rssi = (last_rssi+LoRa.packetRssi())/2;
- last_snr = (last_snr+LoRa.packetSnr())/2;
+ last_snr_raw = (last_snr_raw+LoRa.packetSnrRaw())/2;
getPacketData(packet_size);
seq = SEQ_UNSET;
ready = true;
read_len = 0;
seq = sequence;
last_rssi = LoRa.packetRssi();
- last_snr = LoRa.packetSnr();
+ last_snr_raw = LoRa.packetSnrRaw();
getPacketData(packet_size);
} else if (!isSplitPacket(header)) {
// This is not a split packet, so we
}
last_rssi = LoRa.packetRssi();
- last_snr = LoRa.packetSnr();
+ last_snr_raw = LoRa.packetSnrRaw();
getPacketData(packet_size);
ready = true;
}
// output directly over to the host
read_len = 0;
last_rssi = LoRa.packetRssi();
+ last_snr_raw = LoRa.packetSnrRaw();
getPacketData(packet_size);
// We first signal the RSSI of the
}
void kiss_indicate_stat_snr() {
- uint8_t packet_snr_val = (uint8_t)(last_snr+snr_offset);
Serial.write(FEND);
Serial.write(CMD_STAT_SNR);
- escapedSerialWrite(packet_snr_val);
+ escapedSerialWrite(last_snr_raw);
Serial.write(FEND);
}