ns3::SatPerFragmentInterference Class Reference

Packet fragment by packet fragment interference. More...

#include "satellite-per-fragment-interference.h"

+ Inheritance diagram for ns3::SatPerFragmentInterference:
+ Collaboration diagram for ns3::SatPerFragmentInterference:

Public Member Functions

 SatPerFragmentInterference ()
 Default constructor. More...
 
 SatPerFragmentInterference (SatEnums::ChannelType_t channelType, double rxBandwidthHz)
 Constructor to listen on a specific SatChannel. More...
 
 ~SatPerFragmentInterference ()
 Destructor. More...
 
TypeId GetInstanceTypeId (void) const
 Inherited from ObjectBase base class. More...
 
- Public Member Functions inherited from ns3::SatPerPacketInterference
 SatPerPacketInterference ()
 
 SatPerPacketInterference (SatEnums::ChannelType_t channelType, double rxBandwidthHz)
 
 ~SatPerPacketInterference ()
 
void DoDispose ()
 
TypeId GetInstanceTypeId (void) const
 
void SetRxBandwidth (double rxBandwidth)
 
- Public Member Functions inherited from ns3::SatInterference
 SatInterference ()
 Constructor for Satellite interference base class. More...
 
 ~SatInterference ()
 Destructor for Satellite interference base class. More...
 
Ptr< SatInterference::InterferenceChangeEventAdd (Time rxDuration, double rxPower, Address rxAddress)
 Adds interference power to interference object. More...
 
std::vector< std::pair< double, double > > Calculate (Ptr< SatInterference::InterferenceChangeEvent > event)
 Calculates interference power for the given reference. More...
 
TypeId GetInstanceTypeId (void) const
 Derived from Object. More...
 
virtual bool HasCollision (Ptr< SatInterference::InterferenceChangeEvent > event)
 Checks whether the packet has collided. More...
 
virtual void NotifyRxEnd (Ptr< SatInterference::InterferenceChangeEvent > event)
 Notifies that RX is ended by a receiver. More...
 
virtual void NotifyRxStart (Ptr< SatInterference::InterferenceChangeEvent > event)
 Notifies that RX is started by a receiver. More...
 
void Reset (void)
 Resets current interference. More...
 

Static Public Member Functions

static TypeId GetTypeId ()
 Inherited from ObjectBase base class. More...
 
- Static Public Member Functions inherited from ns3::SatPerPacketInterference
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::SatInterference
static TypeId GetTypeId (void)
 Derived from Object. More...
 

Protected Member Functions

std::vector< std::pair< double, double > > DoCalculate (Ptr< SatInterference::InterferenceChangeEvent > event)
 Calculates interference power for the given reference Sets final power at end time to finalPower. More...
 
void onInterferentEvent (long double timeRatio, double interferenceValue, double &ifPowerW)
 Helper function meant for subclasses to override. More...
 
void onOwnStartReached (double ifPowerW)
 Helper function meant for subclasses to override. More...
 

Private Attributes

std::vector< std::pair< double, double > > m_ifPowerAtEventChangeW
 
uint32_t m_maxFragmentsCount
 

Detailed Description

Packet fragment by packet fragment interference.

Interference is calculated separately for each fragment of a packet depending of how other interferent packets overlaps.

Definition at line 35 of file satellite-per-fragment-interference.h.

Constructor & Destructor Documentation

◆ SatPerFragmentInterference() [1/2]

ns3::SatPerFragmentInterference::SatPerFragmentInterference ( )

Default constructor.

Definition at line 50 of file satellite-per-fragment-interference.cc.

◆ SatPerFragmentInterference() [2/2]

ns3::SatPerFragmentInterference::SatPerFragmentInterference ( SatEnums::ChannelType_t  channelType,
double  rxBandwidthHz 
)

Constructor to listen on a specific SatChannel.

Definition at line 58 of file satellite-per-fragment-interference.cc.

◆ ~SatPerFragmentInterference()

ns3::SatPerFragmentInterference::~SatPerFragmentInterference ( )

Destructor.

Definition at line 67 of file satellite-per-fragment-interference.cc.

Member Function Documentation

◆ DoCalculate()

std::vector< std::pair< double, double > > ns3::SatPerFragmentInterference::DoCalculate ( Ptr< SatInterference::InterferenceChangeEvent event)
protectedvirtual

Calculates interference power for the given reference Sets final power at end time to finalPower.

Parameters
eventReference event which for interference is calculated.
Returns
Final calculated power value at end of receiving

Reimplemented from ns3::SatPerPacketInterference.

Definition at line 73 of file satellite-per-fragment-interference.cc.

References ns3::SatPerPacketInterference::DoCalculate(), m_ifPowerAtEventChangeW, and m_maxFragmentsCount.

+ Here is the call graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::SatPerFragmentInterference::GetInstanceTypeId ( void  ) const

Inherited from ObjectBase base class.

Definition at line 44 of file satellite-per-fragment-interference.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetTypeId()

TypeId ns3::SatPerFragmentInterference::GetTypeId ( void  )
static

Inherited from ObjectBase base class.

Definition at line 34 of file satellite-per-fragment-interference.cc.

Referenced by GetInstanceTypeId().

+ Here is the caller graph for this function:

◆ onInterferentEvent()

void ns3::SatPerFragmentInterference::onInterferentEvent ( long double  timeRatio,
double  interferenceValue,
double &  ifPowerW 
)
protectedvirtual

Helper function meant for subclasses to override.

Called during DoCalculate after the start of the event whose interferences are being calculated has been reached.

Update the current interference power by adding the power of the event being processed proportional to the remaining time until the end of the event whose interferences are being calculated.

Parameters
timeRatioratio of time compared to an event duration of the distance between the event being processed and the end of the event whose interferences are being calculated.
interferenceValuethe interference value of the event being processed.
ifPowerWthe current value of the interference for the event whose interferences are being calculated; which will be updated.

Reimplemented from ns3::SatPerPacketInterference.

Definition at line 126 of file satellite-per-fragment-interference.cc.

References m_ifPowerAtEventChangeW.

◆ onOwnStartReached()

void ns3::SatPerFragmentInterference::onOwnStartReached ( double  ifPowerW)
protectedvirtual

Helper function meant for subclasses to override.

Called during DoCalculate when the start of the event whose interferences are being calculated has been reached.

Reimplemented from ns3::SatPerPacketInterference.

Definition at line 118 of file satellite-per-fragment-interference.cc.

References m_ifPowerAtEventChangeW.

Member Data Documentation

◆ m_ifPowerAtEventChangeW

std::vector<std::pair<double, double> > ns3::SatPerFragmentInterference::m_ifPowerAtEventChangeW
private

◆ m_maxFragmentsCount

uint32_t ns3::SatPerFragmentInterference::m_maxFragmentsCount
private

Definition at line 104 of file satellite-per-fragment-interference.h.

Referenced by DoCalculate().


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