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 Ieee80211HTSignalMode * getSignalMode () const
 
virtual const Ieee80211OFDMSignalMode * getLegacySignalMode () const
 
virtual const Ieee80211HTSignalMode * getHighThroughputSignalMode () 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 Ieee80211HTSignalMode * highThroughputSignalMode
 
const Ieee80211OFDMSignalMode * legacySignalMode
 
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: