|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
25 #include <ns3/building-position-allocator.h>
26 #include <ns3/mobility-building-info.h>
27 #include <ns3/constant-position-mobility-model.h>
28 #include <ns3/mobility-model.h>
29 #include <ns3/building.h>
30 #include <ns3/buildings-helper.h>
31 #include <ns3/mobility-helper.h>
32 #include <ns3/simulator.h>
41 Room (uint32_t xx, uint32_t yy, uint32_t zz);
58 || ( (a.
x == b.
x) && (a.
y < b.
y) )
59 || ( (a.
x == b.
x) && (a.
y == b.
y) && (a.
z < b.
z) ));
70 virtual void DoRun (
void);
76 :
TestCase (
"RandomRoom, 12 rooms, 24 nodes")
98 mobility.SetMobilityModel (
"ns3::ConstantPositionMobilityModel");
100 mobility.SetPositionAllocator (positionAlloc);
102 BuildingsHelper::Install (
nodes);
104 std::map<Room, uint32_t> roomCounter;
109 NS_ASSERT_MSG (mm,
"no mobility model aggregated to this node");
111 NS_ASSERT_MSG (bmm,
"MobilityBuildingInfo has not been aggregated to this node mobility model");
127 for (std::map<Room, uint32_t>::iterator it = roomCounter.begin (); it != roomCounter.end (); ++it)
137 Simulator::Destroy ();
150 virtual void DoRun (
void);
178 mobility.SetMobilityModel (
"ns3::ConstantPositionMobilityModel");
180 mobility.SetPositionAllocator (positionAlloc);
182 BuildingsHelper::Install (
nodes);
186 positionAlloc = CreateObject<SameRoomPositionAllocator> (
nodes);
187 mobility.SetPositionAllocator (positionAlloc);
189 BuildingsHelper::Install (copyNodes);
191 std::map<Room, uint32_t> roomCounter;
196 NS_ASSERT_MSG (mm,
"no mobility model aggregated to this node");
198 NS_ASSERT_MSG (bmm,
"MobilityBuildingInfo has not been aggregated to this node mobility model");
205 for (std::map<Room, uint32_t>::iterator it = roomCounter.begin (); it != roomCounter.end (); ++it)
213 Simulator::Destroy ();
229 :
TestSuite (
"building-position-allocator", UNIT)
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
virtual void DoRun(void)
Implementation to actually run this TestCase.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
uint8_t GetRoomNumberX(void)
Get the room number along x-axis at which the MobilityBuildingInfo instance is located.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
void SetNRoomsX(uint16_t nroomx)
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
Smart pointer class similar to boost::intrusive_ptr.
static BuildingPositionAllocatorTestSuite buildingsPositionAllocatorTestSuiteInstance
uint8_t GetFloorNumber(void)
Get the floor number at which the MobilityBuildingInfo instance is located.
mobility buildings information (to be used by mobility models)
Iterator Begin(void) const
Get an iterator which refers to the first Node in the container.
void SetBoundaries(Box box)
Set the boundaries of the building.
#define NS_TEST_ASSERT_MSG_LT(actual, limit, msg)
Test that an actual value is less than a limit and report and abort if not.
uint8_t GetRoomNumberY(void)
Get the room number along y-axis at which the MobilityBuildingInfo instance is located.
void SetNRoomsY(uint16_t nroomy)
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
virtual void DoRun(void)
Implementation to actually run this TestCase.
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
RandomRoomPositionAllocatorTestCase()
std::vector< Ptr< Node > >::const_iterator Iterator
Node container iterator.
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
SameRoomPositionAllocatorTestCase()
#define NS_TEST_ASSERT_MSG_GT(actual, limit, msg)
Test that an actual value is greater than a limit and report and abort if not.
Room(uint32_t xx, uint32_t yy, uint32_t zz)
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Keep track of the current position and velocity of an object.
keep track of a set of node pointers.
Iterator End(void) const
Get an iterator which indicates past-the-last Node in the container.
bool operator<(const Length &l, const Length &r)
Check if l has a value less than r.
bool IsIndoor(void)
Is indoor method.
Vector GetPosition(void) const
Helper class used to assign positions and mobility models to nodes.
BuildingPositionAllocatorTestSuite()
void SetNFloors(uint16_t nfloors)