fix: FarStay 2B→1B 匹配设备实际固件
协议: 0x4B LEN=0x16, 0x4C LEN=0x1A 代码: build_4b FarStay 1B, parse_4c FarStay payload[24] 前端: FarStay max=255
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -65,12 +65,12 @@ def build_4b_packet(addr: int, dev_type: int, test_mode: int,
|
||||
near_stay: int = 0, far_stay: int = 0) -> str:
|
||||
"""构造 0x4B 配置指令 hex 字符串 (V2.0.3 扩展)
|
||||
|
||||
格式: 7F | 81 | 17 | 4B | Addr(1) | DevType(1) | TestMode(1) |
|
||||
格式: 7F | 81 | 16 | 4B | Addr(1) | DevType(1) | TestMode(1) |
|
||||
ResetDis(1) | MinusDis(1) |
|
||||
SensMin(2 LE) | SensMax(2 LE) | FreMin(2 LE) | FreMax(2 LE) |
|
||||
PeakMin(2 LE) | PeakMax(2 LE) |
|
||||
FarTol(1) | NearTol(1) | StepTol(1) | BackForth(1) |
|
||||
NearStay(2 LE) | FarStay(2 LE) | XOR | SUM
|
||||
NearStay(2 LE) | FarStay(1) | XOR | SUM
|
||||
"""
|
||||
payload = bytes([
|
||||
0x4B, # CMD
|
||||
@@ -90,7 +90,8 @@ def build_4b_packet(addr: int, dev_type: int, test_mode: int,
|
||||
step_tol & 0xFF,
|
||||
back_forth & 0xFF,
|
||||
])
|
||||
payload += _le16(near_stay) + _le16(far_stay)
|
||||
payload += _le16(near_stay)
|
||||
payload += bytes([far_stay & 0xFF]) # FarStay 1 字节
|
||||
|
||||
pkt = bytes([0x7F, 0x81, len(payload)]) + payload
|
||||
xor, total = _xor_sum(pkt[1:])
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>最远停留时间 (ms)</label>
|
||||
<input type="number" id="param-far-stay" value="0" min="0" max="65535">
|
||||
<input type="number" id="param-far-stay" value="0" min="0" max="255">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user