le_mrc_interface.h

Go to the documentation of this file.
1 
2 
3 /*
4  * ====================== WARNING ======================
5  *
6  * THE CONTENTS OF THIS FILE HAVE BEEN AUTO-GENERATED.
7  * DO NOT MODIFY IN ANY WAY.
8  *
9  * ====================== WARNING ======================
10  */
11 
12 /**
13  * @page c_mrc Modem Radio Control
14  *
15  * @ref le_mrc_interface.h "API Reference"
16  *
17  * <HR>
18  *
19  * The Modem Radio Control (MRC) APIs is used to control cellular network environments.
20  *
21  * It's important for many M2M apps to know details about cellular network environments (like
22  * network registration and signal quality).
23  * It allows you to limit some M2M services based on the reliability of the network environment, and
24  * provides information to control power consumption (power on or shutdown the radio module).
25  *
26  * @section le_mrc_binding IPC interfaces binding
27  *
28  * All the functions of this API are provided by the @b modemService service.
29  *
30  * Here's a code sample binding to modem services:
31  * @verbatim
32  bindings:
33  {
34  clientExe.clientComponent.le_mrc -> modemService.le_mrc
35  }
36  @endverbatim
37  *
38  * @section le_mrc_power Radio Power Management
39  * le_mrc_SetRadioPower() API allows the application to power up or shutdown the radio module.
40  *
41  * le_mrc_GetRadioPower() API displays radio module power state.
42  *
43  * A sample code can be seen in the following page:
44  * - @subpage c_mrcRadioPower
45  *
46  * @section le_mrc_configuration Radio Configuration preferences
47  *
48  * The following functions let you configure and retrieve the radio configuration preferences:
49  * le_mrc_SetAutomaticRegisterMode(), le_mrc_SetManualRegisterMode() and le_mrc_GetRegisterMode()
50  * let you set/get the selected Scan mode.
51  *
52  * le_mrc_SetBandPreferences(), le_mrc_GetBandPreferences() let you set/get the 2G/3G band
53  * preferences by using a bit mask built with @c le_mrc_BandBitMask_t
54  *
55  * The 2G/3G band preferences can be:
56  * - Band-Class-0-A-System
57  * - Band-Class-0-B-System
58  * - Band-Class-1-All-Blocks
59  * - Band-Class-2-Placeholder
60  * - Band-Class-3-A-System
61  * - Band-Class-4-All-Blocks
62  * - Band-Class-5-All-Blocks
63  * - Band-Class-6
64  * - Band-Class-7
65  * - Band-Class-8
66  * - Band-Class-9
67  * - Band-Class-10
68  * - Band-Class-11
69  * - Band-Class-12
70  * - Band-Class-13
71  * - Band-Class-14
72  * - Band-Class-15
73  * - Band-Class-16
74  * - Band-Class-17
75  * - Band-Class-18
76  * - Band-Class-19
77  * - GSM-DCS-1800
78  * - E-GSM-900 (for Extended GSM 900 band)
79  * - Primary-GSM-900
80  * - GSM-450
81  * - GSM-480
82  * - GSM-750
83  * - GSM-850
84  * - GSMR-900 (for GSM Railways GSM 900 band)
85  * - GSM-PCS-1900
86  * - WCDMA-EU-J-CH-IMT-2100 (for WCDMA Europe, Japan, and China IMT 2100 band)
87  * - WCDMA-US-PCS-1900 (for WCDMA U.S. PCS 1900 band)
88  * - WCDMA-EU-CH-DCS-1800 (for WCDMA Europe and China DCS 1800 band)
89  * - WCDMA-US-1700 (for WCDMA U.S. 1700 band)
90  * - WCDMA-US-850 (for WCDMA U.S. 850 band)
91  * - WCDMA-J-800 (for WCDMA Japan 800 band)
92  * - WCDMA-EU-2600 (for WCDMA Europe 2600 band)
93  * - WCDMA-EU-J-900 (for WCDMA Europe and Japan 900 band)
94  * - WCDMA-J-1700 (for WCDMA Japan 1700 band)
95  *
96  * le_mrc_SetLteBandPreferences(), le_mrc_GetLteBandPreferences() let you set/get the LTE band
97  * preferences by using a bit mask built with @c le_mrc_LteBandBitMask_t.
98  *
99  * The LTE band preferences can be 0 to 43 except 15, 16, 22, 23, and 26 to 32.
100  *
101  * le_mrc_SetTdScdmaBandPreferences(), le_mrc_GetTdScdmaBandPreferences() let you set/get the
102  * TD-SCDMA band preferences by using a bit mask built with @c le_mrc_TdScdmaBandBitMask_t
103  *
104  * The TD-SCDMA band preferences can be 'A' to 'F'
105  *
106  * @warning Ensure to check the supported preferences for your specific platform.
107  *
108  * le_mrc_AddPreferredOperator() , le_mrc_RemovePreferredOperator() to add/remove a preferred
109  * operator by specifying the MCC/MNC and the Radio Access Technology.
110  *
111  * le_mrc_GetPreferredOperatorsList(), le_mrc_GetFirstPreferredOperator(),
112  * le_mrc_GetNextPreferredOperator(), le_mrc_DeletePreferredOperatorsList(),
113  * le_mrc_GetPreferredOperatorDetails() let you retrieve a list of the selected preferred
114  * operators and get their details.
115  *
116  * A sample code can be seen in the following page:
117  * - @subpage c_mrcRadioConfigurationPreferences
118  *
119  * @section le_mrc_capabilities Radio Capabilities
120  *
121  * le_mrc_GetBandCapabilities() let you get the 2G/3G band capabilities by retrieving a bit mask
122  * built with @c le_mrc_BandBitMask_t
123  *
124  * le_mrc_GetLteBandCapabilities() let you get the LTE band capabilities by retrieving a bit mask
125  * built with @c le_mrc_LteBandBitMask_t
126  *
127  * le_mrc_GetTdScdmaBandCapabilities() let you get the TD-SCDMA band capabilities by retrieving
128  * a bit mask built with @c le_mrc_TdScdmaBandBitMask_t
129  *
130  * A sample code can be seen in the following page:
131  * - @subpage c_mrcBandCapabilities
132  *
133  * @section le_mrc_rat Radio Access Technology (RAT)
134  * le_mrc_GetRadioAccessTechInUse() API retrieves the current active Radio Access Technology.
135  *
136  * The application can register a handler function to retrieve the Radio Access Technology each time
137  * the RAT changes.
138  *
139  * le_mrc_AddRatChangeHandler() API installs a RAT change handler.
140  *
141  * le_mrc_RemoveRatChangeHandler() API uninstalls the handler function.
142  *
143  * le_mrc_SetRatPreferences(), le_mrc_GetRatPreferences() let you set/get the Radio Access
144  * Technology preferences by using a bit mask built with @c le_mrc_RatBitMask_t.
145  *
146  * The Radio Access Technology preferences can be:
147  * - CDMA (CDMA2000-1X + CDMA2000-HRPD)
148  * - GSM
149  * - UMTS (UMTS + TD-SCDMA)
150  * - LTE
151  *
152  * @note LE_MRC_BITMASK_RAT_ALL value can be used to select the RAT in automatic mode.
153  *
154  * A sample code can be seen in the following page:
155  * - @subpage c_mrcRAT
156  *
157  * @section le_mrc_registration Network Registration
158  * le_mrc_GetNetRegState() API retrieves the radio module network registration status.
159  *
160  * The application can register a handler function to retrieve the registration status each time the
161  * registration state changes.
162  *
163  * le_mrc_AddNetRegStateEventHandler() API installs a registration state handler.
164  *
165  * le_mrc_RemoveNetRegStateEventHandler() API uninstalls the handler function.
166  * @note If only one handler is registered, the le_mrc_RemoveNetRegStateHandler() API
167  * resets the registration mode to its original value before any handler functions were added.
168  *
169  * le_mrc_SetManualRegisterMode() API registers on a cellular network.
170  *
171  * Call le_mrc_SetManualRegisterModeAsync() function to set the manual registration mode
172  * asynchronously. The function is not blocking. The response will be returned with the
173  * @c le_mrc_ManualSelectionHandlerFunc_t handler function.
174  *
175  * When the network registration fails, the platform specific network registration error code can
176  * be known by using le_mrc_GetPlatformSpecificRegistrationErrorCode() (refer to your platform
177  * documentation for further details).
178  *
179  * A sample code can be seen in the following page:
180  * - @subpage c_mrcNetworkRegistration
181  *
182  * @section le_mrc_service Packet services state
183  *
184  * le_mrc_GetPacketSwitchedState() API retrieves the current Packet Switched state
185  * @ref le_mrc_NetRegState_t.
186  *
187  * The Packet Switched services state can be:
188  * - NONE
189  * - HOME
190  * - ROAMING
191  *
192  * The application can register a handler function to retrieve the Packet
193  * Switched state each time the service state changes.
194  *
195  * le_mrc_AddPacketSwitchedChangeHandler() API installs a Packet Switched state handler.
196  *
197  * le_mrc_RemovePacketSwitchedChangeHandler() API uninstalls the handler function.
198  *
199  * A sample code can be seen in the following page:
200  * - @subpage c_mrcGetService
201  *
202  * @section le_mrc_signal Signal Quality
203  *
204  * le_mrc_GetSignalQual() retrieves the received signal strength details.
205  *
206  * You must call le_mrc_MeasureSignalMetrics() to measure the signal metrics of the serving cell
207  * (aka the 'serving' cell). It returns a reference of le_mrc_MetricsRef_t type.
208  *
209  * When the signal metrics are no longer needed, you must call le_mrc_DeleteSignalMetrics() to free
210  * all allocated ressources associated with the Metrics object.
211  *
212  * le_mrc_GetRatOfSignalMetrics() returns the Radio Access Technology of the signal measures.
213  *
214  * le_mrc_GetGsmSignalMetrics() the signal strength in dBm and the bit error rate measured on GSM
215  * network.
216  *
217  * le_mrc_GetUmtsSignalMetrics() returns the signal metrics measured on UMTS or TD-SCDMA networks.
218  *
219  * le_mrc_GetLteSignalMetrics() returns the signal metrics measured on LTE network.
220  *
221  * le_mrc_GetCdmaSignalMetrics() returns the signal metrics measured on CDMA network.
222  *
223  * The application can register a handler function to get notifications when the signal strength
224  * changes of a certain threshold value.
225  *
226  * le_mrc_AddSignalStrengthChangeHandler() API installs a signal strength change handler.
227  * The RAT, the lower-range and the upper-range thresholds must be passed as input parameters. These
228  * parameters are updated each time the function is called, the previous thresholds are replaced by
229  * the new ones if the function is called with the same RAT. le_mrc_SetSignalStrengthIndThresholds()
230  * API changes or sets new thresholds.
231  *
232  * @warning The threshold values must be in the allowed platform range and the RAT must be valid,
233  * else, it's a fatal error, le_mrc_AddSignalStrengthChangeHandler API won't return.
234  *
235  * The event is notified when we cross the range limits in both direction.
236  *
237  * le_mrc_RemoveSignalStrengthChangeHandler() API uninstalls the handler function.
238  *
239  * A sample code can be seen in the following page:
240  * - @subpage c_mrcQuality
241  *
242  * @section le_mrc_location Serving cell's location information
243  *
244  * le_mrc_GetServingCellId() retrieves the the serving Cell Identifier.
245  *
246  * le_mrc_GetServingCellLocAreaCode() retrieves the Location Area Code of the serving cell.
247  *
248  * le_mrc_GetServingCellLteTracAreaCode() retrieves the the Tracking Area Code of the serving cell
249  * (LTE only).
250  *
251  * A sample code can be seen in the following page:
252  * - @subpage c_mrcLocationinformation
253  *
254  * @section le_mrc_network_information Current Network Information
255  * le_mrc_GetCurrentNetworkName() retrieves the Current Network Name.
256  * le_mrc_GetCurrentNetworkMccMnc() retrieves the Current Network PLMN information.
257  *
258  * A sample code can be seen in the following page:
259  * - @subpage c_mrcGetCurrentNetwork
260  *
261  * @section le_mrc_networkScan Network Scan
262  *
263  * Call le_mrc_PerformCellularNetworkScan() to fill a list of all network in sight.
264  * You can go through all Scan Information by calling le_mrc_GetFirstCellularNetworkScan() and
265  * le_mrc_GetNextCellularNetworkScan().
266  *
267  * Call le_mrc_PerformCellularNetworkScanAsync() to start a network scan asynchronously. The
268  * function is not blocking. The scan list reference will be returned with the handler function
269  * response (@c le_mrc_CellularNetworkScanHandlerFunc_t).
270  *
271  * For each Scan Information, you can call:
272  *
273  * - le_mrc_GetCellularNetworkMccMnc() to have the operator code.
274  * - le_mrc_GetCellularNetworkName() to get the operator name.
275  * - le_mrc_GetCellularNetworkRat() to get the radio access technology.
276  * - le_mrc_IsCellularNetworkInUse() to check if this is currently in use by the network.
277  * - le_mrc_IsCellularNetworkAvailable() to check if this is available.
278  * - le_mrc_IsCellularNetworkHome() to check if this is in home status.
279  * - le_mrc_IsCellularNetworkForbidden() to check if this is forbidden by the network.
280  *
281  * le_mrc_DeleteCellularNetworkScan() should be called when you do not need the list anymore.
282  *
283  * A sample code can be seen in the following page:
284  * - @subpage c_mrcNetworkScan
285  *
286  * @section le_mrc_ngbr Neighboring Cells Information
287  *
288  * @warning The following functions do not apply to CDMA network.
289  *
290  * You must call le_mrc_GetNeighborCellsInfo() to retrieve the neighboring cells
291  * information. It returns a reference of le_mrc_NeighborCellsRef_t type.
292  *
293  * When the neighboring cells information is no longer needed, you must call
294  * le_mrc_DeleteNeighborCellsInfo() to free all allocated resources associated with the
295  * object.
296  *
297  * Then, you can use the following function to get the information:
298  * - le_mrc_GetFirstNeighborCellInfo() and le_mrc_GetFirstNeighborCellInfo() allow to go among
299  * the single cell information retrieved with le_mrc_GetNeighborCellsInfo(). These two functions
300  * return a reference of le_mrc_CellInfoRef_t type.
301  * - le_mrc_GetNeighborCellId() gets the identifier of the cell specified with the
302  * le_mrc_CellInfoRef_t parameter (can be called for any kind of RAT).
303  * - le_mrc_GetNeighborCellLocAreaCode() gets the location area code of the cell specified with the
304  * le_mrc_CellInfoRef_t parameter (can be called for any kind of RAT). UINT16_MAX value is
305  * returned if the value is not available.
306  * - le_mrc_GetNeighborCellRxLevel() gets the signal strength (in dBm) of the cell specified with
307  * the le_mrc_CellInfoRef_t parameter (can be called for any kind of RAT).
308  * - le_mrc_GetNeighborCellRat() gets the Radio Access Technology of the cell specified with
309  * the le_mrc_CellInfoRef_t parameter.
310  * - le_mrc_GetNeighborCellUmtsEcIo() gets the Ec/Io (the received energy per chip divided by the
311  * power density in the band measured in dBm on the primary CPICH channel of serving cell) of the
312  * cell specified with the le_mrc_CellInfoRef_t parameter.
313  * - le_mrc_GetNeighborCellLteIntraFreq() gets the RSRP and RSRQ of the Interfrequency of the cell
314  * specified with the le_mrc_CellInfoRef_t parameter.
315  * - le_mrc_GetNeighborCellLteInterFreq() gets the RSRP and RSRQ of the Interfrequency of the cell
316  * specified with the le_mrc_CellInfoRef_t parameter.
317  *
318  * A sample code can be seen in the following page:
319  * - @subpage c_mrcNeighborCells
320  *
321  *c_mrcNeighborCells
322  * <HR>
323  *
324  * Copyright (C) Sierra Wireless Inc.
325  */
326 /**
327  * @page c_mrcRadioPower Sample code for Radio Power Management
328  *
329  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Radio Power
330  */
331 /**
332  * @page c_mrcRadioConfigurationPreferences Sample code for Radio Configuration Preferences
333  *
334  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Band Preferences
335  *
336  */
337 /**
338  * @page c_mrcRAT Sample code for Radio Access Technology
339  *
340  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" RAT in Use
341  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" RAT Preferences
342  *
343  */
344 /**
345  * @page c_mrcNetworkRegistration Sample code for Network Registration
346  *
347  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Register
348  *
349  */
350 /**
351  * @page c_mrcQuality Sample code for Signal Quality
352  *
353  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Signal Quality
354  *
355  */
356 /**
357  * @page c_mrcLocationinformation Sample code for Location information
358  *
359  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Loc information
360  *
361  */
362 /**
363  * @page c_mrcBandCapabilities Sample code for Band Capabilities
364  *
365  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Band Capabilities
366  *
367  */
368 /**
369  * @page c_mrcGetCurrentNetwork Sample code for Get Current Network Information
370  *
371  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Get Network
372  *
373  */
374 /**
375  * @page c_mrcNetworkScan Sample code for Network Scan
376  *
377  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Network Scan
378  *
379  */
380 /**
381  * @page c_mrcNeighborCells Sample code for Neighboring Cells Information
382  *
383  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Neighbor Cells
384  *
385  */
386 /**
387  * @page c_mrcGetService Sample code for Get the Current Packet Switched state
388  *
389  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Service State
390  *
391  */
392 /**
393  * @file le_mrc_interface.h
394  *
395  * Legato @ref c_mrc include file.
396  *
397  * Copyright (C) Sierra Wireless Inc.
398  */
399 
400 #ifndef LE_MRC_INTERFACE_H_INCLUDE_GUARD
401 #define LE_MRC_INTERFACE_H_INCLUDE_GUARD
402 
403 
404 #include "legato.h"
405 
406 
407 //--------------------------------------------------------------------------------------------------
408 /**
409  * Type for handler called when a server disconnects.
410  */
411 //--------------------------------------------------------------------------------------------------
412 typedef void (*le_mrc_DisconnectHandler_t)(void *);
413 
414 //--------------------------------------------------------------------------------------------------
415 /**
416  *
417  * Connect the current client thread to the service providing this API. Block until the service is
418  * available.
419  *
420  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
421  * called before any other functions in this API. Normally, ConnectService is automatically called
422  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
423  *
424  * This function is created automatically.
425  */
426 //--------------------------------------------------------------------------------------------------
428 (
429  void
430 );
431 
432 //--------------------------------------------------------------------------------------------------
433 /**
434  *
435  * Try to connect the current client thread to the service providing this API. Return with an error
436  * if the service is not available.
437  *
438  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
439  * called before any other functions in this API. Normally, ConnectService is automatically called
440  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
441  *
442  * This function is created automatically.
443  *
444  * @return
445  * - LE_OK if the client connected successfully to the service.
446  * - LE_UNAVAILABLE if the server is not currently offering the service to which the client is
447  * bound.
448  * - LE_NOT_PERMITTED if the client interface is not bound to any service (doesn't have a binding).
449  * - LE_COMM_ERROR if the Service Directory cannot be reached.
450  */
451 //--------------------------------------------------------------------------------------------------
453 (
454  void
455 );
456 
457 //--------------------------------------------------------------------------------------------------
458 /**
459  * Set handler called when server disconnection is detected.
460  *
461  * When a server connection is lost, call this handler then exit with LE_FATAL. If a program wants
462  * to continue without exiting, it should call longjmp() from inside the handler.
463  */
464 //--------------------------------------------------------------------------------------------------
466 (
467  le_mrc_DisconnectHandler_t disconnectHandler,
468  void *contextPtr
469 );
470 
471 //--------------------------------------------------------------------------------------------------
472 /**
473  *
474  * Disconnect the current client thread from the service providing this API.
475  *
476  * Normally, this function doesn't need to be called. After this function is called, there's no
477  * longer a connection to the service, and the functions in this API can't be used. For details, see
478  * @ref apiFilesC_client.
479  *
480  * This function is created automatically.
481  */
482 //--------------------------------------------------------------------------------------------------
484 (
485  void
486 );
487 
488 
489 //--------------------------------------------------------------------------------------------------
490 /**
491  * Mobile Country Code length
492  */
493 //--------------------------------------------------------------------------------------------------
494 #define LE_MRC_MCC_LEN 3
495 
496 //--------------------------------------------------------------------------------------------------
497 /**
498  * Mobile Country Code length
499  * One extra byte is added for the null character.
500  */
501 //--------------------------------------------------------------------------------------------------
502 #define LE_MRC_MCC_BYTES 4
503 
504 //--------------------------------------------------------------------------------------------------
505 /**
506  * Mobile Network Code length
507  */
508 //--------------------------------------------------------------------------------------------------
509 #define LE_MRC_MNC_LEN 3
510 
511 //--------------------------------------------------------------------------------------------------
512 /**
513  * Mobile Network Code length
514  * One extra byte is added for the null character.
515  */
516 //--------------------------------------------------------------------------------------------------
517 #define LE_MRC_MNC_BYTES 4
518 
519 //--------------------------------------------------------------------------------------------------
520 /**
521  * Cellular Network length.
522  *
523  */
524 //--------------------------------------------------------------------------------------------------
525 #define LE_MRC_NETWORK_NAME_MAX_LEN 100
526 
527 //--------------------------------------------------------------------------------------------------
528 /**
529  * 2G/3G Band Bit Mask (64 bits)
530  */
531 //--------------------------------------------------------------------------------------------------
532 typedef enum
533 {
534  LE_MRC_BITMASK_BAND_CLASS_0_A_SYSTEM = 0x1,
535  LE_MRC_BITMASK_BAND_CLASS_0_B_SYSTEM = 0x2,
536  LE_MRC_BITMASK_BAND_CLASS_1_ALL_BLOCKS = 0x4,
537  LE_MRC_BITMASK_BAND_CLASS_2_PLACEHOLDER = 0x8,
538  LE_MRC_BITMASK_BAND_CLASS_3_A_SYSTEM = 0x10,
539  LE_MRC_BITMASK_BAND_CLASS_4_ALL_BLOCKS = 0x20,
540  LE_MRC_BITMASK_BAND_CLASS_5_ALL_BLOCKS = 0x40,
541  LE_MRC_BITMASK_BAND_CLASS_6 = 0x80,
542  LE_MRC_BITMASK_BAND_CLASS_7 = 0x100,
543  LE_MRC_BITMASK_BAND_CLASS_8 = 0x200,
544  LE_MRC_BITMASK_BAND_CLASS_9 = 0x400,
545  LE_MRC_BITMASK_BAND_CLASS_10 = 0x800,
546  LE_MRC_BITMASK_BAND_CLASS_11 = 0x1000,
547  LE_MRC_BITMASK_BAND_CLASS_12 = 0x2000,
548  LE_MRC_BITMASK_BAND_CLASS_14 = 0x4000,
549  LE_MRC_BITMASK_BAND_CLASS_15 = 0x8000,
550  LE_MRC_BITMASK_BAND_CLASS_16 = 0x10000,
551  LE_MRC_BITMASK_BAND_CLASS_17 = 0x20000,
552  LE_MRC_BITMASK_BAND_CLASS_18 = 0x40000,
553  LE_MRC_BITMASK_BAND_CLASS_19 = 0x80000,
554  LE_MRC_BITMASK_BAND_GSM_DCS_1800 = 0x100000,
555  LE_MRC_BITMASK_BAND_EGSM_900 = 0x200000,
556  LE_MRC_BITMASK_BAND_PRI_GSM_900 = 0x400000,
557  LE_MRC_BITMASK_BAND_GSM_450 = 0x800000,
558  LE_MRC_BITMASK_BAND_GSM_480 = 0x1000000,
559  LE_MRC_BITMASK_BAND_GSM_750 = 0x2000000,
560  LE_MRC_BITMASK_BAND_GSM_850 = 0x4000000,
561  LE_MRC_BITMASK_BAND_GSMR_900 = 0x8000000,
562  LE_MRC_BITMASK_BAND_GSM_PCS_1900 = 0x10000000,
563  LE_MRC_BITMASK_BAND_WCDMA_EU_J_CH_IMT_2100 = 0x20000000,
564  LE_MRC_BITMASK_BAND_WCDMA_US_PCS_1900 = 0x40000000,
565  LE_MRC_BITMASK_BAND_WCDMA_EU_CH_DCS_1800 = 0x80000000,
566  LE_MRC_BITMASK_BAND_WCDMA_US_1700 = 0x100000000,
567  LE_MRC_BITMASK_BAND_WCDMA_US_850 = 0x200000000,
568  LE_MRC_BITMASK_BAND_WCDMA_J_800 = 0x400000000,
569  LE_MRC_BITMASK_BAND_WCDMA_EU_2600 = 0x800000000,
570  LE_MRC_BITMASK_BAND_WCDMA_EU_J_900 = 0x1000000000,
571  LE_MRC_BITMASK_BAND_WCDMA_J_1700 = 0x2000000000
572 }
574 
575 
576 //--------------------------------------------------------------------------------------------------
577 /**
578  * LTE Band Bit Mask (32bits)
579  *
580  */
581 //--------------------------------------------------------------------------------------------------
582 typedef enum
583 {
584  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_1 = 0x1,
585  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_2 = 0x2,
586  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_3 = 0x4,
587  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_4 = 0x8,
588  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_5 = 0x10,
589  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_6 = 0x20,
590  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_7 = 0x40,
591  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_8 = 0x80,
592  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_9 = 0x100,
593  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_10 = 0x200,
594  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_11 = 0x400,
595  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_12 = 0x800,
596  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_13 = 0x1000,
597  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_14 = 0x2000,
598  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_17 = 0x4000,
599  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_18 = 0x8000,
600  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_19 = 0x10000,
601  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_20 = 0x20000,
602  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_21 = 0x40000,
603  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_24 = 0x80000,
604  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_25 = 0x100000,
605  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_33 = 0x200000,
606  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_34 = 0x400000,
607  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_35 = 0x800000,
608  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_36 = 0x1000000,
609  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_37 = 0x2000000,
610  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_38 = 0x4000000,
611  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_39 = 0x8000000,
612  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_40 = 0x10000000,
613  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_41 = 0x20000000,
614  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_42 = 0x40000000,
615  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_43 = 0x80000000
616 }
618 
619 
620 //--------------------------------------------------------------------------------------------------
621 /**
622  * TDSCDMA Band Bit Mask
623  *
624  */
625 //--------------------------------------------------------------------------------------------------
626 typedef enum
627 {
628  LE_MRC_BITMASK_TDSCDMA_BAND_A = 0x1,
629  LE_MRC_BITMASK_TDSCDMA_BAND_B = 0x2,
630  LE_MRC_BITMASK_TDSCDMA_BAND_C = 0x4,
631  LE_MRC_BITMASK_TDSCDMA_BAND_D = 0x8,
632  LE_MRC_BITMASK_TDSCDMA_BAND_E = 0x10,
633  LE_MRC_BITMASK_TDSCDMA_BAND_F = 0x20
634 }
636 
637 
638 //--------------------------------------------------------------------------------------------------
639 /**
640  * Reference type for referring to MRC Scan Information objects.
641  */
642 //--------------------------------------------------------------------------------------------------
643 typedef struct le_mrc_ScanInformation* le_mrc_ScanInformationRef_t;
644 
645 
646 //--------------------------------------------------------------------------------------------------
647 /**
648  * Reference type for Scan Information Listing.
649  */
650 //--------------------------------------------------------------------------------------------------
651 typedef struct le_mrc_ScanInformationList* le_mrc_ScanInformationListRef_t;
652 
653 
654 //--------------------------------------------------------------------------------------------------
655 /**
656  * Reference type for referring to the Preferred Operator objects.
657  */
658 //--------------------------------------------------------------------------------------------------
659 typedef struct le_mrc_PreferredOperator* le_mrc_PreferredOperatorRef_t;
660 
661 
662 //--------------------------------------------------------------------------------------------------
663 /**
664  * Reference type for Preferred Operator Listing.
665  */
666 //--------------------------------------------------------------------------------------------------
667 typedef struct le_mrc_PreferredOperatorList* le_mrc_PreferredOperatorListRef_t;
668 
669 
670 //--------------------------------------------------------------------------------------------------
671 /**
672  * Reference type for one Cell Information.
673  */
674 //--------------------------------------------------------------------------------------------------
675 typedef struct le_mrc_CellInfo* le_mrc_CellInfoRef_t;
676 
677 
678 //--------------------------------------------------------------------------------------------------
679 /**
680  * Reference type for all Neighboring Cells Information.
681  */
682 //--------------------------------------------------------------------------------------------------
683 typedef struct le_mrc_NeighborCells* le_mrc_NeighborCellsRef_t;
684 
685 
686 //--------------------------------------------------------------------------------------------------
687 /**
688  * Reference type for the signal metrics.
689  */
690 //--------------------------------------------------------------------------------------------------
691 typedef struct le_mrc_Metrics* le_mrc_MetricsRef_t;
692 
693 
694 //--------------------------------------------------------------------------------------------------
695 /**
696  * Network Registration states.
697  */
698 //--------------------------------------------------------------------------------------------------
699 typedef enum
700 {
702  ///< Not registered and not currently searching for new operator.
704  ///< Registered, home network.
706  ///< Not registered but currently searching for a new operator.
708  ///< Registration was denied, usually because of invalid access credentials.
710  ///< Registered to a roaming network.
712  ///< Unknown state.
713 }
715 
716 
717 //--------------------------------------------------------------------------------------------------
718 /**
719  * Radio Access Technology enum
720  */
721 //--------------------------------------------------------------------------------------------------
722 typedef enum
723 {
725  ///< Unknown
727  ///< GSM network
729  ///< UMTS or TD-SCDMA networks
731  ///< LTE network
733  ///< CDMA network
734 }
736 
737 
738 //--------------------------------------------------------------------------------------------------
739 /**
740  * Radio Bitmask Access Technology Bit Mask
741  */
742 //--------------------------------------------------------------------------------------------------
743 typedef enum
744 {
745  LE_MRC_BITMASK_RAT_GSM = 0x1, ///< GSM RAT Bit Mask
746  LE_MRC_BITMASK_RAT_UMTS = 0x2, ///< UMTS RAT Bit Mask
747  LE_MRC_BITMASK_RAT_TDSCDMA = 0x4, ///< TD-SCDMA RAT Bit Mask
748  LE_MRC_BITMASK_RAT_LTE = 0x8, ///< LTE RAT Bit Mask
749  LE_MRC_BITMASK_RAT_CDMA = 0x10, ///< CDMA RAT Bit Mask
750  LE_MRC_BITMASK_RAT_ALL = 0x20, ///< To Set all RAT preference Bit Mask
751  LE_MRC_BITMASK_RAT_MAX = 0x40
752 }
754 
755 
756 //--------------------------------------------------------------------------------------------------
757 /**
758  * Reference type used by Add/Remove functions for EVENT 'le_mrc_NetRegStateEvent'
759  */
760 //--------------------------------------------------------------------------------------------------
761 typedef struct le_mrc_NetRegStateEventHandler* le_mrc_NetRegStateEventHandlerRef_t;
762 
763 
764 //--------------------------------------------------------------------------------------------------
765 /**
766  * Reference type used by Add/Remove functions for EVENT 'le_mrc_RatChange'
767  */
768 //--------------------------------------------------------------------------------------------------
769 typedef struct le_mrc_RatChangeHandler* le_mrc_RatChangeHandlerRef_t;
770 
771 
772 //--------------------------------------------------------------------------------------------------
773 /**
774  * Reference type used by Add/Remove functions for EVENT 'le_mrc_PacketSwitchedChange'
775  */
776 //--------------------------------------------------------------------------------------------------
777 typedef struct le_mrc_PacketSwitchedChangeHandler* le_mrc_PacketSwitchedChangeHandlerRef_t;
778 
779 
780 //--------------------------------------------------------------------------------------------------
781 /**
782  * Reference type used by Add/Remove functions for EVENT 'le_mrc_SignalStrengthChange'
783  */
784 //--------------------------------------------------------------------------------------------------
785 typedef struct le_mrc_SignalStrengthChangeHandler* le_mrc_SignalStrengthChangeHandlerRef_t;
786 
787 
788 //--------------------------------------------------------------------------------------------------
789 /**
790  * Handler for Network registration state changes.
791  *
792  */
793 //--------------------------------------------------------------------------------------------------
794 typedef void (*le_mrc_NetRegStateHandlerFunc_t)
795 (
796  le_mrc_NetRegState_t state,
797  ///< Parameter ready to receive the Network Registration state.
798  void* contextPtr
799  ///<
800 );
801 
802 //--------------------------------------------------------------------------------------------------
803 /**
804  * Handler for Radio Access Technology changes.
805  *
806  */
807 //--------------------------------------------------------------------------------------------------
808 typedef void (*le_mrc_RatChangeHandlerFunc_t)
809 (
810  le_mrc_Rat_t rat,
811  ///< Parameter ready to receive the Radio Access Technology.
812  void* contextPtr
813  ///<
814 );
815 
816 //--------------------------------------------------------------------------------------------------
817 /**
818  * Handler for Packet Switched service state changes.
819  *
820  */
821 //--------------------------------------------------------------------------------------------------
823 (
824  le_mrc_NetRegState_t state,
825  ///< Parameter ready to receive the Packet Switched service state.
826  void* contextPtr
827  ///<
828 );
829 
830 //--------------------------------------------------------------------------------------------------
831 /**
832  * Handler for Signal Strength value changes.
833  *
834  */
835 //--------------------------------------------------------------------------------------------------
837 (
838  int32_t ss,
839  ///< Signal strength in dBm
840  void* contextPtr
841  ///<
842 );
843 
844 //--------------------------------------------------------------------------------------------------
845 /**
846  * Handler for cellular asynchronous network scan Sending result.
847  * Returns the reference to the List object. Null pointer if the scan failed.
848  *
849  */
850 //--------------------------------------------------------------------------------------------------
852 (
854  ///< Reference to the List object. Null pointer if the
855  ///< scan failed.
856  void* contextPtr
857  ///<
858 );
859 
860 //--------------------------------------------------------------------------------------------------
861 /**
862  * Handler for asynchronous manual selection response
863  *
864  */
865 //--------------------------------------------------------------------------------------------------
867 (
868  le_result_t result,
869  ///< Manual selection response
870  void* contextPtr
871  ///<
872 );
873 
874 //--------------------------------------------------------------------------------------------------
875 /**
876  * Add handler function for EVENT 'le_mrc_NetRegStateEvent'
877  *
878  * This event provides information on network registration state changes.
879  *
880  * @note <b>multi-app safe</b>
881  */
882 //--------------------------------------------------------------------------------------------------
884 (
886  ///< [IN]
887  void* contextPtr
888  ///< [IN]
889 );
890 
891 //--------------------------------------------------------------------------------------------------
892 /**
893  * Remove handler function for EVENT 'le_mrc_NetRegStateEvent'
894  */
895 //--------------------------------------------------------------------------------------------------
897 (
899  ///< [IN]
900 );
901 
902 //--------------------------------------------------------------------------------------------------
903 /**
904  * Add handler function for EVENT 'le_mrc_RatChange'
905  *
906  * This event provides information on Radio Access Technology changes.
907  *
908  * @note <b>multi-app safe</b>
909  */
910 //--------------------------------------------------------------------------------------------------
912 (
914  ///< [IN]
915  void* contextPtr
916  ///< [IN]
917 );
918 
919 //--------------------------------------------------------------------------------------------------
920 /**
921  * Remove handler function for EVENT 'le_mrc_RatChange'
922  */
923 //--------------------------------------------------------------------------------------------------
925 (
927  ///< [IN]
928 );
929 
930 //--------------------------------------------------------------------------------------------------
931 /**
932  * Add handler function for EVENT 'le_mrc_PacketSwitchedChange'
933  *
934  * This event provides information on Packet Switched service changes.
935  *
936  * @note <b>multi-app safe</b>
937  */
938 //--------------------------------------------------------------------------------------------------
940 (
942  ///< [IN]
943  void* contextPtr
944  ///< [IN]
945 );
946 
947 //--------------------------------------------------------------------------------------------------
948 /**
949  * Remove handler function for EVENT 'le_mrc_PacketSwitchedChange'
950  */
951 //--------------------------------------------------------------------------------------------------
953 (
955  ///< [IN]
956 );
957 
958 //--------------------------------------------------------------------------------------------------
959 /**
960  * Add handler function for EVENT 'le_mrc_SignalStrengthChange'
961  *
962  * This event provides information on Signal Strength value changes.
963  *
964  * @note <b>NOT multi-app safe</b>
965  */
966 //--------------------------------------------------------------------------------------------------
968 (
969  le_mrc_Rat_t rat,
970  ///< [IN] Radio Access Technology
971  int32_t lowerRangeThreshold,
972  ///< [IN] lower-range Signal strength threshold in dBm
973  int32_t upperRangeThreshold,
974  ///< [IN] upper-range Signal strength threshold in dBm
976  ///< [IN]
977  void* contextPtr
978  ///< [IN]
979 );
980 
981 //--------------------------------------------------------------------------------------------------
982 /**
983  * Remove handler function for EVENT 'le_mrc_SignalStrengthChange'
984  */
985 //--------------------------------------------------------------------------------------------------
987 (
989  ///< [IN]
990 );
991 
992 //--------------------------------------------------------------------------------------------------
993 /**
994  * Set signal strength indication thresholds for a specific RAT.
995  *
996  * @return
997  * - LE_OK Function succeeded.
998  * - LE_BAD_PARAMETER Bad parameters
999  * - LE_FAULT Function failed.
1000  *
1001  * @note <b>NOT multi-app safe</b>
1002  */
1003 //--------------------------------------------------------------------------------------------------
1005 (
1006  le_mrc_Rat_t rat,
1007  ///< [IN] Radio Access Technology
1008  int32_t lowerRangeThreshold,
1009  ///< [IN] lower-range Signal strength threshold in dBm
1010  int32_t upperRangeThreshold
1011  ///< [IN] upper-range Signal strength threshold in dBm
1012 );
1013 
1014 //--------------------------------------------------------------------------------------------------
1015 /**
1016  * Enable the automatic Selection Register mode.
1017  *
1018  * @return
1019  * - LE_FAULT Function failed.
1020  * - LE_OK Function succeeded.
1021  *
1022  * @note <b>NOT multi-app safe</b>
1023  */
1024 //--------------------------------------------------------------------------------------------------
1026 (
1027  void
1028 );
1029 
1030 //--------------------------------------------------------------------------------------------------
1031 /**
1032  * Set the manual Selection Register mode with the MCC/MNC parameters.
1033  *
1034  * @return
1035  * - LE_FAULT Function failed.
1036  * - LE_OK Function succeeded.
1037  *
1038  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1039  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1040  * won't return.
1041  *
1042  * @note <b>NOT multi-app safe</b>
1043  */
1044 //--------------------------------------------------------------------------------------------------
1046 (
1047  const char* mcc,
1048  ///< [IN] Mobile Country Code
1049  const char* mnc
1050  ///< [IN] Mobile Network Code
1051 )
1052 __attribute__(( nonnull(1,2) ));
1053 
1054 //--------------------------------------------------------------------------------------------------
1055 /**
1056  * Set the manual selection register mode asynchronously. This function is not blocking,
1057  * the response will be returned with a handler function.
1058  *
1059  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1060  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1061  * won't return.
1062  *
1063  *@note <b>NOT multi-app safe</b>
1064  *
1065  */
1066 //--------------------------------------------------------------------------------------------------
1068 (
1069  const char* mcc,
1070  ///< [IN] Mobile Country Code
1071  const char* mnc,
1072  ///< [IN] Mobile Network Code
1074  ///< [IN] handler for sending result
1075  void* contextPtr
1076  ///< [IN]
1077 )
1078 __attribute__(( nonnull(1,2) ));
1079 
1080 //--------------------------------------------------------------------------------------------------
1081 /**
1082  * Get the selected Selection Register mode.
1083  *
1084  * @return
1085  * - LE_FAULT Function failed.
1086  * - LE_OK Function succeeded.
1087  *
1088  * @note <b>multi-app safe</b>
1089  */
1090 //--------------------------------------------------------------------------------------------------
1092 (
1093  bool* isManualPtrPtr,
1094  ///< [OUT] true if the scan mode is manual, false if the scan mode is automatic.
1095  char* mccPtr,
1096  ///< [OUT] Mobile Country Code
1097  size_t mccPtrSize,
1098  ///< [IN]
1099  char* mncPtr,
1100  ///< [OUT] Mobile Network Code
1101  size_t mncPtrSize
1102  ///< [IN]
1103 );
1104 
1105 //--------------------------------------------------------------------------------------------------
1106 /**
1107  * Get the Packet Switched state.
1108  *
1109  * @return
1110  * - LE_FAULT Function failed.
1111  * - LE_OK Function succeeded.
1112  *
1113  * @note <b>multi-app safe</b>
1114  */
1115 //--------------------------------------------------------------------------------------------------
1117 (
1118  le_mrc_NetRegState_t* statePtr
1119  ///< [OUT] The current Packet switched state.
1120 );
1121 
1122 //--------------------------------------------------------------------------------------------------
1123 /**
1124  * Get the platform specific network registration error code.
1125  *
1126  * @return the platform specific registration error code
1127  *
1128  */
1129 //--------------------------------------------------------------------------------------------------
1131 (
1132  void
1133 );
1134 
1135 //--------------------------------------------------------------------------------------------------
1136 /**
1137  * Set the Radio Access Technology preferences by using a bit mask.
1138  *
1139  * @return
1140  * - LE_FAULT Function failed.
1141  * - LE_OK Function succeeded.
1142  *
1143  * @note <b>NOT multi-app safe</b>
1144  */
1145 //--------------------------------------------------------------------------------------------------
1147 (
1148  le_mrc_RatBitMask_t ratMask
1149  ///< [IN] Bit mask for the Radio Access Technology preferences.
1150 );
1151 
1152 //--------------------------------------------------------------------------------------------------
1153 /**
1154  * Get the Radio Access Technology preferences
1155  *
1156  * @return
1157  * - LE_FAULT Function failed.
1158  * - LE_OK Function succeeded.
1159  *
1160  * @note <b>multi-app safe</b>
1161  */
1162 //--------------------------------------------------------------------------------------------------
1164 (
1165  le_mrc_RatBitMask_t* ratMaskPtrPtr
1166  ///< [OUT] Bit mask for the Radio Access Technology preferences.
1167 );
1168 
1169 //--------------------------------------------------------------------------------------------------
1170 /**
1171  * Set the 2G/3G Band preferences by using a bit mask.
1172  *
1173  * @return
1174  * - LE_FAULT Function failed.
1175  * - LE_OK Function succeeded.
1176  *
1177  * @note <b>NOT multi-app safe</b>
1178  */
1179 //--------------------------------------------------------------------------------------------------
1181 (
1182  le_mrc_BandBitMask_t bandMask
1183  ///< [IN] Bit mask for 2G/3G Band preferences.
1184 );
1185 
1186 //--------------------------------------------------------------------------------------------------
1187 /**
1188  * Get the Bit mask for 2G/3G Band preferences.
1189  *
1190  * @return
1191  * - LE_FAULT Function failed.
1192  * - LE_OK Function succeeded.
1193  *
1194  * @note <b>multi-app safe</b>
1195  */
1196 //--------------------------------------------------------------------------------------------------
1198 (
1199  le_mrc_BandBitMask_t* bandMaskPtrPtr
1200  ///< [OUT] Bit mask for 2G/3G Band preferences.
1201 );
1202 
1203 //--------------------------------------------------------------------------------------------------
1204 /**
1205  * Set the LTE Band preferences by using a bit mask.
1206  *
1207  * @return
1208  * - LE_FAULT Function failed.
1209  * - LE_OK Function succeeded.
1210  *
1211  * @note <b>NOT multi-app safe</b>
1212  */
1213 //--------------------------------------------------------------------------------------------------
1215 (
1216  le_mrc_LteBandBitMask_t bandMask
1217  ///< [IN] Bit mask for LTE Band preferences.
1218 );
1219 
1220 //--------------------------------------------------------------------------------------------------
1221 /**
1222  * Get the Bit mask for LTE Band preferences.
1223  *
1224  * @return
1225  * - LE_FAULT Function failed.
1226  * - LE_OK Function succeeded.
1227  *
1228  * @note <b>multi-app safe</b>
1229  */
1230 //--------------------------------------------------------------------------------------------------
1232 (
1233  le_mrc_LteBandBitMask_t* bandMaskPtrPtr
1234  ///< [OUT] Bit mask for LTE Band preferences.
1235 );
1236 
1237 //--------------------------------------------------------------------------------------------------
1238 /**
1239  * Set the TD-SCDMA Band preferences by using a bit mask.
1240  *
1241  * @return
1242  * - LE_FAULT Function failed.
1243  * - LE_OK Function succeeded.
1244  *
1245  * @note <b>NOT multi-app safe</b>
1246  */
1247 //--------------------------------------------------------------------------------------------------
1249 (
1251  ///< [IN] Bit mask for TD-SCDMA Band preferences.
1252 );
1253 
1254 //--------------------------------------------------------------------------------------------------
1255 /**
1256  * Get the Bit mask for TD-SCDMA Band preferences.
1257  *
1258  * @return
1259  * - LE_FAULT Function failed.
1260  * - LE_OK Function succeeded.
1261  *
1262  * @note <b>multi-app safe</b>
1263  */
1264 //--------------------------------------------------------------------------------------------------
1266 (
1267  le_mrc_TdScdmaBandBitMask_t* bandMaskPtrPtr
1268  ///< [OUT] Bit mask for TD-SCDMA Band preferences.
1269 );
1270 
1271 //--------------------------------------------------------------------------------------------------
1272 /**
1273  * Add a preferred operator by specifying the MCC/MNC and the Radio Access Technology.
1274  *
1275  * @return
1276  * - LE_UNSUPPORTED List of User Preferred operators not available.
1277  * - LE_FAULT Function failed.
1278  * - LE_BAD_PARAMETER RAT mask is invalid.
1279  * - LE_OK Function succeeded.
1280  *
1281  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1282  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1283  * won't return.
1284  *
1285  * @note <b>NOT multi-app safe</b>
1286  */
1287 //--------------------------------------------------------------------------------------------------
1289 (
1290  const char* mcc,
1291  ///< [IN] Mobile Country Code
1292  const char* mnc,
1293  ///< [IN] Mobile Network Code
1294  le_mrc_RatBitMask_t ratMask
1295  ///< [IN] Bit mask for the Radio Access Technology preferences.
1296 )
1297 __attribute__(( nonnull(1,2) ));
1298 
1299 //--------------------------------------------------------------------------------------------------
1300 /**
1301  * Remove a preferred operator by specifying the MCC/MNC.
1302  *
1303  * @return
1304  * - LE_UNSUPPORTED List of User Preferred operators not available.
1305  * - LE_NOT_FOUND Operator not found in the User Preferred operators list.
1306  * - LE_FAULT Function failed.
1307  * - LE_OK Function succeeded.
1308  *
1309  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1310  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1311  * won't return.
1312  *
1313  * @note <b>NOT multi-app safe</b>
1314  */
1315 //--------------------------------------------------------------------------------------------------
1317 (
1318  const char* mcc,
1319  ///< [IN] Mobile Country Code
1320  const char* mnc
1321  ///< [IN] Mobile Network Code
1322 )
1323 __attribute__(( nonnull(1,2) ));
1324 
1325 //--------------------------------------------------------------------------------------------------
1326 /**
1327  * This function must be called to retrieve a list of the preferred operators.
1328  *
1329  * @return
1330  * - Reference to the List object.
1331  * - Null pointer if there is no preferences list.
1332  *
1333  * @note <b>multi-app safe</b>
1334  */
1335 //--------------------------------------------------------------------------------------------------
1337 (
1338  void
1339 );
1340 
1341 //--------------------------------------------------------------------------------------------------
1342 /**
1343  * This function must be called to get the first Operator object reference in the list of the
1344  * preferred operators retrieved with le_mrc_GetPreferredOperators().
1345  *
1346  * @return
1347  * - NULL No operator information found.
1348  * - le_mrc_PreferredOperatorRef The Operator object reference.
1349  *
1350  * @note If the caller is passing a bad reference into this function, it's a fatal error, the
1351  * function won't return.
1352  *
1353  * @note <b>multi-app safe</b>
1354  */
1355 //--------------------------------------------------------------------------------------------------
1357 (
1358  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1359  ///< [IN] The list of the preferred operators.
1360 );
1361 
1362 //--------------------------------------------------------------------------------------------------
1363 /**
1364  * This function must be called to get the next Operator object reference in the list of the
1365  * preferred operators retrieved with le_mrc_GetPreferredOperators().
1366  *
1367  * @return
1368  * - NULL No operator information found.
1369  * - le_mrc_PreferredOperatorRef The Operator object reference.
1370  *
1371  * @note If the caller is passing a bad reference into this function, it's a fatal error, the
1372  * function won't return.
1373  *
1374  * @note <b>multi-app safe</b>
1375  */
1376 //--------------------------------------------------------------------------------------------------
1378 (
1379  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1380  ///< [IN] The list of the preferred operators.
1381 );
1382 
1383 //--------------------------------------------------------------------------------------------------
1384 /**
1385  * This function must be called to delete the list of the preferred operators retrieved with
1386  * le_mrc_GetPreferredOperators().
1387  *
1388  * @note On failure, the process exits, so you don't have to worry about checking the returned
1389  * reference for validity.
1390  *
1391  * @note <b>multi-app safe</b>
1392  */
1393 //--------------------------------------------------------------------------------------------------
1395 (
1396  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1397  ///< [IN] The list of the preferred operators.
1398 );
1399 
1400 //--------------------------------------------------------------------------------------------------
1401 /**
1402  * This function must be called to get the Operator information details.
1403  *
1404  * @return
1405  * - LE_OK on success
1406  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
1407  * - LE_FAULT for all other errors
1408  *
1409  * @note <b>multi-app safe</b>
1410  */
1411 //--------------------------------------------------------------------------------------------------
1413 (
1414  le_mrc_PreferredOperatorRef_t preferredOperatorRef,
1415  ///< [IN] Operator object reference.
1416  char* mccPtr,
1417  ///< [OUT] Mobile Country Code.
1418  size_t mccPtrSize,
1419  ///< [IN]
1420  char* mncPtr,
1421  ///< [OUT] Mobile Network Code.
1422  size_t mncPtrSize,
1423  ///< [IN]
1424  le_mrc_RatBitMask_t* ratMaskPtr
1425  ///< [OUT] Bit mask for the RAT preferences.
1426 );
1427 
1428 //--------------------------------------------------------------------------------------------------
1429 /**
1430  * Get the network registration state.
1431  *
1432  * @return LE_FAULT The function failed to get the Network registration state.
1433  * @return LE_BAD_PARAMETER A bad parameter was passed.
1434  * @return LE_OK The function succeeded.
1435  *
1436  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1437  * function won't return.
1438  *
1439  * @note <b>multi-app safe</b>
1440  */
1441 //--------------------------------------------------------------------------------------------------
1443 (
1444  le_mrc_NetRegState_t* statePtr
1445  ///< [OUT] Network Registration state.
1446 );
1447 
1448 //--------------------------------------------------------------------------------------------------
1449 /**
1450  * Get the signal quality.
1451  *
1452  * @return LE_FAULT The function failed to get the Signal Quality information.
1453  * @return LE_BAD_PARAMETER A bad parameter was passed.
1454  * @return LE_OK The function succeeded.
1455  *
1456  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1457  * function won't return.
1458  *
1459  * @note <b>multi-app safe</b>
1460  */
1461 //--------------------------------------------------------------------------------------------------
1463 (
1464  uint32_t* qualityPtr
1465  ///< [OUT] [OUT] Received signal strength quality (0 = no signal strength,
1466  ///< 5 = very good signal strength).
1467 );
1468 
1469 //--------------------------------------------------------------------------------------------------
1470 /**
1471  * Set the power of the Radio Module.
1472  *
1473  * @return LE_BAD_PARAMETER Bad power mode specified.
1474  * @return LE_FAULT Function failed.
1475  * @return LE_OK Function succeed.
1476  *
1477  * @note <b>NOT multi-app safe</b>
1478  */
1479 //--------------------------------------------------------------------------------------------------
1481 (
1482  le_onoff_t power
1483  ///< [IN] The power state.
1484 );
1485 
1486 //--------------------------------------------------------------------------------------------------
1487 /**
1488  * Must be called to get the Radio Module power state.
1489  *
1490  * @return LE_FAULT The function failed to get the Radio Module power state.
1491  * @return LE_BAD_PARAMETER if powerPtr is NULL.
1492  * @return LE_OK The function succeed.
1493  *
1494  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1495  * function won't return.
1496  *
1497  * @note <b>multi-app safe</b>
1498  */
1499 //--------------------------------------------------------------------------------------------------
1501 (
1502  le_onoff_t* powerPtr
1503  ///< [OUT] Power state.
1504 );
1505 
1506 //--------------------------------------------------------------------------------------------------
1507 /**
1508  * This function must be called to perform a cellular network scan.
1509  *
1510  * @return Reference to the List object. Null pointer if the scan failed.
1511  *
1512  * @note <b>multi-app safe</b>
1513  */
1514 //--------------------------------------------------------------------------------------------------
1516 (
1517  le_mrc_RatBitMask_t ratMask
1518  ///< [IN] Radio Access Technology mask
1519 );
1520 
1521 //--------------------------------------------------------------------------------------------------
1522 /**
1523  * This function must be called to perform a cellular network scan asynchronously. This function
1524  * is not blocking, the response will be returned with a handler function.
1525  *
1526  *@note <b>multi-app safe</b>
1527  *
1528  */
1529 //--------------------------------------------------------------------------------------------------
1531 (
1532  le_mrc_RatBitMask_t ratMask,
1533  ///< [IN] Radio Access Technology mask
1535  ///< [IN] handler for sending result.
1536  void* contextPtr
1537  ///< [IN]
1538 );
1539 
1540 //--------------------------------------------------------------------------------------------------
1541 /**
1542  * This function must be called to get the first Scan Information object reference in the list of
1543  * scan Information retrieved with le_mrc_PerformCellularNetworkScan().
1544  *
1545  * @return NULL No scan information found.
1546  * @return le_mrc_ScanInformationRef_t The Scan Information object reference.
1547  *
1548  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1549  * function won't return.
1550  *
1551  * @note <b>multi-app safe</b>
1552  */
1553 //--------------------------------------------------------------------------------------------------
1555 (
1556  le_mrc_ScanInformationListRef_t scanInformationListRef
1557  ///< [IN] The list of scan information.
1558 );
1559 
1560 //--------------------------------------------------------------------------------------------------
1561 /**
1562  * This function must be called to get the next Scan Information object reference in the list of
1563  * scan Information retrieved with le_mrc_PerformCellularNetworkScan().
1564  *
1565  * @return NULL No scan information found.
1566  * @return le_mrc_ScanInformationRef_t The Scan Information object reference.
1567  *
1568  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1569  * function won't return.
1570  *
1571  * @note <b>multi-app safe</b>
1572  */
1573 //--------------------------------------------------------------------------------------------------
1575 (
1576  le_mrc_ScanInformationListRef_t scanInformationListRef
1577  ///< [IN] The list of scan information.
1578 );
1579 
1580 //--------------------------------------------------------------------------------------------------
1581 /**
1582  * This function must be called to delete the list of the Scan Information retrieved with
1583  * le_mrc_PerformCellularNetworkScan().
1584  *
1585  * @note
1586  * On failure, the process exits, so you don't have to worry about checking the returned
1587  * reference for validity.
1588  *
1589  * @note <b>multi-app safe</b>
1590  */
1591 //--------------------------------------------------------------------------------------------------
1593 (
1594  le_mrc_ScanInformationListRef_t scanInformationListRef
1595  ///< [IN] The list of scan information.
1596 );
1597 
1598 //--------------------------------------------------------------------------------------------------
1599 /**
1600  * This function must be called to get the Cellular Network Code [mcc:mnc]
1601  *
1602  * @return
1603  * - LE_OK on success
1604  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
1605  * - LE_FAULT for all other errors
1606  *
1607  * @note On failure, the process exits, so you don't have to worry about checking the returned
1608  * reference for validity.
1609  *
1610  * @note <b>multi-app safe</b>
1611  */
1612 //--------------------------------------------------------------------------------------------------
1614 (
1615  le_mrc_ScanInformationRef_t scanInformationRef,
1616  ///< [IN] Scan information reference
1617  char* mccPtr,
1618  ///< [OUT] Mobile Country Code
1619  size_t mccPtrSize,
1620  ///< [IN]
1621  char* mncPtr,
1622  ///< [OUT] Mobile Network Code
1623  size_t mncPtrSize
1624  ///< [IN]
1625 );
1626 
1627 //--------------------------------------------------------------------------------------------------
1628 /**
1629  * This function must be called to get the Cellular Network Name.
1630  *
1631  * @return
1632  * - LE_OK on success
1633  * - LE_OVERFLOW if the operator name would not fit in buffer
1634  * - LE_FAULT for all other errors
1635  *
1636  * @note On failure, the process exits, so you don't have to worry about checking the returned
1637  * reference for validity.
1638  *
1639  * @note <b>multi-app safe</b>
1640  */
1641 //--------------------------------------------------------------------------------------------------
1643 (
1644  le_mrc_ScanInformationRef_t scanInformationRef,
1645  ///< [IN] Scan information reference
1646  char* namePtr,
1647  ///< [OUT] Name of operator
1648  size_t namePtrSize
1649  ///< [IN]
1650 );
1651 
1652 //--------------------------------------------------------------------------------------------------
1653 /**
1654  * This function must be called to get the radio access technology of a scanInformationRef.
1655  *
1656  * @return the radio access technology
1657  *
1658  * @note On failure, the process exits.
1659  *
1660  * @note <b>multi-app safe</b>
1661  */
1662 //--------------------------------------------------------------------------------------------------
1664 (
1665  le_mrc_ScanInformationRef_t scanInformationRef
1666  ///< [IN] Scan information reference
1667 );
1668 
1669 //--------------------------------------------------------------------------------------------------
1670 /**
1671  * This function must be called to check if a cellular network is currently in use.
1672  *
1673  * @return true The network is in use
1674  * @return false The network isn't in use
1675  *
1676  * @note On failure, the process exits, so you don't have to worry about checking the returned
1677  * reference for validity.
1678  *
1679  * @note <b>multi-app safe</b>
1680  */
1681 //--------------------------------------------------------------------------------------------------
1683 (
1684  le_mrc_ScanInformationRef_t scanInformationRef
1685  ///< [IN] Scan information reference
1686 );
1687 
1688 //--------------------------------------------------------------------------------------------------
1689 /**
1690  * This function must be called to check if a cellular network is available.
1691  *
1692  * @return true The network is available
1693  * @return false The network isn't available
1694  *
1695  * @note On failure, the process exits, so you don't have to worry about checking the returned
1696  * reference for validity.
1697  *
1698  * @note <b>multi-app safe</b>
1699  */
1700 //--------------------------------------------------------------------------------------------------
1702 (
1703  le_mrc_ScanInformationRef_t scanInformationRef
1704  ///< [IN] Scan information reference
1705 );
1706 
1707 //--------------------------------------------------------------------------------------------------
1708 /**
1709  * This function must be called to check if a cellular network is currently in home mode.
1710  *
1711  * @return true The network is home
1712  * @return false The network is roaming
1713  *
1714  * @note On failure, the process exits, so you don't have to worry about checking the returned
1715  * reference for validity.
1716  *
1717  * @note <b>multi-app safe</b>
1718  */
1719 //--------------------------------------------------------------------------------------------------
1721 (
1722  le_mrc_ScanInformationRef_t scanInformationRef
1723  ///< [IN] Scan information reference
1724 );
1725 
1726 //--------------------------------------------------------------------------------------------------
1727 /**
1728  * This function must be called to check if a cellular network is forbidden by the operator.
1729  *
1730  * @return true The network is forbidden
1731  * @return false The network is allowed
1732  *
1733  * @note On failure, the process exits, so you don't have to worry about checking the returned
1734  * reference for validity.
1735  *
1736  * @note <b>multi-app safe</b>
1737  */
1738 //--------------------------------------------------------------------------------------------------
1740 (
1741  le_mrc_ScanInformationRef_t scanInformationRef
1742  ///< [IN] Scan information reference
1743 );
1744 
1745 //--------------------------------------------------------------------------------------------------
1746 /**
1747  * This function must be called to get the current network name information.
1748  *
1749  * @return
1750  * - LE_OK on success
1751  * - LE_BAD_PARAMETER if nameStr is NULL
1752  * - LE_OVERFLOW if the Home Network Name can't fit in nameStr
1753  * - LE_FAULT on any other failure
1754  *
1755  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1756  * function won't return.
1757  *
1758  * @note <b>multi-app safe</b>
1759  */
1760 //--------------------------------------------------------------------------------------------------
1762 (
1763  char* nameStr,
1764  ///< [OUT] the home network Name
1765  size_t nameStrSize
1766  ///< [IN]
1767 );
1768 
1769 //--------------------------------------------------------------------------------------------------
1770 /**
1771  * This function must be called to get the current network PLMN information.
1772  *
1773  * @return
1774  * - LE_OK on success
1775  * - LE_FAULT on any other failure
1776  *
1777  * @note <b>multi-app safe</b>
1778  */
1779 //--------------------------------------------------------------------------------------------------
1781 (
1782  char* mccStr,
1783  ///< [OUT] the mobile country code
1784  size_t mccStrSize,
1785  ///< [IN]
1786  char* mncStr,
1787  ///< [OUT] the mobile network code
1788  size_t mncStrSize
1789  ///< [IN]
1790 );
1791 
1792 //--------------------------------------------------------------------------------------------------
1793 /**
1794  * This function must be called to get the current Radio Access Technology in use.
1795  *
1796  * @return LE_FAULT Function failed to get the Radio Access Technology.
1797  * @return LE_BAD_PARAMETER A bad parameter was passed.
1798  * @return LE_OK Function succeeded.
1799  *
1800  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1801  * function won't return.
1802  *
1803  * @note <b>multi-app safe</b>
1804  */
1805 //--------------------------------------------------------------------------------------------------
1807 (
1808  le_mrc_Rat_t* ratPtr
1809  ///< [OUT] The Radio Access Technology.
1810 );
1811 
1812 //--------------------------------------------------------------------------------------------------
1813 /**
1814  * This function must be called to retrieve the Neighboring Cells information. It creates and
1815  * returns a reference to the Neighboring Cells information.
1816  *
1817  * @return A reference to the Neighboring Cells information.
1818  * @return NULL if no Cells Information are available.
1819  *
1820  * @note <b>multi-app safe</b>
1821  */
1822 //--------------------------------------------------------------------------------------------------
1824 (
1825  void
1826 );
1827 
1828 //--------------------------------------------------------------------------------------------------
1829 /**
1830  * This function must be called to delete the Neighboring Cells information.
1831  *
1832  * @note On failure, the process exits, so you don't have to worry about checking the returned
1833  * reference for validity.
1834  *
1835  * @note <b>multi-app safe</b>
1836  */
1837 //--------------------------------------------------------------------------------------------------
1839 (
1840  le_mrc_NeighborCellsRef_t ngbrCellsRef
1841  ///< [IN] Neighboring Cells reference.
1842 );
1843 
1844 //--------------------------------------------------------------------------------------------------
1845 /**
1846  * This function must be called to get the first Cell Information reference in the list of
1847  * Neighboring Cells information retrieved with le_mrc_GetNeighborCellsInfo().
1848  *
1849  * @return NULL No Cell information object found.
1850  * @return le_mrc_CellInfoRef_t The Cell information object reference.
1851  *
1852  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1853  * function won't return.
1854  *
1855  * @note <b>multi-app safe</b>
1856  */
1857 //--------------------------------------------------------------------------------------------------
1859 (
1860  le_mrc_NeighborCellsRef_t ngbrCellsRef
1861  ///< [IN] Neighboring Cells reference.
1862 );
1863 
1864 //--------------------------------------------------------------------------------------------------
1865 /**
1866  * This function must be called to get the next Cell Information reference in the list of
1867  * Neighboring Cells information retrieved with le_mrc_GetNeighborCellsInfo().
1868  *
1869  * @return NULL No Cell information object found.
1870  * @return le_mrc_CellInfoRef_t Cell information object reference.
1871  *
1872  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1873  * function won't return.
1874  *
1875  * @note <b>multi-app safe</b>
1876  */
1877 //--------------------------------------------------------------------------------------------------
1879 (
1880  le_mrc_NeighborCellsRef_t ngbrCellsRef
1881  ///< [IN] Neighboring Cells reference.
1882 );
1883 
1884 //--------------------------------------------------------------------------------------------------
1885 /**
1886  * This function must be called to get the Cell Identifier.
1887  *
1888  * @return The Cell Identifier.
1889  *
1890  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1891  * function won't return.
1892  *
1893  * @note <b>multi-app safe</b>
1894  */
1895 //--------------------------------------------------------------------------------------------------
1896 uint32_t le_mrc_GetNeighborCellId
1897 (
1898  le_mrc_CellInfoRef_t ngbrCellInfoRef
1899  ///< [IN] Cell information reference.
1900 );
1901 
1902 //--------------------------------------------------------------------------------------------------
1903 /**
1904  * This function must be called to get the Location Area Code of a cell.
1905  *
1906  * @return The Location Area Code of a cell. UINT16_MAX value is returned if the value is not
1907  * available.
1908  *
1909  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1910  * function won't return.
1911  *
1912  * @note <b>multi-app safe</b>
1913  */
1914 //--------------------------------------------------------------------------------------------------
1916 (
1917  le_mrc_CellInfoRef_t ngbrCellInfoRef
1918  ///< [IN] Cell information reference.
1919 );
1920 
1921 //--------------------------------------------------------------------------------------------------
1922 /**
1923  * This function must be called to get the signal strength of a cell.
1924  *
1925  * @return The signal strength of a cell in dBm.
1926  *
1927  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1928  * function won't return.
1929  *
1930  * @note <b>multi-app safe</b>
1931  */
1932 //--------------------------------------------------------------------------------------------------
1934 (
1935  le_mrc_CellInfoRef_t ngbrCellInfoRef
1936  ///< [IN] Cell information reference.
1937 );
1938 
1939 //--------------------------------------------------------------------------------------------------
1940 /**
1941  * This function must be called to get the Radio Access Technology of a cell.
1942  *
1943  * @return The Radio Access Technology of a cell.
1944  *
1945  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1946  * function won't return.
1947  *
1948  * @note <b>multi-app safe</b>
1949  */
1950 //--------------------------------------------------------------------------------------------------
1952 (
1953  le_mrc_CellInfoRef_t ngbrCellInfoRef
1954  ///< [IN] Cell information reference.
1955 );
1956 
1957 //--------------------------------------------------------------------------------------------------
1958 /**
1959  * This function must be called to get the Ec/Io; the received energy per chip divided by the power
1960  * density in the band measured in dBm on the primary CPICH channel of serving cell (negative value)
1961  *
1962  * @return
1963  * - The Ec/Io of a cell given in dB with 1 decimal place. (only applicable for UMTS network).
1964  * - INT32_MAX when the value isn't available.
1965  *
1966  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1967  * function won't return.
1968  *
1969  * @note <b>multi-app safe</b>
1970  */
1971 //--------------------------------------------------------------------------------------------------
1973 (
1974  le_mrc_CellInfoRef_t ngbrCellInfoRef
1975  ///< [IN] Cell information reference.
1976 );
1977 
1978 //--------------------------------------------------------------------------------------------------
1979 /**
1980  * This function must be called to get the RSRP and RSRQ of the Intrafrequency of a LTE cell.
1981  *
1982  * @return
1983  * - LE_OK on success
1984  * - LE_FAULT on failure
1985  *
1986  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1987  * function won't return.
1988  *
1989  * @note <b>multi-app safe</b>
1990  */
1991 //--------------------------------------------------------------------------------------------------
1993 (
1994  le_mrc_CellInfoRef_t ngbrCellInfoRef,
1995  ///< [IN] Cell information reference.
1996  int32_t* rsrqPtr,
1997  ///< [OUT] Reference Signal Received Quality value in dB with 1 decimal
1998  ///< place
1999  int32_t* rsrpPtr
2000  ///< [OUT] Reference Signal Receiver Power value in dBm with 1 decimal
2001  ///< place
2002 );
2003 
2004 //--------------------------------------------------------------------------------------------------
2005 /**
2006  * This function must be called to get the RSRP and RSRQ of the Interfrequency of a LTE cell.
2007  *
2008  * @return
2009  * - LE_OK on success
2010  * - LE_FAULT on failure
2011  *
2012  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2013  * function won't return.
2014  *
2015  * @note <b>multi-app safe</b>
2016  */
2017 //--------------------------------------------------------------------------------------------------
2019 (
2020  le_mrc_CellInfoRef_t ngbrCellInfoRef,
2021  ///< [IN] Cell information reference.
2022  int32_t* rsrqPtr,
2023  ///< [OUT] Reference Signal Received Quality value in dB with 1 decimal
2024  ///< place
2025  int32_t* rsrpPtr
2026  ///< [OUT] Reference Signal Receiver Power value in dBm with 1 decimal
2027  ///< place
2028 );
2029 
2030 //--------------------------------------------------------------------------------------------------
2031 /**
2032  * This function must be called to measure the signal metrics. It creates and returns a reference
2033  * to the signal metrics.
2034  *
2035  * @return A reference to the signal metrics.
2036  * @return NULL if no signal metrics are available.
2037  *
2038  * @note <b>multi-app safe</b>
2039  */
2040 //--------------------------------------------------------------------------------------------------
2042 (
2043  void
2044 );
2045 
2046 //--------------------------------------------------------------------------------------------------
2047 /**
2048  * This function must be called to delete the the signal metrics.
2049  *
2050  * @note On failure, the process exits, so you don't have to worry about checking the returned
2051  * reference for validity.
2052  *
2053  * @note <b>multi-app safe</b>
2054  */
2055 //--------------------------------------------------------------------------------------------------
2057 (
2058  le_mrc_MetricsRef_t MetricsRef
2059  ///< [IN] Signal metrics reference.
2060 );
2061 
2062 //--------------------------------------------------------------------------------------------------
2063 /**
2064  * This function returns the Radio Access Technology of the signal metrics.
2065  *
2066  * @return The Radio Access Technology of the signal measure.
2067  *
2068  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2069  * function won't return.
2070  *
2071  * @note <b>multi-app safe</b>
2072  */
2073 //--------------------------------------------------------------------------------------------------
2075 (
2076  le_mrc_MetricsRef_t MetricsRef
2077  ///< [IN] Signal metrics reference.
2078 );
2079 
2080 //--------------------------------------------------------------------------------------------------
2081 /**
2082  * This function returns the signal strength in dBm and the bit error rate measured on GSM network.
2083  *
2084  * @return
2085  * - LE_OK on success
2086  * - LE_FAULT on failure
2087  *
2088  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2089  * function won't return.
2090  *
2091  * @note <b>multi-app safe</b>
2092  */
2093 //--------------------------------------------------------------------------------------------------
2095 (
2096  le_mrc_MetricsRef_t MetricsRef,
2097  ///< [IN] Signal metrics reference.
2098  int32_t* rssiPtr,
2099  ///< [OUT] Signal strength in dBm
2100  uint32_t* berPtr
2101  ///< [OUT] Bit error rate.
2102 );
2103 
2104 //--------------------------------------------------------------------------------------------------
2105 /**
2106  * This function returns the signal metrics measured on UMTS or TD-SCDMA networks.
2107  *
2108  * @return
2109  * - LE_OK on success
2110  * - LE_FAULT on failure
2111  *
2112  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2113  * function won't return.
2114  *
2115  * @note <b>multi-app safe</b>
2116  */
2117 //--------------------------------------------------------------------------------------------------
2119 (
2120  le_mrc_MetricsRef_t MetricsRef,
2121  ///< [IN] Signal metrics reference.
2122  int32_t* ssPtr,
2123  ///< [OUT] Signal strength in dBm
2124  uint32_t* blerPtr,
2125  ///< [OUT] Block error rate
2126  int32_t* ecioPtr,
2127  ///< [OUT] Ec/Io value in dB with 1 decimal place (-15 = -1.5 dB) (Negative
2128  ///< value)
2129  int32_t* rscpPtr,
2130  ///< [OUT] Measured RSCP in dBm (only applicable for TD-SCDMA network,
2131  ///< negative value, value INT32_MAX means that RSCP is not available)
2132  int32_t* sinrPtr
2133  ///< [OUT] Measured SINR in dB (only applicable for TD-SCDMA network, value
2134  ///< INT32_MAX means that the SINR is not available)
2135 );
2136 
2137 //--------------------------------------------------------------------------------------------------
2138 /**
2139  * This function returns the signal metrics measured on LTE network.
2140  *
2141  * @return
2142  * - LE_OK on success
2143  * - LE_FAULT on failure
2144  * - sinrPtr and ioPtr return INT32_MAX when the value isn't available.
2145  *
2146  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2147  * function won't return.
2148  *
2149  * @note <b>multi-app safe</b>
2150  */
2151 //--------------------------------------------------------------------------------------------------
2153 (
2154  le_mrc_MetricsRef_t MetricsRef,
2155  ///< [IN] Signal metrics reference.
2156  int32_t* ssPtr,
2157  ///< [OUT] Signal strength in dBm
2158  uint32_t* blerPtr,
2159  ///< [OUT] Block error rate
2160  int32_t* rsrqPtr,
2161  ///< [OUT] RSRQ value in dB as measured by L1 with 1 decimal place
2162  int32_t* rsrpPtr,
2163  ///< [OUT] Current RSRP in dBm as measured by L1 with 1 decimal place
2164  int32_t* sinrPtr
2165  ///< [OUT] SNR level in dB with 1 decimal place (15 = 1.5 dB)
2166 );
2167 
2168 //--------------------------------------------------------------------------------------------------
2169 /**
2170  * This function returns the signal metrics measured on CDMA network.
2171  *
2172  * @return
2173  * - LE_OK on success
2174  * - LE_FAULT on failure
2175  * - rscpPtr and sinrPtr return INT32_MAX when the value isn't available.
2176  *
2177  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2178  * function won't return.
2179  *
2180  * @note <b>multi-app safe</b>
2181  */
2182 //--------------------------------------------------------------------------------------------------
2184 (
2185  le_mrc_MetricsRef_t MetricsRef,
2186  ///< [IN] Signal metrics reference.
2187  int32_t* ssPtr,
2188  ///< [OUT] Signal strength in dBm
2189  uint32_t* erPtr,
2190  ///< [OUT] Frame/Packet error rate
2191  int32_t* ecioPtr,
2192  ///< [OUT] ECIO value in dB with 1 decimal place (-15 = -1.5 dB) (Negative
2193  ///< value)
2194  int32_t* sinrPtr,
2195  ///< [OUT] SINR level in dB with 1 decimal place, (only applicable for
2196  ///< 1xEV-DO, value INT32_MAX means that the value is not available)
2197  int32_t* ioPtr
2198  ///< [OUT] Received IO in dBm (only applicable for 1xEV-DO, value INT32_MAX
2199  ///< means that the value is not available)
2200 );
2201 
2202 //--------------------------------------------------------------------------------------------------
2203 /**
2204  * This function must be called to get the serving Cell Identifier.
2205  *
2206  * @return The Cell Identifier. UINT32_MAX value is returned if the value is not available.
2207  *
2208  * @note <b>multi-app safe</b>
2209  */
2210 //--------------------------------------------------------------------------------------------------
2211 uint32_t le_mrc_GetServingCellId
2212 (
2213  void
2214 );
2215 
2216 //--------------------------------------------------------------------------------------------------
2217 /**
2218  * This function must be called to get the Location Area Code of the serving cell.
2219  *
2220  * @return The Location Area Code. UINT32_MAX value is returned if the value is not available.
2221  *
2222  * @note <b>multi-app safe</b>
2223  */
2224 //--------------------------------------------------------------------------------------------------
2226 (
2227  void
2228 );
2229 
2230 //--------------------------------------------------------------------------------------------------
2231 /**
2232  * This function must be called to get the Tracking Area Code of the serving cell (LTE only).
2233  *
2234  * @return The Tracking Area Code. UINT16_MAX value is returned if the value is not available.
2235  *
2236  * @note <b>multi-app safe</b>
2237  */
2238 //--------------------------------------------------------------------------------------------------
2240 (
2241  void
2242 );
2243 
2244 //--------------------------------------------------------------------------------------------------
2245 /**
2246  * Get the Bit mask for 2G/3G Band capabilities.
2247  *
2248  * @return
2249  * - LE_OK on success
2250  * - LE_FAULT on failure
2251  * - LE_UNSUPPORTED The platform does not support this operation.
2252  *
2253  * @note <b>multi-app safe</b>
2254  */
2255 //--------------------------------------------------------------------------------------------------
2257 (
2258  le_mrc_BandBitMask_t* bandMaskPtrPtr
2259  ///< [OUT] Bit mask for 2G/3G Band capabilities.
2260 );
2261 
2262 //--------------------------------------------------------------------------------------------------
2263 /**
2264  * Get the Bit mask for LTE Band capabilities.
2265  *
2266  * @return
2267  * - LE_OK on success
2268  * - LE_FAULT on failure
2269  * - LE_UNSUPPORTED The platform does not support this operation.
2270  *
2271  * @note <b>multi-app safe</b>
2272  */
2273 //--------------------------------------------------------------------------------------------------
2275 (
2276  le_mrc_LteBandBitMask_t* bandMaskPtrPtr
2277  ///< [OUT] Bit mask for LTE Band capabilities.
2278 );
2279 
2280 //--------------------------------------------------------------------------------------------------
2281 /**
2282  * Get the Bit mask for TD-SCDMA Band capabilities.
2283  *
2284  * @return
2285  * - LE_OK on success
2286  * - LE_FAULT on failure
2287  * - LE_UNSUPPORTED The platform does not support this operation.
2288  *
2289  * @note <b>multi-app safe</b>
2290  */
2291 //--------------------------------------------------------------------------------------------------
2293 (
2294  le_mrc_TdScdmaBandBitMask_t* bandMaskPtrPtr
2295  ///< [OUT] Bit mask for TD-SCDMA Band capabilities.
2296 );
2297 
2298 #endif // LE_MRC_INTERFACE_H_INCLUDE_GUARD
le_result_t le_mrc_GetLteBandCapabilities(le_mrc_LteBandBitMask_t *bandMaskPtrPtr)
uint32_t le_mrc_GetNeighborCellId(le_mrc_CellInfoRef_t ngbrCellInfoRef)
le_result_t le_mrc_GetPreferredOperatorDetails(le_mrc_PreferredOperatorRef_t preferredOperatorRef, char *mccPtr, size_t mccPtrSize, char *mncPtr, size_t mncPtrSize, le_mrc_RatBitMask_t *ratMaskPtr)
LTE RAT Bit Mask.
Definition: le_mrc_interface.h:748
le_result_t le_mrc_GetGsmSignalMetrics(le_mrc_MetricsRef_t MetricsRef, int32_t *rssiPtr, uint32_t *berPtr)
CDMA RAT Bit Mask.
Definition: le_mrc_interface.h:749
le_result_t le_mrc_GetSignalQual(uint32_t *qualityPtr)
uint16_t le_mrc_GetServingCellLteTracAreaCode(void)
void le_mrc_DeleteNeighborCellsInfo(le_mrc_NeighborCellsRef_t ngbrCellsRef)
le_mrc_CellInfoRef_t le_mrc_GetNextNeighborCellInfo(le_mrc_NeighborCellsRef_t ngbrCellsRef)
void le_mrc_RemovePacketSwitchedChangeHandler(le_mrc_PacketSwitchedChangeHandlerRef_t handlerRef)
le_result_t le_mrc_GetNetRegState(le_mrc_NetRegState_t *statePtr)
le_mrc_RatChangeHandlerRef_t le_mrc_AddRatChangeHandler(le_mrc_RatChangeHandlerFunc_t handlerPtr, void *contextPtr)
le_result_t le_mrc_SetAutomaticRegisterMode(void)
struct le_mrc_PreferredOperatorList * le_mrc_PreferredOperatorListRef_t
Definition: le_mrc_interface.h:667
le_result_t le_mrc_SetSignalStrengthIndThresholds(le_mrc_Rat_t rat, int32_t lowerRangeThreshold, int32_t upperRangeThreshold)
struct le_mrc_PreferredOperator * le_mrc_PreferredOperatorRef_t
Definition: le_mrc_interface.h:659
le_mrc_SignalStrengthChangeHandlerRef_t le_mrc_AddSignalStrengthChangeHandler(le_mrc_Rat_t rat, int32_t lowerRangeThreshold, int32_t upperRangeThreshold, le_mrc_SignalStrengthChangeHandlerFunc_t handlerPtr, void *contextPtr)
le_result_t le_mrc_GetRadioPower(le_onoff_t *powerPtr)
uint32_t le_mrc_GetServingCellId(void)
le_mrc_NetRegStateEventHandlerRef_t le_mrc_AddNetRegStateEventHandler(le_mrc_NetRegStateHandlerFunc_t handlerPtr, void *contextPtr)
void(* le_mrc_DisconnectHandler_t)(void *)
Definition: le_mrc_interface.h:412
le_result_t
Definition: le_basics.h:35
le_result_t le_mrc_SetRadioPower(le_onoff_t power)
le_result_t le_mrc_GetCurrentNetworkMccMnc(char *mccStr, size_t mccStrSize, char *mncStr, size_t mncStrSize)
struct le_mrc_NeighborCells * le_mrc_NeighborCellsRef_t
Definition: le_mrc_interface.h:683
le_result_t le_mrc_SetTdScdmaBandPreferences(le_mrc_TdScdmaBandBitMask_t bandMask)
void le_mrc_SetManualRegisterModeAsync(const char *mcc, const char *mnc, le_mrc_ManualSelectionHandlerFunc_t handlerPtr, void *contextPtr)
struct le_mrc_Metrics * le_mrc_MetricsRef_t
Definition: le_mrc_interface.h:691
le_result_t le_mrc_GetPacketSwitchedState(le_mrc_NetRegState_t *statePtr)
UMTS or TD-SCDMA networks.
Definition: le_mrc_interface.h:728
TD-SCDMA RAT Bit Mask.
Definition: le_mrc_interface.h:747
le_mrc_Rat_t le_mrc_GetRatOfSignalMetrics(le_mrc_MetricsRef_t MetricsRef)
struct le_mrc_NetRegStateEventHandler * le_mrc_NetRegStateEventHandlerRef_t
Definition: le_mrc_interface.h:761
le_result_t le_mrc_GetTdScdmaBandPreferences(le_mrc_TdScdmaBandBitMask_t *bandMaskPtrPtr)
void le_mrc_DeleteSignalMetrics(le_mrc_MetricsRef_t MetricsRef)
struct le_mrc_RatChangeHandler * le_mrc_RatChangeHandlerRef_t
Definition: le_mrc_interface.h:769
le_mrc_CellInfoRef_t le_mrc_GetFirstNeighborCellInfo(le_mrc_NeighborCellsRef_t ngbrCellsRef)
Registered to a roaming network.
Definition: le_mrc_interface.h:709
void(* le_mrc_ManualSelectionHandlerFunc_t)(le_result_t result, void *contextPtr)
Definition: le_mrc_interface.h:867
le_result_t le_mrc_GetCdmaSignalMetrics(le_mrc_MetricsRef_t MetricsRef, int32_t *ssPtr, uint32_t *erPtr, int32_t *ecioPtr, int32_t *sinrPtr, int32_t *ioPtr)
le_result_t le_mrc_GetNeighborCellLteIntraFreq(le_mrc_CellInfoRef_t ngbrCellInfoRef, int32_t *rsrqPtr, int32_t *rsrpPtr)
struct le_mrc_ScanInformationList * le_mrc_ScanInformationListRef_t
Definition: le_mrc_interface.h:651
le_result_t le_mrc_TryConnectService(void)
void(* le_mrc_PacketSwitchedChangeHandlerFunc_t)(le_mrc_NetRegState_t state, void *contextPtr)
Definition: le_mrc_interface.h:823
LTE network.
Definition: le_mrc_interface.h:730
void(* le_mrc_RatChangeHandlerFunc_t)(le_mrc_Rat_t rat, void *contextPtr)
Definition: le_mrc_interface.h:809
le_result_t le_mrc_GetRatPreferences(le_mrc_RatBitMask_t *ratMaskPtrPtr)
struct le_mrc_CellInfo * le_mrc_CellInfoRef_t
Definition: le_mrc_interface.h:675
le_mrc_ScanInformationListRef_t le_mrc_PerformCellularNetworkScan(le_mrc_RatBitMask_t ratMask)
le_result_t le_mrc_SetBandPreferences(le_mrc_BandBitMask_t bandMask)
le_result_t le_mrc_SetRatPreferences(le_mrc_RatBitMask_t ratMask)
void le_mrc_DeleteCellularNetworkScan(le_mrc_ScanInformationListRef_t scanInformationListRef)
int32_t le_mrc_GetNeighborCellRxLevel(le_mrc_CellInfoRef_t ngbrCellInfoRef)
le_mrc_PacketSwitchedChangeHandlerRef_t le_mrc_AddPacketSwitchedChangeHandler(le_mrc_PacketSwitchedChangeHandlerFunc_t packetHandlerPtr, void *contextPtr)
le_result_t le_mrc_GetNeighborCellLteInterFreq(le_mrc_CellInfoRef_t ngbrCellInfoRef, int32_t *rsrqPtr, int32_t *rsrpPtr)
void le_mrc_RemoveSignalStrengthChangeHandler(le_mrc_SignalStrengthChangeHandlerRef_t handlerRef)
struct le_mrc_SignalStrengthChangeHandler * le_mrc_SignalStrengthChangeHandlerRef_t
Definition: le_mrc_interface.h:785
le_mrc_NeighborCellsRef_t le_mrc_GetNeighborCellsInfo(void)
le_mrc_Rat_t le_mrc_GetCellularNetworkRat(le_mrc_ScanInformationRef_t scanInformationRef)
void le_mrc_RemoveRatChangeHandler(le_mrc_RatChangeHandlerRef_t handlerRef)
Registered, home network.
Definition: le_mrc_interface.h:703
uint32_t le_mrc_GetServingCellLocAreaCode(void)
le_mrc_PreferredOperatorRef_t le_mrc_GetFirstPreferredOperator(le_mrc_PreferredOperatorListRef_t preferredOperatorListRef)
void le_mrc_PerformCellularNetworkScanAsync(le_mrc_RatBitMask_t ratMask, le_mrc_CellularNetworkScanHandlerFunc_t handlerPtr, void *contextPtr)
GSM network.
Definition: le_mrc_interface.h:726
void(* le_mrc_NetRegStateHandlerFunc_t)(le_mrc_NetRegState_t state, void *contextPtr)
Definition: le_mrc_interface.h:795
To Set all RAT preference Bit Mask.
Definition: le_mrc_interface.h:750
le_mrc_RatBitMask_t
Definition: le_mrc_interface.h:743
int32_t le_mrc_GetPlatformSpecificRegistrationErrorCode(void)
le_mrc_PreferredOperatorRef_t le_mrc_GetNextPreferredOperator(le_mrc_PreferredOperatorListRef_t preferredOperatorListRef)
CDMA network.
Definition: le_mrc_interface.h:732
le_mrc_Rat_t
Definition: le_mrc_interface.h:722
le_result_t le_mrc_GetTdScdmaBandCapabilities(le_mrc_TdScdmaBandBitMask_t *bandMaskPtrPtr)
le_result_t le_mrc_GetRegisterMode(bool *isManualPtrPtr, char *mccPtr, size_t mccPtrSize, char *mncPtr, size_t mncPtrSize)
Unknown.
Definition: le_mrc_interface.h:724
le_result_t le_mrc_SetLteBandPreferences(le_mrc_LteBandBitMask_t bandMask)
bool le_mrc_IsCellularNetworkForbidden(le_mrc_ScanInformationRef_t scanInformationRef)
struct le_mrc_ScanInformation * le_mrc_ScanInformationRef_t
Definition: le_mrc_interface.h:643
int32_t le_mrc_GetNeighborCellUmtsEcIo(le_mrc_CellInfoRef_t ngbrCellInfoRef)
le_result_t le_mrc_GetCellularNetworkMccMnc(le_mrc_ScanInformationRef_t scanInformationRef, char *mccPtr, size_t mccPtrSize, char *mncPtr, size_t mncPtrSize)
le_result_t le_mrc_RemovePreferredOperator(const char *mcc, const char *mnc)
le_mrc_ScanInformationRef_t le_mrc_GetNextCellularNetworkScan(le_mrc_ScanInformationListRef_t scanInformationListRef)
void le_mrc_SetServerDisconnectHandler(le_mrc_DisconnectHandler_t disconnectHandler, void *contextPtr)
le_result_t le_mrc_GetCurrentNetworkName(char *nameStr, size_t nameStrSize)
le_result_t le_mrc_GetRadioAccessTechInUse(le_mrc_Rat_t *ratPtr)
le_result_t le_mrc_SetManualRegisterMode(const char *mcc, const char *mnc)
le_mrc_PreferredOperatorListRef_t le_mrc_GetPreferredOperatorsList(void)
le_result_t le_mrc_GetLteBandPreferences(le_mrc_LteBandBitMask_t *bandMaskPtrPtr)
le_result_t le_mrc_GetBandCapabilities(le_mrc_BandBitMask_t *bandMaskPtrPtr)
bool le_mrc_IsCellularNetworkHome(le_mrc_ScanInformationRef_t scanInformationRef)
le_result_t le_mrc_GetCellularNetworkName(le_mrc_ScanInformationRef_t scanInformationRef, char *namePtr, size_t namePtrSize)
void le_mrc_ConnectService(void)
void le_mrc_DeletePreferredOperatorsList(le_mrc_PreferredOperatorListRef_t preferredOperatorListRef)
Not registered but currently searching for a new operator.
Definition: le_mrc_interface.h:705
le_result_t le_mrc_GetLteSignalMetrics(le_mrc_MetricsRef_t MetricsRef, int32_t *ssPtr, uint32_t *blerPtr, int32_t *rsrqPtr, int32_t *rsrpPtr, int32_t *sinrPtr)
le_mrc_BandBitMask_t
Definition: le_mrc_interface.h:532
le_result_t le_mrc_GetUmtsSignalMetrics(le_mrc_MetricsRef_t MetricsRef, int32_t *ssPtr, uint32_t *blerPtr, int32_t *ecioPtr, int32_t *rscpPtr, int32_t *sinrPtr)
void(* le_mrc_SignalStrengthChangeHandlerFunc_t)(int32_t ss, void *contextPtr)
Definition: le_mrc_interface.h:837
void le_mrc_DisconnectService(void)
bool le_mrc_IsCellularNetworkInUse(le_mrc_ScanInformationRef_t scanInformationRef)
void(* le_mrc_CellularNetworkScanHandlerFunc_t)(le_mrc_ScanInformationListRef_t listRef, void *contextPtr)
Definition: le_mrc_interface.h:852
le_mrc_NetRegState_t
Definition: le_mrc_interface.h:699
uint32_t le_mrc_GetNeighborCellLocAreaCode(le_mrc_CellInfoRef_t ngbrCellInfoRef)
le_result_t le_mrc_AddPreferredOperator(const char *mcc, const char *mnc, le_mrc_RatBitMask_t ratMask)
le_mrc_MetricsRef_t le_mrc_MeasureSignalMetrics(void)
le_mrc_LteBandBitMask_t
Definition: le_mrc_interface.h:582
Unknown state.
Definition: le_mrc_interface.h:711
bool le_mrc_IsCellularNetworkAvailable(le_mrc_ScanInformationRef_t scanInformationRef)
Registration was denied, usually because of invalid access credentials.
Definition: le_mrc_interface.h:707
UMTS RAT Bit Mask.
Definition: le_mrc_interface.h:746
le_mrc_TdScdmaBandBitMask_t
Definition: le_mrc_interface.h:626
Not registered and not currently searching for new operator.
Definition: le_mrc_interface.h:701
GSM RAT Bit Mask.
Definition: le_mrc_interface.h:745
le_result_t le_mrc_GetBandPreferences(le_mrc_BandBitMask_t *bandMaskPtrPtr)
struct le_mrc_PacketSwitchedChangeHandler * le_mrc_PacketSwitchedChangeHandlerRef_t
Definition: le_mrc_interface.h:777
void le_mrc_RemoveNetRegStateEventHandler(le_mrc_NetRegStateEventHandlerRef_t handlerRef)
le_mrc_ScanInformationRef_t le_mrc_GetFirstCellularNetworkScan(le_mrc_ScanInformationListRef_t scanInformationListRef)
le_mrc_Rat_t le_mrc_GetNeighborCellRat(le_mrc_CellInfoRef_t ngbrCellInfoRef)
le_onoff_t
Definition: le_basics.h:70