Added method for reading current AFC value

This commit is contained in:
Libor Tomsik 2021-04-15 12:50:49 +02:00
parent cbe145b9f7
commit 37a0c56bfe
No known key found for this signature in database
GPG key ID: 29CB8B18FAB6FBDB
2 changed files with 23 additions and 0 deletions

View file

@ -669,6 +669,22 @@ float SX127x::getFrequencyError(bool autoCorrect) {
return(ERR_UNKNOWN);
}
float SX127x::getAFCError()
{
// check active modem
int16_t modem = getActiveModem();
if(modem != SX127X_FSK_OOK) {
return 0;
}
// get raw frequency error
int16_t raw = (uint16_t)_mod->SPIgetRegValue(SX127X_REG_AFC_MSB) << 8;
raw |= _mod->SPIgetRegValue(SX127X_REG_AFC_LSB);
uint32_t base = 1;
return raw * (32000000.0 / (float)(base << 19));
}
float SX127x::getSNR() {
// check active modem
if(getActiveModem() != SX127X_LORA) {

View file

@ -773,6 +773,13 @@ class SX127x: public PhysicalLayer {
*/
float getFrequencyError(bool autoCorrect = false);
/*!
\brief Gets current AFC error.
\returns Frequency offset from RF in Hz if AFC is enabled and triggered, zero otherwise.
*/
float getAFCError();
/*!
\brief Gets signal-to-noise ratio of the latest received packet.