Updated SNR indication method
This commit is contained in:
parent
b30564c5fc
commit
19c4107c4e
4
Config.h
4
Config.h
@ -4,7 +4,7 @@
|
|||||||
#define CONFIG_H
|
#define CONFIG_H
|
||||||
|
|
||||||
#define MAJ_VERS 0x01
|
#define MAJ_VERS 0x01
|
||||||
#define MIN_VERS 0x0C
|
#define MIN_VERS 0x0D
|
||||||
|
|
||||||
#define MCU_328P 0x90
|
#define MCU_328P 0x90
|
||||||
#define MCU_1284P 0x91
|
#define MCU_1284P 0x91
|
||||||
@ -88,7 +88,7 @@
|
|||||||
|
|
||||||
int last_rssi = -292;
|
int last_rssi = -292;
|
||||||
uint8_t last_rssi_raw = 0x00;
|
uint8_t last_rssi_raw = 0x00;
|
||||||
int8_t last_snr = 0;
|
uint8_t last_snr_raw = 0x00;
|
||||||
size_t read_len = 0;
|
size_t read_len = 0;
|
||||||
uint8_t seq = 0xFF;
|
uint8_t seq = 0xFF;
|
||||||
uint8_t pbuf[MTU];
|
uint8_t pbuf[MTU];
|
||||||
|
7
LoRa.cpp
7
LoRa.cpp
@ -235,8 +235,11 @@ int LoRaClass::packetRssi() {
|
|||||||
return pkt_rssi;
|
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;
|
return ((int8_t)readRegister(REG_PKT_SNR_VALUE)) * 0.25;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
6
LoRa.h
6
LoRa.h
@ -1,5 +1,8 @@
|
|||||||
// Copyright (c) Sandeep Mistry. All rights reserved.
|
// 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
|
#ifndef LORA_H
|
||||||
#define LORA_H
|
#define LORA_H
|
||||||
@ -29,6 +32,7 @@ public:
|
|||||||
int parsePacket(int size = 0);
|
int parsePacket(int size = 0);
|
||||||
int packetRssi();
|
int packetRssi();
|
||||||
uint8_t packetRssiRaw();
|
uint8_t packetRssiRaw();
|
||||||
|
uint8_t packetSnrRaw();
|
||||||
float packetSnr();
|
float packetSnr();
|
||||||
long packetFrequencyError();
|
long packetFrequencyError();
|
||||||
|
|
||||||
|
@ -104,14 +104,14 @@ void receiveCallback(int packet_size) {
|
|||||||
read_len = 0;
|
read_len = 0;
|
||||||
seq = sequence;
|
seq = sequence;
|
||||||
last_rssi = LoRa.packetRssi();
|
last_rssi = LoRa.packetRssi();
|
||||||
last_snr = LoRa.packetSnr();
|
last_snr_raw = LoRa.packetSnrRaw();
|
||||||
getPacketData(packet_size);
|
getPacketData(packet_size);
|
||||||
} else if (isSplitPacket(header) && seq == sequence) {
|
} else if (isSplitPacket(header) && seq == sequence) {
|
||||||
// This is the second part of a split
|
// This is the second part of a split
|
||||||
// packet, so we add it to the buffer
|
// packet, so we add it to the buffer
|
||||||
// and set the ready flag.
|
// and set the ready flag.
|
||||||
last_rssi = (last_rssi+LoRa.packetRssi())/2;
|
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);
|
getPacketData(packet_size);
|
||||||
seq = SEQ_UNSET;
|
seq = SEQ_UNSET;
|
||||||
ready = true;
|
ready = true;
|
||||||
@ -123,7 +123,7 @@ void receiveCallback(int packet_size) {
|
|||||||
read_len = 0;
|
read_len = 0;
|
||||||
seq = sequence;
|
seq = sequence;
|
||||||
last_rssi = LoRa.packetRssi();
|
last_rssi = LoRa.packetRssi();
|
||||||
last_snr = LoRa.packetSnr();
|
last_snr_raw = LoRa.packetSnrRaw();
|
||||||
getPacketData(packet_size);
|
getPacketData(packet_size);
|
||||||
} else if (!isSplitPacket(header)) {
|
} else if (!isSplitPacket(header)) {
|
||||||
// This is not a split packet, so we
|
// This is not a split packet, so we
|
||||||
@ -138,7 +138,7 @@ void receiveCallback(int packet_size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
last_rssi = LoRa.packetRssi();
|
last_rssi = LoRa.packetRssi();
|
||||||
last_snr = LoRa.packetSnr();
|
last_snr_raw = LoRa.packetSnrRaw();
|
||||||
getPacketData(packet_size);
|
getPacketData(packet_size);
|
||||||
ready = true;
|
ready = true;
|
||||||
}
|
}
|
||||||
@ -166,6 +166,7 @@ void receiveCallback(int packet_size) {
|
|||||||
// output directly over to the host
|
// output directly over to the host
|
||||||
read_len = 0;
|
read_len = 0;
|
||||||
last_rssi = LoRa.packetRssi();
|
last_rssi = LoRa.packetRssi();
|
||||||
|
last_snr_raw = LoRa.packetSnrRaw();
|
||||||
getPacketData(packet_size);
|
getPacketData(packet_size);
|
||||||
|
|
||||||
// We first signal the RSSI of the
|
// We first signal the RSSI of the
|
||||||
|
@ -138,10 +138,9 @@ void kiss_indicate_stat_rssi() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void kiss_indicate_stat_snr() {
|
void kiss_indicate_stat_snr() {
|
||||||
uint8_t packet_snr_val = (uint8_t)(last_snr+snr_offset);
|
|
||||||
Serial.write(FEND);
|
Serial.write(FEND);
|
||||||
Serial.write(CMD_STAT_SNR);
|
Serial.write(CMD_STAT_SNR);
|
||||||
escapedSerialWrite(packet_snr_val);
|
escapedSerialWrite(last_snr_raw);
|
||||||
Serial.write(FEND);
|
Serial.write(FEND);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user