25#ifndef _NETSIM_SATELLITE_H_
26#define _NETSIM_SATELLITE_H_
35#pragma comment(lib,"Metrics.lib")
36#pragma comment(lib,"NetworkStack.lib")
37#pragma comment(lib,"Mobility.lib")
38#pragma comment(lib,"PropagationModel.lib")
41 bool get_protocol_log_status(
char* logname);
42 void print_satellite_log(
char* format, ...);
43 void satellite_log_add_tab();
44 void satellite_log_remove_tab();
47 typedef enum enum_SATELLITE_DEVICE_TYPE
49 SATELLITE_DEVICETYPE_USER_TERMINAL,
50 SATELLITE_DEVICETYPE_SATELLITE,
51 SATELLITE_DEVICETYPE_SATELLITE_GATEWAY,
52 SATELLITE_DEVICETYPE_UNKNOWN,
53 }SATELLITE_DEVICETYPE;
54 static const char* strSATELLITE_DEVICETYPE[] =
55 {
"USER_TERMINAL",
"SATELLITE",
"SATELLITE_GATEWAY",
"Unknown" };
56 SATELLITE_DEVICETYPE SATELLITE_DEVICETYPE_FROM_STR(
const char* type);
58 typedef enum enum_linktype
63 static char* strLINKTYPE[] = {
"FORWARD",
"RETURN" };
65 typedef enum enum_SATELLITE_LAYER
69 SATELLITE_LAYER_UNKNOWN,
71 static const char* strSATELLITE_LAYER[] =
72 {
"MAC",
"PHY",
"Unknwon" };
74 typedef enum enum_satellite_subevent
76 SUBEVENT_SUPERFRAME_START = MAC_PROTOCOL_SATELLITE * 100 + 1,
79 static const char* strSATELLITE_SUBEVENT[] =
80 {
"",
"Satellite_Superframe_Start",
"Satellite_Frame_Start" };
84 SATELLITE_DEVICETYPE deviceType;
86 NETSIM_ID interfaceId;
87 void*** SATELLITE_LAYER_DATA;
88 }SATELLITE_PROTODATA, * ptrSATELLITE_PROTODATA;
89 ptrSATELLITE_PROTODATA SATELLITE_PROTOCOLDATA_ALLOC(NETSIM_ID d,
91#define SATELLITE_PROTOCOLDATA_CURRENT() ((ptrSATELLITE_PROTODATA)DEVICE_MACVAR(pstruEventDetails->nDeviceId,pstruEventDetails->nInterfaceId))
92 void SATELLITE_PROTOCOLDATA_FREE(NETSIM_ID d,
94 void* SATELLITE_LAYER_DATA_GET(NETSIM_ID d, NETSIM_ID in,
95 SATELLITE_DEVICETYPE devType,
96 SATELLITE_LAYER layer);
97 bool SATELLITE_LAYER_DATA_IsInitialized(NETSIM_ID d, NETSIM_ID in,
98 SATELLITE_DEVICETYPE devType,
99 SATELLITE_LAYER layer);
100 void SATELLITE_LAYER_DATA_SET(NETSIM_ID d, NETSIM_ID in,
101 SATELLITE_DEVICETYPE devType,
102 SATELLITE_LAYER layer,
104 SATELLITE_DEVICETYPE SATELLITE_DEVICETYPE_GET(NETSIM_ID d, NETSIM_ID in);
106#define SATELLITE_PHY_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_SATELLITE,SATELLITE_LAYER_PHY))
107#define SATELLITE_MAC_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_SATELLITE,SATELLITE_LAYER_MAC))
108#define SATELLITE_UTPHY_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_USER_TERMINAL,SATELLITE_LAYER_PHY))
109#define SATELLITE_UTMAC_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_USER_TERMINAL,SATELLITE_LAYER_MAC))
110#define SATELLITE_GWPHY_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_SATELLITE_GATEWAY,SATELLITE_LAYER_PHY))
111#define SATELLITE_GWMAC_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_SATELLITE_GATEWAY,SATELLITE_LAYER_MAC))
113#define SATELLITE_PHY_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_SATELLITE,SATELLITE_LAYER_PHY,data))
114#define SATELLITE_MAC_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_SATELLITE,SATELLITE_LAYER_MAC,data))
115#define SATELLITE_UTPHY_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_USER_TERMINAL,SATELLITE_LAYER_PHY,data))
116#define SATELLITE_UTMAC_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_USER_TERMINAL,SATELLITE_LAYER_MAC,data))
117#define SATELLITE_GWPHY_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_SATELLITE_GATEWAY,SATELLITE_LAYER_PHY,data))
118#define SATELLITE_GWMAC_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_SATELLITE_GATEWAY,SATELLITE_LAYER_MAC,data))
120#define isSATELLITE(d,i) (SATELLITE_DEVICETYPE_GET(d,i) == SATELLITE_DEVICETYPE_SATELLITE)
121#define isUT(d,i) (SATELLITE_DEVICETYPE_GET(d,i) == SATELLITE_DEVICETYPE_USER_TERMINAL)
122#define isGW(d,i) (SATELLITE_DEVICETYPE_GET(d,i) == SATELLITE_DEVICETYPE_SATELLITE_GATEWAY)
126 void fn_NetSim_SATELLITE_Configure_F(
void**);
127 bool isSatelliteInterface(NETSIM_ID d, NETSIM_ID in);
130 void satellite_handle_mac_out();
131 void satellite_handle_mac_in();
134 void satellite_handle_phy_out();
135 void satellite_handle_phy_in();
138 void satellite_hdr_init(NETSIM_ID d, NETSIM_ID in,
139 NetSim_PACKET* packet);
142 void Satellite_RadioMeasurements_Init();
143 void Satellite_RadioMeasurements_Finish();