This objects implements the PHY state machine of the Wifi device. More...
#include "wifi-phy-state-helper.h"
Public Types | |
typedef void(* | RxEndErrorTracedCallback) (Ptr< const Packet > packet, double snr) |
TracedCallback signature for receive end error event. More... | |
typedef void(* | RxOkTracedCallback) (Ptr< const Packet > packet, double snr, WifiMode mode, WifiPreamble preamble) |
TracedCallback signature for receive end OK event. More... | |
typedef void(* | StateTracedCallback) (Time start, Time duration, WifiPhyState state) |
TracedCallback signature for state changes. More... | |
typedef void(* | TxTracedCallback) (Ptr< const Packet > packet, WifiMode mode, WifiPreamble preamble, uint8_t power) |
TracedCallback signature for transmit event. More... | |
Public Member Functions | |
WifiPhyStateHelper () | |
Time | GetDelayUntilIdle () const |
Return the time before the state is back to IDLE. More... | |
Time | GetLastRxEndTime () const |
Return the time the last RX end. More... | |
Time | GetLastRxStartTime () const |
Return the time the last RX start. More... | |
WifiPhyState | GetState () const |
Return the current state of WifiPhy. More... | |
bool | IsStateCcaBusy () const |
Check whether the current state is CCA busy. More... | |
bool | IsStateIdle () const |
Check whether the current state is IDLE. More... | |
bool | IsStateOff () const |
Check whether the current state is OFF. More... | |
bool | IsStateRx () const |
Check whether the current state is RX. More... | |
bool | IsStateSleep () const |
Check whether the current state is SLEEP. More... | |
bool | IsStateSwitching () const |
Check whether the current state is SWITCHING. More... | |
bool | IsStateTx () const |
Check whether the current state is TX. More... | |
template<typename FUNC , typename... Ts> | |
void | NotifyListeners (FUNC f, Ts &&... args) |
Notify all WifiPhyListener objects of the given PHY event. More... | |
void | NotifyRxMpdu (Ptr< const WifiPsdu > psdu, RxSignalInfo rxSignalInfo, const WifiTxVector &txVector) |
Notify the reception of an MPDU included in an A-MPDU. More... | |
void | NotifyRxPsduFailed (Ptr< const WifiPsdu > psdu, double snr) |
Handle the unsuccessful reception of a PSDU. More... | |
void | NotifyRxPsduSucceeded (Ptr< const WifiPsdu > psdu, RxSignalInfo rxSignalInfo, const WifiTxVector &txVector, uint16_t staId, const std::vector< bool > &statusPerMpdu) |
Handle the successful reception of a PSDU. More... | |
void | RegisterListener (const std::shared_ptr< WifiPhyListener > &listener) |
Register WifiPhyListener to this WifiPhyStateHelper. More... | |
void | SetReceiveErrorCallback (RxErrorCallback callback) |
Set a callback for a failed reception. More... | |
void | SetReceiveOkCallback (RxOkCallback callback) |
Set a callback for a successful reception. More... | |
void | SwitchFromOff () |
Switch from off mode. More... | |
void | SwitchFromRxAbort (uint16_t operatingWidth) |
Abort current reception following a CCA reset request. More... | |
void | SwitchFromRxEndError () |
Switch from RX after the reception failed. More... | |
void | SwitchFromRxEndOk () |
Switch from RX after the reception was successful. More... | |
void | SwitchFromSleep () |
Switch from sleep mode. More... | |
void | SwitchMaybeToCcaBusy (Time duration, WifiChannelListType channelType, const std::vector< Time > &per20MhzDurations) |
Switch to CCA busy. More... | |
void | SwitchToChannelSwitching (Time switchingDuration) |
Switch state to channel switching for the given duration. More... | |
void | SwitchToOff () |
Switch to off mode. More... | |
void | SwitchToRx (Time rxDuration) |
Switch state to RX for the given duration. More... | |
void | SwitchToSleep () |
Switch to sleep mode. More... | |
void | SwitchToTx (Time txDuration, WifiConstPsduMap psdus, double txPowerDbm, const WifiTxVector &txVector) |
Switch state to TX for the given duration. More... | |
void | UnregisterListener (const std::shared_ptr< WifiPhyListener > &listener) |
Remove WifiPhyListener from this WifiPhyStateHelper. More... | |
![]() | |
Object () | |
Constructor. More... | |
~Object () override | |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose () |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. More... | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized () const |
Check if the object has been initialized. More... | |
![]() | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId () |
Register this type. More... | |
![]() | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Private Types | |
typedef std::list< std::weak_ptr< WifiPhyListener > > | Listeners |
typedef for a list of WifiPhyListeners. More... | |
Private Member Functions | |
void | DoSwitchFromRx () |
Switch the state from RX. More... | |
void | LogPreviousIdleAndCcaBusyStates () |
Log the idle and CCA busy states. More... | |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoDispose () |
Destructor implementation. More... | |
virtual void | DoInitialize () |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
This objects implements the PHY state machine of the Wifi device.
Definition at line 70 of file wifi-phy-state-helper.h.
|
private |
typedef for a list of WifiPhyListeners.
We use weak pointers so that unregistering a listener is not necessary to delete a listener (reference count is not incremented by weak pointers).
Definition at line 331 of file wifi-phy-state-helper.h.
typedef void(* ns3::WifiPhyStateHelper::RxEndErrorTracedCallback) (Ptr< const Packet > packet, double snr) |
TracedCallback signature for receive end error event.
[in] | packet | The received packet. |
[in] | snr | The SNR of the received packet in linear scale. |
Definition at line 299 of file wifi-phy-state-helper.h.
typedef void(* ns3::WifiPhyStateHelper::RxOkTracedCallback) (Ptr< const Packet > packet, double snr, WifiMode mode, WifiPreamble preamble) |
TracedCallback signature for receive end OK event.
[in] | packet | The received packet. |
[in] | snr | The SNR of the received packet in linear scale. |
[in] | mode | The transmission mode of the packet. |
[in] | preamble | The preamble of the packet. |
Definition at line 288 of file wifi-phy-state-helper.h.
typedef void(* ns3::WifiPhyStateHelper::StateTracedCallback) (Time start, Time duration, WifiPhyState state) |
TracedCallback signature for state changes.
[in] | start | Time when the state started. |
[in] | duration | Amount of time we've been in (or will be in) the state. |
[in] | state | The state. |
Definition at line 278 of file wifi-phy-state-helper.h.
typedef void(* ns3::WifiPhyStateHelper::TxTracedCallback) (Ptr< const Packet > packet, WifiMode mode, WifiPreamble preamble, uint8_t power) |
TracedCallback signature for transmit event.
[in] | packet | The received packet. |
[in] | mode | The transmission mode of the packet. |
[in] | preamble | The preamble of the packet. |
[in] | power | The transmit power level. |
Definition at line 309 of file wifi-phy-state-helper.h.
ns3::WifiPhyStateHelper::WifiPhyStateHelper | ( | ) |
Definition at line 69 of file wifi-phy-state-helper.cc.
References NS_LOG_FUNCTION.
|
private |
Switch the state from RX.
Definition at line 433 of file wifi-phy-state-helper.cc.
References IsStateCcaBusy(), IsStateIdle(), m_endRx, m_previousStateChangeTime, m_startRx, m_stateLogger, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, and RX.
Referenced by SwitchFromRxAbort(), SwitchFromRxEndError(), and SwitchFromRxEndOk().
Time ns3::WifiPhyStateHelper::GetDelayUntilIdle | ( | ) | const |
Return the time before the state is back to IDLE.
Definition at line 154 of file wifi-phy-state-helper.cc.
References CCA_BUSY, GetState(), IDLE, m_endCcaBusy, m_endRx, m_endSwitching, m_endTx, ns3::Max(), ns3::Simulator::Now(), NS_FATAL_ERROR, OFF, RX, ns3::Seconds(), SLEEP, SWITCHING, and TX.
Time ns3::WifiPhyStateHelper::GetLastRxEndTime | ( | ) | const |
Return the time the last RX end.
Definition at line 193 of file wifi-phy-state-helper.cc.
References m_endRx.
Time ns3::WifiPhyStateHelper::GetLastRxStartTime | ( | ) | const |
Return the time the last RX start.
Definition at line 187 of file wifi-phy-state-helper.cc.
References m_startRx.
WifiPhyState ns3::WifiPhyStateHelper::GetState | ( | ) | const |
Return the current state of WifiPhy.
Definition at line 199 of file wifi-phy-state-helper.cc.
References CCA_BUSY, IDLE, m_endCcaBusy, m_endRx, m_endSwitching, m_endTx, m_isOff, m_sleeping, ns3::Simulator::Now(), OFF, RX, SLEEP, SWITCHING, and TX.
Referenced by GetDelayUntilIdle(), IsStateCcaBusy(), IsStateIdle(), IsStateOff(), IsStateRx(), IsStateSleep(), IsStateSwitching(), IsStateTx(), LogPreviousIdleAndCcaBusyStates(), SwitchMaybeToCcaBusy(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), SwitchToSleep(), and SwitchToTx().
|
static |
Get the type ID.
Definition at line 43 of file wifi-phy-state-helper.cc.
References m_rxErrorTrace, m_rxOkTrace, m_stateLogger, m_txTrace, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
bool ns3::WifiPhyStateHelper::IsStateCcaBusy | ( | ) | const |
Check whether the current state is CCA busy.
Definition at line 118 of file wifi-phy-state-helper.cc.
References CCA_BUSY, and GetState().
Referenced by DoSwitchFromRx(), SwitchFromRxAbort(), and SwitchToRx().
bool ns3::WifiPhyStateHelper::IsStateIdle | ( | ) | const |
Check whether the current state is IDLE.
Definition at line 112 of file wifi-phy-state-helper.cc.
References GetState(), and IDLE.
Referenced by DoSwitchFromRx(), SwitchFromRxAbort(), and SwitchToRx().
bool ns3::WifiPhyStateHelper::IsStateOff | ( | ) | const |
Check whether the current state is OFF.
Definition at line 148 of file wifi-phy-state-helper.cc.
References GetState(), and OFF.
Referenced by SwitchFromOff(), and SwitchToOff().
bool ns3::WifiPhyStateHelper::IsStateRx | ( | ) | const |
Check whether the current state is RX.
Definition at line 124 of file wifi-phy-state-helper.cc.
References GetState(), and RX.
Referenced by SwitchToRx().
bool ns3::WifiPhyStateHelper::IsStateSleep | ( | ) | const |
Check whether the current state is SLEEP.
Definition at line 142 of file wifi-phy-state-helper.cc.
References GetState(), and SLEEP.
Referenced by SwitchFromSleep(), and SwitchToSleep().
bool ns3::WifiPhyStateHelper::IsStateSwitching | ( | ) | const |
Check whether the current state is SWITCHING.
Definition at line 136 of file wifi-phy-state-helper.cc.
References GetState(), and SWITCHING.
Referenced by SwitchToChannelSwitching().
bool ns3::WifiPhyStateHelper::IsStateTx | ( | ) | const |
Check whether the current state is TX.
Definition at line 130 of file wifi-phy-state-helper.cc.
References GetState(), and TX.
|
private |
Log the idle and CCA busy states.
Definition at line 232 of file wifi-phy-state-helper.cc.
References CCA_BUSY, GetState(), IDLE, ns3::Time::IsStrictlyPositive(), m_endCcaBusy, m_endRx, m_endSwitching, m_endTx, m_startCcaBusy, m_stateLogger, max, ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by SwitchMaybeToCcaBusy(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), SwitchToSleep(), and SwitchToTx().
void ns3::WifiPhyStateHelper::NotifyListeners | ( | FUNC | f, |
Ts &&... | args | ||
) |
Notify all WifiPhyListener objects of the given PHY event.
FUNC | [deduced] Member function type |
Ts | [deduced] Function argument types |
f | the member function to invoke |
args | arguments to pass to the member function |
Definition at line 383 of file wifi-phy-state-helper.h.
References check-style-clang-format::args, f(), m_listeners, and NS_LOG_FUNCTION.
Referenced by SwitchFromOff(), SwitchFromRxAbort(), SwitchFromRxEndError(), SwitchFromRxEndOk(), SwitchFromSleep(), SwitchMaybeToCcaBusy(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), SwitchToSleep(), and SwitchToTx().
void ns3::WifiPhyStateHelper::NotifyRxMpdu | ( | Ptr< const WifiPsdu > | psdu, |
RxSignalInfo | rxSignalInfo, | ||
const WifiTxVector & | txVector | ||
) |
Notify the reception of an MPDU included in an A-MPDU.
psdu | the successfully received PSDU |
rxSignalInfo | the info on the received signal ( |
txVector | TXVECTOR of the PSDU |
Definition at line 364 of file wifi-phy-state-helper.cc.
References ns3::Callback< R, UArgs >::IsNull(), m_rxOkCallback, and NS_LOG_FUNCTION.
Handle the unsuccessful reception of a PSDU.
psdu | the PSDU that we failed to received |
snr | the SNR of the received PSDU in linear scale |
Definition at line 401 of file wifi-phy-state-helper.cc.
References ns3::WifiPsdu::GetPacket(), ns3::Callback< R, UArgs >::IsNull(), m_rxErrorCallback, m_rxErrorTrace, and NS_LOG_FUNCTION.
void ns3::WifiPhyStateHelper::NotifyRxPsduSucceeded | ( | Ptr< const WifiPsdu > | psdu, |
RxSignalInfo | rxSignalInfo, | ||
const WifiTxVector & | txVector, | ||
uint16_t | staId, | ||
const std::vector< bool > & | statusPerMpdu | ||
) |
Handle the successful reception of a PSDU.
psdu | the successfully received PSDU |
rxSignalInfo | the info on the received signal ( |
txVector | TXVECTOR of the PSDU |
staId | the station ID of the PSDU (only used for MU) |
statusPerMpdu | reception status per MPDU |
Definition at line 376 of file wifi-phy-state-helper.cc.
References ns3::WifiTxVector::GetMode(), ns3::WifiPsdu::GetPacket(), ns3::WifiTxVector::GetPreambleType(), ns3::Callback< R, UArgs >::IsNull(), m_rxOkCallback, m_rxOkTrace, NS_ASSERT, NS_LOG_FUNCTION, and ns3::RxSignalInfo::snr.
void ns3::WifiPhyStateHelper::RegisterListener | ( | const std::shared_ptr< WifiPhyListener > & | listener | ) |
Register WifiPhyListener to this WifiPhyStateHelper.
listener | the WifiPhyListener to register |
Definition at line 100 of file wifi-phy-state-helper.cc.
References m_listeners.
void ns3::WifiPhyStateHelper::SetReceiveErrorCallback | ( | RxErrorCallback | callback | ) |
Set a callback for a failed reception.
callback | the RxErrorCallback to set |
Definition at line 94 of file wifi-phy-state-helper.cc.
References m_rxErrorCallback.
void ns3::WifiPhyStateHelper::SetReceiveOkCallback | ( | RxOkCallback | callback | ) |
Set a callback for a successful reception.
callback | the RxOkCallback to set |
Definition at line 88 of file wifi-phy-state-helper.cc.
References m_rxOkCallback.
void ns3::WifiPhyStateHelper::SwitchFromOff | ( | ) |
Switch from off mode.
Definition at line 564 of file wifi-phy-state-helper.cc.
References IsStateOff(), m_isOff, m_previousStateChangeTime, NotifyListeners(), ns3::WifiPhyListener::NotifyOn(), ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.
void ns3::WifiPhyStateHelper::SwitchFromRxAbort | ( | uint16_t | operatingWidth | ) |
Abort current reception following a CCA reset request.
operatingWidth | the channel width the PHY is operating on (in MHz) |
Definition at line 507 of file wifi-phy-state-helper.cc.
References DoSwitchFromRx(), IsStateCcaBusy(), IsStateIdle(), m_endCcaBusy, ns3::WifiPhyListener::NotifyCcaBusyStart(), NotifyListeners(), ns3::WifiPhyListener::NotifyRxEndOk(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, ns3::Seconds(), and ns3::WIFI_CHANLIST_PRIMARY.
void ns3::WifiPhyStateHelper::SwitchFromRxEndError | ( | ) |
Switch from RX after the reception failed.
Definition at line 424 of file wifi-phy-state-helper.cc.
References DoSwitchFromRx(), m_endRx, NotifyListeners(), ns3::WifiPhyListener::NotifyRxEndError(), ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.
void ns3::WifiPhyStateHelper::SwitchFromRxEndOk | ( | ) |
Switch from RX after the reception was successful.
Definition at line 415 of file wifi-phy-state-helper.cc.
References DoSwitchFromRx(), m_endRx, NotifyListeners(), ns3::WifiPhyListener::NotifyRxEndOk(), ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.
void ns3::WifiPhyStateHelper::SwitchFromSleep | ( | ) |
Switch from sleep mode.
Definition at line 495 of file wifi-phy-state-helper.cc.
References IsStateSleep(), m_previousStateChangeTime, m_sleeping, m_startSleep, m_stateLogger, NotifyListeners(), ns3::WifiPhyListener::NotifyWakeup(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, and SLEEP.
void ns3::WifiPhyStateHelper::SwitchMaybeToCcaBusy | ( | Time | duration, |
WifiChannelListType | channelType, | ||
const std::vector< Time > & | per20MhzDurations | ||
) |
Switch to CCA busy.
duration | the duration of the CCA state |
channelType | the channel type for which the CCA busy state is reported. |
per20MhzDurations | vector that indicates for how long each 20 MHz subchannel (corresponding to the index of the element in the vector) is busy and where a zero duration indicates that the subchannel is idle. The vector is non-empty if the PHY supports 802.11ax or later and if the operational channel width is larger than 20 MHz. |
Definition at line 444 of file wifi-phy-state-helper.cc.
References CCA_BUSY, GetState(), IDLE, LogPreviousIdleAndCcaBusyStates(), m_endCcaBusy, m_startCcaBusy, max, ns3::WifiPhyListener::NotifyCcaBusyStart(), NotifyListeners(), ns3::Simulator::Now(), NS_LOG_FUNCTION, RX, and ns3::WIFI_CHANLIST_PRIMARY.
void ns3::WifiPhyStateHelper::SwitchToChannelSwitching | ( | Time | switchingDuration | ) |
Switch state to channel switching for the given duration.
switchingDuration | the duration of required to switch the channel |
Definition at line 331 of file wifi-phy-state-helper.cc.
References CCA_BUSY, GetState(), IDLE, IsStateSwitching(), ns3::Time::IsZero(), LogPreviousIdleAndCcaBusyStates(), m_endCcaBusy, m_endRx, m_endSwitching, m_previousStateChangeTime, m_startRx, m_startSwitching, m_stateLogger, min, NotifyListeners(), ns3::WifiPhyListener::NotifySwitchingStart(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, RX, and SWITCHING.
void ns3::WifiPhyStateHelper::SwitchToOff | ( | ) |
Switch to off mode.
Definition at line 528 of file wifi-phy-state-helper.cc.
References CCA_BUSY, GetState(), IDLE, IsStateOff(), LogPreviousIdleAndCcaBusyStates(), m_endRx, m_endTx, m_isOff, m_previousStateChangeTime, m_startRx, m_startTx, m_stateLogger, NotifyListeners(), ns3::WifiPhyListener::NotifyOff(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, RX, and TX.
void ns3::WifiPhyStateHelper::SwitchToRx | ( | Time | rxDuration | ) |
Switch state to RX for the given duration.
rxDuration | the duration of the RX |
Definition at line 307 of file wifi-phy-state-helper.cc.
References CCA_BUSY, GetState(), IDLE, IsStateCcaBusy(), IsStateIdle(), IsStateRx(), LogPreviousIdleAndCcaBusyStates(), m_endRx, m_previousStateChangeTime, m_startRx, NotifyListeners(), ns3::WifiPhyListener::NotifyRxStart(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, and NS_LOG_FUNCTION.
void ns3::WifiPhyStateHelper::SwitchToSleep | ( | ) |
Switch to sleep mode.
Definition at line 472 of file wifi-phy-state-helper.cc.
References CCA_BUSY, GetState(), IDLE, IsStateSleep(), LogPreviousIdleAndCcaBusyStates(), m_previousStateChangeTime, m_sleeping, m_startSleep, NotifyListeners(), ns3::WifiPhyListener::NotifySleep(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::WifiPhy::SetSleepMode().
void ns3::WifiPhyStateHelper::SwitchToTx | ( | Time | txDuration, |
WifiConstPsduMap | psdus, | ||
double | txPowerDbm, | ||
const WifiTxVector & | txVector | ||
) |
Switch state to TX for the given duration.
txDuration | the duration of the PPDU to transmit |
psdus | the PSDUs in the transmitted PPDU (only one unless it is a MU PPDU) |
txPowerDbm | the nominal TX power in dBm |
txVector | the TX vector for the transmission |
Definition at line 264 of file wifi-phy-state-helper.cc.
References CCA_BUSY, ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetPreambleType(), GetState(), ns3::WifiTxVector::GetTxPowerLevel(), IDLE, LogPreviousIdleAndCcaBusyStates(), m_endRx, m_endTx, m_previousStateChangeTime, m_startRx, m_startTx, m_stateLogger, m_txTrace, NotifyListeners(), ns3::WifiPhyListener::NotifyTxStart(), ns3::Simulator::Now(), NS_FATAL_ERROR, NS_LOG_FUNCTION, RX, and TX.
void ns3::WifiPhyStateHelper::UnregisterListener | ( | const std::shared_ptr< WifiPhyListener > & | listener | ) |
Remove WifiPhyListener from this WifiPhyStateHelper.
listener | the WifiPhyListener to unregister |
Definition at line 106 of file wifi-phy-state-helper.cc.
References m_listeners.
|
private |
end CCA busy
Definition at line 353 of file wifi-phy-state-helper.h.
Referenced by GetDelayUntilIdle(), GetState(), LogPreviousIdleAndCcaBusyStates(), SwitchFromRxAbort(), SwitchMaybeToCcaBusy(), and SwitchToChannelSwitching().
|
private |
end receive
Definition at line 352 of file wifi-phy-state-helper.h.
Referenced by DoSwitchFromRx(), GetDelayUntilIdle(), GetLastRxEndTime(), GetState(), LogPreviousIdleAndCcaBusyStates(), SwitchFromRxEndError(), SwitchFromRxEndOk(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), and SwitchToTx().
|
private |
end switching
Definition at line 354 of file wifi-phy-state-helper.h.
Referenced by GetDelayUntilIdle(), GetState(), LogPreviousIdleAndCcaBusyStates(), and SwitchToChannelSwitching().
|
private |
end transmit
Definition at line 351 of file wifi-phy-state-helper.h.
Referenced by GetDelayUntilIdle(), GetState(), LogPreviousIdleAndCcaBusyStates(), SwitchToOff(), and SwitchToTx().
|
private |
switched off
Definition at line 350 of file wifi-phy-state-helper.h.
Referenced by GetState(), SwitchFromOff(), and SwitchToOff().
|
private |
listeners
Definition at line 362 of file wifi-phy-state-helper.h.
Referenced by NotifyListeners(), RegisterListener(), and UnregisterListener().
|
private |
previous state change time
Definition at line 360 of file wifi-phy-state-helper.h.
Referenced by DoSwitchFromRx(), SwitchFromOff(), SwitchFromSleep(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), SwitchToSleep(), and SwitchToTx().
|
private |
receive error callback
Definition at line 369 of file wifi-phy-state-helper.h.
Referenced by NotifyRxPsduFailed(), and SetReceiveErrorCallback().
|
private |
receive error trace callback
Definition at line 365 of file wifi-phy-state-helper.h.
Referenced by GetTypeId(), and NotifyRxPsduFailed().
|
private |
receive OK callback
Definition at line 368 of file wifi-phy-state-helper.h.
Referenced by NotifyRxMpdu(), NotifyRxPsduSucceeded(), and SetReceiveOkCallback().
|
private |
receive OK trace callback
Definition at line 364 of file wifi-phy-state-helper.h.
Referenced by GetTypeId(), and NotifyRxPsduSucceeded().
|
private |
sleeping
Definition at line 349 of file wifi-phy-state-helper.h.
Referenced by GetState(), SwitchFromSleep(), and SwitchToSleep().
|
private |
start CCA busy
Definition at line 357 of file wifi-phy-state-helper.h.
Referenced by LogPreviousIdleAndCcaBusyStates(), and SwitchMaybeToCcaBusy().
|
private |
start receive
Definition at line 356 of file wifi-phy-state-helper.h.
Referenced by DoSwitchFromRx(), GetLastRxStartTime(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), and SwitchToTx().
|
private |
start sleep
Definition at line 359 of file wifi-phy-state-helper.h.
Referenced by SwitchFromSleep(), and SwitchToSleep().
|
private |
start switching
Definition at line 358 of file wifi-phy-state-helper.h.
Referenced by SwitchToChannelSwitching().
|
private |
start transmit
Definition at line 355 of file wifi-phy-state-helper.h.
Referenced by SwitchToOff(), and SwitchToTx().
|
private |
The trace source fired when state is changed.
Definition at line 346 of file wifi-phy-state-helper.h.
Referenced by DoSwitchFromRx(), GetTypeId(), LogPreviousIdleAndCcaBusyStates(), SwitchFromSleep(), SwitchToChannelSwitching(), SwitchToOff(), and SwitchToTx().
|
private |
transmit trace callback
Definition at line 367 of file wifi-phy-state-helper.h.
Referenced by GetTypeId(), and SwitchToTx().
|
private |
the log component
Definition at line 348 of file wifi-phy-state-helper.h.