INET Framework for OMNeT++/OMNEST
inet::physicallayer::Ieee80211HTMode Class Reference

#include <Ieee80211HTMode.h>

Inheritance diagram for inet::physicallayer::Ieee80211HTMode:
inet::physicallayer::Ieee80211ModeBase inet::physicallayer::IIeee80211Mode inet::physicallayer::IPrintableObject

Public Types

enum  BandMode { BAND_2_4GHZ, BAND_5GHZ }
 
- Public Types inherited from inet::physicallayer::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 

Public Member Functions

 Ieee80211HTMode (const char *name, const Ieee80211HTPreambleMode *preambleMode, const Ieee80211HTDataMode *dataMode, const BandMode carrierFrequencyMode)
 
virtual ~Ieee80211HTMode ()
 
virtual const Ieee80211HTDataMode * getDataMode () const override
 
virtual const Ieee80211HTPreambleMode * getPreambleMode () const override
 
virtual const Ieee80211HTSignalMode * getHeaderMode () const override
 
virtual const Ieee80211OFDMSignalMode * getLegacySignalMode () const
 
virtual const simtime_t getSlotTime () const override
 
virtual const simtime_t getShortSlotTime () const
 
virtual const simtime_t getSifsTime () const override
 
virtual const simtime_t getRifsTime () const override
 
virtual const simtime_t getCcaTime () const override
 
virtual const simtime_t getPhyRxStartDelay () const override
 
virtual const simtime_t getRxTxTurnaroundTime () const override
 
virtual const simtime_t getPreambleLength () const override
 
virtual const simtime_t getPlcpHeaderLength () const override
 
virtual int getMpduMaxLength () const override
 
virtual BandMode getCarrierFrequencyMode () const
 
virtual const simtime_t getDuration (int dataBitLength) const override
 
- Public Member Functions inherited from inet::physicallayer::Ieee80211ModeBase
 Ieee80211ModeBase (const char *name)
 
virtual const char * getName () const override
 
- Public Member Functions inherited from inet::physicallayer::IIeee80211Mode
IIeee80211PreambleMode * _getPreambleMode () const
 
IIeee80211HeaderMode * _getHeaderMode () const
 
IIeee80211DataMode * _getDataMode () const
 
- Public Member Functions inherited from inet::physicallayer::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level) const
 Prints this object to the provided output stream. More...
 
virtual std::string getInfoStringRepresentation () const
 
virtual std::string getDetailStringRepresentation () const
 
virtual std::string getDebugStringRepresentation () const
 
virtual std::string getTraceStringRepresentation () const
 
virtual std::string getCompleteStringRepresentation () const
 

Protected Member Functions

virtual int getLegacyCwMin () const override
 
virtual int getLegacyCwMax () const override
 

Protected Attributes

const Ieee80211HTPreambleMode * preambleMode
 
const Ieee80211HTDataMode * dataMode
 
const BandMode carrierFrequencyMode
 

Member Enumeration Documentation

Enumerator
BAND_2_4GHZ 
BAND_5GHZ 
230  {
231  BAND_2_4GHZ,
232  BAND_5GHZ
233  };
Definition: Ieee80211HTMode.h:231
Definition: Ieee80211HTMode.h:232

Constructor & Destructor Documentation

inet::physicallayer::Ieee80211HTMode::Ieee80211HTMode ( const char *  name,
const Ieee80211HTPreambleMode *  preambleMode,
const Ieee80211HTDataMode *  dataMode,
const BandMode  carrierFrequencyMode 
)
28  :
33 {
34 }
const BandMode carrierFrequencyMode
Definition: Ieee80211HTMode.h:238
std::string name
Definition: Ieee80211ModeBase.h:29
Ieee80211ModeBase(const char *name)
Definition: Ieee80211ModeBase.h:31
const Ieee80211HTPreambleMode * preambleMode
Definition: Ieee80211HTMode.h:236
const Ieee80211HTDataMode * dataMode
Definition: Ieee80211HTMode.h:237
virtual inet::physicallayer::Ieee80211HTMode::~Ieee80211HTMode ( )
inlinevirtual
246 { delete preambleMode; delete dataMode; }
const Ieee80211HTPreambleMode * preambleMode
Definition: Ieee80211HTMode.h:236
const Ieee80211HTDataMode * dataMode
Definition: Ieee80211HTMode.h:237

Member Function Documentation

virtual BandMode inet::physicallayer::Ieee80211HTMode::getCarrierFrequencyMode ( ) const
inlinevirtual
264 { return carrierFrequencyMode; }
const BandMode carrierFrequencyMode
Definition: Ieee80211HTMode.h:238
virtual const simtime_t inet::physicallayer::Ieee80211HTMode::getCcaTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

258 { return 4E-6; } // < 4
virtual const Ieee80211HTDataMode* inet::physicallayer::Ieee80211HTMode::getDataMode ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

