wangfq
|
11f1c4f55b
|
fix: device_status_monitor 增加 dnt_info 全表扫描,修正状态不一致
- 新增 get_all_device_serials() 查询 dnt_info 全表
- device_status_monitor 改为三阶段:
Phase 1: 遍历 _registry 活跃设备
Phase 2: 扫描 dnt_info 全表,修正 DB 状态与交互实际不符的情况:
- state=1(在线) 但 >60s 无交互 → 更新为离线
- state=0(离线) 但有交互 → 根据交互模式更新
Phase 3: 预留清理位
- 提取 _apply_state_change() 避免重复代码
- Count_Off 登录时主动设 _device_status[serial]=1,
防止刚登录只有 1 条交互记录时被误判为 通信不良
|
2026-06-10 09:36:01 +08:00 |
|
wangfq
|
ef890fafc6
|
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 时间戳
|
2026-06-10 09:14:24 +08:00 |
|
wangfq
|
3a74759066
|
fix(B4): 波动测试记录写入 sub_type/str_type,从工装配置 DevType 获取
- 新增 get_fixture_dev_type() 查询工装配的 DevType
- insert_wave_data 自动补充 sub_type(型号编码) 和 str_type(PD132/DLD110)
|
2026-06-08 11:31:42 +08:00 |
|
wangfq
|
68c6d0bcfe
|
feat(db): 新增线圈参数表/模拟车辆参数表 + tb_fixture_param/tb_state_tst 关联字段
- CREATE TABLE tb_coil_info (线圈编号/名称/电感量/形状/尺寸/圈数/电阻/材质/备注)
- CREATE TABLE tb_simulate_car (模拟编号/名称/形状/尺寸/材质/备注)
- ALTER TABLE tb_fixture_param ADD coil_id, simulate_car_id
- ALTER TABLE tb_state_tst ADD coil_id, simulate_car_id
- 新增 get_fixture_coil_car_ids() 查询当前关联
- insert_test_result/insert_wave_data 自动从 fixture 获取线圈/车辆并记录
|
2026-06-08 10:42:04 +08:00 |
|
wangfq
|
844de70017
|
feat: relay_code 存储+解析 — B2/B4 以原始 int 值写入 tb_state_tst
- insert_test_result 增加 relay_code 参数
- insert_wave_data: relay_out 改为 relay_code (int)
- handlers.py: B2/B4 解析传递 status.relay_out 原始值
- relay_out VARCHAR 列保留兼容
|
2026-06-05 17:56:52 +08:00 |
|
wangfq
|
dc1d2b8871
|
fix: 恢复 FarStay 为 2 字节 — 与 NearStay 一致
|
2026-06-03 13:40:18 +08:00 |
|
wangfq
|
7e5fe2cccd
|
fix: FarStay 2B→1B 匹配设备固件,修正 parse_4c_params 偏移
|
2026-06-03 11:52:37 +08:00 |
|
wangfq
|
6724af7951
|
fix: ALTER TABLE 迁移补充 tb_fixture_param 缺失的 V2.0.3 波动参数字段
CREATE TABLE IF NOT EXISTS 不会更新已存在的旧表,
新增 ALTER TABLE ADD COLUMN 自动迁移逻辑(列已存在时忽略)
|
2026-06-02 18:33:22 +08:00 |
|
wangfq
|
2d6c9f03dd
|
feat: DG430 V2.0.3 — 波动测试模式支持
- dg430.py: 新增 DG430WaveStatus + parse_b4_wave_status() 0xB4解析
- dg430.py: 0x4C 扩展6字段(向后兼容旧版长度)
- models.py: tb_fixture_param DDL + upsert 新增6个波动参数
- handlers.py: parse_loop 添加0xB4处理; 0x4C传参扩展
- TestMode=1 模拟过车→波动测试 (注释)
|
2026-06-02 18:06:07 +08:00 |
|
wangfq
|
6ecc653133
|
chore: 精简 requirements.txt — 仅保留直接依赖 aiomysql+uvloop,移除未使用的传递依赖
|
2026-06-01 08:34:39 +08:00 |
|
wangfq
|
e7c20c69d2
|
feat: 工装配置功能 — 新增 0x4A~0x4E 协议解析、tb_fixture_param/tb_vechicle_base_test 表、SerialNet 响应匹配
- dg430.py: 新增 parse_4a_version, parse_flag_response, parse_4c_params, get_packet_cmd
- handlers.py: parse_loop 增加 0x4C/非B2 指令处理,0x4C 响应自动更新 tb_fixture_param
- handlers.py: 测试指令(B0/B1/BA/BB/BC)Flag 不匹配 serialnet,仅 B2 标记完成
- handlers.py: 新增 serialnet_response_loop 处理 dat_type=9
- models.py: 新增 tb_fixture_param + tb_vechicle_base_test 表 DDL + CRUD
- server.py: 注册 serialnet_response_loop
|
2026-05-29 17:25:54 +08:00 |
|
wangfq
|
43fd3e7be9
|
feat: 新增 tb_user、tb_log 表
|
2026-05-28 13:58:08 +08:00 |
|
wangfq
|
df461362f5
|
fix: serialnet_loop 改为直接查 tb_serialnet,不依赖 _registry
|
2026-05-28 12:08:29 +08:00 |
|
wangfq
|
85e7f66b19
|
fix: SerialNet 下发目标端口改为设备UDP 4900
|
2026-05-28 10:51:12 +08:00 |
|
wangfq
|
d6e169ce12
|
chore: 默认 MySQL 用户 dg / 密码 123456
|
2026-05-28 10:31:21 +08:00 |
|
wangfq
|
a1f4dcd4bf
|
fix: callable 不是类型,改为 object 注解
|
2026-05-28 10:00:08 +08:00 |
|
wangfq
|
7a6f56339c
|
feat: 新增 tb_serialnet 透传发送表 + serialnet_loop 轮询下发 + B2响应匹配 + 超时检测
|
2026-05-28 09:40:28 +08:00 |
|
wangfq
|
97302caf6b
|
fix: 支持拼接多包解析 + 校验失败标记 state=3
- dg430.py: 新增 split_packets() 按 STX+LEN 拆分拼接的 DG430 数据包
- handlers.py: parse_loop 拆分后只解析 B2 状态上报包,非 B2 跳过
- models.py: mark_parsed 改为 mark_record_state(state) 支持自定义状态
- 校验失败 → state=3; 解析成功 → state=1
|
2026-05-27 16:39:39 +08:00 |
|
wangfq
|
8c5389670d
|
fix: 修正设备接入流程
- Count_Off 改为读取 Data.Device_id (设备返回格式), 不再回复设备
- TimeStamp 改为同步函数 (无异步 IO)
- TCP 改用 JSON 流解析 (raw_decode), 支持紧凑 JSON 和 NDJSON
- TSReport/SerialNet 返回确认消息
|
2026-05-27 14:17:36 +08:00 |
|
wangfq
|
35a2cc7d20
|
chore: 添加 .venv/ 到 gitignore,更新 README 加入 venv 步骤
|
2026-05-27 11:21:43 +08:00 |
|
wangfq
|
b1cea017ab
|
docs: 修正协议文档相对路径
|
2026-05-27 10:34:15 +08:00 |
|
wangfq
|
bcd4cc6a8d
|
fix: DG430 协议校验 off-by-one,payload 范围修正
|
2026-05-27 10:25:40 +08:00 |
|
wangfq
|
a10d176f68
|
feat: EDC 服务 — Python/uvloop 实现,UDP/TCP 异步网络服务
|
2026-05-27 10:23:15 +08:00 |
|