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

#include <Ieee80211VhtMode.h>

Inheritance diagram for inet::physicallayer::Ieee80211VhtSignalMode:
inet::physicallayer::IIeee80211HeaderMode inet::physicallayer::Ieee80211VhtModeBase inet::physicallayer::Ieee80211HtTimingRelatedParametersBase inet::IPrintableObject

Public Member Functions

 Ieee80211VhtSignalMode (unsigned int modulationAndCodingScheme, const Ieee80211OfdmModulation *modulation, const Ieee80211VhtCode *code, const Hz bandwidth, GuardIntervalType guardIntervalType)
 
 Ieee80211VhtSignalMode (unsigned int modulationAndCodingScheme, const Ieee80211OfdmModulation *modulation, const Ieee80211ConvolutionalCode *convolutionalCode, const Hz bandwidth, GuardIntervalType guardIntervalType)
 
virtual ~Ieee80211VhtSignalMode ()
 
virtual b getMCSLength () const
 
virtual b getCBWLength () const
 
virtual b getHTLengthLength () const
 
virtual b getSmoothingLength () const
 
virtual b getNotSoundingLength () const
 
virtual b getReservedLength () const
 
virtual b getAggregationLength () const
 
virtual b getSTBCLength () const
 
virtual b getFECCodingLength () const
 
virtual b getShortGILength () const
 
virtual b getNumOfExtensionSpatialStreamsLength () const
 
virtual b getCRCLength () const
 
virtual b getTailBitsLength () const
 
virtual unsigned int getSTBC () const
 
virtual const simtime_t getHTSIGDuration () const
 
virtual unsigned int getModulationAndCodingScheme () const
 
virtual const simtime_t getDuration () const override
 
virtual b getLength () const override
 
virtual bps getNetBitrate () const override
 
virtual bps getGrossBitrate () const override
 
virtual const Ieee80211OfdmModulationgetModulation () const override
 
virtual const Ieee80211VhtCodegetCode () const
 
virtual Ptr< Ieee80211PhyHeadercreateHeader () const override
 
- Public Member Functions inherited from inet::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level, int evFlags=0) const
 Prints this object to the provided output stream. More...
 
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
 
- Public Member Functions inherited from inet::physicallayer::Ieee80211VhtModeBase
 Ieee80211VhtModeBase (unsigned int modulationAndCodingScheme, unsigned int numberOfSpatialStreams, const Hz bandwidth, GuardIntervalType guardIntervalType)
 
virtual int getNumberOfDataSubcarriers () const
 
virtual int getNumberOfPilotSubcarriers () const
 
virtual int getNumberOfTotalSubcarriers () const
 
virtual GuardIntervalType getGuardIntervalType () const
 
virtual int getNumberOfSpatialStreams () const
 
virtual unsigned int getMcsIndex () const
 
virtual Hz getBandwidth () const
 

Protected Member Functions

virtual bps computeGrossBitrate () const override
 
virtual bps computeNetBitrate () const override
 

Protected Attributes

const Ieee80211OfdmModulationmodulation
 
const Ieee80211VhtCodecode
 
- Protected Attributes inherited from inet::physicallayer::Ieee80211VhtModeBase
const Hz bandwidth
 
const GuardIntervalType guardIntervalType
 
const unsigned int mcsIndex
 
const unsigned int numberOfSpatialStreams
 
bps netBitrate
 
bps grossBitrate
 

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) }
 
- Public Types inherited from inet::physicallayer::Ieee80211VhtModeBase
enum  GuardIntervalType { HT_GUARD_INTERVAL_SHORT, HT_GUARD_INTERVAL_LONG }
 

Constructor & Destructor Documentation

◆ Ieee80211VhtSignalMode() [1/2]

inet::physicallayer::Ieee80211VhtSignalMode::Ieee80211VhtSignalMode ( unsigned int  modulationAndCodingScheme,
const Ieee80211OfdmModulation modulation,
const Ieee80211VhtCode code,
const Hz  bandwidth,
GuardIntervalType  guardIntervalType 
)
46  :
47  Ieee80211VhtModeBase(modulationAndCodingScheme, 1, bandwidth, guardIntervalType),
49  code(code)
50 {
51 }

