1

我正在尝试模拟一个以圆形轨迹移动的节点,该节点正在接收来自 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 收到的消息。

4

0 回答 0