Initial commit
This commit is contained in:
40
components/lora_radio/include/lora_radio.h
Normal file
40
components/lora_radio/include/lora_radio.h
Normal file
@@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include "esp_err.h"
|
||||
|
||||
#ifndef CONFIG_LORA_CR
|
||||
#define CONFIG_LORA_CR 5
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
int freq_centi_mhz; // частота у сотих MHz (433.35 MHz => 43335)
|
||||
int bw_khz; // смуга пропускання, кГц
|
||||
int sf; // spreading factor (5..12)
|
||||
int cr; // coding rate denominator (4/x)
|
||||
int tx_power_dbm; // вихідна потужність, дБм
|
||||
uint16_t preamble_syms; // довжина прекомбози, символи
|
||||
uint8_t payload_len; // очікувана довжина корисного навантаження (0 = довільна для explicit header)
|
||||
bool crc_on; // включити CRC
|
||||
bool iq_invert; // інверсія IQ (звичайно false)
|
||||
bool header_implicit; // implicit header режим
|
||||
} lora_params_t;
|
||||
|
||||
typedef struct {
|
||||
int rssi_dbm;
|
||||
int snr_db;
|
||||
uint8_t last_status;
|
||||
} lora_metrics_t;
|
||||
|
||||
bool lora_radio_init(bool is_tx_role);
|
||||
esp_err_t lora_radio_apply_params(const lora_params_t *params);
|
||||
esp_err_t lora_radio_set_tx_power_dbm(int dbm);
|
||||
esp_err_t lora_radio_set_frequency_centi_mhz(int freq_centi_mhz);
|
||||
void lora_radio_get_params(lora_params_t *out);
|
||||
void lora_radio_tick_tx(void);
|
||||
void lora_radio_tick_rx(void);
|
||||
void lora_radio_get_metrics(lora_metrics_t *out);
|
||||
void lora_radio_get_last_payload(char *out, size_t out_len);
|
||||
esp_err_t lora_radio_send(const uint8_t *data, size_t len);
|
||||
Reference in New Issue
Block a user