25#ifndef _NETSIM_SATELLITE_FRAME_H_
26#define _NETSIM_SATELLITE_FRAME_H_
29#include "Satellite_Buffer.h"
30#include "ErrorModel.h"
44 }SLOTCONF,*ptrSLOTCONF;
46 typedef enum enum_frame_usage_mode
54 UINT slotCountInFrame;
55 double frameBandwidth_Hz;
57 UINT pilotBlockSize_inSymbols;
58 UINT pilotBlockInterval_inSlots;
59 UINT plHdrSize_inSlots;
60 UINT frameHdrLength_inBytes;
61 FRAMEUSAGEMODE usageMode;
63 double frameLength_us;
64 double pilotBlockLength_us;
66 UINT framesPerSuperframe;
67 }FRAMECONF, * ptrFRAMECONF;
77 double relativeFrameStartTime;
78 double relativeFrameEndTime;
80 double frameStartTime;
87 typedef enum enum_ber_model
96 double allocatedBandwidth_Hz;
97 double occupiedBandwidth_Hz;
98 double effectiveBandwidth_Hz;
100 double spacingFactor;
108 PHY_MODULATION modulation;
110 }CARRIERCONF, * ptrCARRIERCONF;
115 double centerFrequency_Hz;
120 }CARRIER, * ptrCARRIER;
124 SUPER_FRAME_CONFIG_0,
125 SUPER_FRAME_CONFIG_1,
126 SUPER_FRAME_CONFIG_2,
127 SUPER_FRAME_CONFIG_3,
128 } SuperFrameConfiguration_t;
132 SuperFrameConfiguration_t superFrameConfigType;
137 double baseFreqnecy_Hz;
138 double centralFrequency_Hz;
140 char* accessProtocol;
141 double superFrameDuration_us;
143 ptrSLOTCONF slotConfig;
144 ptrCARRIERCONF carrierConfig;
145 ptrFRAMECONF frameConfig;
148 ptrCARRIER* carriers;
154 ptrSATELLITE_BUFFER* buffers;
156 }SUPERFRAME, * ptrSUPERFRAME;
157 ptrSUPERFRAME superframe_alloc(LINKTYPE linkType,
158 NETSIM_ID d, NETSIM_ID in);
159 void superframe_init(NETSIM_ID d, NETSIM_ID in);
160 void satellite_superframe_start();
161 void satellite_frame_start();
162 void satellite_allocate_slot(NETSIM_ID d, NETSIM_ID in,
163 ptrSUPERFRAME sf, ptrFRAME fr);
164 ptrSUPERFRAME satellite_get_return_superframe(NETSIM_ID d, NETSIM_ID in);
165 ptrSUPERFRAME satellite_get_forward_superframe(NETSIM_ID d, NETSIM_ID in);