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

#include <TransmissionBase.h>

Inheritance diagram for inet::physicallayer::TransmissionBase:
inet::physicallayer::ITransmission inet::physicallayer::ITransmissionAnalogModel inet::IPrintableObject inet::physicallayer::ISignalAnalogModel inet::IPrintableObject inet::physicallayer::LayeredTransmission inet::physicallayer::NarrowbandTransmissionBase inet::physicallayer::UnitDiskTransmission inet::physicallayer::Ieee80211LayeredTransmission inet::physicallayer::FlatTransmissionBase inet::physicallayer::Ieee80211UnitDiskTransmission inet::physicallayer::DimensionalTransmission inet::physicallayer::ScalarTransmission inet::physicallayer::ApskDimensionalTransmission inet::physicallayer::Ieee80211DimensionalTransmission inet::physicallayer::ApskScalarTransmission inet::physicallayer::Ieee80211ScalarTransmission

Public Member Functions

 TransmissionBase (const IRadio *transmitter, const Packet *packet, const simtime_t startTime, const simtime_t endTime, const simtime_t preambleDuration, const simtime_t headerDuration, const simtime_t dataDuration, const Coord &startPosition, const Coord &endPosition, const Quaternion &startOrientation, const Quaternion &endOrientation)
 
virtual int getId () const override
 Returns an identifier for this transmission which is globally unique for the whole lifetime of the simulation among all transmissions. More...
 
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 IRadiogetTransmitter () const override
 Returns the transmitter that transmitted this radio signal on the radio channel. More...
 
virtual int getTransmitterId () const override
 Returns the transmitter's id that transmitted this radio signal on the radio channel. More...
 
virtual const IAntennaGaingetTransmitterAntennaGain () const override
 Returns the gain of the transmitting antenna. More...
 
virtual const IRadioMediumgetMedium () const override
 Returns the radio medium used for this transmission. More...
 
virtual const PacketgetPacket () const override
 Returns the packet corresponding to this transmission. More...
 
virtual const simtime_t getStartTime () const override
 Returns the time when the transmitter started this transmission. More...
 
virtual const simtime_t getEndTime () const override
 Returns the time when the transmitter ended this transmission. More...
 
virtual const simtime_t getStartTime (IRadioSignal::SignalPart part) const override
 
virtual const simtime_t getEndTime (IRadioSignal::SignalPart part) const override
 
virtual const simtime_t getPreambleStartTime () const override
 
virtual const simtime_t getPreambleEndTime () const override
 
virtual const simtime_t getHeaderStartTime () const override
 
virtual const simtime_t getHeaderEndTime () const override
 
virtual const simtime_t getDataStartTime () const override
 
virtual const simtime_t getDataEndTime () const override
 
virtual const simtime_t getDuration () const override
 Returns the total length of this transmission. More...
 
virtual const simtime_t getDuration (IRadioSignal::SignalPart part) const override
 Returns the length of the provided part of this transmission. More...
 
virtual const simtime_t getPreambleDuration () const override
 Returns the length of the preamble part of this transmission. More...
 
virtual const simtime_t getHeaderDuration () const override
 Returns the length of the header part of this transmission. More...
 
virtual const simtime_t getDataDuration () const override
 Returns the length of the data part of this transmission. More...
 
virtual const CoordgetStartPosition () const override
 Returns the antenna's position when the transmitter started this transmission. More...
 
virtual const CoordgetEndPosition () const override
 Returns the antenna's position when the transmitter ended this transmission. More...
 
virtual const QuaterniongetStartOrientation () const override
 Returns the antenna's orientation when the transmitter started this transmission. More...
 
virtual const QuaterniongetEndOrientation () const override
 Returns the antenna's orientation when the transmitter ended this transmission. More...
 
virtual const ITransmissionAnalogModelgetAnalogModel () const override
 Returns the analog model of the transmitted signal. More...
 
- 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 int id
 
const IRadioMediumradioMedium
 
const int transmitterId
 
Ptr< const IAntennaGaintransmitterGain
 
const Packetpacket
 
const simtime_t startTime
 
const simtime_t endTime
 
