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

#include <APSKLayeredReceiver.h>

Inheritance diagram for inet::physicallayer::APSKLayeredReceiver:
inet::physicallayer::SNIRReceiverBase inet::physicallayer::ReceiverBase inet::physicallayer::IReceiver inet::physicallayer::IPrintableObject

Public Types

enum  LevelOfDetail { PACKET_DOMAIN, BIT_DOMAIN, SYMBOL_DOMAIN, SAMPLE_DOMAIN }
 
- 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

 APSKLayeredReceiver ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level) const override
 Prints this object to the provided output stream. More...
 
virtual const IDecodergetDecoder () const
 
virtual const IDemodulatorgetModulator () const
 
virtual const IPulseFiltergetPulseFilter () const
 
virtual const IAnalogDigitalConvertergetAnalogDigitalConverter () const
 
virtual bool computeIsReceptionPossible (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part) const override
 Returns whether the reception of the provided part is possible or not. More...
 
virtual const IListeningcreateListening (const IRadio *radio, const simtime_t startTime, const simtime_t endTime, const Coord startPosition, const Coord endPosition) const override
 Returns a description of how the receiver is listening on the medium. More...
 
virtual const IListeningDecisioncomputeListeningDecision (const IListening *listening, const IInterference *interference) const override
 Returns the result of the listening process specifying the reception state of the receiver. More...
 
virtual const IReceptionResultcomputeReceptionResult (const IListening *listening, const IReception *reception, const IInterference *interference, const ISNIR *snir) const override
 Returns the complete result of the reception process for the provided reception. More...
 
- Public Member Functions inherited from inet::physicallayer::SNIRReceiverBase
 SNIRReceiverBase ()
 
virtual double getSNIRThreshold () const
 
virtual bool computeIsReceptionSuccessful (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part, const IInterference *interference, const ISNIR *snir) const override
 Returns whether the reception of the provided part is actually successful or failed by the receiver. More...
 
- Public Member Functions inherited from inet::physicallayer::ReceiverBase
 ReceiverBase ()
 
virtual W getMinInterferencePower () const override
 Returns the minimum interference power below which receptions are to be ignored while computing the interference. More...
 
virtual W getMinReceptionPower () const override
 Returns the minimum reception power below which successful reception is definitely not possible. More...
 
virtual bool computeIsReceptionPossible (const IListening *listening, const ITransmission *transmission) const override
 Returns whether the reception of the provided transmission is possible or not independently of the reception conditions. More...
 
virtual bool computeIsReceptionAttempted (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part, const IInterference *interference) const override
 Returns whether the reception of the provided part is actually attempted or ignored by the receiver. More...
 
virtual const IReceptionDecisioncomputeReceptionDecision (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part, const IInterference *interference, const ISNIR *snir) const override
 Returns the reception decision for the transmission part that specifies whether the reception is possible, attempted, and successful. More...
 
virtual ReceptionIndicationcreateReceptionIndication () const
 Returns an empty reception indication (control info). More...
 
- Public Member Functions inherited from inet::physicallayer::IPrintableObject
virtual ~IPrintableObject ()
 
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 void initialize (int stage) override
 
virtual const IReceptionAnalogModelcreateAnalogModel (const LayeredTransmission *transmission, const ISNIR *snir) const
 
virtual const IReceptionSampleModelcreateSampleModel (const LayeredTransmission *transmission, const ISNIR *snir, const IReceptionAnalogModel *analogModel) const
 
virtual const IReceptionSymbolModelcreateSymbolModel (const LayeredTransmission *transmission, const ISNIR *snir, const IReceptionSampleModel *sampleModel) const
 
virtual const IReceptionBitModelcreateBitModel (const LayeredTransmission *transmission, const ISNIR *snir, const IReceptionSymbolModel *symbolModel) const
 
virtual const IReceptionPacketModelcreatePacketModel (const LayeredTransmission *transmission, const ISNIR *snir, const IReceptionBitModel *bitModel) const
 
virtual const APSKPhyFramecreatePhyFrame (const IReceptionPacketModel *packetModel) const
 
- Protected Member Functions inherited from inet::physicallayer::SNIRReceiverBase
virtual const ReceptionIndicationcomputeReceptionIndication (const ISNIR *snir) const override
 Returns the physical properties of the reception including noise and signal related measures, error probabilities, actual error counts, etc. More...
 
- Protected Member Functions inherited from inet::physicallayer::ReceiverBase
virtual int numInitStages () const override
 

Protected Attributes