◆ Ieee80211VhtSignalMode() [2/2]

inet::physicallayer::Ieee80211VhtSignalMode::Ieee80211VhtSignalMode ( unsigned int  modulationAndCodingScheme,
const Ieee80211OfdmModulation modulation,
const Ieee80211ConvolutionalCode convolutionalCode,
const Hz  bandwidth,
GuardIntervalType  guardIntervalType 
)
53  :
54  Ieee80211VhtModeBase(modulationAndCodingScheme, 1, bandwidth, guardIntervalType),
56  code(Ieee80211VhtCompliantCodes::getCompliantCode(convolutionalCode, modulation, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, bandwidth, false))
57 {
58 }

◆ ~Ieee80211VhtSignalMode()

inet::physicallayer::Ieee80211VhtSignalMode::~Ieee80211VhtSignalMode ( )
virtual
715 {
716  delete code;
717 }

Member Function Documentation

◆ computeGrossBitrate()

bps inet::physicallayer::Ieee80211VhtSignalMode::computeGrossBitrate ( ) const
overrideprotectedvirtual

Implements inet::physicallayer::Ieee80211VhtModeBase.

259 {
260  unsigned int numberOfCodedBitsPerSymbol = modulation->getSubcarrierModulation()->getCodeWordSize() * getNumberOfDataSubcarriers();
262  return bps(numberOfCodedBitsPerSymbol / getSymbolInterval());
264  return bps(numberOfCodedBitsPerSymbol / getShortGISymbolInterval());
265  else
266  throw cRuntimeError("Unknown guard interval type");
267 }

Referenced by computeNetBitrate().

◆ computeNetBitrate()

bps inet::physicallayer::Ieee80211VhtSignalMode::computeNetBitrate ( ) const
overrideprotectedvirtual

◆ createHeader()

virtual Ptr<Ieee80211PhyHeader> inet::physicallayer::Ieee80211VhtSignalMode::createHeader ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211HeaderMode.

102 { return makeShared<Ieee80211HtPhyHeader>(); }

◆ getAggregationLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getAggregationLength ( ) const
inlinevirtual
83 { return b(1); }

Referenced by getLength().

◆ getCBWLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getCBWLength ( ) const
inlinevirtual
76 { return b(1); }

Referenced by getLength().

◆ getCode()

virtual const Ieee80211VhtCode* inet::physicallayer::Ieee80211VhtSignalMode::getCode ( ) const
inlinevirtual
100 { return code; }

◆ getCRCLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getCRCLength ( ) const
inlinevirtual
88 { return b(8); }

Referenced by getLength().

◆ getDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtSignalMode::getDuration ( ) const
inlineoverridevirtual

◆ getFECCodingLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getFECCodingLength ( ) const
inlinevirtual
85 { return b(1); }

Referenced by getLength().

◆ getGrossBitrate()

virtual bps inet::physicallayer::Ieee80211VhtSignalMode::getGrossBitrate ( ) const
inlineoverridevirtual

◆ getHTLengthLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getHTLengthLength ( ) const
inlinevirtual
77 { return b(16); }

Referenced by getLength().

◆ getHTSIGDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtSignalMode::getHTSIGDuration ( ) const
inlinevirtual
92 { return 2 * getSymbolInterval(); } // HT-SIG

◆ getLength()

b inet::physicallayer::Ieee80211VhtSignalMode::getLength ( ) const
overridevirtual

◆ getMCSLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getMCSLength ( ) const
inlinevirtual
75 { return b(9); }

Referenced by getLength().

◆ getModulation()

virtual const Ieee80211OfdmModulation* inet::physicallayer::Ieee80211VhtSignalMode::getModulation ( ) const
inlineoverridevirtual

◆ getModulationAndCodingScheme()

virtual unsigned int inet::physicallayer::Ieee80211VhtSignalMode::getModulationAndCodingScheme ( ) const
inlinevirtual
94 { return mcsIndex; }

◆ getNetBitrate()

virtual bps inet::physicallayer::Ieee80211VhtSignalMode::getNetBitrate ( ) const
inlineoverridevirtual

◆ getNotSoundingLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getNotSoundingLength ( ) const
inlinevirtual
81 { return b(1); }

Referenced by getLength().

◆ getNumOfExtensionSpatialStreamsLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getNumOfExtensionSpatialStreamsLength ( ) const
inlinevirtual
87 { return b(2); }

Referenced by getLength().

◆ getReservedLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getReservedLength ( ) const
inlinevirtual
82 { return b(1); }

Referenced by getLength().

◆ getShortGILength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getShortGILength ( ) const
inlinevirtual
86 { return b(1); }

Referenced by getLength().

◆ getSmoothingLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getSmoothingLength ( ) const
inlinevirtual
80 { return b(1); }

Referenced by getLength().

◆ getSTBC()

virtual unsigned int inet::physicallayer::Ieee80211VhtSignalMode::getSTBC ( ) const
inlinevirtual
90 { return 0; } // Limitation: We assume that STBC is not used

Referenced by inet::physicallayer::Ieee80211VhtPreambleMode::computeNumberOfSpaceTimeStreams().

◆ getSTBCLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getSTBCLength ( ) const
inlinevirtual
84 { return b(2); }

Referenced by getLength().

◆ getTailBitsLength()

virtual b inet::physicallayer::Ieee80211VhtSignalMode::getTailBitsLength ( ) const
inlinevirtual
89 { return b(6); }

Referenced by getLength().

Member Data Documentation

◆ code

const Ieee80211VhtCode* inet::physicallayer::Ieee80211VhtSignalMode::code
protected

◆ modulation

const Ieee80211OfdmModulation* inet::physicallayer::Ieee80211VhtSignalMode::modulation
protected

Referenced by computeGrossBitrate().


