我需要做的是逆向工程串行命令,以便我可以弄清楚如何将人类可读值或二进制值序列化为原始串行命令。
IE:
if
66 = 'A1' or '0110 1'
6e = 'A2' or '0110 2'
e6 = 'B1' or '1110 1'
ee = 'B2' or '1110 2'
then
what is A3 or B3, etc.
我正在开发一个开源自动化项目的包装器。
有一种方法可以发送raw
命令,理论上可以将多个命令串在一起
我嗅了几个串行命令,这就是它们的样子。
[init] [HouseCode | DeviceCode] [ready] [HouseCode | FunctionCode]
04 66 06 62 // A1 ON
04 6e 06 62 // A2 ON
04 62 06 62 // A3 ON
04 6a 06 62 // A4 ON
04 61 06 62 // A5 ON
04 69 06 62 // A6 ON
04 65 06 62 // A7 ON
04 6d 06 62 // A8 ON
04 67 06 62 // A9 ON
04 6f 06 62 // A10 ON
04 63 06 62 // A11 ON
04 6b 06 62 // A12 ON
04 60 06 62 // A13 ON
04 68 06 62 // A14 ON
04 64 06 62 // A15 ON
04 6c 06 62 // A16 ON
04 e6 06 e2 // B1 ON
04 ee 06 e2 // B2 ON
04 e2 06 e2 // B3 ON
04 ea 06 e2 // B4 ON
....
04 ec 06 e2 // B16 ON
04 66 06 63 // A1 Off
04 e6 06 e3 // B1 Off
04 66 06 61 // All A lights On (using A1 as the starting point)
04 e6 06 e1 // All B lights On (using B1 as the starting point)
04 66 06 66 // All A lights Off (using A1 as the starting point)
04 e6 06 66 // All B lights Off (using A1 as the starting point)
04 66 06 64 2a // A1 Dim 20
04 66 06 64 2c // A1 Dim 21
04 66 06 64 2e // A1 Dim 22
04 66 06 65 2a // A1 Bright 20
04 66 06 65 69 // A1 Bright 50
我需要做的是对其进行逆向工程,以便我可以通过编程方式进行串行调用,或者更好地了解人类可读值或二进制值值被序列化为原始串行命令。
是的,我可以嗅探所有命令并分别存储每个值,但我想知道这是怎么做的。
这是我目前的观察结果。
04
并告诉设备要查找的内容**
告诉系统正在控制哪个设备[HouseCode
& DeviceCode
] 55
返回告诉您已准备就绪06
并告诉设备预期会发生什么**
告诉系统房屋代码和命令[HouseCode
& FunctionCode
]
**
可选择发送,且值介于0和0之间。 100来引用昏暗的水平55
告诉您已准备就绪HouseCode
= A,B,C等),第二个字符是地址(DeviceCode
= 1,2,3等)
6
必须直接对应A
e
必须直接对应B
HouseCode
开头
FunctionCode
结尾
最后,在文档中,每个命令都与二进制数据相关,因此将A1
转换为hex
可能不,而是{{} 1}}到binary
。
hex
有谁知道如何实现这一目标?
答案 0 :(得分:1)
Heyu是一个用于处理X10设备的出色开源应用程序。他们根据X10的原始文档发布了一篇非常全面的X10 protocol specification。
这应该可以让你的工作完成猜测。重要的是房屋代码和单位代码是静态地图,无法计算。协议规范确切地指定了比特流的形成方式。 E.g。
PC Interface Description
0x04,0x66 Address A1
0x6a Checksum ((0x04 + 0x66)&0xff)
0x00 OK for transmission.
0x55 Interface ready.
0x86,0x64 Function: A Dim 16/22*100%
0xea Checksum ((0x86 + 0x64)&0xff)
0x00 OK for transmission.
0x55 Interface ready.