[SX127x] Added getIRQFlags and getModemStatus methods (#145)
This commit is contained in:
parent
3a15335b59
commit
f068a15029
3 changed files with 43 additions and 0 deletions
|
@ -124,6 +124,8 @@ disableSyncWordFiltering KEYWORD2
|
|||
setPromiscuous KEYWORD2
|
||||
setRSSIConfig KEYWORD2
|
||||
setEncoding KEYWORD2
|
||||
getIRQFlags KEYWORD2
|
||||
getModemStatus KEYWORD2
|
||||
|
||||
# RF69-specific
|
||||
setAESKey KEYWORD2
|
||||
|
|
|
@ -909,6 +909,31 @@ int16_t SX127x::setEncoding(uint8_t encoding) {
|
|||
}
|
||||
}
|
||||
|
||||
uint16_t SX127x::getIRQFlags() {
|
||||
// check active modem
|
||||
if(getActiveModem() == SX127X_LORA) {
|
||||
// LoRa, just 8-bit value
|
||||
return((uint16_t)_mod->SPIreadRegister(SX127X_REG_IRQ_FLAGS));
|
||||
|
||||
} else {
|
||||
// FSK, the IRQ flags are 16 bits in total
|
||||
uint16_t flags = ((uint16_t)_mod->SPIreadRegister(SX127X_REG_IRQ_FLAGS_2)) << 8;
|
||||
flags |= (uint16_t)_mod->SPIreadRegister(SX127X_REG_IRQ_FLAGS_1);
|
||||
return(flags);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
uint8_t SX127x::getModemStatus() {
|
||||
// check active modem
|
||||
if(getActiveModem() != SX127X_LORA) {
|
||||
return(0x00);
|
||||
}
|
||||
|
||||
// read the register
|
||||
return(_mod->SPIreadRegister(SX127X_REG_MODEM_STAT));
|
||||
}
|
||||
|
||||
int16_t SX127x::config() {
|
||||
// turn off frequency hopping
|
||||
int16_t state = _mod->SPIsetRegValue(SX127X_REG_HOP_PERIOD, SX127X_HOP_PERIOD_OFF);
|
||||
|
|
|
@ -897,6 +897,22 @@ class SX127x: public PhysicalLayer {
|
|||
*/
|
||||
int16_t setEncoding(uint8_t encoding);
|
||||
|
||||
/*!
|
||||
\brief Reads currently active IRQ flags, can be used to check which event caused an interrupt.
|
||||
In LoRa mode, this is the content of SX127X_REG_IRQ_FLAGS register.
|
||||
In FSK mode, this is the contents of SX127X_REG_IRQ_FLAGS_2 (MSB) and SX127X_REG_IRQ_FLAGS_1 (LSB) registers.
|
||||
|
||||
\returns IRQ flags.
|
||||
*/
|
||||
uint16_t getIRQFlags();
|
||||
|
||||
/*!
|
||||
\brief Reads modem status. Only available in LoRa mode.
|
||||
|
||||
\returns Modem status.
|
||||
*/
|
||||
uint8_t getModemStatus();
|
||||
|
||||
#ifdef RADIOLIB_DEBUG
|
||||
void regDump();
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue