21 #include "ns3/uan-net-device.h"
22 #include "ns3/uan-channel.h"
23 #include "ns3/uan-mac-aloha.h"
24 #include "ns3/uan-phy-gen.h"
25 #include "ns3/uan-transducer-hd.h"
26 #include "ns3/uan-prop-model-ideal.h"
27 #include "ns3/constant-position-mobility-model.h"
28 #include "ns3/simulator.h"
31 #include "ns3/object-factory.h"
32 #include "ns3/pointer.h"
33 #include "ns3/callback.h"
42 virtual void DoRun (
void);
46 uint32_t DoOnePhyTest (
Time t1,
Time t2, uint32_t r1, uint32_t r2,
Ptr<UanPropModel> prop, uint32_t mode1 = 0, uint32_t mode2 = 0);
86 mobility->SetPosition (pos);
87 node->AggregateObject (mobility);
88 mac->SetAddress (UanAddress::Allocate ());
92 dev->SetChannel (chan);
93 dev->SetTransducer (trans);
94 node->AddDevice (dev);
123 Simulator::Stop (Seconds (20.0));
125 Simulator::Destroy ();
136 UanTxMode mode = UanTxModeFactory::CreateMode (UanTxMode::FSK, 80, 80, 10000, 4000, 2,
"TestMode");
149 34,
"Should have received 34 bytes from 2 disjoint packets");
153 0,
"Expected collision resulting in loss of both packets");
163 #ifdef UAN_PROP_BH_INSTALLED
165 #endif // UAN_PROP_BH_INSTALLED
169 34,
"Should have received 34 bytes from 2 disjoint packets");
173 17,
"Should have recieved 17 bytes from first arriving packet");
177 0,
"Packets should collide, but received data");
180 UanTxMode mode00 = UanTxModeFactory::CreateMode (UanTxMode::FSK, 80, 80, 10000, 4000, 2,
"TestMode00");
181 UanTxMode mode10 = UanTxModeFactory::CreateMode (UanTxMode::FSK, 80, 80, 11000, 4000, 2,
"TestMode10");
182 UanTxMode mode20 = UanTxModeFactory::CreateMode (UanTxMode::FSK, 80, 80, 15000, 4000, 2,
"TestMode20");
183 UanTxMode mode01 = UanTxModeFactory::CreateMode (UanTxMode::FSK, 80, 80, 10000, 4000, 2,
"TestMode01");
184 UanTxMode mode11 = UanTxModeFactory::CreateMode (UanTxMode::FSK, 80, 80, 11000, 4000, 2,
"TestMode11");
185 UanTxMode mode21 = UanTxModeFactory::CreateMode (UanTxMode::FSK, 80, 80, 15000, 4000, 2,
"TestMode21");
203 34,
"Expected no collision");
206 0,
"Expected collision with both packets lost");
209 17,
"Expected collision with only one packets lost");
212 34,
"Expected no collision");
215 34,
"Expected no collision");
226 double error = per->
CalcPer (pkt, 9, UanPhyGen::GetDefaultModes ()[0]);
229 #ifdef UAN_PROP_BH_INSTALLED
232 BellhopResp resp = propBh->GetResp (10000, 50, 50, 1000);
238 #endif // UAN_PROP_BH_INSTALLED
keep track of time values and allow control of global simulation resolution
virtual void SetReceiveCallback(NetDevice::ReceiveCallback cb)
smart pointer class similar to boost::intrusive_ptr
#define NS_TEST_ASSERT_MSG_EQ_TOL(actual, limit, tol, msg)
Test that actual and expected (limit) values are equal to plus or minus some tolerance and report and...
void SetTypeId(TypeId tid)
uint32_t GetSize(void) const
Container for UanTxModes.
virtual bool Send(Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
virtual void DoRun(void)
Implementation to actually run this TestCase.
virtual Address GetBroadcast(void) const
a polymophic address class
Ptr< Object > Create(void) const
void SendOnePacket(Ptr< UanNetDevice > dev, uint32_t mode)
Abstraction of packet modulation information.
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
Ptr< UanNetDevice > CreateNode(Vector pos, Ptr< UanChannel > chan)
bool RxPacket(Ptr< NetDevice > dev, Ptr< const Packet > pkt, uint16_t mode, const Address &sender)
uint32_t DoOnePhyTest(Time t1, Time t2, uint32_t r1, uint32_t r2, Ptr< UanPropModel > prop, uint32_t mode1=0, uint32_t mode2=0)
static UanTestSuite g_uanTestSuite
virtual double CalcPer(Ptr< Packet > pkt, double sinrDb, UanTxMode mode)
Calculate the packet error probability based on SINR at the receiver and a tx mode.
void Set(std::string name, const AttributeValue &value)
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual child TestCase case to this TestCase.
Base class for UAN Phy models.
instantiate subclasses of ns3::Object.
void AppendMode(UanTxMode mode)
Add mode to this list.
#define NS_TEST_ASSERT_MSG_EQ_RETURNS_BOOL(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
void SetAttribute(std::string name, const AttributeValue &value)
Attribute Value class for UanTxModes.