27#include <ns3/constant-position-mobility-model.h>
28#include <ns3/core-module.h>
30#include <ns3/lr-wpan-module.h>
31#include <ns3/packet.h>
32#include <ns3/propagation-delay-model.h>
33#include <ns3/propagation-loss-model.h>
34#include <ns3/simulator.h>
35#include <ns3/single-model-spectrum-channel.h>
60 NS_LOG_UNCOND(
"LrWpanMcpsDataConfirmStatus = " << params.m_status);
82main(
int argc,
char* argv[])
89 cmd.AddValue(
"verbose",
"turn on all log components",
verbose);
90 cmd.AddValue(
"extended",
"use extended addressing",
extended);
92 cmd.Parse(argc, argv);
119 mac0->SetExtendedAddress(
Mac64Address(
"00:00:00:00:00:00:00:01"));
120 mac1->SetExtendedAddress(
Mac64Address(
"00:00:00:00:00:00:00:02"));
126 CreateObject<LogDistancePropagationLossModel>();
128 CreateObject<ConstantSpeedPropagationDelayModel>();
129 channel->AddPropagationLossModel(propModel);
130 channel->SetPropagationDelayModel(delayModel);
132 dev0->SetChannel(channel);
133 dev1->SetChannel(channel);
140 dev0->GetPhy()->TraceConnect(
"TrxState",
143 dev1->GetPhy()->TraceConnect(
"TrxState",
148 CreateObject<ConstantPositionMobilityModel>();
149 sender0Mobility->SetPosition(Vector(0, 0, 0));
150 dev0->GetPhy()->SetMobility(sender0Mobility);
152 CreateObject<ConstantPositionMobilityModel>();
154 sender1Mobility->SetPosition(Vector(0, 10, 0));
155 dev1->GetPhy()->SetMobility(sender1Mobility);
159 dev0->GetMac()->SetMcpsDataConfirmCallback(cb0);
163 dev0->GetMac()->SetMcpsDataIndicationCallback(cb1);
167 dev1->GetMac()->SetMcpsDataConfirmCallback(cb2);
171 dev1->GetMac()->SetMcpsDataIndicationCallback(cb3);
174 lrWpanHelper.
EnablePcapAll(std::string(
"lr-wpan-data"),
true);
void EnableAsciiAll(std::string prefix)
Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes c...
Manage ASCII trace files for device models.
Ptr< OutputStreamWrapper > CreateFileStream(std::string filename, std::ios::openmode filemode=std::ios::out)
Create and initialize an output stream object we'll use to write the traced bits.
Parse command-line arguments.
helps to manage and create IEEE 802.15.4 NetDevice objects
void EnableLogComponents()
Helper to enable all LrWpan log components with one statement.
static std::string LrWpanPhyEnumerationPrinter(lrwpan::PhyEnumeration e)
Transform the LrWpanPhyEnumeration enumeration into a printable string.
This class can contain 16 bit addresses.
void EnablePcapAll(std::string prefix, bool promiscuous=false)
Enable pcap output on each device (which is of the appropriate type) in the set of all nodes created ...
Smart pointer class similar to boost::intrusive_ptr.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
static void ScheduleWithContext(uint32_t context, const Time &delay, FUNC f, Ts &&... args)
Schedule an event with the given context.
static void Run()
Run the simulation.
Simulation virtual time values and global simulation resolution.
TimeWithUnit As(const Unit unit=Time::AUTO) const
Attach a unit to a Time, to facilitate output in a specific unit.
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.
#define NS_LOG_UNCOND(msg)
Output the requested message unconditionally.
PhyEnumeration
IEEE802.15.4-2006 PHY Emumerations Table 18 in section 6.2.3.
@ TX_OPTION_ACK
TX_OPTION_ACK.
Time Seconds(double value)
Construct a Time in the indicated unit.
static void DataConfirm(McpsDataConfirmParams params)
Function called when a Data confirm is invoked.
static void StateChangeNotification(std::string context, Time now, PhyEnumeration oldState, PhyEnumeration newState)
Function called when a the PHY state changes.
static void DataIndication(McpsDataIndicationParams params, Ptr< Packet > p)
Function called when a Data indication is invoked.
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...
FtrParams params
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.
MCPS-DATA.confirm params.
MCPS-DATA.indication params.
MCPS-DATA.request params.