blob: 39bc5a0b92d87ef95d065937d185064adac39196 [file] [log] [blame]
b.liu86b7ff22024-04-03 14:25:55 +08001#include "lynq_qser_network.h"
2#include "mbtk_type.h"
3#include "mbtk_info_api.h"
4
5#include <stdio.h>
6#include <stdlib.h>
7
8
9char *tech_domain[] = {"NONE", "3GPP", "3GPP2"};
10char *radio_tech[] = {"unknown",
11 "TD_SCDMA", "GSM", "HSPAP", "LTE", "EHRPD", "EVDO_B",
12 "HSPA", "HSUPA", "HSDPA", "EVDO_A", "EVDO_0", "1xRTT",
13 "IS95B", "IS95A", "UMTS", "EDGE", "GPRS", "NONE"};
14
15void nw_event_ind_handler (
16 nw_client_handle_type h_nw,
17 u_int32_t ind_flag,
18 void *ind_msg_buf,
19 u_int32_t ind_msg_len,
20 void *contextPtr)
21{
r.xiaofca7c472024-04-24 01:00:23 -070022 switch(ind_flag) {
23 case NW_IND_VOICE_REG_EVENT_IND_FLAG:
24 {
25 QSER_NW_VOICE_REG_EVENT_IND_T *ind = (QSER_NW_VOICE_REG_EVENT_IND_T*)ind_msg_buf;
26 printf("Recv event indication : VOICE REG EVENT\n");
27
28 if(ind==NULL)
29 {
30 printf("ind is NULL\n");
31 break;
32 }
b.liu86b7ff22024-04-03 14:25:55 +080033
r.xiaofca7c472024-04-24 01:00:23 -070034 if(ind->registration_valid)
35 {
36 printf("voice_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n",
37 tech_domain[ind->registration.tech_domain],
38 radio_tech[ind->registration.radio_tech],
39 ind->registration.roaming,
40 ind->registration.registration_state);
41 }
42 if(ind->registration_details_3gpp_valid)
43 {
44 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",
45 tech_domain[ind->registration_details_3gpp.tech_domain],
46 radio_tech[ind->registration_details_3gpp.radio_tech],
47 ind->registration_details_3gpp.mcc,
48 ind->registration_details_3gpp.mnc,
49 ind->registration_details_3gpp.roaming,
50 ind->registration_details_3gpp.forbidden,
51 ind->registration_details_3gpp.cid,
52 ind->registration_details_3gpp.lac,
53 ind->registration_details_3gpp.psc,
54 ind->registration_details_3gpp.tac);
55 }
b.liu86b7ff22024-04-03 14:25:55 +080056
r.xiaofca7c472024-04-24 01:00:23 -070057 if(ind->registration_details_3gpp2_valid)
58 {
59 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",
60 tech_domain[ind->registration_details_3gpp2.tech_domain],
61 radio_tech[ind->registration_details_3gpp2.radio_tech],
62 ind->registration_details_3gpp2.mcc,
63 ind->registration_details_3gpp2.mnc,
64 ind->registration_details_3gpp2.roaming,
65 ind->registration_details_3gpp2.forbidden,
66 ind->registration_details_3gpp2.sid,
67 ind->registration_details_3gpp2.nid,
68 ind->registration_details_3gpp2.bsid);
69 }
70
71 break;
72 }
73 case NW_IND_DATA_REG_EVENT_IND_FLAG:
74 {
75 QSER_NW_DATA_REG_EVENT_IND_T *ind = (QSER_NW_DATA_REG_EVENT_IND_T*)ind_msg_buf;
76
77 printf("Recv event indication : DATA REG EVENT\n");
78
79 if(ind==NULL)
80 {
81 printf("ind is NULL\n");
82 break;
83 }
84
85
86 if(ind->registration_valid)
87 {
88 printf("data_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n",
89 tech_domain[ind->registration.tech_domain],
90 radio_tech[ind->registration.radio_tech],
91 ind->registration.roaming,
92 ind->registration.registration_state);
93 }
94 if(ind->registration_details_3gpp_valid)
95 {
96 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",
97 tech_domain[ind->registration_details_3gpp.tech_domain],
98 radio_tech[ind->registration_details_3gpp.radio_tech],
99 ind->registration_details_3gpp.mcc,
100 ind->registration_details_3gpp.mnc,
101 ind->registration_details_3gpp.roaming,
102 ind->registration_details_3gpp.forbidden,
103 ind->registration_details_3gpp.cid,
104 ind->registration_details_3gpp.lac,
105 ind->registration_details_3gpp.psc,
106 ind->registration_details_3gpp.tac);
107 }
108
109 if(ind->registration_details_3gpp2_valid)
110 {
111 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",
112 tech_domain[ind->registration_details_3gpp2.tech_domain],
113 radio_tech[ind->registration_details_3gpp2.radio_tech],
114 ind->registration_details_3gpp2.mcc,
115 ind->registration_details_3gpp2.mnc,
116 ind->registration_details_3gpp2.roaming,
117 ind->registration_details_3gpp2.forbidden,
118 ind->registration_details_3gpp2.inPRL,
119 ind->registration_details_3gpp2.css,
120 ind->registration_details_3gpp2.sid,
121 ind->registration_details_3gpp2.nid,
122 ind->registration_details_3gpp2.bsid);
123 }
124
125 break;
126 }
127 case NW_IND_SIGNAL_STRENGTH_EVENT_IND_FLAG:
128 {
129 QSER_NW_SINGNAL_EVENT_IND_T *ind = (QSER_NW_SINGNAL_EVENT_IND_T*)ind_msg_buf;
130
131 printf("Recv event indication : SIGNAL STRENGTH EVENT\n");
132
133 if(ind==NULL)
134 {
135 printf("ind is NULL\n");
136 break;
137 }
138
139 if(ind->gsm_sig_info_valid)
140 {
141 printf("gsm_sig_info: rssi=%d\n",
142 ind->gsm_sig_info.rssi);
143 }
144
145 if(ind->wcdma_sig_info_valid)
146 {
147 printf("wcdma_sig_info: rssi=%d, ecio=%d\n",
148 ind->wcdma_sig_info.rssi,
149 ind->wcdma_sig_info.ecio);
150 }
151 if(ind->tdscdma_sig_info_valid)
152 {
153 printf("tdscdma_sig_info: rssi=%d, rscp=%d, ecio=%d, sinr=%d\n",
154 ind->tdscdma_sig_info.rssi,
155 ind->tdscdma_sig_info.rscp,
156 ind->tdscdma_sig_info.ecio,
157 ind->tdscdma_sig_info.sinr);
158 }
159 if(ind->lte_sig_info_valid)
160 {
161 printf("lte_sig_info: rssi=%d, rsrq=%d, rsrp=%d, snr=%d\n",
162 ind->lte_sig_info.rssi,
163 ind->lte_sig_info.rsrq,
164 ind->lte_sig_info.rsrp,
165 ind->lte_sig_info.snr);
166 }
167 if(ind->cdma_sig_info_valid)
168 {
169 printf("cdma_sig_info: rssi=%d, ecio=%d\n",
170 ind->cdma_sig_info.rssi,
171 ind->cdma_sig_info.ecio);
172 }
173 if(ind->hdr_sig_info_valid)
174 {
175 printf("hdr_sig_info: rssi=%d, ecio=%d, sinr=%d, io=%d\n",
176 ind->hdr_sig_info.rssi,
177 ind->hdr_sig_info.ecio,
178 ind->hdr_sig_info.sinr,
179 ind->hdr_sig_info.io);
180 }
181 break;
182 }
183 case NW_IND_IMS_REG_EVENT_IND_FLAG:
184 {
185 printf("Recv event indication : IMS REG EVENT\n");
186
187 break;
188 }
189 default:
190 break;
b.liu86b7ff22024-04-03 14:25:55 +0800191 }
b.liu86b7ff22024-04-03 14:25:55 +0800192}
193
194
r.xiaofca7c472024-04-24 01:00:23 -0700195
b.liu86b7ff22024-04-03 14:25:55 +0800196int main(int argc, char *argv[])
197{
198 char operator[10];
199 int opt;
200 int lv_voll = 0;
r.xiaoba8483c2024-04-14 18:53:10 -0700201 int ret;
b.liu86b7ff22024-04-03 14:25:55 +0800202 nw_client_handle_type handle = -1;
203 mbtk_log_init("radio", "NW_TEST");
204
r.xiaoba8483c2024-04-14 18:53:10 -0700205 printf("=========network main=========\n"
206 "\t0 exit\n"
207 "\t1 network init\n"
208 "\t2 network add rx msg handle\n"
209 "\t3 network band set config\n"
210 "\t4 network get operator name\n"
211 "\t5 network get reg status\n"
212 "\t6 network get signal strength\n"
213 "\t7 network set oos config\n"
214 "\t8 network get oos config\n"
215 "\t9 network set rf config\n"
216 "\t10 network get rf config\n"
217 "\t11 network set ims config\n"
218 "\t12 network get ims config\n"
219 "\t13 network deinit\n"
220 "operator: >> ");
221
b.liu86b7ff22024-04-03 14:25:55 +0800222 while(1)
223 {
b.liu86b7ff22024-04-03 14:25:55 +0800224
r.xiaoba8483c2024-04-14 18:53:10 -0700225 opt = -1;
b.liu86b7ff22024-04-03 14:25:55 +0800226 fgets(operator, sizeof(operator), stdin);
227 fflush(stdin);
228 opt = atoi(operator);
229 switch (opt)
230 {
231 case 0:
232 printf("main exit\n");
233 return 0;
234 case 1:
r.xiaoba8483c2024-04-14 18:53:10 -0700235 ret = qser_nw_client_init(&handle);
236 printf("qser_nw_client_init ret = %d\n", ret);
b.liu86b7ff22024-04-03 14:25:55 +0800237 break;
238 case 2:
r.xiaoba8483c2024-04-14 18:53:10 -0700239 ret = qser_nw_add_rx_msg_handler(handle, nw_event_ind_handler, NULL);
240 printf("qser_nw_add_rx_msg_handler ret = %d\n", ret);
b.liu86b7ff22024-04-03 14:25:55 +0800241 break;
242 case 3:
243 {
244 //漫游开关现在不支持,所以就不用配置
245 printf("please input \n"
246 "\t1:GSM \n"
247 "\t2:WCDMA \n"
248 "\t4:CDMA \n"
249 "\t8:EVDO \n"
250 "\t16:LTE \n"
251 "\t32:TDSCDMA \n"
252 );
253 memset(operator,0x00, sizeof(operator));
254 fgets(operator, sizeof(operator)-1, stdin);
255 fflush(stdin);
256 opt = atoi(operator);
257 QSER_NW_CONFIG_INFO_T t_info;
liuyang4ac8c632024-05-24 14:42:31 +0800258
259 t_info.preferred_nw_mode = opt;
r.xiaoba8483c2024-04-14 18:53:10 -0700260 ret = qser_nw_set_config(handle, &t_info);
261 printf("qser_nw_set_config ret = %d\n", ret);
b.liu86b7ff22024-04-03 14:25:55 +0800262 }
263 break;
264 case 4:
265 {
266 QSER_NW_OPERATOR_NAME_INFO_T t_info;
267 int err = qser_nw_get_operator_name(handle, &t_info);
268 if(err)
269 {
270 printf("Error : %d\n", err);
271 } else
272 {
273 printf("Operator : %s, %s, %s, %s\n", t_info.long_eons, t_info.short_eons, t_info.mcc, t_info.mnc);
274 }
275 }
276 break;
277 case 5:
278 {
r.xiaofca7c472024-04-24 01:00:23 -0700279 QSER_NW_REG_STATUS_INFO_T t_info;
280 int err = qser_nw_get_reg_status(handle, &t_info);
b.liu86b7ff22024-04-03 14:25:55 +0800281 if(err)
282 {
283 printf("Error : %d\n", err);
284 }
285 else
286 {
r.xiaofca7c472024-04-24 01:00:23 -0700287 if(t_info.voice_registration_valid)
b.liu86b7ff22024-04-03 14:25:55 +0800288 {
r.xiaofca7c472024-04-24 01:00:23 -0700289 printf("voice_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n",
290 tech_domain[t_info.voice_registration.tech_domain],
291 radio_tech[t_info.voice_registration.radio_tech],
292 t_info.voice_registration.roaming,
293 t_info.voice_registration.registration_state);
b.liu86b7ff22024-04-03 14:25:55 +0800294 }
r.xiaofca7c472024-04-24 01:00:23 -0700295 if(t_info.data_registration_valid)
b.liu86b7ff22024-04-03 14:25:55 +0800296 {
r.xiaofca7c472024-04-24 01:00:23 -0700297 printf("data_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n",
298 tech_domain[t_info.data_registration.tech_domain],
299 radio_tech[t_info.data_registration.radio_tech],
300 t_info.data_registration.roaming,
301 t_info.data_registration.registration_state);
b.liu86b7ff22024-04-03 14:25:55 +0800302 }
r.xiaofca7c472024-04-24 01:00:23 -0700303 if(t_info.voice_registration_details_3gpp_valid)
304 {
305 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",
306 tech_domain[t_info.voice_registration_details_3gpp.tech_domain],
307 radio_tech[t_info.voice_registration_details_3gpp.radio_tech],
308 t_info.voice_registration_details_3gpp.mcc,
309 t_info.voice_registration_details_3gpp.mnc,
310 t_info.voice_registration_details_3gpp.roaming,
311 t_info.voice_registration_details_3gpp.forbidden,
312 t_info.voice_registration_details_3gpp.cid,
313 t_info.voice_registration_details_3gpp.lac,
314 t_info.voice_registration_details_3gpp.psc,
315 t_info.voice_registration_details_3gpp.tac);
316 }
317 if(t_info.data_registration_details_3gpp_valid)
318 {
319 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",
320 tech_domain[t_info.data_registration_details_3gpp.tech_domain],
321 radio_tech[t_info.data_registration_details_3gpp.radio_tech],
322 t_info.data_registration_details_3gpp.mcc,
323 t_info.data_registration_details_3gpp.mnc,
324 t_info.data_registration_details_3gpp.roaming,
325 t_info.data_registration_details_3gpp.forbidden,
326 t_info.data_registration_details_3gpp.cid,
327 t_info.data_registration_details_3gpp.lac,
328 t_info.data_registration_details_3gpp.psc,
329 t_info.data_registration_details_3gpp.tac);
330 }
331
332 if(t_info.voice_registration_details_3gpp2_valid)
333 {
334 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",
335 tech_domain[t_info.voice_registration_details_3gpp2.tech_domain],
336 radio_tech[t_info.voice_registration_details_3gpp2.radio_tech],
337 t_info.voice_registration_details_3gpp2.mcc,
338 t_info.voice_registration_details_3gpp2.mnc,
339 t_info.voice_registration_details_3gpp2.roaming,
340 t_info.voice_registration_details_3gpp2.forbidden,
341 t_info.voice_registration_details_3gpp2.sid,
342 t_info.voice_registration_details_3gpp2.nid,
343 t_info.voice_registration_details_3gpp2.bsid);
344 }
345
346 if(t_info.data_registration_details_3gpp2_valid)
347 {
348 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",
349 tech_domain[t_info.data_registration_details_3gpp2.tech_domain],
350 radio_tech[t_info.data_registration_details_3gpp2.radio_tech],
351 t_info.data_registration_details_3gpp2.mcc,
352 t_info.data_registration_details_3gpp2.mnc,
353 t_info.data_registration_details_3gpp2.roaming,
354 t_info.data_registration_details_3gpp2.forbidden,
355 t_info.data_registration_details_3gpp2.sid,
356 t_info.data_registration_details_3gpp2.nid,
357 t_info.data_registration_details_3gpp2.bsid);
358 }
359
b.liu86b7ff22024-04-03 14:25:55 +0800360 //printf("Data Reg: radio_tech = %d, lac = %x, cid = %x\n", reg.data_registration_details_3gpp.radio_tech, reg.data_registration_details_3gpp.lac, reg.data_registration_details_3gpp.cid);
361 //printf("Voice Reg: radio_tech = %d, lac = %x, cid = %x\n", reg.voice_registration_details_3gpp.radio_tech, reg.voice_registration_details_3gpp.lac, reg.voice_registration_details_3gpp.cid);
362 }
363 }
364 break;
365 case 6:
366 {
r.xiaofca7c472024-04-24 01:00:23 -0700367 QSER_NW_SIGNAL_STRENGTH_INFO_T t_info;
368 int err = qser_nw_get_signal_strength(handle, &t_info);
b.liu86b7ff22024-04-03 14:25:55 +0800369 if(err)
370 {
371 printf("Error : %d\n", err);
372 }
373 else
374 {
r.xiaofca7c472024-04-24 01:00:23 -0700375 printf("qser_nw_get_signal_strength, ret=%d\n", err);
376 if(err==0)
377 {
378 printf("qser_solicited_signal_strength gsm_sig_info_valid = %d\n"
379 " gsm_sig_info.rssi = %d\n"
380 " wcdma _sig_info_valid = %d\n"
381 " wcdma_sig_info.rssi = %d\n"
382 " wcdma_sig_info.ecio = %d\n"
383 " tdscdma_sig_info_valid = %d\n"
384 " lte_sig_info_valid = %d\n"
385 " lte_sig_info.rssi = %d\n"
386 " lte_sig_info.rsrp = %d\n"
387 " lte_sig_info.rsrq = %d\n"
388 " lte_sig_info.snr = %d\n"
389 " cdma_sig_info_valid = %d\n"
390 " hdr_sig_info_valid = %d\n"
391 " nr_sig_info_valid = %d\n"
392 " nr_sig_info.ssRsrp = %d\n"
393 " nr_sig_info.ssRsrq = %d\n"
394 " nr_sig_info.ssSinr = %d\n"
395 " nr_sig_info.csiRsrp = %d\n"
396 " nr_sig_info.csiRsrq = %d\n"
397 " nr_sig_info.csiSinr = %d\n",
398 t_info.gsm_sig_info_valid, t_info.gsm_sig_info.rssi,
399 t_info.wcdma_sig_info_valid, t_info.wcdma_sig_info.rssi, t_info.wcdma_sig_info.ecio,
400 t_info.tdscdma_sig_info_valid,
401 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,
402 t_info.cdma_sig_info_valid,
403 t_info.hdr_sig_info_valid,
404 t_info.nr_sig_info_valid, t_info.nr_sig_info.ssRsrp, t_info.nr_sig_info.ssRsrq, t_info.nr_sig_info.ssSinr,
405 t_info.nr_sig_info.csiRsrp, t_info.nr_sig_info.csiRsrq, t_info.nr_sig_info.csiSinr);
406
407 }
408
b.liu86b7ff22024-04-03 14:25:55 +0800409 }
410 }
411 break;
412 case 7:
413 {
414 QSER_NW_OOS_CONFIG_INFO_T pt_info_s;
415 memset(&pt_info_s, 0x00, sizeof(QSER_NW_OOS_CONFIG_INFO_T));
416 /*取值范围0-255,设置时间自定义
417 phase 1 5次 次数无法更改,这五次都是以10秒为一次的间隔搜网
418 phase 2 5次 次数无法更改,这五次都是以15秒为一次的间隔搜网
419 phase 3 不限制次数的秒数设置,第三阶段不限制次数以20秒为一次的间隔搜网
420 如果要关闭OOS配置,则把min step max 全部配置为0即可
421 */
422 pt_info_s.type = QSER_NW_OOS_CFG_TYPE_FULL_BAND_SCAN;//平台提供自定义配置搜网时间间隔
423 {
424 pt_info_s.u.full_band_scan_info.t_min = 10;//phase 1
425 pt_info_s.u.full_band_scan_info.t_step = 15;//phase 2
426 pt_info_s.u.full_band_scan_info.t_num = 0;//可以不配置,并没有使用
427 pt_info_s.u.full_band_scan_info.t_max = 20;//phase 3
428 }
429 printf("set OOS %d %d %d \n",pt_info_s.u.full_band_scan_info.t_min, pt_info_s.u.full_band_scan_info.t_step, pt_info_s.u.full_band_scan_info.t_max);
430 //pt_info_s.type = QSER_NW_OOS_CFG_TYPE_FAST_SCAN;平台本身有历史频点优先处理的逻辑(无接口不需要我们进行处理)
r.xiaoba8483c2024-04-14 18:53:10 -0700431 ret = qser_nw_set_oos_config(handle, &pt_info_s);
432 printf("qser_nw_set_oos_config ret = %d\n", ret);
b.liu86b7ff22024-04-03 14:25:55 +0800433 }
434 break;
435 case 8:
436 {
437 QSER_NW_OOS_CONFIG_INFO_T pt_info_g;
438 qser_nw_get_oos_config(handle, &pt_info_g);
439 if (pt_info_g.type == QSER_NW_OOS_CFG_TYPE_FULL_BAND_SCAN)
440 printf("TYPE: %d min: %d setp: %d max: %d\n", pt_info_g.type, pt_info_g.u.full_band_scan_info.t_min, pt_info_g.u.full_band_scan_info.t_step, pt_info_g.u.full_band_scan_info.t_max);
441 else
442 printf("type not supported \n");
443 }
444 break;
445 case 9:
446 {
447 printf("please input 0 or 1 or 4: \n");
448 memset(operator,0x00, sizeof(operator));
449 fgets(operator, sizeof(operator)-1, stdin);
450 fflush(stdin);
451 opt = atoi(operator);
452 printf("rf_mode: [%d]\n",opt);
r.xiaoba8483c2024-04-14 18:53:10 -0700453 ret = qser_nw_set_rf_mode(handle, opt);
454 printf("qser_nw_set_rf_mode ret = %d\n", ret);
b.liu86b7ff22024-04-03 14:25:55 +0800455 }
456 break;
457 case 10:
458 {
459 int rf_t;
460 qser_nw_get_rf_mode(handle, &rf_t);
461 printf(">>>rf_mode = [%d]\n",rf_t);
462 }
463 break;
464 case 11:
r.xiaoba8483c2024-04-14 18:53:10 -0700465 {
466 E_QSER_NW_IMS_MODE_TYPE_T ims_mode;
467 printf("please input you want set ims mode (0: off; 1: volte enable \n");
468 scanf("%d", &ims_mode);
469 ret = qser_nw_set_ims_enable(handle, ims_mode);
470 printf("qser_nw_set_ims_enable %d ret = %d\n",ims_mode, ret);
471 }
472 break;
473 case 12:
474 {
475 QSER_NW_IMS_REG_STATUS_INFO_T t_info;
476 memset(&t_info, 0, sizeof(QSER_NW_IMS_REG_STATUS_INFO_T));
477 ret = qser_nw_get_ims_reg_status(handle, &t_info);
478 printf("qser_nw_get_ims_reg_status ret = %d, detail info:\n", ret);
479 if(ret == 0)
480 {
481 printf("ims_registration: registration_state=%d\n", t_info.registration_state);
482 }
483 }
484 break;
485 case 13:
b.liu86b7ff22024-04-03 14:25:55 +0800486 qser_nw_client_deinit(handle);
487 break;
488 default:
489 break;
490 }
491
492 }
493
494 return 0;
495}
496