Loading...
Searching...
No Matches
satellite-stats-link-rx-power-helper.h
Go to the documentation of this file.
1/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2014 Magister Solutions
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: Bastien Tauran <bastien.tauran@viveris.fr>
19 *
20 */
21
22#ifndef SATELLITE_STATS_LINK_RX_POWER_HELPER_H
23#define SATELLITE_STATS_LINK_RX_POWER_HELPER_H
24
26
27#include "ns3/callback.h"
28#include "ns3/collector-map.h"
29#include "ns3/ptr.h"
30
31namespace ns3
32{
33
34// BASE CLASS /////////////////////////////////////////////////////////////////
35
36class SatHelper;
37class Node;
38class DataCollectionObject;
39class DistributionCollector;
40
46{
47 public:
48 // inherited from SatStatsHelper base class
49 SatStatsLinkRxPowerHelper(Ptr<const SatHelper> satHelper);
50
55
59 static TypeId GetTypeId();
60
64 void SetAveragingMode(bool averagingMode);
65
70 void InstallProbes();
71
77 void RxPowerCallback(double rxPowerDb, const Address& addr);
78
82 Callback<void, double, const Address&> GetTraceSinkCallback() const;
83
84 protected:
85 // inherited from SatStatsHelper base class
86 void DoInstall();
87
91 virtual void DoInstallProbes() = 0;
92
98 bool ConnectProbeToCollector(Ptr<Probe> probe, uint32_t identifier);
99
106 void PassSampleToCollector(double rxPowerDb, uint32_t identifier);
107
110
112 Ptr<DataCollectionObject> m_collector;
113
115 Ptr<DataCollectionObject> m_aggregator;
116
118 Ptr<DistributionCollector> m_averagingCollector;
119
120 private:
122 Callback<void, double, const Address&> m_traceSinkCallback;
123
125
126}; // end of class SatStatsLinkRxPowerHelper
127
128// FORWARD FEEDER LINK ////////////////////////////////////////////////////////
129
146{
147 public:
148 // inherited from SatStatsHelper base class
149 SatStatsFwdFeederLinkRxPowerHelper(Ptr<const SatHelper> satHelper);
150
155
159 static TypeId GetTypeId();
160
161 protected:
162 // inherited from SatStatsLinkRxPowerHelper base class
163 void DoInstallProbes();
164
165}; // end of class SatStatsFwdFeederLinkRxPowerHelper
166
167// FORWARD USER LINK //////////////////////////////////////////////////////////
168
186{
187 public:
188 // inherited from SatStatsHelper base class
189 SatStatsFwdUserLinkRxPowerHelper(Ptr<const SatHelper> satHelper);
190
195
199 static TypeId GetTypeId();
200
201 protected:
202 // inherited from SatStatsLinkRxPowerHelper base class
203 void DoInstallProbes();
204
205}; // end of class SatStatsFwdUserLinkRxPowerHelper
206
207// RETURN FEEDER LINK /////////////////////////////////////////////////////////
208
225{
226 public:
227 // inherited from SatStatsHelper base class
228 SatStatsRtnFeederLinkRxPowerHelper(Ptr<const SatHelper> satHelper);
229
234
238 static TypeId GetTypeId();
239
240 protected:
241 // inherited from SatStatsLinkRxPowerHelper base class
242 void DoInstallProbes();
243
244}; // end of class SatStatsRtnFeederLinkRxPowerHelper
245
246// RETURN USER LINK ///////////////////////////////////////////////////////////
247
265{
266 public:
267 // inherited from SatStatsHelper base class
268 SatStatsRtnUserLinkRxPowerHelper(Ptr<const SatHelper> satHelper);
269
274
278 static TypeId GetTypeId();
279
280 protected:
281 // inherited from SatStatsLinkRxPowerHelper base class
282 void DoInstallProbes();
283
284}; // end of class SatStatsRtnUserLinkRxPowerHelper
285
286} // end of namespace ns3
287
288#endif /* SATELLITE_STATS_LINK_RX_POWER_HELPER_H */
Build a satellite network set with needed objects and configuration.
SatStatsHelper(Ptr< const SatHelper > satHelper)
Creates a new helper instance.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.