Files
IntelligentShelves/秤心跳数据.md
T
mazengfeiandClaude Sonnet 4.6 0eede1059c feat(serial): 封装 ScaleManager 替换现有秤功能逻辑
新增 SDK 核心类:
- ScaleProtocolConstants:协议常量(命令字节、帧偏移)
- ScaleFrameParser:分片拼装、帧解析、BCD重量解析(修复旧代码 hex 误用问题)
- ScaleFrame / ScaleWeight / HeartbeatData / StatusData:数据模型
- ScaleManager:单例入口,支持链式回调注册、自动应答、指令构建
- ScaleFrameParserTest:基于实际抓包数据的单元测试

业务层替换:
- HomeActivity:移除 SerialProtocolHandler/SerialFrameParser,改用 ScaleManager 回调
- BaseActivity:sendCmd() 保持调用 SerialPortManager,与 ScaleManager.sendAction 独立
- ShelfActivity:秤置零、获取状态指令改用 ScaleManager 构建方法

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 13:54:02 +08:00

74 lines
4.1 KiB
Markdown
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.
协议头 4 字节
命令 1 字节
标志 1 字节
数据体 :不同命令不固定,详细见下方
协议尾 2字节
协议头 0xD6 0xDA 0xDE 0xDB
命令:
◼ 0x00:终端激活(终端发起)
◼ 0x01:心跳(终端发起)
◼ 0x81:心跳(终端发起,当终端发送此命令时需要服务端存储串口屏显示信息)
◼ 0x02:开锁(服务端发起)
◼ 0x03:获取状态(服务端发起)
◼ 0x04:秤置零(服务端发起)
◼ 0x06:秤标定(服务端发起)
◼ 0x05:卡号上发(终端发起)
◼ 0x07:价签设置(服务端发起)
◼ 0x08:串口屏(服务端发起)
◼ 0x09:语音播报(服务端发起)
◼ 0x0A:价签(第二块串口屏/透传)设置(服务端发起)
◼ 0x0B:操作记录上传(终端发起)
◼ 0x0C:对时(终端发起)
◼ 0x0E:终端位置上报(终端发起)
◼ 0x0F:温控器控制(服务端发起)
◼ 0x10:温控信息上报(终端发起)
◼ 0x11:临时参数设置(服务端发起)
固定数据体 :(终端ID :15 字节,固件版本 :5字节,命令次数 :1字节)
0x01心跳终端发起数据体内容格式:
秤数量 1 字节
N个秤重量数据 :N x 4字节
物联卡号 20 字节
锁1门状态 1 字节
锁1锁状态 1 字节
锁2门状态 1 字节
锁2锁状态 1 字节
温度 1 字节
固定数据体 :(终端ID :15 字节,固件版本 :5字节,命令次数 :1字节)
0x03获取状态服务端响应数据体内容格式:
锁1锁状态 1 字节
锁1门状态 1 字节
锁2锁状态 1 字节
锁2门状态 1 字节
秤数量 1 字节
N个秤重量数据 :N x 4字节
温度 1 字节
固定数据体 :(终端ID :15 字节,固件版本 :5字节,命令次数 :1字节)
示例数据见下方----------------------------
旧设备10台秤心跳数据:
D6DADEDB01010C0000000008000000020000800100008000000000010000800500008001000080030000800200008099180080721800800000000000000000000000000000000000000000010101015037414645333633333334333731373056322E313007FFFF
D6DADEDB01010C0900000027170000122500007511000001000000090000001100000012000000430000000800008000150080591500800000000000000000000000000000000000000000010100005031323136334238423134303233303456322E313112FFFF
新设备15台秤心跳数据:
D6DADEDB0101189322000000000000053300001534000079230000611100000000000007000080030000000300000004000080010000000100008003000000180600004214008083130080741200800115008066130080501400800411008033120080631600800000000000000000000000000000000000000000010101015031463137334238423134303233303456322E313130FFFF
D6DADEDB0101181422000037110000823100009233000054000080100000000100000030240000050000000300008002000080050000802006000007000000441100004014008081130080721200800315008064130080521400809610008033120080631600800000000000000000000000000000000000000000010101015031463137334238423134303233303456322E313147FFFF
D6DADEDB0101180635000075190000842800000100008014000080060000800100008004000080050000801500008007000000080000800700008003000000050000008118008054180080231800801018008059170080221800809418008075320080761900800000000000000000000000000000000000000000010101015033453137334238423134303233303456322E313139FFFF
旧设备10台秤获取状态数据:
D6DADEDB0302010100000C1100000027170000122500007711000001000000110000001300000012000000430000001000008000150080441500805031323136334238423134303233303456322E313113FFFF
新设备15台秤获取状态数据:
D6DADEDB030201010101180635000077190000842800000100008014000080040000800100008004000080050000801500008007000000080000800900008005000000030000008118008054180080231800801018008059170080221800809418008079320080761900805033453137334238423134303233303456322E31313CFFFF
D6DADEDB030201010101181422000037110000783100009033000054000080100000000100000028240000070000000100008006000080030000801806000009000000461100004014008081130080721200800115008064130080501400809810008033120080651600805031463137334238423134303233303456322E31314AFFFF