我有一些安装了Xbee s2的节点。 zigbee模块配置为路由器和协调器,采用zigbee网状拓扑结构。我想将数据从每个节点发送到其他节点。
问题: 我怎么发送数据?这是我想到的伪代码。我想知道zigbee堆栈中是否有任何API可用于此,如果我遗漏了任何内容:
init_network;
fragment_data_to_frames;
fork();
if(process_is_parent)
for(i=0;iMbum_frames;i++){
send_frame(i);
wait(x miliseconds)// how much do I have to wait? or do I have to wait upon receiving ack,i.e. wait(ack(i));
}
}
if(process_is_child){
check_acknowledgment_packets();//does zigbee notify me that the frame is lost? or I have handle it by myself, e.g. by assuming frame is lost after specific time.
}
resend_lost_frames;
在目标节点中,我如何检索数据?我是否必须通过检查序列号和配置文件以及连接数据包来自行处理?或者Zigbee堆栈会为我做。
答案 0 :(得分:0)
API模式下的XBee无线电模块将生成"传输状态"用于指示远程模块已接收到帧编号的帧。由于它是网络层确认而不是应用层,因此无法保证另一方的主机成功处理它。
您打算发送多少数据? ZigBee专为低速,低容量数据传输而设计。如果您只是使用XBee模块,则可以使用其专有协议(如透明串行)。为了实现互操作性,您需要阅读ZigBee群集库以及它如何使用常规命令和属性在节点之间传输信息。