blob: ca0874ab00c6576069fa5ab09dac7ee88fec5762 [file] [log] [blame]
b.liu8583dce2024-04-03 13:30:08 +08001#include <stdlib.h>
2#include <stdio.h>
3#include <stdint.h>
4#include <string.h>
5#include <dlfcn.h>
6#include <sys/types.h>
7//#include <pthread.h>
8#include <unistd.h>
9#include "lynq_qser_network.h"
10
11#ifndef LOG_TAG
12#define LOG_TAG "QSER_NETWORK_DEMO"
13#endif
14
r.xiaofca7c472024-04-24 01:00:23 -070015#ifdef __cplusplus
16extern "C" {
17#endif
18
b.liu8583dce2024-04-03 13:30:08 +080019void *handle_network;
20
r.xiaoba8483c2024-04-14 18:53:10 -070021int (*qser_nw_client_init_p)(nw_client_handle_type * h_nw);
b.liu8583dce2024-04-03 13:30:08 +080022int (*qser_nw_client_deinit_p)(nw_client_handle_type h_nw);
23int (*qser_nw_set_config_p)(nw_client_handle_type h_nw, QSER_NW_CONFIG_INFO_T *pt_info);
24int (*qser_nw_get_operator_name_p)(nw_client_handle_type h_nw, QSER_NW_OPERATOR_NAME_INFO_T *pt_info );
25int (*qser_nw_get_reg_status_p)(nw_client_handle_type h_nw, QSER_NW_REG_STATUS_INFO_T *pt_info);
26int (*qser_nw_add_rx_msg_handler_p)(nw_client_handle_type h_nw, QSER_NW_RxMsgHandlerFunc_t handlerPtr,void* contextPtr);
27int (*qser_nw_get_signal_strength_p)(nw_client_handle_type h_nw,QSER_NW_SIGNAL_STRENGTH_INFO_T *pt_info);
28int (*qser_nw_set_oos_config_p)(nw_client_handle_type h_nw, QSER_NW_OOS_CONFIG_INFO_T *pt_info);
29int (*qser_nw_get_oos_config_p)(nw_client_handle_type h_nw, QSER_NW_OOS_CONFIG_INFO_T *pt_info);
30int (*qser_nw_set_rf_mode_p) (nw_client_handle_type h_nw,E_QSER_NW_RF_MODE_TYPE_T rf_mode);
31int (*qser_nw_get_rf_mode_p) (nw_client_handle_type h_nw,E_QSER_NW_RF_MODE_TYPE_T* rf_mode);
32int (*qser_nw_set_ims_enable_p) (nw_client_handle_type h_nw,E_QSER_NW_IMS_MODE_TYPE_T ims_mode);
33int (*qser_nw_get_ims_reg_status_p) (nw_client_handle_type h_nw, QSER_NW_IMS_REG_STATUS_INFO_T *pt_info);
34
35
36
37int getFunc()
38{
39 const char *lynq_libpath_network = "/lib/liblynq-qser-network.so";
40
41 handle_network = dlopen(lynq_libpath_network,RTLD_NOW);
42 if(NULL == handle_network)
43 {
44 printf("dlopen lynq_libpath_network fail:%s",dlerror());
45 exit(EXIT_FAILURE);
46 }
47
r.xiaoba8483c2024-04-14 18:53:10 -070048 qser_nw_client_init_p = (int (*)(nw_client_handle_type * h_nw))dlsym(handle_network,"qser_nw_client_init");
b.liu8583dce2024-04-03 13:30:08 +080049 qser_nw_client_deinit_p = (int (*)(nw_client_handle_type h_nw))dlsym(handle_network,"qser_nw_client_deinit");
50 qser_nw_set_config_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_CONFIG_INFO_T *pt_info))dlsym(handle_network,"qser_nw_set_config");
51 qser_nw_get_operator_name_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_OPERATOR_NAME_INFO_T *pt_info ))dlsym(handle_network,"qser_nw_get_operator_name");
52 qser_nw_get_reg_status_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_REG_STATUS_INFO_T *pt_info))dlsym(handle_network,"qser_nw_get_reg_status");
53 qser_nw_get_signal_strength_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_SIGNAL_STRENGTH_INFO_T *pt_info))dlsym(handle_network,"qser_nw_get_signal_strength");
54 qser_nw_add_rx_msg_handler_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_RxMsgHandlerFunc_t handlerPtr,void* contextPtr))dlsym(handle_network,"qser_nw_add_rx_msg_handler");
55 qser_nw_get_oos_config_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_OOS_CONFIG_INFO_T *pt_info))dlsym(handle_network,"qser_nw_get_oos_config");
56 qser_nw_set_oos_config_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_OOS_CONFIG_INFO_T *pt_info))dlsym(handle_network,"qser_nw_set_oos_config");
57 qser_nw_set_rf_mode_p = (int (*)(nw_client_handle_type h_nw, E_QSER_NW_RF_MODE_TYPE_T rf_mode))dlsym(handle_network,"qser_nw_set_rf_mode");
58 qser_nw_get_rf_mode_p = (int (*)(nw_client_handle_type h_nw, E_QSER_NW_RF_MODE_TYPE_T* rf_mode))dlsym(handle_network,"qser_nw_get_rf_mode");
59 qser_nw_set_ims_enable_p = (int (*)(nw_client_handle_type h_nw, E_QSER_NW_IMS_MODE_TYPE_T ims_mode))dlsym(handle_network,"qser_nw_set_ims_enable");
60 qser_nw_get_ims_reg_status_p = (int (*)(nw_client_handle_type h_nw, QSER_NW_IMS_REG_STATUS_INFO_T *pt_info))dlsym(handle_network,"qser_nw_get_ims_reg_status");
61
62 if(qser_nw_client_deinit_p==NULL || qser_nw_client_init_p==NULL || qser_nw_set_config_p ==NULL ||
63 qser_nw_get_operator_name_p == NULL || qser_nw_get_reg_status_p ==NULL || qser_nw_add_rx_msg_handler_p==NULL ||
64 qser_nw_set_rf_mode_p == NULL || qser_nw_get_rf_mode_p == NULL || qser_nw_get_oos_config_p == NULL || qser_nw_set_oos_config_p == NULL ||
65 qser_nw_set_ims_enable_p == NULL || qser_nw_get_ims_reg_status_p == NULL)
66 {
67 printf("get func pointer null");
68 exit(EXIT_FAILURE);
69 }
70 return 0;
71}
72
73static int test_nw(void);
74
75int main(int argc, char const *argv[])
76{
77 printf("--------->[%s,%d] start \n",__FUNCTION__,__LINE__);
78
79 if(getFunc()==0)
80 {
81 test_nw();
82 }
83
84 return 0;
85}
86
87typedef struct
88{
89 int cmdIdx;
90 char *funcName;
91} st_api_test_case;
92
93st_api_test_case at_nw_testlist[] =
94{
95 {0, "qser_nw_client_init"},
96 {1, "qser_nw_set_config"},
97 {2, "qser_nw_get_operator_name"},
98 {3, "qser_nw_get_reg_status"},
99 {4, "qser_nw_add_rx_msg_handler"},
100 {5, "qser_nw_get_signal_strength"},
101 {6, "qser_nw_set_oos_config"},
102 {7, "qser_nw_get_oos_config"},
103 {8, "qser_nw_set_rf_mode"},
104 {9, "qser_nw_get_rf_mode"},
105 {10, "qser_nw_set_ims_enable"},
106 {11, "qser_nw_get_ims_reg_status"},
107 {12, "qser_nw_client_deinit"},
108 {-1, "quit"}
109};
110
111typedef int (*TEST)(void);
112
113typedef struct
114{
115 char *group_name;
116 st_api_test_case *test_cases;
117 TEST pf_test;
118} func_api_test_t;
119
120func_api_test_t t_nw_test = {"nw", at_nw_testlist, test_nw};
121
122void show_group_help(func_api_test_t *pt_test)
123{
124 int i;
125
126 printf("Group Name:%s, Supported test cases:\n", pt_test->group_name);
127 for(i = 0; ; i++)
128 {
129 if(pt_test->test_cases[i].cmdIdx == -1)
130 {
131 break;
132 }
133 printf("%d:\t%s\n", pt_test->test_cases[i].cmdIdx, pt_test->test_cases[i].funcName);
134 }
135}
136
137static nw_client_handle_type h_nw = 0;
138
139char *tech_domain[] = {"NONE", "3GPP", "3GPP2"};
140char *radio_tech[] = {"unknown",
141 "TD_SCDMA", "GSM", "HSPAP", "LTE", "EHRPD", "EVDO_B",
142 "HSPA", "HSUPA", "HSDPA", "EVDO_A", "EVDO_0", "1xRTT",
143 "IS95B", "IS95A", "UMTS", "EDGE", "GPRS", "NONE"};
144
145void nw_event_ind_handler (
146 nw_client_handle_type h_nw,
147 u_int32_t ind_flag,
148 void *ind_msg_buf,
149 u_int32_t ind_msg_len,
150 void *contextPtr)
151{
152 switch(ind_flag) {
153 case NW_IND_VOICE_REG_EVENT_IND_FLAG:
154 {
155 QSER_NW_VOICE_REG_EVENT_IND_T *ind = (QSER_NW_VOICE_REG_EVENT_IND_T*)ind_msg_buf;
156 printf("Recv event indication : VOICE REG EVENT\n");
157
158 if(ind==NULL)
159 {
160 printf("ind is NULL\n");
161 break;
162 }
163
164 if(ind->registration_valid)
165 {
166 printf("voice_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n",
167 tech_domain[ind->registration.tech_domain],
168 radio_tech[ind->registration.radio_tech],
169 ind->registration.roaming,
170 ind->registration.registration_state);
171 }
172 if(ind->registration_details_3gpp_valid)
173 {
174 printf("voice_registration_details_3gpp: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, cid=0x%X, lac=%d, psc=%d, tac=%d\n",
175 tech_domain[ind->registration_details_3gpp.tech_domain],
176 radio_tech[ind->registration_details_3gpp.radio_tech],
177 ind->registration_details_3gpp.mcc,
178 ind->registration_details_3gpp.mnc,
179 ind->registration_details_3gpp.roaming,
180 ind->registration_details_3gpp.forbidden,
181 ind->registration_details_3gpp.cid,
182 ind->registration_details_3gpp.lac,
183 ind->registration_details_3gpp.psc,
184 ind->registration_details_3gpp.tac);
185 }
186
187 if(ind->registration_details_3gpp2_valid)
188 {
189 printf("voice_registration_details_3gpp2: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, sid=%d, nid=%d, bsid=%d\n",
190 tech_domain[ind->registration_details_3gpp2.tech_domain],
191 radio_tech[ind->registration_details_3gpp2.radio_tech],
192 ind->registration_details_3gpp2.mcc,
193 ind->registration_details_3gpp2.mnc,
194 ind->registration_details_3gpp2.roaming,
195 ind->registration_details_3gpp2.forbidden,
196 ind->registration_details_3gpp2.sid,
197 ind->registration_details_3gpp2.nid,
198 ind->registration_details_3gpp2.bsid);
199 }
200
201 break;
202 }
203 case NW_IND_DATA_REG_EVENT_IND_FLAG:
204 {
205 QSER_NW_DATA_REG_EVENT_IND_T *ind = (QSER_NW_DATA_REG_EVENT_IND_T*)ind_msg_buf;
206
207 printf("Recv event indication : DATA REG EVENT\n");
208
209 if(ind==NULL)
210 {
211 printf("ind is NULL\n");
212 break;
213 }
214
215
216 if(ind->registration_valid)
217 {
218 printf("data_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n",
219 tech_domain[ind->registration.tech_domain],
220 radio_tech[ind->registration.radio_tech],
221 ind->registration.roaming,
222 ind->registration.registration_state);
223 }
224 if(ind->registration_details_3gpp_valid)
225 {
226 printf("data_registration_details_3gpp: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, cid=0x%X, lac=%d, psc=%d, tac=%d\n",
227 tech_domain[ind->registration_details_3gpp.tech_domain],
228 radio_tech[ind->registration_details_3gpp.radio_tech],
229 ind->registration_details_3gpp.mcc,
230 ind->registration_details_3gpp.mnc,
231 ind->registration_details_3gpp.roaming,
232 ind->registration_details_3gpp.forbidden,
233 ind->registration_details_3gpp.cid,
234 ind->registration_details_3gpp.lac,
235 ind->registration_details_3gpp.psc,
236 ind->registration_details_3gpp.tac);
237 }
238
239 if(ind->registration_details_3gpp2_valid)
240 {
241 printf("data_registration_details_3gpp2: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, prl=%d, css=%d, sid=%d, nid=%d, bsid=%d\n",
242 tech_domain[ind->registration_details_3gpp2.tech_domain],
243 radio_tech[ind->registration_details_3gpp2.radio_tech],
244 ind->registration_details_3gpp2.mcc,
245 ind->registration_details_3gpp2.mnc,
246 ind->registration_details_3gpp2.roaming,
247 ind->registration_details_3gpp2.forbidden,
248 ind->registration_details_3gpp2.inPRL,
249 ind->registration_details_3gpp2.css,
250 ind->registration_details_3gpp2.sid,
251 ind->registration_details_3gpp2.nid,
252 ind->registration_details_3gpp2.bsid);
253 }
254
255 break;
256 }
257 case NW_IND_SIGNAL_STRENGTH_EVENT_IND_FLAG:
258 {
259 QSER_NW_SINGNAL_EVENT_IND_T *ind = (QSER_NW_SINGNAL_EVENT_IND_T*)ind_msg_buf;
260
261 printf("Recv event indication : SIGNAL STRENGTH EVENT\n");
262
263 if(ind==NULL)
264 {
265 printf("ind is NULL\n");
266 break;
267 }
268
269 if(ind->gsm_sig_info_valid)
270 {
271 printf("gsm_sig_info: rssi=%d\n",
272 ind->gsm_sig_info.rssi);
273 }
274
275 if(ind->wcdma_sig_info_valid)
276 {
277 printf("wcdma_sig_info: rssi=%d, ecio=%d\n",
278 ind->wcdma_sig_info.rssi,
279 ind->wcdma_sig_info.ecio);
280 }
281 if(ind->tdscdma_sig_info_valid)
282 {
283 printf("tdscdma_sig_info: rssi=%d, rscp=%d, ecio=%d, sinr=%d\n",
284 ind->tdscdma_sig_info.rssi,
285 ind->tdscdma_sig_info.rscp,
286 ind->tdscdma_sig_info.ecio,
287 ind->tdscdma_sig_info.sinr);
288 }
289 if(ind->lte_sig_info_valid)
290 {
291 printf("lte_sig_info: rssi=%d, rsrq=%d, rsrp=%d, snr=%d\n",
292 ind->lte_sig_info.rssi,
293 ind->lte_sig_info.rsrq,
294 ind->lte_sig_info.rsrp,
295 ind->lte_sig_info.snr);
296 }
297 if(ind->cdma_sig_info_valid)
298 {
299 printf("cdma_sig_info: rssi=%d, ecio=%d\n",
300 ind->cdma_sig_info.rssi,
301 ind->cdma_sig_info.ecio);
302 }
303 if(ind->hdr_sig_info_valid)
304 {
305 printf("hdr_sig_info: rssi=%d, ecio=%d, sinr=%d, io=%d\n",
306 ind->hdr_sig_info.rssi,
307 ind->hdr_sig_info.ecio,
308 ind->hdr_sig_info.sinr,
309 ind->hdr_sig_info.io);
310 }
311 break;
312 }
313 case NW_IND_IMS_REG_EVENT_IND_FLAG:
314 {
315 printf("Recv event indication : IMS REG EVENT\n");
316
317 break;
318 }
319 default:
320 break;
321 }
322}
323
324static int test_nw(void)
325{
326 int cmdIdx = 0;
327 int ret = 0;
328
329 while(1)
330 {
331 show_group_help(&t_nw_test);
332 printf("please input cmd index(-1 exit): ");
333 ret = scanf("%d", &cmdIdx);
334 if(ret != 1)
335 {
336 char c;
337 while(((c=getchar()) != '\n') && (c != EOF))
338 {
339 ;
340 }
341 continue;
342 }
343 if(cmdIdx == -1)
344 {
345 break;
346 }
347 switch(cmdIdx)
348 {
349 case 0://"qser_nw_client_init"
350 {
351
r.xiaofca7c472024-04-24 01:00:23 -0700352 ret = qser_nw_client_init(&h_nw);
b.liu8583dce2024-04-03 13:30:08 +0800353 printf("qser_nw_client_init ret = %d\n", ret);
354 break;
355 }
356 case 1://"qser_nw_set_config"
357 {
358 QSER_NW_CONFIG_INFO_T t_info = {0};
359
360 int mask = 0;
361 printf("please input decimal format number, whose hex format is (TDSCDMA | LTE | EVDO | CDMA | WCDMA | GSM) : \n");
362 scanf("%d", &mask);
363 t_info.preferred_nw_mode = mask;
364
r.xiaofca7c472024-04-24 01:00:23 -0700365 ret = qser_nw_set_config(h_nw, &t_info);
b.liu8583dce2024-04-03 13:30:08 +0800366 printf("qser_nw_set_config ret = %d\n", ret);
367 break;
368 }
369 case 2://"qser_nw_get_operator_name"
370 {
371 QSER_NW_OPERATOR_NAME_INFO_T t_info;
r.xiaofca7c472024-04-24 01:00:23 -0700372 ret = qser_nw_get_operator_name(h_nw, &t_info);
b.liu8583dce2024-04-03 13:30:08 +0800373 printf("qser_nw_get_operator_name ret = %d, long_eons=%s, short_eons=%s, mcc=%s, mnc=%s\n", ret,
374 t_info.long_eons, t_info.short_eons, t_info.mcc, t_info.mnc);
375 break;
376 }
377 case 3://"qser_nw_get_reg_status"
378 {
379 QSER_NW_REG_STATUS_INFO_T t_info;
380
381 memset(&t_info, 0, sizeof(QSER_NW_REG_STATUS_INFO_T));
r.xiaofca7c472024-04-24 01:00:23 -0700382 ret = qser_nw_get_reg_status(h_nw, &t_info);
b.liu8583dce2024-04-03 13:30:08 +0800383 printf("qser_nw_get_reg_status ret = %d, detail info:\n", ret);
384 if(t_info.voice_registration_valid)
385 {
386 printf("voice_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n",
387 tech_domain[t_info.voice_registration.tech_domain],
388 radio_tech[t_info.voice_registration.radio_tech],
389 t_info.voice_registration.roaming,
390 t_info.voice_registration.registration_state);
391 }
392 if(t_info.data_registration_valid)
393 {
394 printf("data_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n",
395 tech_domain[t_info.data_registration.tech_domain],
396 radio_tech[t_info.data_registration.radio_tech],
397 t_info.data_registration.roaming,
398 t_info.data_registration.registration_state);
399 }
400 if(t_info.voice_registration_details_3gpp_valid)
401 {
402 printf("voice_registration_details_3gpp: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, cid=0x%X, lac=%d, psc=%d, tac=%d\n",
403 tech_domain[t_info.voice_registration_details_3gpp.tech_domain],
404 radio_tech[t_info.voice_registration_details_3gpp.radio_tech],
405 t_info.voice_registration_details_3gpp.mcc,
406 t_info.voice_registration_details_3gpp.mnc,
407 t_info.voice_registration_details_3gpp.roaming,
408 t_info.voice_registration_details_3gpp.forbidden,
409 t_info.voice_registration_details_3gpp.cid,
410 t_info.voice_registration_details_3gpp.lac,
411 t_info.voice_registration_details_3gpp.psc,
412 t_info.voice_registration_details_3gpp.tac);
413 }
414 if(t_info.data_registration_details_3gpp_valid)
415 {
416 printf("data_registration_details_3gpp: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, cid=0x%X, lac=%d, psc=%d, tac=%d\n",
417 tech_domain[t_info.data_registration_details_3gpp.tech_domain],
418 radio_tech[t_info.data_registration_details_3gpp.radio_tech],
419 t_info.data_registration_details_3gpp.mcc,
420 t_info.data_registration_details_3gpp.mnc,
421 t_info.data_registration_details_3gpp.roaming,
422 t_info.data_registration_details_3gpp.forbidden,
423 t_info.data_registration_details_3gpp.cid,
424 t_info.data_registration_details_3gpp.lac,
425 t_info.data_registration_details_3gpp.psc,
426 t_info.data_registration_details_3gpp.tac);
427 }
428
429 if(t_info.voice_registration_details_3gpp2_valid)
430 {
431 printf("voice_registration_details_3gpp2: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, sid=%d, nid=%d, bsid=%d\n",
432 tech_domain[t_info.voice_registration_details_3gpp2.tech_domain],
433 radio_tech[t_info.voice_registration_details_3gpp2.radio_tech],
434 t_info.voice_registration_details_3gpp2.mcc,
435 t_info.voice_registration_details_3gpp2.mnc,
436 t_info.voice_registration_details_3gpp2.roaming,
437 t_info.voice_registration_details_3gpp2.forbidden,
438 t_info.voice_registration_details_3gpp2.sid,
439 t_info.voice_registration_details_3gpp2.nid,
440 t_info.voice_registration_details_3gpp2.bsid);
441 }
442
443 if(t_info.data_registration_details_3gpp2_valid)
444 {
445 printf("data_registration_details_3gpp2: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, sid=%d, nid=%d, bsid=%d\n",
446 tech_domain[t_info.data_registration_details_3gpp2.tech_domain],
447 radio_tech[t_info.data_registration_details_3gpp2.radio_tech],
448 t_info.data_registration_details_3gpp2.mcc,
449 t_info.data_registration_details_3gpp2.mnc,
450 t_info.data_registration_details_3gpp2.roaming,
451 t_info.data_registration_details_3gpp2.forbidden,
452 t_info.data_registration_details_3gpp2.sid,
453 t_info.data_registration_details_3gpp2.nid,
454 t_info.data_registration_details_3gpp2.bsid);
455 }
456
457 break;
458 }
459 case 12://"qser_nw_client_deinit"
460 {
r.xiaofca7c472024-04-24 01:00:23 -0700461 ret = qser_nw_client_deinit(h_nw);
b.liu8583dce2024-04-03 13:30:08 +0800462 printf("qser_nw_client_deinit ret = %d\n", ret);
463 break;
464 }
465 case 4 :
466 {
r.xiaofca7c472024-04-24 01:00:23 -0700467 ret = qser_nw_add_rx_msg_handler(h_nw, nw_event_ind_handler, NULL);
b.liu8583dce2024-04-03 13:30:08 +0800468 printf("qser_nw_add_rx_msg_handler, ret=%d\n", ret);
469 break;
470 }
471 case 5 :
472 {
473 QSER_NW_SIGNAL_STRENGTH_INFO_T t_info;
r.xiaofca7c472024-04-24 01:00:23 -0700474 ret = qser_nw_get_signal_strength(h_nw, &t_info);
b.liu8583dce2024-04-03 13:30:08 +0800475 printf("qser_nw_get_signal_strength, ret=%d\n", ret);
476 if(ret==0)
477 {
478 printf("qser_solicited_signal_strength gsm_sig_info_valid = %d\n"
479 " gsm_sig_info.rssi = %d\n"
480 " wcdma _sig_info_valid = %d\n"
481 " wcdma_sig_info.rssi = %d\n"
482 " wcdma_sig_info.ecio = %d\n"
483 " tdscdma_sig_info_valid = %d\n"
484 " lte_sig_info_valid = %d\n"
485 " lte_sig_info.rssi = %d\n"
486 " lte_sig_info.rsrp = %d\n"
487 " lte_sig_info.rsrq = %d\n"
488 " lte_sig_info.snr = %d\n"
489 " cdma_sig_info_valid = %d\n"
490 " hdr_sig_info_valid = %d\n"
491 " nr_sig_info_valid = %d\n"
492 " nr_sig_info.ssRsrp = %d\n"
493 " nr_sig_info.ssRsrq = %d\n"
494 " nr_sig_info.ssSinr = %d\n"
495 " nr_sig_info.csiRsrp = %d\n"
496 " nr_sig_info.csiRsrq = %d\n"
497 " nr_sig_info.csiSinr = %d\n",
498 t_info.gsm_sig_info_valid, t_info.gsm_sig_info.rssi,
499 t_info.wcdma_sig_info_valid, t_info.wcdma_sig_info.rssi, t_info.wcdma_sig_info.ecio,
500 t_info.tdscdma_sig_info_valid,
501 t_info.lte_sig_info_valid, t_info.lte_sig_info.rssi, t_info.lte_sig_info.rsrp, t_info.lte_sig_info.rsrq, t_info.lte_sig_info.snr,
502 t_info.cdma_sig_info_valid,
503 t_info.hdr_sig_info_valid,
504 t_info.nr_sig_info_valid, t_info.nr_sig_info.ssRsrp, t_info.nr_sig_info.ssRsrq, t_info.nr_sig_info.ssSinr,
505 t_info.nr_sig_info.csiRsrp, t_info.nr_sig_info.csiRsrq, t_info.nr_sig_info.csiSinr);
506
507 }
508 break;
509 }
510 case 7 :
511 {
512 QSER_NW_OOS_CONFIG_INFO_T t_info;
513 int type = 0;
514 printf("please input you want query oos config's type (0: fast network scan config; 1: full band network scan config ) : \n");
515 scanf("%d", &type);
516 t_info.type = type;
r.xiaofca7c472024-04-24 01:00:23 -0700517 ret = qser_nw_get_oos_config(h_nw, &t_info);
b.liu8583dce2024-04-03 13:30:08 +0800518 printf("qser_nw_get_oos_config, ret=%d\n", ret);
519 if(ret==0)
520 {
521 if(t_info.type == QSER_NW_OOS_CFG_TYPE_FULL_BAND_SCAN)
522 {
523 printf("qser_nw_get_oos_config t_min = %d\n"
524 " t_step = %d\n"
525 " t_num = %d\n"
526 " t_max = %d\n",
527 t_info.u.full_band_scan_info.t_min, t_info.u.full_band_scan_info.t_step,
528 t_info.u.full_band_scan_info.t_num, t_info.u.full_band_scan_info.t_max);
529 }
530 else if(t_info.type == QSER_NW_OOS_CFG_TYPE_FAST_SCAN)
531 {
532 printf("qser_nw_get_oos_config enable = %d\n"
533 " time_interval = %d\n",
534 t_info.u.fast_can_info.enable, t_info.u.fast_can_info.time_interval);
535 }
536 else
537 {
538 printf("qser_nw_get_oos_config tyep is %d, ret is ok",t_info.type);
539 }
540
541 }
542 break;
543 }
544 case 6 :
545 {
546 QSER_NW_OOS_CONFIG_INFO_T t_info;
547 int type = 0;
548 printf("please input you want set oos config's type (0: fast network scan config; 1: full band network scan config ) : \n");
549 scanf("%d", &type);
550 t_info.type = type;
551 if(t_info.type == QSER_NW_OOS_CFG_TYPE_FULL_BAND_SCAN)
552 {
553 printf("please input t_min: \n");
554 scanf("%d", &(t_info.u.full_band_scan_info.t_min));
555 printf("please input t_step: \n");
556 scanf("%d", &(t_info.u.full_band_scan_info.t_step));
557 printf("please input t_num: \n");
558 scanf("%d", &(t_info.u.full_band_scan_info.t_num));
559 printf("please input t_max: \n");
560 scanf("%d", &(t_info.u.full_band_scan_info.t_max));
r.xiaofca7c472024-04-24 01:00:23 -0700561 ret = qser_nw_set_oos_config(h_nw, &t_info);
b.liu8583dce2024-04-03 13:30:08 +0800562 printf("qser_nw_get_oos_config, ret=%d\n", ret);
563 }
564 else if(t_info.type==QSER_NW_OOS_CFG_TYPE_FAST_SCAN)
565 {
566 printf("please input enable: \n");
567 scanf("%d", &(t_info.u.fast_can_info.enable));
568 printf("please input time_interval: \n");
569 scanf("%d", &(t_info.u.fast_can_info.time_interval));
r.xiaofca7c472024-04-24 01:00:23 -0700570 ret = qser_nw_set_oos_config(h_nw, &t_info);
b.liu8583dce2024-04-03 13:30:08 +0800571 printf("qser_nw_get_oos_config, ret=%d\n", ret);
572 }
573 else
574 {
r.xiaofca7c472024-04-24 01:00:23 -0700575 ret = qser_nw_set_oos_config(h_nw, &t_info);
b.liu8583dce2024-04-03 13:30:08 +0800576 printf("qser_nw_get_oos_config, ret=%d\n", ret);
577 }
578 break;
579 }
580 case 9://"qser_nw_get_rf_mode"
581 {
582 E_QSER_NW_RF_MODE_TYPE_T rf_mode;
r.xiaofca7c472024-04-24 01:00:23 -0700583 ret = qser_nw_get_rf_mode(h_nw, &rf_mode);
b.liu8583dce2024-04-03 13:30:08 +0800584 printf("qser_nw_get_rf_mode ret = %d, rf mode=%d\n", ret, rf_mode);
585 break;
586 }
587 case 8://"qser_nw_set_rf_mode"
588 {
589 E_QSER_NW_RF_MODE_TYPE_T rf_mode;
590 printf("please input you want set rf mode (0: cfun 0; 1: cfun 1; 4: flight mode \n");
591 scanf("%d", &rf_mode);
r.xiaofca7c472024-04-24 01:00:23 -0700592 ret = qser_nw_set_rf_mode(h_nw, rf_mode);
b.liu8583dce2024-04-03 13:30:08 +0800593 printf("qser_nw_set_rf_mode %d ret = %dn",rf_mode, ret);
594 break;
595 }
596 case 10://"qser_nw_set_ims_enable"
597 {
598 E_QSER_NW_IMS_MODE_TYPE_T ims_mode;
599 printf("please input you want set ims mode (0: off; 1: volte enable \n");
600 scanf("%d", &ims_mode);
r.xiaofca7c472024-04-24 01:00:23 -0700601 ret = qser_nw_set_ims_enable(h_nw, ims_mode);
b.liu8583dce2024-04-03 13:30:08 +0800602 printf("qser_nw_set_ims_enable %d ret = %dn",ims_mode, ret);
603 break;
604 }
605 case 11://"qser_nw_get_ims_reg_status"
606 {
607 QSER_NW_IMS_REG_STATUS_INFO_T t_info;
608 memset(&t_info, 0, sizeof(QSER_NW_IMS_REG_STATUS_INFO_T));
r.xiaofca7c472024-04-24 01:00:23 -0700609 ret = qser_nw_get_ims_reg_status(h_nw, &t_info);
b.liu8583dce2024-04-03 13:30:08 +0800610 printf("qser_nw_get_ims_reg_status ret = %d, detail info:\n", ret);
611 if(ret == 0)
612 {
613 printf("ims_registration: registration_state=%d\n",
614 t_info.registration_state);
615 }
616 break;
617 }
618 default:
619 {
620 show_group_help(&t_nw_test);
621 }
622 }
623 }
624 return 0;
625}
626
r.xiaofca7c472024-04-24 01:00:23 -0700627#ifdef __cplusplus
628}
629#endif
b.liu8583dce2024-04-03 13:30:08 +0800630
631
632
633