我正在尝试模拟一个以圆形轨迹移动的节点,该节点正在接收来自 4 个静止节点的数据。模拟在旧版本 (1.6) 上运行良好,但在 3.1.0 上不起作用。没有错误并且模拟正在完成,但是没有数据包被发送或接收。这两个版本在语法或模型方面是否有任何重大差异,因为没有发生数据包传输?这些代码是为旧版本编写的。
'''
if(addr==31)
{
add new WakerBehavior(2200, {
phy[1].powerLevel = -35.dB; // must be non- positive
phy[2].powerLevel = -35.dB;
phy << new ClearReq()
phy << new DatagramReq(to: 21 ,data : neighbouraddr1 , protocol:cluster_protocol)
println "data sent by 31 to 21"
})
'''
这是其中一个固定节点的代码片段。同样,我们有其他 3 个节点的代码。
'''
void processMessage(Message msg) {
if(addr == 21)
{
if (msg instanceof DatagramNtf && msg.protocol == cluster_protocol && ( msg.from == 31 || msg.from == 32 || msg.from == 33 || msg.from == 34 || msg.from == 35) ) //notfication recieved
{
println "message processed in address:"+addr
println "DATA Received by ${addr} from ${msg.from}, DATA VALUE is ${msg.data}"
collectB.addAll(msg.data)
println "now total value is ${collectB}"
}
}
'''
我们用它来合并节点 B 收到的消息。