| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #pragma once
- #include <RadioLib.h>
- #include "MeshCore.h"
- class CustomLR1110 : public LR1110 {
- bool _rx_boosted = false;
- public:
- CustomLR1110(Module *mod) : LR1110(mod) { }
- size_t getPacketLength(bool update) override {
- size_t len = LR1110::getPacketLength(update);
- if (len == 0 && getIrqStatus() & RADIOLIB_LR11X0_IRQ_HEADER_ERR) {
- // we've just received a corrupted packet
- // this may have triggered a bug causing subsequent packets to be shifted
- // call standby() to return radio to known-good state
- // recvRaw will call startReceive() to restart rx
- MESH_DEBUG_PRINTLN("LR1110: got header err, calling standby()");
- standby();
- }
- return len;
- }
-
- float getFreqMHz() const { return freqMHz; }
- int16_t setRxBoostedGainMode(bool en) {
- _rx_boosted = en;
- return LR1110::setRxBoostedGainMode(en);
- }
- bool getRxBoostedGainMode() const { return _rx_boosted; }
- bool isReceiving() {
- uint16_t irq = getIrqStatus();
- bool detected = ((irq & RADIOLIB_LR11X0_IRQ_SYNC_WORD_HEADER_VALID) || (irq & RADIOLIB_LR11X0_IRQ_PREAMBLE_DETECTED));
- return detected;
- }
- uint8_t getSpreadingFactor() const { return spreadingFactor; }
- };
|