MeshCore/src/helpers/CustomSX1262Wrapper.h

31 lines
977 B
C
Raw Normal View History

2025-01-13 14:07:48 +11:00
#pragma once
#include "CustomSX1262.h"
#include "RadioLibWrappers.h"
2025-02-04 12:35:53 +11:00
#include <math.h>
2025-01-13 14:07:48 +11:00
class CustomSX1262Wrapper : public RadioLibWrapper {
public:
CustomSX1262Wrapper(CustomSX1262& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { }
bool isReceiving() override {
if (((CustomSX1262 *)_radio)->isReceiving()) return true;
idle(); // put sx126x into standby
// do some basic CAD (blocks for ~12780 micros (on SF 10)!)
2025-01-22 21:48:18 +11:00
bool activity = (((CustomSX1262 *)_radio)->scanChannel() == RADIOLIB_LORA_DETECTED);
if (activity) {
startRecv();
} else {
idle();
}
2025-01-22 21:48:18 +11:00
return activity;
}
2025-01-13 14:07:48 +11:00
float getLastRSSI() const override { return ((CustomSX1262 *)_radio)->getRSSI(); }
float getLastSNR() const override { return ((CustomSX1262 *)_radio)->getSNR(); }
2025-02-04 12:35:53 +11:00
float packetScore(float snr, int packet_len) override {
int sf = ((CustomSX1262 *)_radio)->spreadingFactor;
2025-02-04 15:00:28 +11:00
return packetScoreInt(snr, sf, packet_len);
2025-02-04 12:35:53 +11:00
}
2025-01-13 14:07:48 +11:00
};