29 #include <ns3/core-module.h> 30 #include <ns3/lr-wpan-module.h> 31 #include <ns3/propagation-loss-model.h> 32 #include <ns3/propagation-delay-model.h> 33 #include <ns3/simulator.h> 34 #include <ns3/single-model-spectrum-channel.h> 35 #include <ns3/constant-position-mobility-model.h> 36 #include <ns3/packet.h> 75 int main (
int argc,
char *argv[])
82 cmd.AddValue (
"verbose",
"turn on all log components",
verbose);
83 cmd.AddValue (
"extended",
"use extended addressing",
extended);
85 cmd.Parse (argc, argv);
120 channel->AddPropagationLossModel (propModel);
121 channel->SetPropagationDelayModel (delayModel);
128 n1->AddDevice (dev1);
136 dev0->GetPhy ()->SetMobility (sender0Mobility);
140 dev1->GetPhy ()->SetMobility (sender1Mobility);
144 dev0->GetMac ()->SetMcpsDataConfirmCallback (cb0);
148 dev0->GetMac ()->SetMcpsDataIndicationCallback (cb1);
152 dev1->GetMac ()->SetMcpsDataConfirmCallback (cb2);
156 dev1->GetMac ()->SetMcpsDataIndicationCallback (cb3);
159 lrWpanHelper.
EnablePcapAll (std::string (
"lr-wpan-data"),
true);
180 params.m_dstExtAddr =
Mac64Address (
"00:00:00:00:00:00:00:02");
182 params.m_msduHandle = 0;
187 dev0->GetMac (), params, p0);
197 params.m_dstExtAddr =
Mac64Address (
"00:00:00:00:00:00:00:01");
201 dev1->GetMac (), params, p2);
TimeWithUnit As(const enum Unit unit=Time::AUTO) const
Attach a unit to a Time, to facilitate output in a specific unit.
uint16_t m_dstPanId
Destination PAN identifier.
Simulation virtual time values and global simulation resolution.
Manage ASCII trace files for device models.
static std::string LrWpanPhyEnumerationPrinter(LrWpanPhyEnumeration e)
Transform the LrWpanPhyEnumeration enumeration into a printable string.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
static void Run(void)
Run the simulation.
static void StateChangeNotification(std::string context, Time now, LrWpanPhyEnumeration oldState, LrWpanPhyEnumeration newState)
Function called when a the PHY state changes.
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. ...
void McpsDataRequest(McpsDataRequestParams params, Ptr< Packet > p)
IEEE 802.15.4-2006, section 7.1.1.1 MCPS-DATA.request Request to transfer a MSDU. ...
virtual void SetAddress(Address address)
This method indirects to LrWpanMac::SetShortAddress ()
static void DataIndication(McpsDataIndicationParams params, Ptr< Packet > p)
Function called when a Data indication is invoked.
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 ...
MCPS-DATA.confirm params.
Parse command-line arguments.
static void Destroy(void)
Execute the events scheduled with ScheduleDestroy().
static void ScheduleWithContext(uint32_t context, Time const &delay, FUNC f, Ts &&... args)
Schedule an event with the given context.
LrWpanMcpsDataConfirmStatus m_status
The status of the last MSDU transmission.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
#define NS_LOG_UNCOND(msg)
Output the requested message unconditionally.
This class can contain 16 bit addresses.
void SetPosition(const Vector &position)
void SetExtendedAddress(Mac64Address address)
Set the extended address of this MAC.
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node.
Time Seconds(double value)
Construct a Time in the indicated unit.
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...
LrWpanPhyEnumeration
IEEE802.15.4-2006 PHY Emumerations Table 18 in section 6.2.3.
MCPS-DATA.request params.
helps to manage and create IEEE 802.15.4 NetDevice objects
void EnableLogComponents(void)
Helper to enable all LrWpan log components with one statement.
static void DataConfirm(McpsDataConfirmParams params)
Function called when a Data confirm is invoked.
Callback< R, Ts... > MakeCallback(R(T::*memPtr)(Ts...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
MCPS-DATA.indication params.