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

#include <ScalarSnir.h>

Inheritance diagram for inet::physicallayer::ScalarSnir:
inet::physicallayer::SnirBase inet::physicallayer::ISnir inet::IPrintableObject

Public Member Functions

 ScalarSnir (const IReception *reception, const INoise *noise)
 
virtual std::ostream & printToStream (std::ostream &stream, int level, int evFlags=0) const override
 Prints this object to the provided output stream. More...
 
virtual double getMin () const override
 
virtual double getMax () const override
 
virtual double getMean () const override
 
- Public Member Functions inherited from inet::physicallayer::SnirBase
 SnirBase (const IReception *reception, const INoise *noise)
 
virtual const IReceptiongetReception () const override
 
virtual const INoisegetNoise () 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 double computeMin () const
 
virtual double computeMax () const
 
virtual double computeMean () const
 

Protected Attributes

double minSNIR
 
double maxSNIR
 
double meanSNIR
 
- Protected Attributes inherited from inet::physicallayer::SnirBase
const IReceptionreception
 
const INoisenoise
 

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

◆ ScalarSnir()

inet::physicallayer::ScalarSnir::ScalarSnir ( const IReception reception,
const INoise noise 
)
17  :
19  minSNIR(NaN),
20  maxSNIR(NaN),
21  meanSNIR(NaN)
22 {
23 }

Member Function Documentation

◆ computeMax()

double inet::physicallayer::ScalarSnir::computeMax ( ) const
protectedvirtual
41 {
42  const IScalarSignal *scalarSignalAnalogModel = check_and_cast<const IScalarSignal *>(reception->getAnalogModel());
43  const ScalarNoise *scalarNoise = check_and_cast<const ScalarNoise *>(noise);
44  return unit(scalarSignalAnalogModel->getPower() / scalarNoise->computeMinPower(reception->getStartTime(), reception->getEndTime())).get();
45 }

Referenced by getMax().

◆ computeMean()

double inet::physicallayer::ScalarSnir::computeMean ( ) const
protectedvirtual
48 {
49  // TODO
50  return NaN;
51 }

Referenced by getMean().

◆ computeMin()

double inet::physicallayer::ScalarSnir::computeMin ( ) const
protectedvirtual
34 {
35  const IScalarSignal *scalarSignalAnalogModel = check_and_cast<const IScalarSignal *>(reception->getAnalogModel());
36  const ScalarNoise *scalarNoise = check_and_cast<const ScalarNoise *>(noise);
37  return unit(scalarSignalAnalogModel->getPower() / scalarNoise->computeMaxPower(reception->getStartTime(), reception->getEndTime())).get();
38 }

Referenced by getMin().

◆ getMax()

double inet::physicallayer::ScalarSnir::getMax ( ) const
overridevirtual

Implements inet::physicallayer::ISnir.

61 {
62  if (std::isnan(maxSNIR))
63  maxSNIR = computeMax();
64  return maxSNIR;
65 }

◆ getMean()

double inet::physicallayer::ScalarSnir::getMean ( ) const
overridevirtual

Implements inet::physicallayer::ISnir.

68 {
69  if (std::isnan(meanSNIR))
71  return meanSNIR;
72 }

◆ getMin()

double inet::physicallayer::ScalarSnir::getMin ( ) const
overridevirtual

Implements inet::physicallayer::ISnir.

54 {
55  if (std::isnan(minSNIR))
56  minSNIR = computeMin();
57  return minSNIR;
58 }

◆ printToStream()

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

Prints this object to the provided output stream.

Reimplemented from inet::physicallayer::SnirBase.

26 {
27  stream << "ScalarSnir";
28  if (level <= PRINT_LEVEL_DETAIL)
29  stream << EV_FIELD(minSNIR);
30  return stream;
31 }

Member Data Documentation

◆ maxSNIR

double inet::physicallayer::ScalarSnir::maxSNIR
mutableprotected

Referenced by getMax().

◆ meanSNIR

double inet::physicallayer::ScalarSnir::meanSNIR
mutableprotected

Referenced by getMean().

◆ minSNIR

double inet::physicallayer::ScalarSnir::minSNIR
mutableprotected

Referenced by getMin(), and printToStream().


The documentation for this class was generated from the following files:
inet::IPrintableObject::PRINT_LEVEL_DETAIL
@ PRINT_LEVEL_DETAIL
Definition: IPrintableObject.h:24
inet::physicallayer::IReception::getEndTime
virtual const simtime_t getEndTime() const =0
Returns the time when the receiver ended to receive the corresponding transmission.
inet::physicallayer::SnirBase::reception
const IReception * reception
Definition: SnirBase.h:22
inet::physicallayer::ScalarSnir::minSNIR
double minSNIR
Definition: ScalarSnir.h:20
inet::physicallayer::ScalarSnir::meanSNIR
double meanSNIR
Definition: ScalarSnir.h:22
inet::physicallayer::SnirBase::noise
const INoise * noise
Definition: SnirBase.h:23
EV_FIELD
#define EV_FIELD(...)
Definition: INETDefs.h:112
inet::physicallayer::IReception::getAnalogModel
virtual const IReceptionAnalogModel * getAnalogModel() const =0
Returns the analog model of the received signal.
inet::physicallayer::IReception::getStartTime
virtual const simtime_t getStartTime() const =0
Returns the time when the receiver started to receive the corresponding transmission.
inet::physicallayer::ScalarSnir::computeMax
virtual double computeMax() const
Definition: ScalarSnir.cc:40
NaN
#define NaN
Definition: INETMath.h:91
inet::units::unit
pow< internal::none, 0 > unit
Definition: Units.h:72
inet::physicallayer::ScalarSnir::computeMean
virtual double computeMean() const
Definition: ScalarSnir.cc:47
inet::physicallayer::SnirBase::SnirBase
SnirBase(const IReception *reception, const INoise *noise)
Definition: SnirBase.cc:14
inet::physicallayer::ScalarSnir::maxSNIR
double maxSNIR
Definition: ScalarSnir.h:21
inet::physicallayer::ScalarSnir::computeMin
virtual double computeMin() const
Definition: ScalarSnir.cc:33