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 
Simulation virtual time values and global simulation resolution. 
virtual void SetReceiveCallback(NetDevice::ReceiveCallback cb)
Smart pointer class similar to boost::intrusive_ptr. 
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory. 
uint32_t GetSize(void) const 
Returns the the size in bytes of the packet (including the zero-filled initial payload). 
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 
#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 AddTestCase(TestCase *testCase, enum TestDuration duration)
Add an individual child TestCase to this test suite. 
Ptr< Object > Create(void) const 
Create an Object instance of the configured TypeId. 
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)
#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...
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)
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
Hold objects of type Ptr. 
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)
Set an attribute to be set during construction. 
void SendOnePacket(Ptr< LrWpanPhy > sender, Ptr< LrWpanPhy > receiver)
Base class for UAN Phy models. 
Instantiate subclasses of ns3::Object. 
Time Seconds(double value)
Construct a Time in the indicated unit. 
void AppendMode(UanTxMode mode)
Add mode to this list. 
const double m1
First component modulus, 232 - 209. 
void SetAttribute(std::string name, const AttributeValue &value)
Set a single attribute, raising fatal errors if unsuccessful. 
AttributeValue implementation for UanModesList.