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 Ieee80211HTDataModegetDataMode () const override
 
virtual const Ieee80211HTPreambleModegetPreambleMode () const override
 
virtual const Ieee80211HTSignalModegetHeaderMode () const override
 
virtual const Ieee80211OFDMSignalModegetLegacySignalMode () 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 Ieee80211HTPreambleModepreambleMode
 
const Ieee80211HTDataModedataMode
 
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: