|
|
@ -11,6 +11,7 @@ protected: |
|
|
int16_t _noise_floor, _threshold; |
|
|
int16_t _noise_floor, _threshold; |
|
|
uint16_t _num_floor_samples; |
|
|
uint16_t _num_floor_samples; |
|
|
int32_t _floor_sample_sum; |
|
|
int32_t _floor_sample_sum; |
|
|
|
|
|
uint8_t _preamble_sf; |
|
|
|
|
|
|
|
|
void idle(); |
|
|
void idle(); |
|
|
void startRecv(); |
|
|
void startRecv(); |
|
|
@ -19,7 +20,7 @@ protected: |
|
|
virtual void doResetAGC(); |
|
|
virtual void doResetAGC(); |
|
|
|
|
|
|
|
|
public: |
|
|
public: |
|
|
RadioLibWrapper(PhysicalLayer& radio, mesh::MainBoard& board) : _radio(&radio), _board(&board) { n_recv = n_sent = 0; } |
|
|
RadioLibWrapper(PhysicalLayer& radio, mesh::MainBoard& board) : _radio(&radio), _board(&board), _preamble_sf(0) { n_recv = n_sent = 0; } |
|
|
|
|
|
|
|
|
void begin() override; |
|
|
void begin() override; |
|
|
virtual void powerOff() { _radio->sleep(); } |
|
|
virtual void powerOff() { _radio->sleep(); } |
|
|
@ -38,6 +39,9 @@ public: |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
virtual float getCurrentRSSI() =0; |
|
|
virtual float getCurrentRSSI() =0; |
|
|
|
|
|
virtual uint8_t getSpreadingFactor() const { return LORA_SF; } |
|
|
|
|
|
static uint16_t preambleLengthForSF(uint8_t sf) { return sf <= 8 ? 32 : 16; } |
|
|
|
|
|
void updatePreamble(uint8_t sf) { _preamble_sf = sf; _radio->setPreambleLength(preambleLengthForSF(sf)); } |
|
|
|
|
|
|
|
|
int getNoiseFloor() const override { return _noise_floor; } |
|
|
int getNoiseFloor() const override { return _noise_floor; } |
|
|
void triggerNoiseFloorCalibrate(int threshold) override; |
|
|
void triggerNoiseFloorCalibrate(int threshold) override; |
|
|
|