//Install mobility model for the UEs mobility.SetPositionAllocator ("ns3::GridPositionAllocator", "MinX", DoubleValue (0.0), "MinY", DoubleValue (0.0), "DeltaX", DoubleValue (10.0), "DeltaY", DoubleValue (20.0), "GridWidth", UintegerValue (3), "LayoutType", StringValue ("RowFirst")); mobility.SetMobilityModel ("ns3::RandomWalk2dMobilityModel", "Bounds", RectangleValue (Rectangle (-50, 50, -50, 50))); mobility.Install(ueNodes); //Install waypoint based mobility to the last UE in container
mobility.SetMobilityModel("ns3::WaypointMobilityModel"); Ptr<WaypointMobilityModel> ueWaypointMobility = CreateObject<WaypointMobilityModel>(); ueWaypointMobility->SetPosition(Vector (10.0, 10, 0.0));
ueWaypointMobility->AddWaypoint(Waypoint(Seconds(1.0),Vector(10.0,9,0))); ueWaypointMobility->AddWaypoint(Waypoint(Seconds(2.0), Vector(10.0,8,0))); ueWaypointMobility->AddWaypoint (Waypoint (Seconds (3.0),Vector (10.0, 7, 0))); ueWaypointMobility->AddWaypoint(Waypoint (Seconds (4.0),Vector (10.0, 6,0))); mobility.Install(ueNodes.Get(numberOfUEs-1));
//Install mobility model for the UEs mobility.SetPositionAllocator ("ns3::GridPositionAllocator", "MinX", DoubleValue (0.0), "MinY", DoubleValue (0.0), "DeltaX", DoubleValue (10.0), "DeltaY", DoubleValue (20.0), "GridWidth", UintegerValue (3), "LayoutType", StringValue ("RowFirst")); mobility.SetMobilityModel ("ns3::RandomWalk2dMobilityModel", "Bounds", RectangleValue (Rectangle (-50, 50, -50, 50)));
mobility.Install(ueNodes.Get(0));
//Install waypoint based mobility to the last UE in container mobility.SetMobilityModel("ns3::WaypointMobilityModel"); Ptr<WaypointMobilityModel> ueWaypointMobility = CreateObject<WaypointMobilityModel>(); ueWaypointMobility->SetPosition(Vector (10.0, 10, 0.0));
ueWaypointMobility->AddWaypoint(Waypoint(Seconds(1.0),Vector(10.0,9,0))); ueWaypointMobility->AddWaypoint(Waypoint(Seconds(2.0), Vector(10.0,8,0))); ueWaypointMobility->AddWaypoint (Waypoint (Seconds (3.0),Vector (10.0, 7, 0))); ueWaypointMobility->AddWaypoint(Waypoint (Seconds (4.0),Vector (10.0, 6,0)));
ueNodes.Get(numberOfUEs-1)->AggregateObject(ueWaypointMobility); mobility.Install(ueNodes.Get(1));
No, I do not think it is 100% correct.I would recommend something like this:
//Install waypoint based mobility to the last UE in container
mobility.SetMobilityModel("ns3::WaypointMobilityModel");
mobility.Install(ueNodes.Get(1));
Now node_1 has a Waypoint installed but without any waypoints.Get a smart pointer from that mobility model from that node. This does not create a new mobility model, it is just the one installed on your node; hence pointer! We can not get directly the Waypoint model, but the basic abstract mobility model, which then we 'cast' to waypoint.
Ptr<WaypointMobilityModel> ueWaypointMobility = DynamicCast<WaypointMobilityModel>( ueNodes.Get(1)->GetObject<MobilityModel>());
then you can add the waypoints.
No, I do not think it is 100% correct.I would recommend something like this:
//Install waypoint based mobility to the last UE in container
mobility.SetMobilityModel("ns3::WaypointMobilityModel");
mobility.Install(ueNodes.Get(1));
Now node_1 has a Waypoint installed but without any waypoints.Get a smart pointer from that mobility model from that node. This does not create a new mobility model, it is just the one installed on your node; hence pointer! We can not get directly the Waypoint model, but the basic abstract mobility model, which then we 'cast' to waypoint.
Ptr<WaypointMobilityModel> ueWaypointMobility = DynamicCast<WaypointMobilityModel>( ueNodes.Get(1)->GetObject<MobilityModel>());
then you can add the waypoints.
ueWaypointMobility->AddWaypoint(Waypoint(Seconds(1.0),Vector(10.0,9,0)));
ueWaypointMobility->AddWaypoint(Waypoint(Seconds(2.0), Vector(10.0,8,0)));
ueWaypointMobility->AddWaypoint (Waypoint (Seconds (3.0),Vector (10.0, 7, 0)));
ueWaypointMobility->AddWaypoint(Waypoint (Seconds (4.0),Vector (10.0, 6,0)));
On Monday, April 7, 2014 6:23:27 PM UTC+1, Tiago Cerqueira wrote:
//Install waypoint based mobility to the last UE in container
mobility.SetMobilityModel("ns3::WaypointMobilityModel");
mobility.Install(ueNodes.Get(1));
Ptr<WaypointMobilityModel> ueWaypointMobility = DynamicCast<WaypointMobilityModel>( ueNodes.Get(1)->GetObject<MobilityModel>());
ueWaypointMobility->AddWaypoint(Waypoint(Seconds(1.0),Vector(10.0,9,0)));
ueWaypointMobility->AddWaypoint(Waypoint(Seconds(2.0), Vector(10.0,8,0)));
ueWaypointMobility->AddWaypoint (Waypoint (Seconds (3.0),Vector (10.0, 7, 0)));
ueWaypointMobility->AddWaypoint(Waypoint (Seconds (4.0),Vector (10.0, 6,0)));