The documentation for this class was generated from the following files:
inet::physicallayer::Ieee80211VhtModeBase::HT_GUARD_INTERVAL_LONG
@ HT_GUARD_INTERVAL_LONG
Definition: Ieee80211VhtMode.h:27
inet::physicallayer::Ieee80211VhtSignalMode::getMCSLength
virtual b getMCSLength() const
Definition: Ieee80211VhtMode.h:75
inet::physicallayer::ApskModulationBase::getCodeWordSize
virtual unsigned int getCodeWordSize() const override
Definition: ApskModulationBase.h:37
inet::physicallayer::Ieee80211VhtSignalMode::getAggregationLength
virtual b getAggregationLength() const
Definition: Ieee80211VhtMode.h:83
inet::physicallayer::Ieee80211VhtModeBase::bandwidth
const Hz bandwidth
Definition: Ieee80211VhtMode.h:31
inet::units::units::bps
compose< b, pow< s, -1 > > bps
Definition: Units.h:1169
inet::physicallayer::Ieee80211VhtSignalMode::getShortGILength
virtual b getShortGILength() const
Definition: Ieee80211VhtMode.h:86
inet::physicallayer::Ieee80211VhtModeBase::mcsIndex
const unsigned int mcsIndex
Definition: Ieee80211VhtMode.h:33
inet::physicallayer::Ieee80211VhtModeBase::guardIntervalType
const GuardIntervalType guardIntervalType
Definition: Ieee80211VhtMode.h:32
inet::physicallayer::ConvolutionalCode::getCodeRate
virtual double getCodeRate() const override
Definition: ConvolutionalCode.cc:38
inet::physicallayer::Ieee80211VhtSignalMode::getTailBitsLength
virtual b getTailBitsLength() const
Definition: Ieee80211VhtMode.h:89
inet::physicallayer::Ieee80211VhtSignalMode::getHTLengthLength
virtual b getHTLengthLength() const
Definition: Ieee80211VhtMode.h:77
inet::physicallayer::Ieee80211VhtSignalMode::getFECCodingLength
virtual b getFECCodingLength() const
Definition: Ieee80211VhtMode.h:85
inet::physicallayer::Ieee80211VhtModeBase::HT_GUARD_INTERVAL_SHORT
@ HT_GUARD_INTERVAL_SHORT
Definition: Ieee80211VhtMode.h:26
inet::physicallayer::Ieee80211VhtSignalMode::getReservedLength
virtual b getReservedLength() const
Definition: Ieee80211VhtMode.h:82
inet::physicallayer::Ieee80211VhtCompliantCodes::getCompliantCode
static const Ieee80211VhtCode * getCompliantCode(const Ieee80211ConvolutionalCode *convolutionalCode, const Ieee80211OfdmModulation *stream1Modulation, const Ieee80211OfdmModulation *stream2Modulation, const Ieee80211OfdmModulation *stream3Modulation, const Ieee80211OfdmModulation *stream4Modulation, const Ieee80211OfdmModulation *stream5Modulation, const Ieee80211OfdmModulation *stream6Modulation, const Ieee80211OfdmModulation *stream7Modulation, const Ieee80211OfdmModulation *stream8Modulation, Hz bandwidth, bool withScrambling=true)
Definition: Ieee80211VhtCode.cc:26
inet::physicallayer::Ieee80211VhtSignalMode::getCBWLength
virtual b getCBWLength() const
Definition: Ieee80211VhtMode.h:76
inet::physicallayer::Ieee80211VhtSignalMode::getNumOfExtensionSpatialStreamsLength
virtual b getNumOfExtensionSpatialStreamsLength() const
Definition: Ieee80211VhtMode.h:87
inet::physicallayer::Ieee80211VhtCode::getForwardErrorCorrection
const Ieee80211ConvolutionalCode * getForwardErrorCorrection() const
Definition: Ieee80211VhtCode.h:30
inet::physicallayer::Ieee80211OfdmModulation::getSubcarrierModulation
const ApskModulationBase * getSubcarrierModulation() const
Definition: Ieee80211OfdmModulation.h:24
inet::physicallayer::Ieee80211VhtSignalMode::code
const Ieee80211VhtCode * code
Definition: Ieee80211VhtMode.h:61
inet::physicallayer::Ieee80211VhtSignalMode::getNotSoundingLength
virtual b getNotSoundingLength() const
Definition: Ieee80211VhtMode.h:81
inet::units::values::b
value< int64_t, units::b > b
Definition: Units.h:1241
inet::physicallayer::Ieee80211VhtSignalMode::modulation
const Ieee80211OfdmModulation * modulation
Definition: Ieee80211VhtMode.h:60
inet::physicallayer::Ieee80211VhtSignalMode::getSTBCLength
virtual b getSTBCLength() const
Definition: Ieee80211VhtMode.h:84
inet::physicallayer::Ieee80211VhtSignalMode::getCRCLength
virtual b getCRCLength() const
Definition: Ieee80211VhtMode.h:88
inet::physicallayer::Ieee80211VhtSignalMode::getSmoothingLength
virtual b getSmoothingLength() const
Definition: Ieee80211VhtMode.h:80
inet::physicallayer::Ieee80211VhtModeBase::getNumberOfDataSubcarriers
virtual int getNumberOfDataSubcarriers() const
Definition: Ieee80211VhtMode.cc:322
inet::physicallayer::Ieee80211VhtModeBase::getNetBitrate
virtual bps getNetBitrate() const
Definition: Ieee80211VhtMode.cc:308
inet::physicallayer::Ieee80211VhtModeBase::Ieee80211VhtModeBase
Ieee80211VhtModeBase(unsigned int modulationAndCodingScheme, unsigned int numberOfSpatialStreams, const Hz bandwidth, GuardIntervalType guardIntervalType)
Definition: Ieee80211VhtMode.cc:28
inet::physicallayer::Ieee80211VhtModeBase::getGrossBitrate
virtual bps getGrossBitrate() const
Definition: Ieee80211VhtMode.cc:315
inet::physicallayer::Ieee80211VhtSignalMode::computeGrossBitrate
virtual bps computeGrossBitrate() const override
Definition: Ieee80211VhtMode.cc:258
inet::physicallayer::Ieee80211VhtSignalMode::getHTSIGDuration
virtual const simtime_t getHTSIGDuration() const
Definition: Ieee80211VhtMode.h:92