本博文旨在实现2个(或者多个)终端结点发送数据包至路由节点,路由节点将其缓存后发送至协调器(Sink结点)。路由节点原来是收到一个数据包转发一个数据包,而现在可以待收到了(例如光照传感器以及温湿度传感器发送来的2个数据包),将其缓存后2个数据包一齐发送,这样就可以减少数据包的发送量。从而实现了数据融合的一个基本工作。为接下来的数据融合算法可行性提供了坚实的基础。理论现拟提供如下2种技术方案:
1.终端结点A,B可以将各自的数据包发送广播或者(组播、绑定),路由节点收到后在其结点内写一个链表的数据结构(用于缓存),随后将数据一齐发送至协调器。
2.终端结点A,B将数据包直接发送至协调器(目的地址是0x0000,而不是方法1中所述路由器的短地址),这就涉及到路由结点需要截获数据包,并将其转发至协调器。(当然,这里面需要花费些工夫在ZDO层上面,对里面的机制要十分熟才有可能做到。)
研究现在发现上述方案2不可行:这部分已经封装在库函数中,是无法修改路由需要转发数据的,因为转发是在网络层完成了的,在应用层是无法拿到这个数据的。现在也只能从应用层的角度去考虑实现这个方案。
PS:暂时还没有代码验证,回头验证后继续更新。