Browse Source

rework LR1121 wrapper

pull/2730/head
radmir 5 days ago
committed by GitHub
parent
commit
754d801c02
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      src/helpers/radiolib/CustomLR1121.h
  2. 49
      src/helpers/radiolib/CustomLR1121Wrapper.h

1
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)); bool detected = ((irq & RADIOLIB_LR11X0_IRQ_SYNC_WORD_HEADER_VALID) || (irq & RADIOLIB_LR11X0_IRQ_PREAMBLE_DETECTED));
return detected; return detected;
} }
uint8_t getSpreadingFactor() const { return spreadingFactor; }
}; };

49
src/helpers/radiolib/CustomLR1121Wrapper.h

@ -6,29 +6,54 @@
class CustomLR1121Wrapper : public RadioLibWrapper { class CustomLR1121Wrapper : public RadioLibWrapper {
public: public:
CustomLR1121Wrapper(CustomLR1121& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { } CustomLR1121Wrapper(CustomLR1121& radio, mesh::MainBoard& board)
void doResetAGC() override { lr11x0ResetAGC((LR11x0 *)_radio, ((CustomLR1121 *)_radio)->getFreqMHz()); } : RadioLibWrapper(radio, board) { }
bool isReceivingPacket() override {
return ((CustomLR1121 *)_radio)->isReceiving(); 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 getCurrentRSSI() override {
float rssi = -110; float rssi = -110;
((CustomLR1121 *)_radio)->getRssiInst(&rssi); ((CustomLR1121*)_radio)->getRssiInst(&rssi);
return rssi; return rssi;
} }
void onSendFinished() override { void onSendFinished() override {
RadioLibWrapper::onSendFinished(); 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 { void setRxBoostedGainMode(bool en) override {
((CustomLR1121 *)_radio)->setRxBoostedGainMode(en); ((CustomLR1121*)_radio)->setRxBoostedGainMode(en);
} }
bool getRxBoostedGainMode() const override { bool getRxBoostedGainMode() const override {
return ((CustomLR1121 *)_radio)->getRxBoostedGainMode(); return ((CustomLR1121*)_radio)->getRxBoostedGainMode();
} }
}; };

Loading…
Cancel
Save