const simtime_t preambleDuration
 
const simtime_t headerDuration
 
const simtime_t dataDuration
 
const Coord startPosition
 
const Coord endPosition
 
const Quaternion startOrientation
 
const Quaternion endOrientation
 

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) }
 
- Static Protected Attributes inherited from inet::physicallayer::ITransmission
static int nextId = 0
 

Constructor & Destructor Documentation

◆ TransmissionBase()

inet::physicallayer::TransmissionBase::TransmissionBase ( const IRadio transmitter,
const Packet packet,
const simtime_t  startTime,
const simtime_t  endTime,
const simtime_t  preambleDuration,
const simtime_t  headerDuration,
const simtime_t  dataDuration,
const Coord startPosition,
const Coord endPosition,
const Quaternion startOrientation,
const Quaternion endOrientation 
)
16  :
17  id(nextId++),
18  radioMedium(transmitter->getMedium()),
19  transmitterId(transmitter->getId()),
20  transmitterGain(transmitter->getAntenna()->getGain()),
21  packet(packet),
31 {
32 }

Member Function Documentation

◆ getAnalogModel()

virtual const ITransmissionAnalogModel* inet::physicallayer::TransmissionBase::getAnalogModel ( ) const
inlineoverridevirtual

Returns the analog model of the transmitted signal.

Implements inet::physicallayer::ITransmission.

Reimplemented in inet::physicallayer::LayeredTransmission.

77 { return check_and_cast<const ITransmissionAnalogModel *>(this); }

◆ getDataDuration()

virtual const simtime_t inet::physicallayer::TransmissionBase::getDataDuration ( ) const
inlineoverridevirtual

Returns the length of the data part of this transmission.

Implements inet::physicallayer::ITransmission.

69 { return dataDuration; }

Referenced by getDuration().

◆ getDataEndTime()

virtual const simtime_t inet::physicallayer::TransmissionBase::getDataEndTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::ITransmission.

62 { return endTime; }

Referenced by getEndTime().

◆ getDataStartTime()

virtual const simtime_t inet::physicallayer::TransmissionBase::getDataStartTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::ITransmission.

61 { return endTime - dataDuration; }

Referenced by getStartTime().

◆ getDuration() [1/2]

virtual const simtime_t inet::physicallayer::TransmissionBase::getDuration ( ) const
inlineoverridevirtual

Returns the total length of this transmission.

Implements inet::physicallayer::ITransmission.

64 { return endTime - startTime; }

Referenced by getDuration().

◆ getDuration() [2/2]

const simtime_t inet::physicallayer::TransmissionBase::getDuration ( IRadioSignal::SignalPart  part) const
overridevirtual

Returns the length of the provided part of this transmission.

Implements inet::physicallayer::ITransmission.

90 {
91  switch (part) {
93  return getDuration();
95  return getPreambleDuration();
97  return getHeaderDuration();
99  return getDataDuration();
100  default:
101  throw cRuntimeError("Unknown signal part: '%s'", IRadioSignal::getSignalPartName(part));
102  }
103 }

◆ getEndOrientation()

virtual const Quaternion& inet::physicallayer::TransmissionBase::getEndOrientation ( ) const
inlineoverridevirtual

Returns the antenna's orientation when the transmitter ended this transmission.

Implements inet::physicallayer::ITransmission.

75 { return endOrientation; }

◆ getEndPosition()

virtual const Coord& inet::physicallayer::TransmissionBase::getEndPosition ( ) const
inlineoverridevirtual

Returns the antenna's position when the transmitter ended this transmission.

Implements inet::physicallayer::ITransmission.

72 { return endPosition; }

◆ getEndTime() [1/2]

virtual const simtime_t inet::physicallayer::TransmissionBase::getEndTime ( ) const
inlineoverridevirtual

Returns the time when the transmitter ended this transmission.

It is the end of the last bit's transmission.

Implements inet::physicallayer::ITransmission.

53 { return endTime; }

Referenced by getEndTime().

◆ getEndTime() [2/2]

const simtime_t inet::physicallayer::TransmissionBase::getEndTime ( IRadioSignal::SignalPart  part) const
overridevirtual

