#!/usr/bin/env python # -*- coding: utf-8 -*- """ 项目全局配置文件 集中管理所有硬件引脚、通信参数和软件配置, 便于统一修改和适配不同的硬件版本。 """ # --- LoRa 模块配置 --- # 假设LoRa模块使用独立的UART进行通信 LORA_CONFIG = { # LoRa模块连接的UART总线ID (0, 1, or 2 on ESP32) 'uart_id': 2, # LoRa模块的通信波特率 'baudrate': 9600, # LoRa模块连接的GPIO引脚 'pins': { 'tx': 17, # UART TX 'rx': 16, # UART RX } } # --- 总线配置 --- # 使用字典来定义项目中的所有通信总线 # key是总线ID (bus_id),value是该总线的详细配置字典。 # 这种结构使得 command_processor 可以通过 bus_id 动态获取其配置。 BUS_CONFIG = { # --- 总线 1 --- 1: { # 总线协议类型,用于程序动态选择不同的处理逻辑 'protocol': 'RS485', # 该总线使用的硬件UART ID 'uart_id': 1, # 该总线的通信波特率 'baudrate': 9600, # 该总线使用的GPIO引脚 'pins': { 'tx': 4, # RS485 TX 'rx': 5, # RS485 RX 'rts': 2, # RS485 DE/RE 方向控制引脚 } }, # 如果未来有第二条总线,或不同协议的总线,可以直接在这里添加 2: { 'protocol': 'RS485', 'uart_id': 0, 'baudrate': 19200, # 这条总线可以有不同的波特率 'pins': { 'tx': 25, 'rx': 26, 'rts': 27, } }, } # --- 全局超时设置 (毫秒) --- DEFAULT_TIMEOUTS = { 'rs485_response': 500, # 等待RS485设备响应的默认超时时间 'lora_at_command': 300, # 等待LoRa模块AT指令响应的超时时间 } # --- 系统参数配置 --- SYSTEM_PARAMS = { # 任务队列的最大长度。用于主线程和工作线程之间的缓冲。 # 如果LoRa指令瞬间并发量大,可以适当调高此值。 # 如果内存紧张,可以适当调低。 'task_queue_max_size': 10, # 全局调试日志开关 # True: 所有 logger.log() 的信息都会被打印到串口。 # False: logger.log() 将不执行任何操作,用于发布产品。 'debug_enabled': True, }