Javascript 使用cooja contiki获取节点的位置

Javascript 使用cooja contiki获取节点的位置,javascript,contiki,cooja,contiki-process,Javascript,Contiki,Cooja,Contiki Process,我想得到Cooja模拟器中每个节点的位置(x和y坐标)。总共有30个节点,类型为“sky mote”。目标是为每个节点构建一个由(ID_节点x_坐标y_坐标)组成的表 首先,我试图通过在脚本模拟编辑器中编写以下代码来获取每个节点的x坐标: array = new Array(); for (i = 1; i < 4; i++) { array[i] = mote.getInterfaces().getPosition().getXCoordinate(); log.log(arra

我想得到Cooja模拟器中每个节点的位置(x和y坐标)。总共有30个节点,类型为“sky mote”。目标是为每个节点构建一个由(ID_节点x_坐标y_坐标)组成的表

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

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

所有这些数字都是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");
  }
array=newarray();
motes=sim.getMotes();
对于(变量i=0;i
在for循环中,您只需要x坐标。也许您可以将日志更改为以下内容:log.log([mote.getInterfaces().getPosition().getXCoordinate(),mote.getInterfaces().getPosition().getYCoordinate());
 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");
  }