le_mrc_common.h

Go to the documentation of this file.
1 
2 /*
3  * ====================== WARNING ======================
4  *
5  * THE CONTENTS OF THIS FILE HAVE BEEN AUTO-GENERATED.
6  * DO NOT MODIFY IN ANY WAY.
7  *
8  * ====================== WARNING ======================
9  */
10 /**
11  * @file le_mrc_common.h
12  *
13  * Type definitions for le_mrc.
14  *
15  */
16 #ifndef LE_MRC_COMMON_H_INCLUDE_GUARD
17 #define LE_MRC_COMMON_H_INCLUDE_GUARD
18 
19 
20 #include "legato.h"
21 
22 #define IFGEN_LE_MRC_PROTOCOL_ID "7c923e1e37f3498e9abb0df4a5c3e5e1"
23 #define IFGEN_LE_MRC_MSG_SIZE 116
24 /** @addtogroup le_mrc
25  * @{ **/
26 
27 
28 //--------------------------------------------------------------------------------------------------
29 /**
30  * Mobile Country Code length
31  */
32 //--------------------------------------------------------------------------------------------------
33 #define LE_MRC_MCC_LEN 3
34 
35 //--------------------------------------------------------------------------------------------------
36 /**
37  * Mobile Country Code length
38  * One extra byte is added for the null character.
39  */
40 //--------------------------------------------------------------------------------------------------
41 #define LE_MRC_MCC_BYTES 4
42 
43 //--------------------------------------------------------------------------------------------------
44 /**
45  * Mobile Network Code length
46  */
47 //--------------------------------------------------------------------------------------------------
48 #define LE_MRC_MNC_LEN 3
49 
50 //--------------------------------------------------------------------------------------------------
51 /**
52  * Mobile Network Code length
53  * One extra byte is added for the null character.
54  */
55 //--------------------------------------------------------------------------------------------------
56 #define LE_MRC_MNC_BYTES 4
57 
58 //--------------------------------------------------------------------------------------------------
59 /**
60  * Cellular Network length.
61  *
62  */
63 //--------------------------------------------------------------------------------------------------
64 #define LE_MRC_NETWORK_NAME_MAX_LEN 100
65 
66 //--------------------------------------------------------------------------------------------------
67 /**
68  * 2G/3G Band Bit Mask (64 bits)
69  */
70 //--------------------------------------------------------------------------------------------------
71 #define LE_MRC_BITMASK_BAND_CLASS_0_A_SYSTEM 0x1
72 #define LE_MRC_BITMASK_BAND_CLASS_0_B_SYSTEM 0x2
73 #define LE_MRC_BITMASK_BAND_CLASS_1_ALL_BLOCKS 0x4
74 #define LE_MRC_BITMASK_BAND_CLASS_2_PLACEHOLDER 0x8
75 #define LE_MRC_BITMASK_BAND_CLASS_3_A_SYSTEM 0x10
76 #define LE_MRC_BITMASK_BAND_CLASS_4_ALL_BLOCKS 0x20
77 #define LE_MRC_BITMASK_BAND_CLASS_5_ALL_BLOCKS 0x40
78 #define LE_MRC_BITMASK_BAND_CLASS_6 0x80
79 #define LE_MRC_BITMASK_BAND_CLASS_7 0x100
80 #define LE_MRC_BITMASK_BAND_CLASS_8 0x200
81 #define LE_MRC_BITMASK_BAND_CLASS_9 0x400
82 #define LE_MRC_BITMASK_BAND_CLASS_10 0x800
83 #define LE_MRC_BITMASK_BAND_CLASS_11 0x1000
84 #define LE_MRC_BITMASK_BAND_CLASS_12 0x2000
85 #define LE_MRC_BITMASK_BAND_CLASS_14 0x4000
86 #define LE_MRC_BITMASK_BAND_CLASS_15 0x8000
87 #define LE_MRC_BITMASK_BAND_CLASS_16 0x10000
88 #define LE_MRC_BITMASK_BAND_CLASS_17 0x20000
89 #define LE_MRC_BITMASK_BAND_CLASS_18 0x40000
90 #define LE_MRC_BITMASK_BAND_CLASS_19 0x80000
91 #define LE_MRC_BITMASK_BAND_GSM_DCS_1800 0x100000
92 #define LE_MRC_BITMASK_BAND_EGSM_900 0x200000
93 #define LE_MRC_BITMASK_BAND_PRI_GSM_900 0x400000
94 #define LE_MRC_BITMASK_BAND_GSM_450 0x800000
95 #define LE_MRC_BITMASK_BAND_GSM_480 0x1000000
96 #define LE_MRC_BITMASK_BAND_GSM_750 0x2000000
97 #define LE_MRC_BITMASK_BAND_GSM_850 0x4000000
98 #define LE_MRC_BITMASK_BAND_GSMR_900 0x8000000
99 #define LE_MRC_BITMASK_BAND_GSM_PCS_1900 0x10000000
100 #define LE_MRC_BITMASK_BAND_WCDMA_EU_J_CH_IMT_2100 0x20000000
101 #define LE_MRC_BITMASK_BAND_WCDMA_US_PCS_1900 0x40000000
102 #define LE_MRC_BITMASK_BAND_WCDMA_EU_CH_DCS_1800 0x80000000
103 #define LE_MRC_BITMASK_BAND_WCDMA_US_1700 0x100000000
104 #define LE_MRC_BITMASK_BAND_WCDMA_US_850 0x200000000
105 #define LE_MRC_BITMASK_BAND_WCDMA_J_800 0x400000000
106 #define LE_MRC_BITMASK_BAND_WCDMA_EU_2600 0x800000000
107 #define LE_MRC_BITMASK_BAND_WCDMA_EU_J_900 0x1000000000
108 #define LE_MRC_BITMASK_BAND_WCDMA_J_1700 0x2000000000
109 typedef uint64_t le_mrc_BandBitMask_t;
110 
111 
112 //--------------------------------------------------------------------------------------------------
113 /**
114  * LTE Band Bit Mask (64 bits)
115  *
116  */
117 //--------------------------------------------------------------------------------------------------
118 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_1 0x1
119 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_2 0x2
120 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_3 0x4
121 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_4 0x8
122 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_5 0x10
123 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_6 0x20
124 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_7 0x40
125 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_8 0x80
126 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_9 0x100
127 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_10 0x200
128 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_11 0x400
129 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_12 0x800
130 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_13 0x1000
131 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_14 0x2000
132 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_17 0x4000
133 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_18 0x8000
134 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_19 0x10000
135 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_20 0x20000
136 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_21 0x40000
137 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_24 0x80000
138 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_25 0x100000
139 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_26 0x200000
140 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_28 0x400000
141 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_33 0x800000
142 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_34 0x1000000
143 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_35 0x2000000
144 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_36 0x4000000
145 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_37 0x8000000
146 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_38 0x10000000
147 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_39 0x20000000
148 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_40 0x40000000
149 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_41 0x80000000
150 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_42 0x100000000
151 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_43 0x200000000
152 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_66 0x400000000
153 #define LE_MRC_BITMASK_LTE_BAND_E_UTRA_OP_BAND_71 0x800000000
154 typedef uint64_t le_mrc_LteBandBitMask_t;
155 
156 
157 //--------------------------------------------------------------------------------------------------
158 /**
159  * TDSCDMA Band Bit Mask
160  *
161  */
162 //--------------------------------------------------------------------------------------------------
163 #define LE_MRC_BITMASK_TDSCDMA_BAND_A 0x1
164 #define LE_MRC_BITMASK_TDSCDMA_BAND_B 0x2
165 #define LE_MRC_BITMASK_TDSCDMA_BAND_C 0x4
166 #define LE_MRC_BITMASK_TDSCDMA_BAND_D 0x8
167 #define LE_MRC_BITMASK_TDSCDMA_BAND_E 0x10
168 #define LE_MRC_BITMASK_TDSCDMA_BAND_F 0x20
169 typedef uint32_t le_mrc_TdScdmaBandBitMask_t;
170 
171 
172 //--------------------------------------------------------------------------------------------------
173 /**
174  * Reference type for referring to MRC Scan Information objects.
175  */
176 //--------------------------------------------------------------------------------------------------
177 typedef struct le_mrc_ScanInformation* le_mrc_ScanInformationRef_t;
178 
179 
180 //--------------------------------------------------------------------------------------------------
181 /**
182  * Reference type for Scan Information Listing.
183  */
184 //--------------------------------------------------------------------------------------------------
185 typedef struct le_mrc_ScanInformationList* le_mrc_ScanInformationListRef_t;
186 
187 
188 //--------------------------------------------------------------------------------------------------
189 /**
190  * Reference type for PCI Scan Information Listing.
191  */
192 //--------------------------------------------------------------------------------------------------
193 typedef struct le_mrc_PciScanInformationList* le_mrc_PciScanInformationListRef_t;
194 
195 
196 //--------------------------------------------------------------------------------------------------
197 /**
198  * Reference type for PCI Scan Information .
199  */
200 //--------------------------------------------------------------------------------------------------
201 typedef struct le_mrc_PciScanInformation* le_mrc_PciScanInformationRef_t;
202 
203 
204 //--------------------------------------------------------------------------------------------------
205 /**
206  * Reference type for PLMN Information .
207  */
208 //--------------------------------------------------------------------------------------------------
209 typedef struct le_mrc_PlmnInformation* le_mrc_PlmnInformationRef_t;
210 
211 
212 //--------------------------------------------------------------------------------------------------
213 /**
214  * Reference type for referring to the Preferred Operator objects.
215  */
216 //--------------------------------------------------------------------------------------------------
217 typedef struct le_mrc_PreferredOperator* le_mrc_PreferredOperatorRef_t;
218 
219 
220 //--------------------------------------------------------------------------------------------------
221 /**
222  * Reference type for Preferred Operator Listing.
223  */
224 //--------------------------------------------------------------------------------------------------
225 typedef struct le_mrc_PreferredOperatorList* le_mrc_PreferredOperatorListRef_t;
226 
227 
228 //--------------------------------------------------------------------------------------------------
229 /**
230  * Reference type for one Cell Information.
231  */
232 //--------------------------------------------------------------------------------------------------
233 typedef struct le_mrc_CellInfo* le_mrc_CellInfoRef_t;
234 
235 
236 //--------------------------------------------------------------------------------------------------
237 /**
238  * Reference type for all Neighboring Cells Information.
239  */
240 //--------------------------------------------------------------------------------------------------
241 typedef struct le_mrc_NeighborCells* le_mrc_NeighborCellsRef_t;
242 
243 
244 //--------------------------------------------------------------------------------------------------
245 /**
246  * Reference type for the signal metrics.
247  */
248 //--------------------------------------------------------------------------------------------------
249 typedef struct le_mrc_Metrics* le_mrc_MetricsRef_t;
250 
251 
252 //--------------------------------------------------------------------------------------------------
253 /**
254  * Network Registration states.
255  */
256 //--------------------------------------------------------------------------------------------------
257 typedef enum
258 {
260  ///< Not registered and not currently searching for new operator.
262  ///< Registered, home network.
264  ///< Not registered but currently searching for a new operator.
266  ///< Registration was denied, usually because of invalid access credentials.
268  ///< Registered to a roaming network.
270  ///< Unknown state.
271 }
273 
274 
275 //--------------------------------------------------------------------------------------------------
276 /**
277  * Radio Access Technology enum
278  */
279 //--------------------------------------------------------------------------------------------------
280 typedef enum
281 {
283  ///< Unknown
285  ///< GSM network
287  ///< UMTS networks
289  ///< TD-SCDMA networks
291  ///< LTE network
293  ///< CDMA network
294 }
296 
297 
298 //--------------------------------------------------------------------------------------------------
299 /**
300  * Jamming detection report type enum
301  *
302  * @note If the reported status is the final status (end of the procedure), this shall be indicated
303  * within the status report.
304  * @note Other reports, called intermediate reports, gives only intermediate results issuing from
305  * the algorithm
306  */
307 //--------------------------------------------------------------------------------------------------
308 typedef enum
309 {
311  ///< Final jamming status report
313  ///< Intermediate jamming status report
314 }
316 
317 
318 //--------------------------------------------------------------------------------------------------
319 /**
320  * Jamming detection status type enum
321  *
322  * @note The final status can be only NULL or JAMMED.
323  */
324 //--------------------------------------------------------------------------------------------------
325 typedef enum
326 {
328  ///< Status is unknown
330  ///< No jamming suspicion; radio environment is considered normal
332  ///< Low probability that the device is jammed, but some radio
333  ///< environment parameters are considered abnormal
335  ///< Medium probability that the device is jammed; a lot of
336  ///< interferences in the radio spectrum
338  ///< High probability that the device is jammed; radio environment is
339  ///< considered jammed, but there is still a possibility that the module
340  ///< succeeds in synchronizing a cell
342  ///< Module is jammed; cell synchronization impossible while sufficient
343  ///< power level is detected on a large number of frequencies
344 }
346 
347 
348 //--------------------------------------------------------------------------------------------------
349 /**
350  * Radio Bitmask Access Technology Bit Mask
351  */
352 //--------------------------------------------------------------------------------------------------/// GSM RAT Bit Mask
353 #define LE_MRC_BITMASK_RAT_GSM 0x1/// UMTS RAT Bit Mask
354 #define LE_MRC_BITMASK_RAT_UMTS 0x2/// TD-SCDMA RAT Bit Mask
355 #define LE_MRC_BITMASK_RAT_TDSCDMA 0x4/// LTE RAT Bit Mask
356 #define LE_MRC_BITMASK_RAT_LTE 0x8/// CDMA RAT Bit Mask
357 #define LE_MRC_BITMASK_RAT_CDMA 0x10/// CAT-M1 RAT Bit Mask
358 #define LE_MRC_BITMASK_RAT_CATM1 0x20/// NB1 RAT Bit Mask
359 #define LE_MRC_BITMASK_RAT_NB1 0x40/// To Set all RAT preference Bit Mask
360 #define LE_MRC_BITMASK_RAT_ALL 0x80
361 #define LE_MRC_BITMASK_RAT_MAX 0x100
362 typedef uint32_t le_mrc_RatBitMask_t;
363 
364 
365 //--------------------------------------------------------------------------------------------------
366 /**
367  * Network Registration reject cause type enum.
368  */
369 //--------------------------------------------------------------------------------------------------
370 typedef enum
371 {
373  ///< IMSI unknown in HLR.
375  ///< Illegal MS.
377  ///< IMEI not accepted.
379  ///< Illegal ME.
381  ///< GPRS services not allowed.
383  ///< GPRS services and non-GPRS services not allowed.
385  ///< Network cannot derive the MS’s identity.
387  ///< Implicitly detached.
389  ///< PLMN not allowed.
391  ///< Location Area not allowed.
393  ///< Roaming not allowed in this location area.
395  ///< GPRS services not allowed in this PLMN.
397  ///< No Suitable Cells In Location Area.
399  ///< MSC temporarily not reachable.
401  ///< Network failure.
403  ///< MAC failure.
405  ///< Synch failure.
407  ///< Congestion.
409  ///< GSM authentication unacceptable.
411  ///< Not authorized for this CSG.
413  ///< SMS provided via GPRS in this routing area.
415  ///< No PDP context activated.
417  ///< Retry upon entry into a new cell.
419  ///< Semantically incorrect message.
421  ///< Invalid mandatory information.
423  ///< Message type non-existent or not implemented.
425  ///< Message type not compatible with the protocol state.
427  ///< Information element non-existent or not implemented.
429  ///< Conditional IE error.
431  ///< Message not compatible with the protocol state.
433  ///< Protocol error, unspecified.
434 }
436 
437 
438 //--------------------------------------------------------------------------------------------------
439 /**
440  * Network Registration service domain type enum.
441  */
442 //--------------------------------------------------------------------------------------------------
443 typedef enum
444 {
446  ///< Scan is ongoing, the module cannot see any networks.
448  ///< Circuit-switched only.
450  ///< Packet-switched only.
452  ///< Circuit-switched and packet-switched.
454  ///< No network register after scan.
455 }
457 
458 
459 //--------------------------------------------------------------------------------------------------
460 /**
461  * Network registration reject indication structure.
462  */
463 //--------------------------------------------------------------------------------------------------
464 typedef struct
465 {
466  le_mrc_Rat_t rat;
467  char mcc[4 + 1];
468  char mnc[4 + 1];
469  le_mrc_NetRejCause_t cause;
470  le_mrc_NetRegDomain_t rejDomain;
471 }
473 
474 
475 //--------------------------------------------------------------------------------------------------
476 /**
477  * Reference type used by Add/Remove functions for EVENT 'le_mrc_NetRegStateEvent'
478  */
479 //--------------------------------------------------------------------------------------------------
480 typedef struct le_mrc_NetRegStateEventHandler* le_mrc_NetRegStateEventHandlerRef_t;
481 
482 
483 //--------------------------------------------------------------------------------------------------
484 /**
485  * Reference type used by Add/Remove functions for EVENT 'le_mrc_RatChange'
486  */
487 //--------------------------------------------------------------------------------------------------
488 typedef struct le_mrc_RatChangeHandler* le_mrc_RatChangeHandlerRef_t;
489 
490 
491 //--------------------------------------------------------------------------------------------------
492 /**
493  * Reference type used by Add/Remove functions for EVENT 'le_mrc_PacketSwitchedChange'
494  */
495 //--------------------------------------------------------------------------------------------------
496 typedef struct le_mrc_PacketSwitchedChangeHandler* le_mrc_PacketSwitchedChangeHandlerRef_t;
497 
498 
499 //--------------------------------------------------------------------------------------------------
500 /**
501  * Reference type used by Add/Remove functions for EVENT 'le_mrc_SignalStrengthChange'
502  */
503 //--------------------------------------------------------------------------------------------------
504 typedef struct le_mrc_SignalStrengthChangeHandler* le_mrc_SignalStrengthChangeHandlerRef_t;
505 
506 
507 //--------------------------------------------------------------------------------------------------
508 /**
509  * Reference type used by Add/Remove functions for EVENT 'le_mrc_NetworkReject'
510  */
511 //--------------------------------------------------------------------------------------------------
512 typedef struct le_mrc_NetworkRejectHandler* le_mrc_NetworkRejectHandlerRef_t;
513 
514 
515 //--------------------------------------------------------------------------------------------------
516 /**
517  * Reference type used by Add/Remove functions for EVENT 'le_mrc_NetRegReject'
518  */
519 //--------------------------------------------------------------------------------------------------
520 typedef struct le_mrc_NetRegRejectHandler* le_mrc_NetRegRejectHandlerRef_t;
521 
522 
523 //--------------------------------------------------------------------------------------------------
524 /**
525  * Reference type used by Add/Remove functions for EVENT 'le_mrc_JammingDetectionEvent'
526  */
527 //--------------------------------------------------------------------------------------------------
528 typedef struct le_mrc_JammingDetectionEventHandler* le_mrc_JammingDetectionEventHandlerRef_t;
529 
530 
531 //--------------------------------------------------------------------------------------------------
532 /**
533  * Handler for Network registration state changes.
534  */
535 //--------------------------------------------------------------------------------------------------
536 typedef void (*le_mrc_NetRegStateHandlerFunc_t)
537 (
538  le_mrc_NetRegState_t state,
539  ///< Parameter ready to receive the Network Registration state.
540  void* contextPtr
541  ///<
542 );
543 
544 //--------------------------------------------------------------------------------------------------
545 /**
546  * Handler for Radio Access Technology changes.
547  *
548  */
549 //--------------------------------------------------------------------------------------------------
550 typedef void (*le_mrc_RatChangeHandlerFunc_t)
551 (
552  le_mrc_Rat_t rat,
553  ///< Parameter ready to receive the Radio Access Technology.
554  void* contextPtr
555  ///<
556 );
557 
558 //--------------------------------------------------------------------------------------------------
559 /**
560  * Handler for Packet Switched service state changes.
561  *
562  */
563 //--------------------------------------------------------------------------------------------------
565 (
566  le_mrc_NetRegState_t state,
567  ///< Parameter ready to receive the Packet Switched service state.
568  void* contextPtr
569  ///<
570 );
571 
572 //--------------------------------------------------------------------------------------------------
573 /**
574  * Handler for Signal Strength value changes.
575  *
576  */
577 //--------------------------------------------------------------------------------------------------
579 (
580  int32_t ss,
581  ///< Signal strength in dBm
582  void* contextPtr
583  ///<
584 );
585 
586 //--------------------------------------------------------------------------------------------------
587 /**
588  * Handler for cellular asynchronous network scan Sending result.
589  * Returns the reference to the List object. Null pointer if the scan failed.
590  *
591  */
592 //--------------------------------------------------------------------------------------------------
594 (
596  ///< Reference to the List object. Null pointer if the
597  ///< scan failed.
598  void* contextPtr
599  ///<
600 );
601 
602 //--------------------------------------------------------------------------------------------------
603 /**
604  * Handler for PCI asynchronous network scan Sending result.
605  * Returns the reference to the List object. Null pointer if the scan failed.
606  *
607  */
608 //--------------------------------------------------------------------------------------------------
610 (
612  ///< Reference to the List object. Null pointer if the
613  ///< scan failed.
614  void* contextPtr
615  ///<
616 );
617 
618 //--------------------------------------------------------------------------------------------------
619 /**
620  * Handler for asynchronous manual selection response
621  *
622  */
623 //--------------------------------------------------------------------------------------------------
625 (
626  le_result_t result,
627  ///< Manual selection response
628  void* contextPtr
629  ///<
630 );
631 
632 //--------------------------------------------------------------------------------------------------
633 /**
634  * Handler to report network reject indication.
635  *
636  * @deprecated le_mrc_NetworkRejectHandler() will be removed in near future.
637  * It will be replaced by le_mrc_AddNetRegRejectHandler().
638  *
639  */
640 //--------------------------------------------------------------------------------------------------
641 typedef void (*le_mrc_NetworkRejectHandlerFunc_t)
642 (
643  const char* LE_NONNULL mcc,
644  ///< Mobile Country Code
645  const char* LE_NONNULL mnc,
646  ///< Mobile Network Code
647  le_mrc_Rat_t rat,
648  ///< Radio Access Technology.
649  void* contextPtr
650  ///<
651 );
652 
653 //--------------------------------------------------------------------------------------------------
654 /**
655  * Handler to report network registration reject indication.
656  * NetworkRejectHandler is deprecated.
657  */
658 //--------------------------------------------------------------------------------------------------
659 typedef void (*le_mrc_NetRegRejectHandlerFunc_t)
660 (
661  const le_mrc_NetRegRejectInd_t * LE_NONNULL networkRejectIndPtr,
662  ///< NetRegRejectInd Reference.
663  void* contextPtr
664  ///<
665 );
666 
667 //--------------------------------------------------------------------------------------------------
668 /**
669  * Handler for jamming detection event.
670  */
671 //--------------------------------------------------------------------------------------------------
673 (
674  le_mrc_JammingReport_t report,
675  ///< Report type.
676  le_mrc_JammingStatus_t status,
677  ///< Jamming detection status.
678  void* contextPtr
679  ///<
680 );
681 
682 
683 //--------------------------------------------------------------------------------------------------
684 /**
685  * Get if this client bound locally.
686  */
687 //--------------------------------------------------------------------------------------------------
688 LE_SHARED bool ifgen_le_mrc_HasLocalBinding
689 (
690  void
691 );
692 
693 
694 //--------------------------------------------------------------------------------------------------
695 /**
696  * Init data that is common across all threads
697  */
698 //--------------------------------------------------------------------------------------------------
699 LE_SHARED void ifgen_le_mrc_InitCommonData
700 (
701  void
702 );
703 
704 
705 //--------------------------------------------------------------------------------------------------
706 /**
707  * Perform common initialization and open a session
708  */
709 //--------------------------------------------------------------------------------------------------
710 LE_SHARED le_result_t ifgen_le_mrc_OpenSession
711 (
712  le_msg_SessionRef_t _ifgen_sessionRef,
713  bool isBlocking
714 );
715 
716 //--------------------------------------------------------------------------------------------------
717 /**
718  * Add handler function for EVENT 'le_mrc_NetRegStateEvent'
719  *
720  * This event provides information on network registration state changes.
721  *
722  * @note <b>multi-app safe</b>
723  */
724 //--------------------------------------------------------------------------------------------------
725 LE_SHARED le_mrc_NetRegStateEventHandlerRef_t ifgen_le_mrc_AddNetRegStateEventHandler
726 (
727  le_msg_SessionRef_t _ifgen_sessionRef,
729  ///< [IN]
730  void* contextPtr
731  ///< [IN]
732 );
733 
734 //--------------------------------------------------------------------------------------------------
735 /**
736  * Remove handler function for EVENT 'le_mrc_NetRegStateEvent'
737  */
738 //--------------------------------------------------------------------------------------------------
739 LE_SHARED void ifgen_le_mrc_RemoveNetRegStateEventHandler
740 (
741  le_msg_SessionRef_t _ifgen_sessionRef,
743  ///< [IN]
744 );
745 
746 //--------------------------------------------------------------------------------------------------
747 /**
748  * Add handler function for EVENT 'le_mrc_RatChange'
749  *
750  * This event provides information on Radio Access Technology changes.
751  *
752  * @note <b>multi-app safe</b>
753  */
754 //--------------------------------------------------------------------------------------------------
755 LE_SHARED le_mrc_RatChangeHandlerRef_t ifgen_le_mrc_AddRatChangeHandler
756 (
757  le_msg_SessionRef_t _ifgen_sessionRef,
759  ///< [IN]
760  void* contextPtr
761  ///< [IN]
762 );
763 
764 //--------------------------------------------------------------------------------------------------
765 /**
766  * Remove handler function for EVENT 'le_mrc_RatChange'
767  */
768 //--------------------------------------------------------------------------------------------------
769 LE_SHARED void ifgen_le_mrc_RemoveRatChangeHandler
770 (
771  le_msg_SessionRef_t _ifgen_sessionRef,
773  ///< [IN]
774 );
775 
776 //--------------------------------------------------------------------------------------------------
777 /**
778  * Add handler function for EVENT 'le_mrc_PacketSwitchedChange'
779  *
780  * This event provides information on Packet Switched service changes.
781  *
782  * @note <b>multi-app safe</b>
783  */
784 //--------------------------------------------------------------------------------------------------
785 LE_SHARED le_mrc_PacketSwitchedChangeHandlerRef_t ifgen_le_mrc_AddPacketSwitchedChangeHandler
786 (
787  le_msg_SessionRef_t _ifgen_sessionRef,
789  ///< [IN]
790  void* contextPtr
791  ///< [IN]
792 );
793 
794 //--------------------------------------------------------------------------------------------------
795 /**
796  * Remove handler function for EVENT 'le_mrc_PacketSwitchedChange'
797  */
798 //--------------------------------------------------------------------------------------------------
799 LE_SHARED void ifgen_le_mrc_RemovePacketSwitchedChangeHandler
800 (
801  le_msg_SessionRef_t _ifgen_sessionRef,
803  ///< [IN]
804 );
805 
806 //--------------------------------------------------------------------------------------------------
807 /**
808  * Add handler function for EVENT 'le_mrc_SignalStrengthChange'
809  *
810  * This event provides information on Signal Strength value changes.
811  *
812  * @note <b>NOT multi-app safe</b>
813  */
814 //--------------------------------------------------------------------------------------------------
815 LE_SHARED le_mrc_SignalStrengthChangeHandlerRef_t ifgen_le_mrc_AddSignalStrengthChangeHandler
816 (
817  le_msg_SessionRef_t _ifgen_sessionRef,
818  le_mrc_Rat_t rat,
819  ///< [IN] Radio Access Technology
820  int32_t lowerRangeThreshold,
821  ///< [IN] Lower-range Signal strength threshold in dBm
822  int32_t upperRangeThreshold,
823  ///< [IN] Upper-range Signal strength threshold in dBm
825  ///< [IN]
826  void* contextPtr
827  ///< [IN]
828 );
829 
830 //--------------------------------------------------------------------------------------------------
831 /**
832  * Remove handler function for EVENT 'le_mrc_SignalStrengthChange'
833  */
834 //--------------------------------------------------------------------------------------------------
835 LE_SHARED void ifgen_le_mrc_RemoveSignalStrengthChangeHandler
836 (
837  le_msg_SessionRef_t _ifgen_sessionRef,
839  ///< [IN]
840 );
841 
842 //--------------------------------------------------------------------------------------------------
843 /**
844  * This function sets signal strength indication thresholds for a specific RAT.
845  *
846  * @return
847  * - LE_OK Function succeeded.
848  * - LE_BAD_PARAMETER Bad parameters
849  * - LE_FAULT Function failed.
850  *
851  * @note <b>NOT multi-app safe</b>
852  */
853 //--------------------------------------------------------------------------------------------------
854 LE_SHARED le_result_t ifgen_le_mrc_SetSignalStrengthIndThresholds
855 (
856  le_msg_SessionRef_t _ifgen_sessionRef,
857  le_mrc_Rat_t rat,
858  ///< [IN] Radio Access Technology
859  int32_t lowerRangeThreshold,
860  ///< [IN] Lower-range Signal strength threshold in dBm
861  int32_t upperRangeThreshold
862  ///< [IN] Upper-range Signal strength threshold in dBm
863 );
864 
865 //--------------------------------------------------------------------------------------------------
866 /**
867  * This function sets a signal strength indication delta for a specific RAT.
868  *
869  * @return
870  * - LE_OK Function succeeded.
871  * - LE_BAD_PARAMETER Bad parameters.
872  * - LE_FAULT Function failed.
873  *
874  * @note The signal delta is set in units of 0.1 dBm. For example, to set a delta of 10.6 dBm, the
875  * delta value must be set to 106.
876  *
877  * @warning The signal delta resolution is platform dependent. Please refer to
878  * @ref platformConstraintsMdc section for full details.
879  */
880 //--------------------------------------------------------------------------------------------------
881 LE_SHARED le_result_t ifgen_le_mrc_SetSignalStrengthIndDelta
882 (
883  le_msg_SessionRef_t _ifgen_sessionRef,
884  le_mrc_Rat_t rat,
885  ///< [IN] Radio Access Technology
886  uint16_t delta
887  ///< [IN] Signal delta in units of 0.1 dBm
888 );
889 
890 //--------------------------------------------------------------------------------------------------
891 /**
892  * Enable the automatic Selection Register mode.
893  *
894  * @return
895  * - LE_FAULT Function failed.
896  * - LE_OK Function succeeded.
897  *
898  * @note <b>NOT multi-app safe</b>
899  */
900 //--------------------------------------------------------------------------------------------------
901 LE_SHARED le_result_t ifgen_le_mrc_SetAutomaticRegisterMode
902 (
903  le_msg_SessionRef_t _ifgen_sessionRef
904 );
905 
906 //--------------------------------------------------------------------------------------------------
907 /**
908  * Set the manual Selection Register mode with the MCC/MNC parameters.
909  *
910  * @return
911  * - LE_FAULT Function failed.
912  * - LE_OK Function succeeded.
913  *
914  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
915  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
916  * won't return.
917  *
918  * @note <b>NOT multi-app safe</b>
919  */
920 //--------------------------------------------------------------------------------------------------
921 LE_SHARED le_result_t ifgen_le_mrc_SetManualRegisterMode
922 (
923  le_msg_SessionRef_t _ifgen_sessionRef,
924  const char* LE_NONNULL mcc,
925  ///< [IN] Mobile Country Code
926  const char* LE_NONNULL mnc
927  ///< [IN] Mobile Network Code
928 );
929 
930 //--------------------------------------------------------------------------------------------------
931 /**
932  * Set the manual selection register mode asynchronously. This function is not blocking,
933  * the response will be returned with a handler function.
934  *
935  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
936  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
937  * won't return.
938  *
939  *@note <b>NOT multi-app safe</b>
940  *
941  */
942 //--------------------------------------------------------------------------------------------------
943 LE_SHARED void ifgen_le_mrc_SetManualRegisterModeAsync
944 (
945  le_msg_SessionRef_t _ifgen_sessionRef,
946  const char* LE_NONNULL mcc,
947  ///< [IN] Mobile Country Code
948  const char* LE_NONNULL mnc,
949  ///< [IN] Mobile Network Code
951  ///< [IN] handler for sending result
952  void* contextPtr
953  ///< [IN]
954 );
955 
956 //--------------------------------------------------------------------------------------------------
957 /**
958  * Get the selected Selection Register mode.
959  *
960  * @return
961  * - LE_FAULT Function failed.
962  * - LE_OK Function succeeded.
963  *
964  * @note <b>multi-app safe</b>
965  */
966 //--------------------------------------------------------------------------------------------------
967 LE_SHARED le_result_t ifgen_le_mrc_GetRegisterMode
968 (
969  le_msg_SessionRef_t _ifgen_sessionRef,
970  bool* isManualPtrPtr,
971  ///< [OUT] true if the scan mode is manual, false if the scan mode is automatic.
972  char* mccPtr,
973  ///< [OUT] Mobile Country Code
974  size_t mccPtrSize,
975  ///< [IN]
976  char* mncPtr,
977  ///< [OUT] Mobile Network Code
978  size_t mncPtrSize
979  ///< [IN]
980 );
981 
982 //--------------------------------------------------------------------------------------------------
983 /**
984  * Get the Packet Switched state.
985  *
986  * @return
987  * - LE_FAULT Function failed.
988  * - LE_OK Function succeeded.
989  *
990  * @note <b>multi-app safe</b>
991  */
992 //--------------------------------------------------------------------------------------------------
993 LE_SHARED le_result_t ifgen_le_mrc_GetPacketSwitchedState
994 (
995  le_msg_SessionRef_t _ifgen_sessionRef,
996  le_mrc_NetRegState_t* statePtr
997  ///< [OUT] The current Packet switched state.
998 );
999 
1000 //--------------------------------------------------------------------------------------------------
1001 /**
1002  * Get the platform specific network registration error code.
1003  *
1004  * Refer to @ref platformConstraintsSpecificErrorCodes for platform specific
1005  * registration error code description.
1006  *
1007  * @return the platform specific registration error code
1008  *
1009  */
1010 //--------------------------------------------------------------------------------------------------
1011 LE_SHARED int32_t ifgen_le_mrc_GetPlatformSpecificRegistrationErrorCode
1012 (
1013  le_msg_SessionRef_t _ifgen_sessionRef
1014 );
1015 
1016 //--------------------------------------------------------------------------------------------------
1017 /**
1018  * Set the Radio Access Technology preferences by using a bit mask.
1019  *
1020  * @return
1021  * - LE_FAULT Function failed.
1022  * - LE_OK Function succeeded.
1023  * - LE_UNSUPPORTED Not supported by platform.
1024  *
1025  * @note <b>NOT multi-app safe</b>
1026  */
1027 //--------------------------------------------------------------------------------------------------
1028 LE_SHARED le_result_t ifgen_le_mrc_SetRatPreferences
1029 (
1030  le_msg_SessionRef_t _ifgen_sessionRef,
1031  le_mrc_RatBitMask_t ratMask
1032  ///< [IN] Bit mask for the Radio Access Technology preferences.
1033 );
1034 
1035 //--------------------------------------------------------------------------------------------------
1036 /**
1037  * Get the Radio Access Technology preferences
1038  *
1039  * @return
1040  * - LE_FAULT Function failed.
1041  * - LE_OK Function succeeded.
1042  *
1043  * @note <b>multi-app safe</b>
1044  */
1045 //--------------------------------------------------------------------------------------------------
1046 LE_SHARED le_result_t ifgen_le_mrc_GetRatPreferences
1047 (
1048  le_msg_SessionRef_t _ifgen_sessionRef,
1049  le_mrc_RatBitMask_t* ratMaskPtrPtr
1050  ///< [OUT] Bit mask for the Radio Access Technology preferences.
1051 );
1052 
1053 //--------------------------------------------------------------------------------------------------
1054 /**
1055  * Set the 2G/3G Band preferences by using a bit mask.
1056  *
1057  * @return
1058  * - LE_FAULT Function failed.
1059  * - LE_OK Function succeeded.
1060  *
1061  * @note <b>NOT multi-app safe</b>
1062  */
1063 //--------------------------------------------------------------------------------------------------
1064 LE_SHARED le_result_t ifgen_le_mrc_SetBandPreferences
1065 (
1066  le_msg_SessionRef_t _ifgen_sessionRef,
1067  le_mrc_BandBitMask_t bandMask
1068  ///< [IN] Bit mask for 2G/3G Band preferences.
1069 );
1070 
1071 //--------------------------------------------------------------------------------------------------
1072 /**
1073  * Get the Bit mask for 2G/3G Band preferences.
1074  *
1075  * @return
1076  * - LE_FAULT Function failed.
1077  * - LE_OK Function succeeded.
1078  *
1079  * @note <b>multi-app safe</b>
1080  */
1081 //--------------------------------------------------------------------------------------------------
1082 LE_SHARED le_result_t ifgen_le_mrc_GetBandPreferences
1083 (
1084  le_msg_SessionRef_t _ifgen_sessionRef,
1085  le_mrc_BandBitMask_t* bandMaskPtrPtr
1086  ///< [OUT] Bit mask for 2G/3G Band preferences.
1087 );
1088 
1089 //--------------------------------------------------------------------------------------------------
1090 /**
1091  * Set the LTE Band preferences by using a bit mask.
1092  *
1093  * @return
1094  * - LE_FAULT Function failed.
1095  * - LE_OK Function succeeded.
1096  * - LE_UNSUPPORTED The platform doesn't support setting LTE Band preferences.
1097  *
1098  * @note <b>NOT multi-app safe</b>
1099  */
1100 //--------------------------------------------------------------------------------------------------
1101 LE_SHARED le_result_t ifgen_le_mrc_SetLteBandPreferences
1102 (
1103  le_msg_SessionRef_t _ifgen_sessionRef,
1104  le_mrc_LteBandBitMask_t bandMask
1105  ///< [IN] Bit mask for LTE Band preferences.
1106 );
1107 
1108 //--------------------------------------------------------------------------------------------------
1109 /**
1110  * Get the Bit mask for LTE Band preferences.
1111  *
1112  * @return
1113  * - LE_FAULT Function failed.
1114  * - LE_OK Function succeeded.
1115  *
1116  * @note <b>multi-app safe</b>
1117  */
1118 //--------------------------------------------------------------------------------------------------
1119 LE_SHARED le_result_t ifgen_le_mrc_GetLteBandPreferences
1120 (
1121  le_msg_SessionRef_t _ifgen_sessionRef,
1122  le_mrc_LteBandBitMask_t* bandMaskPtrPtr
1123  ///< [OUT] Bit mask for LTE Band preferences.
1124 );
1125 
1126 //--------------------------------------------------------------------------------------------------
1127 /**
1128  * Set the TD-SCDMA Band preferences by using a bit mask.
1129  *
1130  * @return
1131  * - LE_OK Function succeeded.
1132  * - LE_FAULT Function failed.
1133  * - LE_UNSUPPORTED The platform doesn't support setting TD-SCDMA Band preferences.
1134  *
1135  * @note <b>NOT multi-app safe</b>
1136  */
1137 //--------------------------------------------------------------------------------------------------
1138 LE_SHARED le_result_t ifgen_le_mrc_SetTdScdmaBandPreferences
1139 (
1140  le_msg_SessionRef_t _ifgen_sessionRef,
1141  le_mrc_TdScdmaBandBitMask_t bandMask
1142  ///< [IN] Bit mask for TD-SCDMA Band preferences.
1143 );
1144 
1145 //--------------------------------------------------------------------------------------------------
1146 /**
1147  * Get the Bit mask for TD-SCDMA Band preferences.
1148  *
1149  * @return
1150  * - LE_OK Function succeeded.
1151  * - LE_FAULT Function failed.
1152  * - LE_UNSUPPORTED The platform doesn't support getting TD-SCDMA Band preferences.
1153  *
1154  * @note <b>multi-app safe</b>
1155  */
1156 //--------------------------------------------------------------------------------------------------
1157 LE_SHARED le_result_t ifgen_le_mrc_GetTdScdmaBandPreferences
1158 (
1159  le_msg_SessionRef_t _ifgen_sessionRef,
1160  le_mrc_TdScdmaBandBitMask_t* bandMaskPtrPtr
1161  ///< [OUT] Bit mask for TD-SCDMA Band preferences.
1162 );
1163 
1164 //--------------------------------------------------------------------------------------------------
1165 /**
1166  * Add a preferred operator by specifying the MCC/MNC and the Radio Access Technology.
1167  *
1168  * @return
1169  * - LE_UNSUPPORTED List of User Preferred operators not available.
1170  * - LE_FAULT Function failed.
1171  * - LE_BAD_PARAMETER RAT mask is invalid.
1172  * - LE_OK Function succeeded.
1173  *
1174  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1175  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1176  * won't return.
1177  *
1178  * @note <b>NOT multi-app safe</b>
1179  */
1180 //--------------------------------------------------------------------------------------------------
1181 LE_SHARED le_result_t ifgen_le_mrc_AddPreferredOperator
1182 (
1183  le_msg_SessionRef_t _ifgen_sessionRef,
1184  const char* LE_NONNULL mcc,
1185  ///< [IN] Mobile Country Code
1186  const char* LE_NONNULL mnc,
1187  ///< [IN] Mobile Network Code
1188  le_mrc_RatBitMask_t ratMask
1189  ///< [IN] Bit mask for the Radio Access Technology preferences.
1190 );
1191 
1192 //--------------------------------------------------------------------------------------------------
1193 /**
1194  * Remove a preferred operator by specifying the MCC/MNC.
1195  *
1196  * @return
1197  * - LE_UNSUPPORTED List of User Preferred operators not available.
1198  * - LE_NOT_FOUND Operator not found in the User Preferred operators list.
1199  * - LE_FAULT Function failed.
1200  * - LE_OK Function succeeded.
1201  *
1202  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1203  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1204  * won't return.
1205  *
1206  * @note <b>NOT multi-app safe</b>
1207  */
1208 //--------------------------------------------------------------------------------------------------
1209 LE_SHARED le_result_t ifgen_le_mrc_RemovePreferredOperator
1210 (
1211  le_msg_SessionRef_t _ifgen_sessionRef,
1212  const char* LE_NONNULL mcc,
1213  ///< [IN] Mobile Country Code
1214  const char* LE_NONNULL mnc
1215  ///< [IN] Mobile Network Code
1216 );
1217 
1218 //--------------------------------------------------------------------------------------------------
1219 /**
1220  * This function must be called to retrieve a list of the preferred operators.
1221  *
1222  * @return
1223  * - Reference to the List object.
1224  * - Null pointer if there is no preferences list.
1225  *
1226  * @note <b>multi-app safe</b>
1227  */
1228 //--------------------------------------------------------------------------------------------------
1229 LE_SHARED le_mrc_PreferredOperatorListRef_t ifgen_le_mrc_GetPreferredOperatorsList
1230 (
1231  le_msg_SessionRef_t _ifgen_sessionRef
1232 );
1233 
1234 //--------------------------------------------------------------------------------------------------
1235 /**
1236  * This function must be called to get the first Operator object reference in the list of the
1237  * preferred operators retrieved with le_mrc_GetPreferredOperators().
1238  *
1239  * @return
1240  * - NULL No operator information found.
1241  * - le_mrc_PreferredOperatorRef The Operator object reference.
1242  *
1243  * @note If the caller is passing a bad reference into this function, it's a fatal error, the
1244  * function won't return.
1245  *
1246  * @note <b>multi-app safe</b>
1247  */
1248 //--------------------------------------------------------------------------------------------------
1249 LE_SHARED le_mrc_PreferredOperatorRef_t ifgen_le_mrc_GetFirstPreferredOperator
1250 (
1251  le_msg_SessionRef_t _ifgen_sessionRef,
1252  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1253  ///< [IN] The list of the preferred operators.
1254 );
1255 
1256 //--------------------------------------------------------------------------------------------------
1257 /**
1258  * This function must be called to get the next Operator object reference in the list of the
1259  * preferred operators retrieved with le_mrc_GetPreferredOperators().
1260  *
1261  * @return
1262  * - NULL No operator information found.
1263  * - le_mrc_PreferredOperatorRef The Operator object reference.
1264  *
1265  * @note If the caller is passing a bad reference into this function, it's a fatal error, the
1266  * function won't return.
1267  *
1268  * @note <b>multi-app safe</b>
1269  */
1270 //--------------------------------------------------------------------------------------------------
1271 LE_SHARED le_mrc_PreferredOperatorRef_t ifgen_le_mrc_GetNextPreferredOperator
1272 (
1273  le_msg_SessionRef_t _ifgen_sessionRef,
1274  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1275  ///< [IN] The list of the preferred operators.
1276 );
1277 
1278 //--------------------------------------------------------------------------------------------------
1279 /**
1280  * This function must be called to delete the list of the preferred operators retrieved with
1281  * le_mrc_GetPreferredOperators().
1282  *
1283  * @note On failure, the process exits, so you don't have to worry about checking the returned
1284  * reference for validity.
1285  *
1286  * @note <b>multi-app safe</b>
1287  */
1288 //--------------------------------------------------------------------------------------------------
1289 LE_SHARED void ifgen_le_mrc_DeletePreferredOperatorsList
1290 (
1291  le_msg_SessionRef_t _ifgen_sessionRef,
1292  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1293  ///< [IN] The list of the preferred operators.
1294 );
1295 
1296 //--------------------------------------------------------------------------------------------------
1297 /**
1298  * This function must be called to get the Operator information details.
1299  *
1300  * @return
1301  * - LE_OK on success
1302  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
1303  * - LE_FAULT for all other errors
1304  *
1305  * @note <b>multi-app safe</b>
1306  */
1307 //--------------------------------------------------------------------------------------------------
1308 LE_SHARED le_result_t ifgen_le_mrc_GetPreferredOperatorDetails
1309 (
1310  le_msg_SessionRef_t _ifgen_sessionRef,
1311  le_mrc_PreferredOperatorRef_t preferredOperatorRef,
1312  ///< [IN] Operator object reference.
1313  char* mccPtr,
1314  ///< [OUT] Mobile Country Code.
1315  size_t mccPtrSize,
1316  ///< [IN]
1317  char* mncPtr,
1318  ///< [OUT] Mobile Network Code.
1319  size_t mncPtrSize,
1320  ///< [IN]
1321  le_mrc_RatBitMask_t* ratMaskPtr
1322  ///< [OUT] Bit mask for the RAT preferences.
1323 );
1324 
1325 //--------------------------------------------------------------------------------------------------
1326 /**
1327  * Get the network registration state.
1328  *
1329  * @return LE_FAULT The function failed to get the Network registration state.
1330  * @return LE_BAD_PARAMETER A bad parameter was passed.
1331  * @return LE_OK The function succeeded.
1332  *
1333  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1334  * function won't return.
1335  *
1336  * @note <b>multi-app safe</b>
1337  */
1338 //--------------------------------------------------------------------------------------------------
1339 LE_SHARED le_result_t ifgen_le_mrc_GetNetRegState
1340 (
1341  le_msg_SessionRef_t _ifgen_sessionRef,
1342  le_mrc_NetRegState_t* statePtr
1343  ///< [OUT] Network Registration state.
1344 );
1345 
1346 //--------------------------------------------------------------------------------------------------
1347 /**
1348  * Get the signal quality.
1349  *
1350  * @return LE_FAULT The function failed to get the Signal Quality information.
1351  * @return LE_BAD_PARAMETER A bad parameter was passed.
1352  * @return LE_OK The function succeeded.
1353  *
1354  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1355  * function won't return.
1356  *
1357  * @note <b>multi-app safe</b>
1358  */
1359 //--------------------------------------------------------------------------------------------------
1360 LE_SHARED le_result_t ifgen_le_mrc_GetSignalQual
1361 (
1362  le_msg_SessionRef_t _ifgen_sessionRef,
1363  uint32_t* qualityPtr
1364  ///< [OUT] [OUT] Received signal strength quality (0 = no signal strength,
1365  ///< 5 = very good signal strength).
1366 );
1367 
1368 //--------------------------------------------------------------------------------------------------
1369 /**
1370  * Set the power of the Radio Module.
1371  *
1372  * @return LE_BAD_PARAMETER Bad power mode specified.
1373  * @return LE_FAULT Function failed.
1374  * @return LE_OK Function succeed.
1375  *
1376  * @note <b>NOT multi-app safe</b>
1377  */
1378 //--------------------------------------------------------------------------------------------------
1379 LE_SHARED le_result_t ifgen_le_mrc_SetRadioPower
1380 (
1381  le_msg_SessionRef_t _ifgen_sessionRef,
1382  le_onoff_t power
1383  ///< [IN] The power state.
1384 );
1385 
1386 //--------------------------------------------------------------------------------------------------
1387 /**
1388  * Must be called to get the Radio Module power state.
1389  *
1390  * @return LE_FAULT The function failed to get the Radio Module power state.
1391  * @return LE_BAD_PARAMETER if powerPtr is NULL.
1392  * @return LE_OK The function succeed.
1393  *
1394  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1395  * function won't return.
1396  *
1397  * @note <b>multi-app safe</b>
1398  */
1399 //--------------------------------------------------------------------------------------------------
1400 LE_SHARED le_result_t ifgen_le_mrc_GetRadioPower
1401 (
1402  le_msg_SessionRef_t _ifgen_sessionRef,
1403  le_onoff_t* powerPtr
1404  ///< [OUT] Power state.
1405 );
1406 
1407 //--------------------------------------------------------------------------------------------------
1408 /**
1409  * This function must be called to perform a cellular network scan.
1410  *
1411  * @return Reference to the List object. Null pointer if the scan failed.
1412  *
1413  * @note <b>multi-app safe</b>
1414  */
1415 //--------------------------------------------------------------------------------------------------
1416 LE_SHARED le_mrc_ScanInformationListRef_t ifgen_le_mrc_PerformCellularNetworkScan
1417 (
1418  le_msg_SessionRef_t _ifgen_sessionRef,
1419  le_mrc_RatBitMask_t ratMask
1420  ///< [IN] Radio Access Technology mask
1421 );
1422 
1423 //--------------------------------------------------------------------------------------------------
1424 /**
1425  * This function must be called to perform a PCI network scan.
1426  *
1427  * @return Reference to the List object. Null pointer if the scan failed.
1428  *
1429  * @warning PCI scan is platform dependent. Please refer to @ref platformConstraintsMdc for further
1430  * details.
1431  *
1432  * @note On devices with the watchdog service enabled, the timeout is 4 mins. On those without, the
1433  * timeout is 5 mins.
1434  *
1435  * @note <b>multi-app safe</b>
1436  */
1437 //--------------------------------------------------------------------------------------------------
1438 LE_SHARED le_mrc_PciScanInformationListRef_t ifgen_le_mrc_PerformPciNetworkScan
1439 (
1440  le_msg_SessionRef_t _ifgen_sessionRef,
1441  le_mrc_RatBitMask_t ratMask
1442  ///< [IN] Radio Access Technology mask
1443 );
1444 
1445 //--------------------------------------------------------------------------------------------------
1446 /**
1447  * This function must be called to perform a cellular network scan asynchronously. This function
1448  * is not blocking, the response will be returned with a handler function.
1449  *
1450  *@note <b>multi-app safe</b>
1451  *
1452  */
1453 //--------------------------------------------------------------------------------------------------
1454 LE_SHARED void ifgen_le_mrc_PerformCellularNetworkScanAsync
1455 (
1456  le_msg_SessionRef_t _ifgen_sessionRef,
1457  le_mrc_RatBitMask_t ratMask,
1458  ///< [IN] Radio Access Technology mask
1460  ///< [IN] handler for sending result.
1461  void* contextPtr
1462  ///< [IN]
1463 );
1464 
1465 //--------------------------------------------------------------------------------------------------
1466 /**
1467  * This function must be called to perform a PCI network scan asynchronously. This function
1468  * is not blocking, the response will be returned with a handler function.
1469  *
1470  * @warning PCI scan is platform dependent. Please refer to @ref platformConstraintsMdc for further
1471  * details.
1472  *
1473  *@note <b>multi-app safe</b>
1474  *
1475  */
1476 //--------------------------------------------------------------------------------------------------
1477 LE_SHARED void ifgen_le_mrc_PerformPciNetworkScanAsync
1478 (
1479  le_msg_SessionRef_t _ifgen_sessionRef,
1480  le_mrc_RatBitMask_t ratMask,
1481  ///< [IN] Radio Access Technology mask
1483  ///< [IN] handler for sending result.
1484  void* contextPtr
1485  ///< [IN]
1486 );
1487 
1488 //--------------------------------------------------------------------------------------------------
1489 /**
1490  * This function must be called to get the first Scan Information object reference in the list of
1491  * scan Information retrieved with le_mrc_PerformCellularNetworkScan().
1492  *
1493  * @return NULL No scan information found.
1494  * @return le_mrc_ScanInformationRef_t The Scan Information object reference.
1495  *
1496  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1497  * function won't return.
1498  *
1499  * @note <b>multi-app safe</b>
1500  */
1501 //--------------------------------------------------------------------------------------------------
1502 LE_SHARED le_mrc_ScanInformationRef_t ifgen_le_mrc_GetFirstCellularNetworkScan
1503 (
1504  le_msg_SessionRef_t _ifgen_sessionRef,
1505  le_mrc_ScanInformationListRef_t scanInformationListRef
1506  ///< [IN] The list of scan information.
1507 );
1508 
1509 //--------------------------------------------------------------------------------------------------
1510 /**
1511  * This function must be called to get the next Scan Information object reference in the list of
1512  * scan Information retrieved with le_mrc_PerformCellularNetworkScan().
1513  *
1514  * @return NULL No scan information found.
1515  * @return le_mrc_ScanInformationRef_t The Scan Information object reference.
1516  *
1517  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1518  * function won't return.
1519  *
1520  * @note <b>multi-app safe</b>
1521  */
1522 //--------------------------------------------------------------------------------------------------
1523 LE_SHARED le_mrc_ScanInformationRef_t ifgen_le_mrc_GetNextCellularNetworkScan
1524 (
1525  le_msg_SessionRef_t _ifgen_sessionRef,
1526  le_mrc_ScanInformationListRef_t scanInformationListRef
1527  ///< [IN] The list of scan information.
1528 );
1529 
1530 //--------------------------------------------------------------------------------------------------
1531 /**
1532  * This function must be called to get the first Pci Scan Information object reference in the list of
1533  * scan Information retrieved with le_mrc_PerformPciNetworkScan().
1534  *
1535  * @return NULL No scan information found.
1536  * @return The Scan Information object reference.
1537  *
1538  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1539  * function won't return.
1540  *
1541  * @note <b>multi-app safe</b>
1542  */
1543 //--------------------------------------------------------------------------------------------------
1544 LE_SHARED le_mrc_PciScanInformationRef_t ifgen_le_mrc_GetFirstPciScanInfo
1545 (
1546  le_msg_SessionRef_t _ifgen_sessionRef,
1547  le_mrc_PciScanInformationListRef_t scanInformationListRef
1548  ///< [IN] The list of scan information.
1549 );
1550 
1551 //--------------------------------------------------------------------------------------------------
1552 /**
1553  * This function must be called to get the next Scan Information object reference in the list of
1554  * scan Information retrieved with le_mrc_PerformPciNetworkScan().
1555  *
1556  * @return NULL No scan information found.
1557  * @return The Scan Information object reference.
1558  *
1559  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1560  * function won't return.
1561  *
1562  * @note <b>multi-app safe</b>
1563  */
1564 //--------------------------------------------------------------------------------------------------
1565 LE_SHARED le_mrc_PciScanInformationRef_t ifgen_le_mrc_GetNextPciScanInfo
1566 (
1567  le_msg_SessionRef_t _ifgen_sessionRef,
1568  le_mrc_PciScanInformationListRef_t scanInformationListRef
1569  ///< [IN] The list of scan information.
1570 );
1571 
1572 //--------------------------------------------------------------------------------------------------
1573 /**
1574  * This function must be called to get the first Plmn Information object reference in the list of
1575  * Plmn on each cell.
1576  *
1577  * @return NULL No scan information found.
1578  * @return le_mrc_PlmnInformationRef_t The Plmn Information object reference.
1579  *
1580  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1581  * function won't return.
1582  *
1583  */
1584 //--------------------------------------------------------------------------------------------------
1585 LE_SHARED le_mrc_PlmnInformationRef_t ifgen_le_mrc_GetFirstPlmnInfo
1586 (
1587  le_msg_SessionRef_t _ifgen_sessionRef,
1588  le_mrc_PciScanInformationRef_t pciScanInformationRef
1589  ///< [IN] [IN] The reference to the cell information.
1590 );
1591 
1592 //--------------------------------------------------------------------------------------------------
1593 /**
1594  * This function must be called to get the next Plmn Information object reference in the list of
1595  * Plmn on each cell.
1596  *
1597  * @return NULL No scan information found.
1598  * @return le_mrc_PlmnInformationRef_t The Plmn Information object reference.
1599  *
1600  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1601  * function won't return.
1602  *
1603  */
1604 //--------------------------------------------------------------------------------------------------
1605 LE_SHARED le_mrc_PlmnInformationRef_t ifgen_le_mrc_GetNextPlmnInfo
1606 (
1607  le_msg_SessionRef_t _ifgen_sessionRef,
1609  ///< [IN] [IN] The reference to the cell information.
1610 );
1611 
1612 //--------------------------------------------------------------------------------------------------
1613 /**
1614  * This function must be called to get the physical cell id referenced by PciScanInformation which
1615  * is returned by le_mrc_GetFirstPciScanInfo() and le_mrc_GetNextPciScanInfo().
1616  *
1617  * @return The Physical Cell Identifier.
1618  *
1619  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1620  * function won't return.
1621  */
1622 //--------------------------------------------------------------------------------------------------
1623 LE_SHARED uint16_t ifgen_le_mrc_GetPciScanCellId
1624 (
1625  le_msg_SessionRef_t _ifgen_sessionRef,
1626  le_mrc_PciScanInformationRef_t pciScanInformationRef
1627  ///< [IN] [IN] The reference to the cell information.
1628 );
1629 
1630 //--------------------------------------------------------------------------------------------------
1631 /**
1632  * This function must be called to get the global cell id referenced by PciScanInformation which is
1633  * returned by le_mrc_GetFirstPciScanInfo() and le_mrc_GetNextPciScanInfo().
1634  *
1635  * @return The Global Cell Identifier.
1636  *
1637  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1638  * function won't return.
1639  */
1640 //--------------------------------------------------------------------------------------------------
1641 LE_SHARED uint32_t ifgen_le_mrc_GetPciScanGlobalCellId
1642 (
1643  le_msg_SessionRef_t _ifgen_sessionRef,
1644  le_mrc_PciScanInformationRef_t pciScanInformationRef
1645  ///< [IN] [IN] The reference to the cell information.
1646 );
1647 
1648 //--------------------------------------------------------------------------------------------------
1649 /**
1650  * This function must be called to get the Mcc/Mnc of each PLMN referenced in the list of
1651  * Plmn Information retrieved with le_mrc_GetFirstPlmnInfo() and le_mrc_GetNextPlmnInfo().
1652  *
1653  * @return
1654  * - LE_OK on success
1655  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
1656  * - LE_FAULT for all other errors
1657  *
1658  *
1659  */
1660 //--------------------------------------------------------------------------------------------------
1661 LE_SHARED le_result_t ifgen_le_mrc_GetPciScanMccMnc
1662 (
1663  le_msg_SessionRef_t _ifgen_sessionRef,
1665  ///< [IN] [IN] The reference to the cell information.
1666  char* mccPtr,
1667  ///< [OUT] Mobile Country Code
1668  size_t mccPtrSize,
1669  ///< [IN]
1670  char* mncPtr,
1671  ///< [OUT] Mobile Network Code
1672  size_t mncPtrSize
1673  ///< [IN]
1674 );
1675 
1676 //--------------------------------------------------------------------------------------------------
1677 /**
1678  * This function must be called to delete the list of the Scan Information retrieved with
1679  * le_mrc_PerformCellularNetworkScan().
1680  *
1681  * @note
1682  * On failure, the process exits, so you don't have to worry about checking the returned
1683  * reference for validity.
1684  *
1685  * @note <b>multi-app safe</b>
1686  */
1687 //--------------------------------------------------------------------------------------------------
1688 LE_SHARED void ifgen_le_mrc_DeleteCellularNetworkScan
1689 (
1690  le_msg_SessionRef_t _ifgen_sessionRef,
1691  le_mrc_ScanInformationListRef_t scanInformationListRef
1692  ///< [IN] The list of scan information.
1693 );
1694 
1695 //--------------------------------------------------------------------------------------------------
1696 /**
1697  * This function must be called to delete the list of the Pci Scan Information retrieved with
1698  * le_mrc_PerformPciNetworkScan() or le_mrc_PerformPciNetworkScanAsync().
1699  *
1700  * @note
1701  * On failure, the process exits, so you don't have to worry about checking the returned
1702  * reference for validity.
1703  *
1704  */
1705 //--------------------------------------------------------------------------------------------------
1706 LE_SHARED void ifgen_le_mrc_DeletePciNetworkScan
1707 (
1708  le_msg_SessionRef_t _ifgen_sessionRef,
1709  le_mrc_PciScanInformationListRef_t scanInformationListRef
1710  ///< [IN] The list of scan information.
1711 );
1712 
1713 //--------------------------------------------------------------------------------------------------
1714 /**
1715  * This function must be called to get the Cellular Network Code [mcc:mnc]
1716  *
1717  * @return
1718  * - LE_OK on success
1719  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
1720  * - LE_FAULT for all other errors
1721  *
1722  * @note On failure, the process exits, so you don't have to worry about checking the returned
1723  * reference for validity.
1724  *
1725  * @note <b>multi-app safe</b>
1726  */
1727 //--------------------------------------------------------------------------------------------------
1728 LE_SHARED le_result_t ifgen_le_mrc_GetCellularNetworkMccMnc
1729 (
1730  le_msg_SessionRef_t _ifgen_sessionRef,
1731  le_mrc_ScanInformationRef_t scanInformationRef,
1732  ///< [IN] Scan information reference
1733  char* mccPtr,
1734  ///< [OUT] Mobile Country Code
1735  size_t mccPtrSize,
1736  ///< [IN]
1737  char* mncPtr,
1738  ///< [OUT] Mobile Network Code
1739  size_t mncPtrSize
1740  ///< [IN]
1741 );
1742 
1743 //--------------------------------------------------------------------------------------------------
1744 /**
1745  * This function must be called to get the Cellular Network Name.
1746  *
1747  * @return
1748  * - LE_OK on success
1749  * - LE_OVERFLOW if the operator name would not fit in buffer
1750  * - LE_FAULT for all other errors
1751  *
1752  * @note On failure, the process exits, so you don't have to worry about checking the returned
1753  * reference for validity.
1754  *
1755  * @note <b>multi-app safe</b>
1756  */
1757 //--------------------------------------------------------------------------------------------------
1758 LE_SHARED le_result_t ifgen_le_mrc_GetCellularNetworkName
1759 (
1760  le_msg_SessionRef_t _ifgen_sessionRef,
1761  le_mrc_ScanInformationRef_t scanInformationRef,
1762  ///< [IN] Scan information reference
1763  char* namePtr,
1764  ///< [OUT] Name of operator
1765  size_t namePtrSize
1766  ///< [IN]
1767 );
1768 
1769 //--------------------------------------------------------------------------------------------------
1770 /**
1771  * This function must be called to get the radio access technology of a scanInformationRef.
1772  *
1773  * @return the radio access technology
1774  *
1775  * @note On failure, the process exits.
1776  *
1777  * @note <b>multi-app safe</b>
1778  */
1779 //--------------------------------------------------------------------------------------------------
1780 LE_SHARED le_mrc_Rat_t ifgen_le_mrc_GetCellularNetworkRat
1781 (
1782  le_msg_SessionRef_t _ifgen_sessionRef,
1783  le_mrc_ScanInformationRef_t scanInformationRef
1784  ///< [IN] Scan information reference
1785 );
1786 
1787 //--------------------------------------------------------------------------------------------------
1788 /**
1789  * This function must be called to check if a cellular network is currently in use.
1790  *
1791  * @return true The network is in use
1792  * @return false The network isn't in use
1793  *
1794  * @note On failure, the process exits, so you don't have to worry about checking the returned
1795  * reference for validity.
1796  *
1797  * @note <b>multi-app safe</b>
1798  */
1799 //--------------------------------------------------------------------------------------------------
1800 LE_SHARED bool ifgen_le_mrc_IsCellularNetworkInUse
1801 (
1802  le_msg_SessionRef_t _ifgen_sessionRef,
1803  le_mrc_ScanInformationRef_t scanInformationRef
1804  ///< [IN] Scan information reference
1805 );
1806 
1807 //--------------------------------------------------------------------------------------------------
1808 /**
1809  * This function must be called to check if a cellular network is available.
1810  *
1811  * @return true The network is available
1812  * @return false The network isn't available
1813  *
1814  * @note On failure, the process exits, so you don't have to worry about checking the returned
1815  * reference for validity.
1816  *
1817  * @note <b>multi-app safe</b>
1818  */
1819 //--------------------------------------------------------------------------------------------------
1820 LE_SHARED bool ifgen_le_mrc_IsCellularNetworkAvailable
1821 (
1822  le_msg_SessionRef_t _ifgen_sessionRef,
1823  le_mrc_ScanInformationRef_t scanInformationRef
1824  ///< [IN] Scan information reference
1825 );
1826 
1827 //--------------------------------------------------------------------------------------------------
1828 /**
1829  * This function must be called to check if a cellular network is currently in home mode.
1830  *
1831  * @return true The network is home
1832  * @return false The network is roaming
1833  *
1834  * @note On failure, the process exits, so you don't have to worry about checking the returned
1835  * reference for validity.
1836  *
1837  * @note <b>multi-app safe</b>
1838  */
1839 //--------------------------------------------------------------------------------------------------
1840 LE_SHARED bool ifgen_le_mrc_IsCellularNetworkHome
1841 (
1842  le_msg_SessionRef_t _ifgen_sessionRef,
1843  le_mrc_ScanInformationRef_t scanInformationRef
1844  ///< [IN] Scan information reference
1845 );
1846 
1847 //--------------------------------------------------------------------------------------------------
1848 /**
1849  * This function must be called to check if a cellular network is forbidden by the operator.
1850  *
1851  * @return true The network is forbidden
1852  * @return false The network is allowed
1853  *
1854  * @note On failure, the process exits, so you don't have to worry about checking the returned
1855  * reference for validity.
1856  *
1857  * @note <b>multi-app safe</b>
1858  */
1859 //--------------------------------------------------------------------------------------------------
1860 LE_SHARED bool ifgen_le_mrc_IsCellularNetworkForbidden
1861 (
1862  le_msg_SessionRef_t _ifgen_sessionRef,
1863  le_mrc_ScanInformationRef_t scanInformationRef
1864  ///< [IN] Scan information reference
1865 );
1866 
1867 //--------------------------------------------------------------------------------------------------
1868 /**
1869  * This function must be called to get the current network name information.
1870  *
1871  * @return
1872  * - LE_OK on success
1873  * - LE_BAD_PARAMETER if nameStr is NULL
1874  * - LE_OVERFLOW if the Home Network Name can't fit in nameStr
1875  * - LE_FAULT on any other failure
1876  *
1877  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1878  * function won't return.
1879  *
1880  * @note <b>multi-app safe</b>
1881  */
1882 //--------------------------------------------------------------------------------------------------
1883 LE_SHARED le_result_t ifgen_le_mrc_GetCurrentNetworkName
1884 (
1885  le_msg_SessionRef_t _ifgen_sessionRef,
1886  char* nameStr,
1887  ///< [OUT] the home network Name
1888  size_t nameStrSize
1889  ///< [IN]
1890 );
1891 
1892 //--------------------------------------------------------------------------------------------------
1893 /**
1894  * This function must be called to get the current network PLMN information.
1895  *
1896  * @return
1897  * - LE_OK on success
1898  * - LE_FAULT on any other failure
1899  *
1900  * @note <b>multi-app safe</b>
1901  */
1902 //--------------------------------------------------------------------------------------------------
1903 LE_SHARED le_result_t ifgen_le_mrc_GetCurrentNetworkMccMnc
1904 (
1905  le_msg_SessionRef_t _ifgen_sessionRef,
1906  char* mccStr,
1907  ///< [OUT] the mobile country code
1908  size_t mccStrSize,
1909  ///< [IN]
1910  char* mncStr,
1911  ///< [OUT] the mobile network code
1912  size_t mncStrSize
1913  ///< [IN]
1914 );
1915 
1916 //--------------------------------------------------------------------------------------------------
1917 /**
1918  * This function must be called to get the current Radio Access Technology in use.
1919  *
1920  * @return LE_OK Function succeeded.
1921  * @return LE_BAD_PARAMETER Invalid parameter.
1922  * @return LE_FAULT Function failed to get the Radio Access Technology.
1923  *
1924  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1925  * function won't return.
1926  *
1927  * @note The API returns the RAT only if the device is registered on the network.
1928  * le_mrc_GetNetRegState() function can be called first to obtain the network registration
1929  * state.
1930  *
1931  * @note <b>multi-app safe</b>
1932  */
1933 //--------------------------------------------------------------------------------------------------
1934 LE_SHARED le_result_t ifgen_le_mrc_GetRadioAccessTechInUse
1935 (
1936  le_msg_SessionRef_t _ifgen_sessionRef,
1937  le_mrc_Rat_t* ratPtr
1938  ///< [OUT] The Radio Access Technology.
1939 );
1940 
1941 //--------------------------------------------------------------------------------------------------
1942 /**
1943  * This function must be called to retrieve the Neighboring Cells information. It creates and
1944  * returns a reference to the Neighboring Cells information.
1945  *
1946  * @return A reference to the Neighboring Cells information.
1947  * @return NULL if no Cells Information are available.
1948  *
1949  * @note <b>multi-app safe</b>
1950  */
1951 //--------------------------------------------------------------------------------------------------
1952 LE_SHARED le_mrc_NeighborCellsRef_t ifgen_le_mrc_GetNeighborCellsInfo
1953 (
1954  le_msg_SessionRef_t _ifgen_sessionRef
1955 );
1956 
1957 //--------------------------------------------------------------------------------------------------
1958 /**
1959  * This function must be called to delete the Neighboring Cells information.
1960  *
1961  * @note On failure, the process exits, so you don't have to worry about checking the returned
1962  * reference for validity.
1963  *
1964  * @note <b>multi-app safe</b>
1965  */
1966 //--------------------------------------------------------------------------------------------------
1967 LE_SHARED void ifgen_le_mrc_DeleteNeighborCellsInfo
1968 (
1969  le_msg_SessionRef_t _ifgen_sessionRef,
1970  le_mrc_NeighborCellsRef_t ngbrCellsRef
1971  ///< [IN] Neighboring Cells reference.
1972 );
1973 
1974 //--------------------------------------------------------------------------------------------------
1975 /**
1976  * This function must be called to get the first Cell Information reference in the list of
1977  * Neighboring Cells information retrieved with le_mrc_GetNeighborCellsInfo().
1978  *
1979  * @return NULL No Cell information object found.
1980  * @return le_mrc_CellInfoRef_t The Cell information object reference.
1981  *
1982  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1983  * function won't return.
1984  *
1985  * @note <b>multi-app safe</b>
1986  */
1987 //--------------------------------------------------------------------------------------------------
1988 LE_SHARED le_mrc_CellInfoRef_t ifgen_le_mrc_GetFirstNeighborCellInfo
1989 (
1990  le_msg_SessionRef_t _ifgen_sessionRef,
1991  le_mrc_NeighborCellsRef_t ngbrCellsRef
1992  ///< [IN] Neighboring Cells reference.
1993 );
1994 
1995 //--------------------------------------------------------------------------------------------------
1996 /**
1997  * This function must be called to get the next Cell Information reference in the list of
1998  * Neighboring Cells information retrieved with le_mrc_GetNeighborCellsInfo().
1999  *
2000  * @return NULL No Cell information object found.
2001  * @return le_mrc_CellInfoRef_t Cell information object reference.
2002  *
2003  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2004  * function won't return.
2005  *
2006  * @note <b>multi-app safe</b>
2007  */
2008 //--------------------------------------------------------------------------------------------------
2009 LE_SHARED le_mrc_CellInfoRef_t ifgen_le_mrc_GetNextNeighborCellInfo
2010 (
2011  le_msg_SessionRef_t _ifgen_sessionRef,
2012  le_mrc_NeighborCellsRef_t ngbrCellsRef
2013  ///< [IN] Neighboring Cells reference.
2014 );
2015 
2016 //--------------------------------------------------------------------------------------------------
2017 /**
2018  * This function must be called to get the Physical Cell Identifier.
2019  *
2020  * @return The Physical Cell Identifier. UINT32_MAX value is returned if the Cell Identifier is not
2021  * available.
2022  *
2023  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2024  * function won't return.
2025  *
2026  * @note <b>multi-app safe</b>
2027  */
2028 //--------------------------------------------------------------------------------------------------
2029 LE_SHARED uint32_t ifgen_le_mrc_GetNeighborCellId
2030 (
2031  le_msg_SessionRef_t _ifgen_sessionRef,
2032  le_mrc_CellInfoRef_t ngbrCellInfoRef
2033  ///< [IN] Cell information reference.
2034 );
2035 
2036 //--------------------------------------------------------------------------------------------------
2037 /**
2038  * This function must be called to get the Location Area Code of a cell.
2039  *
2040  * @return The Location Area Code of a cell. UINT16_MAX value is returned if the value is not
2041  * available.
2042  *
2043  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2044  * function won't return.
2045  *
2046  * @note <b>multi-app safe</b>
2047  */
2048 //--------------------------------------------------------------------------------------------------
2049 LE_SHARED uint32_t ifgen_le_mrc_GetNeighborCellLocAreaCode
2050 (
2051  le_msg_SessionRef_t _ifgen_sessionRef,
2052  le_mrc_CellInfoRef_t ngbrCellInfoRef
2053  ///< [IN] Cell information reference.
2054 );
2055 
2056 //--------------------------------------------------------------------------------------------------
2057 /**
2058  * This function must be called to get the signal strength of a cell.
2059  *
2060  * @return The signal strength of a cell in dBm.
2061  *
2062  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2063  * function won't return.
2064  *
2065  * @note <b>multi-app safe</b>
2066  */
2067 //--------------------------------------------------------------------------------------------------
2068 LE_SHARED int32_t ifgen_le_mrc_GetNeighborCellRxLevel
2069 (
2070  le_msg_SessionRef_t _ifgen_sessionRef,
2071  le_mrc_CellInfoRef_t ngbrCellInfoRef
2072  ///< [IN] Cell information reference.
2073 );
2074 
2075 //--------------------------------------------------------------------------------------------------
2076 /**
2077  * This function must be called to get the Radio Access Technology of a cell.
2078  *
2079  * @return The Radio Access Technology of a cell.
2080  *
2081  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2082  * function won't return.
2083  *
2084  * @note <b>multi-app safe</b>
2085  */
2086 //--------------------------------------------------------------------------------------------------
2087 LE_SHARED le_mrc_Rat_t ifgen_le_mrc_GetNeighborCellRat
2088 (
2089  le_msg_SessionRef_t _ifgen_sessionRef,
2090  le_mrc_CellInfoRef_t ngbrCellInfoRef
2091  ///< [IN] Cell information reference.
2092 );
2093 
2094 //--------------------------------------------------------------------------------------------------
2095 /**
2096  * This function must be called to get the Ec/Io; the received energy per chip divided by the power
2097  * density in the band measured in dBm on the primary CPICH channel of serving cell (negative value)
2098  *
2099  * @return
2100  * - The Ec/Io of a cell given in dB with 1 decimal place. (only applicable for UMTS network).
2101  * - INT32_MAX when the value isn't available.
2102  *
2103  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2104  * function won't return.
2105  *
2106  * @note <b>multi-app safe</b>
2107  */
2108 //--------------------------------------------------------------------------------------------------
2109 LE_SHARED int32_t ifgen_le_mrc_GetNeighborCellUmtsEcIo
2110 (
2111  le_msg_SessionRef_t _ifgen_sessionRef,
2112  le_mrc_CellInfoRef_t ngbrCellInfoRef
2113  ///< [IN] Cell information reference.
2114 );
2115 
2116 //--------------------------------------------------------------------------------------------------
2117 /**
2118  * This function must be called to get the RSRP and RSRQ of the Intrafrequency of a LTE cell.
2119  *
2120  * @return
2121  * - LE_OK on success
2122  * - LE_FAULT on failure
2123  *
2124  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2125  * function won't return.
2126  *
2127  * @note <b>multi-app safe</b>
2128  */
2129 //--------------------------------------------------------------------------------------------------
2130 LE_SHARED le_result_t ifgen_le_mrc_GetNeighborCellLteIntraFreq
2131 (
2132  le_msg_SessionRef_t _ifgen_sessionRef,
2133  le_mrc_CellInfoRef_t ngbrCellInfoRef,
2134  ///< [IN] Cell information reference.
2135  int32_t* rsrqPtr,
2136  ///< [OUT] Reference Signal Received Quality value in dB with 1 decimal
2137  ///< place
2138  int32_t* rsrpPtr
2139  ///< [OUT] Reference Signal Receiver Power value in dBm with 1 decimal
2140  ///< place
2141 );
2142 
2143 //--------------------------------------------------------------------------------------------------
2144 /**
2145  * This function must be called to get the RSRP and RSRQ of the Interfrequency of a LTE cell.
2146  *
2147  * @return
2148  * - LE_OK on success
2149  * - LE_FAULT on failure
2150  *
2151  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2152  * function won't return.
2153  *
2154  * @note <b>multi-app safe</b>
2155  */
2156 //--------------------------------------------------------------------------------------------------
2157 LE_SHARED le_result_t ifgen_le_mrc_GetNeighborCellLteInterFreq
2158 (
2159  le_msg_SessionRef_t _ifgen_sessionRef,
2160  le_mrc_CellInfoRef_t ngbrCellInfoRef,
2161  ///< [IN] Cell information reference.
2162  int32_t* rsrqPtr,
2163  ///< [OUT] Reference Signal Received Quality value in dB with 1 decimal
2164  ///< place
2165  int32_t* rsrpPtr
2166  ///< [OUT] Reference Signal Receiver Power value in dBm with 1 decimal
2167  ///< place
2168 );
2169 
2170 //--------------------------------------------------------------------------------------------------
2171 /**
2172  * This function must be called to get the neighbor cell primary scrambling code.
2173  *
2174  * @return The neighbor cell primary scrambling code. UINT16_MAX value is returned if the value is
2175  * not available.
2176  *
2177  * @note <b>multi-app safe</b>
2178  */
2179 //--------------------------------------------------------------------------------------------------
2180 LE_SHARED uint16_t ifgen_le_mrc_GetNeighborCellScramblingCode
2181 (
2182  le_msg_SessionRef_t _ifgen_sessionRef,
2183  le_mrc_CellInfoRef_t ngbrCellInfoRef
2184  ///< [IN] Cell information reference
2185 );
2186 
2187 //--------------------------------------------------------------------------------------------------
2188 /**
2189  * This function must be called to measure the signal metrics. It creates and returns a reference
2190  * to the signal metrics.
2191  *
2192  * @return A reference to the signal metrics.
2193  * @return NULL if no signal metrics are available.
2194  *
2195  * @note <b>multi-app safe</b>
2196  */
2197 //--------------------------------------------------------------------------------------------------
2198 LE_SHARED le_mrc_MetricsRef_t ifgen_le_mrc_MeasureSignalMetrics
2199 (
2200  le_msg_SessionRef_t _ifgen_sessionRef
2201 );
2202 
2203 //--------------------------------------------------------------------------------------------------
2204 /**
2205  * This function must be called to delete the the signal metrics.
2206  *
2207  * @note On failure, the process exits, so you don't have to worry about checking the returned
2208  * reference for validity.
2209  *
2210  * @note <b>multi-app safe</b>
2211  */
2212 //--------------------------------------------------------------------------------------------------
2213 LE_SHARED void ifgen_le_mrc_DeleteSignalMetrics
2214 (
2215  le_msg_SessionRef_t _ifgen_sessionRef,
2216  le_mrc_MetricsRef_t MetricsRef
2217  ///< [IN] Signal metrics reference.
2218 );
2219 
2220 //--------------------------------------------------------------------------------------------------
2221 /**
2222  * This function returns the Radio Access Technology of the signal metrics.
2223  *
2224  * @return The Radio Access Technology of the signal measure.
2225  *
2226  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2227  * function won't return.
2228  *
2229  * @note <b>multi-app safe</b>
2230  */
2231 //--------------------------------------------------------------------------------------------------
2232 LE_SHARED le_mrc_Rat_t ifgen_le_mrc_GetRatOfSignalMetrics
2233 (
2234  le_msg_SessionRef_t _ifgen_sessionRef,
2235  le_mrc_MetricsRef_t MetricsRef
2236  ///< [IN] Signal metrics reference.
2237 );
2238 
2239 //--------------------------------------------------------------------------------------------------
2240 /**
2241  * This function returns the signal strength in dBm and the bit error rate measured on GSM network.
2242  *
2243  * @return
2244  * - LE_OK on success
2245  * - LE_FAULT on failure
2246  *
2247  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2248  * function won't return.
2249  *
2250  * @note <b>multi-app safe</b>
2251  */
2252 //--------------------------------------------------------------------------------------------------
2253 LE_SHARED le_result_t ifgen_le_mrc_GetGsmSignalMetrics
2254 (
2255  le_msg_SessionRef_t _ifgen_sessionRef,
2256  le_mrc_MetricsRef_t MetricsRef,
2257  ///< [IN] Signal metrics reference.
2258  int32_t* rssiPtr,
2259  ///< [OUT] Signal strength in dBm
2260  uint32_t* berPtr
2261  ///< [OUT] Bit error rate.
2262 );
2263 
2264 //--------------------------------------------------------------------------------------------------
2265 /**
2266  * This function returns the signal metrics measured on UMTS or TD-SCDMA networks.
2267  *
2268  * @return
2269  * - LE_OK on success
2270  * - LE_FAULT on failure
2271  *
2272  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2273  * function won't return.
2274  *
2275  * @note <b>multi-app safe</b>
2276  */
2277 //--------------------------------------------------------------------------------------------------
2278 LE_SHARED le_result_t ifgen_le_mrc_GetUmtsSignalMetrics
2279 (
2280  le_msg_SessionRef_t _ifgen_sessionRef,
2281  le_mrc_MetricsRef_t MetricsRef,
2282  ///< [IN] Signal metrics reference.
2283  int32_t* ssPtr,
2284  ///< [OUT] Signal strength in dBm
2285  uint32_t* blerPtr,
2286  ///< [OUT] Block error rate
2287  int32_t* ecioPtr,
2288  ///< [OUT] Ec/Io value in dB with 1 decimal place (-15 = -1.5 dB) (Negative
2289  ///< value)
2290  int32_t* rscpPtr,
2291  ///< [OUT] Measured RSCP in dBm (negative value, value INT32_MAX means
2292  ///< that RSCP is not available)
2293  int32_t* sinrPtr
2294  ///< [OUT] Measured SINR in dB (only applicable for TD-SCDMA network, value
2295  ///< INT32_MAX means that the SINR is not available)
2296 );
2297 
2298 //--------------------------------------------------------------------------------------------------
2299 /**
2300  * This function returns the signal metrics measured on LTE network.
2301  *
2302  * @return
2303  * - LE_OK on success
2304  * - LE_FAULT on failure
2305  * - sinrPtr and ioPtr return INT32_MAX when the value isn't available.
2306  *
2307  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2308  * function won't return.
2309  *
2310  * @note <b>multi-app safe</b>
2311  */
2312 //--------------------------------------------------------------------------------------------------
2313 LE_SHARED le_result_t ifgen_le_mrc_GetLteSignalMetrics
2314 (
2315  le_msg_SessionRef_t _ifgen_sessionRef,
2316  le_mrc_MetricsRef_t MetricsRef,
2317  ///< [IN] Signal metrics reference.
2318  int32_t* ssPtr,
2319  ///< [OUT] Signal strength in dBm
2320  uint32_t* blerPtr,
2321  ///< [OUT] Block error rate
2322  int32_t* rsrqPtr,
2323  ///< [OUT] RSRQ value in dB as measured by L1 with 1 decimal place
2324  int32_t* rsrpPtr,
2325  ///< [OUT] Current RSRP in dBm as measured by L1 with 1 decimal place
2326  int32_t* snrPtr
2327  ///< [OUT] SNR level in dB with 1 decimal place (15 = 1.5 dB)
2328 );
2329 
2330 //--------------------------------------------------------------------------------------------------
2331 /**
2332  * This function returns the signal metrics measured on CDMA network.
2333  *
2334  * @return
2335  * - LE_OK on success
2336  * - LE_FAULT on failure
2337  * - rscpPtr and sinrPtr return INT32_MAX when the value isn't available.
2338  *
2339  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2340  * function won't return.
2341  *
2342  * @note <b>multi-app safe</b>
2343  */
2344 //--------------------------------------------------------------------------------------------------
2345 LE_SHARED le_result_t ifgen_le_mrc_GetCdmaSignalMetrics
2346 (
2347  le_msg_SessionRef_t _ifgen_sessionRef,
2348  le_mrc_MetricsRef_t MetricsRef,
2349  ///< [IN] Signal metrics reference.
2350  int32_t* ssPtr,
2351  ///< [OUT] Signal strength in dBm
2352  uint32_t* erPtr,
2353  ///< [OUT] Frame/Packet error rate
2354  int32_t* ecioPtr,
2355  ///< [OUT] ECIO value in dB with 1 decimal place (-15 = -1.5 dB) (Negative
2356  ///< value)
2357  int32_t* sinrPtr,
2358  ///< [OUT] SINR level in dB with 1 decimal place, (only applicable for
2359  ///< 1xEV-DO, value INT32_MAX means that the value is not available)
2360  int32_t* ioPtr
2361  ///< [OUT] Received IO in dBm (only applicable for 1xEV-DO, value INT32_MAX
2362  ///< means that the value is not available)
2363 );
2364 
2365 //--------------------------------------------------------------------------------------------------
2366 /**
2367  * This function must be called to get the serving Cell Identifier.
2368  *
2369  * @return The Cell Identifier. UINT32_MAX value is returned if the value is not available.
2370  *
2371  * @note When the module is in UMTS network, the API returns the serving UTRAN Cell Identity (UC-Id)
2372  * which is used to identify the cell uniquely.
2373  * It is composed of the Controlling Radio Network Controller Identifier (CRNC-Id, 12 bits) and the
2374  * Cell Identifier (C-Id, 16 bits). (3GPP 25.401, section 6.1.5)
2375  * The Cell Identifier is coded in the lower 2 bytes of the 4 bytes UC-Id and the CRNC-Id is coded
2376  * in the upper 2 bytes.
2377  * Example: the API returns 7807609 -> 0x772279 (CRNC-Id = 0x77 , cell ID = 0x2279)
2378  *
2379  * @note <b>multi-app safe</b>
2380  */
2381 //--------------------------------------------------------------------------------------------------
2382 LE_SHARED uint32_t ifgen_le_mrc_GetServingCellId
2383 (
2384  le_msg_SessionRef_t _ifgen_sessionRef
2385 );
2386 
2387 //--------------------------------------------------------------------------------------------------
2388 /**
2389  * This function must be called to get the Location Area Code of the serving cell.
2390  *
2391  * @return The Location Area Code. UINT32_MAX value is returned if the value is not available.
2392  *
2393  * @note <b>multi-app safe</b>
2394  */
2395 //--------------------------------------------------------------------------------------------------
2396 LE_SHARED uint32_t ifgen_le_mrc_GetServingCellLocAreaCode
2397 (
2398  le_msg_SessionRef_t _ifgen_sessionRef
2399 );
2400 
2401 //--------------------------------------------------------------------------------------------------
2402 /**
2403  * This function must be called to get the Tracking Area Code of the serving cell (LTE only).
2404  *
2405  * @return The Tracking Area Code. UINT16_MAX value is returned if the value is not available.
2406  *
2407  * @note <b>multi-app safe</b>
2408  */
2409 //--------------------------------------------------------------------------------------------------
2410 LE_SHARED uint16_t ifgen_le_mrc_GetServingCellLteTracAreaCode
2411 (
2412  le_msg_SessionRef_t _ifgen_sessionRef
2413 );
2414 
2415 //--------------------------------------------------------------------------------------------------
2416 /**
2417  * This function must be called to get the serving cell primary scrambling code.
2418  *
2419  * @return The serving cell primary scrambling code. UINT16_MAX value is returned if the value is
2420  * not available.
2421  *
2422  * @note <b>multi-app safe</b>
2423  */
2424 //--------------------------------------------------------------------------------------------------
2425 LE_SHARED uint16_t ifgen_le_mrc_GetServingCellScramblingCode
2426 (
2427  le_msg_SessionRef_t _ifgen_sessionRef
2428 );
2429 
2430 //--------------------------------------------------------------------------------------------------
2431 /**
2432  * Get the Bit mask for 2G/3G Band capabilities.
2433  *
2434  * @return
2435  * - LE_OK on success
2436  * - LE_FAULT on failure
2437  * - LE_UNSUPPORTED Unable to get the 2G/3G Band capabilities on this platform
2438  *
2439  * @note <b>multi-app safe</b>
2440  */
2441 //--------------------------------------------------------------------------------------------------
2442 LE_SHARED le_result_t ifgen_le_mrc_GetBandCapabilities
2443 (
2444  le_msg_SessionRef_t _ifgen_sessionRef,
2445  le_mrc_BandBitMask_t* bandMaskPtrPtr
2446  ///< [OUT] Bit mask for 2G/3G Band capabilities.
2447 );
2448 
2449 //--------------------------------------------------------------------------------------------------
2450 /**
2451  * Get the Bit mask for LTE Band capabilities.
2452  *
2453  * @return
2454  * - LE_OK on success
2455  * - LE_FAULT on failure
2456  * - LE_UNSUPPORTED Unable to get the LTE Band capabilities on this platform
2457  *
2458  * @note <b>multi-app safe</b>
2459  */
2460 //--------------------------------------------------------------------------------------------------
2461 LE_SHARED le_result_t ifgen_le_mrc_GetLteBandCapabilities
2462 (
2463  le_msg_SessionRef_t _ifgen_sessionRef,
2464  le_mrc_LteBandBitMask_t* bandMaskPtrPtr
2465  ///< [OUT] Bit mask for LTE Band capabilities.
2466 );
2467 
2468 //--------------------------------------------------------------------------------------------------
2469 /**
2470  * Get the Bit mask for TD-SCDMA Band capabilities.
2471  *
2472  * @return
2473  * - LE_OK on success
2474  * - LE_FAULT on failure
2475  * - LE_UNSUPPORTED Unable to get the TD-SCDMA Band Capabilities on this platform
2476  *
2477  * @note <b>multi-app safe</b>
2478  */
2479 //--------------------------------------------------------------------------------------------------
2480 LE_SHARED le_result_t ifgen_le_mrc_GetTdScdmaBandCapabilities
2481 (
2482  le_msg_SessionRef_t _ifgen_sessionRef,
2483  le_mrc_TdScdmaBandBitMask_t* bandMaskPtrPtr
2484  ///< [OUT] Bit mask for TD-SCDMA Band capabilities.
2485 );
2486 
2487 //--------------------------------------------------------------------------------------------------
2488 /**
2489  * Add handler function for EVENT 'le_mrc_NetworkReject'
2490  *
2491  * Event to report network reject indication.
2492  *
2493  */
2494 //--------------------------------------------------------------------------------------------------
2495 LE_SHARED le_mrc_NetworkRejectHandlerRef_t ifgen_le_mrc_AddNetworkRejectHandler
2496 (
2497  le_msg_SessionRef_t _ifgen_sessionRef,
2499  ///< [IN]
2500  void* contextPtr
2501  ///< [IN]
2502 );
2503 
2504 //--------------------------------------------------------------------------------------------------
2505 /**
2506  * Remove handler function for EVENT 'le_mrc_NetworkReject'
2507  */
2508 //--------------------------------------------------------------------------------------------------
2509 LE_SHARED void ifgen_le_mrc_RemoveNetworkRejectHandler
2510 (
2511  le_msg_SessionRef_t _ifgen_sessionRef,
2513  ///< [IN]
2514 );
2515 
2516 //--------------------------------------------------------------------------------------------------
2517 /**
2518  * Add handler function for EVENT 'le_mrc_NetRegReject'
2519  *
2520  * Event to report network registration reject indication.
2521  * NetworkReject will be deprecated.
2522  */
2523 //--------------------------------------------------------------------------------------------------
2524 LE_SHARED le_mrc_NetRegRejectHandlerRef_t ifgen_le_mrc_AddNetRegRejectHandler
2525 (
2526  le_msg_SessionRef_t _ifgen_sessionRef,
2528  ///< [IN]
2529  void* contextPtr
2530  ///< [IN]
2531 );
2532 
2533 //--------------------------------------------------------------------------------------------------
2534 /**
2535  * Remove handler function for EVENT 'le_mrc_NetRegReject'
2536  */
2537 //--------------------------------------------------------------------------------------------------
2538 LE_SHARED void ifgen_le_mrc_RemoveNetRegRejectHandler
2539 (
2540  le_msg_SessionRef_t _ifgen_sessionRef,
2542  ///< [IN]
2543 );
2544 
2545 //--------------------------------------------------------------------------------------------------
2546 /**
2547  * Add handler function for EVENT 'le_mrc_JammingDetectionEvent'
2548  *
2549  * This event provides information on jamming detection.
2550  */
2551 //--------------------------------------------------------------------------------------------------
2552 LE_SHARED le_mrc_JammingDetectionEventHandlerRef_t ifgen_le_mrc_AddJammingDetectionEventHandler
2553 (
2554  le_msg_SessionRef_t _ifgen_sessionRef,
2556  ///< [IN]
2557  void* contextPtr
2558  ///< [IN]
2559 );
2560 
2561 //--------------------------------------------------------------------------------------------------
2562 /**
2563  * Remove handler function for EVENT 'le_mrc_JammingDetectionEvent'
2564  */
2565 //--------------------------------------------------------------------------------------------------
2566 LE_SHARED void ifgen_le_mrc_RemoveJammingDetectionEventHandler
2567 (
2568  le_msg_SessionRef_t _ifgen_sessionRef,
2570  ///< [IN]
2571 );
2572 
2573 //--------------------------------------------------------------------------------------------------
2574 /**
2575  * Start the jamming detection monitoring.
2576  *
2577  * @warning The jamming detection feature might be limited by the platform.
2578  * Please refer to the platform documentation @ref platformConstraintsMdc.
2579  *
2580  * @return
2581  * - LE_OK The function succeeded.
2582  * - LE_FAULT The function failed.
2583  * - LE_DUPLICATE The feature is already activated and an activation is requested.
2584  * - LE_UNSUPPORTED The feature is not supported.
2585  */
2586 //--------------------------------------------------------------------------------------------------
2587 LE_SHARED le_result_t ifgen_le_mrc_StartJammingDetection
2588 (
2589  le_msg_SessionRef_t _ifgen_sessionRef
2590 );
2591 
2592 //--------------------------------------------------------------------------------------------------
2593 /**
2594  * Stop the jamming detection monitoring.
2595  *
2596  * @return
2597  * - LE_OK The function succeeded.
2598  * - LE_FAULT The function failed or the application did not start the jamming detection.
2599  * - LE_UNSUPPORTED The feature is not supported.
2600  */
2601 //--------------------------------------------------------------------------------------------------
2602 LE_SHARED le_result_t ifgen_le_mrc_StopJammingDetection
2603 (
2604  le_msg_SessionRef_t _ifgen_sessionRef
2605 );
2606 
2607 //--------------------------------------------------------------------------------------------------
2608 /**
2609  * Set the SAR backoff state
2610  *
2611  * @warning The SAR backoff feature might be unsupported by some platforms.
2612  * Please refer to the platform documentation @ref platformConstraintsMdc.
2613  *
2614  * @return
2615  * - LE_OK The function succeeded.
2616  * - LE_FAULT The function failed.
2617  * - LE_UNSUPPORTED The feature is not supported.
2618  * - LE_OUT_OF_RANGE The provided index is out of range.
2619  */
2620 //--------------------------------------------------------------------------------------------------
2621 LE_SHARED le_result_t ifgen_le_mrc_SetSarBackoffState
2622 (
2623  le_msg_SessionRef_t _ifgen_sessionRef,
2624  uint8_t state
2625  ///< [IN] New state to enable. By default, SAR is disabled (state = 0).
2626  ///< Refer to @ref platformConstraitsMdc for the number of maximum states.
2627 );
2628 
2629 //--------------------------------------------------------------------------------------------------
2630 /**
2631  * Get the SAR backoff state
2632  *
2633  * @warning The SAR backoff feature might be unsupported by some platforms.
2634  * Please refer to the platform documentation @ref platformConstraintsMdc.
2635  *
2636  * @return
2637  * - LE_OK The function succeeded.
2638  * - LE_FAULT The function failed.
2639  * - LE_UNSUPPORTED The feature is not supported.
2640  */
2641 //--------------------------------------------------------------------------------------------------
2642 LE_SHARED le_result_t ifgen_le_mrc_GetSarBackoffState
2643 (
2644  le_msg_SessionRef_t _ifgen_sessionRef,
2645  uint8_t* statePtr
2646  ///< [OUT] Current state. By default, SAR is disabled (state = 0).
2647  ///< Refer to @ref platformConstraitsMdc for the number of maximum states.
2648 );
2649 
2650 //--------------------------------------------------------------------------------------------------
2651 /**
2652  * Get the serving cell radio frequency channel number. The EARFCN is in the range from 0 to 262143.
2653  *
2654  * @return The serving cell frequency channel number. UINT32_MAX value is returned if the value is
2655  * not available.
2656  */
2657 //--------------------------------------------------------------------------------------------------
2658 LE_SHARED uint32_t ifgen_le_mrc_GetServingCellEarfcn
2659 (
2660  le_msg_SessionRef_t _ifgen_sessionRef
2661 );
2662 
2663 //--------------------------------------------------------------------------------------------------
2664 /**
2665  * Get the neighbor cell radio frequency channel number. The EARFCN is in the range from 0
2666  * to 262143.
2667  *
2668  * @return The neighbor cell frequency channel number. UINT32_MAX value is returned if the value is
2669  * not available.
2670  */
2671 //--------------------------------------------------------------------------------------------------
2672 LE_SHARED uint32_t ifgen_le_mrc_GetNeighborCellEarfcn
2673 (
2674  le_msg_SessionRef_t _ifgen_sessionRef,
2675  le_mrc_CellInfoRef_t ngbrCellInfoRef
2676  ///< [IN] The cell information reference
2677 );
2678 
2679 //--------------------------------------------------------------------------------------------------
2680 /**
2681  * Get the serving cell timing advance index value. Timing advance index value is in the range
2682  * from 0 to 1280.
2683  *
2684  * @return The serving cell timing advance index value. UINT32_MAX value is returned if the value
2685  * is not available.
2686  */
2687 //--------------------------------------------------------------------------------------------------
2688 LE_SHARED uint32_t ifgen_le_mrc_GetServingCellTimingAdvance
2689 (
2690  le_msg_SessionRef_t _ifgen_sessionRef
2691 );
2692 
2693 //--------------------------------------------------------------------------------------------------
2694 /**
2695  * Get the physical serving cell Id. The physical cell Id is in the range from 0 to 503.
2696  *
2697  * @return The physical serving cell Id. UINT16_MAX value is returned if the value is
2698  * not available.
2699  */
2700 //--------------------------------------------------------------------------------------------------
2701 LE_SHARED uint16_t ifgen_le_mrc_GetPhysicalServingLteCellId
2702 (
2703  le_msg_SessionRef_t _ifgen_sessionRef
2704 );
2705 
2706 //--------------------------------------------------------------------------------------------------
2707 /**
2708  * Get the neighbor physical cell Id. The physical cell Id is in the range from 0 to 503.
2709  *
2710  * @return The physical serving cell Id. UINT16_MAX value is returned if the value is
2711  * not available.
2712  */
2713 //--------------------------------------------------------------------------------------------------
2714 LE_SHARED uint16_t ifgen_le_mrc_GetPhysicalNeighborLteCellId
2715 (
2716  le_msg_SessionRef_t _ifgen_sessionRef,
2717  le_mrc_CellInfoRef_t ngbrCellInfoRef
2718  ///< [IN] The cell information reference
2719 );
2720 
2721 //--------------------------------------------------------------------------------------------------
2722 /**
2723  * Get the Base Station Identity Code (BSIC) for the serving cell on GSM network.
2724  *
2725  * @return LE_OK The function succeeded.
2726  * @return LE_BAD_PARAMETER Bad parameter passed to the function
2727  * @return LE_FAULT The function failed.
2728  * @return LE_UNAVAILABLE The BSIC is not available. The BSIC value is set to UINT8_MAX.
2729  */
2730 //--------------------------------------------------------------------------------------------------
2731 LE_SHARED le_result_t ifgen_le_mrc_GetServingCellGsmBsic
2732 (
2733  le_msg_SessionRef_t _ifgen_sessionRef,
2734  uint8_t* BSICPtr
2735  ///< [OUT] The BSIC value
2736 );
2737 
2738 //--------------------------------------------------------------------------------------------------
2739 /**
2740  * Get the Base Station Identity Code (BSIC) for a neighbour cell on GSM network.
2741  *
2742  * @return LE_OK The function succeeded.
2743  * @return LE_BAD_PARAMETER Bad parameter passed to the function
2744  * @return LE_FAULT The function failed.
2745  * @return LE_UNAVAILABLE The BSIC is not available. The BSIC value is set to UINT8_MAX.
2746  */
2747 //--------------------------------------------------------------------------------------------------
2748 LE_SHARED le_result_t ifgen_le_mrc_GetNeighborCellGsmBsic
2749 (
2750  le_msg_SessionRef_t _ifgen_sessionRef,
2751  le_mrc_CellInfoRef_t ngbrCellInfoRef,
2752  ///< [IN] The cell information reference.
2753  uint8_t* bsicPtr
2754  ///< [OUT] The BSIC value
2755 );
2756 /** @} **/
2757 #endif // LE_MRC_COMMON_H_INCLUDE_GUARD
Unknown state.
Definition: le_mrc_common.h:269
Message type non-existent or not implemented.
Definition: le_mrc_common.h:422
Intermediate jamming status report.
Definition: le_mrc_common.h:312
le_mrc_NetRegDomain_t
Definition: le_mrc_common.h:443
le_mrc_JammingStatus_t
Definition: le_mrc_common.h:325
Definition: le_mrc_common.h:337
#define LE_SHARED
Definition: le_basics.h:300
CDMA network.
Definition: le_mrc_common.h:292
void(* le_mrc_NetRegStateHandlerFunc_t)(le_mrc_NetRegState_t state, void *contextPtr)
Definition: le_mrc_common.h:537
Definition: le_mrc_common.h:341
le_result_t
Definition: le_basics.h:46
Roaming not allowed in this location area.
Definition: le_mrc_common.h:392
struct le_mrc_Metrics * le_mrc_MetricsRef_t
Definition: le_mrc_common.h:249
struct le_mrc_PciScanInformation * le_mrc_PciScanInformationRef_t
Definition: le_mrc_common.h:201
struct le_mrc_PlmnInformation * le_mrc_PlmnInformationRef_t
Definition: le_mrc_common.h:209
Protocol error, unspecified.
Definition: le_mrc_common.h:432
le_mrc_JammingReport_t
Definition: le_mrc_common.h:308
Registration was denied, usually because of invalid access credentials.
Definition: le_mrc_common.h:265
Circuit-switched only.
Definition: le_mrc_common.h:447
struct le_mrc_PreferredOperatorList * le_mrc_PreferredOperatorListRef_t
Definition: le_mrc_common.h:225
Network failure.
Definition: le_mrc_common.h:400
Message type not compatible with the protocol state.
Definition: le_mrc_common.h:424
void(* le_mrc_JammingDetectionHandlerFunc_t)(le_mrc_JammingReport_t report, le_mrc_JammingStatus_t status, void *contextPtr)
Definition: le_mrc_common.h:673
Registered to a roaming network.
Definition: le_mrc_common.h:267
le_mrc_NetRegState_t
Definition: le_mrc_common.h:257
struct le_mrc_NeighborCells * le_mrc_NeighborCellsRef_t
Definition: le_mrc_common.h:241
Not registered and not currently searching for new operator.
Definition: le_mrc_common.h:259
void(* le_mrc_ManualSelectionHandlerFunc_t)(le_result_t result, void *contextPtr)
Definition: le_mrc_common.h:625
Definition: le_mrc_common.h:464
struct le_mrc_JammingDetectionEventHandler * le_mrc_JammingDetectionEventHandlerRef_t
Definition: le_mrc_common.h:528
No PDP context activated.
Definition: le_mrc_common.h:414
struct le_mrc_ScanInformationList * le_mrc_ScanInformationListRef_t
Definition: le_mrc_common.h:185
Final jamming status report.
Definition: le_mrc_common.h:310
MSC temporarily not reachable.
Definition: le_mrc_common.h:398
void(* le_mrc_PacketSwitchedChangeHandlerFunc_t)(le_mrc_NetRegState_t state, void *contextPtr)
Definition: le_mrc_common.h:565
le_mrc_NetRejCause_t
Definition: le_mrc_common.h:370
Not authorized for this CSG.
Definition: le_mrc_common.h:410
void(* le_mrc_CellularNetworkScanHandlerFunc_t)(le_mrc_ScanInformationListRef_t listRef, void *contextPtr)
Definition: le_mrc_common.h:594
Network cannot derive the MS’s identity.
Definition: le_mrc_common.h:384
Illegal ME.
Definition: le_mrc_common.h:378
Definition: le_mrc_common.h:334
struct le_mrc_NetRegStateEventHandler * le_mrc_NetRegStateEventHandlerRef_t
Definition: le_mrc_common.h:480
Unknown.
Definition: le_mrc_common.h:282
Information element non-existent or not implemented.
Definition: le_mrc_common.h:426
void(* le_mrc_NetRegRejectHandlerFunc_t)(const le_mrc_NetRegRejectInd_t *LE_NONNULL networkRejectIndPtr, void *contextPtr)
Definition: le_mrc_common.h:660
GSM network.
Definition: le_mrc_common.h:284
Retry upon entry into a new cell.
Definition: le_mrc_common.h:416
Invalid mandatory information.
Definition: le_mrc_common.h:420
IMEI not accepted.
Definition: le_mrc_common.h:376
Not registered but currently searching for a new operator.
Definition: le_mrc_common.h:263
struct le_mrc_PciScanInformationList * le_mrc_PciScanInformationListRef_t
Definition: le_mrc_common.h:193
IMSI unknown in HLR.
Definition: le_mrc_common.h:372
No network register after scan.
Definition: le_mrc_common.h:453
GPRS services not allowed.
Definition: le_mrc_common.h:380
struct le_mrc_NetworkRejectHandler * le_mrc_NetworkRejectHandlerRef_t
Definition: le_mrc_common.h:512
struct le_msg_Session * le_msg_SessionRef_t
Definition: le_messaging.h:860
Scan is ongoing, the module cannot see any networks.
Definition: le_mrc_common.h:445
No jamming suspicion; radio environment is considered normal.
Definition: le_mrc_common.h:329
void(* le_mrc_PciNetworkScanHandlerFunc_t)(le_mrc_PciScanInformationListRef_t listRef, void *contextPtr)
Definition: le_mrc_common.h:610
MAC failure.
Definition: le_mrc_common.h:402
LTE network.
Definition: le_mrc_common.h:290
Semantically incorrect message.
Definition: le_mrc_common.h:418
Message not compatible with the protocol state.
Definition: le_mrc_common.h:430
No Suitable Cells In Location Area.
Definition: le_mrc_common.h:396
GSM authentication unacceptable.
Definition: le_mrc_common.h:408
struct le_mrc_CellInfo * le_mrc_CellInfoRef_t
Definition: le_mrc_common.h:233
Implicitly detached.
Definition: le_mrc_common.h:386
struct le_mrc_RatChangeHandler * le_mrc_RatChangeHandlerRef_t
Definition: le_mrc_common.h:488
GPRS services and non-GPRS services not allowed.
Definition: le_mrc_common.h:382
void(* le_mrc_RatChangeHandlerFunc_t)(le_mrc_Rat_t rat, void *contextPtr)
Definition: le_mrc_common.h:551
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_common.h:642
Status is unknown.
Definition: le_mrc_common.h:327
struct le_mrc_PreferredOperator * le_mrc_PreferredOperatorRef_t
Definition: le_mrc_common.h:217
Conditional IE error.
Definition: le_mrc_common.h:428
le_mrc_Rat_t
Definition: le_mrc_common.h:280
Congestion.
Definition: le_mrc_common.h:406
GPRS services not allowed in this PLMN.
Definition: le_mrc_common.h:394
Circuit-switched and packet-switched.
Definition: le_mrc_common.h:451
TD-SCDMA networks.
Definition: le_mrc_common.h:288
SMS provided via GPRS in this routing area.
Definition: le_mrc_common.h:412
struct le_mrc_NetRegRejectHandler * le_mrc_NetRegRejectHandlerRef_t
Definition: le_mrc_common.h:520
void(* le_mrc_SignalStrengthChangeHandlerFunc_t)(int32_t ss, void *contextPtr)
Definition: le_mrc_common.h:579
Illegal MS.
Definition: le_mrc_common.h:374
UMTS networks.
Definition: le_mrc_common.h:286
Location Area not allowed.
Definition: le_mrc_common.h:390
PLMN not allowed.
Definition: le_mrc_common.h:388
Registered, home network.
Definition: le_mrc_common.h:261
struct le_mrc_ScanInformation * le_mrc_ScanInformationRef_t
Definition: le_mrc_common.h:177
Definition: le_mrc_common.h:331
struct le_mrc_PacketSwitchedChangeHandler * le_mrc_PacketSwitchedChangeHandlerRef_t
Definition: le_mrc_common.h:496
Packet-switched only.
Definition: le_mrc_common.h:449
struct le_mrc_SignalStrengthChangeHandler * le_mrc_SignalStrengthChangeHandlerRef_t
Definition: le_mrc_common.h:504
le_onoff_t
Definition: le_basics.h:98
Synch failure.
Definition: le_mrc_common.h:404