冠榕智能灯光控制协议分析(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的所有字节

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值