2025-09-11 20:37:29 +08:00
|
|
|
|
# 应用基础配置
|
|
|
|
|
|
app:
|
|
|
|
|
|
name: "pig-farm-controller"
|
|
|
|
|
|
version: "1.0.0"
|
2025-09-12 16:52:00 +08:00
|
|
|
|
# JWT 密钥,用于签发和验证 token。请在生产环境中替换为更复杂的密钥!
|
|
|
|
|
|
jwt_secret: "pig-farm-controller"
|
2025-09-08 14:59:42 +08:00
|
|
|
|
|
2025-09-11 20:37:29 +08:00
|
|
|
|
# HTTP 服务配置
|
|
|
|
|
|
server:
|
2025-09-12 16:58:39 +08:00
|
|
|
|
port: 8086
|
2025-10-30 16:11:59 +08:00
|
|
|
|
mode: "release" # 服务运行模式: "debug", "release", "test"
|
2025-09-09 10:51:36 +08:00
|
|
|
|
|
2025-09-11 20:37:29 +08:00
|
|
|
|
# 日志配置
|
|
|
|
|
|
log:
|
2025-11-18 14:29:10 +08:00
|
|
|
|
level: "debug" # 日志级别: "debug", "info", "warn", "error", "dpanic", "panic", "fatal"
|
2025-09-11 20:37:29 +08:00
|
|
|
|
format: "console" # 日志格式: "console" 或 "json"
|
|
|
|
|
|
enable_file: true # 是否启用文件日志
|
2025-09-12 11:52:18 +08:00
|
|
|
|
file_path: "./app_logs/app.log" # 日志文件路径
|
2025-09-11 20:37:29 +08:00
|
|
|
|
max_size: 10 # 每个日志文件的最大尺寸 (MB)
|
|
|
|
|
|
max_backups: 5 # 保留的旧日志文件的最大数量
|
|
|
|
|
|
max_age: 30 # 保留的旧日志文件的最大天数
|
|
|
|
|
|
compress: false # 是否压缩/归档旧日志文件
|
2025-11-16 21:56:46 +08:00
|
|
|
|
enable_trace: true # 是否启用调用链追踪
|
2025-09-12 16:52:00 +08:00
|
|
|
|
|
|
|
|
|
|
# 数据库配置 (PostgreSQL)
|
|
|
|
|
|
database:
|
2025-09-22 00:41:57 +08:00
|
|
|
|
host: "192.168.5.16"
|
|
|
|
|
|
port: 5431
|
2025-09-12 16:52:00 +08:00
|
|
|
|
username: "pig-farm-controller"
|
|
|
|
|
|
password: "pig-farm-controller"
|
|
|
|
|
|
dbname: "pig-farm-controller"
|
|
|
|
|
|
sslmode: "disable" # 在生产环境中建议使用 "require"
|
2025-09-24 18:09:29 +08:00
|
|
|
|
is_timescaledb: true
|
2025-09-12 16:52:00 +08:00
|
|
|
|
max_open_conns: 25 # 最大开放连接数
|
|
|
|
|
|
max_idle_conns: 10 # 最大空闲连接数
|
|
|
|
|
|
conn_max_lifetime: 600 # 连接最大生命周期(秒)
|
|
|
|
|
|
|
|
|
|
|
|
# WebSocket 配置 (如果使用)
|
|
|
|
|
|
websocket:
|
|
|
|
|
|
timeout: 60 # WebSocket请求超时时间(秒)
|
|
|
|
|
|
heartbeat_interval: 30 # 心跳检测间隔(秒)
|
|
|
|
|
|
|
|
|
|
|
|
# 心跳/定时任务配置
|
|
|
|
|
|
heartbeat:
|
|
|
|
|
|
interval: 600 # 任务调度或心跳检查的默认间隔(秒)
|
2025-09-12 16:58:39 +08:00
|
|
|
|
concurrency: 2 # 执行任务的并发协程数
|
2025-09-15 17:33:25 +08:00
|
|
|
|
|
|
|
|
|
|
# chirp_stack 配置文件
|
|
|
|
|
|
chirp_stack:
|
|
|
|
|
|
api_host: "http://192.168.5.16:8090" # ChirpStack API服务器地址
|
|
|
|
|
|
api_token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjaGlycHN0YWNrIiwiaXNzIjoiY2hpcnBzdGFjayIsInN1YiI6IjU2ZWRhNWQ3LTM4NzgtNDAwMC05MWMzLWYwZDk3M2YwODhjNiIsInR5cCI6ImtleSJ9.NxBxTrhPAnezKMqAYZR_Uq2mGQjJRlmVzg1ZDFCyaHQ" # ChirpStack API密钥, 请求头中需要设置 Grpc-Metadata-Authorization: Bearer <YOUR_API_TOKEN>
|
2025-09-25 09:44:32 +08:00
|
|
|
|
fport: 1
|
2025-09-15 17:33:25 +08:00
|
|
|
|
api_timeout: 10 # ChirpStack API请求超时时间(秒)
|
2025-09-26 22:50:08 +08:00
|
|
|
|
# 等待设备上行响应的超时时间(秒)。
|
|
|
|
|
|
# 对于LoRaWAN这种延迟较高的网络,建议设置为5分钟 (300秒) 或更长。
|
|
|
|
|
|
collection_request_timeout: 300
|
|
|
|
|
|
|
2025-09-17 23:01:15 +08:00
|
|
|
|
|
|
|
|
|
|
# 任务调度器配置
|
|
|
|
|
|
task:
|
|
|
|
|
|
interval: 3
|
2025-10-09 23:02:56 +08:00
|
|
|
|
num_workers: 5
|
|
|
|
|
|
|
|
|
|
|
|
# Lora 配置
|
|
|
|
|
|
lora:
|
2025-10-09 23:43:19 +08:00
|
|
|
|
mode: "lora_mesh" # "lora_wan" or "lora_mesh"
|
2025-10-09 23:02:56 +08:00
|
|
|
|
|
|
|
|
|
|
lora_mesh:
|
|
|
|
|
|
# 主节点串口
|
2025-10-10 18:23:06 +08:00
|
|
|
|
uart_port: "COM7"
|
2025-10-09 23:02:56 +08:00
|
|
|
|
# LoRa模块的通信波特率
|
|
|
|
|
|
baud_rate: 9600
|
2025-10-10 15:58:40 +08:00
|
|
|
|
# 等待LoRa模块AT指令响应的超时时间(ms)
|
|
|
|
|
|
timeout: 50
|
2025-10-09 23:02:56 +08:00
|
|
|
|
# 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")
|
2025-10-10 15:58:40 +08:00
|
|
|
|
# ED: 接收端会接收完整数据包,包含自定义协议头和地址信息。
|
|
|
|
|
|
# e.g. 发送: ED 05 12 34 01 00 01 02 03
|
|
|
|
|
|
# (ED(帧头) + 05(Length, 即 1(总包数)+1(当前包序号)+3(数据块)) + 12 34(目标地址) + 01(总包数) + 00(当前包序号) + 01 02 03(数据块))
|
|
|
|
|
|
# 接收: ED 05 12 34 01 00 01 02 03 56 78(56 78 是发送方地址,会自动拼接到消息末尾)
|
2025-10-09 23:02:56 +08:00
|
|
|
|
lora_mesh_mode: "ED"
|
|
|
|
|
|
# 单包最大用户数据数据长度, 模块限制240, 去掉两位自定义包头, 还剩238
|
2025-10-10 15:58:40 +08:00
|
|
|
|
max_chunk_size: 238
|
|
|
|
|
|
#分片重组超时时间(秒)。如果在一个分片到达后,超过这个时间
|
|
|
|
|
|
# 还没收到完整的包,则认为接收失败。
|
2025-10-26 15:10:38 +08:00
|
|
|
|
reassembly_timeout: 30
|
|
|
|
|
|
|
|
|
|
|
|
# 定时采集配置
|
|
|
|
|
|
collection:
|
2025-11-08 00:13:15 +08:00
|
|
|
|
interval: 1 # 采集间隔 (分钟)
|
|
|
|
|
|
|
|
|
|
|
|
# 告警通知配置
|
|
|
|
|
|
alarm_notification:
|
|
|
|
|
|
notification_intervals: # 告警通知间隔 (分钟)
|
|
|
|
|
|
debug: 1
|
|
|
|
|
|
info: 1
|
|
|
|
|
|
warn: 1
|
|
|
|
|
|
error: 1
|
|
|
|
|
|
dpanic: 1
|
|
|
|
|
|
panic: 1
|
|
|
|
|
|
fatal: 1
|