248 { return dataMode; }
const Ieee80211HTDataMode * dataMode
Definition: Ieee80211HTMode.h:237
virtual const simtime_t inet::physicallayer::Ieee80211HTMode::getDuration ( int  dataBitLength) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

266 { return preambleMode->getDuration() + dataMode->getDuration(dataBitLength); }
virtual const simtime_t getDuration(int dataBitLength) const override
Definition: Ieee80211HTMode.cc:287
const Ieee80211HTPreambleMode * preambleMode
Definition: Ieee80211HTMode.h:236
const Ieee80211HTDataMode * dataMode
Definition: Ieee80211HTMode.h:237
virtual const simtime_t getDuration() const override
Definition: Ieee80211HTMode.cc:157
virtual const Ieee80211HTSignalMode* inet::physicallayer::Ieee80211HTMode::getHeaderMode ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

250 { return preambleMode->getSignalMode(); }
virtual const Ieee80211HTSignalMode * getSignalMode() const
Definition: Ieee80211HTMode.h:150
const Ieee80211HTPreambleMode * preambleMode
Definition: Ieee80211HTMode.h:236
virtual int inet::physicallayer::Ieee80211HTMode::getLegacyCwMax ( ) const
inlineoverrideprotectedvirtual

Implements inet::physicallayer::IIeee80211Mode.

242 { return 1023; }
virtual int inet::physicallayer::Ieee80211HTMode::getLegacyCwMin ( ) const
inlineoverrideprotectedvirtual

Implements inet::physicallayer::IIeee80211Mode.

241 { return 15; }
virtual const Ieee80211OFDMSignalMode* inet::physicallayer::Ieee80211HTMode::getLegacySignalMode ( ) const
inlinevirtual
251 { return preambleMode->getLegacySignalMode(); }
const Ieee80211HTPreambleMode * preambleMode
Definition: Ieee80211HTMode.h:236
virtual const Ieee80211OFDMSignalMode * getLegacySignalMode() const
Definition: Ieee80211HTMode.h:151
virtual int inet::physicallayer::Ieee80211HTMode::getMpduMaxLength ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

263 { return 65535; } // in octets
virtual const simtime_t inet::physicallayer::Ieee80211HTMode::getPhyRxStartDelay ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

259 { return 33E-6; }
virtual const simtime_t inet::physicallayer::Ieee80211HTMode::getPlcpHeaderLength ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

262 { return 4E-6; }
virtual const simtime_t inet::physicallayer::Ieee80211HTMode::getPreambleLength ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

261 { return 16E-6; }
virtual const Ieee80211HTPreambleMode* inet::physicallayer::Ieee80211HTMode::getPreambleMode ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

249 { return preambleMode; }
const Ieee80211HTPreambleMode * preambleMode
Definition: Ieee80211HTMode.h:236
virtual const simtime_t inet::physicallayer::Ieee80211HTMode::getRifsTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

257 { return 2E-6; }
virtual const simtime_t inet::physicallayer::Ieee80211HTMode::getRxTxTurnaroundTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

260 { return 2E-6; } // < 2
const simtime_t inet::physicallayer::Ieee80211HTMode::getShortSlotTime ( ) const
virtual
318 {
320  return 9E-6;
321  else
322  throw cRuntimeError("Short slot time is not defined for this carrier frequency"); // TODO
323 }
const BandMode carrierFrequencyMode
Definition: Ieee80211HTMode.h:238
Definition: Ieee80211HTMode.h:231
const simtime_t inet::physicallayer::Ieee80211HTMode::getSifsTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

308 {
310  return 10E-6;
311  else if (carrierFrequencyMode == BAND_5GHZ)
312  return 16E-6;
313  else
314  throw cRuntimeError("Sifs time is not defined for this carrier frequency"); // TODO
315 }
const BandMode carrierFrequencyMode
Definition: Ieee80211HTMode.h:238
Definition: Ieee80211HTMode.h:231
Definition: Ieee80211HTMode.h:232
const simtime_t inet::physicallayer::Ieee80211HTMode::getSlotTime ( ) const
overridevirtual

Implements inet::physicallayer::IIeee80211Mode.

298 {
300  return 20E-6;
301  else if (carrierFrequencyMode == BAND_5GHZ)
302  return 9E-6;
303  else
304  throw cRuntimeError("Unsupported carrier frequency");
305 }
const BandMode carrierFrequencyMode
Definition: Ieee80211HTMode.h:238
Definition: Ieee80211HTMode.h:231
Definition: Ieee80211HTMode.h:232

Member Data Documentation

const BandMode inet::physicallayer::Ieee80211HTMode::carrierFrequencyMode
protected
const Ieee80211HTDataMode* inet::physicallayer::Ieee80211HTMode::dataMode
protected
const Ieee80211HTPreambleMode* inet::physicallayer::Ieee80211HTMode::preambleMode
protected

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