получить позицию узла с помощью cooja contiki

Я хочу получить положение (координаты x и y) каждого узла в симуляторе Cooja. Всего имеется 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

Все эти числа являются координатами x для конкретного узла с ID 2. Пожалуйста, не могли бы вы помочь мне получить координаты x и y для всех узлов в Cooja?

1 ответ

Вы должны перебрать все узлы в симуляции и сохранить координаты 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");
  }
Другие вопросы по тегам