Polling Devices ZWAVE对轮询设备状态的要求

来源:互联网 发布:条形码打印机软件 编辑:程序博客网 时间:2024/05/20 13:39

qq:380939960

在做智能家居开发时,APP上我们可能会要求及时掌握设备的状态,例如设备是否在线,设备离线了要及时通知用户; 要知道门锁当前是开还是关等等; 可能有人会采用轮询设备的方法。为了避免网络拥塞等可能的问题,Z-Wave对轮询设备作出了一些规定。

3.6 Polling Devices

有时候为了及时了解设备是否在线,以及获得设备最新的状态;控制设备可以监视节点的状态或发出状态信息查询请求。通信模式包括但不限于:

l  发送无操作(NOP,No Operation Command)命令用于验证节点是否可操作的命令;

l  发送Get命令,并在设备回复的Report命令中获得状态信息;

l  发送Set命令并跟随一个Get命令,然后在设备回复的Report命令中获得状态信息;

如果控制设备自主地以重复方式向一个或多个节点发送请求以监视节点或从节点获得信息,则通信必须被视为轮询。它包括任何形式的命令组合。

Z-Wave是一种带宽有限的无线电技术,因此不建议使用轮询。如果使用,轮询通信必须符合3.6.1至3.6.3节中规定的要求。

如果出现以下情况,通信可被视为非轮询:

•由于用户操作而引发的一个或多个命令发送,包括任何命令的组合,也包括请求。

•因为添加新设备节点而引发的一个或多个命令发送,包括任何命令的组合,也包括请求。

 


3.6.1 Pollingwith no errors

在没有传输错误的情况下轮询请求时,我们假设使用名为CommandTime和PollTime的两个定时器。图1和图2分别给出了加密和非加密情况时的示例:

CommandTime为发送节点从发送命令开始到收到该命令ACK之间的这段时间;

PollTime为两次查询之间的时间间隔;

以下要求适用于轮询请求成功的正常情况。

l  CommandTime必须由发送节点的应用程序来测量具体的数值。

l  应用程序必须在轮询任何其他节点之前等待PollTime这么久;

l  PollTime应为10秒+ CommandTime或更多

l  PollTime不能小于1秒+ CommandTime

 


在这个例子中,发送节点发出Get命令,然后接收节点回复Report给发送节点;然后发送节点等待PollTime后,再次发送Get命令给查询设备。


 

3.6.2 Pollingwith transmit error


图3和图4给出了在有传输错误时,采用有加密和无加密情况的轮询请求示例。注意,在丢失Ack的情况下,发送节点必须在考虑Ack被丢失之前发送Get命令3次。 CommandTime是从第一个Get Command传输开始到命令超时结束的时间长度。

以下要求适用于轮询请求不成功的情况。

l  如果传输失败,应用程序必须在轮询任何其他节点之前等待PollTime这么久。 PollTime必须是10秒+ CommandTime或更多

 


 

 

3.6.3 Pollingwith missing Report frame.

当传输成功但没有收到节点的报告时,在图5和图6中给出了加密和不加密情况下定时器CommandTime和ReportTime取值的示例。

以下要求适用于轮询请求成功但未接收到报告帧的情况。

l  在轮询任何其他节点之前,应用程序必须等待ReportTime来期待来自节点X的应答

l  ReportTime必须是CommandTime + 10秒或更多

 


 

 


0 0
原创粉丝点击