21 #include "ns3/command-line.h" 22 #include "ns3/config.h" 23 #include "ns3/boolean.h" 24 #include "ns3/string.h" 25 #include "ns3/yans-wifi-helper.h" 27 #include "ns3/mobility-helper.h" 28 #include "ns3/on-off-helper.h" 29 #include "ns3/yans-wifi-channel.h" 30 #include "ns3/mobility-model.h" 31 #include "ns3/packet-socket-helper.h" 32 #include "ns3/packet-socket-address.h" 33 #include "ns3/athstats-helper.h" 44 std::cout <<
" TX p: " << *p << std::endl;
52 std::cout <<
" RX p: " << *p << std::endl;
60 std::cout <<
"PHYRXOK mode=" << mode <<
" snr=" << snr <<
" " << *packet << std::endl;
68 std::cout <<
"PHYRXERROR snr=" << snr <<
" " << *packet << std::endl;
76 std::cout <<
"PHYTX mode=" << mode <<
" " << *packet << std::endl;
84 std::cout <<
" state=" << state <<
" start=" <<
start <<
" duration=" << duration << std::endl;
116 int main (
int argc,
char *argv[])
119 cmd.AddValue (
"verbose",
"Print trace information if true",
g_verbose);
120 cmd.Parse (argc, argv);
143 wifi.SetRemoteStationManager (
"ns3::ArfWifiManager");
145 wifiMac.
SetType (
"ns3::StaWifiMac",
148 staDevs =
wifi.Install (wifiPhy, wifiMac, stas);
150 wifiMac.
SetType (
"ns3::ApWifiMac",
152 wifi.Install (wifiPhy, wifiMac, ap);
162 socket.SetPhysicalAddress (staDevs.
Get (1)->GetAddress ());
163 socket.SetProtocol (1);
166 onoff.SetConstantRate (
DataRate (
"500kb/s"));
holds a vector of ns3::Application pointers.
Ptr< NetDevice > Get(uint32_t i) const
Get the Ptr<NetDevice> stored in this container at a given index.
Simulation virtual time values and global simulation resolution.
AttributeValue implementation for Boolean.
static void AdvancePosition(Ptr< Node > node)
Make it easy to create and manage PHY objects for the yans model.
static YansWifiChannelHelper Default(void)
Create a channel helper in a default working state.
void DevTxTrace(std::string context, Ptr< const Packet > p)
an address for a packet socket
static void Run(void)
Run the simulation.
void PhyRxErrorTrace(std::string context, Ptr< const Packet > packet, double snr)
static YansWifiPhyHelper Default(void)
Create a phy helper in a default working state.
helps to create WifiNetDevice objects
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
static Vector GetPosition(Ptr< Node > node)
A helper to make it easier to instantiate an ns3::OnOffApplication on a set of nodes.
Give ns3::PacketSocket powers to ns3::Node.
void SetSingleDevice(uint32_t device)
Set the address to match only a specified NetDevice.
static void SetPosition(Ptr< Node > node, Vector position)
a polymophic address class
Ptr< YansWifiChannel > Create(void) const
void PhyStateTrace(std::string context, Time start, Time duration, WifiPhyState state)
Class for representing data rates.
WifiPreamble
The type of preamble to be used by an IEEE 802.11 transmission.
Keep track of the current position and velocity of an object.
void SetChannel(Ptr< YansWifiChannel > channel)
static EventId Schedule(Time const &delay, MEM mem_ptr, OBJ obj)
Schedule an event to expire after delay.
static void EnablePrinting(void)
Enable printing packets metadata.
holds a vector of ns3::NetDevice pointers
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
void PhyRxOkTrace(std::string context, Ptr< const Packet > packet, double snr, WifiMode mode, WifiPreamble preamble)
void Start(Time start)
Arrange for all of the Applications in this container to Start() at the Time given as a parameter...
Parse command-line arguments.
void Connect(std::string path, const CallbackBase &cb)
static void Destroy(void)
Execute the events scheduled with ScheduleDestroy().
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
void DevRxTrace(std::string context, Ptr< const Packet > p)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
keep track of a set of node pointers.
void PhyTxTrace(std::string context, Ptr< const Packet > packet, WifiMode mode, WifiPreamble preamble, uint8_t txPower)
create AthstatsWifiTraceSink instances and connect them to wifi devices
WifiPhyState
The state of the PHY layer.
manage and create wifi channel objects for the yans model.
create MAC layers for a ns3::WifiNetDevice.
void EnableAthstats(std::string filename, uint32_t nodeid, uint32_t deviceid)
Enable athstats.
The IEEE 802.11 SSID Information Element.
virtual void SetType(std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue(), std::string n10="", const AttributeValue &v10=EmptyAttributeValue())
Helper class used to assign positions and mobility models to nodes.
void Stop(Time stop)
Arrange for all of the Applications in this container to Stop() at the Time given as a parameter...
static void Stop(void)
Tell the Simulator the calling event should be the last one executed.
Time Seconds(double value)
Construct a Time in the indicated unit.
AttributeValue implementation for Ssid.
Ptr< Node > Get(uint32_t i) const
Get the Ptr<Node> stored in this container at a given index.
void Install(Ptr< Node > node) const
Aggregate an instance of a ns3::PacketSocketFactory onto the provided node.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.