m2mb API docs  30.00.008.1
m2mb API sets documentation
m2mb_net.h
Go to the documentation of this file.
1 /* $version: 302014 */
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 /* Global typedefs ==============================================================================*/
28 
29 typedef HANDLE M2MB_NET_HANDLE;
30 
31 typedef enum
32 {
33  M2MB_NET_SUCCESS,
34  M2MB_NET_GENERIC_FAILURE
35 } M2MB_NET_ERRNO_E;
36 
37 // see ETSI TS 27.007 V14 - commands +CREG, +CGREG and +CEREG
38 typedef enum
39 {
40  M2MB_NET_RAT_UNKNOWN = -1,
41  M2MB_NET_RAT_GSM,
42  M2MB_NET_RAT_GSM_Compact,
43  M2MB_NET_RAT_UTRAN,
44  M2MB_NET_RAT_GSM_wEGPRS,
45  M2MB_NET_RAT_UTRAN_wHSDPA,
46  M2MB_NET_RAT_UTRAN_wHSUPA,
47  M2MB_NET_RAT_UTRAN_wHSDPAandHSUPA,
48  M2MB_NET_RAT_EUTRAN,
49  M2MB_NET_RAT_EC_GSM_IoT,
50  M2MB_NET_RAT_EUTRAN_NB_S1
51 } M2MB_NET_RAT_E;
52 
53 typedef enum
54 {
55  M2MB_NET_STAT_NOT_REGISTERED,
56  M2MB_NET_STAT_REGISTERED_HOME,
57  M2MB_NET_STAT_SEARCHING,
58  M2MB_NET_STAT_REGISTRATION_DENIED,
59  M2MB_NET_STAT_UNKNOWN,
60  M2MB_NET_STAT_REGISTERED_ROAMING
61 } M2MB_NET_STAT_E;
62 
63 typedef enum
64 {
65  M2MB_NET_AVAILABILITY_UNKNOWN,
66  M2MB_NET_AVAILABILITY_AVAILABLE,
67  M2MB_NET_AVAILABILITY_CURRENT,
68  M2MB_NET_AVAILABILITY_FORBIDDEN
69 } M2MB_NET_AVAILABILITY_E;
70 
71 typedef enum
72 {
73  M2MB_NET_NULL_RESP,
74  M2MB_NET_GET_SIGNAL_INFO_RESP,
75  M2MB_NET_GET_BER_RESP,
76  M2MB_NET_GET_CURRENT_OPERATOR_INFO_RESP,
77  M2MB_NET_GET_CURRENT_CELL_LIST_RESP,
78  M2MB_NET_GET_AVAILABLE_NW_LIST_RESP,
79  M2MB_NET_GET_REG_STATUS_INFO_RESP,
80  M2MB_NET_REG_STATUS_IND,//Network registration state change indication
81  M2MB_NET_GET_EDRX_INFO_RESP,
82  M2MB_NET_SET_EDRX_INFO_RESP,
83  M2MB_NET_ENABLE_IND_RESP
84 } M2MB_NET_IND_E;
85 
86 typedef enum
87 {
88  M2MB_NET_DUMMY,
89  M2MB_NET_SET_ENABLE_IND_ASYNC,
90  M2MB_NET_GET_ENABLE_IND_ASYNC
91 } M2MB_NET_ACTION_E;
92 
93 typedef enum
94 {
95  M2MB_NET_RESP_SET_NONE,
96  M2MB_NET_RESP_SET_FULL,
97  M2MB_NET_RESP_SET_SUBSET1,
98  M2MB_NET_RESP_SET_SUBSET2,
99  M2MB_NET_RESP_SET_SUBSET3,
100  M2MB_NET_RESP_SET_SUBSET4,
101  M2MB_NET_RESP_SET_SUBSET5
102 } M2MB_NET_RESP_SET_E;
103 
104 typedef enum
105 {
106  M2MB_NET_LTE_HANDOVER_SERVING,
107  M2MB_NET_LTE_HANDOVER_INTRA_FREQ,
108  M2MB_NET_LTE_HANDOVER_INTER_FREQ,
109 } M2MB_NET_LTE_HANDOVER_E;
110 
111 typedef enum
112 {
113  M2MB_NET_SRV_DOMAIN_NO_SRV,
114  M2MB_NET_SRV_DOMAIN_CS_ONLY,
115  M2MB_NET_SRV_DOMAIN_PS_ONLY,
116  M2MB_NET_SRV_DOMAIN_CS_PS,
117  M2MB_NET_SRV_DOMAIN_CAMPED
118 } M2MB_NET_SRV_DOMAIN_E;
119 
120 typedef enum
121 {
122  M2MB_NET_CELL_TYPE_SERVING,
123  M2MB_NET_CELL_TYPE_NEIGHBOR
124 } M2MB_NET_CELL_TYPE_E;
125 
126 typedef enum
127 {
128  M2MB_NET_ACC_TECH_TYPE_NO_SRV,
129  M2MB_NET_ACC_TECH_TYPE_CDMA_1X,
130  M2MB_NET_ACC_TECH_TYPE_CDMA_1XEVDO,
131  M2MB_NET_ACC_TECH_TYPE_AMPS,
132  M2MB_NET_ACC_TECH_TYPE_GSM,
133  M2MB_NET_ACC_TECH_TYPE_UMTS,
134  M2MB_NET_ACC_TECH_TYPE_WLAN,
135  M2MB_NET_ACC_TECH_TYPE_GPS,
136  M2MB_NET_ACC_TECH_TYPE_LTE,
137  M2MB_NET_ACC_TECH_TYPE_TDSCDMA,
138  M2MB_NET_ACC_TECH_TYPE_LTE_M1,
139  M2MB_NET_ACC_TECH_TYPE_LTE_NB1,
140  M2MB_NET_ACC_TECH_TYPE_MAX
141 } M2MB_NET_ACC_TECH_TYPE_E;
142 
143 typedef enum
144 {
145  M2MB_NET_ERR_OK,
146  M2MB_NET_ERR_UNKNOWN
147 } M2MB_NET_ERR_CAUSE_E;
148 
149 typedef enum
150 {
151  M2MB_NET_ENABLE_IND_ASYNC_DISABLED,
152  M2MB_NET_ENABLE_IND_ASYNC_ENABLED
153 } M2MB_NET_ENABLE_IND_ASYNC_E;
154 
155 typedef enum
156 {
157  M2MB_NET_SELECTED_WIRELESS_GERAN = 12,
158  M2MB_NET_SELECTED_WIRELESS_UTRAN = 22,
159  M2MB_NET_SELECTED_WIRELESS_GERAN_UTRAN_EUTRAN = 25,
160  M2MB_NET_SELECTED_WIRELESS_EUTRAN = 28,
161  M2MB_NET_SELECTED_WIRELESS_GERAN_UTRAN = 29,
162  M2MB_NET_SELECTED_WIRELESS_GERAN_EUTRAN = 30,
163  M2MB_NET_SELECTED_WIRELESS_UTRAN_EUTRAN = 31,
164 } M2MB_NET_SELECTED_WIRELESS_NETWORK_E;
165 
166 typedef enum
167 {
168  M2MB_NET_LTE_CIOT_PREFERENCE_CAT_M1 = 0,
169  M2MB_NET_LTE_CIOT_PREFERENCE_NB_IOT = 1,
170  M2MB_NET_LTE_CIOT_PREFERENCE_CAT_M1_NB_IOT = 2
171 } M2MB_NET_LTE_CIOT_PREFERENCE_E;
172 
173 typedef struct
174 {
175  M2MB_NET_ERR_CAUSE_E err;
177 
178 typedef struct
179 {
180  M2MB_NET_ERR_CAUSE_E err;
181  M2MB_RESULT_E response;
183 
184 typedef struct
185 {
186  M2MB_NET_ERR_CAUSE_E err;
187  M2MB_NET_STAT_E stat; //Network status
188  M2MB_NET_RAT_E rat; //Radio Access Technology
189  M2MB_NET_SRV_DOMAIN_E srvDomain;
190  UINT16 areaCode; //LAC or TAC, depending on the current RAT
191  UINT32 cellID;
193 
194 typedef struct
195 {
196  M2MB_NET_ERR_CAUSE_E err;
197  M2MB_NET_ACC_TECH_TYPE_E acc_tech;
198  UINT8 edrx;
199  UINT8 enabled;
201 
202 typedef struct
203 {
204  INT16 ecio;
206 
207 typedef struct
208 {
209  INT8 rsrq; // Reference Signal Received Quality
210  INT16 rsrp; // Reference Signal Received Power
211  INT16 snr;
213 
214 typedef struct
215 {
216  M2MB_NET_ERR_CAUSE_E err;
217  M2MB_NET_RAT_E rat;
218  INT8 rssi; //Received signal strength indication
219  UINT16 sigInfo_size;
220  void *sigInfo;
222 
223 typedef struct
224 {
225  M2MB_NET_ERR_CAUSE_E err;
226  M2MB_NET_RAT_E rat;
227  INT16 ber; //Bit error rate
229 
230 typedef struct
231 {
232  INT32 nARFCN;
233  INT32 nBSIC;
234  INT32 nSignalStrength;
236 
237 typedef struct
238 {
239  UINT32 cell_id;
240  UINT16 mcc;
241  UINT16 mnc;
242  UINT16 lac;
243  UINT16 arfcn;
244  UINT8 bsic;
245  UINT32 timing_advance;
246  UINT16 rx_lev;
248 
249 typedef struct
250 {
251  UINT32 cell_id;
252  UINT16 lac;
253  UINT16 arfcn;
254  UINT8 bsic;
255  UINT16 rx_lev;
257 
258 typedef struct
259 {
260  UINT16 arfcn;
261  UINT8 bsic;
262  UINT16 rx_lev;
263  INT16 srxlev; //Cell selection Rx level
265 
266 typedef union
267 {
272 
273 typedef struct
274 {
275  UINT32 cell_id;
276  UINT16 mcc;
277  UINT16 mnc;
278  UINT16 lac;
279  UINT16 uarfcn;
280  UINT16 psc;
281  INT16 rscp;
282  INT16 ecio;
284 
285 typedef struct
286 {
287  UINT16 uarfcn;
288  UINT16 psc;
289  INT16 rscp;
290  INT16 ecio;
291  INT16 srxlev; //Cell selection Rx level
293 
294 typedef union
295 {
299 
300 typedef struct
301 {
302  M2MB_NET_LTE_HANDOVER_E lteType;
303  UINT32 cell_id;
304  UINT16 mcc;
305  UINT16 mnc;
306  UINT16 tac;
307  UINT16 earfcn;
308  UINT16 pci;
309  INT16 rsrq;
310  INT16 rsrp;
311  INT16 rx_lev;
312  INT16 srxlev; //Cell selection Rx level
314 
315 typedef struct
316 {
317  M2MB_NET_LTE_HANDOVER_E lteType;
318  UINT16 earfcn;
319  UINT16 pci;
320  INT16 rsrq;
321  INT16 rsrp;
322  INT16 rx_lev;
323  INT16 srxlev; //Cell selection Rx level
325 
326 typedef union
327 {
331 
333 {
334  M2MB_NET_CELL_TYPE_E cellType;
335  M2MB_NET_RAT_E cellRat;
336  M2MB_NET_RESP_SET_E respSet;
337  UINT16 cell_size;
338  void *cell;
339  struct M2MB_NET_CELL_NEIGHBOR_T *next;
340  BOOLEAN lte_ue_in_idle; //Radio Status
342 
343 typedef struct
344 {
345  M2MB_NET_ERR_CAUSE_E err;
346  UINT16 neighbors_size;
347  M2MB_NET_CELL_NEIGHBOR_T *neighbors;
349 
350 typedef struct
351 {
352  M2MB_NET_ERR_CAUSE_E err;
353  UINT16 mcc;
354  UINT16 mnc;
355  M2MB_NET_RAT_E rat; //Radio Access Technology
357 
359 {
360  UINT16 mcc;
361  UINT16 mnc;
362  M2MB_NET_AVAILABILITY_E networkAv;
363  M2MB_NET_RAT_E rat;
364  struct M2MB_NET_DESCRIPTION_T *next;
366 
367 typedef struct
368 {
369  M2MB_NET_ERR_CAUSE_E err;
370  UINT16 availableNetworks_size;
371  M2MB_NET_DESCRIPTION_T *availableNetworks;
373 
374 typedef struct
375 {
376  M2MB_NET_SELECTED_WIRELESS_NETWORK_E selectedWirelessNetwork;
377  M2MB_NET_LTE_CIOT_PREFERENCE_E lte_ciot_preference;
379 
380 typedef void ( *m2mb_net_ind_callback )( M2MB_NET_HANDLE h, M2MB_NET_IND_E net_event, UINT16 resp_size, void *resp_struct, void *userdata );
381 
382 /* Global functions =============================================================================*/
383 
384 /*-----------------------------------------------------------------------------------------------*/
424 /*-----------------------------------------------------------------------------------------------*/
425 M2MB_RESULT_E m2mb_net_init( M2MB_NET_HANDLE *h, m2mb_net_ind_callback callback, void *userdata );
426 
427 /*-----------------------------------------------------------------------------------------------*/
459 /*-----------------------------------------------------------------------------------------------*/
460 M2MB_RESULT_E m2mb_net_deinit( M2MB_NET_HANDLE h );
461 
462 /*-----------------------------------------------------------------------------------------------*/
512 /*-----------------------------------------------------------------------------------------------*/
513 M2MB_RESULT_E m2mb_net_conf( M2MB_NET_HANDLE h, UINT8 argc, ... );
514 
515 /*-----------------------------------------------------------------------------------------------*/
574 /*-----------------------------------------------------------------------------------------------*/
575 M2MB_RESULT_E m2mb_net_enable_ind( M2MB_NET_HANDLE h, M2MB_NET_IND_E ind, UINT8 enable );
576 
577 /*-----------------------------------------------------------------------------------------------*/
639 M2MB_RESULT_E m2mb_net_get_signal_info( M2MB_NET_HANDLE h );
640 
641 /*-----------------------------------------------------------------------------------------------*/
693 M2MB_RESULT_E m2mb_net_get_ber( M2MB_NET_HANDLE h );
694 
695 /*-----------------------------------------------------------------------------------------------*/
718 
719 /*-----------------------------------------------------------------------------------------------*/
771 M2MB_RESULT_E m2mb_net_get_current_operator_info( M2MB_NET_HANDLE h );
772 
773 /*-----------------------------------------------------------------------------------------------*/
890 M2MB_RESULT_E m2mb_net_get_current_cell_list( M2MB_NET_HANDLE h );
891 
892 /*-----------------------------------------------------------------------------------------------*/
951 M2MB_RESULT_E m2mb_net_get_available_nw_list( M2MB_NET_HANDLE h );
952 
953 /*-----------------------------------------------------------------------------------------------*/
1005 M2MB_RESULT_E m2mb_net_get_reg_status_info( M2MB_NET_HANDLE h );
1006 
1007 /*-----------------------------------------------------------------------------------------------*/
1061 M2MB_RESULT_E m2mb_net_get_edrx_info( M2MB_NET_HANDLE h, M2MB_NET_ACC_TECH_TYPE_E acc_tech );
1062 
1063 /*-----------------------------------------------------------------------------------------------*/
1123 M2MB_RESULT_E m2mb_net_set_edrx_info( M2MB_NET_HANDLE h, M2MB_NET_ACC_TECH_TYPE_E acc_tech, UINT8 edrx, UINT8 enabled );
1124 
1125 #endif
M2MB_NET_CELL_GERAN_SUBSET2_T
Definition: m2mb_net.h:258
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:326
M2MB_NET_GET_CURRENT_OPERATOR_INFO_RESP_T
Definition: m2mb_net.h:350
M2MB_NET_REG_STATUS_T
Definition: m2mb_net.h:184
M2MB_NET_GET_SIGNAL_INFO_RESP_T
Definition: m2mb_net.h:214
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:315
M2MB_NET_SIGNAL_INFO_EUTRAN_T
Definition: m2mb_net.h:207
M2MB_NET_CELL_UTRAN_U
Definition: m2mb_net.h:294
M2MB_NET_GENERIC_RESP_T
Definition: m2mb_net.h:178
M2MB_NET_SELECTED_WIRELESS_NETWORK_RESP_T
Definition: m2mb_net.h:374
M2MB_NET_GET_EDRX_INFO_RESP_T
Definition: m2mb_net.h:194
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:249
M2M_T_NETWORK_CELL_NEIGHBOR_T
Definition: m2mb_net.h:230
M2MB_NET_GET_CURRENT_CELL_LIST_RESP_T
Definition: m2mb_net.h:343
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:237
M2MB_NET_CELL_NEIGHBOR_T
Definition: m2mb_net.h:332
M2MB_NET_CELL_UTRAN_SUBSET1_T
Definition: m2mb_net.h:285
M2MB_NET_CELL_UTRAN_FULL_T
Definition: m2mb_net.h:273
M2MB_NET_DESCRIPTION_T
Definition: m2mb_net.h:358
M2MB_NET_CELL_EUTRAN_FULL_T
Definition: m2mb_net.h:300
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:367
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:223
M2MB_NET_ERR_CAUSE_T
Definition: m2mb_net.h:173
M2MB_NET_SIGNAL_INFO_UTRAN_T
Definition: m2mb_net.h:202
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:266
m2mb_net_deinit
M2MB_RESULT_E m2mb_net_deinit(M2MB_NET_HANDLE h)
m2mb_net_deinit deinitializes NET service for current client.