User Manual, Developers Guide and API Documentation

wifimac::convergence::ChannelState Class Reference

Summarizes the channel state information, using several indicators. More...

#include <convergence/ChannelState.hpp>

Inheritance diagram for wifimac::convergence::ChannelState:

Inheritance graph
[legend]
Collaboration diagram for wifimac::convergence::ChannelState:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ChannelState (wns::ldk::fun::FUN *fun, const wns::pyconfig::View &config)
void registerRSSObserver (wns::Observer< wns::service::phy::ofdma::CarrierSensing > *o)
void setCarrierSensingService (wns::service::Service *cs)
virtual ~ChannelState ()

Private Member Functions

virtual void checkNewCS ()
 Check if the ChannelState has changed and an indication to the observers is required.
virtual CS getCurrentChannelState () const
bool isRTS (const wns::ldk::CompoundPtr &compound) const
virtual void onFUNCreated ()
 Resolve inter-FU dependencies.
virtual void onRSSChange (wns::Power newRSS)
 Notification from PHY on RSS change.
void onRxEnd ()
void onRxError ()
void onRxStart (const wns::simulator::Time expRxDuration)
 observer RxStartEnd
void onTimeout ()
 canTimeoutInterface for all duration-based indicators
void onTxEnd (const wns::ldk::CompoundPtr &compound)
 Called when the transmission ends.
void onTxStart (const wns::ldk::CompoundPtr &compound)
 observer TxStartEnd
void periodically ()
 Implementation of periodic timeout to evaluate the probe(s).
void probeChannelBusy ()
 Small function for channel busy fraction probing.
void probeChannelIdle ()
void processIncoming (const wns::ldk::CompoundPtr &compound)
 Processor Interface Implementation.
void processOutgoing (const wns::ldk::CompoundPtr &compound)
 Process compounds on downlink.

Private Attributes

struct
wifimac::convergence::ChannelState::ActiveIndicators 
activeIndicators
wns::simulator::Time channelBusyFractionMeasurementPeriod
wns::probe::bus::ContextCollectorPtr channelBusyFractionProbe
 Probe the channel busy fraction.
wns::simulator::Time channelBusyLastChangeToBusy
wns::simulator::Time channelBusySlotStart
wns::simulator::Time channelBusyTime
wns::pyconfig::View config
struct
wifimac::convergence::ChannelState::Friends 
friends
struct
wifimac::convergence::ChannelState::Indicators 
indicators
wifimac::FrameType lastCommandOut
CS lastCS
 last channel state for comparison
wns::simulator::Time latestNAV
wns::logger::Logger logger
const std::string managerName
wns::service::phy::ofdma::NotificationmyCS
const wns::Power phyCarrierSenseThreshold
 if an OFDM transmission is detected above this threshold, the channel is occupied
const std::string phyUserCommandName
const wns::Power rawEnergyThreshold
 if the channel noise is above rawEnergyThreshold threshold, the channel is occupied
std::vector< wns::Observer
< wns::service::phy::ofdma::CarrierSensing > * > 
rssObservers
 units to be informed on RSS changes
const std::string rtsctsCommandName
const std::string rxStartEndName
const wns::simulator::Time sifsDuration
 Frame/IFS durations.
const std::string txStartEndName
bool waitForReply

Classes

struct  ActiveIndicators
 identifies which indicators are switched on or off More...
struct  Friends
struct  Indicators
 required data to remember & compare the channel state More...


Detailed Description

IEEE 802.11 defines the following channel state indicators:

Definition at line 84 of file ChannelState.hpp.


Constructor & Destructor Documentation

ChannelState::ChannelState ( wns::ldk::fun::FUN fun,
const wns::pyconfig::View config 
)

Definition at line 48 of file ChannelState.cpp.

ChannelState::~ChannelState (  )  [virtual]

Definition at line 120 of file ChannelState.cpp.


Member Function Documentation

void ChannelState::checkNewCS (  )  [private, virtual]

Definition at line 383 of file ChannelState.cpp.

CS ChannelState::getCurrentChannelState (  )  const [private, virtual]

Definition at line 346 of file ChannelState.cpp.

bool ChannelState::isRTS ( const wns::ldk::CompoundPtr compound  )  const [private]

Definition at line 289 of file ChannelState.cpp.

void ChannelState::onFUNCreated (  )  [private, virtual]