LevelOfDetail levelOfDetail
 
const ILayeredErrorModelerrorModel
 
const IDecoderdecoder
 
const IDemodulatordemodulator
 
const IPulseFilterpulseFilter
 
const IAnalogDigitalConverteranalogDigitalConverter
 
W energyDetection
 
W sensitivity
 
Hz carrierFrequency
 
Hz bandwidth
 
double snirThreshold
 
- Protected Attributes inherited from inet::physicallayer::SNIRReceiverBase
double snirThreshold
 

Member Enumeration Documentation

Enumerator
PACKET_DOMAIN 
BIT_DOMAIN 
SYMBOL_DOMAIN 
SAMPLE_DOMAIN 
41  {
43  BIT_DOMAIN,
46  };
Definition: APSKLayeredReceiver.h:43

Constructor & Destructor Documentation

inet::physicallayer::APSKLayeredReceiver::APSKLayeredReceiver ( )
41  :
43  errorModel(nullptr),
44  decoder(nullptr),
45  demodulator(nullptr),
46  pulseFilter(nullptr),
47  analogDigitalConverter(nullptr),
49  sensitivity(W(NaN)),
51  bandwidth(Hz(NaN)),
53 {
54 }
double snirThreshold
Definition: APSKLayeredReceiver.h:59
pow< s,-1 > Hz
Definition: Units.h:766
LevelOfDetail
Definition: APSKLayeredReceiver.h:41
const IDemodulator * demodulator
Definition: APSKLayeredReceiver.h:52
W sensitivity
Definition: APSKLayeredReceiver.h:56
LevelOfDetail levelOfDetail
Definition: APSKLayeredReceiver.h:49
const IPulseFilter * pulseFilter
Definition: APSKLayeredReceiver.h:53
const IAnalogDigitalConverter * analogDigitalConverter
Definition: APSKLayeredReceiver.h:54
compose< J, pow< s,-1 > > W
Definition: Units.h:770
#define NaN
Definition: INETMath.h:103
const ILayeredErrorModel * errorModel
Definition: APSKLayeredReceiver.h:50
const IDecoder * decoder
Definition: APSKLayeredReceiver.h:51
Hz carrierFrequency
Definition: APSKLayeredReceiver.h:57
Hz bandwidth
Definition: APSKLayeredReceiver.h:58
W energyDetection
Definition: APSKLayeredReceiver.h:55

Member Function Documentation

bool inet::physicallayer::APSKLayeredReceiver::computeIsReceptionPossible ( const IListening listening,
const IReception reception,
IRadioSignal::SignalPart  part 
) const
overridevirtual

Returns whether the reception of the provided part is possible or not.

For example, it might check if the reception power is above sensitivity.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Reimplemented from inet::physicallayer::ReceiverBase.

208 {
209  const BandListening *bandListening = check_and_cast<const BandListening *>(listening);
210  const LayeredReception *scalarReception = check_and_cast<const LayeredReception *>(reception);
211  // TODO: scalar
212  const ScalarReceptionSignalAnalogModel *analogModel = check_and_cast<const ScalarReceptionSignalAnalogModel *>(scalarReception->getAnalogModel());
213  if (bandListening->getCarrierFrequency() != analogModel->getCarrierFrequency() || bandListening->getBandwidth() != analogModel->getBandwidth()) {
214  EV_DEBUG << "Computing reception possible: listening and reception bands are different -> reception is impossible" << endl;
215  return false;
216  }
217  else {
218  const INarrowbandSignal *narrowbandSignalAnalogModel = check_and_cast<const INarrowbandSignal *>(scalarReception->getAnalogModel());
219  W minReceptionPower = narrowbandSignalAnalogModel->computeMinPower(reception->getStartTime(), reception->getEndTime());
220  bool isReceptionPossible = minReceptionPower >= sensitivity;
221  EV_DEBUG << "Computing reception possible: minimum reception power = " << minReceptionPower << ", sensitivity = " << sensitivity << " -> reception is " << (isReceptionPossible ? "possible" : "impossible") << endl;
222  return isReceptionPossible;
223  }
224 }
W sensitivity
Definition: APSKLayeredReceiver.h:56
compose< J, pow< s,-1 > > W
Definition: Units.h:770
const IListeningDecision * inet::physicallayer::APSKLayeredReceiver::computeListeningDecision ( const IListening listening,
const IInterference interference 
) const
overridevirtual

Returns the result of the listening process specifying the reception state of the receiver.

This function must be purely functional and support optimistic parallel computation.

Implements inet::physicallayer::IReceiver.

192 {
193  const IRadio *receiver = listening->getReceiver();
194  const IRadioMedium *radioMedium = receiver->getMedium();
195  const IAnalogModel *analogModel = radioMedium->getAnalogModel();
196  const INoise *noise = analogModel->computeNoise(listening, interference);
197  const NarrowbandNoiseBase *flatNoise = check_and_cast<const NarrowbandNoiseBase *>(noise);
198  W maxPower = flatNoise->computeMaxPower(listening->getStartTime(), listening->getEndTime());
199  bool isListeningPossible = maxPower >= energyDetection;
200  delete noise;
201  EV_DEBUG << "Computing listening possible: maximum power = " << maxPower << ", energy detection = " << energyDetection << " -> listening is " << (isListeningPossible ? "possible" : "impossible") << endl;
202  return new ListeningDecision(listening, isListeningPossible);
203 }
compose< J, pow< s,-1 > > W
Definition: Units.h:770
W energyDetection
Definition: APSKLayeredReceiver.h:55
const IReceptionResult * inet::physicallayer::APSKLayeredReceiver::computeReceptionResult ( const IListening listening,
const IReception reception,
const IInterference interference,
const ISNIR snir 
) const
overridevirtual

Returns the complete result of the reception process for the provided reception.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Reimplemented from inet::physicallayer::ReceiverBase.

165 {
166  const LayeredTransmission *transmission = dynamic_cast<const LayeredTransmission *>(reception->getTransmission());
167  const IReceptionAnalogModel *analogModel = createAnalogModel(transmission, snir);
168  const IReceptionSampleModel *sampleModel = createSampleModel(transmission, snir, analogModel);
169  const IReceptionSymbolModel *symbolModel = createSymbolModel(transmission, snir, sampleModel);
170  const IReceptionBitModel *bitModel = createBitModel(transmission, snir, symbolModel);
171  const IReceptionPacketModel *packetModel = createPacketModel(transmission, snir, bitModel);
172  const APSKPhyFrame *phyFrame = createPhyFrame(packetModel);
173  ReceptionIndication *receptionIndication = new ReceptionIndication();
174  receptionIndication->setMinSNIR(snir->getMin());
175 // receptionIndication->setMinRSSI(analogModel->getMinRSSI());
176 // receptionIndication->setSymbolErrorRate(bitModel->getBitErrorRate());
177 // receptionIndication->setBitErrorRate(symbolModel->getSymbolErrorRate());
178 // receptionIndication->setPacketErrorRate(packetModel->getPacketErrorRate());
179  const ReceptionPacketModel *receptionPacketModel = new ReceptionPacketModel(phyFrame, new BitVector(*packetModel->getSerializedPacket()), bps(NaN), -1, packetModel->isPacketErrorless());
180  delete packetModel;
181 // TODO: true, true, receptionPacketModel->isPacketErrorless()
182  return new LayeredReceptionResult(reception, new std::vector<const IReceptionDecision *>(), receptionIndication, receptionPacketModel, bitModel, symbolModel, sampleModel, analogModel);
183 }
virtual const IReceptionBitModel * createBitModel(const LayeredTransmission *transmission, const ISNIR *snir, const IReceptionSymbolModel *symbolModel) const
Definition: APSKLayeredReceiver.cc:135
virtual const IReceptionAnalogModel * createAnalogModel(const LayeredTransmission *transmission, const ISNIR *snir) const
Definition: APSKLayeredReceiver.cc:90
compose< b, pow< s,-1 > > bps
Definition: Units.h:985
virtual const IReceptionSymbolModel * createSymbolModel(const LayeredTransmission *transmission, const ISNIR *snir, const IReceptionSampleModel *sampleModel) const
Definition: APSKLayeredReceiver.cc:125
#define NaN
Definition: INETMath.h:103
virtual const IReceptionPacketModel * createPacketModel(const LayeredTransmission *transmission, const ISNIR *snir, const IReceptionBitModel *bitModel) const
Definition: APSKLayeredReceiver.cc:145
virtual const APSKPhyFrame * createPhyFrame(const IReceptionPacketModel *packetModel) const
Definition: APSKLayeredReceiver.cc:155
virtual const IReceptionSampleModel * createSampleModel(const LayeredTransmission *transmission, const ISNIR *snir, const IReceptionAnalogModel *analogModel) const
Definition: APSKLayeredReceiver.cc:115
const IReceptionAnalogModel * inet::physicallayer::APSKLayeredReceiver::createAnalogModel ( const LayeredTransmission transmission,
const ISNIR snir 
) const
protectedvirtual

