|
|
@ -100,6 +100,8 @@ public: |
|
|
|
_lora_preamble_time_ms(0), _lora_header_time_ms(0), _lora_symbol_rate(0.0), _lora_us_per_byte(0.0), _bitrate(0), |
|
|
|
_lora_preamble_time_ms(0), _lora_header_time_ms(0), _lora_symbol_rate(0.0), _lora_us_per_byte(0.0), _bitrate(0), |
|
|
|
_packet{0}, _onReceive(NULL), _txp(0), _ldro(false), _limit_rate(false), _interference_detected(false), _avoid_interference(true), _difs_ms(CSMA_SIFS_MS + 2 * _csma_slot_ms), _difs_wait_start(0), _cw_wait_start(0), _cw_wait_target(0), _cw_wait_passed(0), _csma_cw(-1), _cw_band(1), _cw_min(0), _cw_max(CSMA_CW_PER_BAND_WINDOWS), _noise_floor_sampled(false), _noise_floor_sample(0), _noise_floor_buffer({0}), _noise_floor(-292), _led_id_filter(0), _preamble_detected_at(0) {}; |
|
|
|
_packet{0}, _onReceive(NULL), _txp(0), _ldro(false), _limit_rate(false), _interference_detected(false), _avoid_interference(true), _difs_ms(CSMA_SIFS_MS + 2 * _csma_slot_ms), _difs_wait_start(0), _cw_wait_start(0), _cw_wait_target(0), _cw_wait_passed(0), _csma_cw(-1), _cw_band(1), _cw_min(0), _cw_max(CSMA_CW_PER_BAND_WINDOWS), _noise_floor_sampled(false), _noise_floor_sample(0), _noise_floor_buffer({0}), _noise_floor(-292), _led_id_filter(0), _preamble_detected_at(0) {}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual void reset() = 0; |
|
|
|
|
|
|
|
|
|
|
|
virtual int begin() = 0; |
|
|
|
virtual int begin() = 0; |
|
|
|
virtual void end() = 0; |
|
|
|
virtual void end() = 0; |
|
|
|
|
|
|
|
|
|
|
@ -155,7 +157,6 @@ public: |
|
|
|
void updateBitrate() { |
|
|
|
void updateBitrate() { |
|
|
|
if (!_radio_online) { _bitrate = 0; } |
|
|
|
if (!_radio_online) { _bitrate = 0; } |
|
|
|
else { |
|
|
|
else { |
|
|
|
|
|
|
|
|
|
|
|
_lora_symbol_rate = (float)getSignalBandwidth()/(float)(pow(2, _sf)); |
|
|
|
_lora_symbol_rate = (float)getSignalBandwidth()/(float)(pow(2, _sf)); |
|
|
|
_lora_symbol_time_ms = (1.0/_lora_symbol_rate)*1000.0; |
|
|
|
_lora_symbol_time_ms = (1.0/_lora_symbol_rate)*1000.0; |
|
|
|
_bitrate = (uint32_t)(_sf * ( (4.0/(float)getCodingRate4()) / ((float)(pow(2, _sf))/((float)getSignalBandwidth()/1000.0)) ) * 1000.0); |
|
|
|
_bitrate = (uint32_t)(_sf * ( (4.0/(float)getCodingRate4()) / ((float)(pow(2, _sf))/((float)getSignalBandwidth()/1000.0)) ) * 1000.0); |
|
|
@ -461,6 +462,8 @@ public: |
|
|
|
sx126x(uint8_t index, SPIClass* spi, bool tcxo, bool dio2_as_rf_switch, int ss, int sclk, int mosi, int miso, int reset, int |
|
|
|
sx126x(uint8_t index, SPIClass* spi, bool tcxo, bool dio2_as_rf_switch, int ss, int sclk, int mosi, int miso, int reset, int |
|
|
|
dio0, int busy, int rxen); |
|
|
|
dio0, int busy, int rxen); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void reset(); |
|
|
|
|
|
|
|
|
|
|
|
int begin(); |
|
|
|
int begin(); |
|
|
|
void end(); |
|
|
|
void end(); |
|
|
|
|
|
|
|
|
|
|
@ -541,7 +544,6 @@ private: |
|
|
|
void handleLowDataRate(); |
|
|
|
void handleLowDataRate(); |
|
|
|
void optimizeModemSensitivity(); |
|
|
|
void optimizeModemSensitivity(); |
|
|
|
|
|
|
|
|
|
|
|
void reset(void); |
|
|
|
|
|
|
|
void calibrate(void); |
|
|
|
void calibrate(void); |
|
|
|
void calibrate_image(uint32_t frequency); |
|
|
|
void calibrate_image(uint32_t frequency); |
|
|
|
bool getPacketValidity(); |
|
|
|
bool getPacketValidity(); |
|
|
@ -575,6 +577,8 @@ class sx127x : public RadioInterface { |
|
|
|
public: |
|
|
|
public: |
|
|
|
sx127x(uint8_t index, SPIClass* spi, int ss, int sclk, int mosi, int miso, int reset, int dio0, int busy); |
|
|
|
sx127x(uint8_t index, SPIClass* spi, int ss, int sclk, int mosi, int miso, int reset, int dio0, int busy); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void reset(); |
|
|
|
|
|
|
|
|
|
|
|
int begin(); |
|
|
|
int begin(); |
|
|
|
void end(); |
|
|
|
void end(); |
|
|
|
|
|
|
|
|
|
|
@ -667,6 +671,8 @@ class sx128x : public RadioInterface { |
|
|
|
public: |
|
|
|
public: |
|
|
|
sx128x(uint8_t index, SPIClass* spi, bool tcxo, int ss, int sclk, int mosi, int miso, int reset, int dio0, int busy, int rxen, int txen); |
|
|
|
sx128x(uint8_t index, SPIClass* spi, bool tcxo, int ss, int sclk, int mosi, int miso, int reset, int dio0, int busy, int rxen, int txen); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void reset(); |
|
|
|
|
|
|
|
|
|
|
|
int begin(); |
|
|
|
int begin(); |
|
|
|
void end(); |
|
|
|
void end(); |
|
|
|
|
|
|
|
|
|
|
|