24#include "ns3/simulator.h"
31NS_LOG_COMPONENT_DEFINE(
"SatPerFragmentInterference");
41 static TypeId tid = TypeId(
"ns3::SatPerFragmentInterference")
43 .AddConstructor<SatPerFragmentInterference>();
53 NS_LOG_FUNCTION(
this);
62 NS_LOG_FUNCTION(
this);
67 NS_LOG_FUNCTION(
this);
70std::vector<std::pair<double, double>>
73 NS_LOG_FUNCTION(
this);
85 NS_FATAL_ERROR(
"Interference computation did not find a single fragment");
94 std::vector<std::pair<double, double>> ifPowerPerFragment;
95 ifPowerPerFragment.reserve(fragmentsCount);
98 std::pair<double, double> eventChangeInPower = *iter;
101 ifPowerPerFragment.emplace_back(iter->first - eventChangeInPower.first,
102 eventChangeInPower.second);
103 eventChangeInPower = *iter;
107 if (eventChangeInPower.first != 1.0)
109 ifPowerPerFragment.emplace_back(1.0 - eventChangeInPower.first, eventChangeInPower.second);
112 return ifPowerPerFragment;
125 double interferenceValue,
130 ifPowerW += interferenceValue;
ChannelType_t
Types of channel.
Packet fragment by packet fragment interference.
SatPerFragmentInterference()
Default constructor.
uint32_t m_maxFragmentsCount
static TypeId GetTypeId()
Inherited from ObjectBase base class.
void onInterferentEvent(long double timeRatio, double interferenceValue, double &ifPowerW)
Helper function meant for subclasses to override.
std::vector< std::pair< double, double > > m_ifPowerAtEventChangeW
~SatPerFragmentInterference()
Destructor.
void onOwnStartReached(double ifPowerW)
Helper function meant for subclasses to override.
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.
SatPerPacketInterference()
virtual 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.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.