1
0
mirror of https://github.com/sandeepmistry/arduino-LoRa.git synced 2025-04-19 13:02:14 +03:00

Add packetSnr and random API's

This commit is contained in:
Sandeep Mistry 2016-10-16 19:02:32 -04:00
parent 0d648f4031
commit 9b19623a1c
3 changed files with 18 additions and 0 deletions

View File

@ -20,6 +20,7 @@ endPacket KEYWORD2
parsePacket KEYWORD2
packetRssi KEYWORD2
packetSnr KEYWORD2
write KEYWORD2
@ -33,6 +34,8 @@ receive KEYWORD2
idle KEYWORD2
sleep KEYWORD2
random KEYWORD2
setFrequency KEYWORD2
setTxPower KEYWORD2
setSpreadingFactor KEYWORD2

View File

@ -15,11 +15,13 @@
#define REG_IRQ_FLAGS 0x12
#define REG_RX_NB_BYTES 0x13
#define REG_PKT_RSSI_VALUE 0x1a
#define REG_PKT_SNR_VALUE 0x1b
#define REG_MODEM_CONFIG_1 0x1d
#define REG_MODEM_CONFIG_2 0x1e
#define REG_PREAMBLE_MSB 0x20
#define REG_PREAMBLE_LSB 0x21
#define REG_PAYLOAD_LENGTH 0x22
#define REG_RSSI_WIDEBAND 0x2c
#define REG_DETECTION_OPTIMIZE 0x31
#define REG_DETECTION_THRESHOLD 0x37
#define REG_SYNC_WORD 0x39
@ -172,6 +174,11 @@ int LoRaClass::packetRssi()
return (readRegister(REG_PKT_RSSI_VALUE) - (_frequency < 868E6 ? 164 : 157));
}
float LoRaClass::packetSnr()
{
return ((int8_t)readRegister(REG_PKT_SNR_VALUE)) * 0.25;
}
size_t LoRaClass::write(uint8_t byte)
{
return write(&byte, sizeof(byte));
@ -263,6 +270,11 @@ void LoRaClass::sleep()
writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_SLEEP);
}
byte LoRaClass::random()
{
return readRegister(REG_RSSI_WIDEBAND);
}
void LoRaClass::setFrequency(long frequency)
{
_frequency = frequency;

View File

@ -20,6 +20,7 @@ public:
int parsePacket();
int packetRssi();
float packetSnr();
// from Print
virtual size_t write(uint8_t byte);
@ -37,6 +38,8 @@ public:
void idle();
void sleep();
byte random();
void setFrequency(long frequency);
void setTxPower(int level);
void setSpreadingFactor(int sf);