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

#include <Ieee80211HTMode.h>

Inheritance diagram for inet::physicallayer::Ieee80211HTPreambleMode:
inet::physicallayer::IIeee80211PreambleMode inet::physicallayer::Ieee80211HTTimingRelatedParametersBase inet::physicallayer::IPrintableObject

Public Types

enum  HighTroughputPreambleFormat { HT_PREAMBLE_MIXED, HT_PREAMBLE_GREENFIELD }
 
- 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

 Ieee80211HTPreambleMode (const Ieee80211HTSignalMode *highThroughputSignalMode, const Ieee80211OFDMSignalMode *legacySignalMode, HighTroughputPreambleFormat preambleFormat, unsigned int numberOfSpatialStream)
 
virtual ~Ieee80211HTPreambleMode ()
 
HighTroughputPreambleFormat getPreambleFormat () const
 
virtual const Ieee80211HTSignalModegetSignalMode () const
 
virtual const Ieee80211OFDMSignalModegetLegacySignalMode () const
 
virtual const Ieee80211HTSignalModegetHighThroughputSignalMode () const
 
virtual unsigned int getNumberOfHTLongTrainings () const
 
virtual const simtime_t getDoubleGIDuration () const
 
virtual const simtime_t getLSIGDuration () const
 
virtual const simtime_t getNonHTShortTrainingSequenceDuration () const
 
virtual const simtime_t getHTGreenfieldShortTrainingFieldDuration () const
 
virtual const simtime_t getNonHTLongTrainingFieldDuration () const
 
virtual const simtime_t getHTShortTrainingFieldDuration () const
 
virtual const simtime_t getFirstHTLongTrainingFieldDuration () const
 
virtual const simtime_t getSecondAndSubsequentHTLongTrainingFielDuration () const
 
virtual const unsigned int getNumberOfHtLongTrainings () const
 
virtual const simtime_t getDuration () const override
 
- 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 unsigned int computeNumberOfSpaceTimeStreams (unsigned int numberOfSpatialStreams) const
 
virtual unsigned int computeNumberOfHTLongTrainings (unsigned int numberOfSpaceTimeStreams) const
 

Protected Attributes

const Ieee80211HTSignalModehighThroughputSignalMode
 
const Ieee80211OFDMSignalModelegacySignalMode
 
const HighTroughputPreambleFormat preambleFormat
 
const unsigned int numberOfHTLongTrainings
 

Member Enumeration Documentation

Enumerator
HT_PREAMBLE_MIXED 
HT_PREAMBLE_GREENFIELD 
130  {
131  HT_PREAMBLE_MIXED, // can be received by non-HT STAs compliant with Clause 18 or Clause 19
132  HT_PREAMBLE_GREENFIELD // all of the non-HT fields are omitted
133  };

Constructor & Destructor Documentation

inet::physicallayer::Ieee80211HTPreambleMode::Ieee80211HTPreambleMode ( const Ieee80211HTSignalMode highThroughputSignalMode,
const Ieee80211OFDMSignalMode legacySignalMode,
HighTroughputPreambleFormat  preambleFormat,
unsigned int  numberOfSpatialStream 
)
46  :
51 {
52 }
const Ieee80211OFDMSignalMode * legacySignalMode
Definition: Ieee80211HTMode.h:137
const unsigned int numberOfHTLongTrainings
Definition: Ieee80211HTMode.h:139
virtual unsigned int computeNumberOfSpaceTimeStreams(unsigned int numberOfSpatialStreams) const
Definition: Ieee80211HTMode.cc:141
const HighTroughputPreambleFormat preambleFormat
Definition: Ieee80211HTMode.h:138
const Ieee80211HTSignalMode * highThroughputSignalMode
Definition: Ieee80211HTMode.h:136
virtual unsigned int computeNumberOfHTLongTrainings(unsigned int numberOfSpaceTimeStreams) const
Definition: Ieee80211HTMode.cc:147
virtual inet::physicallayer::Ieee80211HTPreambleMode::~Ieee80211HTPreambleMode ( )
inlinevirtual
147 { delete highThroughputSignalMode; }
const Ieee80211HTSignalMode * highThroughputSignalMode
Definition: Ieee80211HTMode.h:136

Member Function Documentation

unsigned int inet::physicallayer::Ieee80211HTPreambleMode::computeNumberOfHTLongTrainings ( unsigned int  numberOfSpaceTimeStreams) const
protectedvirtual
148 {
149  // If the transmitter is providing training for exactly the space-time
150  // streams (spatial mapper inputs) used for the transmission of the PSDU,
151  // the number of training symbols, N_LTF, is equal to the number of space-time
152  // streams, N STS, except that for three space-time streams, four training symbols
153  // are required.
154  return numberOfSpaceTimeStreams == 3 ? 4 : numberOfSpaceTimeStreams;
155 }
unsigned int inet::physicallayer::Ieee80211HTPreambleMode::computeNumberOfSpaceTimeStreams ( unsigned int  numberOfSpatialStreams) const
protectedvirtual
142 {
143  // Table 20-12—Determining the number of space-time streams
144  return numberOfSpatialStreams + highThroughputSignalMode->getSTBC();
145 }
virtual unsigned int getSTBC() const
Definition: Ieee80211HTMode.h:110
const Ieee80211HTSignalMode * highThroughputSignalMode
Definition: Ieee80211HTMode.h:136
virtual const simtime_t inet::physicallayer::Ieee80211HTPreambleMode::getDoubleGIDuration ( ) const
inlinevirtual
155 { return 2 * getGIDuration(); } // GI2
const simtime_t inet::physicallayer::Ieee80211HTPreambleMode::getDuration ( ) const
overridevirtual

Implements inet::physicallayer::IIeee80211PreambleMode.

Referenced by inet::physicallayer::Ieee80211HTMode::getDuration().

158 {
159  // 20.3.7 Mathematical description of signals
162  // L-STF -> L-LTF -> L-SIG -> HT-SIG -> HT-STF -> HT-LTF1 -> HT-LTF2 -> ... -> HT_LTFn
165  // HT-GF-STF -> HT-LTF1 -> HT-SIG -> HT-LTF2 -> ... -> HT-LTFn
167  else
168  throw cRuntimeError("Unknown preamble format");
169 }
virtual const simtime_t getDuration() const override
Definition: Ieee80211OFDMMode.h:104
const Ieee80211OFDMSignalMode * legacySignalMode
Definition: Ieee80211HTMode.h:137
virtual const simtime_t getFirstHTLongTrainingFieldDuration() const
Definition: Ieee80211HTMode.cc:130
virtual const simtime_t getDuration() const override
Definition: Ieee80211HTMode.h:115
virtual const simtime_t getNonHTShortTrainingSequenceDuration() const
Definition: Ieee80211HTMode.h:157
const unsigned int numberOfHTLongTrainings
Definition: Ieee80211HTMode.h:139
virtual const simtime_t getHTGreenfieldShortTrainingFieldDuration() const
Definition: Ieee80211HTMode.h:158
virtual const simtime_t getHTShortTrainingFieldDuration() const
Definition: Ieee80211HTMode.h:160
const HighTroughputPreambleFormat preambleFormat
Definition: Ieee80211HTMode.h:138
virtual const simtime_t getNonHTLongTrainingFieldDuration() const
Definition: Ieee80211HTMode.h:159
virtual const simtime_t getSecondAndSubsequentHTLongTrainingFielDuration() const
Definition: Ieee80211HTMode.h:162
const Ieee80211HTSignalMode * highThroughputSignalMode
Definition: Ieee80211HTMode.h:136
const simtime_t inet::physicallayer::Ieee80211HTPreambleMode::getFirstHTLongTrainingFieldDuration ( ) const
virtual
131 {
133  return simtime_t(4E-6);
135  return simtime_t(8E-6);
136  else
137  throw cRuntimeError("Unknown preamble format");
138 }
const HighTroughputPreambleFormat preambleFormat
Definition: Ieee80211HTMode.h:138
virtual const Ieee80211HTSignalMode* inet::physicallayer::Ieee80211HTPreambleMode::getHighThroughputSignalMode ( ) const
inlinevirtual
152 { return highThroughputSignalMode; }
const Ieee80211HTSignalMode * highThroughputSignalMode
Definition: Ieee80211HTMode.h:136
virtual const simtime_t inet::physicallayer::Ieee80211HTPreambleMode::getHTGreenfieldShortTrainingFieldDuration ( ) const
inlinevirtual
158 { return 10 * getDFTPeriod() / 4; } // HT-GF-STF
virtual const simtime_t inet::physicallayer::Ieee80211HTPreambleMode::getHTShortTrainingFieldDuration ( ) const
inlinevirtual
160 { return 4E-6; } // HT-STF
virtual const Ieee80211OFDMSignalMode* inet::physicallayer::Ieee80211HTPreambleMode::getLegacySignalMode ( ) const
inlinevirtual

Referenced by inet::physicallayer::Ieee80211HTMode::getLegacySignalMode().

151 { return legacySignalMode; }
const Ieee80211OFDMSignalMode * legacySignalMode
Definition: Ieee80211HTMode.h:137
virtual const simtime_t inet::physicallayer::Ieee80211HTPreambleMode::getLSIGDuration ( ) const
inlinevirtual
156 { return getSymbolInterval(); } // L-SIG
virtual const simtime_t inet::physicallayer::Ieee80211HTPreambleMode::getNonHTLongTrainingFieldDuration ( ) const
inlinevirtual
159 { return 2 * getDFTPeriod() + getDoubleGIDuration(); } // L-LTF
virtual const simtime_t getDoubleGIDuration() const
Definition: Ieee80211HTMode.h:155
virtual const simtime_t inet::physicallayer::Ieee80211HTPreambleMode::getNonHTShortTrainingSequenceDuration ( ) const
inlinevirtual
157 { return 10 * getDFTPeriod() / 4; } // L-STF
virtual unsigned int inet::physicallayer::Ieee80211HTPreambleMode::getNumberOfHTLongTrainings ( ) const
inlinevirtual
153 { return numberOfHTLongTrainings; }
const unsigned int numberOfHTLongTrainings
Definition: Ieee80211HTMode.h:139
virtual const unsigned int inet::physicallayer::Ieee80211HTPreambleMode::getNumberOfHtLongTrainings ( ) const
inlinevirtual
163 { return numberOfHTLongTrainings; }
const unsigned int numberOfHTLongTrainings
Definition: Ieee80211HTMode.h:139
HighTroughputPreambleFormat inet::physicallayer::Ieee80211HTPreambleMode::getPreambleFormat ( ) const
inline
149 { return preambleFormat; }
const HighTroughputPreambleFormat preambleFormat
Definition: Ieee80211HTMode.h:138
virtual const simtime_t inet::physicallayer::Ieee80211HTPreambleMode::getSecondAndSubsequentHTLongTrainingFielDuration ( ) const
inlinevirtual
162 { return 4E-6; } // HT-LTFs, s = 2,3,..,n
virtual const Ieee80211HTSignalMode* inet::physicallayer::Ieee80211HTPreambleMode::getSignalMode ( ) const
inlinevirtual

Referenced by inet::physicallayer::Ieee80211HTMode::getHeaderMode().

150 { return highThroughputSignalMode; }
const Ieee80211HTSignalMode * highThroughputSignalMode
Definition: Ieee80211HTMode.h:136

Member Data Documentation

const Ieee80211HTSignalMode* inet::physicallayer::Ieee80211HTPreambleMode::highThroughputSignalMode
protected
const Ieee80211OFDMSignalMode* inet::physicallayer::Ieee80211HTPreambleMode::legacySignalMode
protected
const unsigned int inet::physicallayer::Ieee80211HTPreambleMode::numberOfHTLongTrainings
protected
const HighTroughputPreambleFormat inet::physicallayer::Ieee80211HTPreambleMode::preambleFormat
protected

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