Referenced by computeReceptionResult().

91 {
92  // TODO: interference + receptionAnalogModel;
93  return nullptr;
94 }
const IReceptionBitModel * inet::physicallayer::APSKLayeredReceiver::createBitModel ( const LayeredTransmission transmission,
const ISNIR snir,
const IReceptionSymbolModel symbolModel 
) const
protectedvirtual

Referenced by computeReceptionResult().

136 {
137  if (levelOfDetail == BIT_DOMAIN)
138  return errorModel->computeBitModel(transmission, snir);
139  else if (levelOfDetail >= SYMBOL_DOMAIN)
140  return demodulator->demodulate(symbolModel);
141  else
142  return nullptr;
143 }
const IDemodulator * demodulator
Definition: APSKLayeredReceiver.h:52
Definition: APSKLayeredReceiver.h:43
LevelOfDetail levelOfDetail
Definition: APSKLayeredReceiver.h:49
virtual const IReceptionBitModel * demodulate(const IReceptionSymbolModel *symbolModel) const =0
const ILayeredErrorModel * errorModel
Definition: APSKLayeredReceiver.h:50
virtual const IReceptionBitModel * computeBitModel(const LayeredTransmission *transmission, const ISNIR *snir) const =0
Computes the bit domain representation at the receiver using a simplified model for the underlying do...
const IListening * inet::physicallayer::APSKLayeredReceiver::createListening ( const IRadio radio,
const simtime_t  startTime,
const simtime_t  endTime,
const Coord  startPosition,
const Coord  endPosition 
) const
overridevirtual

Returns a description of how the receiver is listening on the medium.

Implements inet::physicallayer::IReceiver.

186 {
187  return new BandListening(radio, startTime, endTime, startPosition, endPosition, carrierFrequency, bandwidth);
188 }
Hz carrierFrequency
Definition: APSKLayeredReceiver.h:57
Hz bandwidth
Definition: APSKLayeredReceiver.h:58
const IReceptionPacketModel * inet::physicallayer::APSKLayeredReceiver::createPacketModel ( const LayeredTransmission transmission,
const ISNIR snir,
const IReceptionBitModel bitModel 
) const
protectedvirtual

Referenced by computeReceptionResult().

146 {
148  return errorModel->computePacketModel(transmission, snir);
149  else if (levelOfDetail >= BIT_DOMAIN)
150  return decoder->decode(bitModel);
151  else
152  return nullptr;
153 }
Definition: APSKLayeredReceiver.h:43
LevelOfDetail levelOfDetail
Definition: APSKLayeredReceiver.h:49
virtual const IReceptionPacketModel * computePacketModel(const LayeredTransmission *transmission, const ISNIR *snir) const =0
Computes the packet domain representation at the receiver using a simplified model for the underlying...
virtual const IReceptionPacketModel * decode(const IReceptionBitModel *bitModel) const =0
const ILayeredErrorModel * errorModel
Definition: APSKLayeredReceiver.h:50
const IDecoder * decoder
Definition: APSKLayeredReceiver.h:51
const APSKPhyFrame * inet::physicallayer::APSKLayeredReceiver::createPhyFrame ( const IReceptionPacketModel packetModel) const
protectedvirtual

Referenced by computeReceptionResult().

156 {
157  const BitVector *bits = packetModel->getSerializedPacket();
158  if (bits != nullptr)
159  return APSKPhyFrameSerializer().deserialize(bits);
160  else
161  return check_and_cast<const APSKPhyFrame *>(packetModel->getPacket()->dup());
162 }
const IReceptionSampleModel * inet::physicallayer::APSKLayeredReceiver::createSampleModel ( const LayeredTransmission transmission,
const ISNIR snir,
const IReceptionAnalogModel analogModel 
) const
protectedvirtual

Referenced by computeReceptionResult().

