Loading...
Searching...
No Matches
satellite-link-results.h
Go to the documentation of this file.
1/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2013 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: Budiarto Herman <budiarto.herman@magister.fi>
19 *
20 */
21
22#ifndef SATELLITE_LINK_RESULTS_H
23#define SATELLITE_LINK_RESULTS_H
24
25#include "satellite-enums.h"
28
29#include "ns3/object.h"
30#include "ns3/ptr.h"
31
32#include <map>
33#include <stdint.h>
34#include <string>
35
36namespace ns3
37{
38
57class SatLinkResults : public Object
58{
59 public:
64
69 static TypeId GetTypeId();
70
78 void Initialize();
79
80 protected:
89 virtual void DoInitialize() = 0;
90
95 std::string m_inputPath;
96
101};
102
114{
115 public:
120
122 {
123 }
124
129 static TypeId GetTypeId();
130
141 double GetBler(uint32_t waveformId, double ebNoDb) const;
142
153 double GetEbNoDb(uint32_t waveformId, double blerTarget) const;
154
155 protected:
159 virtual void DoInitialize() = 0;
160
166 std::map<uint32_t, Ptr<SatLookUpTable>> m_table;
167};
168
180{
181 public:
186
190
195 static TypeId GetTypeId();
196
197 protected:
201 virtual void DoInitialize();
202};
203
215{
216 public:
221
223 {
224 }
225
230 static TypeId GetTypeId();
231
237 inline double GetNormalizedSymbolInformation(double snirDb) const
238 {
239 return m_mutualInformationTable->GetNormalizedSymbolInformation(snirDb);
240 }
241
247 inline double GetSnirDb(double symbolInformationTarget) const
248 {
249 return m_mutualInformationTable->GetSnirDb(symbolInformationTarget);
250 }
251
255 inline Ptr<SatMutualInformationTable> GetMutualInformationTable() const
256 {
258 }
259
260 protected:
264 void DoInitialize();
265
266 private:
270 Ptr<SatMutualInformationTable> m_mutualInformationTable;
271};
272
284{
285 public:
290
292 {
293 }
294
299 static TypeId GetTypeId();
300
306 inline double GetNormalizedSymbolInformation(double snirDb) const
307 {
308 return m_mutualInformationTable->GetNormalizedSymbolInformation(snirDb);
309 }
310
316 inline double GetSnirDb(double symbolInformationTarget) const
317 {
318 return m_mutualInformationTable->GetSnirDb(symbolInformationTarget);
319 }
320
324 inline Ptr<SatMutualInformationTable> GetMutualInformationTable() const
325 {
327 }
328
329 protected:
333 void DoInitialize();
334
335 private:
339 Ptr<SatMutualInformationTable> m_mutualInformationTable;
340};
341
355{
356 public:
361
363 {
364 }
365
370 static TypeId GetTypeId();
371
383 double GetBler(SatEnums::SatModcod_t modcod,
385 double esNoDb) const;
386
398 double GetEsNoDb(SatEnums::SatModcod_t modcod,
400 double blerTarget) const;
401
402 protected:
411 virtual void DoInitialize() = 0;
412
418 std::map<SatEnums::SatModcod_t, Ptr<SatLookUpTable>> m_table;
419
421};
422
434{
435 public:
440
442 {
443 }
444
449 static TypeId GetTypeId();
450
451 private:
455 void DoInitialize();
456};
457
469{
470 public:
475
479
484 static TypeId GetTypeId();
485
486 private:
490 void DoInitialize();
491};
492
493} // end of namespace ns3
494
495#endif /* SATELLITE_LINK_RESULTS_H */
SatBbFrameType_t
BB frame type used in DVB-S2 FWD link.
SatModcod_t
Modulation scheme and coding rate for DVB-S2.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.