[SX127x] Generalize IRQ checks
This commit is contained in:
parent
3a73ed8c1f
commit
08f92cdd29
2 changed files with 24 additions and 7 deletions
|
@ -1302,10 +1302,27 @@ int16_t SX127x::irqRxDoneRxTimeout(uint32_t &irqFlags, uint32_t &irqMask) {
|
||||||
return(RADIOLIB_ERR_NONE);
|
return(RADIOLIB_ERR_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SX127x::isRxTimeout() {
|
bool SX127x::isIrqSet(uint8_t irq) {
|
||||||
uint16_t irq = getIRQFlags();
|
uint16_t flags = getIRQFlags();
|
||||||
bool rxTimedOut = irq & RADIOLIB_SX127X_CLEAR_IRQ_FLAG_RX_TIMEOUT;
|
switch(irq) {
|
||||||
return(rxTimedOut);
|
case RADIOLIB_IRQ_TX_DONE:
|
||||||
|
return(flags & RADIOLIB_SX127X_CLEAR_IRQ_FLAG_TX_DONE);
|
||||||
|
case RADIOLIB_IRQ_RX_DONE:
|
||||||
|
return(flags & RADIOLIB_SX127X_CLEAR_IRQ_FLAG_RX_DONE);
|
||||||
|
case RADIOLIB_IRQ_HEADER_VALID:
|
||||||
|
return(flags & RADIOLIB_SX127X_CLEAR_IRQ_FLAG_VALID_HEADER);
|
||||||
|
case RADIOLIB_IRQ_CRC_ERR:
|
||||||
|
return(flags & RADIOLIB_SX127X_CLEAR_IRQ_FLAG_PAYLOAD_CRC_ERROR);
|
||||||
|
case RADIOLIB_IRQ_CAD_DONE:
|
||||||
|
return(flags & RADIOLIB_SX127X_CLEAR_IRQ_FLAG_CAD_DONE);
|
||||||
|
case RADIOLIB_IRQ_CAD_DETECTED:
|
||||||
|
return(flags & RADIOLIB_SX127X_CLEAR_IRQ_FLAG_CAD_DETECTED);
|
||||||
|
case RADIOLIB_IRQ_TIMEOUT:
|
||||||
|
return(flags & RADIOLIB_SX127X_CLEAR_IRQ_FLAG_RX_TIMEOUT);
|
||||||
|
default:
|
||||||
|
return(false);
|
||||||
|
}
|
||||||
|
return(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t SX127x::setCrcFiltering(bool enable) {
|
int16_t SX127x::setCrcFiltering(bool enable) {
|
||||||
|
|
|
@ -1073,10 +1073,10 @@ class SX127x: public PhysicalLayer {
|
||||||
int16_t irqRxDoneRxTimeout(uint32_t &irqFlags, uint32_t &irqMask) override;
|
int16_t irqRxDoneRxTimeout(uint32_t &irqFlags, uint32_t &irqMask) override;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Check whether the IRQ bit for RxTimeout is set
|
\brief Check whether a specific IRQ bit is set (e.g. RxTimeout, CadDone).
|
||||||
\returns Whether RxTimeout IRQ is set
|
\returns Whether requested IRQ is set.
|
||||||
*/
|
*/
|
||||||
bool isRxTimeout() override;
|
bool isIrqSet(uint8_t irq) override;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Enable CRC filtering and generation.
|
\brief Enable CRC filtering and generation.
|
||||||
|
|
Loading…
Add table
Reference in a new issue