fix(protocol): RXTX 命令通道切换到 331f(实机证据:1f1f 仅ACK不执行)+ 设备ID反解参数序校正(实机向量),150 测试全绿
This commit is contained in:
1 parent
4db823f207
commit
aebe0ad317
6 files changed
+33
-18
No files matched your search
+12
-6
@@ -24,16 +24,22 @@ class TestKeygen:
|
||||
|
||||
|
||||
class TestRecoverMac:
|
||||
def test_recover_real_device(self):
|
||||
"""实机向量:ID '81233F3C267112' ↔ 广播 18:BC:5A:5D:BF:28(NVDS 序=显示序反转)"""
|
||||
mac = P.recover_mac_from_device_id("81233F3C267112")
|
||||
assert mac == bytes([0x28, 0xBF, 0x5D, 0x5A, 0xBC, 0x18])
|
||||
assert mac[::-1] == bytes.fromhex("18BC5A5DBF28")
|
||||
|
||||
def test_recover_vector(self):
|
||||
"""MAC [9A,01,99,50,10,20] → ID '89794900980101'(|MAC4-99|,|MAC5-99|,|MAC3-99|,
|
||||
|MAC2-99|,|MAC1-99|,|MAC0-99|,flags;flags=各字节≥0x9A 位掩码)"""
|
||||
mac = P.recover_mac_from_device_id("89794900980101")
|
||||
"""MAC [9A,01,99,50,10,20] → ID '79894900980101'(|MAC5-99|,|MAC4-99|,|MAC3-99|,
|
||||
|MAC2-99|,|MAC1-99|,|MAC0-99|,flags;flags=各字节≥0x9A 位掩码=0x01)"""
|
||||
mac = P.recover_mac_from_device_id("79894900980101")
|
||||
assert list(mac) == [0x9A, 0x01, 0x99, 0x50, 0x10, 0x20]
|
||||
|
||||
def test_roundtrip_all_high(self):
|
||||
# 全 ≥0x9A:flags=0x3F;v=|m-0x99|
|
||||
mac = bytes([0x9A, 0xB0, 0xC1, 0xFF, 0xA0, 0x9B])
|
||||
vals = [abs(mac[4] - 0x99), abs(mac[5] - 0x99), abs(mac[3] - 0x99),
|
||||
vals = [abs(mac[5] - 0x99), abs(mac[4] - 0x99), abs(mac[3] - 0x99),
|
||||
abs(mac[2] - 0x99), abs(mac[1] - 0x99), abs(mac[0] - 0x99)]
|
||||
dev_id = "".join(f"{v:02X}" for v in vals) + "3F"
|
||||
assert P.recover_mac_from_device_id(dev_id) == mac
|
||||
@@ -44,6 +50,6 @@ class TestRecoverMac:
|
||||
|
||||
def test_keygen_after_recover_matches(self):
|
||||
"""recovered MAC → keygen:与直接对原 MAC keygen 一致"""
|
||||
mac = bytes([0x9A, 0x01, 0x99, 0x50, 0x10, 0x20])
|
||||
recovered = P.recover_mac_from_device_id("89794900980101")
|
||||
mac = bytes([0x28, 0xBF, 0x5D, 0x5A, 0xBC, 0x18])
|
||||
recovered = P.recover_mac_from_device_id("81233F3C267112")
|
||||
assert P.keygen_code(recovered) == P.keygen_code(mac)
|
||||
Reference in new issue
Block a user