From 754d801c021b490fe0d5c7107208af474b015ddb Mon Sep 17 00:00:00 2001 From: radmir <39234121+mrrdmr@users.noreply.github.com> Date: Mon, 8 Jun 2026 14:16:00 +0300 Subject: [PATCH] rework LR1121 wrapper --- src/helpers/radiolib/CustomLR1121.h | 1 + src/helpers/radiolib/CustomLR1121Wrapper.h | 49 ++++++++++++++++------ 2 files changed, 38 insertions(+), 12 deletions(-) diff --git a/src/helpers/radiolib/CustomLR1121.h b/src/helpers/radiolib/CustomLR1121.h index 650ae9eff..57349f407 100644 --- a/src/helpers/radiolib/CustomLR1121.h +++ b/src/helpers/radiolib/CustomLR1121.h @@ -22,4 +22,5 @@ class CustomLR1121 : public LR1121 { bool detected = ((irq & RADIOLIB_LR11X0_IRQ_SYNC_WORD_HEADER_VALID) || (irq & RADIOLIB_LR11X0_IRQ_PREAMBLE_DETECTED)); return detected; } + uint8_t getSpreadingFactor() const { return spreadingFactor; } }; \ No newline at end of file diff --git a/src/helpers/radiolib/CustomLR1121Wrapper.h b/src/helpers/radiolib/CustomLR1121Wrapper.h index b2dec7c04..ec3833248 100644 --- a/src/helpers/radiolib/CustomLR1121Wrapper.h +++ b/src/helpers/radiolib/CustomLR1121Wrapper.h @@ -6,29 +6,54 @@ class CustomLR1121Wrapper : public RadioLibWrapper { public: - CustomLR1121Wrapper(CustomLR1121& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { } - void doResetAGC() override { lr11x0ResetAGC((LR11x0 *)_radio, ((CustomLR1121 *)_radio)->getFreqMHz()); } - bool isReceivingPacket() override { - return ((CustomLR1121 *)_radio)->isReceiving(); + CustomLR1121Wrapper(CustomLR1121& radio, mesh::MainBoard& board) + : RadioLibWrapper(radio, board) { } + + void setParams(float freq, float bw, uint8_t sf, uint8_t cr) override { + auto* r = (CustomLR1121*)_radio; + r->setFrequency(freq); + r->setSpreadingFactor(sf); + r->setBandwidth(bw); + r->setCodingRate(cr); + updatePreamble(sf); + } + + uint8_t getSpreadingFactor() const override { + return ((CustomLR1121*)_radio)->getSpreadingFactor(); + } + + void doResetAGC() override { + lr11x0ResetAGC((LR11x0*)_radio, ((CustomLR1121*)_radio)->getFreqMHz()); + } + + bool isReceivingPacket() override { + return ((CustomLR1121*)_radio)->isReceiving(); } + float getCurrentRSSI() override { float rssi = -110; - ((CustomLR1121 *)_radio)->getRssiInst(&rssi); + ((CustomLR1121*)_radio)->getRssiInst(&rssi); return rssi; } void onSendFinished() override { RadioLibWrapper::onSendFinished(); - _radio->setPreambleLength(16); // overcomes weird issues with small and big pkts + _radio->setPreambleLength(16); + } + + float getLastRSSI() const override { + return ((CustomLR1121*)_radio)->getRSSI(); + } + + float getLastSNR() const override { + return ((CustomLR1121*)_radio)->getSNR(); } - float getLastRSSI() const override { return ((CustomLR1121 *)_radio)->getRSSI(); } - float getLastSNR() const override { return ((CustomLR1121 *)_radio)->getSNR(); } - void setRxBoostedGainMode(bool en) override { - ((CustomLR1121 *)_radio)->setRxBoostedGainMode(en); + ((CustomLR1121*)_radio)->setRxBoostedGainMode(en); } + bool getRxBoostedGainMode() const override { - return ((CustomLR1121 *)_radio)->getRxBoostedGainMode(); + return ((CustomLR1121*)_radio)->getRxBoostedGainMode(); } -}; \ No newline at end of file +};