satellite-link-results.cc
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 #include "satellite-link-results.h"
23 
24 #include "../utils/satellite-env-variables.h"
25 #include "satellite-enums.h"
26 
27 #include <ns3/double.h>
28 #include <ns3/log.h>
29 #include <ns3/object.h>
30 #include <ns3/singleton.h>
31 #include <ns3/string.h>
32 
33 #include <sstream>
34 #include <string>
35 #include <utility>
36 
37 NS_LOG_COMPONENT_DEFINE("SatLinkResults");
38 
39 namespace ns3
40 {
41 
42 /*
43  * SATLINKRESULTS PARENT ABSTRACT CLASS
44  */
45 
46 NS_OBJECT_ENSURE_REGISTERED(SatLinkResults);
47 
49  : m_isInitialized(false)
50 {
51  std::string dataPath = Singleton<SatEnvVariables>::Get()->GetDataPath();
52  m_inputPath = Singleton<SatEnvVariables>::Get()->LocateDirectory(
53  dataPath + "/additional-input/linkresults/");
54 }
55 
56 TypeId
58 {
59  static TypeId tid = TypeId("ns3::SatLinkResults").SetParent<Object>();
60  return tid;
61 }
62 
63 void
65 {
66  NS_LOG_FUNCTION(this);
67  DoInitialize();
68  m_isInitialized = true;
69 }
70 
71 /*
72  * SATLINKRESULTSRTN CHILD CLASS
73  */
74 NS_OBJECT_ENSURE_REGISTERED(SatLinkResultsRtn);
75 
77  : SatLinkResults(),
78  m_table()
79 {
80 }
81 
82 TypeId
84 {
85  static TypeId tid = TypeId("ns3::SatLinkResultsRtn").SetParent<SatLinkResults>();
86  return tid;
87 }
88 
89 double
90 SatLinkResultsRtn::GetBler(uint32_t waveformId, double ebNoDb) const
91 {
92  NS_LOG_FUNCTION(this << waveformId << ebNoDb);
93 
94  if (!m_isInitialized)
95  {
96  NS_FATAL_ERROR("Error retrieving link results, call Initialize first");
97  }
98 
99  return m_table.at(waveformId)->GetBler(ebNoDb);
100 }
101 
102 double
103 SatLinkResultsRtn::GetEbNoDb(uint32_t waveformId, double blerTarget) const
104 {
105  NS_LOG_FUNCTION(this << waveformId << blerTarget);
106 
107  if (!m_isInitialized)
108  {
109  NS_FATAL_ERROR("Error retrieving link results, call Initialize first");
110  }
111 
112  return m_table.at(waveformId)->GetEsNoDb(blerTarget);
113 }
114 
115 /*
116  * SATLINKRESULTSDVBRCS2 CHILD CLASS
117  */
118 NS_OBJECT_ENSURE_REGISTERED(SatLinkResultsDvbRcs2);
119 
122 {
123 }
124 
125 TypeId
127 {
128  static TypeId tid = TypeId("ns3::SatLinkResultsDvbRcs2").SetParent<SatLinkResultsRtn>();
129  return tid;
130 }
131 
132 void
134 {
135  NS_LOG_FUNCTION(this);
136 
137  // Waveform ids 2-22 currently supported
138  for (uint32_t i = 2; i <= 22; ++i)
139  {
140  std::ostringstream ss;
141  ss << i;
142  std::string filePathName = m_inputPath + "rcs2_waveformat" + ss.str() + ".txt";
143  m_table.insert(std::make_pair(i, CreateObject<SatLookUpTable>(filePathName)));
144  }
145 } // end of void SatLinkResultsDvbRcs2::DoInitialize
146 
147 /*
148  * SATLINKRESULTSFSIM CHILD CLASS
149  */
150 NS_OBJECT_ENSURE_REGISTERED(SatLinkResultsFSim);
151 
154 {
155 }
156 
157 TypeId
159 {
160  static TypeId tid = TypeId("ns3::SatLinkResultsFSim").SetParent<SatLinkResultsRtn>();
161  return tid;
162 }
163 
164 void
166 {
167  NS_LOG_FUNCTION(this);
168 
169  // Waveform ids 1-2 currently supported
170  for (uint32_t i = 1; i <= 2; ++i)
171  {
172  std::ostringstream ss;
173  ss << i;
174  std::string filePathName = m_inputPath + "fsim_waveformat" + ss.str() + ".txt";
175  m_table.insert(std::make_pair(i, CreateObject<SatLookUpTable>(filePathName)));
176  }
177 
178  // Initialize Mutual Information table
180  CreateObject<SatMutualInformationTable>(m_inputPath + "mutualInformationTable.txt");
181 } // end of void SatLinkResultsFSim::DoInitialize
182 
183 /*
184  * SATLINKRESULTSLORA CHILD CLASS
185  */
186 NS_OBJECT_ENSURE_REGISTERED(SatLinkResultsLora);
187 
190 {
191 }
192 
193 TypeId
195 {
196  static TypeId tid = TypeId("ns3::SatLinkResultsLora").SetParent<SatLinkResultsRtn>();
197  return tid;
198 }
199 
200 void
202 {
203  NS_LOG_FUNCTION(this);
204 
205  // Waveform ids 1-2 currently supported
206  for (uint32_t i = 1; i <= 2; ++i)
207  {
208  std::ostringstream ss;
209  ss << i;
210  std::string filePathName = m_inputPath + "lora_waveformat" + ss.str() + ".txt";
211  m_table.insert(std::make_pair(i, CreateObject<SatLookUpTable>(filePathName)));
212  }
213 
214  // Initialize Mutual Information table
216  CreateObject<SatMutualInformationTable>(m_inputPath + "mutualInformationTable.txt");
217 } // end of void SatLinkResultsLora::DoInitialize
218 
219 /*
220  * SATLINKRESULTSFWD ABSTRACT CLASS
221  */
222 
223 NS_OBJECT_ENSURE_REGISTERED(SatLinkResultsFwd);
224 
226  : SatLinkResults(),
227  m_table(),
228  m_shortFrameOffsetInDb(0.0)
229 {
230 }
231 
232 TypeId
234 {
235  static TypeId tid =
236  TypeId("ns3::SatLinkResultsFwd")
237  .SetParent<SatLinkResults>()
238  .AddAttribute("EsNoOffsetForShortFrame",
239  "EsNo increase offset for short BB frame with a given BLER",
240  DoubleValue(0.4),
241  MakeDoubleAccessor(&SatLinkResultsFwd::m_shortFrameOffsetInDb),
242  MakeDoubleChecker<double_t>());
243  return tid;
244 }
245 
246 double
248  SatEnums::SatBbFrameType_t frameType,
249  double esNoDb) const
250 {
251  NS_LOG_FUNCTION(this << modcod << esNoDb);
252 
253  if (!m_isInitialized)
254  {
255  NS_FATAL_ERROR("Error retrieving link results, call Initialize first");
256  }
257 
263  if (frameType == SatEnums::SHORT_FRAME)
264  {
265  esNoDb -= m_shortFrameOffsetInDb;
266  }
267 
268  return m_table.at(modcod)->GetBler(esNoDb);
269 }
270 
271 double
273  SatEnums::SatBbFrameType_t frameType,
274  double blerTarget) const
275 {
276  NS_LOG_FUNCTION(this << modcod << blerTarget);
277 
278  if (!m_isInitialized)
279  {
280  NS_FATAL_ERROR("Error retrieving link results, call Initialize first");
281  }
282 
283  // Get Es/No requirement for normal BB frame
284  double esno = m_table.at(modcod)->GetEsNoDb(blerTarget);
285 
291  if (frameType == SatEnums::SHORT_FRAME)
292  {
293  esno += m_shortFrameOffsetInDb;
294  }
295 
296  return esno;
297 }
298 
299 /*
300  * SATLINKRESULTSDVBS2 CHILD CLASS
301  */
302 NS_OBJECT_ENSURE_REGISTERED(SatLinkResultsDvbS2);
303 
306 {
307 }
308 
309 TypeId
311 {
312  static TypeId tid = TypeId("ns3::SatLinkResultsDvbS2").SetParent<SatLinkResultsFwd>();
313  return tid;
314 }
315 
316 void
318 {
319  NS_LOG_FUNCTION(this);
320 
321  // QPSK
323  CreateObject<SatLookUpTable>(m_inputPath + "s2_qpsk_1_to_2.txt");
325  CreateObject<SatLookUpTable>(m_inputPath + "s2_qpsk_2_to_3.txt");
327  CreateObject<SatLookUpTable>(m_inputPath + "s2_qpsk_3_to_4.txt");
329  CreateObject<SatLookUpTable>(m_inputPath + "s2_qpsk_3_to_5.txt");
331  CreateObject<SatLookUpTable>(m_inputPath + "s2_qpsk_4_to_5.txt");
333  CreateObject<SatLookUpTable>(m_inputPath + "s2_qpsk_5_to_6.txt");
335  CreateObject<SatLookUpTable>(m_inputPath + "s2_qpsk_8_to_9.txt");
337  CreateObject<SatLookUpTable>(m_inputPath + "s2_qpsk_9_to_10.txt");
338 
339  // 8PSK
341  CreateObject<SatLookUpTable>(m_inputPath + "s2_8psk_2_to_3.txt");
343  CreateObject<SatLookUpTable>(m_inputPath + "s2_8psk_3_to_4.txt");
345  CreateObject<SatLookUpTable>(m_inputPath + "s2_8psk_3_to_5.txt");
347  CreateObject<SatLookUpTable>(m_inputPath + "s2_8psk_5_to_6.txt");
349  CreateObject<SatLookUpTable>(m_inputPath + "s2_8psk_8_to_9.txt");
351  CreateObject<SatLookUpTable>(m_inputPath + "s2_8psk_9_to_10.txt");
352 
353  // 16APSK
355  CreateObject<SatLookUpTable>(m_inputPath + "s2_16apsk_2_to_3.txt");
357  CreateObject<SatLookUpTable>(m_inputPath + "s2_16apsk_3_to_4.txt");
359  CreateObject<SatLookUpTable>(m_inputPath + "s2_16apsk_4_to_5.txt");
361  CreateObject<SatLookUpTable>(m_inputPath + "s2_16apsk_5_to_6.txt");
363  CreateObject<SatLookUpTable>(m_inputPath + "s2_16apsk_8_to_9.txt");
365  CreateObject<SatLookUpTable>(m_inputPath + "s2_16apsk_9_to_10.txt");
366 
367  // 32APSK
369  CreateObject<SatLookUpTable>(m_inputPath + "s2_32apsk_3_to_4.txt");
371  CreateObject<SatLookUpTable>(m_inputPath + "s2_32apsk_4_to_5.txt");
373  CreateObject<SatLookUpTable>(m_inputPath + "s2_32apsk_5_to_6.txt");
375  CreateObject<SatLookUpTable>(m_inputPath + "s2_32apsk_8_to_9.txt");
376 
378  CreateObject<SatLookUpTable>(m_inputPath + "lora_waveformat2.txt");
379 
380 } // end of void SatLinkResultsDvbS2::DoInitialize
381 
382 /*
383  * SATLINKRESULTSDVBS2X CHILD CLASS
384  */
385 NS_OBJECT_ENSURE_REGISTERED(SatLinkResultsDvbS2X);
386 
389 {
390 }
391 
392 TypeId
394 {
395  static TypeId tid = TypeId("ns3::SatLinkResultsDvbS2X").SetParent<SatLinkResultsFwd>();
396  return tid;
397 }
398 
399 void
401 {
402  NS_LOG_FUNCTION(this);
403 
404  // QPSK
406  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_3_to_5_short_pilots.txt");
408  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_2_short_pilots.txt");
410  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_14_to_45_short_nopilots.txt");
412  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_3_normal_pilots.txt");
414  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_3_to_4_short_pilots.txt");
416  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_9_to_20_normal_nopilots.txt");
418  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_4_to_15_short_nopilots.txt");
420  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_4_short_pilots.txt");
422  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_4_to_5_short_pilots.txt");
424  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_2_to_5_short_pilots.txt");
426  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_2_to_5_normal_pilots.txt");
428  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_2_normal_pilots.txt");
430  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_2_to_3_short_nopilots.txt");
432  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_11_to_20_normal_nopilots.txt");
434  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_2_to_5_normal_nopilots.txt");
436  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_2_to_3_normal_nopilots.txt");
438  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_5_to_6_short_nopilots.txt");
440  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_32_to_45_short_nopilots.txt");
442  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_9_to_10_normal_pilots.txt");
444  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_8_to_9_short_pilots.txt");
446  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_2_to_3_normal_pilots.txt");
448  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_5_to_6_normal_pilots.txt");
450  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_8_to_15_short_pilots.txt");
452  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_13_to_45_normal_nopilots.txt");
454  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_3_to_5_normal_nopilots.txt");
456  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_4_to_5_normal_nopilots.txt");
458  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_4_short_nopilots.txt");
460  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_3_short_nopilots.txt");
462  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_4_to_15_short_pilots.txt");
464  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_14_to_45_short_pilots.txt");
466  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_4_normal_nopilots.txt");
468  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_3_to_5_normal_pilots.txt");
470  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_2_short_nopilots.txt");
472  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_4_to_5_short_nopilots.txt");
474  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_7_to_15_short_nopilots.txt");
476  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_3_to_5_short_nopilots.txt");
478  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_3_short_pilots.txt");
480  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_11_to_45_short_nopilots.txt");
482  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_2_normal_nopilots.txt");
484  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_8_to_9_normal_nopilots.txt");
486  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_13_to_45_normal_pilots.txt");
488  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_5_to_6_short_pilots.txt");
490  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_4_normal_pilots.txt");
492  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_11_to_45_short_pilots.txt");
494  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_2_to_5_short_nopilots.txt");
496  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_3_to_4_normal_nopilots.txt");
498  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_3_to_4_short_nopilots.txt");
500  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_1_to_3_normal_nopilots.txt");
502  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_8_to_9_short_nopilots.txt");
504  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_7_to_15_short_pilots.txt");
506  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_9_to_10_normal_nopilots.txt");
508  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_11_to_20_normal_pilots.txt");
510  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_4_to_5_normal_pilots.txt");
512  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_32_to_45_short_pilots.txt");
514  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_8_to_15_short_nopilots.txt");
516  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_9_to_20_normal_pilots.txt");
518  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_2_to_3_short_pilots.txt");
520  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_8_to_9_normal_pilots.txt");
522  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_5_to_6_normal_nopilots.txt");
524  CreateObject<SatLookUpTable>(m_inputPath + "s2x_qpsk_3_to_4_normal_pilots.txt");
525 
526  // 8PSK
528  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_8_to_9_short_nopilots.txt");
530  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_2_to_3_short_nopilots.txt");
532  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_3_to_4_short_nopilots.txt");
534  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_3_to_4_normal_nopilots.txt");
536  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_13_to_18_normal_pilots.txt");
538  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_13_to_18_normal_nopilots.txt");
540  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_7_to_15_short_pilots.txt");
542  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_2_to_3_short_pilots.txt");
544  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_8_to_15_short_pilots.txt");
546  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_8_to_15_short_nopilots.txt");
548  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_2_to_3_normal_nopilots.txt");
550  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_32_to_45_short_nopilots.txt");
552  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_3_to_5_short_pilots.txt");
554  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_9_to_10_normal_nopilots.txt");
556  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_5_to_6_short_nopilots.txt");
558  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_25_to_36_normal_nopilots.txt");
560  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_3_to_4_short_pilots.txt");
562  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_26_to_45_short_pilots.txt");
564  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_23_to_36_normal_nopilots.txt");
566  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_23_to_36_normal_pilots.txt");
568  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_25_to_36_normal_pilots.txt");
570  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_3_to_5_normal_nopilots.txt");
572  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_2_to_3_normal_pilots.txt");
574  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_5_to_6_short_pilots.txt");
576  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_7_to_15_short_nopilots.txt");
578  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_26_to_45_short_nopilots.txt");
580  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_8_to_9_normal_pilots.txt");
582  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_3_to_5_short_nopilots.txt");
584  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_8_to_9_normal_nopilots.txt");
586  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_5_to_6_normal_nopilots.txt");
588  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_5_to_6_normal_pilots.txt");
590  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_32_to_45_short_pilots.txt");
592  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_9_to_10_normal_pilots.txt");
594  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_8_to_9_short_pilots.txt");
596  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_3_to_4_normal_pilots.txt");
598  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8psk_3_to_5_normal_pilots.txt");
599 
600  // 8APSK
602  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8apsk_26_to_45_l_normal_nopilots.txt");
604  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8apsk_26_to_45_l_normal_pilots.txt");
606  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8apsk_5_to_9_l_normal_pilots.txt");
608  CreateObject<SatLookUpTable>(m_inputPath + "s2x_8apsk_5_to_9_l_normal_nopilots.txt");
609 
610  // 16APSK
612  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_7_to_9_normal_pilots.txt");
614  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_5_to_6_normal_pilots.txt");
616  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_5_normal_nopilots.txt");
618  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_5_l_normal_pilots.txt");
620  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_8_to_9_short_nopilots.txt");
622  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_25_to_36_normal_nopilots.txt");
624  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_1_to_2_l_normal_pilots.txt");
626  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_5_normal_pilots.txt");
628  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_2_to_3_short_nopilots.txt");
630  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_13_to_18_normal_pilots.txt");
632  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_4_to_5_short_pilots.txt");
634  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_8_to_9_short_pilots.txt");
636  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_28_to_45_normal_nopilots.txt");
638  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_5_to_6_short_pilots.txt");
640  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_2_to_3_l_normal_pilots.txt");
642  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_4_to_5_normal_pilots.txt");
644  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_23_to_36_normal_pilots.txt");
646  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_5_to_9_l_normal_nopilots.txt");
648  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_4_short_nopilots.txt");
650  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_8_to_9_normal_pilots.txt");
652  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_8_to_15_short_pilots.txt");
654  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_26_to_45_normal_pilots.txt");
656  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_8_to_15_l_normal_nopilots.txt");
658  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_5_to_6_normal_nopilots.txt");
660  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_5_l_normal_nopilots.txt");
662  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_23_to_36_normal_nopilots.txt");
664  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_5_to_6_short_nopilots.txt");
666  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_28_to_45_normal_pilots.txt");
668  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_7_to_9_normal_nopilots.txt");
670  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_7_to_15_short_pilots.txt");
672  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_25_to_36_normal_pilots.txt");
674  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_5_to_9_l_normal_pilots.txt");
676  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_32_to_45_short_pilots.txt");
678  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_26_to_45_short_nopilots.txt");
680  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_1_to_2_l_normal_nopilots.txt");
682  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_13_to_18_normal_nopilots.txt");
684  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_2_to_3_normal_pilots.txt");
686  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_9_to_10_normal_nopilots.txt");
688  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_32_to_45_short_nopilots.txt");
690  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_2_to_3_short_pilots.txt");
692  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_26_to_45_short_pilots.txt");
694  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_4_normal_nopilots.txt");
696  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_8_to_15_short_nopilots.txt");
698  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_4_to_5_short_nopilots.txt");
700  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_2_to_3_l_normal_nopilots.txt");
702  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_8_to_15_l_normal_pilots.txt");
704  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_4_normal_pilots.txt");
706  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_77_to_90_normal_pilots.txt");
708  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_26_to_45_normal_nopilots.txt");
710  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_5_short_nopilots.txt");
712  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_77_to_90_normal_nopilots.txt");
714  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_7_to_15_short_nopilots.txt");
716  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_8_to_9_normal_nopilots.txt");
718  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_2_to_3_normal_nopilots.txt");
720  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_4_to_5_normal_nopilots.txt");
722  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_5_short_pilots.txt");
724  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_3_to_4_short_pilots.txt");
726  CreateObject<SatLookUpTable>(m_inputPath + "s2x_16apsk_9_to_10_normal_pilots.txt");
727 
728  // 32APSK
730  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_7_to_9_normal_pilots.txt");
732  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_5_to_6_short_pilots.txt");
734  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_8_to_9_normal_pilots.txt");
736  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_11_to_15_normal_nopilots.txt");
738  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_32_to_45_normal_nopilots.txt");
740  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_2_to_3_l_normal_nopilots.txt");
742  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_2_to_3_short_nopilots.txt");
744  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_8_to_9_short_nopilots.txt");
746  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_2_to_3_l_normal_pilots.txt");
748  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_5_to_6_short_nopilots.txt");
750  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_32_to_45_short_nopilots.txt");
752  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_3_to_4_normal_pilots.txt");
754  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_32_to_45_short_pilots.txt");
756  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_4_to_5_normal_pilots.txt");
758  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_5_to_6_normal_nopilots.txt");
760  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_8_to_9_short_pilots.txt");
762  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_11_to_15_normal_pilots.txt");
764  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_4_to_5_normal_nopilots.txt");
766  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_3_to_4_short_nopilots.txt");
768  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_7_to_9_normal_nopilots.txt");
770  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_5_to_6_normal_pilots.txt");
772  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_2_to_3_short_pilots.txt");
774  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_3_to_4_normal_nopilots.txt");
776  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_9_to_10_normal_pilots.txt");
778  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_3_to_4_short_pilots.txt");
780  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_32_to_45_normal_pilots.txt");
782  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_9_to_10_normal_nopilots.txt");
784  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_8_to_9_normal_nopilots.txt");
786  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_4_to_5_short_nopilots.txt");
788  CreateObject<SatLookUpTable>(m_inputPath + "s2x_32apsk_4_to_5_short_pilots.txt");
789 
790  // 64APSK
792  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_4_to_5_normal_nopilots.txt");
794  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_32_to_45_l_normal_pilots.txt");
796  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_5_to_6_normal_nopilots.txt");
798  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_4_to_5_normal_pilots.txt");
800  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_7_to_9_normal_pilots.txt");
802  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_5_to_6_normal_pilots.txt");
804  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_11_to_15_normal_nopilots.txt");
806  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_7_to_9_normal_nopilots.txt");
808  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_11_to_15_normal_pilots.txt");
810  CreateObject<SatLookUpTable>(m_inputPath + "s2x_64apsk_32_to_45_l_normal_nopilots.txt");
811 
812  // 128APSK
814  CreateObject<SatLookUpTable>(m_inputPath + "s2x_128apsk_7_to_9_normal_pilots.txt");
816  CreateObject<SatLookUpTable>(m_inputPath + "s2x_128apsk_7_to_9_normal_nopilots.txt");
818  CreateObject<SatLookUpTable>(m_inputPath + "s2x_128apsk_3_to_4_normal_pilots.txt");
820  CreateObject<SatLookUpTable>(m_inputPath + "s2x_128apsk_3_to_4_normal_nopilots.txt");
821 
822  // 256APSK
824  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_29_to_45_l_normal_nopilots.txt");
826  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_31_to_45_l_normal_nopilots.txt");
828  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_3_to_4_normal_pilots.txt");
830  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_11_to_15_l_normal_pilots.txt");
832  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_29_to_45_l_normal_pilots.txt");
834  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_31_to_45_l_normal_pilots.txt");
836  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_2_to_3_l_normal_pilots.txt");
838  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_11_to_15_l_normal_nopilots.txt");
840  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_32_to_45_normal_nopilots.txt");
842  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_32_to_45_normal_pilots.txt");
844  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_2_to_3_l_normal_nopilots.txt");
846  CreateObject<SatLookUpTable>(m_inputPath + "s2x_256apsk_3_to_4_normal_nopilots.txt");
847 
848 } // end of void SatLinkResultsDvbS2X::DoInitialize
849 
850 } // end of namespace ns3
SatBbFrameType_t
BB frame type used in DVB-S2 FWD link.
SatModcod_t
Modulation scheme and coding rate for DVB-S2.
@ SAT_MODCOD_S2X_16APSK_2_TO_3_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_9_TO_10_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_2_TO_3_NORMAL_PILOTS
@ SAT_MODCOD_S2X_256APSK_32_TO_45_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_5_TO_6_SHORT_PILOTS
@ SAT_MODCOD_S2X_8PSK_3_TO_5_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_128APSK_7_TO_9_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_8_TO_15_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_8_TO_15_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_256APSK_11_TO_15_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_4_TO_5_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_3_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_256APSK_3_TO_4_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_3_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_4_TO_5_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_32_TO_45_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_13_TO_45_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_7_TO_15_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_1_TO_2_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_2_TO_5_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_32_TO_45_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_5_TO_6_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_7_TO_9_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_8_TO_9_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_3_TO_4_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_23_TO_36_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_2_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_3_TO_5_NORMAL_PILOTS
@ SAT_MODCOD_S2X_256APSK_11_TO_15_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_64APSK_32_TO_45_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_1_TO_2_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_2_TO_5_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_5_TO_6_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_9_TO_10_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_8_TO_15_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_25_TO_36_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_32_TO_45_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_3_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_5_TO_9_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_64APSK_32_TO_45_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_128APSK_3_TO_4_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_8_TO_9_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_13_TO_18_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8APSK_5_TO_9_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_4_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_32_TO_45_SHORT_PILOTS
@ SAT_MODCOD_S2X_32APSK_32_TO_45_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8APSK_26_TO_45_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_2_TO_3_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_128APSK_3_TO_4_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_4_TO_5_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_8_TO_15_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_5_TO_6_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_4_TO_5_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_3_TO_5_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_26_TO_45_SHORT_PILOTS
@ SAT_MODCOD_S2X_32APSK_9_TO_10_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_64APSK_11_TO_15_NORMAL_PILOTS
@ SAT_MODCOD_S2X_8PSK_5_TO_6_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_8_TO_9_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_23_TO_36_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_4_TO_5_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_5_NORMAL_PILOTS
@ SAT_MODCOD_S2X_8PSK_3_TO_4_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_64APSK_7_TO_9_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_8_TO_9_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_2_TO_3_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_4_TO_5_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_2_TO_3_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_5_TO_6_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_5_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_2_TO_3_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_8_TO_9_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_28_TO_45_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_23_TO_36_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_4_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_25_TO_36_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_3_TO_5_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_2_TO_3_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_14_TO_45_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_5_TO_6_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_5_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_5_TO_6_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_32_TO_45_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_5_TO_6_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_3_TO_4_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_4_TO_15_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_5_TO_6_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_11_TO_20_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_3_TO_4_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_32_TO_45_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_7_TO_15_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_11_TO_20_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_4_TO_5_NORMAL_PILOTS
@ SAT_MODCOD_S2X_256APSK_29_TO_45_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_64APSK_11_TO_15_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_8_TO_9_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_2_TO_3_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_5_TO_6_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_8_TO_9_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_2_TO_3_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_3_TO_5_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_7_TO_15_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_256APSK_31_TO_45_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_8_TO_9_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_7_TO_15_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_4_TO_5_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_28_TO_45_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_3_TO_4_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_13_TO_45_NORMAL_PILOTS
@ SAT_MODCOD_S2X_8PSK_3_TO_5_SHORT_PILOTS
@ SAT_MODCOD_S2X_64APSK_5_TO_6_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_5_TO_6_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_2_TO_3_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_25_TO_36_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_5_TO_6_SHORT_PILOTS
@ SAT_MODCOD_S2X_32APSK_11_TO_15_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_4_TO_5_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_5_TO_6_SHORT_PILOTS
@ SAT_MODCOD_S2X_32APSK_32_TO_45_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_4_TO_5_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_4_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8APSK_5_TO_9_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_13_TO_18_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_8_TO_15_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_5_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_5_TO_6_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_4_TO_5_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_5_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_256APSK_31_TO_45_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_8_TO_9_SHORT_PILOTS
@ SAT_MODCOD_S2X_256APSK_32_TO_45_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_3_TO_5_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_5_TO_6_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_7_TO_9_NORMAL_PILOTS
@ SAT_MODCOD_S2X_8PSK_7_TO_15_SHORT_PILOTS
@ SAT_MODCOD_S2X_64APSK_5_TO_6_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_9_TO_10_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_13_TO_18_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_9_TO_20_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8APSK_26_TO_45_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_64APSK_7_TO_9_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_3_TO_4_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_9_TO_20_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_4_SHORT_PILOTS
@ SAT_MODCOD_S2X_256APSK_2_TO_3_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_26_TO_45_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_2_TO_3_SHORT_PILOTS
@ SAT_MODCOD_S2X_256APSK_29_TO_45_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_256APSK_2_TO_3_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_64APSK_4_TO_5_NORMAL_PILOTS
@ SAT_MODCOD_S2X_8PSK_3_TO_4_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_8_TO_15_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_5_TO_9_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_4_NORMAL_PILOTS
@ SAT_MODCOD_S2X_8PSK_2_TO_3_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_13_TO_18_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_77_TO_90_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_4_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_8_TO_9_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_9_TO_10_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_8_TO_9_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_2_TO_3_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_2_TO_5_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_32_TO_45_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_2_TO_3_SHORT_PILOTS
@ SAT_MODCOD_S2X_32APSK_7_TO_9_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_32_TO_45_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_3_TO_4_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_3_TO_4_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_25_TO_36_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_3_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_3_TO_5_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_3_TO_4_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_7_TO_9_NORMAL_PILOTS
@ SAT_MODCOD_S2X_8PSK_8_TO_9_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_2_NORMAL_PILOTS
@ SAT_MODCOD_S2X_64APSK_4_TO_5_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_2_TO_5_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_8_TO_9_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_8_TO_9_NORMAL_PILOTS
@ SAT_MODCOD_S2X_8PSK_2_TO_3_NORMAL_PILOTS
@ SAT_MODCOD_S2X_8PSK_2_TO_3_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_2_TO_3_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_4_TO_15_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_2_TO_3_L_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_23_TO_36_NORMAL_PILOTS
@ SAT_MODCOD_S2X_16APSK_26_TO_45_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_26_TO_45_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_3_TO_5_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_8_TO_9_SHORT_PILOTS
@ SAT_MODCOD_S2X_QPSK_14_TO_45_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_4_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_26_TO_45_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_2_SHORT_PILOTS
@ SAT_MODCOD_S2X_32APSK_8_TO_9_SHORT_PILOTS
@ SAT_MODCOD_S2X_8PSK_26_TO_45_SHORT_PILOTS
@ SAT_MODCOD_S2X_8PSK_9_TO_10_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_8PSK_9_TO_10_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_8_TO_15_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_3_TO_4_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_2_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_11_TO_45_SHORT_PILOTS
@ SAT_MODCOD_S2X_16APSK_8_TO_15_L_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_11_TO_15_NORMAL_PILOTS
@ SAT_MODCOD_S2X_32APSK_3_TO_4_SHORT_PILOTS
@ SAT_MODCOD_S2X_8PSK_7_TO_15_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_1_TO_4_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_128APSK_7_TO_9_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_QPSK_9_TO_10_NORMAL_PILOTS
@ SAT_MODCOD_S2X_QPSK_11_TO_45_SHORT_NOPILOTS
@ SAT_MODCOD_S2X_16APSK_77_TO_90_NORMAL_NOPILOTS
@ SAT_MODCOD_S2X_32APSK_4_TO_5_SHORT_PILOTS
@ SAT_MODCOD_S2X_256APSK_3_TO_4_NORMAL_PILOTS
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.