satellite-per-fragment-interference.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2018 CNES
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Mathias Ettinger <mettinger@toulouse.viveris.com>
19  */
20 
21 #ifndef SATELLITE_PER_FRAGMENT_INTERFERENCE_H
22 #define SATELLITE_PER_FRAGMENT_INTERFERENCE_H
23 
25 
26 namespace ns3
27 {
28 
36 {
37  public:
41  static TypeId GetTypeId();
42 
46  TypeId GetInstanceTypeId(void) const;
47 
52 
56  SatPerFragmentInterference(SatEnums::ChannelType_t channelType, double rxBandwidthHz);
57 
62 
63  protected:
72  std::vector<std::pair<double, double>> DoCalculate(
73  Ptr<SatInterference::InterferenceChangeEvent> event);
74 
80  void onOwnStartReached(double ifPowerW);
81 
99  void onInterferentEvent(long double timeRatio, double interferenceValue, double& ifPowerW);
100 
101  private:
102  std::vector<std::pair<double, double>> m_ifPowerAtEventChangeW;
103 
105 };
106 
107 } // namespace ns3
108 
109 #endif // SATELLITE_PER_FRAGMENT_INTERFERENCE_H
ChannelType_t
Types of channel.
Packet fragment by packet fragment interference.
TypeId GetInstanceTypeId(void) const
Inherited from ObjectBase base class.
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
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.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.