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

#include <Ieee80211UnitDiskTransmitter.h>

Inheritance diagram for inet::physicallayer::Ieee80211UnitDiskTransmitter:
inet::physicallayer::Ieee80211TransmitterBase inet::physicallayer::FlatTransmitterBase inet::physicallayer::NarrowbandTransmitterBase inet::physicallayer::TransmitterBase inet::physicallayer::ITransmitter inet::IPrintableObject

Public Member Functions

 Ieee80211UnitDiskTransmitter ()
 
virtual m getMaxCommunicationRange () const override
 Returns the maximum communication range. More...
 
virtual m getMaxInterferenceRange () const override
 Returns the maximum interference range. 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 ITransmissioncreateTransmission (const IRadio *radio, const Packet *packet, simtime_t startTime) const override
 Returns a transmission which describes the radio signal corresponding to the provided packet. More...
 
- Public Member Functions inherited from inet::physicallayer::Ieee80211TransmitterBase
 Ieee80211TransmitterBase ()
 
virtual ~Ieee80211TransmitterBase ()
 
virtual const IIeee80211ModecomputeTransmissionMode (const Packet *packet) const
 
virtual const Ieee80211ChannelcomputeTransmissionChannel (const Packet *packet) const
 
virtual void setModeSet (const Ieee80211ModeSet *modeSet)
 
virtual void setMode (const IIeee80211Mode *mode)
 
virtual void setBand (const IIeee80211Band *band)
 
virtual void setChannel (const Ieee80211Channel *channel)
 
virtual void setChannelNumber (int channelNumber)
 
- Public Member Functions inherited from inet::physicallayer::FlatTransmitterBase
 FlatTransmitterBase ()
 
virtual b getHeaderLength () const
 
virtual void setHeaderLength (b headerLength)
 
virtual bps getBitrate () const
 
virtual void setBitrate (bps bitrate)
 
virtual W getMaxPower () const override
 Returns the maximum transmission power above which no transmission is ever transmitted. More...
 
virtual W getPower () const
 
virtual void setPower (W power)
 
- Public Member Functions inherited from inet::physicallayer::NarrowbandTransmitterBase
 NarrowbandTransmitterBase ()
 
virtual const IModulationgetModulation () const
 
virtual void setModulation (const IModulation *modulation)
 
virtual Hz getCenterFrequency () const
 
virtual void setCenterFrequency (Hz centerFrequency)
 
virtual Hz getBandwidth () const
 
virtual void setBandwidth (Hz bandwidth)
 
- 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 void initialize (int stage) override
 
- Protected Member Functions inherited from inet::physicallayer::FlatTransmitterBase
virtual bps computeTransmissionPreambleBitrate (const Packet *packet) const
 
virtual bps computeTransmissionHeaderBitrate (const Packet *packet) const
 
virtual bps computeTransmissionDataBitrate (const Packet *packet) const
 
virtual W computeTransmissionPower (const Packet *packet) const
 
- Protected Member Functions inherited from inet::physicallayer::NarrowbandTransmitterBase
virtual Hz computeCenterFrequency (const Packet *packet) const
 
virtual Hz computeBandwidth (const Packet *packet) const
 
- Protected Member Functions inherited from inet::physicallayer::TransmitterBase
virtual int numInitStages () const override
 

Protected Attributes

m communicationRange = m(NaN)
 
m interferenceRange = m(NaN)
 
m detectionRange = m(NaN)
 
- Protected Attributes inherited from inet::physicallayer::Ieee80211TransmitterBase
const Ieee80211ModeSetmodeSet
 
const IIeee80211Modemode
 
const IIeee80211Bandband
 
const Ieee80211Channelchannel
 
- Protected Attributes inherited from inet::physicallayer::FlatTransmitterBase
simtime_t preambleDuration
 
b headerLength
 
bps bitrate
 
W power
 
- Protected Attributes inherited from inet::physicallayer::NarrowbandTransmitterBase
const IModulationmodulation
 
Hz centerFrequency
 
Hz bandwidth
 

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

◆ Ieee80211UnitDiskTransmitter()

inet::physicallayer::Ieee80211UnitDiskTransmitter::Ieee80211UnitDiskTransmitter ( )
21  :
23 {
24 }

Member Function Documentation

◆ createTransmission()

const ITransmission * inet::physicallayer::Ieee80211UnitDiskTransmitter::createTransmission ( const IRadio transmitter,
const Packet packet,
simtime_t  startTime 
) const
overridevirtual

Returns a transmission which describes the radio signal corresponding to the provided packet.

This function never returns nullptr.

Implements inet::physicallayer::ITransmitter.

