微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用cooja contiki获取节点的位置

如何解决使用cooja contiki获取节点的位置

我想获取Cooja模拟器中每个节点的位置(x和y坐标)。共有30个节点,类型为“天空节点”。目标是为每个节点构建一个由(ID_node x_coordinate y_coordinate)组成的表。

首先,我试图通过在脚本仿真编辑器中编写以下代码获取每个节点的x坐标:

array = new Array();
for (i = 1; i < 4; i++) {
  array[i] = mote.getInterfaces().getPosition().getXCoordinate();
  log.log(array[i] + "\n");
}

但是我得到了这个结果:

59.09635997249024
59.09635997249024
59.09635997249024

所有这些数字都是ID为2的特定节点的x坐标。请帮助我获取Cooja中所有节点的x和y坐标?

解决方法

您应该遍历模拟中的所有节点,并将X和Y坐标保存在数组中。以下代码将坐标保存在数组中并打印出来:

 array = new Array();
 motes = sim.getMotes();
 for(var i = 0; i < motes.length; i++){
     var m = motes[i];
     var x = m.getInterfaces().getPosition().getXCoordinate();
     var y = m.getInterfaces().getPosition().getYCoordinate();
     var id = m.getID();
     array[i] = {id:id,x:x,y:y};
     log.log(id + " " + x + " " + y + "\n");
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。