25#include "NetSim_utility.h"
27#include "Satellite_MAC.h"
28#include "Satellite_PHY.h"
30#include "AdvancedPlots.h"
31#pragma comment(lib,"AdvancedPlots.lib")
34static void satellite_ut_init(NETSIM_ID d, NETSIM_ID in);
35static void satellite_gw_init(NETSIM_ID d, NETSIM_ID in);
36static void satellite_init(NETSIM_ID d, NETSIM_ID in);
37static void satellite_handle_timer();
38void init_satellite_log();
39void close_satellite_log();
41_declspec(dllexport)
int fn_NetSim_SATELLITE_Init()
45 Satellite_RadioMeasurements_Init();
48 for (i = 0; i < NETWORK->nDeviceCount; i++)
50 for (j = 0; j < DEVICE(i + 1)->nNumOfInterface; j++)
52 if (!isSatelliteInterface(i + 1, j + 1))
55 switch (SATELLITE_DEVICETYPE_GET(i + 1, j + 1))
57 case SATELLITE_DEVICETYPE_SATELLITE:
58 satellite_init(i + 1, j + 1);
60 case SATELLITE_DEVICETYPE_SATELLITE_GATEWAY:
61 satellite_gw_init(i + 1, j + 1);
63 case SATELLITE_DEVICETYPE_USER_TERMINAL:
64 satellite_ut_init(i + 1, j + 1);
67 fnNetSimError(
"Unknown device type in function %s\n", __FUNCTION__);
75_declspec(dllexport)
int fn_NetSim_SATELLITE_Run()
77 switch (pstruEventDetails->nEventType)
80 satellite_handle_mac_out();
83 satellite_handle_mac_in();
85 case PHYSICAL_OUT_EVENT:
86 satellite_handle_phy_out();
88 case PHYSICAL_IN_EVENT:
89 satellite_handle_phy_in();
92 satellite_handle_timer();
95 fnNetSimError(
"Unknown event type %d in function %s\n",
96 pstruEventDetails->nEventType, __FUNCTION__);
102_declspec(dllexport)
char* fn_NetSim_SATELLITE_Trace(NETSIM_ID
id)
104 UINT i =
id % (MAC_PROTOCOL_SATELLITE * 100);
105 return (
char*)strSATELLITE_SUBEVENT[i];
108_declspec(dllexport)
int fn_NetSim_SATELLITE_FreePacket(NetSim_PACKET* packet)
114_declspec(dllexport)
int fn_NetSim_SATELLITE_CopyPacket(NetSim_PACKET* destPacket,
const NetSim_PACKET* srcPacket)
121_declspec(dllexport)
int fn_NetSim_SATELLITE_Metrics(PMETRICSWRITER file)
127_declspec(dllexport)
int fn_NetSim_SATELLITE_Configure(
void** var)
129 fn_NetSim_SATELLITE_Configure_F(var);
133_declspec(dllexport)
char* fn_NetSim_SATELLITE_ConfigPacketTrace(
void* xmlNetSimNode)
139_declspec(dllexport)
int fn_NetSim_SATELLITE_Finish()
141 close_satellite_log();
142 LinkPacketLog_close();
143 Satellite_RadioMeasurements_Finish();
147_declspec(dllexport)
int fn_NetSim_SATELLITE_WritePacketTrace(NetSim_PACKET* pstruPacket,
char** ppszTrace)
154static void satellite_ut_init(NETSIM_ID d, NETSIM_ID in)
156 satellite_UT_MAC_init(d, in);
157 satellite_ut_phy_init(d, in);
160static void satellite_gw_init(NETSIM_ID d, NETSIM_ID in)
162 satellite_GW_MAC_init(d, in);
163 satellite_gw_phy_init(d, in);
166static void satellite_init(NETSIM_ID d, NETSIM_ID in)
168 satellite_mac_init(d, in);
171static void satellite_handle_timer()
173 switch (pstruEventDetails->nSubEventType)
175 case SUBEVENT_SUPERFRAME_START:
176 satellite_superframe_start();
178 case SUBEVENT_FRAME_START:
179 satellite_frame_start();
182 fnNetSimError(
"Unknown subevnet %d in function %s\n",
183 pstruEventDetails->nSubEventType, __FUNCTION__);
188bool get_protocol_log_status(
char* logname)
194 sprintf(str,
"%s/%s", pszIOPath,
"ProtocolLogsConfig.txt");
195 fp = fopen(str,
"r");
199 sprintf(str,
"%s=true", logname);
201 while (fgets(data, BUFSIZ, fp))
204 if (!_strnicmp(data, str, strlen(str)))