10 #include "ns3/simulator.h" |
10 #include "ns3/simulator.h" |
11 #include "ns3/nstime.h" |
11 #include "ns3/nstime.h" |
12 #include "ns3/node.h" |
12 #include "ns3/node.h" |
13 #include "ns3/node-list.h" |
13 #include "ns3/node-list.h" |
14 #include "ns3/mobility-helper.h" |
14 #include "ns3/mobility-helper.h" |
|
15 #include "ns3/string.h" |
15 |
16 |
16 using namespace ns3; |
17 using namespace ns3; |
17 |
18 |
18 static void |
19 static void |
19 CourseChange (ns3::TraceContext const&, Ptr<const MobilityModel> mobility) |
20 CourseChange (ns3::TraceContext const&, Ptr<const MobilityModel> mobility) |
42 } |
43 } |
43 |
44 |
44 MobilityHelper mobility; |
45 MobilityHelper mobility; |
45 mobility.EnableNotifier (); |
46 mobility.EnableNotifier (); |
46 mobility.SetPositionAllocator ("RandomDiscPositionAllocator", |
47 mobility.SetPositionAllocator ("RandomDiscPositionAllocator", |
47 "X", "100.0", |
48 "X", String ("100.0"), |
48 "Y", "100.0", |
49 "Y", String ("100.0"), |
49 "Rho", "Uniform:0:30"); |
50 "Rho", String ("Uniform:0:30")); |
50 mobility.SetMobilityModel ("RandomWalk2dMobilityModel", |
51 mobility.SetMobilityModel ("RandomWalk2dMobilityModel", |
51 "Mode", "Time", |
52 "Mode", String ("Time"), |
52 "Time", "2s", |
53 "Time", String ("2s"), |
53 "Speed", "Constant:1.0", |
54 "Speed", String ("Constant:1.0"), |
54 "Bounds", "0:200:0:100"); |
55 "Bounds", String ("0:200:0:100")); |
55 mobility.Layout (NodeList::Begin (), NodeList::End ()); |
56 mobility.Layout (NodeList::Begin (), NodeList::End ()); |
56 NodeList::Connect ("/nodes/*/$MobilityModelNotifier/course-change", |
57 NodeList::Connect ("/nodes/*/$MobilityModelNotifier/course-change", |
57 MakeCallback (&CourseChange)); |
58 MakeCallback (&CourseChange)); |
58 |
59 |
59 Simulator::StopAt (Seconds (100.0)); |
60 Simulator::StopAt (Seconds (100.0)); |