Implements inet::physicallayer::ITransmission.

74 {
75  switch (part) {
77  return getEndTime();
79  return getPreambleEndTime();
81  return getHeaderEndTime();
83  return getDataEndTime();
84  default:
85  throw cRuntimeError("Unknown signal part: '%s'", IRadioSignal::getSignalPartName(part));
86  }
87 }

◆ getHeaderDuration()

virtual const simtime_t inet::physicallayer::TransmissionBase::getHeaderDuration ( ) const
inlineoverridevirtual

Returns the length of the header part of this transmission.

Implements inet::physicallayer::ITransmission.

68 { return headerDuration; }

Referenced by getDuration().

◆ getHeaderEndTime()

virtual const simtime_t inet::physicallayer::TransmissionBase::getHeaderEndTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::ITransmission.

60 { return endTime - dataDuration; }

Referenced by getEndTime().

◆ getHeaderStartTime()

virtual const simtime_t inet::physicallayer::TransmissionBase::getHeaderStartTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::ITransmission.

59 { return startTime + preambleDuration; }

Referenced by getStartTime().

◆ getId()

virtual int inet::physicallayer::TransmissionBase::getId ( ) const
inlineoverridevirtual

Returns an identifier for this transmission which is globally unique for the whole lifetime of the simulation among all transmissions.

Implements inet::physicallayer::ITransmission.

42 { return id; }

◆ getMedium()

virtual const IRadioMedium* inet::physicallayer::TransmissionBase::getMedium ( ) const
inlineoverridevirtual

Returns the radio medium used for this transmission.

This function never return nullptr.

Implements inet::physicallayer::ITransmission.

49 { return radioMedium; }

◆ getPacket()

virtual const Packet* inet::physicallayer::TransmissionBase::getPacket ( ) const
inlineoverridevirtual

Returns the packet corresponding to this transmission.

This function never returns nullptr.

Implements inet::physicallayer::ITransmission.

Reimplemented in inet::physicallayer::LayeredTransmission.

50 { return packet; }

◆ getPreambleDuration()

virtual const simtime_t inet::physicallayer::TransmissionBase::getPreambleDuration ( ) const
inlineoverridevirtual

Returns the length of the preamble part of this transmission.

Implements inet::physicallayer::ITransmission.

67 { return preambleDuration; }

Referenced by getDuration().

◆ getPreambleEndTime()

virtual const simtime_t inet::physicallayer::TransmissionBase::getPreambleEndTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::ITransmission.

58 { return startTime + preambleDuration; }

Referenced by getEndTime().

◆ getPreambleStartTime()

virtual const simtime_t inet::physicallayer::TransmissionBase::getPreambleStartTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::ITransmission.

57 { return startTime; }

Referenced by getStartTime().

◆ getStartOrientation()

virtual const Quaternion& inet::physicallayer::TransmissionBase::getStartOrientation ( ) const
inlineoverridevirtual

Returns the antenna's orientation when the transmitter started this transmission.

Implements inet::physicallayer::ITransmission.

74 { return startOrientation; }

◆ getStartPosition()

virtual const Coord& inet::physicallayer::TransmissionBase::getStartPosition ( ) const
inlineoverridevirtual

Returns the antenna's position when the transmitter started this transmission.

Implements inet::physicallayer::ITransmission.

71 { return startPosition; }

◆ getStartTime() [1/2]

virtual const simtime_t inet::physicallayer::TransmissionBase::getStartTime ( ) const
inlineoverridevirtual

Returns the time when the transmitter started this transmission.

It is the start of the first bit's transmission.

Implements inet::physicallayer::ITransmission.

52 { return startTime; }

Referenced by getStartTime().

◆ getStartTime() [2/2]

const simtime_t inet::physicallayer::TransmissionBase::getStartTime ( IRadioSignal::SignalPart  part) const
overridevirtual

Implements inet::physicallayer::ITransmission.

58 {
59  switch (part) {
61  return getStartTime();
63  return getPreambleStartTime();
65  return getHeaderStartTime();
67  return getDataStartTime();
68  default:
69  throw cRuntimeError("Unknown signal part: '%s'", IRadioSignal::getSignalPartName(part));
70  }
71 }

