blob: e878e6bbf22bb576248fbc79cb802f7ee7d0e283 [file] [log] [blame]
b.liu4e243dc2023-11-27 11:20:00 +08001#ifndef LYNQ_NETWORK_H
2#define LYNQ_NETWORK_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6#define MODEM_GEN97 1
7#define CELLINFO_MAX_NUM 10
8#define LY_RECOVER_TIMER_INTERVAL 128
9#define MAX_CELLINFO_ITEM_NUMBER 32
10#define MAX_OOS_CFG_ITEM_NUMBER 32
11/*T800 platform support gsm,wcdma lte,nr */
12typedef struct{
13 int gw_sig_valid; /*1 valid,1 invalid*/
14 int rssi; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
15 int wcdma_sig_valid;/*1 valid,0 invalid*/
16 int wcdma_signalstrength;
17 int rscp; /* The Received Signal Code Power in dBm multipled by -1.
18 * Range : 25 to 120
19 * INT_MAX: 0x7FFFFFFF denotes invalid value.
20 * Reference: 3GPP TS 25.123, section 9.1.1.1 */
21 int ecno; /* Valid values are positive integers. This value is the actual Ec/Io multiplied
22 * by -10. Example: If the actual Ec/Io is -12.5 dB, then this response value
23 * will be 125.*/
24 int lte_sig_valid;/*1 valid,0 invalid*/
25 int lte_signalstrength;
26 int rsrp; /* The current Reference Signal Receive Power in dBm multipled by -1.
27 * Range: 44 to 140 dBm
28 * INT_MAX: 0x7FFFFFFF denotes invalid value.
29 * Reference: 3GPP TS 36.133 9.1.4 */
30 int rsrq; /* The current Reference Signal Receive Quality in dB multiplied by -1.
31 * Range: 20 to 3 dB.
32 * INT_MAX: 0x7FFFFFFF denotes invalid value.
33 * Reference: 3GPP TS 36.133 9.1.7 */
34 int rssnr; /* The current reference signal signal-to-noise ratio in 0.1 dB units.
35 * Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).
36 * INT_MAX : 0x7FFFFFFF denotes invalid value.
37 * Reference: 3GPP TS 36.101 8.1.1 */
38 int nr_sig_valid;/*1 valid,0 invalid*/
39 int ssRsrp; /* SS(Synchronization Signal) reference signal received power, multipled by -1.
40 * Reference: 3GPP TS 38.215.
41 * Range [44, 140], INT_MAX means invalid/unreported.*/
42 int ssRsrq; /* SS reference signal received quality, multipled by -1.
43 * Reference: 3GPP TS 38.215.
44 * Range [3, 20], INT_MAX means invalid/unreported.*/
45 int ssSinr; /* SS signal-to-noise and interference ratio.
46 * Reference: 3GPP TS 38.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1.
47 * Range [-23, 40], INT_MAX means invalid/unreported.*/
48 int csiRsrp; /* CSI reference signal received power, multipled by -1.
49 * Reference: 3GPP TS 38.215.
50 * Range [44, 140], INT_MAX means invalid/unreported.*/
51 int csiRsrq; /* CSI reference signal received quality, multipled by -1.
52 * Reference: 3GPP TS 38.215.
53 * Range [3, 20], INT_MAX means invalid/unreported.*/
54 int csiSinr; /* CSI signal-to-noise and interference ratio.
55 * Reference: 3GPP TS 138.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1.
56 * Range [-23, 40], INT_MAX means invalid/unreported.*/
57}signalStrength_t;
58
59typedef enum {
60 NETWORK_RADIO_ON_TYPE_CFUN_0=0,
61 NETWORK_RADIO_ON_TYPE_NORMAL_MODE=1,
62 NETWORK_RADIO_ON_TYPE_FLIGHT_MODE=4,
63}lynq_network_radio_on_type;
64
65int lynq_network_init(int utoken);
66int lynq_network_deinit(void);
67int lynq_query_operater(char *OperatorFN,char *OperatorSH,char *MccMnc);
68int lynq_query_network_selection_mode(int *netselMode);
69int lynq_set_network_selection_mode(const char *mode,const char* mccmnc);
70int lynq_query_available_network(char *OperatorFN,char *OperatorSH,char *MccMnc,char * NetStatus);
71int lynq_query_registration_state(const char *type,int* regState,int* imsRegState,char * LAC,char * CID,int *netType,int *radioTechFam,int *netRejected);
72int lynq_query_prefferred_networktype(int *preNetType);
73int lynq_set_prefferred_networktype(const int preffertype);
74int lynq_query_cell_info(uint64_t cellinfo[CELLINFO_MAX_NUM],int tac[CELLINFO_MAX_NUM],int earfcn[CELLINFO_MAX_NUM],int * realNum);
75int lynq_set_unsol_cell_info_listrate(const int rate);
76int lynq_set_band_mode(const int bandmode);
77int lynq_query_available_bandmode(int availBanMode[]);
78int lynq_radio_on(const lynq_network_radio_on_type type);
79int lynq_query_radio_state(int *radio_state);
80int lynq_query_radio_tech(int* radioTech);
81int lynq_solicited_signal_strength(signalStrength_t *solSigStren);
82int lynq_set_ims(const int ims_mode);
83int lynq_wait_signalchanges(int *handle);
84int lynq_get_urc_info(const int handle,signalStrength_t *solSigStren,int *slot_id);
85
86typedef enum {
87 LYNQ_CELL_INFO_TYPE_GSM = 2,
88 LYNQ_CELL_INFO_TYPE_WCDMA = 3,
89 LYNQ_CELL_INFO_TYPE_LTE = 4,
90 LYNQ_CELL_INFO_TYPE_NR = 5
91} lynq_network_cell_info_type;
92
93int lynq_query_serve_cell_info(int serve_cell_info[MAX_CELLINFO_ITEM_NUMBER], int * valid_number);
94
95typedef enum {
96 NETWORK_STATE_BUFFER_TYPE_VOICE_REG,
97 NETWORK_STATE_BUFFER_TYPE_DATA_REG,
98 NETWORK_STATE_BUFFER_TYPE_IMS_REG,
99 NETWORK_STATE_BUFFER_TYPE_MAX,
100}lynq_network_state_buffer_type;
101int lynq_set_state_buffer_valid_period_of_network(lynq_network_state_buffer_type type,int valid_period);
102int lynq_get_state_buffer_valid_period_of_network(lynq_network_state_buffer_type type);
103#ifdef MODEM_GEN97
104/**@brief set or get OOS recover timer interval
105* @param mode [IN] <mode>:
106* 0:set
107* 1:get
108* @param interval [IN] <interval>: the recovery timer interval.
109* field:
110* T1,T2,...,T23:integer value 0~0xFFFFFFFF
111* The length of time in seconds.
112* defualt interval: 20,20,60,60,60,60,90,90,90,90,90,90,180,180,180,180,180,180,360,360,360,360,360
113* @param result [OUT] <result>: the recovery timer interval,when the mode is 1, this parameter is valid.
114
115* @return
116* 0:success
117* other:failure
118*/
119int lynq_oos_recover_timer_interval(int mode, char interval[LY_RECOVER_TIMER_INTERVAL],char result[LY_RECOVER_TIMER_INTERVAL]);
120/**@brief set deep sleep recover timer interval
121
122* @param recovery_threshold [IN] <recovery_threshold>: valid range 2-10 //After performing several rounds of normal recovery, deep sleep mode optimization will be applied
123
124* @param fullband_timer [IN] <fullband_timer>:valid range 90-360 //fullband intervarl length in deep sleep mode
125
126* @param sniffer_timer [IN] <sniffer_timer>:valid range 10-60 // sniffe intervarl length in deep sleep mode.
127
128* @param inactive_mode [IN] <inactive_mode>:
129* 0 Exit inactive mode
130* 1 enter inactive mode
131
132* @return
133* 0:success
134* other:failure
135*/
136int lynq_oos_deep_sleep_recover_timer_interval(int recovery_threshold,int fullband_timer,int sniffer_timer,int inactive_mode);
137#endif
138#if (defined MOBILETEK_TARGET_PLATFORM_T106) || (defined MODEM_GEN97)
139int lynq_set_oos_net_scan_cfg(int config_list[MAX_OOS_CFG_ITEM_NUMBER], int valid_num);
140int lynq_get_oos_net_scan_cfg(int config_list[MAX_OOS_CFG_ITEM_NUMBER], int* valid_num);
141#endif
142void lynq_set_test_mode(const int test_mode);
143#ifdef __cplusplus
144}
145#endif
146
147#endif