blob: e2bc53abca8c24bcfc12fa425d1e51ac3d8bbebe [file] [log] [blame]
b.liud440f9f2025-04-18 10:44:31 +08001#include <stdlib.h>
2#include <stdio.h>
3#include <string.h>
4#include <sys/types.h>
5#include <pthread.h>
6#include <unistd.h>
7#include <dlfcn.h>
8#include <stdint.h>
9
10#include"lynq_qser_sim.h"
11
12
13#define BUF_SIZE 32
14#define BUF_PIN QSER_SIM_PIN_LEN_MAX
15#define VER_SIZE 128
16
17typedef uint32_t sim_client_handle_type;
18
19sim_client_handle_type ph_sim = 2023;
20sim_client_handle_type h_sim = 2023;
21int flag_init = 0;
22
23typedef struct
24{
25 int cmdIdx;
26 const char *funcName;
27} st_api_test_case;
28
29//for server test
30st_api_test_case at_api_testcases[] =
31{
32 {0, "qser_sim_init"},
33 {1, "qser_get_imsi"},
34 {2, "qser_get_iccid"},
35 {3, "qser_get_phonenumber"},
36 {4, "qser_verify_pin"},
37 {5, "qser_change_pin"},
38 {6, "qser_unlock_pin"},
39 {7, "qser_enable_pin"},
40 {8, "qser_disable_pin"},
41 {9, "qser_get_sim_status"},
42 {10, "qser_get_imei"},
43 {11, "qser_get_imei_and_sv"},
44 {12, "qser_reset_modem"},
45 {13, "qser_get_version"},
46 {14, "qser_reset_sim"},
47 {15, "qser_deinit_sim"},
48 {-1, NULL}
49};
50
51void print_help(void)
52{
53 int i;
54 printf("Supported test cases:\n");
55 for(i = 0; ; i++)
56 {
57 if(at_api_testcases[i].cmdIdx == -1)
58 {
59 break;
60 }
61 printf("%d:\t%s\n", at_api_testcases[i].cmdIdx, at_api_testcases[i].funcName);
62 }
63}
64
65int main(int argc, char const *argv[])
66{
67 int cmdIdx = 0;
68 int res = 0;
69
70 print_help();
71 while(1)
72 {
73 printf("\nplease input cmd index(-1 exit): ");
74 int count = scanf("%d", &cmdIdx);
75 if(cmdIdx == -1 || count != 1)
76 {
77 break;
78 }
79
80 switch(cmdIdx)
81 {
82 //"qser_sim_init"
83 case 0:
84 {
85 if(flag_init == 1)
86 {
87 printf("init is already\n");
88 break;
89 }
90 else{
91 //int token;
92 //printf("input token\n");
93 //scanf("%d", &token);
94 res = qser_sim_client_init(&h_sim);
95 if(res == 0)
96 {
97 printf("Run qser_sim_client_init\n");
98 flag_init = 1;
99 }else{
100 printf("qser_sim_client_init error\n");
101 }
102
103 break;
104 }
105 }
106
107 //"qser_sim_getimsi"
108 case 1:
109 {
110 if(flag_init == 0){
111 printf("must init first\n");
112 }
113 else{
114 char imsi[BUF_SIZE] = {0};
115 QSER_SIM_APP_ID_INFO_T pt_info;
116 res = qser_sim_getimsi(h_sim, &pt_info, imsi, 32);
117 if(res == 0)
118 {
119 printf("imsi is %s!!!\n",imsi);
120 }else{
121 printf("get imsi error, res = %d\n", res);
122 }
123 }
124 break;
125 }
126
127 //"qser_get_iccid"
128 case 2:
129 {
130 if(flag_init == 0){
131 printf("must init first\n");
132 }
133 else{
134 char iccid[BUF_SIZE] = {0};
135 res = qser_sim_geticcid(h_sim, QSER_SIM_SLOT_ID_1, iccid, 32);
136 if(res == 0)
137 {
138 printf("get iccid success!!! iccid is %s\n",iccid);
139 }else{
140 printf("get iccid error, res = %d\n", res);
141 }
142 }
143 break;
144 }
145 //qser_get_phonenumber
146 case 3:
147 {
148 if(flag_init == 0){
149 printf("must init first\n");
150 }
151 else{
152 char phonenumber[BUF_SIZE] = "";
153 QSER_SIM_APP_ID_INFO_T pt_info;
154 res = qser_sim_getphonenumber(h_sim, &pt_info, phonenumber, 32);
155 if(res == 0)
156 {
157 printf("get phonenumber success!!! phonenumber is %s\n",phonenumber);
158 }else{
159 printf("get phonenumber error, res = %d\n", res);
160 }
161 }
162 break;
163 }
164 //qser_verify_pin
165 case 4:
166 {
167 if(flag_init == 0){
168 printf("must init first\n");
169 }
170 else{
171 char pin[BUF_PIN] = {0};
172 QSER_SIM_VERIFY_PIN_INFO_T pt_info;
173 printf("input pin\n");
174 if(scanf("%s", pin) != 1)
175 break;
176 strncpy(pt_info.pin_value, pin, BUF_PIN);
177 printf("pin_value = %s , pin = %s\n", pt_info.pin_value, pin);
178 pt_info.pin_value_len = strlen(pt_info.pin_value);
179
180 res = qser_sim_verifypin(h_sim, &pt_info);
181 if(res == 0)
182 {
183 printf("verify pin success!!!\n");
184 }else{
185 printf("verify pin error, res = %d\n", res);
186 }
187
188 }
189 break;
190 }
191 //qser_change_pin
192 case 5:
193 {
194 if(flag_init == 0){
195 printf("must init first\n");
196 }
197 else{
198 char old_pin[BUF_PIN] = {0};
199 QSER_SIM_CHANGE_PIN_INFO_T pt_info;
200 printf("input old pin\n");
201 if(scanf("%s", old_pin) != 1)
202 break;
203 char new_pin[BUF_PIN] = {0};
204 printf("input new pin\n");
205 if(scanf("%s", new_pin) != 1)
206 break;
207 strncpy(pt_info.old_pin_value, old_pin, BUF_PIN);
208 strncpy(pt_info.new_pin_value, new_pin, BUF_PIN);
209 printf("pt_info.old_pin_value = %s, old_pin = %s\n", pt_info.old_pin_value, old_pin);
210 printf("pt_info.new_pin_value = %s, new_pin = %s\n", pt_info.new_pin_value, new_pin);
211 pt_info.old_pin_value_len = strlen(pt_info.old_pin_value);
212 pt_info.new_pin_value_len = strlen(pt_info.new_pin_value);
213
214 res = qser_sim_changepin(h_sim, &pt_info);
215 if(res == 0)
216 {
217 printf("change pin success!!!\n");
218 }else{
219 printf("change pin error, res = %d\n", res);
220 }
221 }
222 break;
223 }
224 //qser_unlock_pin
225 case 6:
226 {
227 if(flag_init == 0){
228 printf("must init first\n");
229 }
230 else{
231 char puk[BUF_PIN] = {0};
232 QSER_SIM_UNBLOCK_PIN_INFO_T pt_info;
233 printf("input puk\n");
234 if(scanf("%s", puk) != 1)
235 break;
236 char new_pin[BUF_PIN] = {0};
237 printf("input new pin\n");
238 if(scanf("%s", new_pin) != 1)
239 break;
240
241 strncpy(pt_info.puk_value, puk, BUF_PIN);
242 strncpy(pt_info.new_pin_value, new_pin, BUF_PIN);
243 printf("pt_info.puk_value = %s, puk = %s\n", pt_info.puk_value, puk);
244 printf("pt_info.new_pin_value = %s, new_pin = %s\n", pt_info.new_pin_value, new_pin);
245 pt_info.new_pin_value_len = strlen(pt_info.new_pin_value);
246 pt_info.puk_value_len = strlen(pt_info.puk_value);
247
248 res = qser_sim_unblockpin(h_sim, &pt_info);
249 if(res == 0)
250 {
251 printf("unlock pin success!!!\n");
252 }else{
253 printf("unlock pin error, res = %d\n", res);
254 }
255 }
256 break;
257 }
258 //qser_enable_pin
259 case 7:
260 {
261 if(flag_init == 0){
262 printf("must init first\n");
263 }
264 else{
265 char pin[BUF_PIN] = {0};
266 QSER_SIM_ENABLE_PIN_INFO_T pt_info;
267 printf("input pin\n");
268 if(scanf("%s", pin) != 1)
269 break;
270 strncpy(pt_info.pin_value, pin, BUF_PIN);
271 pt_info.pin_value_len = strlen(pt_info.pin_value);
272
273 res = qser_sim_enablepin(h_sim, &pt_info);
274 if(res == 0)
275 {
276 printf("pin enabled!!!\n");
277 }else{
278 printf("pin enable error, res =%d\n", res);
279 }
280 }
281 break;
282 }
283 //qser_disable_pin
284 case 8:
285 {
286 if(flag_init == 0){
287 printf("must init first\n");
288 }
289 else{
290 char pin[BUF_PIN] = {0};
291 QSER_SIM_ENABLE_PIN_INFO_T pt_info;
292 printf("input pin\n");
293 if(scanf("%s", pin) != 1)
294 break;
295 strncpy(pt_info.pin_value, pin, BUF_PIN);
296 pt_info.pin_value_len = strlen(pt_info.pin_value);
297
298 res = qser_sim_disablepin(h_sim, &pt_info);
299 if(res == 0)
300 {
301 printf("pin disnabled!!!\n");
302 }else{
303 printf("pin disable error,res = %d\n", res);
304 }
305 }
306 break;
307 }
308 //qser_get_sim_status
309 case 9:
310 {
311 if(flag_init == 0){
312 printf("must init first\n");
313 }
314 else{
315 QSER_SIM_CARD_STATUS_INFO_T pt_info;
316
317 res = qser_sim_getcardstatus(h_sim, QSER_SIM_SLOT_ID_1, &pt_info);
318 if(res == 0)
319 {
320 printf("state is %d !!!\n",pt_info.e_card_state);
321 }else{
322 printf("get imsi error,res = %d\n", res);
323 }
324 }
325 break;
326 }
327 //qser_get_imei
328 case 10:
329 {
330 if(flag_init == 0){
331 printf("must init first\n");
332 }
333 else{
334 char imei[BUF_SIZE]="";
335 res = qser_sim_getimei(h_sim, imei);
336 if(res == 0)
337 {
338 printf("get imei success!!! imei = %s\n", imei);
339 }else{
340 printf("get imei error, res = %d\n", res);
341 }
342 }
343 //flag_init = 0;
344 break;
345 }
346 //qser_get_imei_and_sv
347 case 11:
348 {
349 char imei[BUF_SIZE]="";
350 char sv[BUF_SIZE]="";
351
352 if(flag_init == 0){
353 printf("must init first\n");
354 }
355 else{
356 res = qser_get_imei_and_sv(h_sim, imei, sv);
357 if(res == 0)
358 {
359 printf("get imei and sv success!!!imei = %s sv = %s\n", imei, sv);
360 }else{
361 printf("get imei and sv error, res = %d\n", res);
362 }
363 }
364 //flag_init = 0;
365 break;
366 }
367 //qser_reset_modem
368 case 12:
369 {
370 if(flag_init == 0){
371 printf("must init first\n");
372 }
373 else{
374 res = qser_reset_modem(h_sim);
375 if(res == 0)
376 {
377 printf("reset modem success!!!\n");
378 }else{
379 printf("reset modem error, res = %d\n", res);
380 }
381 }
382 //flag_init = 0;
383 break;
384 }
385 //qser_get_version
386 case 13:
387 {
388 char buf[VER_SIZE]="";
389 if(flag_init == 0){
390 printf("must init first\n");
391 }
392 else{
393 res = qser_get_version(h_sim, buf);
394 if(res == 0)
395 {
396 printf("get version success!!! ver = %s\n", buf);
397 }else{
398 printf("get version error, res = %d\n", res);
399 }
400 }
401 //flag_init = 0;
402 break;
403 }
404 //qser_reset_sim
405 case 14:
406 {
407 if(flag_init == 0){
408 printf("must init first\n");
409 }
410 else{
411 res = qser_reset_sim(h_sim);
412 if(res == 0)
413 {
414 printf("reset sim success!!!\n");
415 }else{
416 printf("reset sim error, res = %d\n", res);
417 }
418 }
419 //flag_init = 0;
420 break;
421 }
422 //qser_deinit_sim
423 case 15:
424 {
425 if(flag_init == 0){
426 printf("must init first\n");
427 }
428 else{
429 res = qser_sim_client_deinit(h_sim);
430 if(res == 0)
431 {
432 printf("sim deinit success is!!!\n");
433 }else{
434 printf("sim deint errors, res = %d\n", res);
435 }
436 }
437 flag_init = 0;
438 break;
439 }
440 default:
441 print_help();
442 break;
443 }
444
445 }
446
447 return 0;
448}