官方淘宝店 易迪拓培训 旧站入口
首页 > 无线通信 > 通信技术学习讨论 > 一个关于TinyOS的问题

一个关于TinyOS的问题

12-16
写了一个简单的send/receive的程序,设定一个source node和一个destination node,从source node发送一个package,用broadcast,每个收到的sensor node先判断自己是不是destination node,如果不是,就forward这个package,如果是destination node就把package里面的type改掉,交换source 和destination address,再把这个package发回去,同样是broadcast。
我现在遇到的问题是,source node假设发了40个package,destination node全部能收到,而且全发回了改过的package,可是source node只能接到一部分返回来的package,比例和node的个数有关。如果是broadcast的时候有drop掉的package,为啥只drop发回来的呢?
实在是想不出为啥,大家给点意见把

你有没有把bcast包里的seqno更新?如果收到seqno相同的包,会当作同一个包扔掉。

我在source node的程序里面专门有个变量是用来记录seqno的,就是接受到一个package就记录它的seqno,再收到比较seqno,如果小于等于变量记录的,就drop,不处理,如果大于才处理

bcast库处理seqno的地方有个bug,最好把 bseqno++; 那句改成 bseqno = proposed

Top