使用cooja contiki获取节点位置

问题描述 投票:0回答:2

我想获取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 坐标吗?

javascript contiki cooja contiki-process
2个回答
0
投票

您应该迭代模拟中的所有节点并将 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");
  }

0
投票

你能给我完整的C文件,以获取位置吗?

© www.soinside.com 2019 - 2024. All rights reserved.