比如,数据帧刚刚从节点A,依次经过B、C、D、E到达F。
然后,这时的C点的应用层想知道如果从他这要到达F,他的下一跳是谁(实际中是D),这个要怎么操作呢?
zstack中有路由表、邻居表、父节点等,据网上资料说好像下一跳的节点在这三个地方都有可能,这样我就想知道其中是什么样的规则?
要是有个API,给出目的节点,直接返回下一跳节点地址,这样就很方便了。
谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
uint16 next=0xFFFF;
uint16 dst=0;
uint16 self=NLME_GetShortAddr();
next = RTG_GetNextHop(dst, self, self,self, NO_ROUTE_CACHE);
为什么next被RTG_GetNextHop()赋值,但是值还是保持原来的?
即,调用前为0xFFFF,或0x0003,或0x0006,这样被RTG_GetNextHop()赋值后,值仍为对应的0xFFFF,或0x0003,或0x0006。
另外,我做这个的目的是,设想一帧刚从A->B->C->D->E->F路径传输了,这样,以C点为例,在传输完几秒内,这条到F的路径基本上还是有效的。于是,我希望通过RTG_GetNextHop()或类似的API直接从类似路径缓冲中将下一跳地址直接取出,而避免再次通过route request等方式,后者会使网络中多出了部分无线信号。这样,通过在类似路径缓冲区中收集A/B/C/D/E的分别的下一跳地址,就能整理出刚才一帧所走过的节点路径以供展示。
要是TI有这种现成的展示数据帧所经过的节点路径的API或工程例子或方案,那就更好了,不知道有没有?