Files
pig-house-controller/main/config/config.py

97 lines
3.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
项目全局配置文件
集中管理所有硬件引脚、通信参数和软件配置,
便于统一修改和适配不同的硬件版本。
"""
# --- LoRa 模块配置 ---
# 假设LoRa模块使用独立的UART进行通信
LORA_CONFIG = {
# # 平台LoRa地址
# 'master_address': 0x01, // 目前的LoRa模块主从模式下 从节点发送广播包=点对点发送给主节点, 所有从节点都会忽略其他从节点发的广播
# 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
},
# 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': 'EC',
}
# --- 总线配置 ---
# 使用字典来定义项目中的所有通信总线
# 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,
}