23 #ifndef SATELLITE_PER_PACKET_INTERFERENCE_H
24 #define SATELLITE_PER_PACKET_INTERFERENCE_H
98 virtual std::vector<std::pair<double, double>>
DoCalculate(
99 Ptr<SatInterference::InterferenceChangeEvent> event);
126 double interferenceValue,
138 virtual Ptr<SatInterference::InterferenceChangeEvent>
DoAdd(Time rxDuration,
152 virtual void DoNotifyRxStart(Ptr<SatInterference::InterferenceChangeEvent> event);
159 virtual void DoNotifyRxEnd(Ptr<SatInterference::InterferenceChangeEvent> event);
ChannelType_t
Types of channel.
Abstract class defining interface for interference calculations objects.
Packet by packet interference.
virtual void DoReset(void)
Resets current interference.
bool m_rxing
flag to indicate that at least one receiving is on
double m_rxBandwidth_Hz
RX Bandwidth in Hz.
SatPerPacketInterference()
void SetRxBandwidth(double rxBandwidth)
long double m_residualPowerW
Residual power value for interference.
static TypeId GetTypeId(void)
~SatPerPacketInterference()
virtual void DoNotifyRxEnd(Ptr< SatInterference::InterferenceChangeEvent > event)
Notifies that RX is ended by a receiver.
InterferenceChanges m_interferenceChanges
interference change list
virtual void DoNotifyRxStart(Ptr< SatInterference::InterferenceChangeEvent > event)
Notifies that RX is started by a receiver.
uint32_t m_nextEventId
event id for Events
std::set< uint32_t > m_rxEventIds
notified interference event IDs
virtual void onInterferentEvent(long double timeRatio, double interferenceValue, double &ifPowerW)
Helper function meant for subclasses to override.
std::tuple< uint32_t, long double, bool > InterferenceChange
SatPerPacketInterference(const SatPerPacketInterference &o)
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.
SatPerPacketInterference & operator=(const SatPerPacketInterference &o)
SatEnums::ChannelType_t m_channelType
std::multimap< Time, InterferenceChange > InterferenceChanges
TypeId GetInstanceTypeId(void) const
virtual void onOwnStartReached(double ifPowerW)
Helper function meant for subclasses to override.
virtual Ptr< SatInterference::InterferenceChangeEvent > DoAdd(Time rxDuration, double rxPower, Address rxAddress)
Adds interference power to interference object.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.