Often FunctionalUnits require the collaboration with other FunctionalUnits to accomplish their task. For the collaboration between FunctionalUnits we coined the term "friendship".

The onFUNCreated method is a hook being called after the complete FUN has been set up. FunctionalUnits requiring the collaboration with other FunctionalUnits should resolve these dependencies by implementing this hook accordingly.

Finding friends is usually done calling wns::ldk::fun::FUN::findFriend.

When building reconfigurable FUNs, this method may get called multiple times (e.g., after each FUN reconfiguration). Keep that in mind when allocating resources in your onFUNCreated implementation.

Reimplemented from wns::ldk::FunctionalUnit.

Definition at line 124 of file ChannelState.cpp.

void ChannelState::onRSSChange ( wns::Power  newRSS  )  [private, virtual]

Implements wns::service::phy::ofdma::RSSHandler.

Definition at line 330 of file ChannelState.cpp.

void ChannelState::onRxEnd (  )  [private, virtual]

Implements wifimac::convergence::IRxStartEnd.

Definition at line 195 of file ChannelState.cpp.

void ChannelState::onRxError (  )  [private, virtual]

Implements wifimac::convergence::IRxStartEnd.

Definition at line 202 of file ChannelState.cpp.

void ChannelState::onRxStart ( const wns::simulator::Time  expRxDuration  )  [private, virtual]

Implements wifimac::convergence::IRxStartEnd.

Definition at line 188 of file ChannelState.cpp.

void ChannelState::onTimeout (  )  [private, virtual]

Implements wns::events::CanTimeout.

Definition at line 295 of file ChannelState.cpp.

void ChannelState::onTxEnd ( const wns::ldk::CompoundPtr compound  )  [private, virtual]

Implements wifimac::convergence::ITxStartEnd.

Definition at line 161 of file ChannelState.cpp.

void ChannelState::onTxStart ( const wns::ldk::CompoundPtr compound  )  [private, virtual]

Implements wifimac::convergence::ITxStartEnd.

Definition at line 153 of file ChannelState.cpp.

void ChannelState::periodically (  )  [private, virtual]

Implements wns::events::PeriodicTimeout.

Definition at line 313 of file ChannelState.cpp.

void ChannelState::probeChannelBusy (  )  [private]

Definition at line 405 of file ChannelState.cpp.

void ChannelState::probeChannelIdle (  )  [private]

Definition at line 410 of file ChannelState.cpp.

void ChannelState::processIncoming ( const wns::ldk::CompoundPtr compound  )  [private, virtual]

Implements wns::ldk::ProcessorInterface.

Definition at line 218 of file ChannelState.cpp.

void ChannelState::processOutgoing ( const wns::ldk::CompoundPtr  )  [private, virtual]

Override this method to handle outgoing compounds.

Implements wns::ldk::ProcessorInterface.

Definition at line 208 of file ChannelState.cpp.

void wifimac::convergence::ChannelState::registerRSSObserver ( wns::Observer< wns::service::phy::ofdma::CarrierSensing > *  o  )  [inline]

Definition at line 105 of file ChannelState.hpp.

void ChannelState::setCarrierSensingService ( wns::service::Service cs  ) 

Definition at line 143 of file ChannelState.cpp.


Member Data Documentation

Definition at line 228 of file ChannelState.hpp.

Definition at line 227 of file ChannelState.hpp.

Definition at line 231 of file ChannelState.hpp.

Definition at line 230 of file ChannelState.hpp.

Definition at line 229 of file ChannelState.hpp.

Definition at line 148 of file ChannelState.hpp.

Definition at line 211 of file ChannelState.hpp.

Definition at line 205 of file ChannelState.hpp.

Definition at line 207 of file ChannelState.hpp.

Definition at line 149 of file ChannelState.hpp.

Definition at line 213 of file ChannelState.hpp.

Definition at line 233 of file ChannelState.hpp.

Definition at line 195 of file ChannelState.hpp.

Definition at line 214 of file ChannelState.hpp.

Definition at line 190 of file ChannelState.hpp.

Definition at line 152 of file ChannelState.hpp.

Definition at line 215 of file ChannelState.hpp.

Definition at line 217 of file ChannelState.hpp.

Definition at line 222 of file ChannelState.hpp.

Definition at line 216 of file ChannelState.hpp.

Definition at line 209 of file ChannelState.hpp.


The documentation for this class was generated from the following files:

Generated on Sat May 26 03:32:40 2012 for openWNS by  doxygen 1.5.5