From: adrien gougeon Date: Tue, 20 Oct 2020 11:37:06 +0000 (+0200) Subject: added circle placement for ns3 wifi nodes X-Git-Tag: v3.26~5^2~13 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/4b0fa756ae6e58a74c374a519389ecb9e8b6a4d9?hp=cce6ab4f4fb2bbc73b9d440c72ded7eb9be95f3d added circle placement for ns3 wifi nodes --- diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index dd866f2585..ba00493977 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -150,7 +150,7 @@ static void zoneCreation_cb(simgrid::s4u::NetZone const& zone) { mobility.SetMobilityModel("ns3::ConstantPositionMobilityModel"); ns3::Ptr positionAllocS = ns3::CreateObject(); - positionAllocS->Add(ns3::Vector(0, 0, 0)); + positionAllocS->Add(ns3::Vector(0, 0, 255 * 100 * number_of_networks + 100 * number_of_links)); ns3::NetDeviceContainer netDevices; NetPointNs3* access_point_netpoint_ns3 = wifizone->get_access_point()->extension(); @@ -166,14 +166,18 @@ static void zoneCreation_cb(simgrid::s4u::NetZone const& zone) { NetPointNs3* station_netpoint_ns3 = nullptr; ns3::Ptr station_ns3_node = nullptr; - const char* distance; + double distance; + double angle = 0; + int nb_stations = wifizone->get_all_hosts().size() - 1; + double step = 2 * M_PI / nb_stations; for (auto station_host : wifizone->get_all_hosts()) { station_netpoint_ns3 = station_host->get_netpoint()->extension(); if (station_netpoint_ns3 == access_point_netpoint_ns3) continue; hosts_netpoints.push_back(station_netpoint_ns3); - distance = station_host->get_property("wifi_distance"); - positionAllocS->Add(ns3::Vector(distance ? atof(distance) : 10.0, 0, 0)); + distance = station_host->get_property("wifi_distance") ? atof(station_host->get_property("wifi_distance")) : 10.0; + positionAllocS->Add(ns3::Vector(distance * std::cos(angle), distance * std::sin(angle), 255 * 100 * number_of_networks + 100 * number_of_links)); + angle += step; station_ns3_node = station_netpoint_ns3->ns3_node_; nodes.Add(station_ns3_node); netDevices.Add(wifi.Install(wifiPhy, wifiMac, station_ns3_node));