冠榕智能灯光控制协议分析(controller-node)
?
1.?在Z-WAVE PC Controller軟件選擇已配對的智能開關。
從上圖中可以看到,我們的智能開關的node id是11,即0x0B。
?
2.?向智能開關發送燈光的開閉數據。
CommandClasses選擇COMMAND_CLASS_BASIC
CommandName選擇BASIC_SET
Value為00時關閉燈光,為01時打開燈光。
從ZW_classcmd.h文件里可以看到
#defineCOMMAND_CLASS_BASIC 0x20
#defineBASIC_SET ?????????? 0x01
?
3.?從Z-WAVE PC Controller軟件的log區可以看到如下信息
??? ?
可以看到這幀數據的Series Api編號是0x13
?
4.在<<INS12350-4 - Serial API Host Appl. Prg.Guide.pdf>>這個手冊里找到下圖,這是z-wave串口協議的一個整體結構圖。
各個字段的說明都可以在這個文檔里找到,包括Checksum的計算方式 。
5.從<<INS12308-6 - Z-Wave 500 Series Appl. Prg.Guide v6.51.03.pdf>>這個手冊上找到0x13這條協議,可以看到此條串口協議的整體格式。
從0x13這個命令號后面都是此窗口指令的參數,這些參數在上面第3節里可以找到。
?
6.至此,我們就可以組成一個完整的串口報文了。
01 0A 00 13 0B 05 20 01 00 25 03 EF
| 01 | SOF |
| 0A | Length ,除SOF和checksum外的長度 |
| 00 | REQ |
| 13 | 串口命令ID |
| 0B | 目的結點id |
| 05 | Datalength, 后面數據的長度 |
| 20 | pData[0], COMMAND_CLASS_BASIC |
| 01 | pData[1], BASIC_SET |
| 00 | pData[2],燈光開關數據 |
| 25 | txOptions |
| 03 | funcID,這個編號理論應該是以此遞增的,但好像也無所謂 |
| EF | Checksum |
?
7.最后,我們看一下用嗅探器抓取的數據。
| E9 C4 2F 88 | Home ID |
| 01 | 源結點ID |
| 41 01 0D | ? |
| 0B | 目標結點ID |
| 20 01 01 | COMMAND_CLASS_BASIC BASIC_SET 數據(開或關) |
| 12 | checksum |
雖然用處不大,從上面這個表里,我們還是能看到一些有用的信息,
源結點ID,目標結點ID。
另外目標結點ID后面的數據實際就是pData[]里的那三個字節。命令類,命令和數據。
從<< SDS12657-5 - Z-Wave Command ClassSpecification, A-M.pdf>>這個文檔可以找到這條命令的定義。
8.當controller發送成功后,回收到以下數據
06
01 04 01 13 01 E8
01 04 01 13 01 E8
01 04 01 13 01 E8
01 04 01 13 01 E8
從上面兩個圖可以看到,Z-Wave PC Controller這個軟件確實收到了,上面兩個ZW-HOST的反饋,但是用串口工具只能收到第一個
06只是一個ACK
| 01 | SOF |
| 04 | ?????? |
| 01 | RES |
| 13 | 串口命令ID |
| 01 | RetVal |
| E8 | Checksum,除SOF的所有字節 |
?
總結
以上是生活随笔為你收集整理的冠榕智能灯光控制协议分析(controller-node)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 持有收益和昨日收益的区别,表现在这三方面
- 下一篇: 国债提前支取最新规定,划重点了!