29#pragma region EVENT_OTHER_DETAILS
70#pragma region FUNCTION_PROTOTYPE
90#pragma region SUPERFRAME_INIT
124 double startTime = 0;
176 fnNetSimError(
"Unsupported modulation %s for satellite network\n",
223 UINT totalSymbol = pilotSymbol + dataSymbols;
257 UINT bytes = bits / 8;
270 double maxBytes = floor(maxBitsCount / 8.0);
296#pragma region SUPERFRAME_RESET
318#pragma region FRAME_EVENT
323 memset(&pevent, 0,
sizeof pevent);
357#pragma region SUPERFRAME_EVENT
361 memset(&pevent, 0,
sizeof pevent);
429#pragma region FRAME_SEND
439 memset(&pevent, 0,
sizeof pevent);
460 UINT bitsPerFrame,
double frameDuration)
463 double duration = ((bitsCount * 1.0) / bitsPerFrame) * frameDuration;
471 *startTime += duration;
486 if (fr->
head == NULL) fr->
tail = NULL;
#define fnNetSimError(x,...)
#define SATELLITE_PHY_GET(d, i)
void print_satellite_log(char *format,...)
#define SATELLITE_MAC_GET(d, i)
void satellite_log_remove_tab()
void satellite_log_add_tab()
static char * strLINKTYPE[]
@ SUBEVENT_SUPERFRAME_START
enum enum_linktype LINKTYPE
void satellite_form_bufferList(NETSIM_ID d, NETSIM_ID in, ptrSUPERFRAME sf)
ptrSUPERFRAME satellite_get_return_superframe(NETSIM_ID d, NETSIM_ID in)
struct stru_eventdetails * ptrEVENTDETAILS
static void reset_carrier(ptrSUPERFRAME sf, ptrCARRIER cr)
static UINT calculate_bitsPerSlot(ptrSUPERFRAME sf)
static void reset_superframe(ptrSUPERFRAME sf)
static void add_superframe_event(NETSIM_ID d, NETSIM_ID in, double time, ptrSUPERFRAME sf)
static UINT getModulationBits(PHY_MODULATION modulation)
void satellite_frame_start()
static void configure_superframe(ptrSUPERFRAME sf)
static void form_carrier(ptrSUPERFRAME sf)
struct stru_eventdetails EVENTDETAILS
ptrSUPERFRAME satellite_get_forward_superframe(NETSIM_ID d, NETSIM_ID in)
ptrSUPERFRAME superframe_alloc(LINKTYPE linkType, NETSIM_ID d, NETSIM_ID in)
static void form_frames(ptrSUPERFRAME sf, ptrCARRIER carrier)
static void add_frame_start_event(NETSIM_ID d, NETSIM_ID in, ptrSUPERFRAME sf, ptrFRAME fr, ptrCARRIER cr)
static void clear_eventdetails(ptrEVENTDETAILS ev)
static void form_superframe(ptrSUPERFRAME sf)
void superframe_init(NETSIM_ID d, NETSIM_ID in)
static void start_superframe(ptrSATELLITE_MAC mac, ptrSUPERFRAME sf, double time)
static void set_max_payload_size(NETSIM_ID d, NETSIM_ID in, UINT bits)
static ptrEVENTDETAILS form_eventdetails(ptrSUPERFRAME sf, ptrFRAME fr, ptrCARRIER carrier)
static void frame_send_packet(NETSIM_ID d, NETSIM_ID in, ptrSUPERFRAME sf, ptrFRAME fr, ptrCARRIER cr)
void satellite_superframe_start()
static ptrSUPERFRAME get_curr_superframe()
static void set_max_unit_size(ptrSUPERFRAME sf, UINT maxBitsCount)
static void update_time(NetSim_PACKET *packet, double *startTime, UINT bitsPerFrame, double frameDuration)
static void send_packet_to_phy(NetSim_PACKET *packet, NETSIM_ID d, NETSIM_ID in)
static ptrFRAME get_curr_frame()
static ptrCARRIER get_curr_carrier()
void satellite_buffer_setMaxUnitSizeInBytes(ptrSATELLITE_BUFFER buffer, double maxUnitSizeInBytes)
void satellite_allocate_slot(NETSIM_ID d, NETSIM_ID in, ptrSUPERFRAME sf, ptrFRAME fr)
#define DEVICE_MACLAYER(DeviceId, InterfaceId)
#define DEVICE_TYPE(DeviceId)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
NETSIM_ID fn_NetSim_Stack_GetConnectedInterface(NETSIM_ID devId, NETSIM_ID ifid, NETSIM_ID conId)
#define DEVICE_PHYLAYER(DeviceId, InterfaceId)
static const char * strPHY_MODULATION[]
enum enum_Modulation PHY_MODULATION
#define fnpAddEvent(pstruEvent)
struct stru_NetSim_Packet * pPacket
netsimDEVICE_TYPE nDeviceType
NETSIM_ID nConnectedDeviceCount
NETSIM_ID * anDevInterfaceIds
union stru_NetSim_Links::uni_NetSim_Link_DeviceList puniDevList
struct stru_NetSim_Packet_AppLayer * pstruAppData
struct stru_NetSim_Packet_PhyLayer * pstruPhyData
struct stru_NetSim_Packet * pstruNextPacket
struct stru_NetSim_Packet_MACLayer * pstruMacData
ptrSUPERFRAME forwardFLinkSuperFrame
ptrSUPERFRAME returnLinkSuperFrame
ptrSUPERFRAME returnLinkSuperFrame
ptrSUPERFRAME forwardLinkSuperFrame
double effectiveBandwidth_Hz
PHY_MODULATION modulation
double allocatedBandwidth_Hz
double centerFrequency_Hz
UINT pilotBlockSize_inSymbols
double pilotBlockLength_us
UINT pilotBlockInterval_inSlots
double relativeFrameEndTime
double relativeFrameStartTime
ptrSATELLITE_BUFFER * buffers
double superFrameDuration_us
double centralFrequency_Hz
ptrCARRIERCONF carrierConfig
struct stru_NetSim_Links::uni_NetSim_Link_DeviceList::stru_NetSim_P2MP pstrup2MP