Loading...
Searching...
No Matches
satellite-frame-conf.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 Ltd
4 * Copyright (c) 2018 CNES
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation;
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Sami Rantanen <sami.rantanen@magister.fi>
20 * Author: Mathias Ettinger <mettinger@toulouse.viveris.fr>
21 */
22
23#ifndef SATELLITE_FRAME_CONF_H
24#define SATELLITE_FRAME_CONF_H
25
27#include "satellite-enums.h"
29
30#include "ns3/ptr.h"
31#include "ns3/random-variable-stream.h"
32#include "ns3/simple-ref-count.h"
33
34#include <map>
35#include <sstream>
36#include <stdint.h>
37#include <string>
38#include <tuple>
39#include <vector>
40
41namespace ns3
42{
43
48
49class SatBtuConf : public SimpleRefCount<SatBtuConf>
50{
51 public:
55 SatBtuConf();
56
65 SatBtuConf(double bandwidthInHz, double rollOff, double spacing, uint32_t spreadingFactor);
66
71
77 inline double GetAllocatedBandwidthInHz() const
78 {
80 }
81
87 inline double GetOccupiedBandwidthInHz() const
88 {
90 }
91
97 inline double GetEffectiveBandwidthInHz() const
98 {
100 }
101
107 inline double GetSpreadingFactor() const
108 {
109 return m_spreadingFactor;
110 }
111
117 inline double GetSymbolRateInBauds() const
118 {
120 }
121
122 private:
125 double m_effectiveBandwidthInHz; // i.e. symbol rate
127 Time m_duration; // duration field reserved, but not used currently
128};
129
134
135class SatTimeSlotConf : public SimpleRefCount<SatTimeSlotConf>
136{
137 public:
148
153
162 SatTimeSlotConf(Time startTime,
163 uint32_t waveFormId,
164 uint16_t carrierId,
166
171
177 inline Time GetStartTime() const
178 {
179 return m_startTime;
180 }
181
187 inline uint32_t GetWaveFormId() const
188 {
189 return m_waveFormId;
190 }
191
197 inline uint16_t GetCarrierId() const
198 {
199 return m_frameCarrierId;
200 }
201
207 inline void SetRcIndex(uint8_t rcIndex)
208 {
209 m_rcIndex = rcIndex;
210 }
211
217 inline uint8_t GetRcIndex()
218 {
219 return m_rcIndex;
220 }
221
228 {
229 return m_slotType;
230 }
231
238 {
239 m_slotType = slotType;
240 }
241
242 private:
244 uint32_t m_waveFormId;
246 uint8_t m_rcIndex;
247
249};
250
255
256class SatFrameConf : public SimpleRefCount<SatFrameConf>
257{
258 public:
262 typedef std::vector<Ptr<SatTimeSlotConf>> SatTimeSlotConfContainer_t;
263
265
282 typedef struct
283 {
286 Ptr<SatFrameConf> m_parent;
287 Ptr<SatBtuConf> m_btuConf;
288 Ptr<SatWaveformConf> m_waveformConf;
296
300 SatFrameConf();
301
308
313
320 Ptr<SatTimeSlotConf> GetTimeSlotConf(uint16_t index) const;
321
329 Ptr<SatTimeSlotConf> GetTimeSlotConf(uint16_t carrierId, uint16_t index) const;
330
336 inline double GetBandwidthHz() const
337 {
338 return m_bandwidthHz;
339 }
340
346 inline Time GetDuration() const
347 {
348 return m_duration;
349 }
350
356 inline uint32_t GetCarrierMaxSymbols() const
357 {
359 }
360
366 inline uint32_t GetCarrierMinPayloadInBytes() const
367 {
369 }
370
376 double GetCarrierFrequencyHz(uint16_t carrierId) const;
377
385
391 inline bool IsSubdivided() const
392 {
393 return m_parent != nullptr;
394 ;
395 }
396
402 uint8_t GetSubdivisionLevel() const;
403
404 inline Ptr<SatFrameConf> GetParent() const
405 {
406 return m_parent;
407 }
408
414 inline Ptr<SatBtuConf> GetBtuConf() const
415 {
416 return m_btuConf;
417 }
418
424 inline uint16_t GetCarrierCount() const
425 {
426 return m_carrierCount;
427 }
428
434 uint16_t GetTimeSlotCount() const;
435
442 SatTimeSlotConfContainer_t GetTimeSlotConfs(uint16_t carrierId) const;
443
449 inline bool IsRandomAccess() const
450 {
451 return m_isRandomAccess;
452 }
453
459 inline bool IsLogon() const
460 {
461 return m_isLogon;
462 }
463
467 inline uint8_t GetAllocationChannelId() const
468 {
469 return m_allocationChannel;
470 }
471
475 inline Ptr<SatWaveformConf> GetWaveformConf() const
476 {
477 return m_waveformConf;
478 }
479
483 inline uint8_t GetGuardTimeSymbols() const
484 {
485 return m_guardTimeSymbols;
486 }
487
488 private:
489 typedef std::map<uint16_t, SatTimeSlotConfContainer_t> SatTimeSlotConfMap_t; // key = carrier ID
490
495
496 Ptr<SatFrameConf> m_parent;
497 Ptr<SatBtuConf> m_btuConf;
498 Ptr<SatWaveformConf> m_waveformConf;
505
512 uint16_t AddTimeSlotConf(Ptr<SatTimeSlotConf> conf);
513};
514
519class SatSuperframeConf : public Object
520{
521 public:
533
537 typedef std::vector<Ptr<SatFrameConf>> SatFrameConfList_t;
538
550
551 static const uint8_t m_maxFrameCount = 10;
552
559 static Ptr<SatSuperframeConf> CreateSuperframeConf(SuperFrameConfiguration_t conf);
560
566 template <class T>
567 static std::string GetNumberAsString(T number)
568 {
569 std::stringstream ss; // create a string stream
570 ss << number; // add number to the stream
571
572 return ss.str();
573 }
574
581 static std::string GetIndexAsFrameName(uint32_t index);
582
587 static TypeId GetTypeId(void);
588
593
598
604 inline double GetBandwidthHz() const
605 {
606 return m_usedBandwidthHz;
607 }
608
614 inline Time GetDuration() const
615 {
616 return m_duration;
617 }
618
625 Ptr<SatFrameConf> GetFrameConf(uint8_t id) const;
626
635 uint32_t GetCarrierId(uint8_t frameId, uint16_t frameCarrierId) const;
636
642 uint32_t GetCarrierCount() const;
643
651 double GetCarrierFrequencyHz(uint32_t carrierId) const;
652
661 double GetCarrierBandwidthHz(uint32_t carrierId,
662 SatEnums::CarrierBandwidthType_t bandwidthType) const;
663
672 Ptr<SatFrameConf> GetCarrierFrameConf(uint32_t carrierId) const;
673
680 bool IsRandomAccessCarrier(uint32_t carrierId) const;
681
689 void Configure(double allocatedBandwidthHz,
690 Time targetDuration,
691 Ptr<SatWaveformConf> waveformConf);
692
697 virtual void DoConfigure() = 0;
698
706
713 uint16_t GetRaSlotCount(uint8_t raChannel);
714
720 uint8_t GetRaChannelCount() const;
721
729 uint8_t GetRaChannel(uint32_t carrierId) const;
730
737 uint8_t GetRaChannelFrameId(uint8_t raChannel) const;
738
745 uint8_t GetRaChannelAllocationChannelId(uint8_t raChannel) const;
746
752 uint32_t GetRaChannelTimeSlotPayloadInBytes(uint8_t raChannel) const;
753
759 inline void SetFrameCount(uint8_t frameCount)
760 {
761 m_frameCount = frameCount;
762 }
763
769 inline uint8_t GetFrameCount() const
770 {
771 return m_frameCount;
772 }
773
780 {
781 m_configType = type;
782 }
783
789 {
790 return m_configType;
791 }
792
793 inline void SetMaxSubdivision(uint8_t maximumCarrierSubdivision)
794 {
795 m_maxCarrierSubdivision = maximumCarrierSubdivision;
796 }
797
798 inline uint8_t GetMaxSubdivision() const
799 {
801 }
802
803 // Frame specific getter and setter method for attributes (called by methods of objects derived
804 // from this object)
805 void SetFrameAllocatedBandwidthHz(uint8_t frameIndex, double bandwidthHz);
806 void SetFrameCarrierAllocatedBandwidthHz(uint8_t frameIndex, double bandwidthHz);
807 void SetFrameCarrierSpacing(uint8_t frameIndex, double spacing);
808 void SetFrameCarrierRollOff(uint8_t frameIndex, double rollOff);
809 void SetFrameCarrierSpreadingFactor(uint8_t frameIndex, uint32_t spreadingFactor);
810 void SetFrameRandomAccess(uint8_t frameIndex, bool randomAccess);
811 void SetFrameLogon(uint8_t frameIndex, bool logon);
812 void SetFrameAllocationChannelId(uint8_t frameIndex, uint8_t allocationChannel);
813 void SetFrameGuardTimeSymbols(uint8_t frameIndex, uint8_t guardTimeSymbols);
814
815 double GetFrameAllocatedBandwidthHz(uint8_t frameIndex) const;
816 double GetFrameCarrierAllocatedBandwidthHz(uint8_t frameIndex) const;
817 double GetFrameCarrierSpacing(uint8_t frameIndex) const;
818 double GetFrameCarrierRollOff(uint8_t frameIndex) const;
819 uint32_t GetFrameCarrierSpreadingFactor(uint8_t frameIndex) const;
820 bool IsFrameRandomAccess(uint8_t frameIndex) const;
821 bool IsFrameLogon(uint8_t frameIndex) const;
822 uint8_t GetFrameAllocationChannelId(uint8_t frameIndex) const;
823 uint8_t GetFrameGuardTimeSymbols(uint8_t frameIndex) const;
824 bool IsLogonEnabled() const;
825 uint32_t GetLogonChannelIndex() const;
826
827 private:
828 // first = frame ID, second = RA channel id (index), third = allocation channel id
829 typedef std::tuple<uint8_t, uint8_t, uint8_t> RaChannelInfo_t;
830
833
837
847
849 std::vector<RaChannelInfo_t> m_raChannels;
853
860 uint8_t GetCarrierFrame(uint32_t carrierId) const;
861
867 void AddFrameConf(SatFrameConf::SatFrameConfParams_t frameConfParameters,
868 double bandwidthInHz,
869 double rollOff,
870 double spacing,
871 uint32_t spreadingFactor,
872 uint8_t subdivisionLevel);
873
874 public:
875// macro to ease definition of access methods for frame specific attributes
876#define FRAME_ATTRIBUTE_ACCESSOR_DEFINE(index) \
877 inline void SetFrame##index##AllocatedBandwidthHz(double value) \
878 { \
879 return SetFrameAllocatedBandwidthHz(index, value); \
880 } \
881 inline double GetFrame##index##AllocatedBandwidthHz() const \
882 { \
883 return GetFrameAllocatedBandwidthHz(index); \
884 } \
885 inline void SetFrame##index##CarrierAllocatedBandwidthHz(double value) \
886 { \
887 return SetFrameCarrierAllocatedBandwidthHz(index, value); \
888 } \
889 inline double GetFrame##index##CarrierAllocatedBandwidthHz() const \
890 { \
891 return GetFrameCarrierAllocatedBandwidthHz(index); \
892 } \
893 inline void SetFrame##index##CarrierSpacing(double value) \
894 { \
895 return SetFrameCarrierSpacing(index, value); \
896 } \
897 inline double GetFrame##index##CarrierSpacing() const \
898 { \
899 return GetFrameCarrierSpacing(index); \
900 } \
901 inline void SetFrame##index##CarrierRollOff(double value) \
902 { \
903 return SetFrameCarrierRollOff(index, value); \
904 } \
905 inline double GetFrame##index##CarrierRollOff() const \
906 { \
907 return GetFrameCarrierRollOff(index); \
908 } \
909 inline void SetFrame##index##SpreadingFactor(uint32_t value) \
910 { \
911 return SetFrameCarrierSpreadingFactor(index, value); \
912 } \
913 inline double GetFrame##index##SpreadingFactor() const \
914 { \
915 return GetFrameCarrierSpreadingFactor(index); \
916 } \
917 inline void SetFrame##index##RandomAccess(bool value) \
918 { \
919 return SetFrameRandomAccess(index, value); \
920 } \
921 inline double IsFrame##index##RandomAccess() const \
922 { \
923 return IsFrameRandomAccess(index); \
924 } \
925 inline void SetFrame##index##AllocationChannelId(uint8_t value) \
926 { \
927 return SetFrameAllocationChannelId(index, value); \
928 } \
929 inline uint8_t GetFrame##index##AllocationChannelId() const \
930 { \
931 return GetFrameAllocationChannelId(index); \
932 } \
933 inline void SetFrame##index##Logon(bool value) \
934 { \
935 return SetFrameLogon(index, value); \
936 } \
937 inline double IsFrame##index##Logon() const \
938 { \
939 return IsFrameLogon(index); \
940 } \
941 inline void SetFrame##index##GuardTimeSymbols(uint8_t value) \
942 { \
943 return SetFrameGuardTimeSymbols(index, value); \
944 } \
945 inline uint8_t GetFrame##index##GuardTimeSymbols() const \
946 { \
947 return GetFrameGuardTimeSymbols(index); \
948 }
949
950 // Access method definition for frame specific attributes
951 // there should be as many macro calls as m_maxFrameCount defines
962};
963
969{
970 public:
975 static TypeId GetTypeId(void);
976
981
986
987 virtual void DoConfigure();
988
989 private:
990};
991
997{
998 public:
1003 static TypeId GetTypeId(void);
1004
1009
1014
1015 virtual void DoConfigure();
1016
1017 private:
1018};
1019
1026{
1027 public:
1032 static TypeId GetTypeId(void);
1033
1038
1043
1044 virtual void DoConfigure();
1045
1046 private:
1047};
1048
1054{
1055 public:
1060 static TypeId GetTypeId(void);
1061
1066
1071
1072 virtual void DoConfigure();
1073
1074 private:
1075};
1076
1082{
1083 public:
1088 static TypeId GetTypeId(void);
1089
1094
1099
1100 virtual void DoConfigure();
1101
1102 private:
1103};
1104
1105} // namespace ns3
1106
1107#endif // SATELLITE_FRAME_CONF_H
~SatBtuConf()
Destructor for SatBtuConf.
double GetAllocatedBandwidthInHz() const
Get bandwidth of BTU.
double GetOccupiedBandwidthInHz() const
Get occupied bandwidth of BTU.
double GetSpreadingFactor() const
Get spreading factor of BTU.
double GetSymbolRateInBauds() const
Get symbol rate of BTU.
double GetEffectiveBandwidthInHz() const
Get occupied bandwidth of BTU.
SatBtuConf()
Default constructor for SatBtuConf.
CarrierBandwidthType_t
Types of bandwidth.
bool IsLogon() const
Get state if frame is logon frame.
uint8_t GetSubdivisionLevel() const
Get the subdivision level of this frame.
uint8_t GetAllocationChannelId() const
Get allocation channel ID of this frame.
uint16_t AddTimeSlotConf(Ptr< SatTimeSlotConf > conf)
Add time slot.
bool IsRandomAccess() const
Get state if frame is random access frame.
uint8_t GetGuardTimeSymbols() const
Get the guard time configuration of this frame.
std::map< uint16_t, SatTimeSlotConfContainer_t > SatTimeSlotConfMap_t
uint32_t GetCarrierMinPayloadInBytes() const
Get minimum payload of a carrier in bytes.
static const uint16_t m_maxTimeSlotCount
double GetCarrierBandwidthHz(SatEnums::CarrierBandwidthType_t bandwidthType) const
Get carrier bandwidth in frame.
Ptr< SatTimeSlotConf > GetTimeSlotConf(uint16_t index) const
Get time slot configuration of the frame.
Ptr< SatWaveformConf > m_waveformConf
Ptr< SatWaveformConf > GetWaveformConf() const
Get waveform configuration of this frame.
SatTimeSlotConfMap_t m_timeSlotConfMap
std::vector< Ptr< SatTimeSlotConf > > SatTimeSlotConfContainer_t
Define type SatTimeSlotConfContainer_t.
Ptr< SatBtuConf > GetBtuConf() const
Get BTU conf of the frame.
double GetCarrierFrequencyHz(uint16_t carrierId) const
Get carrier center frequency in frame.
uint16_t GetCarrierCount() const
Get carrier count of the frame.
Ptr< SatBtuConf > m_btuConf
uint32_t GetCarrierMaxSymbols() const
Get maximum symbols in carrier.
~SatFrameConf()
Destructor for SatFrameConf.
Ptr< SatFrameConf > m_parent
double GetBandwidthHz() const
Get bandwidth of the frame.
SatTimeSlotConfContainer_t GetTimeSlotConfs(uint16_t carrierId) const
Get time slot of the specific carrier.
Time GetDuration() const
Get duration of frame.
uint16_t GetTimeSlotCount() const
Get time slot count of the frame.
SatFrameConf()
Default constructor for SatFrameConf.
bool IsSubdivided() const
Get wether this frame is subdivided or not.
Ptr< SatFrameConf > GetParent() const
virtual void DoConfigure()
Do frame specific configuration as needed.
static TypeId GetTypeId(void)
Get the type ID.
~SatSuperframeConf0()
Destructor for SatSuperframeConf.
SatSuperframeConf0()
Default constructor for SatSuperframeConf.
SatSuperframeConf1()
Default constructor for SatSuperframeConf.
static TypeId GetTypeId(void)
Get the type ID.
~SatSuperframeConf1()
Destructor for SatSuperframeConf.
virtual void DoConfigure()
Do frame specific configuration as needed.
~SatSuperframeConf2()
Destructor for SatSuperframeConf.
static TypeId GetTypeId(void)
Get the type ID.
virtual void DoConfigure()
Do frame specific configuration as needed.
SatSuperframeConf2()
Default constructor for SatSuperframeConf.
~SatSuperframeConf3()
Destructor for SatSuperframeConf.
virtual void DoConfigure()
Do frame specific configuration as needed.
static TypeId GetTypeId(void)
Get the type ID.
SatSuperframeConf3()
Default constructor for SatSuperframeConf.
static TypeId GetTypeId(void)
Get the type ID.
virtual void DoConfigure()
Do frame specific configuration as needed.
SatSuperframeConf4()
Default constructor for SatSuperframeConf.
~SatSuperframeConf4()
Destructor for SatSuperframeConf.
SatSuperframeConf()
Default constructor for SatSuperframeConf.
void SetFrameCarrierSpacing(uint8_t frameIndex, double spacing)
SatFrameConf::SatTimeSlotConfContainer_t GetRaSlots(uint8_t raChannel)
Get RA channel time slots.
double GetBandwidthHz() const
Get bandwidth of the super frame.
void SetFrameCount(uint8_t frameCount)
Set number of frames to be used in super frame.
void SetMaxSubdivision(uint8_t maximumCarrierSubdivision)
double m_frameCarrierSpacing[m_maxFrameCount]
uint8_t m_frameGuardTimeSymbols[m_maxFrameCount]
uint32_t GetCarrierCount() const
Get carrier count in the super frame.
static std::string GetNumberAsString(T number)
Template method to convert number to string.
SatSuperframeConf::ConfigType_t GetConfigType() const
Get frame configuration type to be used in super frame.
double GetFrameCarrierSpacing(uint8_t frameIndex) const
double GetFrameAllocatedBandwidthHz(uint8_t frameIndex) const
Ptr< SatFrameConf > GetCarrierFrameConf(uint32_t carrierId) const
Get the frame configuration of the requested carrier.
void SetFrameGuardTimeSymbols(uint8_t frameIndex, uint8_t guardTimeSymbols)
bool m_frameIsLogon[m_maxFrameCount]
uint16_t GetRaSlotCount(uint8_t raChannel)
Get RA channel time slot count.
void SetFrameRandomAccess(uint8_t frameIndex, bool randomAccess)
void SetFrameAllocatedBandwidthHz(uint8_t frameIndex, double bandwidthHz)
uint8_t GetRaChannel(uint32_t carrierId) const
Get the RA channel id (index) corresponding to given (global) carrier id.
void SetFrameLogon(uint8_t frameIndex, bool logon)
void SetFrameAllocationChannelId(uint8_t frameIndex, uint8_t allocationChannel)
std::vector< RaChannelInfo_t > m_raChannels
double m_frameCarrierAllocatedBandwidth[m_maxFrameCount]
double GetCarrierFrequencyHz(uint32_t carrierId) const
Get the center frequency of the requested carrier.
uint32_t GetRaChannelTimeSlotPayloadInBytes(uint8_t raChannel) const
Get the payload of the RA channel time slot in bytes.
uint8_t GetFrameGuardTimeSymbols(uint8_t frameIndex) const
double GetFrameCarrierAllocatedBandwidthHz(uint8_t frameIndex) const
void SetConfigType(SatSuperframeConf::ConfigType_t type)
Set frame configuration type to be used in super frame.
void AddFrameConf(SatFrameConf::SatFrameConfParams_t frameConfParameters, double bandwidthInHz, double rollOff, double spacing, uint32_t spreadingFactor, uint8_t subdivisionLevel)
Add frame configuration to super frame configuration.
double GetFrameCarrierRollOff(uint8_t frameIndex) const
SuperFrameConfiguration_t
Configurable Super Frames.
@ SUPER_FRAME_CONFIG_0
SUPER_FRAME_CONFIG_0.
@ SUPER_FRAME_CONFIG_3
SUPER_FRAME_CONFIG_3.
@ SUPER_FRAME_CONFIG_4
SUPER_FRAME_CONFIG_4.
@ SUPER_FRAME_CONFIG_1
SUPER_FRAME_CONFIG_1.
@ SUPER_FRAME_CONFIG_2
SUPER_FRAME_CONFIG_2.
static const uint8_t m_maxFrameCount
uint8_t GetFrameCount() const
Get number of frames to be used in super frame.
static Ptr< SatSuperframeConf > CreateSuperframeConf(SuperFrameConfiguration_t conf)
Create pre-configured super frame configuration-.
uint8_t GetRaChannelFrameId(uint8_t raChannel) const
Get RA channel frame ID.
void SetFrameCarrierRollOff(uint8_t frameIndex, double rollOff)
uint8_t GetFrameAllocationChannelId(uint8_t frameIndex) const
void SetFrameCarrierAllocatedBandwidthHz(uint8_t frameIndex, double bandwidthHz)
double GetCarrierBandwidthHz(uint32_t carrierId, SatEnums::CarrierBandwidthType_t bandwidthType) const
Get the bandwidth of the requested carrier.
uint8_t m_frameAllocationChannel[m_maxFrameCount]
std::vector< Ptr< SatFrameConf > > SatFrameConfList_t
Define type SatFrameConfList_t.
bool IsFrameLogon(uint8_t frameIndex) const
double m_frameAllocatedBandwidth[m_maxFrameCount]
void Configure(double allocatedBandwidthHz, Time targetDuration, Ptr< SatWaveformConf > waveformConf)
Configures super frame configuration according to set attributes.
uint32_t m_frameCarrierSpreadingFactor[m_maxFrameCount]
Time GetDuration() const
Get duration of super frame.
virtual void DoConfigure()=0
Do frame specific configuration as needed.
double m_frameCarrierRollOff[m_maxFrameCount]
uint32_t GetCarrierId(uint8_t frameId, uint16_t frameCarrierId) const
Get carrier id of the super frame.
~SatSuperframeConf()
Destructor for SatSuperframeConf.
std::tuple< uint8_t, uint8_t, uint8_t > RaChannelInfo_t
bool m_frameIsRandomAccess[m_maxFrameCount]
void SetFrameCarrierSpreadingFactor(uint8_t frameIndex, uint32_t spreadingFactor)
static TypeId GetTypeId(void)
Get the type ID.
Ptr< SatFrameConf > GetFrameConf(uint8_t id) const
Get frame conf of the super frame.
uint8_t GetRaChannelCount() const
Get the number of the RA channels in super frame configuration.
uint32_t GetFrameCarrierSpreadingFactor(uint8_t frameIndex) const
bool IsFrameRandomAccess(uint8_t frameIndex) const
uint32_t GetLogonChannelIndex() const
uint8_t GetCarrierFrame(uint32_t carrierId) const
Get frame id where given global carrier ID belongs to.
uint8_t GetRaChannelAllocationChannelId(uint8_t raChannel) const
Get RA channel allocation channel ID.
ConfigType_t
Enum for configuration types.
@ CONFIG_TYPE_4
Configuration type 4 (ESSA).
@ CONFIG_TYPE_2
Configuration type 2.
@ CONFIG_TYPE_1
Configuration type 1.
@ CONFIG_TYPE_0
Configuration type 0.
@ CONFIG_TYPE_3
Configuration type 3.
bool IsRandomAccessCarrier(uint32_t carrierId) const
Check if given carrier is random access carrier.
SatTimeSlotConf::SatTimeSlotType_t GetSlotType() const
Get time slot type.
SatTimeSlotConf()
Default constructor for SatTimeSlotConf.
void SetRcIndex(uint8_t rcIndex)
Set RC index of the time slot.
uint32_t GetWaveFormId() const
Get wave form id of time slot.
Time GetStartTime() const
Get start time of time slot.
uint8_t GetRcIndex()
Get RC index of the time slot.
SatTimeSlotType_t
Types for time slot.
@ SLOT_TYPE_TRC
Control or traffic slot.
~SatTimeSlotConf()
Destructor for SatTimeSlotConf.
void SetSlotType(SatTimeSlotConf::SatTimeSlotType_t slotType)
Set time slot type.
uint16_t GetCarrierId() const
Get carrier id of time slot (inside frame).
SatTimeSlotType_t m_slotType
constexpr uint16_t MAXIMUM_TIME_SLOT_ID
Maximum value for time slot ID as specified in ETSI EN 301 542-2, chapter 7.5.1.3.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
#define GetIndexAsFrameName(index)
Helper struct to reduce the number of parameters fed into the SatFrameConf constructor.