◆ getTransmitter()

const IRadio * inet::physicallayer::TransmissionBase::getTransmitter ( ) const
overridevirtual

Returns the transmitter that transmitted this radio signal on the radio channel.

This function may return nullptr.

Implements inet::physicallayer::ITransmission.

53 {
55 }

◆ getTransmitterAntennaGain()

virtual const IAntennaGain* inet::physicallayer::TransmissionBase::getTransmitterAntennaGain ( ) const
inlineoverridevirtual

Returns the gain of the transmitting antenna.

Implements inet::physicallayer::ITransmission.

48 { return transmitterGain.get(); }

◆ getTransmitterId()

virtual int inet::physicallayer::TransmissionBase::getTransmitterId ( ) const
inlineoverridevirtual

Returns the transmitter's id that transmitted this radio signal on the radio channel.

Implements inet::physicallayer::ITransmission.

47 { return transmitterId; }

◆ printToStream()

Member Data Documentation

◆ dataDuration

const simtime_t inet::physicallayer::TransmissionBase::dataDuration
protected

Referenced by printToStream().

◆ endOrientation

const Quaternion inet::physicallayer::TransmissionBase::endOrientation
protected

Referenced by printToStream().

◆ endPosition

const Coord inet::physicallayer::TransmissionBase::endPosition
protected

Referenced by printToStream().

◆ endTime

const simtime_t inet::physicallayer::TransmissionBase::endTime
protected

Referenced by printToStream().

◆ headerDuration

const simtime_t inet::physicallayer::TransmissionBase::headerDuration
protected

Referenced by printToStream().

◆ id

const int inet::physicallayer::TransmissionBase::id
protected

◆ packet

const Packet* inet::physicallayer::TransmissionBase::packet
protected

◆ preambleDuration

const simtime_t inet::physicallayer::TransmissionBase::preambleDuration
protected

Referenced by printToStream().

◆ radioMedium

const IRadioMedium* inet::physicallayer::TransmissionBase::radioMedium
protected

Referenced by getTransmitter().

◆ startOrientation

const Quaternion inet::physicallayer::TransmissionBase::startOrientation
protected

Referenced by printToStream().

◆ startPosition

const Coord inet::physicallayer::TransmissionBase::startPosition
protected

Referenced by printToStream().

◆ startTime

const simtime_t inet::physicallayer::TransmissionBase::startTime
protected

Referenced by printToStream().

◆ transmitterGain

Ptr<const IAntennaGain> inet::physicallayer::TransmissionBase::transmitterGain
protected

◆ transmitterId

const int inet::physicallayer::TransmissionBase::transmitterId
protected

Referenced by getTransmitter(), and printToStream().