116 {
118  return errorModel->computeSampleModel(transmission, snir);
119  else if (analogDigitalConverter)
120  return analogDigitalConverter->convertAnalogToDigital(analogModel);
121  else
122  return nullptr;
123 }
virtual const IReceptionSampleModel * convertAnalogToDigital(const IReceptionAnalogModel *analogModel) const =0
LevelOfDetail levelOfDetail
Definition: APSKLayeredReceiver.h:49
const IAnalogDigitalConverter * analogDigitalConverter
Definition: APSKLayeredReceiver.h:54
const ILayeredErrorModel * errorModel
Definition: APSKLayeredReceiver.h:50
virtual const IReceptionSampleModel * computeSampleModel(const LayeredTransmission *transmission, const ISNIR *snir) const =0
Computes the sample domain representation at the receiver using a simplified model for the underlying...
const IReceptionSymbolModel * inet::physicallayer::APSKLayeredReceiver::createSymbolModel ( const LayeredTransmission transmission,
const ISNIR snir,
const IReceptionSampleModel sampleModel 
) const
protectedvirtual

Referenced by computeReceptionResult().

126 {
128  return errorModel->computeSymbolModel(transmission, snir);
129  else if (levelOfDetail >= SAMPLE_DOMAIN)
130  return pulseFilter->filter(sampleModel);
131  else
132  return nullptr;
133 }
LevelOfDetail levelOfDetail
Definition: APSKLayeredReceiver.h:49
const IPulseFilter * pulseFilter
Definition: APSKLayeredReceiver.h:53
virtual const IReceptionSymbolModel * computeSymbolModel(const LayeredTransmission *transmission, const ISNIR *snir) const =0
Computes the symbol domain representation at the receiver using a simplified model for the underlying...
const ILayeredErrorModel * errorModel
Definition: APSKLayeredReceiver.h:50
virtual const IReceptionSymbolModel * filter(const IReceptionSampleModel *sampleModel) const =0
virtual const IAnalogDigitalConverter* inet::physicallayer::APSKLayeredReceiver::getAnalogDigitalConverter ( ) const
inlinevirtual
78 { return analogDigitalConverter; }
const IAnalogDigitalConverter * analogDigitalConverter
Definition: APSKLayeredReceiver.h:54
virtual const IDecoder* inet::physicallayer::APSKLayeredReceiver::getDecoder ( ) const
inlinevirtual
75 { return decoder; }
const IDecoder * decoder
Definition: APSKLayeredReceiver.h:51
virtual const IDemodulator* inet::physicallayer::APSKLayeredReceiver::getModulator ( ) const
inlinevirtual
76 { return demodulator; }
const IDemodulator * demodulator
Definition: APSKLayeredReceiver.h:52
virtual const IPulseFilter* inet::physicallayer::APSKLayeredReceiver::getPulseFilter ( ) const
inlinevirtual
77 { return pulseFilter; }
const IPulseFilter * pulseFilter
Definition: APSKLayeredReceiver.h:53
void inet::physicallayer::APSKLayeredReceiver::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::physicallayer::SNIRReceiverBase.

57 {
58  if (stage == INITSTAGE_LOCAL) {
59  errorModel = dynamic_cast<ILayeredErrorModel *>(getSubmodule("errorModel"));
60  decoder = dynamic_cast<IDecoder *>(getSubmodule("decoder"));
61  demodulator = dynamic_cast<IDemodulator *>(getSubmodule("demodulator"));
62  pulseFilter = dynamic_cast<IPulseFilter *>(getSubmodule("pulseFilter"));
63  analogDigitalConverter = dynamic_cast<IAnalogDigitalConverter *>(getSubmodule("analogDigitalConverter"));
64  energyDetection = mW(math::dBm2mW(par("energyDetection")));
65  // TODO: temporary parameters
66  sensitivity = mW(math::dBm2mW(par("sensitivity")));
67  carrierFrequency = Hz(par("carrierFrequency"));
68  bandwidth = Hz(par("bandwidth"));
69  snirThreshold = math::dB2fraction(par("snirThreshold"));
70  const char *levelOfDetailStr = par("levelOfDetail").stringValue();
71  if (strcmp("packet", levelOfDetailStr) == 0)
73  else if (strcmp("bit", levelOfDetailStr) == 0)
75  else if (strcmp("symbol", levelOfDetailStr) == 0)
77  else if (strcmp("sample", levelOfDetailStr) == 0)
79  else
80  throw cRuntimeError("Unknown level of detail='%s'", levelOfDetailStr);
81  if (levelOfDetail >= BIT_DOMAIN && !decoder)
82  throw cRuntimeError("Decoder not configured");
84  throw cRuntimeError("Demodulator not configured");
86  throw cRuntimeError("Pulse filter not configured");
87  }
88 }
double snirThreshold
Definition: APSKLayeredReceiver.h:59
pow< s,-1 > Hz
Definition: Units.h:766
const IDemodulator * demodulator
Definition: APSKLayeredReceiver.h:52
Definition: APSKLayeredReceiver.h:43
W sensitivity
Definition: APSKLayeredReceiver.h:56
LevelOfDetail levelOfDetail
Definition: APSKLayeredReceiver.h:49
double dBm2mW(double dBm)
Converts a dBm value into milliwatts.
Definition: INETMath.h:176
const IPulseFilter * pulseFilter
Definition: APSKLayeredReceiver.h:53
const IAnalogDigitalConverter * analogDigitalConverter
Definition: APSKLayeredReceiver.h:54
double dB2fraction(double dB)
Converts a dB value to fraction.
Definition: INETMath.h:166
Local initializations.
Definition: InitStages.h:35
const ILayeredErrorModel * errorModel
Definition: APSKLayeredReceiver.h:50
const IDecoder * decoder
Definition: APSKLayeredReceiver.h:51
Hz carrierFrequency
Definition: APSKLayeredReceiver.h:57
milli< W >::type mW
Definition: Units.h:903
Hz bandwidth
Definition: APSKLayeredReceiver.h:58
W energyDetection
Definition: APSKLayeredReceiver.h:55
std::ostream & inet::physicallayer::APSKLayeredReceiver::printToStream ( std::ostream &  stream,
int  level 
) const
overridevirtual

