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

#include <Ieee80211OfdmMode.h>

Inheritance diagram for inet::physicallayer::Ieee80211OfdmMode:
inet::physicallayer::Ieee80211ModeBase inet::physicallayer::Ieee80211OfdmTimingRelatedParametersBase inet::physicallayer::IIeee80211Mode inet::IPrintableObject inet::physicallayer::Ieee80211ErpOfdmMode

Public Member Functions

 Ieee80211OfdmMode (const char *name, const Ieee80211OfdmPreambleMode *preambleMode, const Ieee80211OfdmSignalMode *signalMode, const Ieee80211OfdmDataMode *dataMode, Hz channelSpacing, Hz bandwidth)
 
virtual std::ostream & printToStream (std::ostream &stream, int level, int evFlags=0) const override
 Prints this object to the provided output stream. More...
 
virtual const Ieee80211OfdmPreambleModegetPreambleMode () const override
 
virtual const Ieee80211OfdmSignalModegetHeaderMode () const override
 
virtual const Ieee80211OfdmDataModegetDataMode () const override
 
virtual const Ieee80211OfdmSignalModegetSignalMode () const
 
virtual const simtime_t getDuration (b dataLength) const override
 
virtual const simtime_t getSlotTime () const override
 
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
 
- 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::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::string printToString () const
 
virtual std::string printToString (int level, int evFlags=0) const
 
virtual std::string getInfoStringRepresentation (int evFlags=0) const
 
virtual std::string getDetailStringRepresentation (int evFlags=0) const
 
virtual std::string getDebugStringRepresentation (int evFlags=0) const
 
virtual std::string getTraceStringRepresentation (int evFlags=0) const
 
virtual std::string getCompleteStringRepresentation (int evFlags=0) const
 

Protected Member Functions

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

Protected Attributes

const Ieee80211OfdmPreambleModepreambleMode
 
const Ieee80211OfdmSignalModesignalMode
 
const Ieee80211OfdmDataModedataMode
 

Additional Inherited Members

- Public Types inherited from inet::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 
enum  PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0), PRINT_FLAG_MULTILINE = (1 << 1) }
 

Constructor & Destructor Documentation

◆ Ieee80211OfdmMode()

inet::physicallayer::Ieee80211OfdmMode::Ieee80211OfdmMode ( const char *  name,
const Ieee80211OfdmPreambleMode preambleMode,
const Ieee80211OfdmSignalMode signalMode,
const Ieee80211OfdmDataMode dataMode,
Hz  channelSpacing,
Hz  bandwidth 
)

Member Function Documentation

◆ getCcaTime()

const simtime_t inet::physicallayer::Ieee80211OfdmMode::getCcaTime ( ) const
overridevirtual

Implements inet::physicallayer::IIeee80211Mode.

104 {
105  // < 4, < 8, < 16
106  if (channelSpacing == MHz(20))
107  return 4E-6;
108  else if (channelSpacing == MHz(10))
109  return 8E-6;
110  else if (channelSpacing == MHz(5))
111  return 16E-6;
112  else
113  throw cRuntimeError("Unknown channel spacing = %f", channelSpacing.get());
114 }

◆ getDataMode()

◆ getDuration()

virtual const simtime_t inet::physicallayer::Ieee80211OfdmMode::getDuration ( b  dataLength) const
inlineoverridevirtual

◆ getHeaderMode()

virtual const Ieee80211OfdmSignalMode* inet::physicallayer::Ieee80211OfdmMode::getHeaderMode ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

147 { return signalMode; }

◆ getLegacyCwMax()

virtual int inet::physicallayer::Ieee80211OfdmMode::getLegacyCwMax ( ) const
inlineoverrideprotectedvirtual

Implements inet::physicallayer::IIeee80211Mode.

139 { return 1023; }

◆ getLegacyCwMin()

virtual int inet::physicallayer::Ieee80211OfdmMode::getLegacyCwMin ( ) const
inlineoverrideprotectedvirtual

Implements inet::physicallayer::IIeee80211Mode.

138 { return 15; }

◆ getMpduMaxLength()

virtual int inet::physicallayer::Ieee80211OfdmMode::getMpduMaxLength ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

162 { return 4095; }

◆ getPhyRxStartDelay()

const simtime_t inet::physicallayer::Ieee80211OfdmMode::getPhyRxStartDelay ( ) const
overridevirtual

Implements inet::physicallayer::IIeee80211Mode.

117 {
118  if (channelSpacing == MHz(20))
119  return 25E-6;
120  else if (channelSpacing == MHz(10))
121  return 49E-6;
122  else if (channelSpacing == MHz(5))
123  return 97E-6;
124  else
125  throw cRuntimeError("Unknown channel spacing = %f", channelSpacing.get());
126 }

◆ getPlcpHeaderLength()

virtual const simtime_t inet::physicallayer::Ieee80211OfdmMode::getPlcpHeaderLength ( ) const
inlineoverridevirtual

◆ getPreambleLength()

virtual const simtime_t inet::physicallayer::Ieee80211OfdmMode::getPreambleLength ( ) const
inlineoverridevirtual

◆ getPreambleMode()

◆ getRifsTime()

const simtime_t inet::physicallayer::Ieee80211OfdmMode::getRifsTime ( ) const
overridevirtual

Implements inet::physicallayer::IIeee80211Mode.

Reimplemented in inet::physicallayer::Ieee80211ErpOfdmMode.

129 {
130  return -1;
131 }

◆ getRxTxTurnaroundTime()

const simtime_t inet::physicallayer::Ieee80211OfdmMode::getRxTxTurnaroundTime ( ) const
overridevirtual

Implements inet::physicallayer::IIeee80211Mode.

134 {
135  // TODO < 2;
136  return -1;
137 }

◆ getSifsTime()

const simtime_t inet::physicallayer::Ieee80211OfdmMode::getSifsTime ( ) const
overridevirtual

Implements inet::physicallayer::IIeee80211Mode.

Reimplemented in inet::physicallayer::Ieee80211ErpOfdmMode.

92 {
93  if (channelSpacing == MHz(20))
94  return 16E-6;
95  else if (channelSpacing == MHz(10))
96  return 32E-6;
97  else if (channelSpacing == MHz(5))
98  return 64E-6;
99  else
100  throw cRuntimeError("Unknown channel spacing = %f", channelSpacing.get());
101 }

◆ getSignalMode()

◆ getSlotTime()

const simtime_t inet::physicallayer::Ieee80211OfdmMode::getSlotTime ( ) const
overridevirtual

Implements inet::physicallayer::IIeee80211Mode.

Reimplemented in inet::physicallayer::Ieee80211ErpOfdmMode.

80 {
81  if (channelSpacing == MHz(20))
82  return 9E-6;
83  else if (channelSpacing == MHz(10))
84  return 13E-6;
85  else if (channelSpacing == MHz(5))
86  return 21E-6;
87  else
88  throw cRuntimeError("Unknown channel spacing = %f", channelSpacing.get());
89 }

◆ printToStream()

std::ostream & inet::physicallayer::Ieee80211OfdmMode::printToStream ( std::ostream &  stream,
int  level,
int  evFlags = 0 
) const
overridevirtual

Prints this object to the provided output stream.

Reimplemented from inet::IPrintableObject.

Reimplemented in inet::physicallayer::Ieee80211ErpOfdmMode.

158 {
159  stream << "Ieee80211OfdmMode";
160  if (level <= PRINT_LEVEL_DEBUG)
163  if (level <= PRINT_LEVEL_DETAIL)
164  stream << EV_FIELD(dataMode, printFieldToString(dataMode, level + 1, evFlags));
165  return stream;
166 }

Member Data Documentation

◆ dataMode

const Ieee80211OfdmDataMode* inet::physicallayer::Ieee80211OfdmMode::dataMode
protected

Referenced by printToStream().

◆ preambleMode

const Ieee80211OfdmPreambleMode* inet::physicallayer::Ieee80211OfdmMode::preambleMode
protected

Referenced by printToStream().

◆ signalMode

const Ieee80211OfdmSignalMode* inet::physicallayer::Ieee80211OfdmMode::signalMode
protected

Referenced by printToStream().


The documentation for this class was generated from the following files:
inet::physicallayer::Ieee80211OfdmMode::preambleMode
const Ieee80211OfdmPreambleMode * preambleMode
Definition: Ieee80211OfdmMode.h:133
inet::IPrintableObject::PRINT_LEVEL_DETAIL
@ PRINT_LEVEL_DETAIL
Definition: IPrintableObject.h:24
inet::physicallayer::Ieee80211OfdmSignalMode::getDuration
virtual const simtime_t getDuration() const override
Definition: Ieee80211OfdmMode.h:96
inet::physicallayer::Ieee80211OfdmPreambleMode::getDuration
virtual const simtime_t getDuration() const override
Definition: Ieee80211OfdmMode.h:71
inet::printFieldToString
std::string printFieldToString(const IPrintableObject *object, int level, int evFlags=0)
Definition: IPrintableObject.h:98
inet::physicallayer::Ieee80211OfdmMode::dataMode
const Ieee80211OfdmDataMode * dataMode
Definition: Ieee80211OfdmMode.h:135
inet::physicallayer::Ieee80211ModeBase::name
std::string name
Definition: Ieee80211ModeBase.h:19
EV_FIELD
#define EV_FIELD(...)
Definition: INETDefs.h:112
inet::physicallayer::Ieee80211OfdmMode::signalMode
const Ieee80211OfdmSignalMode * signalMode
Definition: Ieee80211OfdmMode.h:134
inet::physicallayer::Ieee80211OfdmDataMode::getDuration
virtual const simtime_t getDuration(b dataLength) const override
Definition: Ieee80211OfdmMode.cc:188
inet::evFlags
int evFlags
Definition: INETDefs.cc:12
inet::units::value::get
const value_type & get() const
Definition: Units.h:108
inet::physicallayer::Ieee80211ModeBase::Ieee80211ModeBase
Ieee80211ModeBase(const char *name)
Definition: Ieee80211ModeBase.h:22
inet::units::units::MHz
mega< Hz >::type MHz
Definition: Units.h:1083
inet::IPrintableObject::PRINT_LEVEL_DEBUG
@ PRINT_LEVEL_DEBUG
Definition: IPrintableObject.h:23