b.liu | 4e243dc | 2023-11-27 11:20:00 +0800 | [diff] [blame^] | 1 | #ifndef LYNQ_NETWORK_H
|
| 2 | #define LYNQ_NETWORK_H
|
| 3 | #ifdef __cplusplus
|
| 4 | extern "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 */
|
| 12 | typedef 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 |
|
| 59 | typedef 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 |
|
| 65 | int lynq_network_init(int utoken);
|
| 66 | int lynq_network_deinit(void);
|
| 67 | int lynq_query_operater(char *OperatorFN,char *OperatorSH,char *MccMnc);
|
| 68 | int lynq_query_network_selection_mode(int *netselMode);
|
| 69 | int lynq_set_network_selection_mode(const char *mode,const char* mccmnc);
|
| 70 | int lynq_query_available_network(char *OperatorFN,char *OperatorSH,char *MccMnc,char * NetStatus);
|
| 71 | int lynq_query_registration_state(const char *type,int* regState,int* imsRegState,char * LAC,char * CID,int *netType,int *radioTechFam,int *netRejected);
|
| 72 | int lynq_query_prefferred_networktype(int *preNetType);
|
| 73 | int lynq_set_prefferred_networktype(const int preffertype);
|
| 74 | int lynq_query_cell_info(uint64_t cellinfo[CELLINFO_MAX_NUM],int tac[CELLINFO_MAX_NUM],int earfcn[CELLINFO_MAX_NUM],int * realNum);
|
| 75 | int lynq_set_unsol_cell_info_listrate(const int rate);
|
| 76 | int lynq_set_band_mode(const int bandmode);
|
| 77 | int lynq_query_available_bandmode(int availBanMode[]);
|
| 78 | int lynq_radio_on(const lynq_network_radio_on_type type);
|
| 79 | int lynq_query_radio_state(int *radio_state);
|
| 80 | int lynq_query_radio_tech(int* radioTech);
|
| 81 | int lynq_solicited_signal_strength(signalStrength_t *solSigStren);
|
| 82 | int lynq_set_ims(const int ims_mode);
|
| 83 | int lynq_wait_signalchanges(int *handle);
|
| 84 | int lynq_get_urc_info(const int handle,signalStrength_t *solSigStren,int *slot_id);
|
| 85 |
|
| 86 | typedef 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 |
|
| 93 | int lynq_query_serve_cell_info(int serve_cell_info[MAX_CELLINFO_ITEM_NUMBER], int * valid_number);
|
| 94 |
|
| 95 | typedef 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;
|
| 101 | int lynq_set_state_buffer_valid_period_of_network(lynq_network_state_buffer_type type,int valid_period);
|
| 102 | int 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 | */
|
| 119 | int 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 | */
|
| 136 | int 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)
|
| 139 | int lynq_set_oos_net_scan_cfg(int config_list[MAX_OOS_CFG_ITEM_NUMBER], int valid_num);
|
| 140 | int lynq_get_oos_net_scan_cfg(int config_list[MAX_OOS_CFG_ITEM_NUMBER], int* valid_num);
|
| 141 | #endif
|
| 142 | void lynq_set_test_mode(const int test_mode);
|
| 143 | #ifdef __cplusplus
|
| 144 | }
|
| 145 | #endif
|
| 146 |
|
| 147 | #endif
|