feat: 设备事件日志 + 在线/离线状态监控

- 新增 tb_device_log 表 (device_serial, device_ip, event_type, event_content, create_time)
- dnt_info.state 扩展为 0=离线 1=在线 2=通信不良
- handle_count_off 收到 Count_Off 后写入 login 事件日志
- 新增 device_status_monitor 后台任务,每 5s 检测设备状态:
  - 3次交互间隔均<10s → 在线
  - 1分钟内<4次交互 → 通信不良
  - >1分钟无交互 → 离线
- 状态变化时同步写入 tb_device_log + dnt_info
- 所有设备交互点 (心跳/TSReport/SerialNet/解析成功) 均记录 interaction 时间戳
This commit is contained in:
wangfq
2026-06-10 09:14:24 +08:00
parent 3a74759066
commit ef890fafc6
3 changed files with 213 additions and 1 deletions

View File

@@ -34,6 +34,7 @@ from src.handlers import (
parse_loop,
serialnet_loop,
serialnet_response_loop,
device_status_monitor,
set_udp_sender,
)
@@ -187,6 +188,7 @@ async def main():
asyncio.create_task(parse_loop())
asyncio.create_task(serialnet_loop())
asyncio.create_task(serialnet_response_loop())
asyncio.create_task(device_status_monitor())
loop = asyncio.get_running_loop()