48 {
49  const IIeee80211Mode *transmissionMode = computeTransmissionMode(packet);
50  if (transmissionMode->getDataMode()->getNumberOfSpatialStreams() > transmitter->getAntenna()->getNumAntennas())
51  throw cRuntimeError("Number of spatial streams is higher than the number of antennas");
52  const simtime_t duration = transmissionMode->getDuration(packet->getDataLength());
53  const simtime_t endTime = startTime + duration;
54  IMobility *mobility = transmitter->getAntenna()->getMobility();
55  const Coord& startPosition = mobility->getCurrentPosition();
56  const Coord& endPosition = mobility->getCurrentPosition();
57  const Quaternion& startOrientation = mobility->getCurrentAngularPosition();
58  const Quaternion& endOrientation = mobility->getCurrentAngularPosition();
59  const simtime_t preambleDuration = transmissionMode->getPreambleMode()->getDuration();
60  const simtime_t headerDuration = transmissionMode->getHeaderMode()->getDuration();
61  const simtime_t dataDuration = duration - headerDuration - preambleDuration;
62  return new Ieee80211UnitDiskTransmission(transmitter, packet, startTime, endTime, preambleDuration, headerDuration, dataDuration, startPosition, endPosition, startOrientation, endOrientation, communicationRange, interferenceRange, detectionRange, transmissionMode, channel);
63 }

◆ getMaxCommunicationRange()

virtual m inet::physicallayer::Ieee80211UnitDiskTransmitter::getMaxCommunicationRange ( ) const
inlineoverridevirtual

Returns the maximum communication range.

Returns a value in the range [0, +infinity] or NaN if unspecified.

Reimplemented from inet::physicallayer::TransmitterBase.

29 { return communicationRange; }

◆ getMaxInterferenceRange()

virtual m inet::physicallayer::Ieee80211UnitDiskTransmitter::getMaxInterferenceRange ( ) const
inlineoverridevirtual

Returns the maximum interference range.

Returns a value in the range [0, +infinity] or NaN if unspecified.

Reimplemented from inet::physicallayer::TransmitterBase.

30 { return interferenceRange; }

◆ initialize()

void inet::physicallayer::Ieee80211UnitDiskTransmitter::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::physicallayer::Ieee80211TransmitterBase.

27 {
29  if (stage == INITSTAGE_LOCAL) {
30  communicationRange = m(par("communicationRange"));
31  interferenceRange = m(par("interferenceRange"));
32  detectionRange = m(par("detectionRange"));
33  }
34 }

◆ printToStream()

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

Prints this object to the provided output stream.

Reimplemented from inet::physicallayer::Ieee80211TransmitterBase.

37 {
38  stream << "Ieee80211UnitDiskTransmitter";
39  if (level <= PRINT_LEVEL_INFO)
40  stream << EV_FIELD(communicationRange);
41  if (level <= PRINT_LEVEL_TRACE)
42  stream << EV_FIELD(interferenceRange)
44  return Ieee80211TransmitterBase::printToStream(stream, level);
45 }

Member Data Documentation

◆ communicationRange

m inet::physicallayer::Ieee80211UnitDiskTransmitter::communicationRange = m(NaN)
protected

◆ detectionRange

m inet::physicallayer::Ieee80211UnitDiskTransmitter::detectionRange = m(NaN)
protected

◆ interferenceRange

m inet::physicallayer::Ieee80211UnitDiskTransmitter::interferenceRange = m(NaN)
protected

The documentation for this class was generated from the following files:
inet::physicallayer::Ieee80211TransmitterBase::channel
const Ieee80211Channel * channel
Definition: Ieee80211TransmitterBase.h:27
inet::IPrintableObject::PRINT_LEVEL_INFO
@ PRINT_LEVEL_INFO
Definition: IPrintableObject.h:25
inet::physicallayer::Ieee80211TransmitterBase::computeTransmissionMode
virtual const IIeee80211Mode * computeTransmissionMode(const Packet *packet) const
Definition: Ieee80211TransmitterBase.cc:55
inet::physicallayer::Ieee80211TransmitterBase::Ieee80211TransmitterBase
Ieee80211TransmitterBase()
Definition: Ieee80211TransmitterBase.cc:16
inet::physicallayer::Ieee80211TransmitterBase::initialize
virtual void initialize(int stage) override
Definition: Ieee80211TransmitterBase.cc:29
inet::physicallayer::Ieee80211TransmitterBase::printToStream
virtual std::ostream & printToStream(std::ostream &stream, int level, int evFlags=0) const override
Prints this object to the provided output stream.
Definition: Ieee80211TransmitterBase.cc:44
EV_FIELD
#define EV_FIELD(...)
Definition: INETDefs.h:112
inet::physicallayer::FlatTransmitterBase::preambleDuration
simtime_t preambleDuration
Definition: FlatTransmitterBase.h:20
inet::physicallayer::Ieee80211UnitDiskTransmitter::interferenceRange
m interferenceRange
Definition: Ieee80211UnitDiskTransmitter.h:21
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::IPrintableObject::PRINT_LEVEL_TRACE
@ PRINT_LEVEL_TRACE
Definition: IPrintableObject.h:22
inet::units::values::m
value< double, units::m > m
Definition: Units.h:1233
inet::physicallayer::Ieee80211UnitDiskTransmitter::communicationRange
m communicationRange
Definition: Ieee80211UnitDiskTransmitter.h:20
inet::physicallayer::Ieee80211UnitDiskTransmitter::detectionRange
m detectionRange
Definition: Ieee80211UnitDiskTransmitter.h:22