blob: 8b38c7ddd31c2e5762af68c799a4cc4d62536461 [file] [log] [blame]
b.liud440f9f2025-04-18 10:44:31 +08001#include "mbtk_at.h"
2//#include <sys/statfs.h>
3#include <sys/vfs.h>
4#include <errno.h>
5#include <linux/magic.h>
6#include <time.h>
7#include <sys/time.h>
8#include <signal.h>
9#include <pthread.h>
10#include <time.h>
11#include <sys/time.h>
12#include <cutils/properties.h>
13#include "configwrapper.h"
14#include<linux/msg.h>
15
16#include "atcmdsvr_ubus.h"
17
18//mbtk_ftp
19struct my_msg //消息队列结构体
20{
21 long int my_msg_type;
22 char *ptr;
23}mbtk_at_msg;
24
25void mbtk_at_printf()
26{
27 int msgid;
28 mbtk_at_msg.my_msg_type=3;
29 msgid=msgget(12,0666|IPC_CREAT);
30 MBTK_FUNC(mbtk_at_msgid)(&msgid);
31 //char read_buf[MAXMSG];
32 while(1)
33 {
34 msgrcv(msgid,&mbtk_at_msg,4,mbtk_at_msg.my_msg_type,0);
35 if(strncmp(mbtk_at_msg.ptr,"end",3)==0)
36 break;
37 ATRESP(IND_REQ_HANDLE , ATCI_RESULT_CODE_NULL, 0, mbtk_at_msg.ptr);
38 free(mbtk_at_msg.ptr);
39 mbtk_at_msg.ptr=NULL;
40 }
41 msgctl(msgid,IPC_RMID,0);
42}
43
44utlReturnCode_T MBTK_AT_CFTPPORT_PROCESS(const utlAtParameterOp_T op,
45 const char *command_name_p,
46 const utlAtParameterValue_P2c parameter_values_p,
47 const size_t num_parameters,
48 const char *info_text_p,
49 unsigned int *xid_p,
50 void *arg_p)
51
52{
53 UNUSEDPARAM(command_name_p);
54 UNUSEDPARAM(num_parameters);
55 UNUSEDPARAM(info_text_p);
56
57 utlReturnCode_T ret = utlFAILED;
58 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
59 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
60 *xid_p = At_handle;
61 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
62
63 static int arg1 = 0;
64
65 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
66
67 switch(op)
68 {
69 case TEL_EXT_GET_CMD :
70 {
71 MBTK_FUNC(mbtk_at_get_ftp_info)(0,&arg1, NULL, NULL, NULL, NULL, NULL, NULL);
72 sprintf(resp_buf, "+CFTPPORT: <%d>\r\n", arg1);
73 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
74 break;
75 }
76 case TEL_EXT_SET_CMD :
77 {
78 if(!getExtValue(parameter_values_p, 0, &arg1, 1, 65535, 21))
79 {
80 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
81 break;
82 }
83
84 MBTK_FUNC(mbtk_at_ftp)(0,arg1, NULL, NULL, NULL, NULL, NULL, NULL);
85
86 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
87 break;
88 }
89 default:
90 {
91 break;
92 }
93 }
94
95 return ret;
96}
97
98utlReturnCode_T MBTK_AT_CFTPUN_PROCESS(const utlAtParameterOp_T op,
99 const char *command_name_p,
100 const utlAtParameterValue_P2c parameter_values_p,
101 const size_t num_parameters,
102 const char *info_text_p,
103 unsigned int *xid_p,
104 void *arg_p)
105
106{
107 UNUSEDPARAM(command_name_p);
108 UNUSEDPARAM(num_parameters);
109 UNUSEDPARAM(info_text_p);
110
111 utlReturnCode_T ret = utlFAILED;
112 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
113 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
114 *xid_p = At_handle;
115 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
116
117 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
118
119 switch(op)
120 {
121 case TEL_EXT_GET_CMD :
122 {
123 static char name[MBTK_AT_FTP_NAME_LEN_MAX];
124 MBTK_FUNC(mbtk_at_get_ftp_info)(3,NULL, NULL, NULL, name, NULL, NULL, NULL);
125 sprintf(resp_buf, "+CFTPUN: \"<%s>\"\r\n",name);
126 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
127 break;
128 }
129 case TEL_EXT_SET_CMD :
130 {
131 const static int name_len_max = MBTK_AT_FTP_NAME_LEN_MAX;
132 static char name[MBTK_AT_FTP_NAME_LEN_MAX];
133 int len = 0;
134 memset(name, 0x0, MBTK_AT_FTP_NAME_LEN_MAX);
135 if(!getExtString(parameter_values_p, 0, name, name_len_max, &len, ""))
136 {
137 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
138 LOG("Get FTP NAME Fail.");
139 break;
140 }
141
142 MBTK_FUNC(mbtk_at_ftp)(3,NULL, NULL, NULL, name, NULL, NULL, NULL);
143
144 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
145 break;
146 }
147 default:
148 {
149 break;
150 }
151 }
152
153 return ret;
154}
155
156utlReturnCode_T MBTK_AT_CFTPPW_PROCESS(const utlAtParameterOp_T op,
157 const char *command_name_p,
158 const utlAtParameterValue_P2c parameter_values_p,
159 const size_t num_parameters,
160 const char *info_text_p,
161 unsigned int *xid_p,
162 void *arg_p)
163{
164 UNUSEDPARAM(command_name_p);
165 UNUSEDPARAM(num_parameters);
166 UNUSEDPARAM(info_text_p);
167
168 utlReturnCode_T ret = utlFAILED;
169 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
170 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
171 *xid_p = At_handle;
172 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
173
174 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
175
176 switch(op)
177 {
178 case TEL_EXT_GET_CMD :
179 {
180 static char pass[MBTK_AT_FTP_PASS_LEN_MAX];
181 MBTK_FUNC(mbtk_at_get_ftp_info)(2,NULL, NULL, pass, NULL, NULL, NULL, NULL);
182 sprintf(resp_buf, "+CFTPPW: \"<%s>\"\r\n",pass);
183 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
184 break;
185 }
186 case TEL_EXT_SET_CMD :
187 {
188 const static int pass_len_max = MBTK_AT_FTP_PASS_LEN_MAX;
189 static char pass[MBTK_AT_FTP_PASS_LEN_MAX];
190 int len = 0;
191 memset(pass, 0x0, MBTK_AT_FTP_PASS_LEN_MAX);
192 if(!getExtString(parameter_values_p, 0, pass, pass_len_max, &len, ""))
193 {
194 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
195 LOG("Get FTP PASS Fail.");
196 break;
197 }
198
199 MBTK_FUNC(mbtk_at_ftp)(2,NULL, NULL, pass, NULL, NULL, NULL, NULL);
200
201 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
202 break;
203 }
204 default:
205 {
206 break;
207 }
208 }
209
210 return ret;
211}
212
213utlReturnCode_T MBTK_AT_CFTPTLS_PROCESS(const utlAtParameterOp_T op,
214 const char *command_name_p,
215 const utlAtParameterValue_P2c parameter_values_p,
216 const size_t num_parameters,
217 const char *info_text_p,
218 unsigned int *xid_p,
219 void *arg_p)
220{
221 UNUSEDPARAM(command_name_p);
222 UNUSEDPARAM(num_parameters);
223 UNUSEDPARAM(info_text_p);
224
225 utlReturnCode_T ret = utlFAILED;
226 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
227 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
228 *xid_p = At_handle;
229 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
230
231 static int mode = 0;
232 static int cert = 0;
233
234 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
235
236 switch(op)
237 {
238 case TEL_EXT_GET_CMD :
239 {
240 MBTK_FUNC(mbtk_at_get_ftp_info)(4,NULL, NULL, NULL, NULL, &mode, NULL, &cert);
241 sprintf(resp_buf, "+CFTPTLS: <%d>,<%d>\r\n", mode, cert);
242 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
243 break;
244 }
245 case TEL_EXT_SET_CMD :
246 {
247 if(!getExtValue(parameter_values_p, 0, &mode, 0, 2, 0))
248 {
249 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
250 break;
251 }
252
253 if(!getExtValue(parameter_values_p, 1, &cert, 0, 1, 0))
254 {
255 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
256 break;
257 }
258
259 MBTK_FUNC(mbtk_at_ftp)(4,NULL, NULL, NULL, NULL, mode, NULL, cert);
260
261 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
262 break;
263 }
264 default:
265 {
266 break;
267 }
268 }
269
270 return ret;
271}
272
273utlReturnCode_T MBTK_AT_CFTPSERV_PROCESS(const utlAtParameterOp_T op,
274 const char *command_name_p,
275 const utlAtParameterValue_P2c parameter_values_p,
276 const size_t num_parameters,
277 const char *info_text_p,
278 unsigned int *xid_p,
279 void *arg_p)
280{
281 UNUSEDPARAM(command_name_p);
282 UNUSEDPARAM(num_parameters);
283 UNUSEDPARAM(info_text_p);
284
285 utlReturnCode_T ret = utlFAILED;
286 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
287 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
288 *xid_p = At_handle;
289 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
290
291 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
292
293 switch(op)
294 {
295 case TEL_EXT_GET_CMD :
296 {
297 static char addr[MBTK_AT_FTP_ADDR_LEN_MAX];
298 MBTK_FUNC(mbtk_at_get_ftp_info)(1,NULL, addr, NULL, NULL, NULL, NULL, NULL);
299 sprintf(resp_buf, "+CFTPSERV: %s", addr);
300 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
301 break;
302 }
303 case TEL_EXT_SET_CMD :
304 {
305 const static int addr_len_max = MBTK_AT_FTP_ADDR_LEN_MAX;
306 static char addr[MBTK_AT_FTP_ADDR_LEN_MAX];
307 int len = 0;
308 memset(addr, 0x0, MBTK_AT_FTP_ADDR_LEN_MAX);
309 if(!getExtString(parameter_values_p, 0, addr, addr_len_max, &len, ""))
310 {
311 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
312 LOG("Get FTP ADDR Fail.");
313 break;
314 }
315
316 MBTK_FUNC(mbtk_at_ftp)(1,NULL, addr, NULL, NULL, NULL, NULL, NULL);
317
318 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
319 break;
320 }
321 default:
322 {
323 break;
324 }
325 }
326
327 return ret;
328}
329
330utlReturnCode_T MBTK_AT_CFTPTYPE_PROCESS(const utlAtParameterOp_T op,
331 const char *command_name_p,
332 const utlAtParameterValue_P2c parameter_values_p,
333 const size_t num_parameters,
334 const char *info_text_p,
335 unsigned int *xid_p,
336 void *arg_p)
337
338{
339 UNUSEDPARAM(command_name_p);
340 UNUSEDPARAM(num_parameters);
341 UNUSEDPARAM(info_text_p);
342
343 utlReturnCode_T ret = utlFAILED;
344 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
345 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
346 *xid_p = At_handle;
347 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
348
349 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
350
351 switch(op)
352 {
353 case TEL_EXT_GET_CMD :
354 {
355 int mbtk_ftp_type = -1;
356 static char ftp_type;
357 MBTK_FUNC(mbtk_at_get_ftp_info)(5,NULL, NULL, NULL, NULL, NULL, &mbtk_ftp_type, NULL);
358 if(mbtk_ftp_type == 0)
359 ftp_type='A';
360 else if(mbtk_ftp_type == 1)
361 ftp_type='I';
362 else
363 {
364 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, resp_buf);
365 break;
366 }
367 sprintf(resp_buf, "+CFTPTYPE:\"%c\"",ftp_type);
368 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
369 break;
370 }
371 case TEL_EXT_SET_CMD :
372 {
373 static char ftp_type[2];
374 int addr_len_max = 2;
375 int len = 0;
376 int mbtk_ftp_type = -1;
377 if(!getExtString(parameter_values_p, 0, ftp_type, addr_len_max, &len, ""))
378 {
379 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
380 LOG("Get FTP PASS Fail.");
381 break;
382 }
383 //FTP_DATA_TYPE_I = 2 FTP_DATA_TYPE_A = 0
384 if(strstr(ftp_type,"A") != NULL)
385 mbtk_ftp_type = 0;
386 else if(strstr(ftp_type,"I") != NULL)
387 mbtk_ftp_type = 2;
388 else
389 {
390 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
391 LOG("Get FTP PASS Fail.");
392 break;
393 }
394 MBTK_FUNC(mbtk_at_ftp)(5,NULL, NULL, NULL, NULL, NULL, mbtk_ftp_type, NULL);
395
396 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
397 break;
398 }
399 default:
400 {
401 break;
402 }
403 }
404
405 return ret;
406}
407
408utlReturnCode_T MBTK_AT_CFTPMKD_PROCESS(const utlAtParameterOp_T op,
409 const char *command_name_p,
410 const utlAtParameterValue_P2c parameter_values_p,
411 const size_t num_parameters,
412 const char *info_text_p,
413 unsigned int *xid_p,
414 void *arg_p)
415{
416 UNUSEDPARAM(command_name_p);
417 UNUSEDPARAM(num_parameters);
418 UNUSEDPARAM(info_text_p);
419
420 utlReturnCode_T ret = utlFAILED;
421 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
422 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
423 *xid_p = At_handle;
424 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
425
426 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
427
428 pthread_t mbtk_at_thread_ID; //定义线程id
429 pthread_create(&mbtk_at_thread_ID, NULL, &mbtk_at_printf, NULL);
430 pthread_detach(mbtk_at_thread_ID); //设置线程结束收
431
432 switch(op)
433 {
434 case TEL_EXT_GET_CMD :
435 {
436 static char remote_size[MBTK_AT_FTP_DIR_LEN_MAX+1];
437 memset(remote_size, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
438
439 MBTK_FUNC(mbtk_at_get_ftp_data_info)(remote_size,NULL,NULL,NULL,NULL);
440
441 sprintf(resp_buf, "+CFTPLIST: \"%s\"\r\n",remote_size);
442 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
443 break;
444 }
445 case TEL_EXT_SET_CMD :
446 {
447 static char dir[MBTK_AT_FTP_DIR_LEN_MAX];
448 int dir_len_max = MBTK_AT_FTP_DIR_LEN_MAX;
449 int len = 0;
450 memset(dir, 0x0, MBTK_AT_FTP_DIR_LEN_MAX);
451 if(!getExtString(parameter_values_p, 0, dir, dir_len_max, &len, ""))
452 {
453 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
454 LOG("Get FTP MKDIR Fail.");
455 break;
456 }
457 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
458 MBTK_FUNC(mbtk_at_ftp_mkrmdel)(0,dir);
459 break;
460 }
461 default:
462 {
463 break;
464 }
465 }
466
467 return ret;
468}
469
470utlReturnCode_T MBTK_AT_CFTPRMD_PROCESS(const utlAtParameterOp_T op,
471 const char *command_name_p,
472 const utlAtParameterValue_P2c parameter_values_p,
473 const size_t num_parameters,
474 const char *info_text_p,
475 unsigned int *xid_p,
476 void *arg_p)
477{
478 UNUSEDPARAM(command_name_p);
479 UNUSEDPARAM(num_parameters);
480 UNUSEDPARAM(info_text_p);
481
482 utlReturnCode_T ret = utlFAILED;
483 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
484 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
485 *xid_p = At_handle;
486 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
487
488 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
489
490 pthread_t mbtk_at_thread_ID; //定义线程id
491 pthread_create(&mbtk_at_thread_ID, NULL, &mbtk_at_printf, NULL);
492 pthread_detach(mbtk_at_thread_ID); //设置线程结束收
493
494 switch(op)
495 {
496 case TEL_EXT_GET_CMD :
497 {
498 static char remote_size[MBTK_AT_FTP_DIR_LEN_MAX+1];
499 memset(remote_size, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
500
501 MBTK_FUNC(mbtk_at_get_ftp_data_info)(remote_size,NULL,NULL,NULL,NULL);
502
503 sprintf(resp_buf, "+CFTPMKD: \"%s\"\r\n",remote_size);
504 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
505 break;
506 }
507 case TEL_EXT_SET_CMD :
508 {
509 static char dir[MBTK_AT_FTP_DIR_LEN_MAX];
510 int dir_len_max = MBTK_AT_FTP_DIR_LEN_MAX;
511 int len = 0;
512 memset(dir, 0x0, MBTK_AT_FTP_DIR_LEN_MAX);
513 if(!getExtString(parameter_values_p, 0, dir, dir_len_max, &len, ""))
514 {
515 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
516 LOG("Get FTP RMDIR Fail.");
517 break;
518 }
519 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
520 MBTK_FUNC(mbtk_at_ftp_mkrmdel)(1,dir);
521 break;
522 }
523 default:
524 {
525 break;
526 }
527 }
528
529 return ret;
530}
531
532utlReturnCode_T MBTK_AT_CFTPDEL_PROCESS(const utlAtParameterOp_T op,
533 const char *command_name_p,
534 const utlAtParameterValue_P2c parameter_values_p,
535 const size_t num_parameters,
536 const char *info_text_p,
537 unsigned int *xid_p,
538 void *arg_p)
539{
540 UNUSEDPARAM(command_name_p);
541 UNUSEDPARAM(num_parameters);
542 UNUSEDPARAM(info_text_p);
543
544 utlReturnCode_T ret = utlFAILED;
545 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
546 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
547 *xid_p = At_handle;
548 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
549
550 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
551
552 pthread_t mbtk_at_thread_ID; //定义线程id
553 pthread_create(&mbtk_at_thread_ID, NULL, &mbtk_at_printf, NULL);
554 pthread_detach(mbtk_at_thread_ID); //设置线程结束收
555
556 switch(op)
557 {
558 case TEL_EXT_GET_CMD :
559 {
560 static char remote_size[MBTK_AT_FTP_DIR_LEN_MAX+1];
561 memset(remote_size, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
562
563 MBTK_FUNC(mbtk_at_get_ftp_data_info)(remote_size,NULL,NULL,NULL,NULL);
564
565 sprintf(resp_buf, "+CFTPDELE: \"%s\"\r\n",remote_size);
566 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
567 break;
568 }
569 case TEL_EXT_SET_CMD :
570 {
571 static char dir[MBTK_AT_FTP_DIR_LEN_MAX];
572 int dir_len_max = MBTK_AT_FTP_DIR_LEN_MAX;
573 int len = 0;
574 memset(dir, 0x0, MBTK_AT_FTP_DIR_LEN_MAX);
575 if(!getExtString(parameter_values_p, 0, dir, dir_len_max, &len, ""))
576 {
577 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
578 LOG("Get FTP DEL FILE Fail.");
579 break;
580 }
581 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
582 MBTK_FUNC(mbtk_at_ftp_mkrmdel)(2,dir);
583 break;
584 }
585 default:
586 {
587 break;
588 }
589 }
590
591 return ret;
592}
593
594utlReturnCode_T MBTK_AT_CFTPPUTFILE_PROCESS(const utlAtParameterOp_T op,
595 const char *command_name_p,
596 const utlAtParameterValue_P2c parameter_values_p,
597 const size_t num_parameters,
598 const char *info_text_p,
599 unsigned int *xid_p,
600 void *arg_p)
601{
602 UNUSEDPARAM(command_name_p);
603 UNUSEDPARAM(num_parameters);
604 UNUSEDPARAM(info_text_p);
605
606 utlReturnCode_T ret = utlFAILED;
607 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
608 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
609 *xid_p = At_handle;
610 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
611
612 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
613
614 pthread_t mbtk_at_thread_ID; //定义线程id
615 pthread_create(&mbtk_at_thread_ID, NULL, &mbtk_at_printf, NULL);
616 pthread_detach(mbtk_at_thread_ID); //设置线程结束收
617
618 switch(op)
619 {
620 case TEL_EXT_GET_CMD :
621 {
622 int rest_size = -1;
623 static char remote_size[MBTK_AT_FTP_DIR_LEN_MAX+1];
624 static char local_path[MBTK_AT_FTP_DIR_LEN_MAX+1];
625 memset(remote_size, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
626 memset(local_path, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
627
628 MBTK_FUNC(mbtk_at_get_ftp_data_info)(remote_size,local_path,&rest_size,NULL,NULL);
629
630 sprintf(resp_buf, "+CFTPPUTFILE: \"%s\", \"%s\",<%d>\r\n",remote_size,local_path,rest_size);
631 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
632 break;
633 }
634 case TEL_EXT_SET_CMD :
635 {
636 int rest_size;
637 static char remote_path[MBTK_AT_FTP_DIR_LEN_MAX+1];
638 static char local_path[MBTK_AT_FTP_DIR_LEN_MAX+1];
639 int dir_len_max = MBTK_AT_FTP_DIR_LEN_MAX;
640 int len = 0;
641 memset(remote_path, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
642 memset(local_path, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
643 if(!getExtString(parameter_values_p, 0, remote_path, dir_len_max, &len, ""))
644 {
645 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
646 LOG("Get FTP DEL FILE Fail.");
647 break;
648 }
649 if(!getExtString(parameter_values_p, 1, local_path, dir_len_max, &len, ""))
650 {
651 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
652 LOG("Get FTP DEL FILE Fail.");
653 break;
654 }
655 if(!getExtValue(parameter_values_p, 2, &rest_size, 0, 2147483647, 0))
656 {
657 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
658 break;
659 }
660 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
661 MBTK_FUNC(mbtk_at_ftp_upload)(remote_path,local_path,0,rest_size);
662 break;
663 }
664 default:
665 {
666 break;
667 }
668 }
669
670 return ret;
671}
672
673utlReturnCode_T MBTK_AT_CFTPPUT_PROCESS(const utlAtParameterOp_T op,
674 const char *command_name_p,
675 const utlAtParameterValue_P2c parameter_values_p,
676 const size_t num_parameters,
677 const char *info_text_p,
678 unsigned int *xid_p,
679 void *arg_p)
680{
681 UNUSEDPARAM(command_name_p);
682 UNUSEDPARAM(num_parameters);
683 UNUSEDPARAM(info_text_p);
684
685 utlReturnCode_T ret = utlFAILED;
686 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
687 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
688 *xid_p = At_handle;
689 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
690
691 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
692
693 pthread_t mbtk_at_thread_ID; //定义线程id
694 pthread_create(&mbtk_at_thread_ID, NULL, &mbtk_at_printf, NULL);
695 pthread_detach(mbtk_at_thread_ID); //设置线程结束收
696
697 switch(op)
698 {
699 case TEL_EXT_GET_CMD :
700 {
701 int rest_size = -1;
702 int put_len = -1;
703 static char remote_size[MBTK_AT_FTP_DIR_LEN_MAX+1];
704 memset(remote_size, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
705
706 MBTK_FUNC(mbtk_at_get_ftp_data_info)(remote_size,NULL,&rest_size,NULL,&put_len);
707
708 sprintf(resp_buf, "+CFTPPUT: \"%s\",<%d>,<%d>\r\n",remote_size,rest_size,put_len);
709 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
710 break;
711
712 }
713 case TEL_EXT_SET_CMD :
714 {
715 static char remote_path[MBTK_AT_FTP_DIR_LEN_MAX];
716 int dir_len_max = MBTK_AT_FTP_DIR_LEN_MAX;
717 int len = 0;
718 int rest_size;
719 int put_len;
720 memset(remote_path, 0x0, MBTK_AT_FTP_DIR_LEN_MAX);
721 if(!getExtString(parameter_values_p, 0, remote_path, dir_len_max, &len, ""))
722 {
723 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
724 LOG("Get FTP DEL FILE Fail.");
725 break;
726 }
727 if(!getExtValue(parameter_values_p, 1, &rest_size, 0, 2147483647, 0))
728 {
729 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
730 break;
731 }
732 if(!getExtValue(parameter_values_p, 2, &put_len, 1, 1500, 0))
733 {
734 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
735 break;
736 }
737 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
738 MBTK_FUNC(mbtk_at_ftp_upload)(remote_path,NULL,put_len,rest_size);
739 break;
740 }
741 default:
742 {
743 break;
744 }
745 }
746
747 return ret;
748}
749
750utlReturnCode_T MBTK_AT_CFTPGETFILE_PROCESS(const utlAtParameterOp_T op,
751 const char *command_name_p,
752 const utlAtParameterValue_P2c parameter_values_p,
753 const size_t num_parameters,
754 const char *info_text_p,
755 unsigned int *xid_p,
756 void *arg_p)
757{
758 UNUSEDPARAM(command_name_p);
759 UNUSEDPARAM(num_parameters);
760 UNUSEDPARAM(info_text_p);
761
762 utlReturnCode_T ret = utlFAILED;
763 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
764 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
765 *xid_p = At_handle;
766 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
767
768 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
769
770 pthread_t mbtk_at_thread_ID; //定义线程id
771 pthread_create(&mbtk_at_thread_ID, NULL, &mbtk_at_printf, NULL);
772 pthread_detach(mbtk_at_thread_ID); //设置线程结束收
773
774 switch(op)
775 {
776 case TEL_EXT_GET_CMD :
777 {
778 int rest_size = -1;
779 int read_size = -1;
780 static char remote_size[MBTK_AT_FTP_DIR_LEN_MAX+1];
781 static char local_path[MBTK_AT_FTP_DIR_LEN_MAX+1];
782 memset(remote_size, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
783 memset(local_path, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
784
785 MBTK_FUNC(mbtk_at_get_ftp_data_info)(remote_size,local_path,&rest_size,&read_size,NULL);
786
787 sprintf(resp_buf, "+CFTPGETFILE: \"%s\", \"%s\",<%d>, <%d>\r\n",remote_size,local_path,rest_size,read_size);
788 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
789 break;
790 }
791 case TEL_EXT_SET_CMD :
792 {
793 static char remote_path[MBTK_AT_FTP_DIR_LEN_MAX+1];
794 static char local_path[MBTK_AT_FTP_DIR_LEN_MAX+1];
795 int dir_len_max = MBTK_AT_FTP_DIR_LEN_MAX;
796 int len = 0;
797 int rest_size;
798 int read_size;
799 memset(remote_path, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
800 memset(local_path, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
801 if(!getExtString(parameter_values_p, 0, remote_path, dir_len_max, &len, ""))
802 {
803 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
804 LOG("Get FTP DEL FILE Fail.");
805 break;
806 }
807 if(!getExtString(parameter_values_p, 1, local_path, dir_len_max, &len, ""))
808 {
809 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
810 LOG("Get FTP DEL FILE Fail.");
811 break;
812 }
813 if(!getExtValue(parameter_values_p, 2, &rest_size, 0, 2147483647, 0))
814 {
815 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
816 break;
817 }
818 if(!getExtValue(parameter_values_p, 3, &read_size, 0, 524288, 0))
819 {
820 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
821 break;
822 }
823 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
824 MBTK_FUNC(mbtk_at_ftp_download)(remote_path,local_path,0,rest_size,read_size);
825 break;
826 }
827 default:
828 {
829 break;
830 }
831 }
832
833 return ret;
834
835}
836
837utlReturnCode_T MBTK_AT_CFTPGET_PROCESS(const utlAtParameterOp_T op,
838 const char *command_name_p,
839 const utlAtParameterValue_P2c parameter_values_p,
840 const size_t num_parameters,
841 const char *info_text_p,
842 unsigned int *xid_p,
843 void *arg_p)
844{
845 UNUSEDPARAM(command_name_p);
846 UNUSEDPARAM(num_parameters);
847 UNUSEDPARAM(info_text_p);
848
849 utlReturnCode_T ret = utlFAILED;
850 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
851 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
852 *xid_p = At_handle;
853 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
854
855 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
856
857 pthread_t mbtk_at_thread_ID; //定义线程id
858 pthread_create(&mbtk_at_thread_ID, NULL, &mbtk_at_printf, NULL);
859 pthread_detach(mbtk_at_thread_ID); //设置线程结束收
860
861 switch(op)
862 {
863 case TEL_EXT_GET_CMD :
864 {
865 int rest_size = -1;
866 static char remote_size[MBTK_AT_FTP_DIR_LEN_MAX+1];
867 memset(remote_size, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
868
869 MBTK_FUNC(mbtk_at_get_ftp_data_info)(remote_size,NULL,&rest_size,NULL,NULL);
870
871 sprintf(resp_buf, "+CFTPGET: \"%s\",<%d>\r\n",remote_size,rest_size);
872 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
873 break;
874 }
875 case TEL_EXT_SET_CMD :
876 {
877 static char remote_path[MBTK_AT_FTP_DIR_LEN_MAX+1];
878 int dir_len_max = MBTK_AT_FTP_DIR_LEN_MAX;
879 int len = 0;
880 int rest_size;
881 int read_size;
882 memset(remote_path, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
883 if(!getExtString(parameter_values_p, 0, remote_path, dir_len_max, &len, ""))
884 {
885 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
886 LOG("Get FTP DEL FILE Fail.");
887 break;
888 }
889 if(!getExtValue(parameter_values_p, 1, &rest_size, 0, 2147483647, 0))
890 {
891 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
892 break;
893 }
894 if(!getExtValue(parameter_values_p, 2, &read_size, 0, 524288, 0))
895 {
896 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
897 break;
898 }
899 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
900 MBTK_FUNC(mbtk_at_ftp_download)(remote_path,NULL,1,rest_size,read_size);
901 break;
902 }
903 default:
904 {
905 break;
906 }
907 }
908
909 return ret;
910
911}
912
913utlReturnCode_T MBTK_AT_CFTPLIST_PROCESS(const utlAtParameterOp_T op,
914 const char *command_name_p,
915 const utlAtParameterValue_P2c parameter_values_p,
916 const size_t num_parameters,
917 const char *info_text_p,
918 unsigned int *xid_p,
919 void *arg_p)
920{
921 UNUSEDPARAM(command_name_p);
922 UNUSEDPARAM(num_parameters);
923 UNUSEDPARAM(info_text_p);
924
925 utlReturnCode_T ret = utlFAILED;
926 TelAtParserID sAtp_index = *(TelAtParserID *)arg_p;
927 unsigned int At_handle = MAKE_AT_HANDLE(sAtp_index);
928 *xid_p = At_handle;
929 char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
930
931 LOG("MBTK_AT_MTEST_PROCESS enter with command_op [%s]", op2str(op));
932
933 pthread_t mbtk_at_thread_ID; //定义线程id
934 pthread_create(&mbtk_at_thread_ID, NULL, &mbtk_at_printf, NULL);
935 pthread_detach(mbtk_at_thread_ID); //设置线程结束收尸
936
937 switch(op)
938 {
939 case TEL_EXT_GET_CMD :
940 {
941 int rest_size = -1;
942 static char remote_size[MBTK_AT_FTP_DIR_LEN_MAX+1];
943 memset(remote_size, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
944
945 MBTK_FUNC(mbtk_at_get_ftp_data_info)(remote_size,NULL,NULL,NULL,NULL);
946
947 sprintf(resp_buf, "+CFTPLIST: \"%s\"\r\n",remote_size);
948 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, resp_buf);
949 break;
950
951 }
952 case TEL_EXT_SET_CMD :
953 {
954 static char dir[MBTK_AT_FTP_DIR_LEN_MAX+1];
955 int dir_len_max = MBTK_AT_FTP_DIR_LEN_MAX;
956 int len = 0;
957 memset(dir, 0x0, MBTK_AT_FTP_DIR_LEN_MAX+1);
958 if(!getExtString(parameter_values_p, 0, dir, dir_len_max, &len, ""))
959 {
960 ret = ATRESP(At_handle, ATCI_RESULT_CODE_ERROR, 0, NULL);
961 LOG("Get FTP RMDIR Fail.");
962 break;
963 }
964 ret = ATRESP(At_handle, ATCI_RESULT_CODE_OK, 0, NULL);
965 MBTK_FUNC(mbtk_at_ftp_list)(dir);
966 break;
967 }
968 default:
969 {
970 break;
971 }
972 }
973
974 return ret;
975}
976