The documentation for this class was generated from the following files:
inet::physicallayer::TransmissionBase::preambleDuration
const simtime_t preambleDuration
Definition: TransmissionBase.h:31
inet::physicallayer::TransmissionBase::id
const int id
Definition: TransmissionBase.h:24
inet::physicallayer::IRadioSignal::SIGNAL_PART_WHOLE
@ SIGNAL_PART_WHOLE
Definition: IRadioSignal.h:26
inet::physicallayer::TransmissionBase::getDataEndTime
virtual const simtime_t getDataEndTime() const override
Definition: TransmissionBase.h:62
inet::IPrintableObject::PRINT_LEVEL_DETAIL
@ PRINT_LEVEL_DETAIL
Definition: IPrintableObject.h:24
inet::physicallayer::TransmissionBase::dataDuration
const simtime_t dataDuration
Definition: TransmissionBase.h:33
inet::physicallayer::IRadioMedium::getRadio
virtual const IRadio * getRadio(int id) const =0
Returns radio instance from medium by id.
inet::physicallayer::TransmissionBase::startTime
const simtime_t startTime
Definition: TransmissionBase.h:29
inet::physicallayer::TransmissionBase::endOrientation
const Quaternion endOrientation
Definition: TransmissionBase.h:37
inet::physicallayer::TransmissionBase::getPreambleDuration
virtual const simtime_t getPreambleDuration() const override
Returns the length of the preamble part of this transmission.
Definition: TransmissionBase.h:67
inet::physicallayer::TransmissionBase::radioMedium
const IRadioMedium * radioMedium
Definition: TransmissionBase.h:25
inet::physicallayer::TransmissionBase::getHeaderDuration
virtual const simtime_t getHeaderDuration() const override
Returns the length of the header part of this transmission.
Definition: TransmissionBase.h:68
inet::physicallayer::TransmissionBase::getEndTime
virtual const simtime_t getEndTime() const override
Returns the time when the transmitter ended this transmission.
Definition: TransmissionBase.h:53
inet::physicallayer::IRadioSignal::SIGNAL_PART_HEADER
@ SIGNAL_PART_HEADER
Definition: IRadioSignal.h:28
inet::physicallayer::IRadioSignal::SIGNAL_PART_PREAMBLE
@ SIGNAL_PART_PREAMBLE
Definition: IRadioSignal.h:27
inet::physicallayer::TransmissionBase::getHeaderEndTime
virtual const simtime_t getHeaderEndTime() const override
Definition: TransmissionBase.h:60
EV_FIELD
#define EV_FIELD(...)
Definition: INETDefs.h:112
inet::physicallayer::TransmissionBase::transmitterId
const int transmitterId
Definition: TransmissionBase.h:26
inet::physicallayer::TransmissionBase::packet
const Packet * packet
Definition: TransmissionBase.h:28
inet::physicallayer::TransmissionBase::getPreambleEndTime
virtual const simtime_t getPreambleEndTime() const override
Definition: TransmissionBase.h:58
inet::physicallayer::ITransmission::nextId
static int nextId
Definition: ITransmission.h:36
inet::physicallayer::TransmissionBase::endPosition
const Coord endPosition
Definition: TransmissionBase.h:35
inet::IPrintableObject::PRINT_LEVEL_TRACE
@ PRINT_LEVEL_TRACE
Definition: IPrintableObject.h:22
inet::physicallayer::IRadioSignal::getSignalPartName
static const char * getSignalPartName(SignalPart signalPart)
Returns the name of the provided signal part.
Definition: IRadioSignal.cc:23
inet::physicallayer::TransmissionBase::endTime
const simtime_t endTime
Definition: TransmissionBase.h:30
inet::physicallayer::IRadioSignal::SIGNAL_PART_DATA
@ SIGNAL_PART_DATA
Definition: IRadioSignal.h:29
inet::physicallayer::TransmissionBase::startPosition
const Coord startPosition
Definition: TransmissionBase.h:34
inet::physicallayer::TransmissionBase::getDuration
virtual const simtime_t getDuration() const override
Returns the total length of this transmission.
Definition: TransmissionBase.h:64
inet::physicallayer::TransmissionBase::getDataDuration
virtual const simtime_t getDataDuration() const override
Returns the length of the data part of this transmission.
Definition: TransmissionBase.h:69
inet::physicallayer::TransmissionBase::startOrientation
const Quaternion startOrientation
Definition: TransmissionBase.h:36
inet::physicallayer::TransmissionBase::getPreambleStartTime
virtual const simtime_t getPreambleStartTime() const override
Definition: TransmissionBase.h:57
inet::physicallayer::TransmissionBase::getStartTime
virtual const simtime_t getStartTime() const override
Returns the time when the transmitter started this transmission.
Definition: TransmissionBase.h:52
inet::physicallayer::TransmissionBase::headerDuration
const simtime_t headerDuration
Definition: TransmissionBase.h:32
inet::physicallayer::TransmissionBase::getHeaderStartTime
virtual const simtime_t getHeaderStartTime() const override
Definition: TransmissionBase.h:59
inet::physicallayer::TransmissionBase::transmitterGain
Ptr< const IAntennaGain > transmitterGain
Definition: TransmissionBase.h:27
inet::physicallayer::TransmissionBase::getDataStartTime
virtual const simtime_t getDataStartTime() const override
Definition: TransmissionBase.h:61