文章主题
ZWave Device 的过程中,其实就是对不同的 COMMAND CLASS 进行解析处理。在刚开始进入ZWAVE 开发时,为了弄清楚数据包的格式,做了下面的参考表格。不过后来发现用来抓包的 sniffer 更好用~~
其实,在我们的日常开发过程中,最主要关注的是从 COMMAND CLASS 后面的内容,也就是上图中最后一个示意图所展示的数据帧结构。
虽然 sniffer 已经为我们解析好了,但是,有时候还是有必要对照着协议文档,按照每个 byte,每个 bit 进行解析。毕竟,ZWave 中大量的使用了 bit 级别的信息。
在很久之前,ZWave 只支持很简单的”绑定“操作,比如:通过一个按钮直接控制一个灯泡。随着智能家居的发展,每一家厂商都逐渐加重了对中心网关的重视程度(我见过这样的客户:在一个网关中,继承了3中无线通信技术:ZWave, ZigBee, BLE),因此,ZWave 也在这方面不停的扩展它的协议。但是,不能把市场上已经存在的旧设备抛弃吧,否则显得太势力、太不人道了,于是为了达到”向后兼容“的效果,在协议设计上就变得更加复杂。
当然,在某种方面可以说,这也是 ZWave 的有点,毕竟是以互联互通作为最大的卖点进行宣传的嘛!于是,我们这些开发者就苦逼了,别想把每一个 COMMAND 的协议记住,遇到时,老老实实的查文档吧!