feat(DBNMQTTool): 脱机事件日志命令支持 — log_stat/log_query/log_clear (MQTT V1.06)
- protocol.py: CMD_LOG_* 常量 + LOG_COMMANDS + data_log_query 边界钳制 (start_seq>=1, count 1~4) + LOG_EVENT_TYPE_DESC 事件类型中文描述 - main.py: 参数配置 Tab 新增脱机日志面板 (统计/拉取/清除 + 显示区) - _on_message 响应分发: log_stat 统计展示, log_query 记录格式化 (unix_ts 真实时间 / boot+ts_ms 未同步), log_clear 二次确认 - devlog 追加
This commit is contained in:
@@ -61,6 +61,11 @@ CMD_LOOP_PARAM_SET = "loop_param_set"
|
||||
CMD_LOOP_PARAM_QUERY = "loop_param_query"
|
||||
CMD_REPORT_CONFIG = "report_config"
|
||||
|
||||
# V1.06: 脱机事件日志
|
||||
CMD_LOG_STAT = "log_stat"
|
||||
CMD_LOG_QUERY = "log_query"
|
||||
CMD_LOG_CLEAR = "log_clear"
|
||||
|
||||
# 设备上报
|
||||
CMD_LOOP_DATA = "loop_data"
|
||||
CMD_EVENT_REPORT = "event_report"
|
||||
@@ -71,6 +76,7 @@ CMD_INITIALIZE = "initialize" # V1.03: 设备上电初始化
|
||||
CONFIG_SET_COMMANDS = {CMD_DEV_SERIAL_SET, CMD_SSC_NET_SET, CMD_IOT_NET_SET, CMD_IOT_TOPIC_SET, CMD_LOOP_PARAM_SET}
|
||||
CONFIG_QUERY_COMMANDS = {CMD_DEV_INFO_QUERY, CMD_SSC_NET_QUERY, CMD_IOT_NET_QUERY, CMD_IOT_TOPIC_QUERY, CMD_LOOP_PARAM_QUERY}
|
||||
CTRL_COMMANDS = {CMD_PWD_VERIFY, CMD_PWD_SET, CMD_FACTORY_RESET, CMD_DEVICE_RESET, CMD_REPORT_CONFIG}
|
||||
LOG_COMMANDS = {CMD_LOG_STAT, CMD_LOG_QUERY, CMD_LOG_CLEAR} # V1.06 脱机日志
|
||||
|
||||
|
||||
# ============================================================
|
||||
@@ -104,6 +110,21 @@ FREQ_LEVELS = ["high", "mid_high", "mid_low", "low"]
|
||||
OUTPUT_MODES = ["exist", "enter_pulse", "leave_pulse", "direction"]
|
||||
EVENT_TYPES = ["car_enter", "car_leave", "loop_cut", "loop_restore"]
|
||||
|
||||
# 脱机事件日志类型描述 (log_query 响应 records[].type, MQTT V1.06)
|
||||
LOG_EVENT_TYPE_DESC = {
|
||||
"boot": "上电/复位",
|
||||
"iot_connect": "MQTT TCP 连接成功",
|
||||
"iot_ready": "MQTT 订阅完成→发 initialize",
|
||||
"iot_disconnect": "MQTT 断连",
|
||||
"iot_reconn": "重连退避",
|
||||
"evt_retry": "event ACK 超时重发",
|
||||
"evt_giveup": "event 重试耗尽挂起",
|
||||
"coil": "线圈事件",
|
||||
"time_anchor": "时钟同步锚点",
|
||||
"log_clear": "日志清除(审计)",
|
||||
"unknown": "未知类型",
|
||||
}
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 消息构建
|
||||
@@ -214,6 +235,14 @@ def data_report_config(sensor_type: int = 12, enable: bool = True,
|
||||
}
|
||||
|
||||
|
||||
def data_log_query(start_seq: int = 1, count: int = 4) -> dict:
|
||||
"""V1.06 log_query 分页拉取脱机事件日志 (count 上限 4, 设备侧超限按 4 处理)"""
|
||||
return {
|
||||
"start_seq": max(1, int(start_seq)),
|
||||
"count": min(4, max(1, int(count))),
|
||||
}
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 解析设备上报
|
||||
# ============================================================
|
||||
|
||||
Reference in New Issue
Block a user