From ca544d7605021a155b722e8bdc383a589d841586 Mon Sep 17 00:00:00 2001 From: huang <1724659546@qq.com> Date: Thu, 9 Oct 2025 23:02:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yml | 27 ++++++++++++++++++++++++++- internal/infra/config/config.go | 20 ++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/config.yml b/config.yml index 4531cc0..6b3f841 100644 --- a/config.yml +++ b/config.yml @@ -58,4 +58,29 @@ chirp_stack: # 任务调度器配置 task: interval: 3 - num_workers: 5 \ No newline at end of file + num_workers: 5 + +# Lora 配置 +lora: + mode: "lora_wan" # "lora_wan" or "lora_mesh" + +lora_mesh: + # 主节点串口 + uart_port: "/dev/ttyS1" + # LoRa模块的通信波特率 + baud_rate: 9600 + # 等待LoRa模块AT指令响应的超时时间 + timeout: 5 + # LoRa Mesh 模块发送模式(EC: 透传; ED: 完整数据包) + # e.g. + # EC: 接收端只会接收到消息, 不会接收到请求头 + # e.g. 发送: EC 05 02 01 48 65 6c 6c 6f + # (EC + 05(消息长度) + 0201(地址) + "Hello"(消息本体)) + # 接收: 48 65 6c 6c 6f ("Hello") + # ED: 接收端会接收完整数据包,包含请求头 + # e.g. 发送: ED 05 02 01 48 65 6c 6c 6f + # (ED + 05(消息长度) + 0201(地址) + "Hello"(消息本体)) + # 接收: ED 05 02 01 48 65 6c 6c 6f + lora_mesh_mode: "ED" + # 单包最大用户数据数据长度, 模块限制240, 去掉两位自定义包头, 还剩238 + max_chunk_size: 238 \ No newline at end of file diff --git a/internal/infra/config/config.go b/internal/infra/config/config.go index 80833c4..966f402 100644 --- a/internal/infra/config/config.go +++ b/internal/infra/config/config.go @@ -35,6 +35,12 @@ type Config struct { // TaskConfig 任务调度配置 Task TaskConfig `yaml:"task"` + + // Lora Lora配置 + Lora LoraConfig `yaml:"lora"` + + // LoraMesh LoraMesh配置 + LoraMesh LoraMeshConfig `yaml:"lora_mesh"` } // AppConfig 代表应用基础配置 @@ -130,6 +136,20 @@ type TaskConfig struct { NumWorkers int `yaml:"num_workers"` } +// LoraConfig 代表Lora配置 +type LoraConfig struct { + Mode string `yaml:"mode"` +} + +// LoraMeshConfig 代表Lora Mesh配置 +type LoraMeshConfig struct { + UARTPort string `yaml:"uart_port"` + BaudRate int `yaml:"baud_rate"` + Timeout int `yaml:"timeout"` + LoraMeshMode string `yaml:"lora_mesh_mode"` + MaxChunkSize int `yaml:"max_chunk_size"` +} + // NewConfig 创建并返回一个新的配置实例 func NewConfig() *Config { // 默认值可以在这里设置,但我们优先使用配置文件中的值