m2mb API docs  37.00.005.1
m2mb API sets documentation
m2mb_net.h
Go to the documentation of this file.
1 /* $version: 372239T2_R1 */
2 /*===============================================================================================*/
3 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
21 #ifndef M2M_M2MB_NET_API_H
22 #define M2M_M2MB_NET_API_H
23 
24 
25 /* Global declarations ==========================================================================*/
26 
27 #define M2MB_NET_BSR_IDLE_TMR_MIN 1 /* min BSR timer value in seconds */
28 #define M2MB_NET_BSR_IDLE_TMR_MAX 1800 /* max BSR timer value in seconds - 30 min */
29 
30 /* Global typedefs ==============================================================================*/
31 
32 typedef HANDLE M2MB_NET_HANDLE;
33 
34 typedef enum
35 {
36  M2MB_NET_SUCCESS,
37  M2MB_NET_GENERIC_FAILURE
38 } M2MB_NET_ERRNO_E;
39 
40 /* see ETSI TS 27.007 V14 - commands +CREG, +CGREG and +CEREG */
41 typedef enum
42 {
43  M2MB_NET_RAT_UNKNOWN = -1,
44  M2MB_NET_RAT_GSM,
45  M2MB_NET_RAT_GSM_Compact,
46  M2MB_NET_RAT_UTRAN,
47  M2MB_NET_RAT_GSM_wEGPRS,
48  M2MB_NET_RAT_UTRAN_wHSDPA,
49  M2MB_NET_RAT_UTRAN_wHSUPA,
50  M2MB_NET_RAT_UTRAN_wHSDPAandHSUPA,
51  M2MB_NET_RAT_EUTRAN,
52  M2MB_NET_RAT_EC_GSM_IoT,
53  M2MB_NET_RAT_EUTRAN_NB_S1
54 } M2MB_NET_RAT_E;
55 
56 typedef enum
57 {
58  M2MB_NET_STAT_NOT_REGISTERED,
59  M2MB_NET_STAT_REGISTERED_HOME,
60  M2MB_NET_STAT_SEARCHING,
61  M2MB_NET_STAT_REGISTRATION_DENIED,
62  M2MB_NET_STAT_UNKNOWN,
63  M2MB_NET_STAT_REGISTERED_ROAMING
64 } M2MB_NET_STAT_E;
65 
66 typedef enum
67 {
68  M2MB_NET_AVAILABILITY_UNKNOWN,
69  M2MB_NET_AVAILABILITY_AVAILABLE,
70  M2MB_NET_AVAILABILITY_CURRENT,
71  M2MB_NET_AVAILABILITY_FORBIDDEN
72 } M2MB_NET_AVAILABILITY_E;
73 
74 typedef enum
75 {
76  M2MB_NET_NULL_RESP,
77  M2MB_NET_GET_SIGNAL_INFO_RESP,
78  M2MB_NET_GET_BER_RESP,
79  M2MB_NET_GET_CURRENT_OPERATOR_INFO_RESP,
80  M2MB_NET_GET_CURRENT_CELL_LIST_RESP,
81  M2MB_NET_GET_AVAILABLE_NW_LIST_RESP,
82  M2MB_NET_GET_REG_STATUS_INFO_RESP,
83  M2MB_NET_REG_STATUS_IND, /* Network registration state change indication */
84  M2MB_NET_GET_EDRX_INFO_RESP,
85  M2MB_NET_SET_EDRX_INFO_RESP,
86  M2MB_NET_ENABLE_IND_RESP,
87  M2MB_NET_GET_MODE_PREFERENCE_RESP, /* Network Mode Preference Get response */
88  M2MB_NET_SET_MODE_PREFERENCE_RESP, /* Network Mode Preference Set response */
89  M2MB_NET_MODE_PREFERENCE_IND, /* Network Mode Preference indication */
90  M2MB_NET_LAST
91 } M2MB_NET_IND_E;
92 
93 typedef enum
94 {
95  M2MB_NET_DUMMY,
96  M2MB_NET_SET_ENABLE_IND_ASYNC,
97  M2MB_NET_GET_ENABLE_IND_ASYNC
98 } M2MB_NET_ACTION_E;
99 
100 typedef enum
101 {
102  M2MB_NET_RESP_SET_NONE,
103  M2MB_NET_RESP_SET_FULL,
104  M2MB_NET_RESP_SET_SUBSET1,
105  M2MB_NET_RESP_SET_SUBSET2,
106  M2MB_NET_RESP_SET_SUBSET3,
107  M2MB_NET_RESP_SET_SUBSET4,
108  M2MB_NET_RESP_SET_SUBSET5
109 } M2MB_NET_RESP_SET_E;
110 
111 typedef enum
112 {
113  M2MB_NET_LTE_HANDOVER_SERVING,
114  M2MB_NET_LTE_HANDOVER_INTRA_FREQ,
115  M2MB_NET_LTE_HANDOVER_INTER_FREQ,
116 } M2MB_NET_LTE_HANDOVER_E;
117 
118 typedef enum
119 {
120  M2MB_NET_SRV_DOMAIN_NO_SRV,
121  M2MB_NET_SRV_DOMAIN_CS_ONLY,
122  M2MB_NET_SRV_DOMAIN_PS_ONLY,
123  M2MB_NET_SRV_DOMAIN_CS_PS,
124  M2MB_NET_SRV_DOMAIN_CAMPED
125 } M2MB_NET_SRV_DOMAIN_E;
126 
127 typedef enum
128 {
129  M2MB_NET_CELL_TYPE_SERVING,
130  M2MB_NET_CELL_TYPE_NEIGHBOR
131 } M2MB_NET_CELL_TYPE_E;
132 
133 typedef enum
134 {
135  M2MB_NET_ACC_TECH_TYPE_NO_SRV,
136  M2MB_NET_ACC_TECH_TYPE_CDMA_1X,
137  M2MB_NET_ACC_TECH_TYPE_CDMA_1XEVDO,
138  M2MB_NET_ACC_TECH_TYPE_AMPS,
139  M2MB_NET_ACC_TECH_TYPE_GSM,
140  M2MB_NET_ACC_TECH_TYPE_UMTS,
141  M2MB_NET_ACC_TECH_TYPE_WLAN,
142  M2MB_NET_ACC_TECH_TYPE_GPS,
143  M2MB_NET_ACC_TECH_TYPE_LTE,
144  M2MB_NET_ACC_TECH_TYPE_TDSCDMA,
145  M2MB_NET_ACC_TECH_TYPE_LTE_M1,
146  M2MB_NET_ACC_TECH_TYPE_LTE_NB1,
147  M2MB_NET_ACC_TECH_TYPE_MAX
148 } M2MB_NET_ACC_TECH_TYPE_E;
149 
150 typedef enum
151 {
152  M2MB_NET_ERR_OK,
153  M2MB_NET_ERR_UNKNOWN
154 } M2MB_NET_ERR_CAUSE_E;
155 
156 typedef enum
157 {
158  M2MB_NET_ENABLE_IND_ASYNC_DISABLED,
159  M2MB_NET_ENABLE_IND_ASYNC_ENABLED
160 } M2MB_NET_ENABLE_IND_ASYNC_E;
161 
162 typedef enum
163 {
164  M2MB_NET_SELECTED_WIRELESS_GERAN = 12,
165  M2MB_NET_SELECTED_WIRELESS_UTRAN = 22,
166  M2MB_NET_SELECTED_WIRELESS_GERAN_UTRAN_EUTRAN = 25,
167  M2MB_NET_SELECTED_WIRELESS_EUTRAN = 28,
168  M2MB_NET_SELECTED_WIRELESS_GERAN_UTRAN = 29,
169  M2MB_NET_SELECTED_WIRELESS_GERAN_EUTRAN = 30,
170  M2MB_NET_SELECTED_WIRELESS_UTRAN_EUTRAN = 31,
171 } M2MB_NET_SELECTED_WIRELESS_NETWORK_E;
172 
173 typedef enum
174 {
175  M2MB_NET_LTE_CIOT_PREFERENCE_CAT_M1 = 0, /* CAT-M exclusive */
176  M2MB_NET_LTE_CIOT_PREFERENCE_NB_IOT = 1, /* NB-IoT exclusive */
177  M2MB_NET_LTE_CIOT_PREFERENCE_CAT_M1_NB_IOT = 2, /* Both CAT-M and NB-IoT, CAT-M preferred */
178  M2MB_NET_LTE_CIOT_PREFERENCE_NB_IOT_CAT_M1 = 3 /* Both CAT-M and NB-IoT, NB-IoT preferred */
179 } M2MB_NET_LTE_CIOT_PREFERENCE_E;
180 
181 typedef enum M2MB_NET_BSR_CFG_TAG
182 {
183  M2MB_NET_BSR_SET_IDLE_TMR = 0,
184  M2MB_NET_BSR_GET_IDLE_TMR = 1
185 } M2MB_NET_BSR_CFG_E;
186 
187 typedef struct
188 {
189  M2MB_NET_ERR_CAUSE_E err;
191 
192 typedef struct
193 {
194  M2MB_NET_ERR_CAUSE_E err;
195  M2MB_RESULT_E response;
197 
198 typedef struct
199 {
200  M2MB_NET_ERR_CAUSE_E err;
201  M2MB_NET_STAT_E stat; //Network status
202  M2MB_NET_RAT_E rat; //Radio Access Technology
203  M2MB_NET_SRV_DOMAIN_E srvDomain;
204  UINT16 areaCode; //LAC or TAC, depending on the current RAT
205  UINT32 cellID;
207 
208 typedef struct
209 {
210  M2MB_NET_ERR_CAUSE_E err;
211  M2MB_NET_ACC_TECH_TYPE_E acc_tech;
212  UINT8 edrx;
213  UINT8 enabled;
215 
216 typedef struct
217 {
218  INT16 ecio;
220 
221 typedef struct
222 {
223  INT8 rsrq; // Reference Signal Received Quality
224  INT16 rsrp; // Reference Signal Received Power
225  INT16 snr;
227 
228 typedef struct
229 {
230  M2MB_NET_ERR_CAUSE_E err;
231  M2MB_NET_RAT_E rat;
232  INT8 rssi; //Received signal strength indication
233  UINT16 sigInfo_size;
234  void *sigInfo;
236 
237 typedef struct
238 {
239  M2MB_NET_ERR_CAUSE_E err;
240  M2MB_NET_RAT_E rat;
241  INT16 ber; //Bit error rate
243 
244 typedef struct
245 {
246  INT32 nARFCN;
247  INT32 nBSIC;
248  INT32 nSignalStrength;
250 
251 typedef struct
252 {
253  UINT32 cell_id;
254  UINT16 mcc;
255  UINT16 mnc;
256  UINT16 lac;
257  UINT16 arfcn;
258  UINT8 bsic;
259  UINT32 timing_advance;
260  UINT16 rx_lev;
262 
263 typedef struct
264 {
265  UINT32 cell_id;
266  UINT16 lac;
267  UINT16 arfcn;
268  UINT8 bsic;
269  UINT16 rx_lev;
271 
272 typedef struct
273 {
274  UINT16 arfcn;
275  UINT8 bsic;
276  UINT16 rx_lev;
277  INT16 srxlev; //Cell selection Rx level
279 
280 typedef union
281 {
286 
287 typedef struct
288 {
289  UINT32 cell_id;
290  UINT16 mcc;
291  UINT16 mnc;
292  UINT16 lac;
293  UINT16 uarfcn;
294  UINT16 psc;
295  INT16 rscp;
296  INT16 ecio;
298 
299 typedef struct
300 {
301  UINT16 uarfcn;
302  UINT16 psc;
303  INT16 rscp;
304  INT16 ecio;
305  INT16 srxlev; //Cell selection Rx level
307 
308 typedef union
309 {
313 
314 typedef struct
315 {
316  M2MB_NET_LTE_HANDOVER_E lteType;
317  UINT32 cell_id;
318  UINT16 mcc;
319  UINT16 mnc;
320  UINT16 tac;
321  UINT16 earfcn;
322  UINT16 pci;
323  INT16 rsrq;
324  INT16 rsrp;
325  INT16 rx_lev;
326  INT16 srxlev; //Cell selection Rx level
328 
329 typedef struct
330 {
331  M2MB_NET_LTE_HANDOVER_E lteType;
332  UINT16 earfcn;
333  UINT16 pci;
334  INT16 rsrq;
335  INT16 rsrp;
336  INT16 rx_lev;
337  INT16 srxlev; //Cell selection Rx level
339 
340 typedef union
341 {
345 
347 {
348  M2MB_NET_CELL_TYPE_E cellType;
349  M2MB_NET_RAT_E cellRat;
350  M2MB_NET_RESP_SET_E respSet;
351  UINT16 cell_size;
352  void *cell;
353  struct M2MB_NET_CELL_NEIGHBOR_T *next;
354  BOOLEAN lte_ue_in_idle; //Radio Status
356 
357 typedef struct
358 {
359  M2MB_NET_ERR_CAUSE_E err;
360  UINT16 neighbors_size;
361  M2MB_NET_CELL_NEIGHBOR_T *neighbors;
363 
364 typedef struct
365 {
366  M2MB_NET_ERR_CAUSE_E err;
367  UINT16 mcc;
368  UINT16 mnc;
369  M2MB_NET_RAT_E rat; //Radio Access Technology
371 
373 {
374  UINT16 mcc;
375  UINT16 mnc;
376  M2MB_NET_AVAILABILITY_E networkAv;
377  M2MB_NET_RAT_E rat;
378  struct M2MB_NET_DESCRIPTION_T *next;
380 
381 typedef struct
382 {
383  M2MB_NET_ERR_CAUSE_E err;
384  UINT16 availableNetworks_size;
385  M2MB_NET_DESCRIPTION_T *availableNetworks;
387 
388 typedef struct
389 {
390  M2MB_NET_SELECTED_WIRELESS_NETWORK_E selectedWirelessNetwork;
391  M2MB_NET_LTE_CIOT_PREFERENCE_E lte_ciot_preference;
393 
395 
396 typedef struct
397 {
398  M2MB_NET_ERR_CAUSE_E err; /* error status */
399  M2MB_NET_MODE_PREFERENCE_T mode_preference; /* mode preference */
401 
402 typedef void ( *m2mb_net_ind_callback )( M2MB_NET_HANDLE h, M2MB_NET_IND_E net_event, UINT16 resp_size, void *resp_struct, void *userdata );
403 
404 /* Global functions =============================================================================*/
405 
406 /*-----------------------------------------------------------------------------------------------*/
446 /*-----------------------------------------------------------------------------------------------*/
447 M2MB_RESULT_E m2mb_net_init( M2MB_NET_HANDLE *h, m2mb_net_ind_callback callback, void *userdata );
448 
449 /*-----------------------------------------------------------------------------------------------*/
481 /*-----------------------------------------------------------------------------------------------*/
482 M2MB_RESULT_E m2mb_net_deinit( M2MB_NET_HANDLE h );
483 
484 /*-----------------------------------------------------------------------------------------------*/
534 /*-----------------------------------------------------------------------------------------------*/
535 M2MB_RESULT_E m2mb_net_conf( M2MB_NET_HANDLE h, UINT8 argc, ... );
536 
537 /*-----------------------------------------------------------------------------------------------*/
596 /*-----------------------------------------------------------------------------------------------*/
597 M2MB_RESULT_E m2mb_net_enable_ind( M2MB_NET_HANDLE h, M2MB_NET_IND_E ind, UINT8 enable );
598 
599 /*-----------------------------------------------------------------------------------------------*/
661 M2MB_RESULT_E m2mb_net_get_signal_info( M2MB_NET_HANDLE h );
662 
663 /*-----------------------------------------------------------------------------------------------*/
715 M2MB_RESULT_E m2mb_net_get_ber( M2MB_NET_HANDLE h );
716 
717 /*-----------------------------------------------------------------------------------------------*/
740 
741 /*-----------------------------------------------------------------------------------------------*/
813 M2MB_RESULT_E m2mb_net_get_mode_preference( M2MB_NET_HANDLE h );
814 
815 /*-----------------------------------------------------------------------------------------------*/
867 M2MB_RESULT_E m2mb_net_get_current_operator_info( M2MB_NET_HANDLE h );
868 
869 /*-----------------------------------------------------------------------------------------------*/
988 M2MB_RESULT_E m2mb_net_get_current_cell_list( M2MB_NET_HANDLE h );
989 
990 /*-----------------------------------------------------------------------------------------------*/
1049 M2MB_RESULT_E m2mb_net_get_available_nw_list( M2MB_NET_HANDLE h );
1050 
1051 /*-----------------------------------------------------------------------------------------------*/
1103 M2MB_RESULT_E m2mb_net_get_reg_status_info( M2MB_NET_HANDLE h );
1104 
1105 /*-----------------------------------------------------------------------------------------------*/
1159 M2MB_RESULT_E m2mb_net_get_edrx_info( M2MB_NET_HANDLE h, M2MB_NET_ACC_TECH_TYPE_E acc_tech );
1160 
1161 /*-----------------------------------------------------------------------------------------------*/
1221 M2MB_RESULT_E m2mb_net_set_edrx_info( M2MB_NET_HANDLE h, M2MB_NET_ACC_TECH_TYPE_E acc_tech, UINT8 edrx, UINT8 enabled );
1222 
1223 
1224 /*-----------------------------------------------------------------------------------------------*/
1264 M2MB_RESULT_E m2mb_net_bsr_config( M2MB_NET_HANDLE h, M2MB_NET_BSR_CFG_E request, ... );
1265 
1266 #endif
M2MB_NET_CELL_GERAN_SUBSET2_T
Definition: m2mb_net.h:272
m2mb_net_get_current_operator_info
M2MB_RESULT_E m2mb_net_get_current_operator_info(M2MB_NET_HANDLE h)
m2mb_net_get_current_operator_info gets information about current operator.
m2mb_net_set_edrx_info
M2MB_RESULT_E m2mb_net_set_edrx_info(M2MB_NET_HANDLE h, M2MB_NET_ACC_TECH_TYPE_E acc_tech, UINT8 edrx, UINT8 enabled)
m2mb_net_set_edrx_info sets information about edrx.
m2mb_net_get_signal_info
M2MB_RESULT_E m2mb_net_get_signal_info(M2MB_NET_HANDLE h)
m2mb_net_get_signal_info gets information about signal strength.
m2mb_net_get_available_nw_list
M2MB_RESULT_E m2mb_net_get_available_nw_list(M2MB_NET_HANDLE h)
m2mb_net_get_available_nw_list gets a list containing current availble networks.
M2MB_NET_CELL_EUTRAN_U
Definition: m2mb_net.h:340
M2MB_NET_GET_CURRENT_OPERATOR_INFO_RESP_T
Definition: m2mb_net.h:364
M2MB_NET_REG_STATUS_T
Definition: m2mb_net.h:198
M2MB_NET_GET_SIGNAL_INFO_RESP_T
Definition: m2mb_net.h:228
m2mb_net_bsr_config
M2MB_RESULT_E m2mb_net_bsr_config(M2MB_NET_HANDLE h, M2MB_NET_BSR_CFG_E request,...)
m2mb_net_bsr_config reads or sets BSR idle timer value in miliseconds.
m2mb_net_init
M2MB_RESULT_E m2mb_net_init(M2MB_NET_HANDLE *h, m2mb_net_ind_callback callback, void *userdata)
m2mb_net_init initializes NET service for current client.
M2MB_NET_CELL_EUTRAN_SUBSET1_T
Definition: m2mb_net.h:329
M2MB_NET_SIGNAL_INFO_EUTRAN_T
Definition: m2mb_net.h:221
M2MB_NET_CELL_UTRAN_U
Definition: m2mb_net.h:308
M2MB_NET_GENERIC_RESP_T
Definition: m2mb_net.h:192
M2MB_NET_SELECTED_WIRELESS_NETWORK_RESP_T
Definition: m2mb_net.h:388
M2MB_NET_GET_EDRX_INFO_RESP_T
Definition: m2mb_net.h:208
M2MB_NET_MODE_PREFERENCE_STATUS_T
Definition: m2mb_net.h:396
m2mb_net_get_current_cell_list
M2MB_RESULT_E m2mb_net_get_current_cell_list(M2MB_NET_HANDLE h)
m2mb_net_get_current_cell_list gets a list containing current cell neighbors.
M2MB_NET_CELL_GERAN_SUBSET1_T
Definition: m2mb_net.h:263
M2M_T_NETWORK_CELL_NEIGHBOR_T
Definition: m2mb_net.h:244
M2MB_NET_GET_CURRENT_CELL_LIST_RESP_T
Definition: m2mb_net.h:357
m2mb_net_enable_ind
M2MB_RESULT_E m2mb_net_enable_ind(M2MB_NET_HANDLE h, M2MB_NET_IND_E ind, UINT8 enable)
m2mb_net_enable_ind enables the indications of network state change events.
M2MB_NET_CELL_GERAN_FULL_T
Definition: m2mb_net.h:251
M2MB_NET_CELL_NEIGHBOR_T
Definition: m2mb_net.h:346
M2MB_NET_CELL_UTRAN_SUBSET1_T
Definition: m2mb_net.h:299
M2MB_NET_CELL_UTRAN_FULL_T
Definition: m2mb_net.h:287
M2MB_NET_DESCRIPTION_T
Definition: m2mb_net.h:372
M2MB_NET_CELL_EUTRAN_FULL_T
Definition: m2mb_net.h:314
m2mb_net_get_mode_preference
M2MB_RESULT_E m2mb_net_get_mode_preference(M2MB_NET_HANDLE h)
m2mb_net_get_mode_preference gets information about the mode preference for the network to attach.
m2mb_net_get_wireless_network_selection
M2MB_RESULT_E m2mb_net_get_wireless_network_selection(M2MB_NET_HANDLE h, M2MB_NET_SELECTED_WIRELESS_NETWORK_RESP_T *resp)
m2mb_net_get_wireless_network_selection queries the modem for the wireless network selection and for ...
M2MB_NET_GET_AVAILABLE_NW_LIST_RESP_T
Definition: m2mb_net.h:381
m2mb_net_get_reg_status_info
M2MB_RESULT_E m2mb_net_get_reg_status_info(M2MB_NET_HANDLE h)
m2mb_net_get_reg_status_info gets information about regitration status.
M2MB_NET_GET_BER_RESP_T
Definition: m2mb_net.h:237
M2MB_NET_ERR_CAUSE_T
Definition: m2mb_net.h:187
M2MB_NET_SIGNAL_INFO_UTRAN_T
Definition: m2mb_net.h:216
m2mb_net_get_ber
M2MB_RESULT_E m2mb_net_get_ber(M2MB_NET_HANDLE h)
m2mb_net_get_ber gets information about bit error rate.
m2mb_net_get_edrx_info
M2MB_RESULT_E m2mb_net_get_edrx_info(M2MB_NET_HANDLE h, M2MB_NET_ACC_TECH_TYPE_E acc_tech)
m2mb_net_get_edrx_info gets information about edrx.
m2mb_net_conf
M2MB_RESULT_E m2mb_net_conf(M2MB_NET_HANDLE h, UINT8 argc,...)
m2mb_net_conf sets/gets some NET parameters.
M2MB_NET_CELL_GERAN_U
Definition: m2mb_net.h:280
m2mb_net_deinit
M2MB_RESULT_E m2mb_net_deinit(M2MB_NET_HANDLE h)
m2mb_net_deinit deinitializes NET service for current client.