diff --git a/keywords.txt b/keywords.txt index 63e0e9a..94e9df1 100644 --- a/keywords.txt +++ b/keywords.txt @@ -45,6 +45,7 @@ setPreambleLength KEYWORD2 setSyncWord KEYWORD2 enableCrc KEYWORD2 disableCrc KEYWORD2 +packetHasCrc KEYWORD2 enableInvertIQ KEYWORD2 disableInvertIQ KEYWORD2 diff --git a/src/LoRa.cpp b/src/LoRa.cpp index 6980f5a..e2fbabb 100644 --- a/src/LoRa.cpp +++ b/src/LoRa.cpp @@ -20,6 +20,7 @@ #define REG_RX_NB_BYTES 0x13 #define REG_PKT_SNR_VALUE 0x19 #define REG_PKT_RSSI_VALUE 0x1a +#define REG_HOP_CHANNEL 0x1c #define REG_MODEM_CONFIG_1 0x1d #define REG_MODEM_CONFIG_2 0x1e #define REG_PREAMBLE_MSB 0x20 @@ -582,6 +583,11 @@ void LoRaClass::disableCrc() writeRegister(REG_MODEM_CONFIG_2, readRegister(REG_MODEM_CONFIG_2) & 0xfb); } +bool LoRaClass::packetHasCrc() +{ + return (readRegister(REG_HOP_CHANNEL) >> 6) & 1; +} + void LoRaClass::enableInvertIQ() { writeRegister(REG_INVERTIQ, 0x66); diff --git a/src/LoRa.h b/src/LoRa.h index c1671c1..f41d21b 100644 --- a/src/LoRa.h +++ b/src/LoRa.h @@ -73,6 +73,7 @@ class LoRaClass : public Stream { void setSyncWord(int sw); void enableCrc(); void disableCrc(); + bool packetHasCrc(); void enableInvertIQ(); void disableInvertIQ();