25 #include <ns3/double.h>
27 #include <ns3/simulator.h>
29 NS_LOG_COMPONENT_DEFINE(
"SatConstantInterference");
34 NS_OBJECT_ENSURE_REGISTERED(SatConstantInterference);
39 static TypeId tid = TypeId(
"ns3::SatConstantInterference")
41 .AddConstructor<SatConstantInterference>()
42 .AddAttribute(
"ConstantInterferencePower",
43 "Constant interference power in linear format.",
46 MakeDoubleChecker<double_t>());
67 Ptr<SatInterference::InterferenceChangeEvent>
70 NS_LOG_FUNCTION(
this << duration.GetSeconds() << power << rxAddress);
72 Ptr<SatInterference::InterferenceChangeEvent> event;
73 event = Create<SatInterference::InterferenceChangeEvent>(0, duration, power, rxAddress);
78 std::vector<std::pair<double, double>>
81 NS_LOG_FUNCTION(
this);
85 NS_LOG_WARN(
"Most likely two overlapping receptions! With random access carrier"
86 " this should be fine, but with dedicated access prohibited!");
89 std::vector<std::pair<double, double>> ifPowerPerFragment;
90 ifPowerPerFragment.emplace_back(1.0,
m_power);
92 return ifPowerPerFragment;
98 NS_LOG_FUNCTION(
this);
106 NS_LOG_FUNCTION(
this);
114 NS_LOG_FUNCTION(
this);
virtual Ptr< SatInterference::InterferenceChangeEvent > DoAdd(Time rxDuration, double rxPower, Address rxAddress)
Adds interference power to interference object.
SatConstantInterference()
Default constructor.
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.
~SatConstantInterference()
Destructor for SatConstantInterference.
TypeId GetInstanceTypeId(void) const
virtual void DoNotifyRxEnd(Ptr< SatInterference::InterferenceChangeEvent > event)
Notifies that RX is ended by a receiver.
virtual void DoReset(void)
Resets current interference.
virtual void DoNotifyRxStart(Ptr< SatInterference::InterferenceChangeEvent > event)
Notifies that RX is started by a receiver.
static TypeId GetTypeId(void)
Get the type ID.
Abstract class defining interface for interference calculations objects.
void Reset(void)
Resets current interference.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.