在此之后,我用函数runicast_send发送不同的runicast消息,如何理解触发回调sent_runicast时确认了哪条消息?
runicast.h文件声明:
runicast原语添加了两个数据包属性:单跳数据包类型和单跳数据包ID,runicast原语使用数据包ID属性作为序列号,将确认包与相应的数据包进行匹配。
但我不知道如何在实践中做到这一点。有人能举个例子吗?
发布于 2017-07-24 14:15:30
一种方法是在发送数据包之前查看sndnxt of struct runicast_conn *c字段,然后在代码的“发送”回调中比较packetbuf_attr(PACKETBUF_ATTR_PACKET_ID)的值。
但是,请注意,默认情况下,runicast数据包ID只有2位长。在大多数情况下足以破译ACK,但可能不足以满足您的需要。(可以通过重新定义RUNICAST_PACKET_ID_BITS来更改比特中的数据包ID大小。)
而且Rime已经过时了。不要在您的代码中使用它,特别是产品代码,除非您知道自己在做什么。runicast从来不是Rime的亮点之一,我怀疑您想要做的事情没有更好的替代方案(例如uIPv6堆栈)。
https://stackoverflow.com/questions/45266612
复制相似问题