[英]Reverse Engineering Serial Commands
我需要做的是反向工程串行命令,以便我可以弄清楚如何將人類可讀的值或二進制值序列化為原始的串行命令。
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和100之間的值,以引用暗淡級別 55
再次發回,告訴您它已經准備好 HouseCode
= A,B,C等),第二個字符是地址( DeviceCode
= 1、2、3等)
6
必須直接對應於A
e
必須直接對應於B
HouseCode
FunctionCode
結尾
最后,在文檔中,每個命令都與Binary數據相關,因此將A1
轉換為hex
可能不是問題,而是將binary
為hex
。
HouseCode DeviceCode Binary Value
A 1 0110
B 2 1110
C 3 0010
D 4 1010
E 5 0001
F 6 1001
G 7 0101
H 8 1101
I 9 0111
J 10 1111
K 11 0011
L 12 1011
M 13 0000
N 14 1000
O 15 0100
P 16 1100
FunctionCode Binary Value
All Units Off 0000
All Lights On 0001
On 0010
Off 0011
Dim 0100
Bright 0101
All Lights Off 0110
Extended Code 0111
Hail Request 1000
Hail Acknowledge 1001
Pre-set Dim (1) 1010
Pre-set Dim (2) 1011
Extended Data Transfer 1100
Status On 1101
Status Off 1110
Status Request 1111
有誰知道我將如何實現這一目標?
Heyu是一個出色的開源應用程序,可用於X10設備。 他們已經基於X10的原始文檔發布了非常全面的X10協議規范 。
這應該使您的猜測工作變得毫無用處。 重要的是房屋代碼和單位代碼是靜態映射,無法計算。 協議規范准確規定了比特流的形成方式。 例如
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.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.