EMANE  1.0.1
EMANE::Controls::ReceivePropertiesControlMessage Class Reference

Recieve Properties Control Message is sent from the emulator physical layer with every upstream packet. It contains the tx time stamp, propagation delay, span and reciever sensitivity associated with the packet and the reciever. More...

#include <receivepropertiescontrolmessage.h>

Inheritance diagram for EMANE::Controls::ReceivePropertiesControlMessage:
EMANE::ControlMessage EMANE::Serializable EMANE::Cloneable< ControlMessage >

Public Types

enum  { IDENTIFIER = EMANE_CONTROL_MEASSGE_RECEIVE_PROPERTIES }
 

Public Member Functions

ReceivePropertiesControlMessageclone () const override
 
 ~ReceivePropertiesControlMessage ()
 
TimePoint getTxTime () const
 
Microseconds getPropagationDelay () const
 
Microseconds getSpan () const
 
double getReceiverSensitivitydBm () const
 
ControlMessageId getId () const
 
virtual Serialization serialize () const
 

Static Public Member Functions

static ReceivePropertiesControlMessagecreate (const TimePoint &txTime, const Microseconds &propagation, const Microseconds &span, double dReceiverSensitivitydBm)
 

Detailed Description

Recieve Properties Control Message is sent from the emulator physical layer with every upstream packet. It contains the tx time stamp, propagation delay, span and reciever sensitivity associated with the packet and the reciever.

Note
The Start of Transmission (SoT) is the tx time + propagation delay + offset of the first frequency segment.
Instances are immutable

Definition at line 59 of file receivepropertiescontrolmessage.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
IDENTIFIER 

Definition at line 149 of file receivepropertiescontrolmessage.h.

Constructor & Destructor Documentation

◆ ~ReceivePropertiesControlMessage()

EMANE::Controls::ReceivePropertiesControlMessage::~ReceivePropertiesControlMessage ( )

Destroys an instance

Definition at line 88 of file receivepropertiescontrolmessage.cc.

Member Function Documentation

◆ clone()

EMANE::Controls::ReceivePropertiesControlMessage * EMANE::Controls::ReceivePropertiesControlMessage::clone ( ) const
overridevirtual

Clones the control message on the heap

Returns
cloned message
Note
Caller assumes ownership of the clone

Implements EMANE::Cloneable< ControlMessage >.

Definition at line 122 of file receivepropertiescontrolmessage.cc.

◆ create()

EMANE::Controls::ReceivePropertiesControlMessage * EMANE::Controls::ReceivePropertiesControlMessage::create ( const TimePoint txTime,
const Microseconds propagation,
const Microseconds span,
double  dReceiverSensitivitydBm 
)
static

Creates a ReceivePropertiesControlMessage on the heap

Parameters
txTimeTime value used as the tx time in the common PHY Header
propagationPropagation delay in microseconds
spanLength of time in microseconds between the earliest start-of-reception (SoR) frequency segment and latest end-of-reception (EoR) segment.
dReceiverSensitivitydBmReceiver sensitivity in dBm
Note
Once a control message is passed to another NEM layer using EMANE::UpstreamTransport::processUpstreamPacket(), EMANE::UpstreamTransport::processUpstreamControl(), EMANE::DownstreamTransport::processDownstreamPacket() or EMANE::DownstreamTransport::processDownstreamControl() object ownership is transferred to the emulator infrastructure along with deallocation responsibility. It is not valid to use a control message instance after it has been passed to another layer.

Definition at line 92 of file receivepropertiescontrolmessage.cc.

◆ getId()

ControlMessageId EMANE::ControlMessage::getId ( ) const
inlineinherited

Gets the control message id

Returns
control messase id

Definition at line 64 of file controlmessage.h.

◆ getPropagationDelay()

EMANE::Microseconds EMANE::Controls::ReceivePropertiesControlMessage::getPropagationDelay ( ) const

Gets the propagation delay in microseconds

Returns
propagation delay in microseconds

Definition at line 111 of file receivepropertiescontrolmessage.cc.

◆ getReceiverSensitivitydBm()

double EMANE::Controls::ReceivePropertiesControlMessage::getReceiverSensitivitydBm ( ) const

Gets the receiver sensitivity in dBm

Returns
receiver sensitivity id dBm

Definition at line 105 of file receivepropertiescontrolmessage.cc.

◆ getSpan()

EMANE::Microseconds EMANE::Controls::ReceivePropertiesControlMessage::getSpan ( ) const

Gets the message span

Returns
message span in microseconds
Note
The message span is the length of time between the earliest start-of-reception (SoR) frequency segment and latest end-of-reception (EoR) segment. The purpose of the span is to provide a simple mechanism to query the spectrum service for the noise window that is guaranteed to cover the total duration of all the segments combined. The span will "span" any gaps between segments allowing for creating a logical two dimensional matrix of noise, frequencies vs time, for quick access to the noise information occurring during the entire message duration.
The main consideration is that one large noise window request is less expensive than many small requests.
The span is the length of time after transmit time, propagation delay and segment offset have been accounted for.
Since the first frequency segment always contains the earliest offset, a query to the Spectrum Service should use a calcualted SoR time and the span as the query duration:
TimePoint startOfReception{pReceivePropertiesControlMessage->getTxTime() +
pReceivePropertiesControlMessage->getPropagationDelay() +
frequencySegments.begin()->getOffset()};

Definition at line 116 of file receivepropertiescontrolmessage.cc.

◆ getTxTime()

EMANE::TimePoint EMANE::Controls::ReceivePropertiesControlMessage::getTxTime ( ) const

Gets the Tx time

Returns
time

Definition at line 100 of file receivepropertiescontrolmessage.cc.

◆ serialize()


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