add datarate calculation, could probably be useful. right?
This commit is contained in:
parent
d987072745
commit
a062ed4dcb
3 changed files with 14 additions and 0 deletions
|
@ -81,6 +81,9 @@ Sets LoRa Spread Factor.
|
||||||
|
|
||||||
Accepts `6`-`12`.
|
Accepts `6`-`12`.
|
||||||
|
|
||||||
|
### `double lora32_calc_datarate(lora32_cfg_t *lora);`
|
||||||
|
Returns data rate in Bits Per Second (bps) for given `lora32_cfg_t` configuration.
|
||||||
|
|
||||||
### `void lora32_dump_regs(lora32_cfg_t *lora)`
|
### `void lora32_dump_regs(lora32_cfg_t *lora)`
|
||||||
Dumps all registers from SX1276.
|
Dumps all registers from SX1276.
|
||||||
|
|
||||||
|
|
|
@ -126,6 +126,7 @@ lora32_cfg_t lora32_create();
|
||||||
uint8_t lora32_init(lora32_cfg_t *config);
|
uint8_t lora32_init(lora32_cfg_t *config);
|
||||||
uint8_t lora32_data_available(lora32_cfg_t *lora);
|
uint8_t lora32_data_available(lora32_cfg_t *lora);
|
||||||
|
|
||||||
|
double lora32_calc_datarate(lora32_cfg_t *lora);
|
||||||
void lora32_dump_regs(lora32_cfg_t *lora);
|
void lora32_dump_regs(lora32_cfg_t *lora);
|
||||||
void lora32_enable_continuous_rx(lora32_cfg_t *lora);
|
void lora32_enable_continuous_rx(lora32_cfg_t *lora);
|
||||||
void lora32_enable_cad(lora32_cfg_t *lora);
|
void lora32_enable_cad(lora32_cfg_t *lora);
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
|
@ -97,6 +98,15 @@ void lora32_write_reg(lora32_cfg_t *lora, uint8_t address, uint8_t value) {
|
||||||
ESP_ERROR_CHECK(spi_device_transmit(spi, &t));
|
ESP_ERROR_CHECK(spi_device_transmit(spi, &t));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
double lora32_calc_datarate(lora32_cfg_t *lora) {
|
||||||
|
double cr = (4.0 / (long)lora->codingRate);
|
||||||
|
double sf = pow(2, lora->spreadingFactor);
|
||||||
|
double c2 = sf / bandwidths[lora->bandwidth];
|
||||||
|
ESP_LOGI(TAG, "codingRate: %d cr: %f sf: %f c2: %f", lora->codingRate, cr, sf, c2);
|
||||||
|
|
||||||
|
return lora->spreadingFactor * cr / c2 * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
void lora23_set_explicit_header(lora32_cfg_t *lora) {
|
void lora23_set_explicit_header(lora32_cfg_t *lora) {
|
||||||
lora->implicitHeader = false;
|
lora->implicitHeader = false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue