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

#include <ApskModulator.h>

Inheritance diagram for inet::physicallayer::ApskModulator:
inet::physicallayer::IModulator inet::IPrintableObject

Public Member Functions

 ApskModulator ()
 
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 IModulationgetModulation () const override
 
virtual const ITransmissionSymbolModelmodulate (const ITransmissionBitModel *bitModel) const override
 
- 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 numInitStages () const override
 
virtual void initialize (int stage) override
 

Protected Attributes

const ApskModulationBasemodulation
 

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

◆ ApskModulator()

inet::physicallayer::ApskModulator::ApskModulator ( )
21  :
22  modulation(nullptr)
23 {
24 }

Member Function Documentation

◆ getModulation()

virtual const IModulation* inet::physicallayer::ApskModulator::getModulation ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IModulator.

34 { return modulation; }

◆ initialize()

void inet::physicallayer::ApskModulator::initialize ( int  stage)
overrideprotectedvirtual
27 {
28  if (stage == INITSTAGE_LOCAL)
30 }

◆ modulate()

const ITransmissionSymbolModel * inet::physicallayer::ApskModulator::modulate ( const ITransmissionBitModel bitModel) const
overridevirtual

Implements inet::physicallayer::IModulator.

41 {
42  const BitVector *bits = bitModel->getBits();
43  unsigned int codeWordSize = modulation->getCodeWordSize();
44  if (bits->getSize() % codeWordSize != 0)
45  throw cRuntimeError("Invalid bit length for code word size");
46  ShortBitVector symbolBits;
47  std::vector<const ISymbol *> *symbols = new std::vector<const ISymbol *>();
48  for (unsigned int i = 0; i < bits->getSize(); i++) {
49  symbolBits.setBit(i % codeWordSize, bits->getBit(i));
50  if (i % codeWordSize == codeWordSize - 1)
51  symbols->push_back(modulation->mapToConstellationDiagram(symbolBits));
52  }
53  // TODO double symbolRate = bitModel->getBitRate() / modulation->getCodeWordSize();
54  return new TransmissionSymbolModel(symbols->size(), NaN, symbols->size(), NaN, symbols, modulation, modulation);
55 }

◆ numInitStages()

virtual int inet::physicallayer::ApskModulator::numInitStages ( ) const
inlineoverrideprotectedvirtual
27 { return NUM_INIT_STAGES; }

◆ printToStream()

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

Prints this object to the provided output stream.

Reimplemented from inet::IPrintableObject.

33 {
34  stream << "ApskModulator";
35  if (level <= PRINT_LEVEL_TRACE)
36  stream << EV_FIELD(modulation, printFieldToString(modulation, level + 1, evFlags));
37  return stream;
38 }

Member Data Documentation

◆ modulation

const ApskModulationBase* inet::physicallayer::ApskModulator::modulation
protected

Referenced by initialize(), modulate(), and printToStream().


The documentation for this class was generated from the following files:
inet::physicallayer::ApskModulationBase::getCodeWordSize
virtual unsigned int getCodeWordSize() const override
Definition: ApskModulationBase.h:37
inet::physicallayer::ApskModulationBase::mapToConstellationDiagram
virtual const ApskSymbol * mapToConstellationDiagram(const ShortBitVector &symbol) const
Definition: ApskModulationBase.cc:62
inet::printFieldToString
std::string printFieldToString(const IPrintableObject *object, int level, int evFlags=0)
Definition: IPrintableObject.h:98
EV_FIELD
#define EV_FIELD(...)
Definition: INETDefs.h:112
NaN
#define NaN
Definition: INETMath.h:91
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::physicallayer::ApskModulator::modulation
const ApskModulationBase * modulation
Definition: ApskModulator.h:24
inet::IPrintableObject::PRINT_LEVEL_TRACE
@ PRINT_LEVEL_TRACE
Definition: IPrintableObject.h:22
inet::physicallayer::ApskModulationBase::findModulation
const static ApskModulationBase * findModulation(const char *name)
Definition: ApskModulationBase.cc:38
NUM_INIT_STAGES
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
inet::evFlags
int evFlags
Definition: INETDefs.cc:12