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 "1baae1d7fa3c5c5e95337ccd44c2fdd4"
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_RankChange'
494  */
495 //--------------------------------------------------------------------------------------------------
496 typedef struct le_mrc_RankChangeHandler* le_mrc_RankChangeHandlerRef_t;
497 
498 
499 //--------------------------------------------------------------------------------------------------
500 /**
501  * Reference type used by Add/Remove functions for EVENT 'le_mrc_PacketSwitchedChange'
502  */
503 //--------------------------------------------------------------------------------------------------
504 typedef struct le_mrc_PacketSwitchedChangeHandler* le_mrc_PacketSwitchedChangeHandlerRef_t;
505 
506 
507 //--------------------------------------------------------------------------------------------------
508 /**
509  * Reference type used by Add/Remove functions for EVENT 'le_mrc_SignalStrengthChange'
510  */
511 //--------------------------------------------------------------------------------------------------
512 typedef struct le_mrc_SignalStrengthChangeHandler* le_mrc_SignalStrengthChangeHandlerRef_t;
513 
514 
515 //--------------------------------------------------------------------------------------------------
516 /**
517  * Reference type used by Add/Remove functions for EVENT 'le_mrc_NetworkReject'
518  */
519 //--------------------------------------------------------------------------------------------------
520 typedef struct le_mrc_NetworkRejectHandler* le_mrc_NetworkRejectHandlerRef_t;
521 
522 
523 //--------------------------------------------------------------------------------------------------
524 /**
525  * Reference type used by Add/Remove functions for EVENT 'le_mrc_NetRegReject'
526  */
527 //--------------------------------------------------------------------------------------------------
528 typedef struct le_mrc_NetRegRejectHandler* le_mrc_NetRegRejectHandlerRef_t;
529 
530 
531 //--------------------------------------------------------------------------------------------------
532 /**
533  * Reference type used by Add/Remove functions for EVENT 'le_mrc_JammingDetectionEvent'
534  */
535 //--------------------------------------------------------------------------------------------------
536 typedef struct le_mrc_JammingDetectionEventHandler* le_mrc_JammingDetectionEventHandlerRef_t;
537 
538 
539 //--------------------------------------------------------------------------------------------------
540 /**
541  * Handler for Network registration state changes.
542  */
543 //--------------------------------------------------------------------------------------------------
544 typedef void (*le_mrc_NetRegStateHandlerFunc_t)
545 (
546  le_mrc_NetRegState_t state,
547  ///< Parameter ready to receive the Network Registration state.
548  void* contextPtr
549  ///<
550 );
551 
552 //--------------------------------------------------------------------------------------------------
553 /**
554  * Handler for Radio Access Technology changes.
555  *
556  */
557 //--------------------------------------------------------------------------------------------------
558 typedef void (*le_mrc_RatChangeHandlerFunc_t)
559 (
560  le_mrc_Rat_t rat,
561  ///< Parameter ready to receive the Radio Access Technology.
562  void* contextPtr
563  ///<
564 );
565 
566 //--------------------------------------------------------------------------------------------------
567 /**
568  * Handler for Rank indicate Technology changes.
569  *
570  */
571 //--------------------------------------------------------------------------------------------------
572 typedef void (*le_mrc_RankChangeHandlerFunc_t)
573 (
574  int32_t rank,
575  ///< Parameter ready to receive the Rank Indicate.
576  void* contextPtr
577  ///<
578 );
579 
580 //--------------------------------------------------------------------------------------------------
581 /**
582  * Handler for Packet Switched service state changes.
583  *
584  */
585 //--------------------------------------------------------------------------------------------------
587 (
588  le_mrc_NetRegState_t state,
589  ///< Parameter ready to receive the Packet Switched service state.
590  void* contextPtr
591  ///<
592 );
593 
594 //--------------------------------------------------------------------------------------------------
595 /**
596  * Handler for Signal Strength value changes.
597  *
598  */
599 //--------------------------------------------------------------------------------------------------
601 (
602  int32_t ss,
603  ///< Signal strength in dBm
604  void* contextPtr
605  ///<
606 );
607 
608 //--------------------------------------------------------------------------------------------------
609 /**
610  * Handler for cellular asynchronous network scan Sending result.
611  * Returns the reference to the List object. Null pointer if the scan failed.
612  *
613  */
614 //--------------------------------------------------------------------------------------------------
616 (
618  ///< Reference to the List object. Null pointer if the
619  ///< scan failed.
620  void* contextPtr
621  ///<
622 );
623 
624 //--------------------------------------------------------------------------------------------------
625 /**
626  * Handler for PCI asynchronous network scan Sending result.
627  * Returns the reference to the List object. Null pointer if the scan failed.
628  *
629  */
630 //--------------------------------------------------------------------------------------------------
632 (
634  ///< Reference to the List object. Null pointer if the
635  ///< scan failed.
636  void* contextPtr
637  ///<
638 );
639 
640 //--------------------------------------------------------------------------------------------------
641 /**
642  * Handler for asynchronous manual selection response
643  *
644  */
645 //--------------------------------------------------------------------------------------------------
647 (
648  le_result_t result,
649  ///< Manual selection response
650  void* contextPtr
651  ///<
652 );
653 
654 //--------------------------------------------------------------------------------------------------
655 /**
656  * Handler to report network reject indication.
657  *
658  * @deprecated le_mrc_NetworkRejectHandler() will be removed in near future.
659  * It will be replaced by le_mrc_AddNetRegRejectHandler().
660  *
661  */
662 //--------------------------------------------------------------------------------------------------
663 typedef void (*le_mrc_NetworkRejectHandlerFunc_t)
664 (
665  const char* LE_NONNULL mcc,
666  ///< Mobile Country Code
667  const char* LE_NONNULL mnc,
668  ///< Mobile Network Code
669  le_mrc_Rat_t rat,
670  ///< Radio Access Technology.
671  void* contextPtr
672  ///<
673 );
674 
675 //--------------------------------------------------------------------------------------------------
676 /**
677  * Handler to report network registration reject indication.
678  * NetworkRejectHandler is deprecated.
679  */
680 //--------------------------------------------------------------------------------------------------
681 typedef void (*le_mrc_NetRegRejectHandlerFunc_t)
682 (
683  const le_mrc_NetRegRejectInd_t * LE_NONNULL networkRejectIndPtr,
684  ///< NetRegRejectInd Reference.
685  void* contextPtr
686  ///<
687 );
688 
689 //--------------------------------------------------------------------------------------------------
690 /**
691  * Handler for jamming detection event.
692  */
693 //--------------------------------------------------------------------------------------------------
695 (
696  le_mrc_JammingReport_t report,
697  ///< Report type.
698  le_mrc_JammingStatus_t status,
699  ///< Jamming detection status.
700  void* contextPtr
701  ///<
702 );
703 
704 
705 //--------------------------------------------------------------------------------------------------
706 /**
707  * Get if this client bound locally.
708  */
709 //--------------------------------------------------------------------------------------------------
710 LE_SHARED bool ifgen_le_mrc_HasLocalBinding
711 (
712  void
713 );
714 
715 
716 //--------------------------------------------------------------------------------------------------
717 /**
718  * Init data that is common across all threads
719  */
720 //--------------------------------------------------------------------------------------------------
721 LE_SHARED void ifgen_le_mrc_InitCommonData
722 (
723  void
724 );
725 
726 
727 //--------------------------------------------------------------------------------------------------
728 /**
729  * Perform common initialization and open a session
730  */
731 //--------------------------------------------------------------------------------------------------
732 LE_SHARED le_result_t ifgen_le_mrc_OpenSession
733 (
734  le_msg_SessionRef_t _ifgen_sessionRef,
735  bool isBlocking
736 );
737 
738 //--------------------------------------------------------------------------------------------------
739 /**
740  * Add handler function for EVENT 'le_mrc_NetRegStateEvent'
741  *
742  * This event provides information on network registration state changes.
743  *
744  * @note <b>multi-app safe</b>
745  */
746 //--------------------------------------------------------------------------------------------------
747 LE_SHARED le_mrc_NetRegStateEventHandlerRef_t ifgen_le_mrc_AddNetRegStateEventHandler
748 (
749  le_msg_SessionRef_t _ifgen_sessionRef,
751  ///< [IN]
752  void* contextPtr
753  ///< [IN]
754 );
755 
756 //--------------------------------------------------------------------------------------------------
757 /**
758  * Remove handler function for EVENT 'le_mrc_NetRegStateEvent'
759  */
760 //--------------------------------------------------------------------------------------------------
761 LE_SHARED void ifgen_le_mrc_RemoveNetRegStateEventHandler
762 (
763  le_msg_SessionRef_t _ifgen_sessionRef,
765  ///< [IN]
766 );
767 
768 //--------------------------------------------------------------------------------------------------
769 /**
770  * Add handler function for EVENT 'le_mrc_RatChange'
771  *
772  * This event provides information on Radio Access Technology changes.
773  *
774  * @note <b>multi-app safe</b>
775  */
776 //--------------------------------------------------------------------------------------------------
777 LE_SHARED le_mrc_RatChangeHandlerRef_t ifgen_le_mrc_AddRatChangeHandler
778 (
779  le_msg_SessionRef_t _ifgen_sessionRef,
781  ///< [IN]
782  void* contextPtr
783  ///< [IN]
784 );
785 
786 //--------------------------------------------------------------------------------------------------
787 /**
788  * Remove handler function for EVENT 'le_mrc_RatChange'
789  */
790 //--------------------------------------------------------------------------------------------------
791 LE_SHARED void ifgen_le_mrc_RemoveRatChangeHandler
792 (
793  le_msg_SessionRef_t _ifgen_sessionRef,
795  ///< [IN]
796 );
797 
798 //--------------------------------------------------------------------------------------------------
799 /**
800  * Add handler function for EVENT 'le_mrc_RankChange'
801  *
802  * This event provides information on Rank indicate changes.
803  *
804  * @note <b>multi-app safe</b>
805  */
806 //--------------------------------------------------------------------------------------------------
807 LE_SHARED le_mrc_RankChangeHandlerRef_t ifgen_le_mrc_AddRankChangeHandler
808 (
809  le_msg_SessionRef_t _ifgen_sessionRef,
811  ///< [IN]
812  void* contextPtr
813  ///< [IN]
814 );
815 
816 //--------------------------------------------------------------------------------------------------
817 /**
818  * Remove handler function for EVENT 'le_mrc_RankChange'
819  */
820 //--------------------------------------------------------------------------------------------------
821 LE_SHARED void ifgen_le_mrc_RemoveRankChangeHandler
822 (
823  le_msg_SessionRef_t _ifgen_sessionRef,
825  ///< [IN]
826 );
827 
828 //--------------------------------------------------------------------------------------------------
829 /**
830  * Add handler function for EVENT 'le_mrc_PacketSwitchedChange'
831  *
832  * This event provides information on Packet Switched service changes.
833  *
834  * @note <b>multi-app safe</b>
835  */
836 //--------------------------------------------------------------------------------------------------
837 LE_SHARED le_mrc_PacketSwitchedChangeHandlerRef_t ifgen_le_mrc_AddPacketSwitchedChangeHandler
838 (
839  le_msg_SessionRef_t _ifgen_sessionRef,
841  ///< [IN]
842  void* contextPtr
843  ///< [IN]
844 );
845 
846 //--------------------------------------------------------------------------------------------------
847 /**
848  * Remove handler function for EVENT 'le_mrc_PacketSwitchedChange'
849  */
850 //--------------------------------------------------------------------------------------------------
851 LE_SHARED void ifgen_le_mrc_RemovePacketSwitchedChangeHandler
852 (
853  le_msg_SessionRef_t _ifgen_sessionRef,
855  ///< [IN]
856 );
857 
858 //--------------------------------------------------------------------------------------------------
859 /**
860  * Add handler function for EVENT 'le_mrc_SignalStrengthChange'
861  *
862  * This event provides information on Signal Strength value changes.
863  *
864  * @note <b>NOT multi-app safe</b>
865  */
866 //--------------------------------------------------------------------------------------------------
867 LE_SHARED le_mrc_SignalStrengthChangeHandlerRef_t ifgen_le_mrc_AddSignalStrengthChangeHandler
868 (
869  le_msg_SessionRef_t _ifgen_sessionRef,
870  le_mrc_Rat_t rat,
871  ///< [IN] Radio Access Technology
872  int32_t lowerRangeThreshold,
873  ///< [IN] Lower-range Signal strength threshold in dBm
874  int32_t upperRangeThreshold,
875  ///< [IN] Upper-range Signal strength threshold in dBm
877  ///< [IN]
878  void* contextPtr
879  ///< [IN]
880 );
881 
882 //--------------------------------------------------------------------------------------------------
883 /**
884  * Remove handler function for EVENT 'le_mrc_SignalStrengthChange'
885  */
886 //--------------------------------------------------------------------------------------------------
887 LE_SHARED void ifgen_le_mrc_RemoveSignalStrengthChangeHandler
888 (
889  le_msg_SessionRef_t _ifgen_sessionRef,
891  ///< [IN]
892 );
893 
894 //--------------------------------------------------------------------------------------------------
895 /**
896  * This function sets signal strength indication thresholds for a specific RAT.
897  *
898  * @return
899  * - LE_OK Function succeeded.
900  * - LE_BAD_PARAMETER Bad parameters
901  * - LE_FAULT Function failed.
902  *
903  * @note <b>NOT multi-app safe</b>
904  */
905 //--------------------------------------------------------------------------------------------------
906 LE_SHARED le_result_t ifgen_le_mrc_SetSignalStrengthIndThresholds
907 (
908  le_msg_SessionRef_t _ifgen_sessionRef,
909  le_mrc_Rat_t rat,
910  ///< [IN] Radio Access Technology
911  int32_t lowerRangeThreshold,
912  ///< [IN] Lower-range Signal strength threshold in dBm
913  int32_t upperRangeThreshold
914  ///< [IN] Upper-range Signal strength threshold in dBm
915 );
916 
917 //--------------------------------------------------------------------------------------------------
918 /**
919  * This function sets a signal strength indication delta for a specific RAT.
920  *
921  * @return
922  * - LE_OK Function succeeded.
923  * - LE_BAD_PARAMETER Bad parameters.
924  * - LE_FAULT Function failed.
925  *
926  * @note The signal delta is set in units of 0.1 dBm. For example, to set a delta of 10.6 dBm, the
927  * delta value must be set to 106.
928  *
929  * @warning The signal delta resolution is platform dependent. Please refer to
930  * @ref platformConstraintsMdc section for full details.
931  */
932 //--------------------------------------------------------------------------------------------------
933 LE_SHARED le_result_t ifgen_le_mrc_SetSignalStrengthIndDelta
934 (
935  le_msg_SessionRef_t _ifgen_sessionRef,
936  le_mrc_Rat_t rat,
937  ///< [IN] Radio Access Technology
938  uint16_t delta
939  ///< [IN] Signal delta in units of 0.1 dBm
940 );
941 
942 //--------------------------------------------------------------------------------------------------
943 /**
944  * Enable the automatic Selection Register mode.
945  *
946  * @return
947  * - LE_FAULT Function failed.
948  * - LE_OK Function succeeded.
949  *
950  * @note <b>NOT multi-app safe</b>
951  */
952 //--------------------------------------------------------------------------------------------------
953 LE_SHARED le_result_t ifgen_le_mrc_SetAutomaticRegisterMode
954 (
955  le_msg_SessionRef_t _ifgen_sessionRef
956 );
957 
958 //--------------------------------------------------------------------------------------------------
959 /**
960  * Set the manual Selection Register mode with the MCC/MNC parameters.
961  *
962  * @return
963  * - LE_FAULT Function failed.
964  * - LE_OK Function succeeded.
965  *
966  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
967  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
968  * won't return.
969  *
970  * @note <b>NOT multi-app safe</b>
971  */
972 //--------------------------------------------------------------------------------------------------
973 LE_SHARED le_result_t ifgen_le_mrc_SetManualRegisterMode
974 (
975  le_msg_SessionRef_t _ifgen_sessionRef,
976  const char* LE_NONNULL mcc,
977  ///< [IN] Mobile Country Code
978  const char* LE_NONNULL mnc
979  ///< [IN] Mobile Network Code
980 );
981 
982 //--------------------------------------------------------------------------------------------------
983 /**
984  * Set the manual selection register mode asynchronously. This function is not blocking,
985  * the response will be returned with a handler function.
986  *
987  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
988  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
989  * won't return.
990  *
991  *@note <b>NOT multi-app safe</b>
992  *
993  */
994 //--------------------------------------------------------------------------------------------------
995 LE_SHARED void ifgen_le_mrc_SetManualRegisterModeAsync
996 (
997  le_msg_SessionRef_t _ifgen_sessionRef,
998  const char* LE_NONNULL mcc,
999  ///< [IN] Mobile Country Code
1000  const char* LE_NONNULL mnc,
1001  ///< [IN] Mobile Network Code
1003  ///< [IN] handler for sending result
1004  void* contextPtr
1005  ///< [IN]
1006 );
1007 
1008 //--------------------------------------------------------------------------------------------------
1009 /**
1010  * Get the selected Selection Register mode.
1011  *
1012  * @return
1013  * - LE_FAULT Function failed.
1014  * - LE_OK Function succeeded.
1015  *
1016  * @note <b>multi-app safe</b>
1017  */
1018 //--------------------------------------------------------------------------------------------------
1019 LE_SHARED le_result_t ifgen_le_mrc_GetRegisterMode
1020 (
1021  le_msg_SessionRef_t _ifgen_sessionRef,
1022  bool* isManualPtrPtr,
1023  ///< [OUT] true if the scan mode is manual, false if the scan mode is automatic.
1024  char* mccPtr,
1025  ///< [OUT] Mobile Country Code
1026  size_t mccPtrSize,
1027  ///< [IN]
1028  char* mncPtr,
1029  ///< [OUT] Mobile Network Code
1030  size_t mncPtrSize
1031  ///< [IN]
1032 );
1033 
1034 //--------------------------------------------------------------------------------------------------
1035 /**
1036  * Get the Packet Switched state.
1037  *
1038  * @return
1039  * - LE_FAULT Function failed.
1040  * - LE_OK Function succeeded.
1041  *
1042  * @note <b>multi-app safe</b>
1043  */
1044 //--------------------------------------------------------------------------------------------------
1045 LE_SHARED le_result_t ifgen_le_mrc_GetPacketSwitchedState
1046 (
1047  le_msg_SessionRef_t _ifgen_sessionRef,
1048  le_mrc_NetRegState_t* statePtr
1049  ///< [OUT] The current Packet switched state.
1050 );
1051 
1052 //--------------------------------------------------------------------------------------------------
1053 /**
1054  * Get the platform specific network registration error code.
1055  *
1056  * Refer to @ref platformConstraintsSpecificErrorCodes for platform specific
1057  * registration error code description.
1058  *
1059  * @return the platform specific registration error code
1060  *
1061  */
1062 //--------------------------------------------------------------------------------------------------
1063 LE_SHARED int32_t ifgen_le_mrc_GetPlatformSpecificRegistrationErrorCode
1064 (
1065  le_msg_SessionRef_t _ifgen_sessionRef
1066 );
1067 
1068 //--------------------------------------------------------------------------------------------------
1069 /**
1070  * Set the Radio Access Technology preferences by using a bit mask.
1071  *
1072  * @return
1073  * - LE_FAULT Function failed.
1074  * - LE_OK Function succeeded.
1075  * - LE_UNSUPPORTED Not supported by platform.
1076  *
1077  * @note <b>NOT multi-app safe</b>
1078  */
1079 //--------------------------------------------------------------------------------------------------
1080 LE_SHARED le_result_t ifgen_le_mrc_SetRatPreferences
1081 (
1082  le_msg_SessionRef_t _ifgen_sessionRef,
1083  le_mrc_RatBitMask_t ratMask
1084  ///< [IN] Bit mask for the Radio Access Technology preferences.
1085 );
1086 
1087 //--------------------------------------------------------------------------------------------------
1088 /**
1089  * Get the Radio Access Technology preferences
1090  *
1091  * @return
1092  * - LE_FAULT Function failed.
1093  * - LE_OK Function succeeded.
1094  *
1095  * @note <b>multi-app safe</b>
1096  */
1097 //--------------------------------------------------------------------------------------------------
1098 LE_SHARED le_result_t ifgen_le_mrc_GetRatPreferences
1099 (
1100  le_msg_SessionRef_t _ifgen_sessionRef,
1101  le_mrc_RatBitMask_t* ratMaskPtrPtr
1102  ///< [OUT] Bit mask for the Radio Access Technology preferences.
1103 );
1104 
1105 //--------------------------------------------------------------------------------------------------
1106 /**
1107  * Set the 2G/3G Band preferences by using a bit mask.
1108  *
1109  * @return
1110  * - LE_FAULT Function failed.
1111  * - LE_OK Function succeeded.
1112  *
1113  * @note <b>NOT multi-app safe</b>
1114  */
1115 //--------------------------------------------------------------------------------------------------
1116 LE_SHARED le_result_t ifgen_le_mrc_SetBandPreferences
1117 (
1118  le_msg_SessionRef_t _ifgen_sessionRef,
1119  le_mrc_BandBitMask_t bandMask
1120  ///< [IN] Bit mask for 2G/3G Band preferences.
1121 );
1122 
1123 //--------------------------------------------------------------------------------------------------
1124 /**
1125  * Get the Bit mask for 2G/3G Band preferences.
1126  *
1127  * @return
1128  * - LE_FAULT Function failed.
1129  * - LE_OK Function succeeded.
1130  *
1131  * @note <b>multi-app safe</b>
1132  */
1133 //--------------------------------------------------------------------------------------------------
1134 LE_SHARED le_result_t ifgen_le_mrc_GetBandPreferences
1135 (
1136  le_msg_SessionRef_t _ifgen_sessionRef,
1137  le_mrc_BandBitMask_t* bandMaskPtrPtr
1138  ///< [OUT] Bit mask for 2G/3G Band preferences.
1139 );
1140 
1141 //--------------------------------------------------------------------------------------------------
1142 /**
1143  * Set the LTE Band preferences by using a bit mask.
1144  *
1145  * @return
1146  * - LE_FAULT Function failed.
1147  * - LE_OK Function succeeded.
1148  * - LE_UNSUPPORTED The platform doesn't support setting LTE Band preferences.
1149  *
1150  * @note <b>NOT multi-app safe</b>
1151  */
1152 //--------------------------------------------------------------------------------------------------
1153 LE_SHARED le_result_t ifgen_le_mrc_SetLteBandPreferences
1154 (
1155  le_msg_SessionRef_t _ifgen_sessionRef,
1156  le_mrc_LteBandBitMask_t bandMask
1157  ///< [IN] Bit mask for LTE Band preferences.
1158 );
1159 
1160 //--------------------------------------------------------------------------------------------------
1161 /**
1162  * Get the Bit mask for LTE Band preferences.
1163  *
1164  * @return
1165  * - LE_FAULT Function failed.
1166  * - LE_OK Function succeeded.
1167  *
1168  * @note <b>multi-app safe</b>
1169  */
1170 //--------------------------------------------------------------------------------------------------
1171 LE_SHARED le_result_t ifgen_le_mrc_GetLteBandPreferences
1172 (
1173  le_msg_SessionRef_t _ifgen_sessionRef,
1174  le_mrc_LteBandBitMask_t* bandMaskPtrPtr
1175  ///< [OUT] Bit mask for LTE Band preferences.
1176 );
1177 
1178 //--------------------------------------------------------------------------------------------------
1179 /**
1180  * Set the TD-SCDMA Band preferences by using a bit mask.
1181  *
1182  * @return
1183  * - LE_OK Function succeeded.
1184  * - LE_FAULT Function failed.
1185  * - LE_UNSUPPORTED The platform doesn't support setting TD-SCDMA Band preferences.
1186  *
1187  * @note <b>NOT multi-app safe</b>
1188  */
1189 //--------------------------------------------------------------------------------------------------
1190 LE_SHARED le_result_t ifgen_le_mrc_SetTdScdmaBandPreferences
1191 (
1192  le_msg_SessionRef_t _ifgen_sessionRef,
1193  le_mrc_TdScdmaBandBitMask_t bandMask
1194  ///< [IN] Bit mask for TD-SCDMA Band preferences.
1195 );
1196 
1197 //--------------------------------------------------------------------------------------------------
1198 /**
1199  * Get the Bit mask for TD-SCDMA Band preferences.
1200  *
1201  * @return
1202  * - LE_OK Function succeeded.
1203  * - LE_FAULT Function failed.
1204  * - LE_UNSUPPORTED The platform doesn't support getting TD-SCDMA Band preferences.
1205  *
1206  * @note <b>multi-app safe</b>
1207  */
1208 //--------------------------------------------------------------------------------------------------
1209 LE_SHARED le_result_t ifgen_le_mrc_GetTdScdmaBandPreferences
1210 (
1211  le_msg_SessionRef_t _ifgen_sessionRef,
1212  le_mrc_TdScdmaBandBitMask_t* bandMaskPtrPtr
1213  ///< [OUT] Bit mask for TD-SCDMA Band preferences.
1214 );
1215 
1216 //--------------------------------------------------------------------------------------------------
1217 /**
1218  * Add a preferred operator by specifying the MCC/MNC and the Radio Access Technology.
1219  *
1220  * @return
1221  * - LE_UNSUPPORTED List of User Preferred operators not available.
1222  * - LE_FAULT Function failed.
1223  * - LE_BAD_PARAMETER RAT mask is invalid.
1224  * - LE_OK Function succeeded.
1225  *
1226  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1227  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1228  * won't return.
1229  *
1230  * @note <b>NOT multi-app safe</b>
1231  */
1232 //--------------------------------------------------------------------------------------------------
1233 LE_SHARED le_result_t ifgen_le_mrc_AddPreferredOperator
1234 (
1235  le_msg_SessionRef_t _ifgen_sessionRef,
1236  const char* LE_NONNULL mcc,
1237  ///< [IN] Mobile Country Code
1238  const char* LE_NONNULL mnc,
1239  ///< [IN] Mobile Network Code
1240  le_mrc_RatBitMask_t ratMask
1241  ///< [IN] Bit mask for the Radio Access Technology preferences.
1242 );
1243 
1244 //--------------------------------------------------------------------------------------------------
1245 /**
1246  * Remove a preferred operator by specifying the MCC/MNC.
1247  *
1248  * @return
1249  * - LE_UNSUPPORTED List of User Preferred operators not available.
1250  * - LE_NOT_FOUND Operator not found in the User Preferred operators list.
1251  * - LE_FAULT Function failed.
1252  * - LE_OK Function succeeded.
1253  *
1254  * @note If strings are not set, too long (bigger than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN digits), or too
1255  * short (less than LE_MRC_MCC_LEN/LE_MRC_MNC_LEN-1 digits) it's a fatal error, the function
1256  * won't return.
1257  *
1258  * @note <b>NOT multi-app safe</b>
1259  */
1260 //--------------------------------------------------------------------------------------------------
1261 LE_SHARED le_result_t ifgen_le_mrc_RemovePreferredOperator
1262 (
1263  le_msg_SessionRef_t _ifgen_sessionRef,
1264  const char* LE_NONNULL mcc,
1265  ///< [IN] Mobile Country Code
1266  const char* LE_NONNULL mnc
1267  ///< [IN] Mobile Network Code
1268 );
1269 
1270 //--------------------------------------------------------------------------------------------------
1271 /**
1272  * This function must be called to retrieve a list of the preferred operators.
1273  *
1274  * @return
1275  * - Reference to the List object.
1276  * - Null pointer if there is no preferences list.
1277  *
1278  * @note <b>multi-app safe</b>
1279  */
1280 //--------------------------------------------------------------------------------------------------
1281 LE_SHARED le_mrc_PreferredOperatorListRef_t ifgen_le_mrc_GetPreferredOperatorsList
1282 (
1283  le_msg_SessionRef_t _ifgen_sessionRef
1284 );
1285 
1286 //--------------------------------------------------------------------------------------------------
1287 /**
1288  * This function must be called to get the first Operator object reference in the list of the
1289  * preferred operators retrieved with le_mrc_GetPreferredOperators().
1290  *
1291  * @return
1292  * - NULL No operator information found.
1293  * - le_mrc_PreferredOperatorRef The Operator object reference.
1294  *
1295  * @note If the caller is passing a bad reference into this function, it's a fatal error, the
1296  * function won't return.
1297  *
1298  * @note <b>multi-app safe</b>
1299  */
1300 //--------------------------------------------------------------------------------------------------
1301 LE_SHARED le_mrc_PreferredOperatorRef_t ifgen_le_mrc_GetFirstPreferredOperator
1302 (
1303  le_msg_SessionRef_t _ifgen_sessionRef,
1304  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1305  ///< [IN] The list of the preferred operators.
1306 );
1307 
1308 //--------------------------------------------------------------------------------------------------
1309 /**
1310  * This function must be called to get the next Operator object reference in the list of the
1311  * preferred operators retrieved with le_mrc_GetPreferredOperators().
1312  *
1313  * @return
1314  * - NULL No operator information found.
1315  * - le_mrc_PreferredOperatorRef The Operator object reference.
1316  *
1317  * @note If the caller is passing a bad reference into this function, it's a fatal error, the
1318  * function won't return.
1319  *
1320  * @note <b>multi-app safe</b>
1321  */
1322 //--------------------------------------------------------------------------------------------------
1323 LE_SHARED le_mrc_PreferredOperatorRef_t ifgen_le_mrc_GetNextPreferredOperator
1324 (
1325  le_msg_SessionRef_t _ifgen_sessionRef,
1326  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1327  ///< [IN] The list of the preferred operators.
1328 );
1329 
1330 //--------------------------------------------------------------------------------------------------
1331 /**
1332  * This function must be called to delete the list of the preferred operators retrieved with
1333  * le_mrc_GetPreferredOperators().
1334  *
1335  * @note On failure, the process exits, so you don't have to worry about checking the returned
1336  * reference for validity.
1337  *
1338  * @note <b>multi-app safe</b>
1339  */
1340 //--------------------------------------------------------------------------------------------------
1341 LE_SHARED void ifgen_le_mrc_DeletePreferredOperatorsList
1342 (
1343  le_msg_SessionRef_t _ifgen_sessionRef,
1344  le_mrc_PreferredOperatorListRef_t preferredOperatorListRef
1345  ///< [IN] The list of the preferred operators.
1346 );
1347 
1348 //--------------------------------------------------------------------------------------------------
1349 /**
1350  * This function must be called to get the Operator information details.
1351  *
1352  * @return
1353  * - LE_OK on success
1354  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
1355  * - LE_FAULT for all other errors
1356  *
1357  * @note <b>multi-app safe</b>
1358  */
1359 //--------------------------------------------------------------------------------------------------
1360 LE_SHARED le_result_t ifgen_le_mrc_GetPreferredOperatorDetails
1361 (
1362  le_msg_SessionRef_t _ifgen_sessionRef,
1363  le_mrc_PreferredOperatorRef_t preferredOperatorRef,
1364  ///< [IN] Operator object reference.
1365  char* mccPtr,
1366  ///< [OUT] Mobile Country Code.
1367  size_t mccPtrSize,
1368  ///< [IN]
1369  char* mncPtr,
1370  ///< [OUT] Mobile Network Code.
1371  size_t mncPtrSize,
1372  ///< [IN]
1373  le_mrc_RatBitMask_t* ratMaskPtr
1374  ///< [OUT] Bit mask for the RAT preferences.
1375 );
1376 
1377 //--------------------------------------------------------------------------------------------------
1378 /**
1379  * Get the network registration state.
1380  *
1381  * @return LE_FAULT The function failed to get the Network registration state.
1382  * @return LE_BAD_PARAMETER A bad parameter was passed.
1383  * @return LE_OK The function succeeded.
1384  *
1385  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1386  * function won't return.
1387  *
1388  * @note <b>multi-app safe</b>
1389  */
1390 //--------------------------------------------------------------------------------------------------
1391 LE_SHARED le_result_t ifgen_le_mrc_GetNetRegState
1392 (
1393  le_msg_SessionRef_t _ifgen_sessionRef,
1394  le_mrc_NetRegState_t* statePtr
1395  ///< [OUT] Network Registration state.
1396 );
1397 
1398 //--------------------------------------------------------------------------------------------------
1399 /**
1400  * Get the signal quality.
1401  *
1402  * @return LE_FAULT The function failed to get the Signal Quality information.
1403  * @return LE_BAD_PARAMETER A bad parameter was passed.
1404  * @return LE_OK The function succeeded.
1405  *
1406  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1407  * function won't return.
1408  *
1409  * @note <b>multi-app safe</b>
1410  */
1411 //--------------------------------------------------------------------------------------------------
1412 LE_SHARED le_result_t ifgen_le_mrc_GetSignalQual
1413 (
1414  le_msg_SessionRef_t _ifgen_sessionRef,
1415  uint32_t* qualityPtr
1416  ///< [OUT] [OUT] Received signal strength quality (0 = no signal strength,
1417  ///< 5 = very good signal strength).
1418 );
1419 
1420 //--------------------------------------------------------------------------------------------------
1421 /**
1422  * Set the power of the Radio Module.
1423  *
1424  * @return LE_BAD_PARAMETER Bad power mode specified.
1425  * @return LE_FAULT Function failed.
1426  * @return LE_OK Function succeed.
1427  *
1428  * @note <b>NOT multi-app safe</b>
1429  */
1430 //--------------------------------------------------------------------------------------------------
1431 LE_SHARED le_result_t ifgen_le_mrc_SetRadioPower
1432 (
1433  le_msg_SessionRef_t _ifgen_sessionRef,
1434  le_onoff_t power
1435  ///< [IN] The power state.
1436 );
1437 
1438 //--------------------------------------------------------------------------------------------------
1439 /**
1440  * Must be called to get the Radio Module power state.
1441  *
1442  * @return LE_FAULT The function failed to get the Radio Module power state.
1443  * @return LE_BAD_PARAMETER if powerPtr is NULL.
1444  * @return LE_OK The function succeed.
1445  *
1446  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1447  * function won't return.
1448  *
1449  * @note <b>multi-app safe</b>
1450  */
1451 //--------------------------------------------------------------------------------------------------
1452 LE_SHARED le_result_t ifgen_le_mrc_GetRadioPower
1453 (
1454  le_msg_SessionRef_t _ifgen_sessionRef,
1455  le_onoff_t* powerPtr
1456  ///< [OUT] Power state.
1457 );
1458 
1459 //--------------------------------------------------------------------------------------------------
1460 /**
1461  * This function must be called to perform a cellular network scan.
1462  *
1463  * @return Reference to the List object. Null pointer if the scan failed.
1464  *
1465  * @note <b>multi-app safe</b>
1466  */
1467 //--------------------------------------------------------------------------------------------------
1468 LE_SHARED le_mrc_ScanInformationListRef_t ifgen_le_mrc_PerformCellularNetworkScan
1469 (
1470  le_msg_SessionRef_t _ifgen_sessionRef,
1471  le_mrc_RatBitMask_t ratMask
1472  ///< [IN] Radio Access Technology mask
1473 );
1474 
1475 //--------------------------------------------------------------------------------------------------
1476 /**
1477  * This function must be called to perform a PCI network scan.
1478  *
1479  * @return Reference to the List object. Null pointer if the scan failed.
1480  *
1481  * @warning PCI scan is platform dependent. Please refer to @ref platformConstraintsMdc for further
1482  * details.
1483  *
1484  * @note On devices with the watchdog service enabled, the timeout is 4 mins. On those without, the
1485  * timeout is 5 mins.
1486  *
1487  * @note <b>multi-app safe</b>
1488  */
1489 //--------------------------------------------------------------------------------------------------
1490 LE_SHARED le_mrc_PciScanInformationListRef_t ifgen_le_mrc_PerformPciNetworkScan
1491 (
1492  le_msg_SessionRef_t _ifgen_sessionRef,
1493  le_mrc_RatBitMask_t ratMask
1494  ///< [IN] Radio Access Technology mask
1495 );
1496 
1497 //--------------------------------------------------------------------------------------------------
1498 /**
1499  * This function must be called to perform a cellular network scan asynchronously. This function
1500  * is not blocking, the response will be returned with a handler function.
1501  *
1502  *@note <b>multi-app safe</b>
1503  *
1504  */
1505 //--------------------------------------------------------------------------------------------------
1506 LE_SHARED void ifgen_le_mrc_PerformCellularNetworkScanAsync
1507 (
1508  le_msg_SessionRef_t _ifgen_sessionRef,
1509  le_mrc_RatBitMask_t ratMask,
1510  ///< [IN] Radio Access Technology mask
1512  ///< [IN] handler for sending result.
1513  void* contextPtr
1514  ///< [IN]
1515 );
1516 
1517 //--------------------------------------------------------------------------------------------------
1518 /**
1519  * This function must be called to perform a PCI network scan asynchronously. This function
1520  * is not blocking, the response will be returned with a handler function.
1521  *
1522  * @warning PCI scan is platform dependent. Please refer to @ref platformConstraintsMdc for further
1523  * details.
1524  *
1525  *@note <b>multi-app safe</b>
1526  *
1527  */
1528 //--------------------------------------------------------------------------------------------------
1529 LE_SHARED void ifgen_le_mrc_PerformPciNetworkScanAsync
1530 (
1531  le_msg_SessionRef_t _ifgen_sessionRef,
1532  le_mrc_RatBitMask_t ratMask,
1533  ///< [IN] Radio Access Technology mask
1535  ///< [IN] handler for sending result.
1536  void* contextPtr
1537  ///< [IN]
1538 );
1539 
1540 //--------------------------------------------------------------------------------------------------
1541 /**
1542  * This function must be called to get the first Scan Information object reference in the list of
1543  * scan Information retrieved with le_mrc_PerformCellularNetworkScan().
1544  *
1545  * @return NULL No scan information found.
1546  * @return le_mrc_ScanInformationRef_t The Scan Information object reference.
1547  *
1548  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1549  * function won't return.
1550  *
1551  * @note <b>multi-app safe</b>
1552  */
1553 //--------------------------------------------------------------------------------------------------
1554 LE_SHARED le_mrc_ScanInformationRef_t ifgen_le_mrc_GetFirstCellularNetworkScan
1555 (
1556  le_msg_SessionRef_t _ifgen_sessionRef,
1557  le_mrc_ScanInformationListRef_t scanInformationListRef
1558  ///< [IN] The list of scan information.
1559 );
1560 
1561 //--------------------------------------------------------------------------------------------------
1562 /**
1563  * This function must be called to get the next Scan Information object reference in the list of
1564  * scan Information retrieved with le_mrc_PerformCellularNetworkScan().
1565  *
1566  * @return NULL No scan information found.
1567  * @return le_mrc_ScanInformationRef_t The Scan Information object reference.
1568  *
1569  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1570  * function won't return.
1571  *
1572  * @note <b>multi-app safe</b>
1573  */
1574 //--------------------------------------------------------------------------------------------------
1575 LE_SHARED le_mrc_ScanInformationRef_t ifgen_le_mrc_GetNextCellularNetworkScan
1576 (
1577  le_msg_SessionRef_t _ifgen_sessionRef,
1578  le_mrc_ScanInformationListRef_t scanInformationListRef
1579  ///< [IN] The list of scan information.
1580 );
1581 
1582 //--------------------------------------------------------------------------------------------------
1583 /**
1584  * This function must be called to get the first Pci Scan Information object reference in the list of
1585  * scan Information retrieved with le_mrc_PerformPciNetworkScan().
1586  *
1587  * @return NULL No scan information found.
1588  * @return The Scan Information object reference.
1589  *
1590  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1591  * function won't return.
1592  *
1593  * @note <b>multi-app safe</b>
1594  */
1595 //--------------------------------------------------------------------------------------------------
1596 LE_SHARED le_mrc_PciScanInformationRef_t ifgen_le_mrc_GetFirstPciScanInfo
1597 (
1598  le_msg_SessionRef_t _ifgen_sessionRef,
1599  le_mrc_PciScanInformationListRef_t scanInformationListRef
1600  ///< [IN] The list of scan information.
1601 );
1602 
1603 //--------------------------------------------------------------------------------------------------
1604 /**
1605  * This function must be called to get the next Scan Information object reference in the list of
1606  * scan Information retrieved with le_mrc_PerformPciNetworkScan().
1607  *
1608  * @return NULL No scan information found.
1609  * @return The Scan Information object reference.
1610  *
1611  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1612  * function won't return.
1613  *
1614  * @note <b>multi-app safe</b>
1615  */
1616 //--------------------------------------------------------------------------------------------------
1617 LE_SHARED le_mrc_PciScanInformationRef_t ifgen_le_mrc_GetNextPciScanInfo
1618 (
1619  le_msg_SessionRef_t _ifgen_sessionRef,
1620  le_mrc_PciScanInformationListRef_t scanInformationListRef
1621  ///< [IN] The list of scan information.
1622 );
1623 
1624 //--------------------------------------------------------------------------------------------------
1625 /**
1626  * This function must be called to get the first Plmn Information object reference in the list of
1627  * Plmn on each cell.
1628  *
1629  * @return NULL No scan information found.
1630  * @return le_mrc_PlmnInformationRef_t The Plmn Information object reference.
1631  *
1632  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1633  * function won't return.
1634  *
1635  */
1636 //--------------------------------------------------------------------------------------------------
1637 LE_SHARED le_mrc_PlmnInformationRef_t ifgen_le_mrc_GetFirstPlmnInfo
1638 (
1639  le_msg_SessionRef_t _ifgen_sessionRef,
1640  le_mrc_PciScanInformationRef_t pciScanInformationRef
1641  ///< [IN] [IN] The reference to the cell information.
1642 );
1643 
1644 //--------------------------------------------------------------------------------------------------
1645 /**
1646  * This function must be called to get the next Plmn Information object reference in the list of
1647  * Plmn on each cell.
1648  *
1649  * @return NULL No scan information found.
1650  * @return le_mrc_PlmnInformationRef_t The Plmn Information object reference.
1651  *
1652  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1653  * function won't return.
1654  *
1655  */
1656 //--------------------------------------------------------------------------------------------------
1657 LE_SHARED le_mrc_PlmnInformationRef_t ifgen_le_mrc_GetNextPlmnInfo
1658 (
1659  le_msg_SessionRef_t _ifgen_sessionRef,
1661  ///< [IN] [IN] The reference to the cell information.
1662 );
1663 
1664 //--------------------------------------------------------------------------------------------------
1665 /**
1666  * This function must be called to get the physical cell id referenced by PciScanInformation which
1667  * is returned by le_mrc_GetFirstPciScanInfo() and le_mrc_GetNextPciScanInfo().
1668  *
1669  * @return The Physical Cell Identifier.
1670  *
1671  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1672  * function won't return.
1673  */
1674 //--------------------------------------------------------------------------------------------------
1675 LE_SHARED uint16_t ifgen_le_mrc_GetPciScanCellId
1676 (
1677  le_msg_SessionRef_t _ifgen_sessionRef,
1678  le_mrc_PciScanInformationRef_t pciScanInformationRef
1679  ///< [IN] [IN] The reference to the cell information.
1680 );
1681 
1682 //--------------------------------------------------------------------------------------------------
1683 /**
1684  * This function must be called to get the global cell id referenced by PciScanInformation which is
1685  * returned by le_mrc_GetFirstPciScanInfo() and le_mrc_GetNextPciScanInfo().
1686  *
1687  * @return The Global Cell Identifier.
1688  *
1689  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1690  * function won't return.
1691  */
1692 //--------------------------------------------------------------------------------------------------
1693 LE_SHARED uint32_t ifgen_le_mrc_GetPciScanGlobalCellId
1694 (
1695  le_msg_SessionRef_t _ifgen_sessionRef,
1696  le_mrc_PciScanInformationRef_t pciScanInformationRef
1697  ///< [IN] [IN] The reference to the cell information.
1698 );
1699 
1700 //--------------------------------------------------------------------------------------------------
1701 /**
1702  * This function must be called to get the Mcc/Mnc of each PLMN referenced in the list of
1703  * Plmn Information retrieved with le_mrc_GetFirstPlmnInfo() and le_mrc_GetNextPlmnInfo().
1704  *
1705  * @return
1706  * - LE_OK on success
1707  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
1708  * - LE_FAULT for all other errors
1709  *
1710  *
1711  */
1712 //--------------------------------------------------------------------------------------------------
1713 LE_SHARED le_result_t ifgen_le_mrc_GetPciScanMccMnc
1714 (
1715  le_msg_SessionRef_t _ifgen_sessionRef,
1717  ///< [IN] [IN] The reference to the cell information.
1718  char* mccPtr,
1719  ///< [OUT] Mobile Country Code
1720  size_t mccPtrSize,
1721  ///< [IN]
1722  char* mncPtr,
1723  ///< [OUT] Mobile Network Code
1724  size_t mncPtrSize
1725  ///< [IN]
1726 );
1727 
1728 //--------------------------------------------------------------------------------------------------
1729 /**
1730  * This function must be called to delete the list of the Scan Information retrieved with
1731  * le_mrc_PerformCellularNetworkScan().
1732  *
1733  * @note
1734  * On failure, the process exits, so you don't have to worry about checking the returned
1735  * reference for validity.
1736  *
1737  * @note <b>multi-app safe</b>
1738  */
1739 //--------------------------------------------------------------------------------------------------
1740 LE_SHARED void ifgen_le_mrc_DeleteCellularNetworkScan
1741 (
1742  le_msg_SessionRef_t _ifgen_sessionRef,
1743  le_mrc_ScanInformationListRef_t scanInformationListRef
1744  ///< [IN] The list of scan information.
1745 );
1746 
1747 //--------------------------------------------------------------------------------------------------
1748 /**
1749  * This function must be called to delete the list of the Pci Scan Information retrieved with
1750  * le_mrc_PerformPciNetworkScan() or le_mrc_PerformPciNetworkScanAsync().
1751  *
1752  * @note
1753  * On failure, the process exits, so you don't have to worry about checking the returned
1754  * reference for validity.
1755  *
1756  */
1757 //--------------------------------------------------------------------------------------------------
1758 LE_SHARED void ifgen_le_mrc_DeletePciNetworkScan
1759 (
1760  le_msg_SessionRef_t _ifgen_sessionRef,
1761  le_mrc_PciScanInformationListRef_t scanInformationListRef
1762  ///< [IN] The list of scan information.
1763 );
1764 
1765 //--------------------------------------------------------------------------------------------------
1766 /**
1767  * This function must be called to get the Cellular Network Code [mcc:mnc]
1768  *
1769  * @return
1770  * - LE_OK on success
1771  * - LE_OVERFLOW if the MCC or MNC would not fit in buffer
1772  * - LE_FAULT for all other errors
1773  *
1774  * @note On failure, the process exits, so you don't have to worry about checking the returned
1775  * reference for validity.
1776  *
1777  * @note <b>multi-app safe</b>
1778  */
1779 //--------------------------------------------------------------------------------------------------
1780 LE_SHARED le_result_t ifgen_le_mrc_GetCellularNetworkMccMnc
1781 (
1782  le_msg_SessionRef_t _ifgen_sessionRef,
1783  le_mrc_ScanInformationRef_t scanInformationRef,
1784  ///< [IN] Scan information reference
1785  char* mccPtr,
1786  ///< [OUT] Mobile Country Code
1787  size_t mccPtrSize,
1788  ///< [IN]
1789  char* mncPtr,
1790  ///< [OUT] Mobile Network Code
1791  size_t mncPtrSize
1792  ///< [IN]
1793 );
1794 
1795 //--------------------------------------------------------------------------------------------------
1796 /**
1797  * This function must be called to get the Cellular Network Name.
1798  *
1799  * @return
1800  * - LE_OK on success
1801  * - LE_OVERFLOW if the operator name would not fit in buffer
1802  * - LE_FAULT for all other errors
1803  *
1804  * @note On failure, the process exits, so you don't have to worry about checking the returned
1805  * reference for validity.
1806  *
1807  * @note <b>multi-app safe</b>
1808  */
1809 //--------------------------------------------------------------------------------------------------
1810 LE_SHARED le_result_t ifgen_le_mrc_GetCellularNetworkName
1811 (
1812  le_msg_SessionRef_t _ifgen_sessionRef,
1813  le_mrc_ScanInformationRef_t scanInformationRef,
1814  ///< [IN] Scan information reference
1815  char* namePtr,
1816  ///< [OUT] Name of operator
1817  size_t namePtrSize
1818  ///< [IN]
1819 );
1820 
1821 //--------------------------------------------------------------------------------------------------
1822 /**
1823  * This function must be called to get the radio access technology of a scanInformationRef.
1824  *
1825  * @return the radio access technology
1826  *
1827  * @note On failure, the process exits.
1828  *
1829  * @note <b>multi-app safe</b>
1830  */
1831 //--------------------------------------------------------------------------------------------------
1832 LE_SHARED le_mrc_Rat_t ifgen_le_mrc_GetCellularNetworkRat
1833 (
1834  le_msg_SessionRef_t _ifgen_sessionRef,
1835  le_mrc_ScanInformationRef_t scanInformationRef
1836  ///< [IN] Scan information reference
1837 );
1838 
1839 //--------------------------------------------------------------------------------------------------
1840 /**
1841  * This function must be called to check if a cellular network is currently in use.
1842  *
1843  * @return true The network is in use
1844  * @return false The network isn't in use
1845  *
1846  * @note On failure, the process exits, so you don't have to worry about checking the returned
1847  * reference for validity.
1848  *
1849  * @note <b>multi-app safe</b>
1850  */
1851 //--------------------------------------------------------------------------------------------------
1852 LE_SHARED bool ifgen_le_mrc_IsCellularNetworkInUse
1853 (
1854  le_msg_SessionRef_t _ifgen_sessionRef,
1855  le_mrc_ScanInformationRef_t scanInformationRef
1856  ///< [IN] Scan information reference
1857 );
1858 
1859 //--------------------------------------------------------------------------------------------------
1860 /**
1861  * This function must be called to check if a cellular network is available.
1862  *
1863  * @return true The network is available
1864  * @return false The network isn't available
1865  *
1866  * @note On failure, the process exits, so you don't have to worry about checking the returned
1867  * reference for validity.
1868  *
1869  * @note <b>multi-app safe</b>
1870  */
1871 //--------------------------------------------------------------------------------------------------
1872 LE_SHARED bool ifgen_le_mrc_IsCellularNetworkAvailable
1873 (
1874  le_msg_SessionRef_t _ifgen_sessionRef,
1875  le_mrc_ScanInformationRef_t scanInformationRef
1876  ///< [IN] Scan information reference
1877 );
1878 
1879 //--------------------------------------------------------------------------------------------------
1880 /**
1881  * This function must be called to check if a cellular network is currently in home mode.
1882  *
1883  * @return true The network is home
1884  * @return false The network is roaming
1885  *
1886  * @note On failure, the process exits, so you don't have to worry about checking the returned
1887  * reference for validity.
1888  *
1889  * @note <b>multi-app safe</b>
1890  */
1891 //--------------------------------------------------------------------------------------------------
1892 LE_SHARED bool ifgen_le_mrc_IsCellularNetworkHome
1893 (
1894  le_msg_SessionRef_t _ifgen_sessionRef,
1895  le_mrc_ScanInformationRef_t scanInformationRef
1896  ///< [IN] Scan information reference
1897 );
1898 
1899 //--------------------------------------------------------------------------------------------------
1900 /**
1901  * This function must be called to check if a cellular network is forbidden by the operator.
1902  *
1903  * @return true The network is forbidden
1904  * @return false The network is allowed
1905  *
1906  * @note On failure, the process exits, so you don't have to worry about checking the returned
1907  * reference for validity.
1908  *
1909  * @note <b>multi-app safe</b>
1910  */
1911 //--------------------------------------------------------------------------------------------------
1912 LE_SHARED bool ifgen_le_mrc_IsCellularNetworkForbidden
1913 (
1914  le_msg_SessionRef_t _ifgen_sessionRef,
1915  le_mrc_ScanInformationRef_t scanInformationRef
1916  ///< [IN] Scan information reference
1917 );
1918 
1919 //--------------------------------------------------------------------------------------------------
1920 /**
1921  * This function must be called to get the current network name information.
1922  *
1923  * @return
1924  * - LE_OK on success
1925  * - LE_BAD_PARAMETER if nameStr is NULL
1926  * - LE_OVERFLOW if the Home Network Name can't fit in nameStr
1927  * - LE_FAULT on any other failure
1928  *
1929  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1930  * function won't return.
1931  *
1932  * @note <b>multi-app safe</b>
1933  */
1934 //--------------------------------------------------------------------------------------------------
1935 LE_SHARED le_result_t ifgen_le_mrc_GetCurrentNetworkName
1936 (
1937  le_msg_SessionRef_t _ifgen_sessionRef,
1938  char* nameStr,
1939  ///< [OUT] the home network Name
1940  size_t nameStrSize
1941  ///< [IN]
1942 );
1943 
1944 //--------------------------------------------------------------------------------------------------
1945 /**
1946  * This function must be called to get the current network PLMN information.
1947  *
1948  * @return
1949  * - LE_OK on success
1950  * - LE_FAULT on any other failure
1951  *
1952  * @note <b>multi-app safe</b>
1953  */
1954 //--------------------------------------------------------------------------------------------------
1955 LE_SHARED le_result_t ifgen_le_mrc_GetCurrentNetworkMccMnc
1956 (
1957  le_msg_SessionRef_t _ifgen_sessionRef,
1958  char* mccStr,
1959  ///< [OUT] the mobile country code
1960  size_t mccStrSize,
1961  ///< [IN]
1962  char* mncStr,
1963  ///< [OUT] the mobile network code
1964  size_t mncStrSize
1965  ///< [IN]
1966 );
1967 
1968 //--------------------------------------------------------------------------------------------------
1969 /**
1970  * This function must be called to get the current Radio Access Technology in use.
1971  *
1972  * @return LE_OK Function succeeded.
1973  * @return LE_BAD_PARAMETER Invalid parameter.
1974  * @return LE_FAULT Function failed to get the Radio Access Technology.
1975  *
1976  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
1977  * function won't return.
1978  *
1979  * @note The API returns the RAT only if the device is registered on the network.
1980  * le_mrc_GetNetRegState() function can be called first to obtain the network registration
1981  * state.
1982  *
1983  * @note <b>multi-app safe</b>
1984  */
1985 //--------------------------------------------------------------------------------------------------
1986 LE_SHARED le_result_t ifgen_le_mrc_GetRadioAccessTechInUse
1987 (
1988  le_msg_SessionRef_t _ifgen_sessionRef,
1989  le_mrc_Rat_t* ratPtr
1990  ///< [OUT] The Radio Access Technology.
1991 );
1992 
1993 //--------------------------------------------------------------------------------------------------
1994 /**
1995  * This function must be called to get the current Radio Band in use.
1996  *
1997  * @return LE_OK Function succeeded.
1998  * @return LE_BAD_PARAMETER Invalid parameter.
1999  * @return LE_FAULT Function failed to get the Radio Band.
2000  *
2001  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2002  * function won't return.
2003  *
2004  * @note <b>multi-app safe</b>
2005  */
2006 //--------------------------------------------------------------------------------------------------
2007 LE_SHARED le_result_t ifgen_le_mrc_GetRadioBandInUse
2008 (
2009  le_msg_SessionRef_t _ifgen_sessionRef,
2010  uint32_t* bandPtr
2011  ///< [OUT] The Radio Band.
2012 );
2013 
2014 //--------------------------------------------------------------------------------------------------
2015 /**
2016  * This function must be called to retrieve the Neighboring Cells information. It creates and
2017  * returns a reference to the Neighboring Cells information.
2018  *
2019  * @return A reference to the Neighboring Cells information.
2020  * @return NULL if no Cells Information are available.
2021  *
2022  * @note <b>multi-app safe</b>
2023  */
2024 //--------------------------------------------------------------------------------------------------
2025 LE_SHARED le_mrc_NeighborCellsRef_t ifgen_le_mrc_GetNeighborCellsInfo
2026 (
2027  le_msg_SessionRef_t _ifgen_sessionRef
2028 );
2029 
2030 //--------------------------------------------------------------------------------------------------
2031 /**
2032  * This function must be called to delete the Neighboring Cells information.
2033  *
2034  * @note On failure, the process exits, so you don't have to worry about checking the returned
2035  * reference for validity.
2036  *
2037  * @note <b>multi-app safe</b>
2038  */
2039 //--------------------------------------------------------------------------------------------------
2040 LE_SHARED void ifgen_le_mrc_DeleteNeighborCellsInfo
2041 (
2042  le_msg_SessionRef_t _ifgen_sessionRef,
2043  le_mrc_NeighborCellsRef_t ngbrCellsRef
2044  ///< [IN] Neighboring Cells reference.
2045 );
2046 
2047 //--------------------------------------------------------------------------------------------------
2048 /**
2049  * This function must be called to get the first Cell Information reference in the list of
2050  * Neighboring Cells information retrieved with le_mrc_GetNeighborCellsInfo().
2051  *
2052  * @return NULL No Cell information object found.
2053  * @return le_mrc_CellInfoRef_t The Cell information object reference.
2054  *
2055  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2056  * function won't return.
2057  *
2058  * @note <b>multi-app safe</b>
2059  */
2060 //--------------------------------------------------------------------------------------------------
2061 LE_SHARED le_mrc_CellInfoRef_t ifgen_le_mrc_GetFirstNeighborCellInfo
2062 (
2063  le_msg_SessionRef_t _ifgen_sessionRef,
2064  le_mrc_NeighborCellsRef_t ngbrCellsRef
2065  ///< [IN] Neighboring Cells reference.
2066 );
2067 
2068 //--------------------------------------------------------------------------------------------------
2069 /**
2070  * This function must be called to get the next Cell Information reference in the list of
2071  * Neighboring Cells information retrieved with le_mrc_GetNeighborCellsInfo().
2072  *
2073  * @return NULL No Cell information object found.
2074  * @return le_mrc_CellInfoRef_t Cell information object reference.
2075  *
2076  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2077  * function won't return.
2078  *
2079  * @note <b>multi-app safe</b>
2080  */
2081 //--------------------------------------------------------------------------------------------------
2082 LE_SHARED le_mrc_CellInfoRef_t ifgen_le_mrc_GetNextNeighborCellInfo
2083 (
2084  le_msg_SessionRef_t _ifgen_sessionRef,
2085  le_mrc_NeighborCellsRef_t ngbrCellsRef
2086  ///< [IN] Neighboring Cells reference.
2087 );
2088 
2089 //--------------------------------------------------------------------------------------------------
2090 /**
2091  * This function must be called to get the Physical Cell Identifier.
2092  *
2093  * @return The Physical Cell Identifier. UINT32_MAX value is returned if the Cell Identifier is not
2094  * available.
2095  *
2096  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2097  * function won't return.
2098  *
2099  * @note <b>multi-app safe</b>
2100  */
2101 //--------------------------------------------------------------------------------------------------
2102 LE_SHARED uint32_t ifgen_le_mrc_GetNeighborCellId
2103 (
2104  le_msg_SessionRef_t _ifgen_sessionRef,
2105  le_mrc_CellInfoRef_t ngbrCellInfoRef
2106  ///< [IN] Cell information reference.
2107 );
2108 
2109 //--------------------------------------------------------------------------------------------------
2110 /**
2111  * This function must be called to get the Location Area Code of a cell.
2112  *
2113  * @return The Location Area Code of a cell. UINT16_MAX value is returned if the value is not
2114  * available.
2115  *
2116  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2117  * function won't return.
2118  *
2119  * @note <b>multi-app safe</b>
2120  */
2121 //--------------------------------------------------------------------------------------------------
2122 LE_SHARED uint32_t ifgen_le_mrc_GetNeighborCellLocAreaCode
2123 (
2124  le_msg_SessionRef_t _ifgen_sessionRef,
2125  le_mrc_CellInfoRef_t ngbrCellInfoRef
2126  ///< [IN] Cell information reference.
2127 );
2128 
2129 //--------------------------------------------------------------------------------------------------
2130 /**
2131  * This function must be called to get the signal strength of a cell.
2132  *
2133  * @return The signal strength of a cell in dBm.
2134  *
2135  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2136  * function won't return.
2137  *
2138  * @note <b>multi-app safe</b>
2139  */
2140 //--------------------------------------------------------------------------------------------------
2141 LE_SHARED int32_t ifgen_le_mrc_GetNeighborCellRxLevel
2142 (
2143  le_msg_SessionRef_t _ifgen_sessionRef,
2144  le_mrc_CellInfoRef_t ngbrCellInfoRef
2145  ///< [IN] Cell information reference.
2146 );
2147 
2148 //--------------------------------------------------------------------------------------------------
2149 /**
2150  * This function must be called to get the Radio Access Technology of a cell.
2151  *
2152  * @return The Radio Access Technology of a cell.
2153  *
2154  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2155  * function won't return.
2156  *
2157  * @note <b>multi-app safe</b>
2158  */
2159 //--------------------------------------------------------------------------------------------------
2160 LE_SHARED le_mrc_Rat_t ifgen_le_mrc_GetNeighborCellRat
2161 (
2162  le_msg_SessionRef_t _ifgen_sessionRef,
2163  le_mrc_CellInfoRef_t ngbrCellInfoRef
2164  ///< [IN] Cell information reference.
2165 );
2166 
2167 //--------------------------------------------------------------------------------------------------
2168 /**
2169  * This function must be called to get the Ec/Io; the received energy per chip divided by the power
2170  * density in the band measured in dBm on the primary CPICH channel of serving cell (negative value)
2171  *
2172  * @return
2173  * - The Ec/Io of a cell given in dB with 1 decimal place. (only applicable for UMTS network).
2174  * - INT32_MAX when the value isn't available.
2175  *
2176  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2177  * function won't return.
2178  *
2179  * @note <b>multi-app safe</b>
2180  */
2181 //--------------------------------------------------------------------------------------------------
2182 LE_SHARED int32_t ifgen_le_mrc_GetNeighborCellUmtsEcIo
2183 (
2184  le_msg_SessionRef_t _ifgen_sessionRef,
2185  le_mrc_CellInfoRef_t ngbrCellInfoRef
2186  ///< [IN] Cell information reference.
2187 );
2188 
2189 //--------------------------------------------------------------------------------------------------
2190 /**
2191  * This function must be called to get the RSRP and RSRQ of the Intrafrequency of a LTE cell.
2192  *
2193  * @return
2194  * - LE_OK on success
2195  * - LE_FAULT on failure
2196  *
2197  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2198  * function won't return.
2199  *
2200  * @note <b>multi-app safe</b>
2201  */
2202 //--------------------------------------------------------------------------------------------------
2203 LE_SHARED le_result_t ifgen_le_mrc_GetNeighborCellLteIntraFreq
2204 (
2205  le_msg_SessionRef_t _ifgen_sessionRef,
2206  le_mrc_CellInfoRef_t ngbrCellInfoRef,
2207  ///< [IN] Cell information reference.
2208  int32_t* rsrqPtr,
2209  ///< [OUT] Reference Signal Received Quality value in dB with 1 decimal
2210  ///< place
2211  int32_t* rsrpPtr
2212  ///< [OUT] Reference Signal Receiver Power value in dBm with 1 decimal
2213  ///< place
2214 );
2215 
2216 //--------------------------------------------------------------------------------------------------
2217 /**
2218  * This function must be called to get the RSRP and RSRQ of the Interfrequency of a LTE cell.
2219  *
2220  * @return
2221  * - LE_OK on success
2222  * - LE_FAULT on failure
2223  *
2224  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2225  * function won't return.
2226  *
2227  * @note <b>multi-app safe</b>
2228  */
2229 //--------------------------------------------------------------------------------------------------
2230 LE_SHARED le_result_t ifgen_le_mrc_GetNeighborCellLteInterFreq
2231 (
2232  le_msg_SessionRef_t _ifgen_sessionRef,
2233  le_mrc_CellInfoRef_t ngbrCellInfoRef,
2234  ///< [IN] Cell information reference.
2235  int32_t* rsrqPtr,
2236  ///< [OUT] Reference Signal Received Quality value in dB with 1 decimal
2237  ///< place
2238  int32_t* rsrpPtr
2239  ///< [OUT] Reference Signal Receiver Power value in dBm with 1 decimal
2240  ///< place
2241 );
2242 
2243 //--------------------------------------------------------------------------------------------------
2244 /**
2245  * This function must be called to get the neighbor cell primary scrambling code.
2246  *
2247  * @return The neighbor cell primary scrambling code. UINT16_MAX value is returned if the value is
2248  * not available.
2249  *
2250  * @note <b>multi-app safe</b>
2251  */
2252 //--------------------------------------------------------------------------------------------------
2253 LE_SHARED uint16_t ifgen_le_mrc_GetNeighborCellScramblingCode
2254 (
2255  le_msg_SessionRef_t _ifgen_sessionRef,
2256  le_mrc_CellInfoRef_t ngbrCellInfoRef
2257  ///< [IN] Cell information reference
2258 );
2259 
2260 //--------------------------------------------------------------------------------------------------
2261 /**
2262  * This function must be called to measure the signal metrics. It creates and returns a reference
2263  * to the signal metrics.
2264  *
2265  * @return A reference to the signal metrics.
2266  * @return NULL if no signal metrics are available.
2267  *
2268  * @note <b>multi-app safe</b>
2269  */
2270 //--------------------------------------------------------------------------------------------------
2271 LE_SHARED le_mrc_MetricsRef_t ifgen_le_mrc_MeasureSignalMetrics
2272 (
2273  le_msg_SessionRef_t _ifgen_sessionRef
2274 );
2275 
2276 //--------------------------------------------------------------------------------------------------
2277 /**
2278  * This function must be called to delete the the signal metrics.
2279  *
2280  * @note On failure, the process exits, so you don't have to worry about checking the returned
2281  * reference for validity.
2282  *
2283  * @note <b>multi-app safe</b>
2284  */
2285 //--------------------------------------------------------------------------------------------------
2286 LE_SHARED void ifgen_le_mrc_DeleteSignalMetrics
2287 (
2288  le_msg_SessionRef_t _ifgen_sessionRef,
2289  le_mrc_MetricsRef_t MetricsRef
2290  ///< [IN] Signal metrics reference.
2291 );
2292 
2293 //--------------------------------------------------------------------------------------------------
2294 /**
2295  * This function returns the Radio Access Technology of the signal metrics.
2296  *
2297  * @return The Radio Access Technology of the signal measure.
2298  *
2299  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2300  * function won't return.
2301  *
2302  * @note <b>multi-app safe</b>
2303  */
2304 //--------------------------------------------------------------------------------------------------
2305 LE_SHARED le_mrc_Rat_t ifgen_le_mrc_GetRatOfSignalMetrics
2306 (
2307  le_msg_SessionRef_t _ifgen_sessionRef,
2308  le_mrc_MetricsRef_t MetricsRef
2309  ///< [IN] Signal metrics reference.
2310 );
2311 
2312 //--------------------------------------------------------------------------------------------------
2313 /**
2314  * This function returns the signal strength in dBm and the bit error rate measured on GSM network.
2315  *
2316  * @return
2317  * - LE_OK on success
2318  * - LE_FAULT on failure
2319  *
2320  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2321  * function won't return.
2322  *
2323  * @note <b>multi-app safe</b>
2324  */
2325 //--------------------------------------------------------------------------------------------------
2326 LE_SHARED le_result_t ifgen_le_mrc_GetGsmSignalMetrics
2327 (
2328  le_msg_SessionRef_t _ifgen_sessionRef,
2329  le_mrc_MetricsRef_t MetricsRef,
2330  ///< [IN] Signal metrics reference.
2331  int32_t* rssiPtr,
2332  ///< [OUT] Signal strength in dBm
2333  uint32_t* berPtr
2334  ///< [OUT] Bit error rate.
2335 );
2336 
2337 //--------------------------------------------------------------------------------------------------
2338 /**
2339  * This function returns the signal metrics measured on UMTS or TD-SCDMA networks.
2340  *
2341  * @return
2342  * - LE_OK on success
2343  * - LE_FAULT on failure
2344  *
2345  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2346  * function won't return.
2347  *
2348  * @note <b>multi-app safe</b>
2349  */
2350 //--------------------------------------------------------------------------------------------------
2351 LE_SHARED le_result_t ifgen_le_mrc_GetUmtsSignalMetrics
2352 (
2353  le_msg_SessionRef_t _ifgen_sessionRef,
2354  le_mrc_MetricsRef_t MetricsRef,
2355  ///< [IN] Signal metrics reference.
2356  int32_t* ssPtr,
2357  ///< [OUT] Signal strength in dBm
2358  uint32_t* blerPtr,
2359  ///< [OUT] Block error rate
2360  int32_t* ecioPtr,
2361  ///< [OUT] Ec/Io value in dB with 1 decimal place (-15 = -1.5 dB) (Negative
2362  ///< value)
2363  int32_t* rscpPtr,
2364  ///< [OUT] Measured RSCP in dBm (negative value, value INT32_MAX means
2365  ///< that RSCP is not available)
2366  int32_t* sinrPtr
2367  ///< [OUT] Measured SINR in dB (only applicable for TD-SCDMA network, value
2368  ///< INT32_MAX means that the SINR is not available)
2369 );
2370 
2371 //--------------------------------------------------------------------------------------------------
2372 /**
2373  * This function returns the signal metrics measured on LTE network.
2374  *
2375  * @return
2376  * - LE_OK on success
2377  * - LE_FAULT on failure
2378  * - sinrPtr and ioPtr return INT32_MAX when the value isn't available.
2379  *
2380  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2381  * function won't return.
2382  *
2383  * @note <b>multi-app safe</b>
2384  */
2385 //--------------------------------------------------------------------------------------------------
2386 LE_SHARED le_result_t ifgen_le_mrc_GetLteSignalMetrics
2387 (
2388  le_msg_SessionRef_t _ifgen_sessionRef,
2389  le_mrc_MetricsRef_t MetricsRef,
2390  ///< [IN] Signal metrics reference.
2391  int32_t* ssPtr,
2392  ///< [OUT] Signal strength in dBm
2393  uint32_t* blerPtr,
2394  ///< [OUT] Block error rate
2395  int32_t* rsrqPtr,
2396  ///< [OUT] RSRQ value in dB as measured by L1 with 1 decimal place
2397  int32_t* rsrpPtr,
2398  ///< [OUT] Current RSRP in dBm as measured by L1 with 1 decimal place
2399  int32_t* snrPtr
2400  ///< [OUT] SNR level in dB with 1 decimal place (15 = 1.5 dB)
2401 );
2402 
2403 //--------------------------------------------------------------------------------------------------
2404 /**
2405  * This function returns the signal metrics measured on CDMA network.
2406  *
2407  * @return
2408  * - LE_OK on success
2409  * - LE_FAULT on failure
2410  * - rscpPtr and sinrPtr return INT32_MAX when the value isn't available.
2411  *
2412  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2413  * function won't return.
2414  *
2415  * @note <b>multi-app safe</b>
2416  */
2417 //--------------------------------------------------------------------------------------------------
2418 LE_SHARED le_result_t ifgen_le_mrc_GetCdmaSignalMetrics
2419 (
2420  le_msg_SessionRef_t _ifgen_sessionRef,
2421  le_mrc_MetricsRef_t MetricsRef,
2422  ///< [IN] Signal metrics reference.
2423  int32_t* ssPtr,
2424  ///< [OUT] Signal strength in dBm
2425  uint32_t* erPtr,
2426  ///< [OUT] Frame/Packet error rate
2427  int32_t* ecioPtr,
2428  ///< [OUT] ECIO value in dB with 1 decimal place (-15 = -1.5 dB) (Negative
2429  ///< value)
2430  int32_t* sinrPtr,
2431  ///< [OUT] SINR level in dB with 1 decimal place, (only applicable for
2432  ///< 1xEV-DO, value INT32_MAX means that the value is not available)
2433  int32_t* ioPtr
2434  ///< [OUT] Received IO in dBm (only applicable for 1xEV-DO, value INT32_MAX
2435  ///< means that the value is not available)
2436 );
2437 
2438 //--------------------------------------------------------------------------------------------------
2439 /**
2440  * This function must be called to get the serving Cell Identifier.
2441  *
2442  * @return The Cell Identifier. UINT32_MAX value is returned if the value is not available.
2443  *
2444  * @note When the module is in UMTS network, the API returns the serving UTRAN Cell Identity (UC-Id)
2445  * which is used to identify the cell uniquely.
2446  * It is composed of the Controlling Radio Network Controller Identifier (CRNC-Id, 12 bits) and the
2447  * Cell Identifier (C-Id, 16 bits). (3GPP 25.401, section 6.1.5)
2448  * The Cell Identifier is coded in the lower 2 bytes of the 4 bytes UC-Id and the CRNC-Id is coded
2449  * in the upper 2 bytes.
2450  * Example: the API returns 7807609 -> 0x772279 (CRNC-Id = 0x77 , cell ID = 0x2279)
2451  *
2452  * @note <b>multi-app safe</b>
2453  */
2454 //--------------------------------------------------------------------------------------------------
2455 LE_SHARED uint32_t ifgen_le_mrc_GetServingCellId
2456 (
2457  le_msg_SessionRef_t _ifgen_sessionRef
2458 );
2459 
2460 //--------------------------------------------------------------------------------------------------
2461 /**
2462  * This function must be called to get the Location Area Code of the serving cell.
2463  *
2464  * @return The Location Area Code. UINT32_MAX value is returned if the value is not available.
2465  *
2466  * @note <b>multi-app safe</b>
2467  */
2468 //--------------------------------------------------------------------------------------------------
2469 LE_SHARED uint32_t ifgen_le_mrc_GetServingCellLocAreaCode
2470 (
2471  le_msg_SessionRef_t _ifgen_sessionRef
2472 );
2473 
2474 //--------------------------------------------------------------------------------------------------
2475 /**
2476  * This function must be called to get the Tracking Area Code of the serving cell (LTE only).
2477  *
2478  * @return The Tracking Area Code. UINT16_MAX value is returned if the value is not available.
2479  *
2480  * @note <b>multi-app safe</b>
2481  */
2482 //--------------------------------------------------------------------------------------------------
2483 LE_SHARED uint16_t ifgen_le_mrc_GetServingCellLteTracAreaCode
2484 (
2485  le_msg_SessionRef_t _ifgen_sessionRef
2486 );
2487 
2488 //--------------------------------------------------------------------------------------------------
2489 /**
2490  * This function must be called to get the serving cell primary scrambling code.
2491  *
2492  * @return The serving cell primary scrambling code. UINT16_MAX value is returned if the value is
2493  * not available.
2494  *
2495  * @note <b>multi-app safe</b>
2496  */
2497 //--------------------------------------------------------------------------------------------------
2498 LE_SHARED uint16_t ifgen_le_mrc_GetServingCellScramblingCode
2499 (
2500  le_msg_SessionRef_t _ifgen_sessionRef
2501 );
2502 
2503 //--------------------------------------------------------------------------------------------------
2504 /**
2505  * Get the Bit mask for 2G/3G Band capabilities.
2506  *
2507  * @return
2508  * - LE_OK on success
2509  * - LE_FAULT on failure
2510  * - LE_UNSUPPORTED Unable to get the 2G/3G Band capabilities on this platform
2511  *
2512  * @note <b>multi-app safe</b>
2513  */
2514 //--------------------------------------------------------------------------------------------------
2515 LE_SHARED le_result_t ifgen_le_mrc_GetBandCapabilities
2516 (
2517  le_msg_SessionRef_t _ifgen_sessionRef,
2518  le_mrc_BandBitMask_t* bandMaskPtrPtr
2519  ///< [OUT] Bit mask for 2G/3G Band capabilities.
2520 );
2521 
2522 //--------------------------------------------------------------------------------------------------
2523 /**
2524  * Get the Bit mask for LTE Band capabilities.
2525  *
2526  * @return
2527  * - LE_OK on success
2528  * - LE_FAULT on failure
2529  * - LE_UNSUPPORTED Unable to get the LTE Band capabilities on this platform
2530  *
2531  * @note <b>multi-app safe</b>
2532  */
2533 //--------------------------------------------------------------------------------------------------
2534 LE_SHARED le_result_t ifgen_le_mrc_GetLteBandCapabilities
2535 (
2536  le_msg_SessionRef_t _ifgen_sessionRef,
2537  le_mrc_LteBandBitMask_t* bandMaskPtrPtr
2538  ///< [OUT] Bit mask for LTE Band capabilities.
2539 );
2540 
2541 //--------------------------------------------------------------------------------------------------
2542 /**
2543  * Get the Bit mask for TD-SCDMA Band capabilities.
2544  *
2545  * @return
2546  * - LE_OK on success
2547  * - LE_FAULT on failure
2548  * - LE_UNSUPPORTED Unable to get the TD-SCDMA Band Capabilities on this platform
2549  *
2550  * @note <b>multi-app safe</b>
2551  */
2552 //--------------------------------------------------------------------------------------------------
2553 LE_SHARED le_result_t ifgen_le_mrc_GetTdScdmaBandCapabilities
2554 (
2555  le_msg_SessionRef_t _ifgen_sessionRef,
2556  le_mrc_TdScdmaBandBitMask_t* bandMaskPtrPtr
2557  ///< [OUT] Bit mask for TD-SCDMA Band capabilities.
2558 );
2559 
2560 //--------------------------------------------------------------------------------------------------
2561 /**
2562  * Add handler function for EVENT 'le_mrc_NetworkReject'
2563  *
2564  * Event to report network reject indication.
2565  *
2566  */
2567 //--------------------------------------------------------------------------------------------------
2568 LE_SHARED le_mrc_NetworkRejectHandlerRef_t ifgen_le_mrc_AddNetworkRejectHandler
2569 (
2570  le_msg_SessionRef_t _ifgen_sessionRef,
2572  ///< [IN]
2573  void* contextPtr
2574  ///< [IN]
2575 );
2576 
2577 //--------------------------------------------------------------------------------------------------
2578 /**
2579  * Remove handler function for EVENT 'le_mrc_NetworkReject'
2580  */
2581 //--------------------------------------------------------------------------------------------------
2582 LE_SHARED void ifgen_le_mrc_RemoveNetworkRejectHandler
2583 (
2584  le_msg_SessionRef_t _ifgen_sessionRef,
2586  ///< [IN]
2587 );
2588 
2589 //--------------------------------------------------------------------------------------------------
2590 /**
2591  * Add handler function for EVENT 'le_mrc_NetRegReject'
2592  *
2593  * Event to report network registration reject indication.
2594  * NetworkReject will be deprecated.
2595  */
2596 //--------------------------------------------------------------------------------------------------
2597 LE_SHARED le_mrc_NetRegRejectHandlerRef_t ifgen_le_mrc_AddNetRegRejectHandler
2598 (
2599  le_msg_SessionRef_t _ifgen_sessionRef,
2601  ///< [IN]
2602  void* contextPtr
2603  ///< [IN]
2604 );
2605 
2606 //--------------------------------------------------------------------------------------------------
2607 /**
2608  * Remove handler function for EVENT 'le_mrc_NetRegReject'
2609  */
2610 //--------------------------------------------------------------------------------------------------
2611 LE_SHARED void ifgen_le_mrc_RemoveNetRegRejectHandler
2612 (
2613  le_msg_SessionRef_t _ifgen_sessionRef,
2615  ///< [IN]
2616 );
2617 
2618 //--------------------------------------------------------------------------------------------------
2619 /**
2620  * Add handler function for EVENT 'le_mrc_JammingDetectionEvent'
2621  *
2622  * This event provides information on jamming detection.
2623  */
2624 //--------------------------------------------------------------------------------------------------
2625 LE_SHARED le_mrc_JammingDetectionEventHandlerRef_t ifgen_le_mrc_AddJammingDetectionEventHandler
2626 (
2627  le_msg_SessionRef_t _ifgen_sessionRef,
2629  ///< [IN]
2630  void* contextPtr
2631  ///< [IN]
2632 );
2633 
2634 //--------------------------------------------------------------------------------------------------
2635 /**
2636  * Remove handler function for EVENT 'le_mrc_JammingDetectionEvent'
2637  */
2638 //--------------------------------------------------------------------------------------------------
2639 LE_SHARED void ifgen_le_mrc_RemoveJammingDetectionEventHandler
2640 (
2641  le_msg_SessionRef_t _ifgen_sessionRef,
2643  ///< [IN]
2644 );
2645 
2646 //--------------------------------------------------------------------------------------------------
2647 /**
2648  * Start the jamming detection monitoring.
2649  *
2650  * @warning The jamming detection feature might be limited by the platform.
2651  * Please refer to the platform documentation @ref platformConstraintsMdc.
2652  *
2653  * @return
2654  * - LE_OK The function succeeded.
2655  * - LE_FAULT The function failed.
2656  * - LE_DUPLICATE The feature is already activated and an activation is requested.
2657  * - LE_UNSUPPORTED The feature is not supported.
2658  */
2659 //--------------------------------------------------------------------------------------------------
2660 LE_SHARED le_result_t ifgen_le_mrc_StartJammingDetection
2661 (
2662  le_msg_SessionRef_t _ifgen_sessionRef
2663 );
2664 
2665 //--------------------------------------------------------------------------------------------------
2666 /**
2667  * Stop the jamming detection monitoring.
2668  *
2669  * @return
2670  * - LE_OK The function succeeded.
2671  * - LE_FAULT The function failed or the application did not start the jamming detection.
2672  * - LE_UNSUPPORTED The feature is not supported.
2673  */
2674 //--------------------------------------------------------------------------------------------------
2675 LE_SHARED le_result_t ifgen_le_mrc_StopJammingDetection
2676 (
2677  le_msg_SessionRef_t _ifgen_sessionRef
2678 );
2679 
2680 //--------------------------------------------------------------------------------------------------
2681 /**
2682  * Set the SAR backoff state
2683  *
2684  * @warning The SAR backoff feature might be unsupported by some platforms.
2685  * Please refer to the platform documentation @ref platformConstraintsMdc.
2686  *
2687  * @return
2688  * - LE_OK The function succeeded.
2689  * - LE_FAULT The function failed.
2690  * - LE_UNSUPPORTED The feature is not supported.
2691  * - LE_OUT_OF_RANGE The provided index is out of range.
2692  */
2693 //--------------------------------------------------------------------------------------------------
2694 LE_SHARED le_result_t ifgen_le_mrc_SetSarBackoffState
2695 (
2696  le_msg_SessionRef_t _ifgen_sessionRef,
2697  uint8_t state
2698  ///< [IN] New state to enable. By default, SAR is disabled (state = 0).
2699  ///< Refer to @ref platformConstraitsMdc for the number of maximum states.
2700 );
2701 
2702 //--------------------------------------------------------------------------------------------------
2703 /**
2704  * Get the SAR backoff state
2705  *
2706  * @warning The SAR backoff feature might be unsupported by some platforms.
2707  * Please refer to the platform documentation @ref platformConstraintsMdc.
2708  *
2709  * @return
2710  * - LE_OK The function succeeded.
2711  * - LE_FAULT The function failed.
2712  * - LE_UNSUPPORTED The feature is not supported.
2713  */
2714 //--------------------------------------------------------------------------------------------------
2715 LE_SHARED le_result_t ifgen_le_mrc_GetSarBackoffState
2716 (
2717  le_msg_SessionRef_t _ifgen_sessionRef,
2718  uint8_t* statePtr
2719  ///< [OUT] Current state. By default, SAR is disabled (state = 0).
2720  ///< Refer to @ref platformConstraitsMdc for the number of maximum states.
2721 );
2722 
2723 //--------------------------------------------------------------------------------------------------
2724 /**
2725  * Get the serving cell radio frequency channel number. The EARFCN is in the range from 0 to 262143.
2726  *
2727  * @return The serving cell frequency channel number. UINT32_MAX value is returned if the value is
2728  * not available.
2729  */
2730 //--------------------------------------------------------------------------------------------------
2731 LE_SHARED uint32_t ifgen_le_mrc_GetServingCellEarfcn
2732 (
2733  le_msg_SessionRef_t _ifgen_sessionRef
2734 );
2735 
2736 //--------------------------------------------------------------------------------------------------
2737 /**
2738  * Get the neighbor cell radio frequency channel number. The EARFCN is in the range from 0
2739  * to 262143.
2740  *
2741  * @return The neighbor cell frequency channel number. UINT32_MAX value is returned if the value is
2742  * not available.
2743  */
2744 //--------------------------------------------------------------------------------------------------
2745 LE_SHARED uint32_t ifgen_le_mrc_GetNeighborCellEarfcn
2746 (
2747  le_msg_SessionRef_t _ifgen_sessionRef,
2748  le_mrc_CellInfoRef_t ngbrCellInfoRef
2749  ///< [IN] The cell information reference
2750 );
2751 
2752 //--------------------------------------------------------------------------------------------------
2753 /**
2754  * Get the serving cell timing advance index value. Timing advance index value is in the range
2755  * from 0 to 1280.
2756  *
2757  * @return The serving cell timing advance index value. UINT32_MAX value is returned if the value
2758  * is not available.
2759  */
2760 //--------------------------------------------------------------------------------------------------
2761 LE_SHARED uint32_t ifgen_le_mrc_GetServingCellTimingAdvance
2762 (
2763  le_msg_SessionRef_t _ifgen_sessionRef
2764 );
2765 
2766 //--------------------------------------------------------------------------------------------------
2767 /**
2768  * Get the physical serving cell Id. The physical cell Id is in the range from 0 to 503.
2769  *
2770  * @return The physical serving cell Id. UINT16_MAX value is returned if the value is
2771  * not available.
2772  */
2773 //--------------------------------------------------------------------------------------------------
2774 LE_SHARED uint16_t ifgen_le_mrc_GetPhysicalServingLteCellId
2775 (
2776  le_msg_SessionRef_t _ifgen_sessionRef
2777 );
2778 
2779 //--------------------------------------------------------------------------------------------------
2780 /**
2781  * Get the neighbor physical cell Id. The physical cell Id is in the range from 0 to 503.
2782  *
2783  * @return The physical serving cell Id. UINT16_MAX value is returned if the value is
2784  * not available.
2785  */
2786 //--------------------------------------------------------------------------------------------------
2787 LE_SHARED uint16_t ifgen_le_mrc_GetPhysicalNeighborLteCellId
2788 (
2789  le_msg_SessionRef_t _ifgen_sessionRef,
2790  le_mrc_CellInfoRef_t ngbrCellInfoRef
2791  ///< [IN] The cell information reference
2792 );
2793 
2794 //--------------------------------------------------------------------------------------------------
2795 /**
2796  * Get the Base Station Identity Code (BSIC) for the serving cell on GSM network.
2797  *
2798  * @return LE_OK The function succeeded.
2799  * @return LE_BAD_PARAMETER Bad parameter passed to the function
2800  * @return LE_FAULT The function failed.
2801  * @return LE_UNAVAILABLE The BSIC is not available. The BSIC value is set to UINT8_MAX.
2802  */
2803 //--------------------------------------------------------------------------------------------------
2804 LE_SHARED le_result_t ifgen_le_mrc_GetServingCellGsmBsic
2805 (
2806  le_msg_SessionRef_t _ifgen_sessionRef,
2807  uint8_t* BSICPtr
2808  ///< [OUT] The BSIC value
2809 );
2810 
2811 //--------------------------------------------------------------------------------------------------
2812 /**
2813  * Get the Base Station Identity Code (BSIC) for a neighbour cell on GSM network.
2814  *
2815  * @return LE_OK The function succeeded.
2816  * @return LE_BAD_PARAMETER Bad parameter passed to the function
2817  * @return LE_FAULT The function failed.
2818  * @return LE_UNAVAILABLE The BSIC is not available. The BSIC value is set to UINT8_MAX.
2819  */
2820 //--------------------------------------------------------------------------------------------------
2821 LE_SHARED le_result_t ifgen_le_mrc_GetNeighborCellGsmBsic
2822 (
2823  le_msg_SessionRef_t _ifgen_sessionRef,
2824  le_mrc_CellInfoRef_t ngbrCellInfoRef,
2825  ///< [IN] The cell information reference.
2826  uint8_t* bsicPtr
2827  ///< [OUT] The BSIC value
2828 );
2829 
2830 //--------------------------------------------------------------------------------------------------
2831 /**
2832  * Get the LTE Data modulation and coding scheme for the physical multicast channel.
2833  *
2834  * @return LE_OK The function succeeded.
2835  * @return LE_FAULT The function failed.
2836  * @return LE_UNAVAILABLE The mcs is not available. The mcs value is set to UINT8_MAX.
2837  *
2838  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2839  * function won't return.
2840  */
2841 //--------------------------------------------------------------------------------------------------
2842 LE_SHARED le_result_t ifgen_le_mrc_GetLteEmbmsInfo
2843 (
2844  le_msg_SessionRef_t _ifgen_sessionRef,
2845  uint8_t* mcsPtr
2846  ///< [OUT] The mcs value
2847 );
2848 
2849 //--------------------------------------------------------------------------------------------------
2850 /**
2851  * Get the TX power
2852  *
2853  * @return LE_OK The function succeeded.
2854  * @return LE_FAULT The function failed.
2855  * @return LE_UNAVAILABLE The TX power is not available. The TX power value is set to INT32_MAX.
2856  *
2857  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2858  * function won't return.
2859  */
2860 //--------------------------------------------------------------------------------------------------
2861 LE_SHARED le_result_t ifgen_le_mrc_GetTxPowerInfo
2862 (
2863  le_msg_SessionRef_t _ifgen_sessionRef,
2864  int32_t* tx_pwrPtr
2865  ///< [OUT] The TX power value
2866 );
2867 
2868 //--------------------------------------------------------------------------------------------------
2869 /**
2870  * This command gets LTE CQI
2871  *
2872  * @return
2873  * - LE_OK The function succeeded.
2874  * - LE_FAULT The function failed.
2875  * - LE_UNSUPPORTED The feature is not supported.
2876  *
2877  * @note If the caller is passing a bad pointer into this function, it's a fatal error, the
2878  * function won't return.
2879  */
2880 //--------------------------------------------------------------------------------------------------
2881 LE_SHARED le_result_t ifgen_le_mrc_GetLteCqi
2882 (
2883  le_msg_SessionRef_t _ifgen_sessionRef,
2884  uint32_t* cqiPtr
2885  ///< [OUT] The CQI value
2886 );
2887 
2888 //--------------------------------------------------------------------------------------------------
2889 /**
2890  * Enable or disable monitoring on Rank change indicate . By default, monitoring is disabled.
2891  *
2892  * @return
2893  * - LE_OK The function succeeded.
2894  * - LE_FAULT The function failed.
2895  * - LE_UNSUPPORTED The feature is not supported.
2896  */
2897 //--------------------------------------------------------------------------------------------------
2898 LE_SHARED le_result_t ifgen_le_mrc_SetRankChangeMonitoring
2899 (
2900  le_msg_SessionRef_t _ifgen_sessionRef,
2901  bool enable
2902  ///< [IN] If monitoring should be enabled
2903 );
2904 /** @} **/
2905 #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:287
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:545
Definition: le_mrc_common.h:341
void(* le_mrc_RankChangeHandlerFunc_t)(int32_t rank, void *contextPtr)
Definition: le_mrc_common.h:573
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:695
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:647
Definition: le_mrc_common.h:464
struct le_mrc_JammingDetectionEventHandler * le_mrc_JammingDetectionEventHandlerRef_t
Definition: le_mrc_common.h:536
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:587
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:616
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:682
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:520
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
struct le_mrc_RankChangeHandler * le_mrc_RankChangeHandlerRef_t
Definition: le_mrc_common.h:496
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:632
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:559
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:664
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:528
void(* le_mrc_SignalStrengthChangeHandlerFunc_t)(int32_t ss, void *contextPtr)
Definition: le_mrc_common.h:601
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:504
Packet-switched only.
Definition: le_mrc_common.h:449
struct le_mrc_SignalStrengthChangeHandler * le_mrc_SignalStrengthChangeHandlerRef_t
Definition: le_mrc_common.h:512
le_onoff_t
Definition: le_basics.h:85
Synch failure.
Definition: le_mrc_common.h:404