22 #include "ns3/simulator.h"
23 #include "ns3/trace-source-accessor.h"
36 .AddConstructor<WifiPhyStateHelper> ()
37 .AddTraceSource (
"State",
38 "The state of the PHY layer",
40 .AddTraceSource (
"RxOk",
41 "A packet has been received successfully.",
43 .AddTraceSource (
"RxError",
44 "A packet has been received unsuccessfully.",
46 .AddTraceSource (
"Tx",
"Packet transmission is starting.",
54 m_endTx (Seconds (0)),
55 m_endRx (Seconds (0)),
56 m_endCcaBusy (Seconds (0)),
57 m_endSwitching (Seconds (0)),
58 m_startTx (Seconds (0)),
59 m_startRx (Seconds (0)),
60 m_startCcaBusy (Seconds (0)),
61 m_startSwitching (Seconds (0)),
62 m_previousStateChangeTime (Seconds (0))
142 retval = Seconds (0);
146 retval = Seconds (0);
149 retval =
Max (retval, Seconds (0));
190 (*i)->NotifyTxStart (duration);
198 (*i)->NotifyRxStart (duration);
206 (*i)->NotifyRxEndOk ();
214 (*i)->NotifyRxEndError ();
222 (*i)->NotifyMaybeCcaBusyStart (duration);
230 (*i)->NotifySwitchingStart (duration);
258 m_txTrace (packet, txMode, preamble, txPower);
keep track of time values and allow control of global simulation resolution
void DoSwitchFromRx(void)
Time GetStateDuration(void)
#define NS_LOG_FUNCTION(parameters)
TracedCallback< Time, Time, enum WifiPhy::State > m_stateLogger
void SwitchToChannelSwitching(Time switchingDuration)
#define NS_ASSERT(condition)
void NotifyRxEndError(void)
void SetReceiveOkCallback(WifiPhy::RxOkCallback callback)
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
#define NS_FATAL_ERROR(msg)
fatal error handling
void SwitchToTx(Time txDuration, Ptr< const Packet > packet, WifiMode txMode, WifiPreamble preamble, uint8_t txPower)
Time GetDelayUntilIdle(void)
TracedCallback< Ptr< const Packet >, double, WifiMode, enum WifiPreamble > m_rxOkTrace
bool IsStateSwitching(void)
void NotifyTxStart(Time duration)
receive notifications about phy events.
void NotifySwitchingStart(Time duration)
NS_OBJECT_ENSURE_REGISTERED(AntennaModel)
Time m_previousStateChangeTime
void SetReceiveErrorCallback(WifiPhy::RxErrorCallback callback)
void NotifyMaybeCcaBusyStart(Time duration)
WifiPhy::RxErrorCallback m_rxErrorCallback
int64x64_t Max(const int64x64_t &a, const int64x64_t &b)
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
void SwitchFromRxEndError(Ptr< const Packet > packet, double snr)
void SwitchFromRxEndOk(Ptr< Packet > packet, double snr, WifiMode mode, enum WifiPreamble preamble)
static TypeId GetTypeId(void)
NS_LOG_COMPONENT_DEFINE("WifiPhyStateHelper")
enum WifiPhy::State GetState(void)
bool IsStateCcaBusy(void)
TracedCallback< Ptr< const Packet >, WifiMode, WifiPreamble, uint8_t > m_txTrace
TracedCallback< Ptr< const Packet >, double > m_rxErrorTrace
a base class which provides memory management and object aggregation
void SwitchToRx(Time rxDuration)
void LogPreviousIdleAndCcaBusyStates(void)
Time GetLastRxStartTime(void) const
void NotifyRxStart(Time duration)
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
void RegisterListener(WifiPhyListener *listener)
void SwitchMaybeToCcaBusy(Time duration)
WifiPhy::RxOkCallback m_rxOkCallback