CustomSX1268Wrapper.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include "CustomSX1268.h"
  3. #include "RadioLibWrappers.h"
  4. #include "SX126xReset.h"
  5. #ifndef USE_SX1268
  6. #define USE_SX1268
  7. #endif
  8. class CustomSX1268Wrapper : public RadioLibWrapper {
  9. public:
  10. CustomSX1268Wrapper(CustomSX1268& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { }
  11. void setParams(float freq, float bw, uint8_t sf, uint8_t cr) override {
  12. ((CustomSX1268 *)_radio)->setFrequency(freq);
  13. ((CustomSX1268 *)_radio)->setSpreadingFactor(sf);
  14. ((CustomSX1268 *)_radio)->setBandwidth(bw);
  15. ((CustomSX1268 *)_radio)->setCodingRate(cr);
  16. updatePreamble(sf);
  17. }
  18. bool isReceivingPacket() override {
  19. return ((CustomSX1268 *)_radio)->isReceiving();
  20. }
  21. float getCurrentRSSI() override {
  22. return ((CustomSX1268 *)_radio)->getRSSI(false);
  23. }
  24. float getLastRSSI() const override { return ((CustomSX1268 *)_radio)->getRSSI(); }
  25. float getLastSNR() const override { return ((CustomSX1268 *)_radio)->getSNR(); }
  26. float packetScore(float snr, int packet_len) override {
  27. int sf = ((CustomSX1268 *)_radio)->spreadingFactor;
  28. return packetScoreInt(snr, sf, packet_len);
  29. }
  30. uint8_t getSpreadingFactor() const override { return ((CustomSX1268 *)_radio)->spreadingFactor; }
  31. void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); }
  32. void setRxBoostedGainMode(bool en) override {
  33. ((CustomSX1268 *)_radio)->setRxBoostedGainMode(en);
  34. }
  35. bool getRxBoostedGainMode() const override {
  36. return ((CustomSX1268 *)_radio)->getRxBoostedGainMode();
  37. }
  38. };