(在我问我的问题之前;我真的不知道是否允许任何人回答我的问题,因为 Z-wave 协议应该是机密信息,但如果它确实违反了任何类型的规定,请随时删除这个帖子。)
我目前正在尝试编写一个 C 程序,它简单地构造一个包含原始二进制数据的 Z-wave 消息,然后将该消息发送到连接 Z-wave 控制器的 USB 接口(我正在使用 AEOTEC Z-Stick USB 加密狗由永旺实验室)。我也使用本指南作为参考,并尝试用纯 C 重写示例代码。但是,如果您查看指南,特别是他试图发送到 USB 控制器的消息:
/*
0x01, 0x09, 0x00, 0x13, nodeId, 0x03, 0x20, 0x01, state, 0x05, checksum
*/
...也许只有我一个人,但似乎缺少来自通常 Z-wave 框架的一些信息。我的猜测是前 4 个字节代表 Home ID,后跟节点 ID,但我无法弄清楚 '0x03' 之后的含义,假设该字节之后的其余部分代表“基本”命令类(' 0x20',1 个字节)和相应的“设置”应用命令('0x01',1 个字节)。校验和位之前的“0x05”代表什么?那么传输头信息呢,为什么不包括在内?似乎他不需要包含它......或者我只是完全错误地解释了数据包。有人可以启发我吗?
此外,如果您从 USB 端口读取应用程序层信息(例如,在 C 中使用 open() 和 read() 命令),您只能从 USB 端口检索应用层信息是否正确?
先感谢您!