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_NetworkRejectHandler Report Network Reject Indication
120  *
121  * The application can register a handler function to report network reject with MNC/MCC code and
122  * the Radio Access Technology using le_mrc_AddNetworkRejectHandler() API.
123  *
124  * le_mrc_RemoveNetworkRejectHandler() API uninstalls the handler function.
125  *
126  * @section le_mrc_capabilities Radio Capabilities
127  *
128  * le_mrc_GetBandCapabilities() let you get the 2G/3G band capabilities by retrieving a bit mask
129  * built with @c le_mrc_BandBitMask_t
130  *
131  * le_mrc_GetLteBandCapabilities() let you get the LTE band capabilities by retrieving a bit mask
132  * built with @c le_mrc_LteBandBitMask_t
133  *
134  * le_mrc_GetTdScdmaBandCapabilities() let you get the TD-SCDMA band capabilities by retrieving
135  * a bit mask built with @c le_mrc_TdScdmaBandBitMask_t
136  *
137  * A sample code can be seen in the following page:
138  * - @subpage c_mrcBandCapabilities
139  *
140  * @section le_mrc_rat Radio Access Technology (RAT)
141  * le_mrc_GetRadioAccessTechInUse() API retrieves the current active Radio Access Technology (RAT).
142  * @note The API returns the RAT only if the device is registered on the network.
143  *
144  * The application can register a handler function to retrieve the Radio Access Technology each time
145  * the RAT changes.
146  *
147  * le_mrc_AddRatChangeHandler() API installs a RAT change handler.
148  *
149  * le_mrc_RemoveRatChangeHandler() API uninstalls the handler function.
150  *
151  * le_mrc_SetRatPreferences(), le_mrc_GetRatPreferences() let you set/get the Radio Access
152  * Technology preferences by using a bit mask built with @c le_mrc_RatBitMask_t.
153  *
154  * The Radio Access Technology preferences can be:
155  * - CDMA (CDMA2000-1X + CDMA2000-HRPD)
156  * - GSM
157  * - UMTS (UMTS)
158  * - TDSCDMA (TD-SCDMA)
159  * - LTE
160  *
161  * @note LE_MRC_BITMASK_RAT_ALL value can be used to select the RAT in automatic mode.
162  *
163  * A sample code can be seen in the following page:
164  * - @subpage c_mrcRAT
165  *
166  * @section le_mrc_registration Network Registration
167  * le_mrc_GetNetRegState() API retrieves the radio module network registration status.
168  *
169  * The application can register a handler function to retrieve the registration status each time the
170  * registration state changes.
171  *
172  * le_mrc_AddNetRegStateEventHandler() API installs a registration state handler.
173  *
174  * le_mrc_RemoveNetRegStateEventHandler() API uninstalls the handler function.
175  * @note If only one handler is registered, the le_mrc_RemoveNetRegStateHandler() API
176  * resets the registration mode to its original value before any handler functions were added.
177  *
178  * le_mrc_SetManualRegisterMode() API registers on a cellular network.
179  *
180  * Call le_mrc_SetManualRegisterModeAsync() function to set the manual registration mode
181  * asynchronously. The function is not blocking. The response will be returned with the
182  * @c le_mrc_ManualSelectionHandlerFunc_t handler function.
183  *
184  * When the network registration fails, the platform specific network registration error code can
185  * be known by using le_mrc_GetPlatformSpecificRegistrationErrorCode() API.
186  * Please refer to @ref platformConstraintsSpecificErrorCodes for platform specific
187  * registration error code description.
188  *
189  * A sample code can be seen in the following page:
190  * - @subpage c_mrcNetworkRegistration
191  *
192  * @section le_mrc_service Packet services state
193  *
194  * le_mrc_GetPacketSwitchedState() API retrieves the current Packet Switched state
195  * @ref le_mrc_NetRegState_t.
196  *
197  * The Packet Switched services state can be:
198  * - NONE
199  * - HOME
200  * - ROAMING
201  *
202  * The application can register a handler function to retrieve the Packet
203  * Switched state each time the service state changes.
204  *
205  * le_mrc_AddPacketSwitchedChangeHandler() API installs a Packet Switched state handler.
206  *
207  * le_mrc_RemovePacketSwitchedChangeHandler() API uninstalls the handler function.
208  *
209  * A sample code can be seen in the following page:
210  * - @subpage c_mrcGetService
211  *
212  * @section le_mrc_signal Signal Quality
213  *
214  * le_mrc_GetSignalQual() retrieves the received signal strength details.
215  *
216  * You must call le_mrc_MeasureSignalMetrics() to measure the signal metrics of the serving cell
217  * (aka the 'serving' cell). It returns a reference of le_mrc_MetricsRef_t type.
218  *
219  * When the signal metrics are no longer needed, you must call le_mrc_DeleteSignalMetrics() to free
220  * all allocated ressources associated with the Metrics object.
221  *
222  * le_mrc_GetRatOfSignalMetrics() returns the Radio Access Technology of the signal measures.
223  *
224  * le_mrc_GetGsmSignalMetrics() the signal strength in dBm and the bit error rate measured on GSM
225  * network.
226  *
227  * le_mrc_GetUmtsSignalMetrics() returns the signal metrics measured on UMTS or TD-SCDMA networks.
228  *
229  * le_mrc_GetLteSignalMetrics() returns the signal metrics measured on LTE network.
230  *
231  * le_mrc_GetCdmaSignalMetrics() returns the signal metrics measured on CDMA network.
232  *
233  * The application can register a handler function to get notifications when the signal strength
234  * changes of a certain threshold value.
235  *
236  * le_mrc_AddSignalStrengthChangeHandler() API installs a signal strength change handler.
237  * The RAT, the lower-range and the upper-range thresholds must be passed as input parameters. These
238  * parameters are updated each time the function is called, the previous thresholds are replaced by
239  * the new ones if the function is called with the same RAT. The event is notified when we cross the
240  * range limits in both direction.
241  *
242  * @warning A fatal error will be thrown if the RAT is not valid and the
243  * le_mrc_AddSignalStrengthChangeHandler function won't return.
244  *
245  * le_mrc_RemoveSignalStrengthChangeHandler() API uninstalls the handler function.
246  *
247  * le_mrc_SetSignalStrengthIndThresholds() API changes or sets new thresholds.
248  *
249  * le_mrc_SetSignalStrengthIndDelta() API sets a signal strength indication delta value for a
250  * specific RAT. The event is notified when the delta range is crossed in both direction.
251  *
252  * A sample code can be seen in the following page:
253  * - @subpage c_mrcQuality
254  *
255  * @section le_mrc_location Serving cell's location information
256  *
257  * le_mrc_GetServingCellId() retrieves the the serving Cell Identifier.
258  *
259  * le_mrc_GetServingCellLocAreaCode() retrieves the Location Area Code of the serving cell.
260  *
261  * le_mrc_GetServingCellLteTracAreaCode() retrieves the the Tracking Area Code of the serving cell
262  * (LTE only).
263  *
264  * A sample code can be seen in the following page:
265  * - @subpage c_mrcLocationinformation
266  *
267  * @section le_mrc_network_information Current Network Information
268  * le_mrc_GetCurrentNetworkName() retrieves the Current Network Name.
269  * le_mrc_GetCurrentNetworkMccMnc() retrieves the Current Network PLMN information.
270  *
271  * A sample code can be seen in the following page:
272  * - @subpage c_mrcGetCurrentNetwork
273  *
274  * @section le_mrc_networkScan Network Scan
275  *
276  * Call le_mrc_PerformCellularNetworkScan() to fill a list of all network in sight.
277  * You can go through all Scan Information by calling le_mrc_GetFirstCellularNetworkScan() and
278  * le_mrc_GetNextCellularNetworkScan().
279  *
280  * Call le_mrc_PerformCellularNetworkScanAsync() to start a network scan asynchronously. The
281  * function is not blocking. The scan list reference will be returned with the handler function
282  * response (@c le_mrc_CellularNetworkScanHandlerFunc_t).
283  *
284  * For each Scan Information, you can call:
285  *
286  * - le_mrc_GetCellularNetworkMccMnc() to have the operator code.
287  * - le_mrc_GetCellularNetworkName() to get the operator name.
288  * - le_mrc_GetCellularNetworkRat() to get the radio access technology.
289  * - le_mrc_IsCellularNetworkInUse() to check if this is currently in use by the network.
290  * - le_mrc_IsCellularNetworkAvailable() to check if this is available.
291  * - le_mrc_IsCellularNetworkHome() to check if this is in home status.
292  * - le_mrc_IsCellularNetworkForbidden() to check if this is forbidden by the network.
293  *
294  * le_mrc_DeleteCellularNetworkScan() should be called when you do not need the list anymore.
295  *
296  * A sample code can be seen in the following page:
297  * - @subpage c_mrcNetworkScan
298  *
299  * @section le_mrc_PcinetworkScan PCI Network Scan
300  *
301  * Call le_mrc_PerformPciNetworkScan() to fill a list of all neighboring cells.
302  * The Pci scan is used to get the according MCC/MNC for each neightboring cells ID. Not that a cell
303  * may contain more than one MCC/MNC when sevral plmn sharing the same cell.
304  * You can go through all Scan Information by calling le_mrc_GetFirstPciScanInfo() and
305  * le_mrc_GetNextPciScanInfo(). Note that each cell info contains a list of mcc/mnc, you can go
306  * through all mcc/mnc Information for each cell by calling le_mrc_GetFirstPlmnInfo()
307  * and le_mrc_GetNextPlmnInfo(), this two APIs return a reference to PlmnInformation, then use
308  * le_mrc_GetPciScanMccMnc() by giving this reference as parameter to get the Mcc/Mnc of the Plmn.
309  * Call le_mrc_PerformPciNetworkScanAsync()to start a pci scan asynchronously. The
310  * function is not blocking. The scan list reference will be returned with the handler function
311  * response (@c le_mrc_PciNetworkScanHandlerFunc_t).
312  *
313  *
314  * For Pci Network Scan Information, you can call:
315  *
316  * - le_mrc_GetPciScanCellId() to get the id of each cell.
317  * - le_mrc_GetPciScanMccMnc() to get the Mcc/Mnc of each plmn on each cell.
318  * - le_mrc_DeletePciNetworkScan() should be called when you do not need the list anymore.
319  *
320  * This code sample shows how to use the PCI scan API and display the apropriate values
321  * @code
322  *void DisplayPciScanInfo
323  *(
324  * void
325  *)
326  *{
327  * uint16_t celId = O;
328  * char mcc[LE_MRC_MCC_BYTES] = {0};
329  * char mnc[LE_MRC_MNC_BYTES] = {0};
330  * le_mrc_PciScanInformationListRef_t scanInfoListRef = NULL;
331  * le_mrc_PciScanInformationRef_t scanInfoRef = NULL;
332  * le_mrc_PlmnInformationRef_t plmnInfoRef = NULL;
333  *
334  * scanInfoListRef = le_mrc_PerformPciNetworkScan(LE_MRC_BITMASK_RAT_LTE);
335  * LE_ASSERT(scanInfoListRef != NULL);
336  *
337  * // Get the information (cell, Mcc,Mnc) of the first cell.
338  * scanInfoRef = le_mrc_GetFirstCellularNetworkScan(scanInfoListRef);
339  *
340  * celId = le_mrc_GetPciScanCellId (scanInfoRef);
341  *
342  * // Get the first plmn information of the first cell.
343  * PlmnInfoRef = le_mrc_GetFirstPlmnInfo(scanInfoRef);
344  * le_mrc_GetPciScanMccMnc(PlmnInfoRef, mcc, LE_MRC_MCC_BYTES, mnc, LE_MRC_MCC_BYTES);
345  * LE_INFO("Cell id is %"PRIu16", Mcc is %s, Mnc is %s !",celId, mcc, mnc");
346  *
347  * // Get the next plmn information of the first cell.
348  * while ((PlmnInfoRef = le_mrc_GetNextPlmnInfo(scanInfoRef)) != NULL)
349  * {
350  * le_mrc_GetPciScanMccMnc(PlmnInfoRef, mcc, LE_MRC_MCC_BYTES, mnc, LE_MRC_MCC_BYTES);
351  * LE_INFO("Cell id is %"PRIu16", Mcc is %s, Mnc is %s !",celId, mcc, mnc");
352  * }
353  *
354  * // Get the information (cell, Mcc,Mnc) of the next cells.
355  * while ((scanInfoRef = le_mrc_GetNextCellularNetworkScan(scanInfoListRef)) != NULL)
356  * {
357  * celId = le_mrc_GetPciScanCellId (scanInfoRef);
358  *
359  * PlmnInfoRef = le_mrc_GetFirstPlmnInfo(scanInfoRef);
360  * le_mrc_GetPciScanMccMnc(PlmnInfoRef, mcc, LE_MRC_MCC_BYTES, mnc, LE_MRC_MCC_BYTES);
361  * LE_INFO("Cell id is %"PRIu16", Mcc is %s, Mnc is %s !",celId, mcc, mnc");
362  * while ((PlmnInfoRef = le_mrc_GetNextPlmnInfo(scanInfoRef)) != NULL)
363  * {
364  * le_mrc_GetPciScanMccMnc(PlmnInfoRef, mcc, LE_MRC_MCC_BYTES, mnc, LE_MRC_MCC_BYTES);
365  * LE_INFO("Cell id is %"PRIu16", Mcc is %s, Mnc is %s !",celId, mcc, mnc");
366  * }
367  * }
368  * le_mrc_DeletePciNetworkScan(scanInfoListRef);
369  *}
370  * @endcode
371  *
372  * @section le_mrc_ngbr Neighboring Cells Information
373  *
374  * @warning The following functions do not apply to CDMA network.
375  *
376  * You must call le_mrc_GetNeighborCellsInfo() to retrieve the neighboring cells
377  * information. It returns a reference of le_mrc_NeighborCellsRef_t type.
378  *
379  * When the neighboring cells information is no longer needed, you must call
380  * le_mrc_DeleteNeighborCellsInfo() to free all allocated resources associated with the
381  * object.
382  *
383  * Then, you can use the following function to get the information:
384  * - le_mrc_GetFirstNeighborCellInfo() and le_mrc_GetFirstNeighborCellInfo() allow to go among
385  * the single cell information retrieved with le_mrc_GetNeighborCellsInfo(). These two functions
386  * return a reference of le_mrc_CellInfoRef_t type.
387  * - le_mrc_GetNeighborCellId() gets the identifier of the cell specified with the
388  * le_mrc_CellInfoRef_t parameter (can be called for any kind of RAT). UINT32_MAX value is
389  * returned if the value is not available.
390  * - le_mrc_GetNeighborCellLocAreaCode() gets the location area code of the cell specified with the
391  * le_mrc_CellInfoRef_t parameter (can be called for any kind of RAT). UINT16_MAX value is
392  * returned if the value is not available.
393  * - le_mrc_GetNeighborCellRxLevel() gets the signal strength (in dBm) of the cell specified with
394  * the le_mrc_CellInfoRef_t parameter (can be called for any kind of RAT).
395  * - le_mrc_GetNeighborCellRat() gets the Radio Access Technology of the cell specified with
396  * the le_mrc_CellInfoRef_t parameter.
397  * - le_mrc_GetNeighborCellUmtsEcIo() gets the Ec/Io (the received energy per chip divided by the
398  * power density in the band measured in dBm on the primary CPICH channel of serving cell) of the
399  * cell specified with the le_mrc_CellInfoRef_t parameter.
400  * - le_mrc_GetNeighborCellLteIntraFreq() gets the RSRP and RSRQ of the Interfrequency of the cell
401  * specified with the le_mrc_CellInfoRef_t parameter.
402  * - le_mrc_GetNeighborCellLteInterFreq() gets the RSRP and RSRQ of the Interfrequency of the cell
403  * specified with the le_mrc_CellInfoRef_t parameter.
404  *
405  * A sample code can be seen in the following page:
406  * - @subpage c_mrcNeighborCells
407  *
408  * @section le_mrc_jamming Jamming detection
409  *
410  * The jamming detection algorithm is based on power measurements and cell synchronization actions
411  * performed during a GSM network scan procedure.
412  * During this procedure some intermediate results are reported, that allows user to take some
413  * preventive actions if necessary.
414  * This result is reported as a jammed state probability. See @ref le_mrc_JammingStatus_t
415  * enumeration for probability description.
416  * Each time the jamming status changes during the scan procedure, it is reported to the user.
417  * See @ref le_mrc_JammingReport_t enumeration for details.
418  *
419  * The jamming status is reported:
420  * - In an unsolicited way, each time the protocol stack initiates a scan for PLMN selection or
421  * reselection.
422  * - On user demand, when a user PLMN scan is performed.
423  *
424  * Call le_mrc_StartJammingDetection() to launch jamming monitoring.
425  * By registering a handler by calling le_mrc_AddJammingDetectionEventHandler(), the notification
426  * on jamming detection can be sent to the registered application.
427  *
428  * For each jamming detection monitoring, the following APIs can be called:
429  * - le_mrc_StartJammingDetection() to start the jamming monitoring.
430  * - le_mrc_StopJammingDetection() to stop the jamming monitoring.
431  * - le_mrc_AddJammingDetectionEventHandler() to register an event handler.
432  * - le_mrc_RemoveJammingDetectionEventHandler() to remove an event handler.
433  *
434  * @section le_mrc_sar SAR backoff
435  * SAR (Specific Absorption Rate) is a measure of RF energy absorption by the human body.
436  * Users can dynamically select a pre-configured SAR backoff state so they can adjust the SAR
437  * depending on their needs. To manage SAR backoff, these API should be used:
438  * - le_mrc_SetSarBackoffState() to set a new SAR backoff state.
439  * - le_mrc_GetSarBackoffState() to get the current SAR backoff state.
440  * This feature may be unsupported by some targets. Also, the number of supported states may vary
441  * depending on the target. Please refer to @ref platformConstraintsMdc for further details.
442  *
443  * <HR>
444  *
445  * Copyright (C) Sierra Wireless Inc.
446  */
447 /**
448  * @page c_mrcRadioPower Sample code for Radio Power Management
449  *
450  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Radio Power
451  */
452 /**
453  * @page c_mrcRadioConfigurationPreferences Sample code for Radio Configuration Preferences
454  *
455  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Band Preferences
456  *
457  */
458 /**
459  * @page c_mrcRAT Sample code for Radio Access Technology
460  *
461  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" RAT in Use
462  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" RAT Preferences
463  *
464  */
465 /**
466  * @page c_mrcNetworkRegistration Sample code for Network Registration
467  *
468  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Register
469  *
470  */
471 /**
472  * @page c_mrcQuality Sample code for Signal Quality
473  *
474  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Signal Quality
475  *
476  */
477 /**
478  * @page c_mrcLocationinformation Sample code for Location information
479  *
480  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Loc information
481  *
482  */
483 /**
484  * @page c_mrcBandCapabilities Sample code for Band Capabilities
485  *
486  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Band Capabilities
487  *
488  */
489 /**
490  * @page c_mrcGetCurrentNetwork Sample code for Get Current Network Information
491  *
492  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Get Network
493  *
494  */
495 /**
496  * @page c_mrcNetworkScan Sample code for Network Scan
497  *
498  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Network Scan
499  *
500  */
501 /**
502  * @page c_mrcNeighborCells Sample code for Neighboring Cells Information
503  *
504  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Neighbor Cells
505  *
506  */
507 /**
508  * @page c_mrcGetService Sample code for Get the Current Packet Switched state
509  *
510  * @snippet "apps/test/modemServices/mrc/mrcIntegrationTest/mrcTest/le_mrcTest.c" Service State
511  *
512  */
513 /**
514  * @file le_mrc_interface.h
515  *
516  * Legato @ref c_mrc include file.
517  *
518  * Copyright (C) Sierra Wireless Inc.
519  */
520 
521 #ifndef LE_MRC_INTERFACE_H_INCLUDE_GUARD
522 #define LE_MRC_INTERFACE_H_INCLUDE_GUARD
523 
524 
525 #include "legato.h"
526 
527 
528 //--------------------------------------------------------------------------------------------------
529 /**
530  * Type for handler called when a server disconnects.
531  */
532 //--------------------------------------------------------------------------------------------------
533 typedef void (*le_mrc_DisconnectHandler_t)(void *);
534 
535 //--------------------------------------------------------------------------------------------------
536 /**
537  *
538  * Connect the current client thread to the service providing this API. Block until the service is
539  * available.
540  *
541  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
542  * called before any other functions in this API. Normally, ConnectService is automatically called
543  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
544  *
545  * This function is created automatically.
546  */
547 //--------------------------------------------------------------------------------------------------
549 (
550  void
551 );
552 
553 //--------------------------------------------------------------------------------------------------
554 /**
555  *
556  * Try to connect the current client thread to the service providing this API. Return with an error
557  * if the service is not available.
558  *
559  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
560  * called before any other functions in this API. Normally, ConnectService is automatically called
561  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
562  *
563  * This function is created automatically.
564  *
565  * @return
566  * - LE_OK if the client connected successfully to the service.
567  * - LE_UNAVAILABLE if the server is not currently offering the service to which the client is
568  * bound.
569  * - LE_NOT_PERMITTED if the client interface is not bound to any service (doesn't have a binding).
570  * - LE_COMM_ERROR if the Service Directory cannot be reached.
571  */
572 //--------------------------------------------------------------------------------------------------
574 (
575  void
576 );
577 
578 //--------------------------------------------------------------------------------------------------
579 /**
580  * Set handler called when server disconnection is detected.
581  *
582  * When a server connection is lost, call this handler then exit with LE_FATAL. If a program wants
583  * to continue without exiting, it should call longjmp() from inside the handler.
584  */
585 //--------------------------------------------------------------------------------------------------
587 (
588  le_mrc_DisconnectHandler_t disconnectHandler,
589  void *contextPtr
590 );
591 
592 //--------------------------------------------------------------------------------------------------
593 /**
594  *
595  * Disconnect the current client thread from the service providing this API.
596  *
597  * Normally, this function doesn't need to be called. After this function is called, there's no
598  * longer a connection to the service, and the functions in this API can't be used. For details, see
599  * @ref apiFilesC_client.
600  *
601  * This function is created automatically.
602  */
603 //--------------------------------------------------------------------------------------------------
605 (
606  void
607 );
608 
609 
610 //--------------------------------------------------------------------------------------------------
611 /**
612  * Mobile Country Code length
613  */
614 //--------------------------------------------------------------------------------------------------
615 #define LE_MRC_MCC_LEN 3
616 
617 //--------------------------------------------------------------------------------------------------
618 /**
619  * Mobile Country Code length
620  * One extra byte is added for the null character.
621  */
622 //--------------------------------------------------------------------------------------------------
623 #define LE_MRC_MCC_BYTES 4
624 
625 //--------------------------------------------------------------------------------------------------
626 /**
627  * Mobile Network Code length
628  */
629 //--------------------------------------------------------------------------------------------------
630 #define LE_MRC_MNC_LEN 3
631 
632 //--------------------------------------------------------------------------------------------------
633 /**
634  * Mobile Network Code length
635  * One extra byte is added for the null character.
636  */
637 //--------------------------------------------------------------------------------------------------
638 #define LE_MRC_MNC_BYTES 4
639 
640 //--------------------------------------------------------------------------------------------------
641 /**
642  * Cellular Network length.
643  *
644  */
645 //--------------------------------------------------------------------------------------------------
646 #define LE_MRC_NETWORK_NAME_MAX_LEN 100
647 
648 //--------------------------------------------------------------------------------------------------
649 /**
650  * 2G/3G Band Bit Mask (64 bits)
651  */
652 //--------------------------------------------------------------------------------------------------
653 typedef enum
654 {
655  LE_MRC_BITMASK_BAND_CLASS_0_A_SYSTEM = 0x1,
656  LE_MRC_BITMASK_BAND_CLASS_0_B_SYSTEM = 0x2,
657  LE_MRC_BITMASK_BAND_CLASS_1_ALL_BLOCKS = 0x4,
658  LE_MRC_BITMASK_BAND_CLASS_2_PLACEHOLDER = 0x8,
659  LE_MRC_BITMASK_BAND_CLASS_3_A_SYSTEM = 0x10,
660  LE_MRC_BITMASK_BAND_CLASS_4_ALL_BLOCKS = 0x20,
661  LE_MRC_BITMASK_BAND_CLASS_5_ALL_BLOCKS = 0x40,
662  LE_MRC_BITMASK_BAND_CLASS_6 = 0x80,
663  LE_MRC_BITMASK_BAND_CLASS_7 = 0x100,
664  LE_MRC_BITMASK_BAND_CLASS_8 = 0x200,
665  LE_MRC_BITMASK_BAND_CLASS_9 = 0x400,
666  LE_MRC_BITMASK_BAND_CLASS_10 = 0x800,
667  LE_MRC_BITMASK_BAND_CLASS_11 = 0x1000,
668  LE_MRC_BITMASK_BAND_CLASS_12 = 0x2000,
669  LE_MRC_BITMASK_BAND_CLASS_14 = 0x4000,
670  LE_MRC_BITMASK_BAND_CLASS_15 = 0x8000,
671  LE_MRC_BITMASK_BAND_CLASS_16 = 0x10000,
672  LE_MRC_BITMASK_BAND_CLASS_17 = 0x20000,
673  LE_MRC_BITMASK_BAND_CLASS_18 = 0x40000,
674  LE_MRC_BITMASK_BAND_CLASS_19 = 0x80000,
675  LE_MRC_BITMASK_BAND_GSM_DCS_1800 = 0x100000,
676  LE_MRC_BITMASK_BAND_EGSM_900 = 0x200000,
677  LE_MRC_BITMASK_BAND_PRI_GSM_900 = 0x400000,
678  LE_MRC_BITMASK_BAND_GSM_450 = 0x800000,
679  LE_MRC_BITMASK_BAND_GSM_480 = 0x1000000,
680  LE_MRC_BITMASK_BAND_GSM_750 = 0x2000000,
681  LE_MRC_BITMASK_BAND_GSM_850 = 0x4000000,
682  LE_MRC_BITMASK_BAND_GSMR_900 = 0x8000000,
683  LE_MRC_BITMASK_BAND_GSM_PCS_1900 = 0x10000000,
684  LE_MRC_BITMASK_BAND_WCDMA_EU_J_CH_IMT_2100 = 0x20000000,
685  LE_MRC_BITMASK_BAND_WCDMA_US_PCS_1900 = 0x40000000,
686  LE_MRC_BITMASK_BAND_WCDMA_EU_CH_DCS_1800 = 0x80000000,
687  LE_MRC_BITMASK_BAND_WCDMA_US_1700 = 0x100000000,
688  LE_MRC_BITMASK_BAND_WCDMA_US_850 = 0x200000000,
689  LE_MRC_BITMASK_BAND_WCDMA_J_800 = 0x400000000,
690  LE_MRC_BITMASK_BAND_WCDMA_EU_2600 = 0x800000000,
691  LE_MRC_BITMASK_BAND_WCDMA_EU_J_900 = 0x1000000000,
692  LE_MRC_BITMASK_BAND_WCDMA_J_1700 = 0x2000000000
693 }
695 
696 
697 //--------------------------------------------------------------------------------------------------
698 /**
699  * LTE Band Bit Mask (32bits)
700  *
701  */
702 //--------------------------------------------------------------------------------------------------
703 typedef enum
704 {
705  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_1 = 0x1,
706  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_2 = 0x2,
707  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_3 = 0x4,
708  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_4 = 0x8,
709  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_5 = 0x10,
710  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_6 = 0x20,
711  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_7 = 0x40,
712  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_8 = 0x80,
713  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_9 = 0x100,
714  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_10 = 0x200,
715  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_11 = 0x400,
716  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_12 = 0x800,
717  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_13 = 0x1000,
718  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_14 = 0x2000,
719  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_17 = 0x4000,
720  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_18 = 0x8000,
721  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_19 = 0x10000,
722  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_20 = 0x20000,
723  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_21 = 0x40000,
724  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_24 = 0x80000,
725  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_25 = 0x100000,
726  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_33 = 0x200000,
727  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_34 = 0x400000,
728  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_35 = 0x800000,
729  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_36 = 0x1000000,
730  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_37 = 0x2000000,
731  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_38 = 0x4000000,
732  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_39 = 0x8000000,
733  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_40 = 0x10000000,
734  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_41 = 0x20000000,
735  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_42 = 0x40000000,
736  LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_43 = 0x80000000
737 }
739 
740 
741 //--------------------------------------------------------------------------------------------------
742 /**
743  * TDSCDMA Band Bit Mask
744  *
745  */
746 //--------------------------------------------------------------------------------------------------
747 typedef enum
748 {
749  LE_MRC_BITMASK_TDSCDMA_BAND_A = 0x1,
750  LE_MRC_BITMASK_TDSCDMA_BAND_B = 0x2,
751  LE_MRC_BITMASK_TDSCDMA_BAND_C = 0x4,
752  LE_MRC_BITMASK_TDSCDMA_BAND_D = 0x8,
753  LE_MRC_BITMASK_TDSCDMA_BAND_E = 0x10,
754  LE_MRC_BITMASK_TDSCDMA_BAND_F = 0x20
755 }
757 
758 
759 //--------------------------------------------------------------------------------------------------
760 /**
761  * Reference type for referring to MRC Scan Information objects.
762  */
763 //--------------------------------------------------------------------------------------------------
764 typedef struct le_mrc_ScanInformation* le_mrc_ScanInformationRef_t;
765 
766 
767 //--------------------------------------------------------------------------------------------------
768 /**
769  * Reference type for Scan Information Listing.
770  */
771 //--------------------------------------------------------------------------------------------------
772 typedef struct le_mrc_ScanInformationList* le_mrc_ScanInformationListRef_t;
773 
774 
775 //--------------------------------------------------------------------------------------------------
776 /**
777  * Reference type for PCI Scan Information Listing.
778  */
779 //--------------------------------------------------------------------------------------------------
780 typedef struct le_mrc_PciScanInformationList* le_mrc_PciScanInformationListRef_t;
781 
782 
783 //--------------------------------------------------------------------------------------------------
784 /**
785  * Reference type for PCI Scan Information .
786  */
787 //--------------------------------------------------------------------------------------------------
788 typedef struct le_mrc_PciScanInformation* le_mrc_PciScanInformationRef_t;
789 
790 
791 //--------------------------------------------------------------------------------------------------
792 /**
793  * Reference type for PLMN Information .
794  */
795 //--------------------------------------------------------------------------------------------------
796 typedef struct le_mrc_PlmnInformation* le_mrc_PlmnInformationRef_t;
797 
798 
799 //--------------------------------------------------------------------------------------------------
800 /**
801  * Reference type for referring to the Preferred Operator objects.
802  */
803 //--------------------------------------------------------------------------------------------------
804 typedef struct le_mrc_PreferredOperator* le_mrc_PreferredOperatorRef_t;
805 
806 
807 //--------------------------------------------------------------------------------------------------
808 /**
809  * Reference type for Preferred Operator Listing.
810  */
811 //--------------------------------------------------------------------------------------------------
812 typedef struct le_mrc_PreferredOperatorList* le_mrc_PreferredOperatorListRef_t;
813 
814 
815 //--------------------------------------------------------------------------------------------------
816 /**
817  * Reference type for one Cell Information.
818  */
819 //--------------------------------------------------------------------------------------------------
820 typedef struct le_mrc_CellInfo* le_mrc_CellInfoRef_t;
821 
822 
823 //--------------------------------------------------------------------------------------------------
824 /**
825  * Reference type for all Neighboring Cells Information.
826  */
827 //--------------------------------------------------------------------------------------------------
828 typedef struct le_mrc_NeighborCells* le_mrc_NeighborCellsRef_t;
829 
830 
831 //--------------------------------------------------------------------------------------------------
832 /**
833  * Reference type for the signal metrics.
834  */
835 //--------------------------------------------------------------------------------------------------
836 typedef struct le_mrc_Metrics* le_mrc_MetricsRef_t;
837 
838 
839 //--------------------------------------------------------------------------------------------------
840 /**
841  * Network Registration states.
842  */
843 //--------------------------------------------------------------------------------------------------
844 typedef enum
845 {
847  ///< Not registered and not currently searching for new operator.
849  ///< Registered, home network.
851  ///< Not registered but currently searching for a new operator.
853  ///< Registration was denied, usually because of invalid access credentials.
855  ///< Registered to a roaming network.
857  ///< Unknown state.
858 }
860 
861 
862 //--------------------------------------------------------------------------------------------------
863 /**
864  * Radio Access Technology enum
865  */
866 //--------------------------------------------------------------------------------------------------
867 typedef enum
868 {
870  ///< Unknown
872  ///< GSM network
874  ///< UMTS networks
876  ///< TD-SCDMA networks
878  ///< LTE network
880  ///< CDMA network
881 }
883 
884 
885 //--------------------------------------------------------------------------------------------------
886 /**
887  * Jamming detection report type enum
888  *
889  * @note If the reported status is the final status (end of the procedure), this shall be indicated
890  * within the status report.
891  * @note Other reports, called intermediate reports, gives only intermediate results issuing from
892  * the algorithm
893  */
894 //--------------------------------------------------------------------------------------------------
895 typedef enum
896 {
898  ///< Final jamming status report
900  ///< Intermediate jamming status report
901 }
903 
904 
905 //--------------------------------------------------------------------------------------------------
906 /**
907  * Jamming detection status type enum
908  *
909  * @note The final status can be only NULL or JAMMED.
910  */
911 //--------------------------------------------------------------------------------------------------
912 typedef enum
913 {
915  ///< Status is unknown
917  ///< No jamming suspicion; radio environment is considered normal
919  ///< Low probability that the device is jammed, but some radio
920  ///< environment parameters are considered abnormal
922  ///< Medium probability that the device is jammed; a lot of
923  ///< interferences in the radio spectrum
925  ///< High probability that the device is jammed; radio environment is
926  ///< considered jammed, but there is still a possibility that the module
927  ///< succeeds in synchronizing a cell
929  ///< Module is jammed; cell synchronization impossible while sufficient
930  ///< power level is detected on a large number of frequencies
931 }
933 
934 
935 //--------------------------------------------------------------------------------------------------
936 /**
937  * Radio Bitmask Access Technology Bit Mask
938  */
939 //--------------------------------------------------------------------------------------------------
940 typedef enum
941 {
942  LE_MRC_BITMASK_RAT_GSM = 0x1, ///< GSM RAT Bit Mask
943  LE_MRC_BITMASK_RAT_UMTS = 0x2, ///< UMTS RAT Bit Mask
944  LE_MRC_BITMASK_RAT_TDSCDMA = 0x4, ///< TD-SCDMA RAT Bit Mask
945  LE_MRC_BITMASK_RAT_LTE = 0x8, ///< LTE RAT Bit Mask
946  LE_MRC_BITMASK_RAT_CDMA = 0x10, ///< CDMA RAT Bit Mask
947  LE_MRC_BITMASK_RAT_ALL = 0x20, ///< To Set all RAT preference Bit Mask
948  LE_MRC_BITMASK_RAT_MAX = 0x40
949 }
951 
952 
953 //--------------------------------------------------------------------------------------------------
954 /**
955  * Reference type used by Add/Remove functions for EVENT 'le_mrc_NetRegStateEvent'
956  */
957 //--------------------------------------------------------------------------------------------------
958 typedef struct le_mrc_NetRegStateEventHandler* le_mrc_NetRegStateEventHandlerRef_t;
959 
960 
961 //--------------------------------------------------------------------------------------------------
962 /**
963  * Reference type used by Add/Remove functions for EVENT 'le_mrc_RatChange'
964  */
965 //--------------------------------------------------------------------------------------------------
966 typedef struct le_mrc_RatChangeHandler* le_mrc_RatChangeHandlerRef_t;
967 
968 
969 //--------------------------------------------------------------------------------------------------
970 /**
971  * Reference type used by Add/Remove functions for EVENT 'le_mrc_PacketSwitchedChange'
972  */
973 //--------------------------------------------------------------------------------------------------
974 typedef struct le_mrc_PacketSwitchedChangeHandler* le_mrc_PacketSwitchedChangeHandlerRef_t;
975 
976 
977 //--------------------------------------------------------------------------------------------------
978 /**
979  * Reference type used by Add/Remove functions for EVENT 'le_mrc_SignalStrengthChange'
980  */
981 //--------------------------------------------------------------------------------------------------
982 typedef struct le_mrc_SignalStrengthChangeHandler* le_mrc_SignalStrengthChangeHandlerRef_t;
983 
984 
985 //--------------------------------------------------------------------------------------------------
986 /**
987  * Reference type used by Add/Remove functions for EVENT 'le_mrc_NetworkReject'
988  */
989 //--------------------------------------------------------------------------------------------------
990 typedef struct le_mrc_NetworkRejectHandler* le_mrc_NetworkRejectHandlerRef_t;
991 
992 
993 //--------------------------------------------------------------------------------------------------
994 /**
995  * Reference type used by Add/Remove functions for EVENT 'le_mrc_JammingDetectionEvent'
996  */
997 //--------------------------------------------------------------------------------------------------
998 typedef struct le_mrc_JammingDetectionEventHandler* le_mrc_JammingDetectionEventHandlerRef_t;
999 
1000 
1001 //--------------------------------------------------------------------------------------------------
1002 /**
1003  * Handler for Network registration state changes.
1004  *
1005  */
1006 //--------------------------------------------------------------------------------------------------
1007 typedef void (*le_mrc_NetRegStateHandlerFunc_t)
1009  le_mrc_NetRegState_t state,
1010  ///< Parameter ready to receive the Network Registration state.
1011  void* contextPtr
1012  ///<
1013 );
1014 
1015 //--------------------------------------------------------------------------------------------------
1016 /**
1017  * Handler for Radio Access Technology changes.
1018  *
1019  */
1020 //--------------------------------------------------------------------------------------------------
1021 typedef void (*le_mrc_RatChangeHandlerFunc_t)
1023  le_mrc_Rat_t rat,
1024  ///< Parameter ready to receive the Radio Access Technology.
1025  void* contextPtr
1026  ///<
1027 );
1028 
1029 //--------------------------------------------------------------------------------------------------
1030 /**
1031  * Handler for Packet Switched service state changes.
1032  *
1033  */
1034 //--------------------------------------------------------------------------------------------------
1037  le_mrc_NetRegState_t state,
1038  ///< Parameter ready to receive the Packet Switched service state.
1039  void* contextPtr
1040  ///<
1041 );
1042 
1043 //--------------------------------------------------------------------------------------------------
1044 /**
1045  * Handler for Signal Strength value changes.
1046  *
1047  */
1048 //--------------------------------------------------------------------------------------------------
1051  int32_t ss,
1052  ///< Signal strength in dBm
1053  void* contextPtr
1054  ///<
1055 );
1056 
1057 //--------------------------------------------------------------------------------------------------
1058 /**
1059  * Handler for cellular asynchronous network scan Sending result.
1060  * Returns the reference to the List object. Null pointer if the scan failed.
1061  *
1062  */
1063 //--------------------------------------------------------------------------------------------------
1067  ///< Reference to the List object. Null pointer if the
1068  ///< scan failed.
1069  void* contextPtr
1070  ///<
1071 );
1072 
1073 //--------------------------------------------------------------------------------------------------
1074 /**
1075  * Handler for PCI asynchronous network scan Sending result.
1076  * Returns the reference to the List object. Null pointer if the scan failed.
1077  *
1078  */
1079 //--------------------------------------------------------------------------------------------------
1080 typedef void (*le_mrc_PciNetworkScanHandlerFunc_t)
1083  ///< Reference to the List object. Null pointer if the
1084  ///< scan failed.
1085  void* contextPtr
1086  ///<
1087 );
1088 
1089 //--------------------------------------------------------------------------------------------------
1090 /**
1091  * Handler for asynchronous manual selection response
1092  *
1093  */
1094 //--------------------------------------------------------------------------------------------------
1097  le_result_t result,
1098  ///< Manual selection response
1099  void* contextPtr
1100  ///<
1101 );
1102 
1103 //--------------------------------------------------------------------------------------------------
1104 /**
1105  * Handler to report network reject indication.
1106  *
1107  */
1108 //--------------------------------------------------------------------------------------------------
1109 typedef void (*le_mrc_NetworkRejectHandlerFunc_t)
1111  const char* LE_NONNULL mcc,
1112  ///< Mobile Country Code
1113  const char* LE_NONNULL mnc,
1114  ///< Mobile Network Code
1115  le_mrc_Rat_t rat,
1116  ///< Radio Access Technology.
1117  void* contextPtr
1118  ///<
1119 );
1120 
1121 //--------------------------------------------------------------------------------------------------
1122 /**
1123  * Handler for jamming detection event.
1124  */
1125 //--------------------------------------------------------------------------------------------------
1128  le_mrc_JammingReport_t report,
1129  ///< Report type.
1130  le_mrc_JammingStatus_t status,
1131  ///< Jamming detection status.
1132  void* contextPtr
1133  ///<
1134 );
1135 
1136 //--------------------------------------------------------------------------------------------------
1137 /**
1138  * Add handler function for EVENT 'le_mrc_NetRegStateEvent'
1139  *
1140  * This event provides information on network registration state changes.
1141  *
1142  * @note <b>multi-app safe</b>
1143  */
1144 //--------------------------------------------------------------------------------------------------
1146 (
1148  ///< [IN]
1149  void* contextPtr
1150  ///< [IN]
1151 );
1152 
1153 //--------------------------------------------------------------------------------------------------
1154 /**
1155  * Remove handler function for EVENT 'le_mrc_NetRegStateEvent'
1156  */
1157 //--------------------------------------------------------------------------------------------------
1159 (
1161  ///< [IN]
1162 );
1163 
1164 //--------------------------------------------------------------------------------------------------
1165 /**
1166  * Add handler function for EVENT 'le_mrc_RatChange'
1167  *
1168  * This event provides information on Radio Access Technology changes.
1169  *
1170  * @note <b>multi-app safe</b>
1171  */
1172 //--------------------------------------------------------------------------------------------------
1174 (
1175  le_mrc_RatChangeHandlerFunc_t handlerPtr,
1176  ///< [IN]
1177  void* contextPtr
1178  ///< [IN]
1179 );
1180 
1181 //--------------------------------------------------------------------------------------------------
1182 /**
1183  * Remove handler function for EVENT 'le_mrc_RatChange'
1184  */
1185 //--------------------------------------------------------------------------------------------------
1187 (
1188  le_mrc_RatChangeHandlerRef_t handlerRef
1189  ///< [IN]
1190 );
1191 
1192 //--------------------------------------------------------------------------------------------------
1193 /**
1194  * Add handler function for EVENT 'le_mrc_PacketSwitchedChange'
1195  *
1196  * This event provides information on Packet Switched service changes.
1197  *
1198  * @note <b>multi-app safe</b>
1199  */
1200 //--------------------------------------------------------------------------------------------------
1202 (
1204  ///< [IN]
1205  void* contextPtr
1206  ///< [IN]
1207 );
1208 
1209 //--------------------------------------------------------------------------------------------------
1210 /**
1211  * Remove handler function for EVENT 'le_mrc_PacketSwitchedChange'
1212  */
1213 //--------------------------------------------------------------------------------------------------
1215 (
1217  ///< [IN]
1218 );
1219 
1220 //--------------------------------------------------------------------------------------------------
1221 /**
1222  * Add handler function for EVENT 'le_mrc_SignalStrengthChange'
1223  *
1224  * This event provides information on Signal Strength value changes.
1225  *
1226  * @note <b>NOT multi-app safe</b>
1227  */
1228 //--------------------------------------------------------------------------------------------------
1230 (
1231  le_mrc_Rat_t rat,
1232  ///< [IN] Radio Access Technology
1233  int32_t lowerRangeThreshold,
1234  ///< [IN] Lower-range Signal strength threshold in dBm
1235  int32_t upperRangeThreshold,
1236  ///< [IN] Upper-range Signal strength threshold in dBm
1238  ///< [IN]
1239  void* contextPtr
1240  ///< [IN]
1241 );
1242 
1243 //--------------------------------------------------------------------------------------------------
1244 /**
1245  * Remove handler function for EVENT 'le_mrc_SignalStrengthChange'
1246  */
1247 //--------------------------------------------------------------------------------------------------
1249 (
1251  ///< [IN]
1252 );
1253 
1254 //--------------------------------------------------------------------------------------------------
1255 /**
1256  * This function sets signal strength indication thresholds for a specific RAT.
1257  *
1258  * @return
1259  * - LE_OK Function succeeded.
1260  * - LE_BAD_PARAMETER Bad parameters
1261  * - LE_FAULT Function failed.
1262  *
1263  * @note <b>NOT multi-app safe</b>
1264  */
1265 //--------------------------------------------------------------------------------------------------
1267 (
1268  le_mrc_Rat_t rat,
1269  ///< [IN] Radio Access Technology
1270  int32_t lowerRangeThreshold,
1271  ///< [IN] Lower-range Signal strength threshold in dBm
1272  int32_t upperRangeThreshold
1273  ///< [IN] Upper-range Signal strength threshold in dBm
1274 );
1275 
1276 //--------------------------------------------------------------------------------------------------
1277 /**
1278  * This function sets a signal strength indication delta for a specific RAT.
1279  *
1280  * @return
1281  * - LE_OK Function succeeded.
1282  * - LE_BAD_PARAMETER Bad parameters.
1283  * - LE_FAULT Function failed.
1284  *
1285  * @note The signal delta is set in units of 0.1 dBm. For example, to set a delta of 10.6 dBm, the
1286  * delta value must be set to 106.
1287  *
1288  * @warning The signal delta resolution is platform dependent. Please refer to
1289  * @ref platformConstraintsModemRadiocontrol section for full details.
1290  */
1291 //--------------------------------------------------------------------------------------------------
1293 (
1294  le_mrc_Rat_t rat,
1295  ///< [IN] Radio Access Technology
1296  uint16_t delta
1297  ///< [IN] Signal delta in units of 0.1 dBm
1298 );
1299 
1300 //--------------------------------------------------------------------------------------------------
1301 /**
1302  * Enable the automatic Selection Register mode.
1303  *
1304  * @return
1305  * - LE_FAULT Function failed.
1306  * - LE_OK Function succeeded.
1307  *
1308  * @note <b>NOT multi-app safe</b>
1309  */
1310 //--------------------------------------------------------------------------------------------------
1312 (
1313  void
1314 );
1315 
1316 //--------------------------------------------------------------------------------------------------
1317 /**
1318  * Set the manual Selection Register mode with the MCC/MNC parameters.
1319  *
1320  * @return
1321  * - LE_FAULT Function failed.
1322  * - LE_OK Function succeeded.
1323  *
1324  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1325  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1326  * won't return.
1327  *
1328  * @note <b>NOT multi-app safe</b>
1329  */
1330 //--------------------------------------------------------------------------------------------------
1332 (
1333  const char* LE_NONNULL mcc,
1334  ///< [IN] Mobile Country Code
1335  const char* LE_NONNULL mnc
1336  ///< [IN] Mobile Network Code
1337 );
1338 
1339 //--------------------------------------------------------------------------------------------------
1340 /**
1341  * Set the manual selection register mode asynchronously. This function is not blocking,
1342  * the response will be returned with a handler function.
1343  *
1344  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1345  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1346  * won't return.
1347  *
1348  *@note <b>NOT multi-app safe</b>
1349  *
1350  */
1351 //--------------------------------------------------------------------------------------------------
1353 (
1354  const char* LE_NONNULL mcc,
1355  ///< [IN] Mobile Country Code
1356  const char* LE_NONNULL mnc,
1357  ///< [IN] Mobile Network Code
1359  ///< [IN] handler for sending result
1360  void* contextPtr
1361  ///< [IN]
1362 );
1363 
1364 //--------------------------------------------------------------------------------------------------
1365 /**
1366  * Get the selected Selection Register mode.
1367  *
1368  * @return
1369  * - LE_FAULT Function failed.
1370  * - LE_OK Function succeeded.
1371  *
1372  * @note <b>multi-app safe</b>
1373  */
1374 //--------------------------------------------------------------------------------------------------
1376 (
1377  bool* isManualPtrPtr,
1378  ///< [OUT] true if the scan mode is manual, false if the scan mode is automatic.
1379  char* mccPtr,
1380  ///< [OUT] Mobile Country Code
1381  size_t mccPtrSize,
1382  ///< [IN]
1383  char* mncPtr,
1384  ///< [OUT] Mobile Network Code
1385  size_t mncPtrSize
1386  ///< [IN]
1387 );
1388 
1389 //--------------------------------------------------------------------------------------------------
1390 /**
1391  * Get the Packet Switched state.
1392  *
1393  * @return
1394  * - LE_FAULT Function failed.
1395  * - LE_OK Function succeeded.
1396  *
1397  * @note <b>multi-app safe</b>
1398  */
1399 //--------------------------------------------------------------------------------------------------
1401 (
1402  le_mrc_NetRegState_t* statePtr
1403  ///< [OUT] The current Packet switched state.
1404 );
1405 
1406 //--------------------------------------------------------------------------------------------------
1407 /**
1408  * Get the platform specific network registration error code.
1409  *
1410  * Refer to @ref platformConstraintsSpecificErrorCodes for platform specific
1411  * registration error code description.
1412  *
1413  * @return the platform specific registration error code
1414  *
1415  */
1416 //--------------------------------------------------------------------------------------------------
1418 (
1419  void
1420 );
1421 
1422 //--------------------------------------------------------------------------------------------------
1423 /**
1424  * Set the Radio Access Technology preferences by using a bit mask.
1425  *
1426  * @return
1427  * - LE_FAULT Function failed.
1428  * - LE_OK Function succeeded.
1429  * - LE_UNSUPPORTED Not supported by platform.
1430  *
1431  * @note <b>NOT multi-app safe</b>
1432  */
1433 //--------------------------------------------------------------------------------------------------
1435 (
1436  le_mrc_RatBitMask_t ratMask
1437  ///< [IN] Bit mask for the Radio Access Technology preferences.
1438 );
1439 
1440 //--------------------------------------------------------------------------------------------------
1441 /**
1442  * Get the Radio Access Technology preferences
1443  *
1444  * @return
1445  * - LE_FAULT Function failed.
1446  * - LE_OK Function succeeded.
1447  *
1448  * @note <b>multi-app safe</b>
1449  */
1450 //--------------------------------------------------------------------------------------------------
1452 (
1453  le_mrc_RatBitMask_t* ratMaskPtrPtr
1454  ///< [OUT] Bit mask for the Radio Access Technology preferences.
1455 );
1456 
1457 //--------------------------------------------------------------------------------------------------
1458 /**
1459  * Set the 2G/3G Band preferences by using a bit mask.
1460  *
1461  * @return
1462  * - LE_FAULT Function failed.
1463  * - LE_OK Function succeeded.
1464  *
1465  * @note <b>NOT multi-app safe</b>
1466  */
1467 //--------------------------------------------------------------------------------------------------
1469 (
1470  le_mrc_BandBitMask_t bandMask
1471  ///< [IN] Bit mask for 2G/3G Band preferences.
1472 );
1473 
1474 //--------------------------------------------------------------------------------------------------
1475 /**
1476  * Get the Bit mask for 2G/3G Band preferences.
1477  *
1478  * @return
1479  * - LE_FAULT Function failed.
1480  * - LE_OK Function succeeded.
1481  *
1482  * @note <b>multi-app safe</b>
1483  */
1484 //--------------------------------------------------------------------------------------------------
1486 (
1487  le_mrc_BandBitMask_t* bandMaskPtrPtr
1488  ///< [OUT] Bit mask for 2G/3G Band preferences.
1489 );
1490 
1491 //--------------------------------------------------------------------------------------------------
1492 /**
1493  * Set the LTE Band preferences by using a bit mask.
1494  *
1495  * @return
1496  * - LE_FAULT Function failed.
1497  * - LE_OK Function succeeded.
1498  * - LE_UNSUPPORTED The platform doesn't support setting LTE Band preferences.
1499  *
1500  * @note <b>NOT multi-app safe</b>
1501  */
1502 //--------------------------------------------------------------------------------------------------
1504 (
1505  le_mrc_LteBandBitMask_t bandMask
1506  ///< [IN] Bit mask for LTE Band preferences.
1507 );
1508 
1509 //--------------------------------------------------------------------------------------------------
1510 /**
1511  * Get the Bit mask for LTE Band preferences.
1512  *
1513  * @return
1514  * - LE_FAULT Function failed.
1515  * - LE_OK Function succeeded.
1516  *
1517  * @note <b>multi-app safe</b>
1518  */
1519 //--------------------------------------------------------------------------------------------------
1521 (
1522  le_mrc_LteBandBitMask_t* bandMaskPtrPtr
1523  ///< [OUT] Bit mask for LTE Band preferences.
1524 );
1525 
1526 //--------------------------------------------------------------------------------------------------
1527 /**
1528  * Set the TD-SCDMA Band preferences by using a bit mask.
1529  *
1530  * @return
1531  * - LE_OK Function succeeded.
1532  * - LE_FAULT Function failed.
1533  * - LE_UNSUPPORTED The platform doesn't support setting TD-SCDMA Band preferences.
1534  *
1535  * @note <b>NOT multi-app safe</b>
1536  */
1537 //--------------------------------------------------------------------------------------------------
1539 (
1541  ///< [IN] Bit mask for TD-SCDMA Band preferences.
1542 );
1543 
1544 //--------------------------------------------------------------------------------------------------
1545 /**
1546  * Get the Bit mask for TD-SCDMA Band preferences.
1547  *
1548  * @return
1549  * - LE_OK Function succeeded.
1550  * - LE_FAULT Function failed.
1551  * - LE_UNSUPPORTED The platform doesn't support getting TD-SCDMA Band preferences.
1552  *
1553  * @note <b>multi-app safe</b>
1554  */
1555 //--------------------------------------------------------------------------------------------------
1557 (
1558  le_mrc_TdScdmaBandBitMask_t* bandMaskPtrPtr
1559  ///< [OUT] Bit mask for TD-SCDMA Band preferences.
1560 );
1561 
1562 //--------------------------------------------------------------------------------------------------
1563 /**
1564  * Add a preferred operator by specifying the MCC/MNC and the Radio Access Technology.
1565  *
1566  * @return
1567  * - LE_UNSUPPORTED List of User Preferred operators not available.
1568  * - LE_FAULT Function failed.
1569  * - LE_BAD_PARAMETER RAT mask is invalid.
1570  * - LE_OK Function succeeded.
1571  *
1572  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1573  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1574  * won't return.
1575  *
1576  * @note <b>NOT multi-app safe</b>
1577  */
1578 //--------------------------------------------------------------------------------------------------
1580 (
1581  const char* LE_NONNULL mcc,
1582  ///< [IN] Mobile Country Code
1583  const char* LE_NONNULL mnc,
1584  ///< [IN] Mobile Network Code
1585  le_mrc_RatBitMask_t ratMask
1586  ///< [IN] Bit mask for the Radio Access Technology preferences.
1587 );
1588 
1589 //--------------------------------------------------------------------------------------------------
1590 /**
1591  * Remove a preferred operator by specifying the MCC/MNC.
1592  *
1593  * @return
1594  * - LE_UNSUPPORTED List of User Preferred operators not available.
1595  * - LE_NOT_FOUND Operator not found in the User Preferred operators list.
1596  * - LE_FAULT Function failed.
1597  * - LE_OK Function succeeded.
1598  *
1599  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1600  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1601  * won't return.
1602  *
1603  * @note <b>NOT multi-app safe</b>
1604  */
1605 //--------------------------------------------------------------------------------------------------
1607 (
1608  const char* LE_NONNULL mcc,
1609  ///< [IN] Mobile Country Code
1610  const char* LE_NONNULL mnc
1611  ///< [IN] Mobile Network Code
1612 );
1613 
1614 //--------------------------------------------------------------------------------------------------
1615 /**
1616  * This function must be called to retrieve a list of the preferred operators.
1617  *
1618  * @return
1619  * - Reference to the List object.
1620  * - Null pointer if there is no preferences list.
1621  *
1622  * @note <b>multi-app safe</b>
1623  */
1624 //--------------------------------------------------------------------------------------------------
1626 (
1627  void
1628 );
1629 
1630 //--------------------------------------------------------------------------------------------------
1631 /**
1632  * This function must be called to get the first Operator object reference in the list of the
1633  * preferred operators retrieved with le_mrc_GetPreferredOperators().
1634  *
1635  * @return
1636  * - NULL No operator information found.
1637  * - le_mrc_PreferredOperatorRef The Operator object reference.
1638  *
1639  * @note If the caller is passing a bad reference into this function, it's a fatal error, the
1640  * function won't return.
1641  *
1642  * @note <b>multi-app safe</b>
1643  */
1644 //--------------------------------------------------------------------------------------------------
1646 (
1647  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1648  ///< [IN] The list of the preferred operators.
1649 );
1650 
1651 //--------------------------------------------------------------------------------------------------
1652 /**
1653  * This function must be called to get the next Operator object reference in the list of the
1654  * preferred operators retrieved with le_mrc_GetPreferredOperators().
1655  *
1656  * @return
1657  * - NULL No operator information found.
1658  * - le_mrc_PreferredOperatorRef The Operator object reference.
1659  *
1660  * @note If the caller is passing a bad reference into this function, it's a fatal error, the
1661  * function won't return.
1662  *
1663  * @note <b>multi-app safe</b>
1664  */
1665 //--------------------------------------------------------------------------------------------------
1667 (
1668  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1669  ///< [IN] The list of the preferred operators.
1670 );
1671 
1672 //--------------------------------------------------------------------------------------------------
1673 /**
1674  * This function must be called to delete the list of the preferred operators retrieved with
1675  * le_mrc_GetPreferredOperators().
1676  *
1677  * @note On failure, the process exits, so you don't have to worry about checking the returned
1678  * reference for validity.
1679  *
1680  * @note <b>multi-app safe</b>
1681  */
1682 //--------------------------------------------------------------------------------------------------
1684 (
1685  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1686  ///< [IN] The list of the preferred operators.
1687 );
1688 
1689 //--------------------------------------------------------------------------------------------------
1690 /**
1691  * This function must be called to get the Operator information details.
1692  *
1693  * @return
1694  * - LE_OK on success
1695  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
1696  * - LE_FAULT for all other errors
1697  *
1698  * @note <b>multi-app safe</b>
1699  */
1700 //--------------------------------------------------------------------------------------------------
1702 (
1703  le_mrc_PreferredOperatorRef_t preferredOperatorRef,
1704  ///< [IN] Operator object reference.
1705  char* mccPtr,
1706  ///< [OUT] Mobile Country Code.
1707  size_t mccPtrSize,
1708  ///< [IN]
1709  char* mncPtr,
1710  ///< [OUT] Mobile Network Code.
1711  size_t mncPtrSize,
1712  ///< [IN]
1713  le_mrc_RatBitMask_t* ratMaskPtr
1714  ///< [OUT] Bit mask for the RAT preferences.
1715 );
1716 
1717 //--------------------------------------------------------------------------------------------------
1718 /**
1719  * Get the network registration state.
1720  *
1721  * @return LE_FAULT The function failed to get the Network registration state.
1722  * @return LE_BAD_PARAMETER A bad parameter was passed.
1723  * @return LE_OK The function succeeded.
1724  *
1725  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1726  * function won't return.
1727  *
1728  * @note <b>multi-app safe</b>
1729  */
1730 //--------------------------------------------------------------------------------------------------
1732 (
1733  le_mrc_NetRegState_t* statePtr
1734  ///< [OUT] Network Registration state.
1735 );
1736 
1737 //--------------------------------------------------------------------------------------------------
1738 /**
1739  * Get the signal quality.
1740  *
1741  * @return LE_FAULT The function failed to get the Signal Quality information.
1742  * @return LE_BAD_PARAMETER A bad parameter was passed.
1743  * @return LE_OK The function succeeded.
1744  *
1745  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1746  * function won't return.
1747  *
1748  * @note <b>multi-app safe</b>
1749  */
1750 //--------------------------------------------------------------------------------------------------
1752 (
1753  uint32_t* qualityPtr
1754  ///< [OUT] [OUT] Received signal strength quality (0 = no signal strength,
1755  ///< 5 = very good signal strength).
1756 );
1757 
1758 //--------------------------------------------------------------------------------------------------
1759 /**
1760  * Set the power of the Radio Module.
1761  *
1762  * @return LE_BAD_PARAMETER Bad power mode specified.
1763  * @return LE_FAULT Function failed.
1764  * @return LE_OK Function succeed.
1765  *
1766  * @note <b>NOT multi-app safe</b>
1767  */
1768 //--------------------------------------------------------------------------------------------------
1770 (
1771  le_onoff_t power
1772  ///< [IN] The power state.
1773 );
1774 
1775 //--------------------------------------------------------------------------------------------------
1776 /**
1777  * Must be called to get the Radio Module power state.
1778  *
1779  * @return LE_FAULT The function failed to get the Radio Module power state.
1780  * @return LE_BAD_PARAMETER if powerPtr is NULL.
1781  * @return LE_OK The function succeed.
1782  *
1783  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1784  * function won't return.
1785  *
1786  * @note <b>multi-app safe</b>
1787  */
1788 //--------------------------------------------------------------------------------------------------
1790 (
1791  le_onoff_t* powerPtr
1792  ///< [OUT] Power state.
1793 );
1794 
1795 //--------------------------------------------------------------------------------------------------
1796 /**
1797  * This function must be called to perform a cellular network scan.
1798  *
1799  * @return Reference to the List object. Null pointer if the scan failed.
1800  *
1801  * @note <b>multi-app safe</b>
1802  */
1803 //--------------------------------------------------------------------------------------------------
1805 (
1806  le_mrc_RatBitMask_t ratMask
1807  ///< [IN] Radio Access Technology mask
1808 );
1809 
1810 //--------------------------------------------------------------------------------------------------
1811 /**
1812  * This function must be called to perform a PCI network scan.
1813  *
1814  * @return Reference to the List object. Null pointer if the scan failed.
1815  *
1816  * @note <b>multi-app safe</b>
1817  */
1818 //--------------------------------------------------------------------------------------------------
1820 (
1821  le_mrc_RatBitMask_t ratMask
1822  ///< [IN] Radio Access Technology mask
1823 );
1824 
1825 //--------------------------------------------------------------------------------------------------
1826 /**
1827  * This function must be called to perform a cellular network scan asynchronously. This function
1828  * is not blocking, the response will be returned with a handler function.
1829  *
1830  *@note <b>multi-app safe</b>
1831  *
1832  */
1833 //--------------------------------------------------------------------------------------------------
1835 (
1836  le_mrc_RatBitMask_t ratMask,
1837  ///< [IN] Radio Access Technology mask
1839  ///< [IN] handler for sending result.
1840  void* contextPtr
1841  ///< [IN]
1842 );
1843 
1844 //--------------------------------------------------------------------------------------------------
1845 /**
1846  * This function must be called to perform a cellular network scan asynchronously. This function
1847  * is not blocking, the response will be returned with a handler function.
1848  *
1849  *@note <b>multi-app safe</b>
1850  *
1851  */
1852 //--------------------------------------------------------------------------------------------------
1854 (
1855  le_mrc_RatBitMask_t ratMask,
1856  ///< [IN] Radio Access Technology mask
1858  ///< [IN] handler for sending result.
1859  void* contextPtr
1860  ///< [IN]
1861 );
1862 
1863 //--------------------------------------------------------------------------------------------------
1864 /**
1865  * This function must be called to get the first Scan Information object reference in the list of
1866  * scan Information retrieved with le_mrc_PerformCellularNetworkScan().
1867  *
1868  * @return NULL No scan information found.
1869  * @return le_mrc_ScanInformationRef_t The Scan Information object reference.
1870  *
1871  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1872  * function won't return.
1873  *
1874  * @note <b>multi-app safe</b>
1875  */
1876 //--------------------------------------------------------------------------------------------------
1878 (
1879  le_mrc_ScanInformationListRef_t scanInformationListRef
1880  ///< [IN] The list of scan information.
1881 );
1882 
1883 //--------------------------------------------------------------------------------------------------
1884 /**
1885  * This function must be called to get the next Scan Information object reference in the list of
1886  * scan Information retrieved with le_mrc_PerformCellularNetworkScan().
1887  *
1888  * @return NULL No scan information found.
1889  * @return le_mrc_ScanInformationRef_t The Scan Information object reference.
1890  *
1891  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1892  * function won't return.
1893  *
1894  * @note <b>multi-app safe</b>
1895  */
1896 //--------------------------------------------------------------------------------------------------
1898 (
1899  le_mrc_ScanInformationListRef_t scanInformationListRef
1900  ///< [IN] The list of scan information.
1901 );
1902 
1903 //--------------------------------------------------------------------------------------------------
1904 /**
1905  * This function must be called to get the first Pci Scan Information object reference in the list of
1906  * scan Information retrieved with le_mrc_PerformPciNetworkScan().
1907  *
1908  * @return NULL No scan information found.
1909  * @return The Scan Information object reference.
1910  *
1911  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1912  * function won't return.
1913  *
1914  * @note <b>multi-app safe</b>
1915  */
1916 //--------------------------------------------------------------------------------------------------
1918 (
1919  le_mrc_PciScanInformationListRef_t scanInformationListRef
1920  ///< [IN] The list of scan information.
1921 );
1922 
1923 //--------------------------------------------------------------------------------------------------
1924 /**
1925  * This function must be called to get the next Scan Information object reference in the list of
1926  * scan Information retrieved with le_mrc_PerformPciNetworkScan().
1927  *
1928  * @return NULL No scan information found.
1929  * @return The Scan Information object reference.
1930  *
1931  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1932  * function won't return.
1933  *
1934  * @note <b>multi-app safe</b>
1935  */
1936 //--------------------------------------------------------------------------------------------------
1938 (
1939  le_mrc_PciScanInformationListRef_t scanInformationListRef
1940  ///< [IN] The list of scan information.
1941 );
1942 
1943 //--------------------------------------------------------------------------------------------------
1944 /**
1945  * This function must be called to get the first Plmn Information object reference in the list of
1946  * Plmn on each cell.
1947  *
1948  * @return NULL No scan information found.
1949  * @return le_mrc_PlmnInformationRef_t The Plmn Information object reference.
1950  *
1951  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1952  * function won't return.
1953  *
1954  */
1955 //--------------------------------------------------------------------------------------------------
1957 (
1958  le_mrc_PciScanInformationRef_t pciScanInformationRef
1959  ///< [IN] [IN] The reference to the cell information.
1960 );
1961 
1962 //--------------------------------------------------------------------------------------------------
1963 /**
1964  * This function must be called to get the next Plmn Information object reference in the list of
1965  * Plmn on each cell.
1966  *
1967  * @return NULL No scan information found.
1968  * @return le_mrc_PlmnInformationRef_t The Plmn Information object reference.
1969  *
1970  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1971  * function won't return.
1972  *
1973  */
1974 //--------------------------------------------------------------------------------------------------
1976 (
1978  ///< [IN] [IN] The reference to the cell information.
1979 );
1980 
1981 //--------------------------------------------------------------------------------------------------
1982 /**
1983  * This function must be called to get the cell id referenced by PciScanInformation which is
1984  * returned by le_mrc_GetFirstPciScanInfo() and le_mrc_GetNextPciScanInfo().
1985  *
1986  * @return The Cell Identifier.
1987  *
1988  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1989  * function won't return.
1990  */
1991 //--------------------------------------------------------------------------------------------------
1992 uint16_t le_mrc_GetPciScanCellId
1993 (
1994  le_mrc_PciScanInformationRef_t pciScanInformationRef
1995  ///< [IN] [IN] The reference to the cell information.
1996 );
1997 
1998 //--------------------------------------------------------------------------------------------------
1999 /**
2000  * This function must be called to get the Mcc/Mnc of each PLMN referenced in the list of
2001  * Plmn Information retrieved with le_mrc_GetFirstPlmnInfo() and le_mrc_GetNextPlmnInfo().
2002  *
2003  * @return
2004  * - LE_OK on success
2005  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
2006  * - LE_FAULT for all other errors
2007  *
2008  *
2009  */
2010 //--------------------------------------------------------------------------------------------------
2012 (
2014  ///< [IN] [IN] The reference to the cell information.
2015  char* mccPtr,
2016  ///< [OUT] Mobile Country Code
2017  size_t mccPtrSize,
2018  ///< [IN]
2019  char* mncPtr,
2020  ///< [OUT] Mobile Network Code
2021  size_t mncPtrSize
2022  ///< [IN]
2023 );
2024 
2025 //--------------------------------------------------------------------------------------------------
2026 /**
2027  * This function must be called to delete the list of the Scan Information retrieved with
2028  * le_mrc_PerformCellularNetworkScan().
2029  *
2030  * @note
2031  * On failure, the process exits, so you don't have to worry about checking the returned
2032  * reference for validity.
2033  *
2034  * @note <b>multi-app safe</b>
2035  */
2036 //--------------------------------------------------------------------------------------------------
2038 (
2039  le_mrc_ScanInformationListRef_t scanInformationListRef
2040  ///< [IN] The list of scan information.
2041 );
2042 
2043 //--------------------------------------------------------------------------------------------------
2044 /**
2045  * This function must be called to delete the list of the Pci Scan Information retrieved with
2046  * le_mrc_PerformPciNetworkScan().
2047  *
2048  * @note
2049  * On failure, the process exits, so you don't have to worry about checking the returned
2050  * reference for validity.
2051  *
2052  */
2053 //--------------------------------------------------------------------------------------------------
2055 (
2056  le_mrc_PciScanInformationListRef_t scanInformationListRef
2057  ///< [IN] The list of scan information.
2058 );
2059 
2060 //--------------------------------------------------------------------------------------------------
2061 /**
2062  * This function must be called to get the Cellular Network Code [mcc:mnc]
2063  *
2064  * @return
2065  * - LE_OK on success
2066  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
2067  * - LE_FAULT for all other errors
2068  *
2069  * @note On failure, the process exits, so you don't have to worry about checking the returned
2070  * reference for validity.
2071  *
2072  * @note <b>multi-app safe</b>
2073  */
2074 //--------------------------------------------------------------------------------------------------
2076 (
2077  le_mrc_ScanInformationRef_t scanInformationRef,
2078  ///< [IN] Scan information reference
2079  char* mccPtr,
2080  ///< [OUT] Mobile Country Code
2081  size_t mccPtrSize,
2082  ///< [IN]
2083  char* mncPtr,
2084  ///< [OUT] Mobile Network Code
2085  size_t mncPtrSize
2086  ///< [IN]
2087 );
2088 
2089 //--------------------------------------------------------------------------------------------------
2090 /**
2091  * This function must be called to get the Cellular Network Name.
2092  *
2093  * @return
2094  * - LE_OK on success
2095  * - LE_OVERFLOW if the operator name would not fit in buffer
2096  * - LE_FAULT for all other errors
2097  *
2098  * @note On failure, the process exits, so you don't have to worry about checking the returned
2099  * reference for validity.
2100  *
2101  * @note <b>multi-app safe</b>
2102  */
2103 //--------------------------------------------------------------------------------------------------
2105 (
2106  le_mrc_ScanInformationRef_t scanInformationRef,
2107  ///< [IN] Scan information reference
2108  char* namePtr,
2109  ///< [OUT] Name of operator
2110  size_t namePtrSize
2111  ///< [IN]
2112 );
2113 
2114 //--------------------------------------------------------------------------------------------------
2115 /**
2116  * This function must be called to get the radio access technology of a scanInformationRef.
2117  *
2118  * @return the radio access technology
2119  *
2120  * @note On failure, the process exits.
2121  *
2122  * @note <b>multi-app safe</b>
2123  */
2124 //--------------------------------------------------------------------------------------------------
2126 (
2127  le_mrc_ScanInformationRef_t scanInformationRef
2128  ///< [IN] Scan information reference
2129 );
2130 
2131 //--------------------------------------------------------------------------------------------------
2132 /**
2133  * This function must be called to check if a cellular network is currently in use.
2134  *
2135  * @return true The network is in use
2136  * @return false The network isn't in use
2137  *
2138  * @note On failure, the process exits, so you don't have to worry about checking the returned
2139  * reference for validity.
2140  *
2141  * @note <b>multi-app safe</b>
2142  */
2143 //--------------------------------------------------------------------------------------------------
2145 (
2146  le_mrc_ScanInformationRef_t scanInformationRef
2147  ///< [IN] Scan information reference
2148 );
2149 
2150 //--------------------------------------------------------------------------------------------------
2151 /**
2152  * This function must be called to check if a cellular network is available.
2153  *
2154  * @return true The network is available
2155  * @return false The network isn't available
2156  *
2157  * @note On failure, the process exits, so you don't have to worry about checking the returned
2158  * reference for validity.
2159  *
2160  * @note <b>multi-app safe</b>
2161  */
2162 //--------------------------------------------------------------------------------------------------
2164 (
2165  le_mrc_ScanInformationRef_t scanInformationRef
2166  ///< [IN] Scan information reference
2167 );
2168 
2169 //--------------------------------------------------------------------------------------------------
2170 /**
2171  * This function must be called to check if a cellular network is currently in home mode.
2172  *
2173  * @return true The network is home
2174  * @return false The network is roaming
2175  *
2176  * @note On failure, the process exits, so you don't have to worry about checking the returned
2177  * reference for validity.
2178  *
2179  * @note <b>multi-app safe</b>
2180  */
2181 //--------------------------------------------------------------------------------------------------
2183 (
2184  le_mrc_ScanInformationRef_t scanInformationRef
2185  ///< [IN] Scan information reference
2186 );
2187 
2188 //--------------------------------------------------------------------------------------------------
2189 /**
2190  * This function must be called to check if a cellular network is forbidden by the operator.
2191  *
2192  * @return true The network is forbidden
2193  * @return false The network is allowed
2194  *
2195  * @note On failure, the process exits, so you don't have to worry about checking the returned
2196  * reference for validity.
2197  *
2198  * @note <b>multi-app safe</b>
2199  */
2200 //--------------------------------------------------------------------------------------------------
2202 (
2203  le_mrc_ScanInformationRef_t scanInformationRef
2204  ///< [IN] Scan information reference
2205 );
2206 
2207 //--------------------------------------------------------------------------------------------------
2208 /**
2209  * This function must be called to get the current network name information.
2210  *
2211  * @return
2212  * - LE_OK on success
2213  * - LE_BAD_PARAMETER if nameStr is NULL
2214  * - LE_OVERFLOW if the Home Network Name can't fit in nameStr
2215  * - LE_FAULT on any other failure
2216  *
2217  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2218  * function won't return.
2219  *
2220  * @note <b>multi-app safe</b>
2221  */
2222 //--------------------------------------------------------------------------------------------------
2224 (
2225  char* nameStr,
2226  ///< [OUT] the home network Name
2227  size_t nameStrSize
2228  ///< [IN]
2229 );
2230 
2231 //--------------------------------------------------------------------------------------------------
2232 /**
2233  * This function must be called to get the current network PLMN information.
2234  *
2235  * @return
2236  * - LE_OK on success
2237  * - LE_FAULT on any other failure
2238  *
2239  * @note <b>multi-app safe</b>
2240  */
2241 //--------------------------------------------------------------------------------------------------
2243 (
2244  char* mccStr,
2245  ///< [OUT] the mobile country code
2246  size_t mccStrSize,
2247  ///< [IN]
2248  char* mncStr,
2249  ///< [OUT] the mobile network code
2250  size_t mncStrSize
2251  ///< [IN]
2252 );
2253 
2254 //--------------------------------------------------------------------------------------------------
2255 /**
2256  * This function must be called to get the current Radio Access Technology in use.
2257  *
2258  * @return LE_OK Function succeeded.
2259  * @return LE_BAD_PARAMETER Invalid parameter.
2260  * @return LE_FAULT Function failed to get the Radio Access Technology.
2261  *
2262  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2263  * function won't return.
2264  *
2265  * @note The API returns the RAT only if the device is registered on the network.
2266  *
2267  * @note <b>multi-app safe</b>
2268  */
2269 //--------------------------------------------------------------------------------------------------
2271 (
2272  le_mrc_Rat_t* ratPtr
2273  ///< [OUT] The Radio Access Technology.
2274 );
2275 
2276 //--------------------------------------------------------------------------------------------------
2277 /**
2278  * This function must be called to retrieve the Neighboring Cells information. It creates and
2279  * returns a reference to the Neighboring Cells information.
2280  *
2281  * @return A reference to the Neighboring Cells information.
2282  * @return NULL if no Cells Information are available.
2283  *
2284  * @note <b>multi-app safe</b>
2285  */
2286 //--------------------------------------------------------------------------------------------------
2288 (
2289  void
2290 );
2291 
2292 //--------------------------------------------------------------------------------------------------
2293 /**
2294  * This function must be called to delete the Neighboring Cells information.
2295  *
2296  * @note On failure, the process exits, so you don't have to worry about checking the returned
2297  * reference for validity.
2298  *
2299  * @note <b>multi-app safe</b>
2300  */
2301 //--------------------------------------------------------------------------------------------------
2303 (
2304  le_mrc_NeighborCellsRef_t ngbrCellsRef
2305  ///< [IN] Neighboring Cells reference.
2306 );
2307 
2308 //--------------------------------------------------------------------------------------------------
2309 /**
2310  * This function must be called to get the first Cell Information reference in the list of
2311  * Neighboring Cells information retrieved with le_mrc_GetNeighborCellsInfo().
2312  *
2313  * @return NULL No Cell information object found.
2314  * @return le_mrc_CellInfoRef_t The Cell information object reference.
2315  *
2316  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2317  * function won't return.
2318  *
2319  * @note <b>multi-app safe</b>
2320  */
2321 //--------------------------------------------------------------------------------------------------
2323 (
2324  le_mrc_NeighborCellsRef_t ngbrCellsRef
2325  ///< [IN] Neighboring Cells reference.
2326 );
2327 
2328 //--------------------------------------------------------------------------------------------------
2329 /**
2330  * This function must be called to get the next Cell Information reference in the list of
2331  * Neighboring Cells information retrieved with le_mrc_GetNeighborCellsInfo().
2332  *
2333  * @return NULL No Cell information object found.
2334  * @return le_mrc_CellInfoRef_t Cell information object reference.
2335  *
2336  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2337  * function won't return.
2338  *
2339  * @note <b>multi-app safe</b>
2340  */
2341 //--------------------------------------------------------------------------------------------------
2343 (
2344  le_mrc_NeighborCellsRef_t ngbrCellsRef
2345  ///< [IN] Neighboring Cells reference.
2346 );
2347 
2348 //--------------------------------------------------------------------------------------------------
2349 /**
2350  * This function must be called to get the Cell Identifier.
2351  *
2352  * @return The Cell Identifier. UINT32_MAX value is returned if the Cell Identifier is not
2353  * available.
2354  *
2355  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2356  * function won't return.
2357  *
2358  * @note <b>multi-app safe</b>
2359  */
2360 //--------------------------------------------------------------------------------------------------
2361 uint32_t le_mrc_GetNeighborCellId
2362 (
2363  le_mrc_CellInfoRef_t ngbrCellInfoRef
2364  ///< [IN] Cell information reference.
2365 );
2366 
2367 //--------------------------------------------------------------------------------------------------
2368 /**
2369  * This function must be called to get the Location Area Code of a cell.
2370  *
2371  * @return The Location Area Code of a cell. UINT16_MAX value is returned if the value is not
2372  * available.
2373  *
2374  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2375  * function won't return.
2376  *
2377  * @note <b>multi-app safe</b>
2378  */
2379 //--------------------------------------------------------------------------------------------------
2381 (
2382  le_mrc_CellInfoRef_t ngbrCellInfoRef
2383  ///< [IN] Cell information reference.
2384 );
2385 
2386 //--------------------------------------------------------------------------------------------------
2387 /**
2388  * This function must be called to get the signal strength of a cell.
2389  *
2390  * @return The signal strength of a cell in dBm.
2391  *
2392  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2393  * function won't return.
2394  *
2395  * @note <b>multi-app safe</b>
2396  */
2397 //--------------------------------------------------------------------------------------------------
2399 (
2400  le_mrc_CellInfoRef_t ngbrCellInfoRef
2401  ///< [IN] Cell information reference.
2402 );
2403 
2404 //--------------------------------------------------------------------------------------------------
2405 /**
2406  * This function must be called to get the Radio Access Technology of a cell.
2407  *
2408  * @return The Radio Access Technology of a cell.
2409  *
2410  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2411  * function won't return.
2412  *
2413  * @note <b>multi-app safe</b>
2414  */
2415 //--------------------------------------------------------------------------------------------------
2417 (
2418  le_mrc_CellInfoRef_t ngbrCellInfoRef
2419  ///< [IN] Cell information reference.
2420 );
2421 
2422 //--------------------------------------------------------------------------------------------------
2423 /**
2424  * This function must be called to get the Ec/Io; the received energy per chip divided by the power
2425  * density in the band measured in dBm on the primary CPICH channel of serving cell (negative value)
2426  *
2427  * @return
2428  * - The Ec/Io of a cell given in dB with 1 decimal place. (only applicable for UMTS network).
2429  * - INT32_MAX when the value isn't available.
2430  *
2431  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2432  * function won't return.
2433  *
2434  * @note <b>multi-app safe</b>
2435  */
2436 //--------------------------------------------------------------------------------------------------
2438 (
2439  le_mrc_CellInfoRef_t ngbrCellInfoRef
2440  ///< [IN] Cell information reference.
2441 );
2442 
2443 //--------------------------------------------------------------------------------------------------
2444 /**
2445  * This function must be called to get the RSRP and RSRQ of the Intrafrequency of a LTE cell.
2446  *
2447  * @return
2448  * - LE_OK on success
2449  * - LE_FAULT on failure
2450  *
2451  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2452  * function won't return.
2453  *
2454  * @note <b>multi-app safe</b>
2455  */
2456 //--------------------------------------------------------------------------------------------------
2458 (
2459  le_mrc_CellInfoRef_t ngbrCellInfoRef,
2460  ///< [IN] Cell information reference.
2461  int32_t* rsrqPtr,
2462  ///< [OUT] Reference Signal Received Quality value in dB with 1 decimal
2463  ///< place
2464  int32_t* rsrpPtr
2465  ///< [OUT] Reference Signal Receiver Power value in dBm with 1 decimal
2466  ///< place
2467 );
2468 
2469 //--------------------------------------------------------------------------------------------------
2470 /**
2471  * This function must be called to get the RSRP and RSRQ of the Interfrequency of a LTE cell.
2472  *
2473  * @return
2474  * - LE_OK on success
2475  * - LE_FAULT on failure
2476  *
2477  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2478  * function won't return.
2479  *
2480  * @note <b>multi-app safe</b>
2481  */
2482 //--------------------------------------------------------------------------------------------------
2484 (
2485  le_mrc_CellInfoRef_t ngbrCellInfoRef,
2486  ///< [IN] Cell information reference.
2487  int32_t* rsrqPtr,
2488  ///< [OUT] Reference Signal Received Quality value in dB with 1 decimal
2489  ///< place
2490  int32_t* rsrpPtr
2491  ///< [OUT] Reference Signal Receiver Power value in dBm with 1 decimal
2492  ///< place
2493 );
2494 
2495 //--------------------------------------------------------------------------------------------------
2496 /**
2497  * This function must be called to measure the signal metrics. It creates and returns a reference
2498  * to the signal metrics.
2499  *
2500  * @return A reference to the signal metrics.
2501  * @return NULL if no signal metrics are available.
2502  *
2503  * @note <b>multi-app safe</b>
2504  */
2505 //--------------------------------------------------------------------------------------------------
2507 (
2508  void
2509 );
2510 
2511 //--------------------------------------------------------------------------------------------------
2512 /**
2513  * This function must be called to delete the the signal metrics.
2514  *
2515  * @note On failure, the process exits, so you don't have to worry about checking the returned
2516  * reference for validity.
2517  *
2518  * @note <b>multi-app safe</b>
2519  */
2520 //--------------------------------------------------------------------------------------------------
2522 (
2523  le_mrc_MetricsRef_t MetricsRef
2524  ///< [IN] Signal metrics reference.
2525 );
2526 
2527 //--------------------------------------------------------------------------------------------------
2528 /**
2529  * This function returns the Radio Access Technology of the signal metrics.
2530  *
2531  * @return The Radio Access Technology of the signal measure.
2532  *
2533  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2534  * function won't return.
2535  *
2536  * @note <b>multi-app safe</b>
2537  */
2538 //--------------------------------------------------------------------------------------------------
2540 (
2541  le_mrc_MetricsRef_t MetricsRef
2542  ///< [IN] Signal metrics reference.
2543 );
2544 
2545 //--------------------------------------------------------------------------------------------------
2546 /**
2547  * This function returns the signal strength in dBm and the bit error rate measured on GSM network.
2548  *
2549  * @return
2550  * - LE_OK on success
2551  * - LE_FAULT on failure
2552  *
2553  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2554  * function won't return.
2555  *
2556  * @note <b>multi-app safe</b>
2557  */
2558 //--------------------------------------------------------------------------------------------------
2560 (
2561  le_mrc_MetricsRef_t MetricsRef,
2562  ///< [IN] Signal metrics reference.
2563  int32_t* rssiPtr,
2564  ///< [OUT] Signal strength in dBm
2565  uint32_t* berPtr
2566  ///< [OUT] Bit error rate.
2567 );
2568 
2569 //--------------------------------------------------------------------------------------------------
2570 /**
2571  * This function returns the signal metrics measured on UMTS or TD-SCDMA networks.
2572  *
2573  * @return
2574  * - LE_OK on success
2575  * - LE_FAULT on failure
2576  *
2577  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2578  * function won't return.
2579  *
2580  * @note <b>multi-app safe</b>
2581  */
2582 //--------------------------------------------------------------------------------------------------
2584 (
2585  le_mrc_MetricsRef_t MetricsRef,
2586  ///< [IN] Signal metrics reference.
2587  int32_t* ssPtr,
2588  ///< [OUT] Signal strength in dBm
2589  uint32_t* blerPtr,
2590  ///< [OUT] Block error rate
2591  int32_t* ecioPtr,
2592  ///< [OUT] Ec/Io value in dB with 1 decimal place (-15 = -1.5 dB) (Negative
2593  ///< value)
2594  int32_t* rscpPtr,
2595  ///< [OUT] Measured RSCP in dBm (negative value, value INT32_MAX means
2596  ///< that RSCP is not available)
2597  int32_t* sinrPtr
2598  ///< [OUT] Measured SINR in dB (only applicable for TD-SCDMA network, value
2599  ///< INT32_MAX means that the SINR is not available)
2600 );
2601 
2602 //--------------------------------------------------------------------------------------------------
2603 /**
2604  * This function returns the signal metrics measured on LTE network.
2605  *
2606  * @return
2607  * - LE_OK on success
2608  * - LE_FAULT on failure
2609  * - sinrPtr and ioPtr return INT32_MAX when the value isn't available.
2610  *
2611  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2612  * function won't return.
2613  *
2614  * @note <b>multi-app safe</b>
2615  */
2616 //--------------------------------------------------------------------------------------------------
2618 (
2619  le_mrc_MetricsRef_t MetricsRef,
2620  ///< [IN] Signal metrics reference.
2621  int32_t* ssPtr,
2622  ///< [OUT] Signal strength in dBm
2623  uint32_t* blerPtr,
2624  ///< [OUT] Block error rate
2625  int32_t* rsrqPtr,
2626  ///< [OUT] RSRQ value in dB as measured by L1 with 1 decimal place
2627  int32_t* rsrpPtr,
2628  ///< [OUT] Current RSRP in dBm as measured by L1 with 1 decimal place
2629  int32_t* snrPtr
2630  ///< [OUT] SNR level in dB with 1 decimal place (15 = 1.5 dB)
2631 );
2632 
2633 //--------------------------------------------------------------------------------------------------
2634 /**
2635  * This function returns the signal metrics measured on CDMA network.
2636  *
2637  * @return
2638  * - LE_OK on success
2639  * - LE_FAULT on failure
2640  * - rscpPtr and sinrPtr return INT32_MAX when the value isn't available.
2641  *
2642  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2643  * function won't return.
2644  *
2645  * @note <b>multi-app safe</b>
2646  */
2647 //--------------------------------------------------------------------------------------------------
2649 (
2650  le_mrc_MetricsRef_t MetricsRef,
2651  ///< [IN] Signal metrics reference.
2652  int32_t* ssPtr,
2653  ///< [OUT] Signal strength in dBm
2654  uint32_t* erPtr,
2655  ///< [OUT] Frame/Packet error rate
2656  int32_t* ecioPtr,
2657  ///< [OUT] ECIO value in dB with 1 decimal place (-15 = -1.5 dB) (Negative
2658  ///< value)
2659  int32_t* sinrPtr,
2660  ///< [OUT] SINR level in dB with 1 decimal place, (only applicable for
2661  ///< 1xEV-DO, value INT32_MAX means that the value is not available)
2662  int32_t* ioPtr
2663  ///< [OUT] Received IO in dBm (only applicable for 1xEV-DO, value INT32_MAX
2664  ///< means that the value is not available)
2665 );
2666 
2667 //--------------------------------------------------------------------------------------------------
2668 /**
2669  * This function must be called to get the serving Cell Identifier.
2670  *
2671  * @return The Cell Identifier. UINT32_MAX value is returned if the value is not available.
2672  *
2673  * @note When the module is in UMTS network, the API returns the serving UTRAN Cell Identity (UC-Id)
2674  * which is used to identify the cell uniquely.
2675  * It is composed of the Controlling Radio Network Controller Identifier (CRNC-Id, 12 bits) and the
2676  * Cell Identifier (C-Id, 16 bits). (3GPP 25.401, section 6.1.5)
2677  * The Cell Identifier is coded in the lower 2 bytes of the 4 bytes UC-Id and the CRNC-Id is coded
2678  * in the upper 2 bytes.
2679  * Example: the API returns 7807609 -> 0x772279 (CRNC-Id = 0x77 , cell ID = 0x2279)
2680  *
2681  * @note <b>multi-app safe</b>
2682  */
2683 //--------------------------------------------------------------------------------------------------
2684 uint32_t le_mrc_GetServingCellId
2685 (
2686  void
2687 );
2688 
2689 //--------------------------------------------------------------------------------------------------
2690 /**
2691  * This function must be called to get the Location Area Code of the serving cell.
2692  *
2693  * @return The Location Area Code. UINT32_MAX value is returned if the value is not available.
2694  *
2695  * @note <b>multi-app safe</b>
2696  */
2697 //--------------------------------------------------------------------------------------------------
2699 (
2700  void
2701 );
2702 
2703 //--------------------------------------------------------------------------------------------------
2704 /**
2705  * This function must be called to get the Tracking Area Code of the serving cell (LTE only).
2706  *
2707  * @return The Tracking Area Code. UINT16_MAX value is returned if the value is not available.
2708  *
2709  * @note <b>multi-app safe</b>
2710  */
2711 //--------------------------------------------------------------------------------------------------
2713 (
2714  void
2715 );
2716 
2717 //--------------------------------------------------------------------------------------------------
2718 /**
2719  * Get the Bit mask for 2G/3G Band capabilities.
2720  *
2721  * @return
2722  * - LE_OK on success
2723  * - LE_FAULT on failure
2724  * - LE_UNSUPPORTED Unable to get the 2G/3G Band capabilities on this platform
2725  *
2726  * @note <b>multi-app safe</b>
2727  */
2728 //--------------------------------------------------------------------------------------------------
2730 (
2731  le_mrc_BandBitMask_t* bandMaskPtrPtr
2732  ///< [OUT] Bit mask for 2G/3G Band capabilities.
2733 );
2734 
2735 //--------------------------------------------------------------------------------------------------
2736 /**
2737  * Get the Bit mask for LTE Band capabilities.
2738  *
2739  * @return
2740  * - LE_OK on success
2741  * - LE_FAULT on failure
2742  * - LE_UNSUPPORTED Unable to get the LTE Band capabilities on this platform
2743  *
2744  * @note <b>multi-app safe</b>
2745  */
2746 //--------------------------------------------------------------------------------------------------
2748 (
2749  le_mrc_LteBandBitMask_t* bandMaskPtrPtr
2750  ///< [OUT] Bit mask for LTE Band capabilities.
2751 );
2752 
2753 //--------------------------------------------------------------------------------------------------
2754 /**
2755  * Get the Bit mask for TD-SCDMA Band capabilities.
2756  *
2757  * @return
2758  * - LE_OK on success
2759  * - LE_FAULT on failure
2760  * - LE_UNSUPPORTED Unable to get the TD-SCDMA Band Capabilities on this platform
2761  *
2762  * @note <b>multi-app safe</b>
2763  */
2764 //--------------------------------------------------------------------------------------------------
2766 (
2767  le_mrc_TdScdmaBandBitMask_t* bandMaskPtrPtr
2768  ///< [OUT] Bit mask for TD-SCDMA Band capabilities.
2769 );
2770 
2771 //--------------------------------------------------------------------------------------------------
2772 /**
2773  * Add handler function for EVENT 'le_mrc_NetworkReject'
2774  *
2775  * Event to report network reject indication.
2776  *
2777  */
2778 //--------------------------------------------------------------------------------------------------
2780 (
2782  ///< [IN]
2783  void* contextPtr
2784  ///< [IN]
2785 );
2786 
2787 //--------------------------------------------------------------------------------------------------
2788 /**
2789  * Remove handler function for EVENT 'le_mrc_NetworkReject'
2790  */
2791 //--------------------------------------------------------------------------------------------------
2793 (
2795  ///< [IN]
2796 );
2797 
2798 //--------------------------------------------------------------------------------------------------
2799 /**
2800  * Add handler function for EVENT 'le_mrc_JammingDetectionEvent'
2801  *
2802  * This event provides information on jamming detection.
2803  */
2804 //--------------------------------------------------------------------------------------------------
2806 (
2808  ///< [IN]
2809  void* contextPtr
2810  ///< [IN]
2811 );
2812 
2813 //--------------------------------------------------------------------------------------------------
2814 /**
2815  * Remove handler function for EVENT 'le_mrc_JammingDetectionEvent'
2816  */
2817 //--------------------------------------------------------------------------------------------------
2819 (
2821  ///< [IN]
2822 );
2823 
2824 //--------------------------------------------------------------------------------------------------
2825 /**
2826  * Start the jamming detection monitoring.
2827  *
2828  * @warning The jamming detection feature might be limited by the platform.
2829  * Please refer to the platform documentation @ref platformConstraintsMdc.
2830  *
2831  * @return
2832  * - LE_OK The function succeeded.
2833  * - LE_FAULT The function failed.
2834  * - LE_DUPLICATE The feature is already activated and an activation is requested.
2835  * - LE_UNSUPPORTED The feature is not supported.
2836  */
2837 //--------------------------------------------------------------------------------------------------
2839 (
2840  void
2841 );
2842 
2843 //--------------------------------------------------------------------------------------------------
2844 /**
2845  * Stop the jamming detection monitoring.
2846  *
2847  * @return
2848  * - LE_OK The function succeeded.
2849  * - LE_FAULT The function failed or the application did not start the jamming detection.
2850  * - LE_UNSUPPORTED The feature is not supported.
2851  */
2852 //--------------------------------------------------------------------------------------------------
2854 (
2855  void
2856 );
2857 
2858 //--------------------------------------------------------------------------------------------------
2859 /**
2860  * Set the SAR backoff state
2861  *
2862  * @warning The SAR backoff feature might be unsupported by some platforms.
2863  * Please refer to the platform documentation @ref platformConstraintsMdc.
2864  *
2865  * @return
2866  * - LE_OK The function succeeded.
2867  * - LE_FAULT The function failed.
2868  * - LE_UNSUPPORTED The feature is not supported.
2869  * - LE_OUT_OF_RANGE The provided index is out of range.
2870  */
2871 //--------------------------------------------------------------------------------------------------
2873 (
2874  uint8_t state
2875  ///< [IN] New state to enable. By default, SAR is disabled (state = 0).
2876  ///< Refer to @ref platformConstraitsMdc for the number of maximum states.
2877 );
2878 
2879 //--------------------------------------------------------------------------------------------------
2880 /**
2881  * Get the SAR backoff state
2882  *
2883  * @warning The SAR backoff feature might be unsupported by some platforms.
2884  * Please refer to the platform documentation @ref platformConstraintsMdc.
2885  *
2886  * @return
2887  * - LE_OK The function succeeded.
2888  * - LE_FAULT The function failed.
2889  * - LE_UNSUPPORTED The feature is not supported.
2890  */
2891 //--------------------------------------------------------------------------------------------------
2893 (
2894  uint8_t* statePtr
2895  ///< [OUT] Current state. By default, SAR is disabled (state = 0).
2896  ///< Refer to @ref platformConstraitsMdc for the number of maximum states.
2897 );
2898 
2899 #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)
TD-SCDMA networks.
Definition: le_mrc_interface.h:875
LTE RAT Bit Mask.
Definition: le_mrc_interface.h:945
struct le_mrc_PciScanInformationList * le_mrc_PciScanInformationListRef_t
Definition: le_mrc_interface.h:780
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:946
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:812
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:804
le_result_t le_mrc_RemovePreferredOperator(const char *LE_NONNULL mcc, const char *LE_NONNULL mnc)
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:533
le_result_t
Definition: le_basics.h:35
le_result_t le_mrc_SetRadioPower(le_onoff_t power)
le_mrc_PlmnInformationRef_t le_mrc_GetFirstPlmnInfo(le_mrc_PciScanInformationRef_t pciScanInformationRef)
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:828
le_result_t le_mrc_SetTdScdmaBandPreferences(le_mrc_TdScdmaBandBitMask_t bandMask)
struct le_mrc_Metrics * le_mrc_MetricsRef_t
Definition: le_mrc_interface.h:836
le_result_t le_mrc_GetPacketSwitchedState(le_mrc_NetRegState_t *statePtr)
UMTS networks.
Definition: le_mrc_interface.h:873
TD-SCDMA RAT Bit Mask.
Definition: le_mrc_interface.h:944
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:958
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:966
le_mrc_CellInfoRef_t le_mrc_GetFirstNeighborCellInfo(le_mrc_NeighborCellsRef_t ngbrCellsRef)
Registered to a roaming network.
Definition: le_mrc_interface.h:854
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_SetManualRegisterMode(const char *LE_NONNULL mcc, const char *LE_NONNULL mnc)
le_result_t le_mrc_GetNeighborCellLteIntraFreq(le_mrc_CellInfoRef_t ngbrCellInfoRef, int32_t *rsrqPtr, int32_t *rsrpPtr)
le_mrc_PlmnInformationRef_t le_mrc_GetNextPlmnInfo(le_mrc_PciScanInformationRef_t plmnRef)
No jamming suspicion; radio environment is considered normal.
Definition: le_mrc_interface.h:916
struct le_mrc_ScanInformationList * le_mrc_ScanInformationListRef_t
Definition: le_mrc_interface.h:772
le_result_t le_mrc_TryConnectService(void)
void(* le_mrc_PciNetworkScanHandlerFunc_t)(le_mrc_PciScanInformationListRef_t listRef, void *contextPtr)
Definition: le_mrc_interface.h:1081
le_result_t le_mrc_SetSignalStrengthIndDelta(le_mrc_Rat_t rat, uint16_t delta)
LTE network.
Definition: le_mrc_interface.h:877
le_result_t le_mrc_GetRatPreferences(le_mrc_RatBitMask_t *ratMaskPtrPtr)
struct le_mrc_CellInfo * le_mrc_CellInfoRef_t
Definition: le_mrc_interface.h:820
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)
le_result_t le_mrc_SetSarBackoffState(uint8_t state)
struct le_mrc_SignalStrengthChangeHandler * le_mrc_SignalStrengthChangeHandlerRef_t
Definition: le_mrc_interface.h:982
le_mrc_NeighborCellsRef_t le_mrc_GetNeighborCellsInfo(void)
le_result_t le_mrc_GetPciScanMccMnc(le_mrc_PlmnInformationRef_t plmnRef, char *mccPtr, size_t mccPtrSize, char *mncPtr, size_t mncPtrSize)
le_mrc_Rat_t le_mrc_GetCellularNetworkRat(le_mrc_ScanInformationRef_t scanInformationRef)
void le_mrc_RemoveRatChangeHandler(le_mrc_RatChangeHandlerRef_t handlerRef)
struct le_mrc_NetworkRejectHandler * le_mrc_NetworkRejectHandlerRef_t
Definition: le_mrc_interface.h:990
struct le_mrc_PlmnInformation * le_mrc_PlmnInformationRef_t
Definition: le_mrc_interface.h:796
Registered, home network.
Definition: le_mrc_interface.h:848
Definition: le_mrc_interface.h:924
le_result_t le_mrc_GetSarBackoffState(uint8_t *statePtr)
uint32_t le_mrc_GetServingCellLocAreaCode(void)
le_mrc_PreferredOperatorRef_t le_mrc_GetFirstPreferredOperator(le_mrc_PreferredOperatorListRef_t preferredOperatorListRef)
le_mrc_PciScanInformationRef_t le_mrc_GetFirstPciScanInfo(le_mrc_PciScanInformationListRef_t scanInformationListRef)
void le_mrc_PerformCellularNetworkScanAsync(le_mrc_RatBitMask_t ratMask, le_mrc_CellularNetworkScanHandlerFunc_t handlerPtr, void *contextPtr)
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 *snrPtr)
GSM network.
Definition: le_mrc_interface.h:871
void le_mrc_RemoveNetworkRejectHandler(le_mrc_NetworkRejectHandlerRef_t handlerRef)
void(* le_mrc_RatChangeHandlerFunc_t)(le_mrc_Rat_t rat, void *contextPtr)
Definition: le_mrc_interface.h:1022
le_mrc_PciScanInformationRef_t le_mrc_GetNextPciScanInfo(le_mrc_PciScanInformationListRef_t scanInformationListRef)
To Set all RAT preference Bit Mask.
Definition: le_mrc_interface.h:947
le_mrc_RatBitMask_t
Definition: le_mrc_interface.h:940
int32_t le_mrc_GetPlatformSpecificRegistrationErrorCode(void)
Final jamming status report.
Definition: le_mrc_interface.h:897
le_mrc_PreferredOperatorRef_t le_mrc_GetNextPreferredOperator(le_mrc_PreferredOperatorListRef_t preferredOperatorListRef)
CDMA network.
Definition: le_mrc_interface.h:879
void le_mrc_SetManualRegisterModeAsync(const char *LE_NONNULL mcc, const char *LE_NONNULL mnc, le_mrc_ManualSelectionHandlerFunc_t handlerPtr, void *contextPtr)
le_mrc_Rat_t
Definition: le_mrc_interface.h:867
le_result_t le_mrc_GetTdScdmaBandCapabilities(le_mrc_TdScdmaBandBitMask_t *bandMaskPtrPtr)
void(* le_mrc_NetworkRejectHandlerFunc_t)(const char *LE_NONNULL mcc, const char *LE_NONNULL mnc, le_mrc_Rat_t rat, void *contextPtr)
Definition: le_mrc_interface.h:1110
le_result_t le_mrc_GetRegisterMode(bool *isManualPtrPtr, char *mccPtr, size_t mccPtrSize, char *mncPtr, size_t mncPtrSize)
Definition: le_mrc_interface.h:918
le_mrc_JammingReport_t
Definition: le_mrc_interface.h:895
Unknown.
Definition: le_mrc_interface.h:869
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:764
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_mrc_ScanInformationRef_t le_mrc_GetNextCellularNetworkScan(le_mrc_ScanInformationListRef_t scanInformationListRef)
void(* le_mrc_JammingDetectionHandlerFunc_t)(le_mrc_JammingReport_t report, le_mrc_JammingStatus_t status, void *contextPtr)
Definition: le_mrc_interface.h:1127
Definition: le_mrc_interface.h:921
void le_mrc_SetServerDisconnectHandler(le_mrc_DisconnectHandler_t disconnectHandler, void *contextPtr)
le_result_t le_mrc_GetCurrentNetworkName(char *nameStr, size_t nameStrSize)
Intermediate jamming status report.
Definition: le_mrc_interface.h:899
le_result_t le_mrc_GetRadioAccessTechInUse(le_mrc_Rat_t *ratPtr)
le_mrc_PreferredOperatorListRef_t le_mrc_GetPreferredOperatorsList(void)
le_result_t le_mrc_GetLteBandPreferences(le_mrc_LteBandBitMask_t *bandMaskPtrPtr)
le_result_t le_mrc_AddPreferredOperator(const char *LE_NONNULL mcc, const char *LE_NONNULL mnc, le_mrc_RatBitMask_t ratMask)
le_result_t le_mrc_GetBandCapabilities(le_mrc_BandBitMask_t *bandMaskPtrPtr)
bool le_mrc_IsCellularNetworkHome(le_mrc_ScanInformationRef_t scanInformationRef)
le_mrc_PciScanInformationListRef_t le_mrc_PerformPciNetworkScan(le_mrc_RatBitMask_t ratMask)
le_result_t le_mrc_GetCellularNetworkName(le_mrc_ScanInformationRef_t scanInformationRef, char *namePtr, size_t namePtrSize)
le_mrc_JammingStatus_t
Definition: le_mrc_interface.h:912
void le_mrc_ConnectService(void)
void le_mrc_DeletePreferredOperatorsList(le_mrc_PreferredOperatorListRef_t preferredOperatorListRef)
le_mrc_JammingDetectionEventHandlerRef_t le_mrc_AddJammingDetectionEventHandler(le_mrc_JammingDetectionHandlerFunc_t handlerPtr, void *contextPtr)
le_result_t le_mrc_StartJammingDetection(void)
void(* le_mrc_NetRegStateHandlerFunc_t)(le_mrc_NetRegState_t state, void *contextPtr)
Definition: le_mrc_interface.h:1008
Not registered but currently searching for a new operator.
Definition: le_mrc_interface.h:850
le_result_t le_mrc_StopJammingDetection(void)
le_mrc_BandBitMask_t
Definition: le_mrc_interface.h:653
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_DisconnectService(void)
bool le_mrc_IsCellularNetworkInUse(le_mrc_ScanInformationRef_t scanInformationRef)
void le_mrc_PerformPciNetworkScanAsync(le_mrc_RatBitMask_t ratMask, le_mrc_PciNetworkScanHandlerFunc_t handlerPtr, void *contextPtr)
void(* le_mrc_ManualSelectionHandlerFunc_t)(le_result_t result, void *contextPtr)
Definition: le_mrc_interface.h:1096
le_mrc_NetRegState_t
Definition: le_mrc_interface.h:844
uint32_t le_mrc_GetNeighborCellLocAreaCode(le_mrc_CellInfoRef_t ngbrCellInfoRef)
le_mrc_MetricsRef_t le_mrc_MeasureSignalMetrics(void)
le_mrc_LteBandBitMask_t
Definition: le_mrc_interface.h:703
Unknown state.
Definition: le_mrc_interface.h:856
bool le_mrc_IsCellularNetworkAvailable(le_mrc_ScanInformationRef_t scanInformationRef)
struct le_mrc_JammingDetectionEventHandler * le_mrc_JammingDetectionEventHandlerRef_t
Definition: le_mrc_interface.h:998
Registration was denied, usually because of invalid access credentials.
Definition: le_mrc_interface.h:852
UMTS RAT Bit Mask.
Definition: le_mrc_interface.h:943
void le_mrc_DeletePciNetworkScan(le_mrc_PciScanInformationListRef_t scanInformationListRef)
uint16_t le_mrc_GetPciScanCellId(le_mrc_PciScanInformationRef_t pciScanInformationRef)
void(* le_mrc_SignalStrengthChangeHandlerFunc_t)(int32_t ss, void *contextPtr)
Definition: le_mrc_interface.h:1050
le_mrc_TdScdmaBandBitMask_t
Definition: le_mrc_interface.h:747
Not registered and not currently searching for new operator.
Definition: le_mrc_interface.h:846
void le_mrc_RemoveJammingDetectionEventHandler(le_mrc_JammingDetectionEventHandlerRef_t handlerRef)
GSM RAT Bit Mask.
Definition: le_mrc_interface.h:942
le_mrc_NetworkRejectHandlerRef_t le_mrc_AddNetworkRejectHandler(le_mrc_NetworkRejectHandlerFunc_t handlerPtr, void *contextPtr)
le_result_t le_mrc_GetBandPreferences(le_mrc_BandBitMask_t *bandMaskPtrPtr)
struct le_mrc_PacketSwitchedChangeHandler * le_mrc_PacketSwitchedChangeHandlerRef_t
Definition: le_mrc_interface.h:974
void(* le_mrc_CellularNetworkScanHandlerFunc_t)(le_mrc_ScanInformationListRef_t listRef, void *contextPtr)
Definition: le_mrc_interface.h:1065
void(* le_mrc_PacketSwitchedChangeHandlerFunc_t)(le_mrc_NetRegState_t state, void *contextPtr)
Definition: le_mrc_interface.h:1036
void le_mrc_RemoveNetRegStateEventHandler(le_mrc_NetRegStateEventHandlerRef_t handlerRef)
le_mrc_ScanInformationRef_t le_mrc_GetFirstCellularNetworkScan(le_mrc_ScanInformationListRef_t scanInformationListRef)
Status is unknown.
Definition: le_mrc_interface.h:914
struct le_mrc_PciScanInformation * le_mrc_PciScanInformationRef_t
Definition: le_mrc_interface.h:788
le_mrc_Rat_t le_mrc_GetNeighborCellRat(le_mrc_CellInfoRef_t ngbrCellInfoRef)
le_onoff_t
Definition: le_basics.h:70
Definition: le_mrc_interface.h:928