29#include "ns3/callback.h"
30#include "ns3/command-line.h"
31#include "ns3/constant-position-mobility-model.h"
32#include "ns3/gnuplot.h"
34#include "ns3/lr-wpan-error-model.h"
35#include "ns3/lr-wpan-mac.h"
36#include "ns3/lr-wpan-net-device.h"
37#include "ns3/lr-wpan-spectrum-value-helper.h"
38#include "ns3/mac16-address.h"
39#include "ns3/multi-model-spectrum-channel.h"
40#include "ns3/net-device.h"
42#include "ns3/nstime.h"
43#include "ns3/packet.h"
44#include "ns3/propagation-loss-model.h"
45#include "ns3/simulator.h"
46#include "ns3/single-model-spectrum-channel.h"
47#include "ns3/spectrum-value.h"
49#include "ns3/uinteger.h"
77 std::ostringstream os;
78 std::ofstream
berfile(
"802.15.4-psr-distance.plt");
91 cmd.AddValue(
"txPower",
"transmit power (dBm)",
txPower);
92 cmd.AddValue(
"packetSize",
"packet (MSDU) size (bytes)",
packetSize);
93 cmd.AddValue(
"channelNumber",
"channel number", channelNumber);
99 <<
" dBm; channel = " << channelNumber <<
"; Rx sensitivity = " <<
rxSensitivity <<
" dBm";
113 dev0->SetChannel(channel);
114 dev1->SetChannel(channel);
124 dev0->GetPhy()->SetTxPowerSpectralDensity(psd);
131 dev1->GetMac()->SetMcpsDataIndicationCallback(
cb0);
142 mob0->SetPosition(Vector(0, 0, 0));
156 mob1->SetPosition(Vector(
j, 0, 0));
162 psrplot.SetTerminal(
"postscript eps color enh \"Times-BoldItalic\"");
163 psrplot.SetLegend(
"distance (m)",
"Packet Success Rate (PSR)");
164 psrplot.SetExtra(
"set xrange [0:200]\n\
167 set style line 1 linewidth 5\n\
168 set style increment user");
Parse command-line arguments.
Class to represent a 2D points plot.
a simple class to generate gnuplot-ready plotting commands from a set of datasets.
This class can contain 16 bit addresses.
Smart pointer class similar to boost::intrusive_ptr.
static EventId Schedule(const Time &delay, FUNC f, Ts &&... args)
Schedule an event to expire after delay.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
static void Run()
Run the simulation.
void McpsDataRequest(McpsDataRequestParams params, Ptr< Packet > p) override
IEEE 802.15.4-2006, section 7.1.1.1 MCPS-DATA.request Request to transfer a MSDU.
This class defines all functions to create spectrum model for LrWpan.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Time Seconds(double value)
Construct a Time in the indicated unit.
void LrWpanErrorDistanceCallback(McpsDataIndicationParams params, Ptr< Packet > p)
Function called when a Data indication is invoked.
uint32_t g_packetsReceived
number of packets received
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Callback< R, Args... > MakeCallback(R(T::*memPtr)(Args...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
params
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.
MCPS-DATA.indication params.
MCPS-DATA.request params.
static const uint32_t packetSize
Packet size generated at the AP.