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

#include <DimensionalSignalAnalogModel.h>

Inheritance diagram for inet::physicallayer::DimensionalSignalAnalogModel:
inet::physicallayer::NarrowbandSignalAnalogModel inet::physicallayer::IDimensionalSignal inet::physicallayer::SignalAnalogModel inet::physicallayer::INarrowbandSignal inet::physicallayer::ISignalAnalogModel inet::IPrintableObject inet::physicallayer::DimensionalReceptionSignalAnalogModel inet::physicallayer::DimensionalTransmissionSignalAnalogModel

Public Member Functions

 DimensionalSignalAnalogModel (const simtime_t duration, Hz centerFrequency, Hz bandwidth, const Ptr< const IFunction< WpHz, Domain< simsec, Hz >>> &power)
 
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 Ptr< const IFunction< WpHz, Domain< simsec, Hz > > > & getPower () const override
 
virtual W computeMinPower (simtime_t startTime, simtime_t endTime) const override
 
- Public Member Functions inherited from inet::physicallayer::NarrowbandSignalAnalogModel
 NarrowbandSignalAnalogModel (const simtime_t duration, Hz centerFrequency, Hz bandwidth)
 
virtual Hz getCenterFrequency () const override
 
virtual Hz getBandwidth () const override
 
- Public Member Functions inherited from inet::physicallayer::SignalAnalogModel
 SignalAnalogModel (const simtime_t duration)
 
virtual const simtime_t getDuration () 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 Attributes

const Ptr< const IFunction< WpHz, Domain< simsec, Hz > > > power
 
- Protected Attributes inherited from inet::physicallayer::NarrowbandSignalAnalogModel
const Hz centerFrequency
 
const Hz bandwidth
 
- Protected Attributes inherited from inet::physicallayer::SignalAnalogModel
const simtime_t duration
 

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

◆ DimensionalSignalAnalogModel()

inet::physicallayer::DimensionalSignalAnalogModel::DimensionalSignalAnalogModel ( const simtime_t  duration,
Hz  centerFrequency,
Hz  bandwidth,
const Ptr< const IFunction< WpHz, Domain< simsec, Hz >>> &  power 
)

Member Function Documentation

◆ computeMinPower()

W inet::physicallayer::DimensionalSignalAnalogModel::computeMinPower ( simtime_t  startTime,
simtime_t  endTime 
) const
overridevirtual

Implements inet::physicallayer::INarrowbandSignal.

31 {
32  Point<simsec> startPoint{ simsec(startTime) };
33  Point<simsec> endPoint{ simsec(endTime) };
34  W minPower = integrate<WpHz, Domain<simsec, Hz>, 0b10, W, Domain<simsec>>(power)->getMin(Interval<simsec>(startPoint, endPoint, 0b1, 0b1, 0b0));
35  EV_DEBUG << "Computing minimum reception power" << EV_FIELD(startPoint) << EV_FIELD(endPoint) << EV_FIELD(minPower) << endl;
36  return minPower;
37 }

◆ getPower()

virtual const Ptr<const IFunction<WpHz, Domain<simsec, Hz> > >& inet::physicallayer::DimensionalSignalAnalogModel::getPower ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IDimensionalSignal.

30 { return power; }

◆ printToStream()

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

Prints this object to the provided output stream.

Reimplemented from inet::physicallayer::NarrowbandSignalAnalogModel.

20 {
21  stream << "DimensionalSignalAnalogModel";
22  if (level <= PRINT_LEVEL_DEBUG)
23  stream << EV_FIELD(powerMax, power->getMax())
24  << EV_FIELD(powerMin, power->getMin());
25  if (level <= PRINT_LEVEL_TRACE)
26  stream << EV_FIELD(power);
27  return NarrowbandSignalAnalogModel::printToStream(stream, level);
28 }

Member Data Documentation

◆ power

const Ptr<const IFunction<WpHz, Domain<simsec, Hz> > > inet::physicallayer::DimensionalSignalAnalogModel::power
protected

Referenced by computeMinPower(), and printToStream().


The documentation for this class was generated from the following files:
inet::physicallayer::DimensionalSignalAnalogModel::power
const Ptr< const IFunction< WpHz, Domain< simsec, Hz > > > power
Definition: DimensionalSignalAnalogModel.h:23
inet::physicallayer::SignalAnalogModel::duration
const simtime_t duration
Definition: SignalAnalogModel.h:21
inet::units::values::simsec
value< simtime_t, units::s > simsec
Definition: Units.h:1236
inet::units::units::W
compose< J, pow< s, -1 > > W
Definition: Units.h:939
EV_FIELD
#define EV_FIELD(...)
Definition: INETDefs.h:112
inet::physicallayer::NarrowbandSignalAnalogModel::centerFrequency
const Hz centerFrequency
Definition: SignalAnalogModel.h:34
inet::physicallayer::NarrowbandSignalAnalogModel::bandwidth
const Hz bandwidth
Definition: SignalAnalogModel.h:35
inet::IPrintableObject::PRINT_LEVEL_TRACE
@ PRINT_LEVEL_TRACE
Definition: IPrintableObject.h:22
inet::physicallayer::NarrowbandSignalAnalogModel::printToStream
virtual std::ostream & printToStream(std::ostream &stream, int level, int evFlags=0) const override
Prints this object to the provided output stream.
Definition: SignalAnalogModel.cc:33
inet::physicallayer::NarrowbandSignalAnalogModel::NarrowbandSignalAnalogModel
NarrowbandSignalAnalogModel(const simtime_t duration, Hz centerFrequency, Hz bandwidth)
Definition: SignalAnalogModel.cc:26
inet::IPrintableObject::PRINT_LEVEL_DEBUG
@ PRINT_LEVEL_DEBUG
Definition: IPrintableObject.h:23