Initial commit

This commit is contained in:
2026-01-17 09:53:08 +02:00
commit 159633e837
148 changed files with 42795 additions and 0 deletions

View 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);