Может кто-нибудь подсказать команду, чтобы получить расположение узлов?в сетевых симуляторах - PullRequest
0 голосов
/ 20 сентября 2019

Я новичок в сетях, я не знаю, как работать в симуляторах.Мне нужно написать команды, чтобы получить расположение узлов в любом из 10 симуляторов в моем проекте.

1 Ответ

2 голосов
/ 24 сентября 2019

NS2:

#include <mobilenode.h>
// using class MobileNode
MobileNode *msit_node;
double xpos=ypos=zpos=0.0
msit_node=(MobileNode*)(Node::get_node_by_address(index));
((MobileNode*) msit_node)->getLoc(&xpos,&ypos,&zpos);

NS3:

#include "ns3/mobility-module.h"
//GetPosition()
Vector ns3::MobilityModel::GetPosition(void )const
//Vector pos = position->GetPosition ();

NetSim: Проект открытой мобильности ив Mobility.c и перейдите к функции fn_NetSim_Mobility_Run ().Внутри случая по умолчанию добавьте следующие коды

fprintf(stderr,"\n The position of %s at time %.2lfms is X=%.2lf and Y = %.2lf \n",DEVICE_NAME(pstruEventDetails->nDeviceId),
pstruEventDetails->dEventTime,
DEVICE_POSITION(pstruEventDetails->nDeviceId)->X,
DEVICE_POSITION(pstruEventDetails->nDeviceId)->Y);
_getch();

QualNet node.cpp ФАЙЛ NODE-PLACEMENT NODE-PLACEMENT-FILE ./default.nodes

OPNET: Расположение можетбыть просмотренным из атрибутов узла GUI

op_id_self()
op_ima_attr_get(nodeid, "name", &nd_attrG[nodeid].name);
op_ima_attr_get(nodeid, "x position", &nd_attrG[nodeid].x);
op_ima_attr_get(nodeid, "y position", &nd_attrG[nodeid].y);

Cooja:

var x = mote.getInterfaces().getPosition().getXCoordinate();
var y = mote.getInterfaces().getPosition().getYCoordinate()

OMNet ++: Castalia Framework

double x_coor = mobilityModule->getLocation().x;
double y_coor = mobilityModule->getLocation().y; 

JSim:

public java.awt.Point location

Положение узла (координаты слева вверху)

GloMoSim: Глобальная мобильная информационная система имитации Положение узлов присутствует в файле: NODE-ФАЙЛ РАЗМЕЩЕНИЯ Формат: nodeAddr 0 (x, y, z)

...