Prints this object to the provided output stream.

Function calls to operator<< with pointers or references either const or not are all forwarded to this function.

Reimplemented from inet::physicallayer::SNIRReceiverBase.

97 {
98  stream << "APSKLayeredReceiver";
99  if (level <= PRINT_LEVEL_DETAIL)
100  stream << ", levelOfDetail = " << levelOfDetail
101  << ", carrierFrequency = " << carrierFrequency;
102  if (level <= PRINT_LEVEL_TRACE)
103  stream << ", errorModel = " << printObjectToString(errorModel, level + 1)
104  << ", decoder = " << printObjectToString(decoder, level + 1)
105  << ", demodulator = " << printObjectToString(demodulator, level + 1)
106  << ", pulseFilter = " << printObjectToString(pulseFilter, level + 1)
107  << ", analogDigitalConverter = " << printObjectToString(analogDigitalConverter, level + 1)
108  << ", energyDetection = " << energyDetection
109  << ", sensitivity = " << sensitivity
110  << ", bandwidth = " << bandwidth
111  << ", snirThreshold = " << snirThreshold;
112  return stream;
113 }
double snirThreshold
Definition: APSKLayeredReceiver.h:59
const IDemodulator * demodulator
Definition: APSKLayeredReceiver.h:52
W sensitivity
Definition: APSKLayeredReceiver.h:56
LevelOfDetail levelOfDetail
Definition: APSKLayeredReceiver.h:49
std::string printObjectToString(const IPrintableObject *object, int level)
Definition: IPrintableObject.h:73
const IPulseFilter * pulseFilter
Definition: APSKLayeredReceiver.h:53
const IAnalogDigitalConverter * analogDigitalConverter
Definition: APSKLayeredReceiver.h:54
const ILayeredErrorModel * errorModel
Definition: APSKLayeredReceiver.h:50
const IDecoder * decoder
Definition: APSKLayeredReceiver.h:51
Hz carrierFrequency
Definition: APSKLayeredReceiver.h:57
Hz bandwidth
Definition: APSKLayeredReceiver.h:58
W energyDetection
Definition: APSKLayeredReceiver.h:55

Member Data Documentation

const IAnalogDigitalConverter* inet::physicallayer::APSKLayeredReceiver::analogDigitalConverter
protected
Hz inet::physicallayer::APSKLayeredReceiver::bandwidth
protected
Hz inet::physicallayer::APSKLayeredReceiver::carrierFrequency
protected
const IDecoder* inet::physicallayer::APSKLayeredReceiver::decoder
protected
const IDemodulator* inet::physicallayer::APSKLayeredReceiver::demodulator
protected
W inet::physicallayer::APSKLayeredReceiver::energyDetection
protected
const ILayeredErrorModel* inet::physicallayer::APSKLayeredReceiver::errorModel
protected
LevelOfDetail inet::physicallayer::APSKLayeredReceiver::levelOfDetail
protected
const IPulseFilter* inet::physicallayer::APSKLayeredReceiver::pulseFilter
protected
W inet::physicallayer::APSKLayeredReceiver::sensitivity
protected
double inet::physicallayer::APSKLayeredReceiver::snirThreshold
protected

Referenced by initialize(), and printToStream().


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