All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
le_mrc.h
Go to the documentation of this file.
1 
8 #ifndef LEGATO_MRC_INCLUDE_GUARD
9 #define LEGATO_MRC_INCLUDE_GUARD
10 
11 #include "legato.h"
12 
13 //--------------------------------------------------------------------------------------------------
14 // Symbol and Enum definitions.
15 //--------------------------------------------------------------------------------------------------
16 
17 // Mobile Country Code length
18 #define LE_MRC_MCC_LEN 3
19 #define LE_MRC_MCC_BYTES (LE_MRC_MCC_LEN+1)
20 
21 // Mobile network Code length
22 #define LE_MRC_MNC_LEN 3
23 #define LE_MRC_MNC_BYTES (LE_MRC_MNC_LEN+1)
24 
25 //--------------------------------------------------------------------------------------------------
30 //--------------------------------------------------------------------------------------------------
31 #define LE_MRC_BITMASK_RAT_CDMA 0x01
32 #define LE_MRC_BITMASK_RAT_GSM 0x02
33 #define LE_MRC_BITMASK_RAT_UMTS 0x04
34 #define LE_MRC_BITMASK_RAT_LTE 0x08
35 
36 
37 //--------------------------------------------------------------------------------------------------
42 //--------------------------------------------------------------------------------------------------
43 #define LE_MRC_BITMASK_BAND_CLASS_0_A_SYSTEM 0x0000000000000001
44 #define LE_MRC_BITMASK_BAND_CLASS_0_B_SYSTEM 0x0000000000000002
45 #define LE_MRC_BITMASK_BAND_CLASS_1_ALL_BLOCKS 0x0000000000000004
46 #define LE_MRC_BITMASK_BAND_CLASS_2_PLACEHOLDER 0x0000000000000008
47 #define LE_MRC_BITMASK_BAND_CLASS_3_A_SYSTEM 0x0000000000000010
48 #define LE_MRC_BITMASK_BAND_CLASS_4_ALL_BLOCKS 0x0000000000000020
49 #define LE_MRC_BITMASK_BAND_CLASS_5_ALL_BLOCKS 0x0000000000000040
50 #define LE_MRC_BITMASK_BAND_CLASS_6 0x0000000000000080
51 #define LE_MRC_BITMASK_BAND_CLASS_7 0x0000000000000100
52 #define LE_MRC_BITMASK_BAND_CLASS_8 0x0000000000000200
53 #define LE_MRC_BITMASK_BAND_CLASS_9 0x0000000000000400
54 #define LE_MRC_BITMASK_BAND_CLASS_10 0x0000000000000800
55 #define LE_MRC_BITMASK_BAND_CLASS_11 0x0000000000001000
56 #define LE_MRC_BITMASK_BAND_CLASS_12 0x0000000000002000
57 #define LE_MRC_BITMASK_BAND_CLASS_14 0x0000000000004000
58 #define LE_MRC_BITMASK_BAND_CLASS_15 0x0000000000008000
59 #define LE_MRC_BITMASK_BAND_CLASS_16 0x0000000000010000
60 #define LE_MRC_BITMASK_BAND_CLASS_17 0x0000000000020000
61 #define LE_MRC_BITMASK_BAND_CLASS_18 0x0000000000040000
62 #define LE_MRC_BITMASK_BAND_CLASS_19 0x0000000000080000
63 #define LE_MRC_BITMASK_BAND_GSM_DCS_1800 0x0000000000100000
64 #define LE_MRC_BITMASK_BAND_EGSM_900 0x0000000000200000
65 #define LE_MRC_BITMASK_BAND_PRI_GSM_900 0x0000000000400000
66 #define LE_MRC_BITMASK_BAND_GSM_450 0x0000000000800000
67 #define LE_MRC_BITMASK_BAND_GSM_480 0x0000000001000000
68 #define LE_MRC_BITMASK_BAND_GSM_750 0x0000000002000000
69 #define LE_MRC_BITMASK_BAND_GSM_850 0x0000000004000000
70 #define LE_MRC_BITMASK_BAND_GSMR_900 0x0000000008000000
71 #define LE_MRC_BITMASK_BAND_GSM_PCS_1900 0x0000000010000000
72 #define LE_MRC_BITMASK_BAND_WCDMA_EU_J_CH_IMT_2100 0x0000000020000000
73 #define LE_MRC_BITMASK_BAND_WCDMA_US_PCS_1900 0x0000000040000000
74 #define LE_MRC_BITMASK_BAND_WCDMA_EU_CH_DCS_1800 0x0000000080000000
75 #define LE_MRC_BITMASK_BAND_WCDMA_US_1700 0x0000000100000000
76 #define LE_MRC_BITMASK_BAND_WCDMA_US_850 0x0000000200000000
77 #define LE_MRC_BITMASK_BAND_WCDMA_J_800 0x0000000400000000
78 #define LE_MRC_BITMASK_BAND_WCDMA_EU_2600 0x0000000800000000
79 #define LE_MRC_BITMASK_BAND_WCDMA_EU_J_900 0x0000001000000000
80 #define LE_MRC_BITMASK_BAND_WCDMA_J_1700 0x0000002000000000
81 
82 //--------------------------------------------------------------------------------------------------
87 //--------------------------------------------------------------------------------------------------
88 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_1 0x0000000000000001
89 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_2 0x0000000000000002
90 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_3 0x0000000000000004
91 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_4 0x0000000000000008
92 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_5 0x0000000000000010
93 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_6 0x0000000000000020
94 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_7 0x0000000000000040
95 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_8 0x0000000000000080
96 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_9 0x0000000000000100
97 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_10 0x0000000000000200
98 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_11 0x0000000000000400
99 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_12 0x0000000000000800
100 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_13 0x0000000000001000
101 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_14 0x0000000000002000
102 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_17 0x0000000000004000
103 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_18 0x0000000000008000
104 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_19 0x0000000000010000
105 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_20 0x0000000000020000
106 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_21 0x0000000000040000
107 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_24 0x0000000000080000
108 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_25 0x0000000000100000
109 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_33 0x0000000000200000
110 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_34 0x0000000000400000
111 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_35 0x0000000000800000
112 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_36 0x0000000001000000
113 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_37 0x0000000002000000
114 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_38 0x0000000004000000
115 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_39 0x0000000008000000
116 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_40 0x0000000010000000
117 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_41 0x0000000020000000
118 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_42 0x0000000040000000
119 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_43 0x0000000080000000
120 
121 //--------------------------------------------------------------------------------------------------
126 //--------------------------------------------------------------------------------------------------
127 #define LE_MRC_BITMASK_TDSCDMA_BAND_A 0x01
128 #define LE_MRC_BITMASK_TDSCDMA_BAND_B 0x02
129 #define LE_MRC_BITMASK_TDSCDMA_BAND_C 0x04
130 #define LE_MRC_BITMASK_TDSCDMA_BAND_D 0x08
131 #define LE_MRC_BITMASK_TDSCDMA_BAND_E 0x10
132 #define LE_MRC_BITMASK_TDSCDMA_BAND_F 0x20
133 
134 
135 //--------------------------------------------------------------------------------------------------
140 //--------------------------------------------------------------------------------------------------
141 typedef enum
142 {
149 }
151 
152 //--------------------------------------------------------------------------------------------------
157 //--------------------------------------------------------------------------------------------------
158 typedef enum
159 {
161  LE_MRC_RAT_GSM = 1<<0,
163  LE_MRC_RAT_LTE = 1<<2,
169 }
171 
172 //--------------------------------------------------------------------------------------------------
173 // APIs.
174 //--------------------------------------------------------------------------------------------------
175 
176 //--------------------------------------------------------------------------------------------------
180 //--------------------------------------------------------------------------------------------------
181 typedef struct le_mrc_ScanInformation* le_mrc_ScanInformationRef_t;
182 
183 //--------------------------------------------------------------------------------------------------
187 //--------------------------------------------------------------------------------------------------
188 typedef struct le_mrc_ScanInformationList* le_mrc_ScanInformationListRef_t;
189 
190 //--------------------------------------------------------------------------------------------------
194 //--------------------------------------------------------------------------------------------------
195 typedef struct le_mrc_CellInfo* le_mrc_CellInfoRef_t;
196 
197 //--------------------------------------------------------------------------------------------------
201 //--------------------------------------------------------------------------------------------------
202 typedef struct le_mrc_NeighborCells* le_mrc_NeighborCellsRef_t;
203 
204 //--------------------------------------------------------------------------------------------------
208 //--------------------------------------------------------------------------------------------------
209 typedef struct le_mrc_NetRegStateHandler* le_mrc_NetRegStateHandlerRef_t;
210 
211 //--------------------------------------------------------------------------------------------------
215 //--------------------------------------------------------------------------------------------------
216 typedef struct le_mrc_RatChangeHandler* le_mrc_RatChangeHandlerRef_t;
217 
218 //--------------------------------------------------------------------------------------------------
225 //--------------------------------------------------------------------------------------------------
226 typedef void(*le_mrc_NetRegStateHandlerFunc_t)
227 (
228  le_mrc_NetRegState_t state,
229  void* contextPtr
230 );
231 
232 //--------------------------------------------------------------------------------------------------
239 //--------------------------------------------------------------------------------------------------
240 typedef void(*le_mrc_RatChangeHandlerFunc_t)
241 (
242  le_mrc_Rat_t rat,
243  void* contextPtr
244 );
245 
246 //--------------------------------------------------------------------------------------------------
254 //--------------------------------------------------------------------------------------------------
256 (
257  le_mrc_NetRegStateHandlerFunc_t handlerFuncPtr,
258  void* contextPtr
259 );
260 
261 //--------------------------------------------------------------------------------------------------
265 //--------------------------------------------------------------------------------------------------
267 (
269 );
270 
271 //--------------------------------------------------------------------------------------------------
279 //--------------------------------------------------------------------------------------------------
281 (
282  le_mrc_RatChangeHandlerFunc_t handlerFuncPtr,
283  void* contextPtr
284 );
285 
286 //--------------------------------------------------------------------------------------------------
290 //--------------------------------------------------------------------------------------------------
292 (
293  le_mrc_RatChangeHandlerRef_t handlerRef
294 );
295 
296 //--------------------------------------------------------------------------------------------------
303 //--------------------------------------------------------------------------------------------------
305 (
306  le_onoff_t power
307 );
308 
309 //--------------------------------------------------------------------------------------------------
319 //--------------------------------------------------------------------------------------------------
321 (
322  le_onoff_t* powerPtr
323 );
324 
325 //--------------------------------------------------------------------------------------------------
335 //--------------------------------------------------------------------------------------------------
337 (
338  le_mrc_NetRegState_t* statePtr
339 );
340 
341 //--------------------------------------------------------------------------------------------------
351 //--------------------------------------------------------------------------------------------------
353 (
354  uint32_t* qualityPtr
355 );
357 
358 //--------------------------------------------------------------------------------------------------
370 //--------------------------------------------------------------------------------------------------
372 (
373  char *nameStr,
374  size_t nameStrSize
375 );
376 
377 //--------------------------------------------------------------------------------------------------
388 //--------------------------------------------------------------------------------------------------
390 (
391  const char *mccPtr,
392  const char *mncPtr
393 );
394 
395 //--------------------------------------------------------------------------------------------------
402 //--------------------------------------------------------------------------------------------------
404 (
405  le_mrc_Rat_t ratMask
406 );
407 
408 //--------------------------------------------------------------------------------------------------
419 //--------------------------------------------------------------------------------------------------
421 (
422  le_mrc_ScanInformationListRef_t scanInformationListRef
423 );
424 
425 //--------------------------------------------------------------------------------------------------
436 //--------------------------------------------------------------------------------------------------
438 (
439  le_mrc_ScanInformationListRef_t scanInformationListRef
440 );
441 
442 //--------------------------------------------------------------------------------------------------
451 //--------------------------------------------------------------------------------------------------
453 (
454  le_mrc_ScanInformationListRef_t scanInformationListRef
455 );
456 
457 //--------------------------------------------------------------------------------------------------
470 //--------------------------------------------------------------------------------------------------
472 (
473  le_mrc_ScanInformationRef_t scanInformationRef,
474  char *mccPtr,
475  size_t mccPtrSize,
476  char *mncPtr,
477  size_t mncPtrSize
478 );
479 
480 //--------------------------------------------------------------------------------------------------
493 //--------------------------------------------------------------------------------------------------
495 (
496  le_mrc_ScanInformationRef_t scanInformationRef,
497  char *namePtr,
498  size_t nameSize
499 );
500 
501 //--------------------------------------------------------------------------------------------------
512 //--------------------------------------------------------------------------------------------------
514 (
515  le_mrc_ScanInformationRef_t scanInformationRef,
516  le_mrc_Rat_t rat
517 );
518 
519 //--------------------------------------------------------------------------------------------------
530 //--------------------------------------------------------------------------------------------------
532 (
533  le_mrc_ScanInformationRef_t scanInformationRef
534 );
535 
536 //--------------------------------------------------------------------------------------------------
547 //--------------------------------------------------------------------------------------------------
549 (
550  le_mrc_ScanInformationRef_t scanInformationRef
551 );
552 
553 //--------------------------------------------------------------------------------------------------
564 //--------------------------------------------------------------------------------------------------
566 (
567  le_mrc_ScanInformationRef_t scanInformationRef
568 );
569 
570 //--------------------------------------------------------------------------------------------------
581 //--------------------------------------------------------------------------------------------------
583 (
584  le_mrc_ScanInformationRef_t scanInformationRef
585 );
586 
587 //--------------------------------------------------------------------------------------------------
597 //--------------------------------------------------------------------------------------------------
599 (
600  le_mrc_Rat_t* ratPtr
601 );
602 
603 //--------------------------------------------------------------------------------------------------
611 //--------------------------------------------------------------------------------------------------
613 (
614  void
615 );
616 
617 //--------------------------------------------------------------------------------------------------
625 //--------------------------------------------------------------------------------------------------
627 (
628  le_mrc_NeighborCellsRef_t ngbrCellsRef
629 );
630 
631 //--------------------------------------------------------------------------------------------------
642 //--------------------------------------------------------------------------------------------------
644 (
645  le_mrc_NeighborCellsRef_t ngbrCellsRef
646 );
647 
648 //--------------------------------------------------------------------------------------------------
659 //--------------------------------------------------------------------------------------------------
661 (
662  le_mrc_NeighborCellsRef_t ngbrCellsRef
663 );
664 
665 //--------------------------------------------------------------------------------------------------
674 //--------------------------------------------------------------------------------------------------
676 (
677  le_mrc_CellInfoRef_t ngbrCellInfoRef
678 );
679 
680 //--------------------------------------------------------------------------------------------------
689 //--------------------------------------------------------------------------------------------------
691 (
692  le_mrc_CellInfoRef_t ngbrCellInfoRef
693 );
694 
695 //--------------------------------------------------------------------------------------------------
704 //--------------------------------------------------------------------------------------------------
706 (
707  le_mrc_CellInfoRef_t ngbrCellInfoRef
708 );
709 
710 
711 #endif // LEGATO_MRC_INCLUDE_GUARD
bool le_mrc_IsCellularNetworkForbidden(le_mrc_ScanInformationRef_t scanInformationRef)
GSM network.
Definition: le_mrc.h:161
void le_mrc_RemoveRatChangeHandler(le_mrc_RatChangeHandlerRef_t handlerRef)
le_result_t le_mrc_GetSignalQual(uint32_t *qualityPtr)
le_mrc_NetRegState_t
Definition: le_mrc.h:141
bool le_mrc_IsCellularNetworkInUse(le_mrc_ScanInformationRef_t scanInformationRef)
le_result_t le_mrc_SetRadioPower(le_onoff_t power)
le_result_t
Definition: le_basics.h:34
uint32_t le_mrc_GetNeighborCellId(le_mrc_CellInfoRef_t ngbrCellInfoRef)
le_result_t le_mrc_GetRadioAccessTechInUse(le_mrc_Rat_t *ratPtr)
le_result_t le_mrc_GetHomeNetworkName(char *nameStr, size_t nameStrSize)
le_mrc_ScanInformationRef_t le_mrc_GetFirstCellularNetworkScan(le_mrc_ScanInformationListRef_t scanInformationListRef)
struct le_mrc_NeighborCells * le_mrc_NeighborCellsRef_t
Definition: le_mrc.h:202
bool le_mrc_IsCellularNetworkAvailable(le_mrc_ScanInformationRef_t scanInformationRef)
void le_mrc_DeleteCellularNetworkScan(le_mrc_ScanInformationListRef_t scanInformationListRef)
bool le_mrc_IsCellularNetworkRatAvailable(le_mrc_ScanInformationRef_t scanInformationRef, le_mrc_Rat_t rat)
le_result_t le_mrc_GetCellularNetworkName(le_mrc_ScanInformationRef_t scanInformationRef, char *namePtr, size_t nameSize)
le_result_t le_mrc_GetCellularNetworkMccMnc(le_mrc_ScanInformationRef_t scanInformationRef, char *mccPtr, size_t mccPtrSize, char *mncPtr, size_t mncPtrSize)
Registration was denied, usually because of invalid access credentials.
Definition: le_mrc.h:146
le_result_t le_mrc_GetRadioPower(le_onoff_t *powerPtr)
le_result_t le_mrc_GetNetRegState(le_mrc_NetRegState_t *statePtr)
All technology.
Definition: le_mrc.h:165
Unknown state.
Definition: le_mrc.h:148
struct le_mrc_ScanInformation * le_mrc_ScanInformationRef_t
Definition: le_mrc.h:181
Not registered but currently searching for a new operator.
Definition: le_mrc.h:145
Not registered and not currently searching for new operator.
Definition: le_mrc.h:143
le_result_t le_mrc_RegisterCellularNetwork(const char *mccPtr, const char *mncPtr)
struct le_mrc_RatChangeHandler * le_mrc_RatChangeHandlerRef_t
Definition: le_mrc.h:216
Registered, home network.
Definition: le_mrc.h:144
struct le_mrc_NetRegStateHandler * le_mrc_NetRegStateHandlerRef_t
Definition: le_mrc.h:209
int32_t le_mrc_GetNeighborCellRxLevel(le_mrc_CellInfoRef_t ngbrCellInfoRef)
bool le_mrc_IsCellularNetworkHome(le_mrc_ScanInformationRef_t scanInformationRef)
le_mrc_CellInfoRef_t le_mrc_GetNextNeighborCellInfo(le_mrc_NeighborCellsRef_t ngbrCellsRef)
le_mrc_CellInfoRef_t le_mrc_GetFirstNeighborCellInfo(le_mrc_NeighborCellsRef_t ngbrCellsRef)
CDMA network.
Definition: le_mrc.h:164
void(* le_mrc_RatChangeHandlerFunc_t)(le_mrc_Rat_t rat, void *contextPtr)
Definition: le_mrc.h:241
void(* le_mrc_NetRegStateHandlerFunc_t)(le_mrc_NetRegState_t state, void *contextPtr)
Definition: le_mrc.h:227
le_mrc_RatChangeHandlerRef_t le_mrc_AddRatChangeHandler(le_mrc_RatChangeHandlerFunc_t handlerFuncPtr, void *contextPtr)
void le_mrc_DeleteNeighborCellsInfo(le_mrc_NeighborCellsRef_t ngbrCellsRef)
le_mrc_ScanInformationRef_t le_mrc_GetNextCellularNetworkScan(le_mrc_ScanInformationListRef_t scanInformationListRef)
void le_mrc_RemoveNetRegStateHandler(le_mrc_NetRegStateHandlerRef_t handlerRef)
le_mrc_NeighborCellsRef_t le_mrc_GetNeighborCellsInfo(void)
le_mrc_ScanInformationListRef_t le_mrc_PerformCellularNetworkScan(le_mrc_Rat_t ratMask)
LTE network.
Definition: le_mrc.h:163
Unknown.
Definition: le_mrc.h:160
le_mrc_Rat_t
Definition: le_mrc.h:158
UMTS network.
Definition: le_mrc.h:162
struct le_mrc_CellInfo * le_mrc_CellInfoRef_t
Definition: le_mrc.h:195
le_mrc_NetRegStateHandlerRef_t le_mrc_AddNetRegStateHandler(le_mrc_NetRegStateHandlerFunc_t handlerFuncPtr, void *contextPtr)
struct le_mrc_ScanInformationList * le_mrc_ScanInformationListRef_t
Definition: le_mrc.h:188
Registered to a roaming network.
Definition: le_mrc.h:147
uint32_t le_mrc_GetNeighborCellLocAreaCode(le_mrc_CellInfoRef_t ngbrCellInfoRef)
le_onoff_t
Definition: le_basics.h:64