21 #ifndef SATELLITE_INTERFERENCE_H
22 #define SATELLITE_INTERFERENCE_H
24 #include <ns3/mac48-address.h>
25 #include <ns3/nstime.h>
26 #include <ns3/object.h>
27 #include <ns3/simple-ref-count.h>
60 Address satEarthStationAddress);
70 uint32_t
GetId(
void)
const;
135 Ptr<SatInterference::InterferenceChangeEvent>
Add(Time rxDuration,
145 std::vector<std::pair<double, double>>
Calculate(
146 Ptr<SatInterference::InterferenceChangeEvent> event);
157 virtual void NotifyRxStart(Ptr<SatInterference::InterferenceChangeEvent> event);
163 virtual void NotifyRxEnd(Ptr<SatInterference::InterferenceChangeEvent> event);
170 virtual bool HasCollision(Ptr<SatInterference::InterferenceChangeEvent> event);
184 virtual Ptr<SatInterference::InterferenceChangeEvent>
DoAdd(Time rxDuration,
186 Address rxAddress) = 0;
198 Ptr<SatInterference::InterferenceChangeEvent> event) = 0;
214 virtual void DoNotifyRxStart(Ptr<SatInterference::InterferenceChangeEvent> event) = 0;
223 virtual void DoNotifyRxEnd(Ptr<SatInterference::InterferenceChangeEvent> event) = 0;
Event for identifying interference change events (receiving)
Time GetEndTime(void) const
~InterferenceChangeEvent()
Destructor of Event for satellite interference.
Time GetDuration(void) const
double GetRxPower(void) const
Address GetSatEarthStationAddress(void) const
InterferenceChangeEvent(uint32_t id, Time duration, double rxPower, Address satEarthStationAddress)
Constructor of Event for satellite interference.
Address m_satEarthStationAddress
uint32_t GetId(void) const
Time GetStartTime(void) const
Abstract class defining interface for interference calculations objects.
TypeId GetInstanceTypeId(void) const
Derived from Object.
virtual void DoNotifyRxStart(Ptr< SatInterference::InterferenceChangeEvent > event)=0
Notifies that RX is started by a receiver.
SatInterference(const SatInterference &o)
void Reset(void)
Resets current interference.
virtual std::vector< std::pair< double, double > > DoCalculate(Ptr< SatInterference::InterferenceChangeEvent > event)=0
Calculates interference power for the given reference Sets final power at end time to finalPower.
Ptr< SatInterference::InterferenceChangeEvent > Add(Time rxDuration, double rxPower, Address rxAddress)
Adds interference power to interference object.
uint32_t m_currentlyReceiving
SatInterference & operator=(const SatInterference &o)
~SatInterference()
Destructor for Satellite interference base class.
virtual Ptr< SatInterference::InterferenceChangeEvent > DoAdd(Time rxDuration, double rxPower, Address rxAddress)=0
Adds interference power to interference object.
static TypeId GetTypeId(void)
Derived from Object.
virtual void DoNotifyRxEnd(Ptr< SatInterference::InterferenceChangeEvent > event)=0
Notifies that RX is ended by a receiver.
virtual void NotifyRxEnd(Ptr< SatInterference::InterferenceChangeEvent > event)
Notifies that RX is ended by a receiver.
virtual void DoReset(void)=0
Resets current interference.
virtual void NotifyRxStart(Ptr< SatInterference::InterferenceChangeEvent > event)
Notifies that RX is started by a receiver.
virtual bool HasCollision(Ptr< SatInterference::InterferenceChangeEvent > event)
Checks whether the packet has collided.
std::vector< std::pair< double, double > > Calculate(Ptr< SatInterference::InterferenceChangeEvent > event)
Calculates interference power for the given reference.
SatInterference()
Constructor for Satellite interference base class.
std::map< Ptr< SatInterference::InterferenceChangeEvent >, bool > m_packetCollisions
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.