blob: 061a19f6040b018ab70bf4d9e13281023e395aba [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001±¾ÎÄÖ÷ÒªÏêϸ˵Ã÷ƽ̨ÄÚ²¿À©Õ¹atÃüÁîµÄ×¢²á¡¢´¦ÀíÁ÷³Ì£¬ÎªÆ½Ì¨ÄÚ²¿À©Õ¹atÃüÁ·¢Ìṩָµ¼¡£
2
3±¾Ä¿Â¼ÏµÄext_clt_func.c¡¢ext_ser_func.cºÍext_demo_func.hΪʾÀý²Î¿¼´úÂë¡£
4
5ƽ̨ÄÚÒª¿ª·¢Ò»¸öÀ©Õ¹atÃüÁÊ×ÏȱØÐëÔÚlibatext¿âµÄext_regist_init½Ó¿Úµ±ÖÐ×¢²á¸ÃatÃüÁî
6
71¡¢À©Õ¹at ¿Í»§¶ËµÄ×¢²áºÍ´¦Àí
8
9 a¡¢À©Õ¹at¿Í»§¶ËµÄ×¢²á
10 int register_extclt_func(int position,char *at_cmd_prefix,int req_msg_id,int rsp_msg_id,clt_req_func req_proc,clt_ok_func ok_act,clt_err_func err_act, inform_act_func inform_act)
11
12 ÆäÖÐ:
13 position±íʾ¸Ã¿Í»§¶ËʹÓÃatͨµÀµÄλÖ㬼´ÔÚ±¾cpuÄÚ²¿£¬Î»Öÿ¿½ümodemЭÒéÕ»(NEAR_PS)£¬»¹ÊÇÔ¶ÀëmodemЭÒéÕ»(FAR_PS)£»
14 at_cmd_prefix±íʾÀ©Õ¹atÃüÁîµÄǰ׺ÐÅÏ¢£»
15 req_msg_idΪ±¾Ä£¿é·¢Ë͸øat_ctlÓ¦ÓõÄÏûÏ¢id£¬ÓÃÓÚ´¥·¢atÇëÇóÁ÷³Ì£¬±ØÐëÔÚlibatext¿âÖеÄext_regist.hÖж¨Òå
16 rsp_msg_idΪat_ctlÓ¦Óô¦ÀíÍêÉÏÃæµÄatÇëÇóÁ÷³Ìºó£¬·¢Ë͸ÃÏûÏ¢id¸ø±¾Ä£¿é£¬±íʾat¿Í»§¶ËÁ÷³Ì½áÊø£»±ØÐëÓëreq_msg_idÔÚlibatext¿âÖеÄext_regist.hÖÐÒ»Æð¶¨Òå
17 req_proc ÏûÏ¢´¦Àíº¯Êý£¬at_ctlÓ¦ÓÃÔÚ½ÓÊÕµ½ÏûÏ¢idΪreq_msg_idʱ£¬¾Í»áµ÷Óô¦Àíº¯Êý£¬´¦Àí±¾Ä£¿é·¢Ë͸øat_ctlµÄÏûÏ¢£»
18 ok_act À©Õ¹atÃüÁîµÄokÏìÓ¦´¦Àíº¯Êý
19 err_actÀ©Õ¹atÃüÁîµÄerrÏìÓ¦´¦Àíº¯Êý
20 inform_act_funcÀ©Õ¹atÃüÁîµÄÖ÷¶¯Éϱ¨/Öмä½á¹ûÉϱ¨´¦Àíº¯Êý
21
22 b¡¢ÔÚ¸ÃÀ©Õ¹at ÅäÌ×µÄÓ¦Óýø³Ì/Ä£¿éÖУ¬µ±ÐèÒª´¥·¢at ¿Í»§¶Ëʱ£¬·¢ËÍ×¢²áµÄreq_msg_idÏûÏ¢id¸øat_ctl,²¢ÔÚÏûÏ¢ÄÚÈÝÖÐЯ´øÏìÓ¦²ÎÊý£»at_ctl½ÓÊÕµ½¸ÃÏûÏ¢ºó£¬µ÷ÓÃÉÏÃæ×¢²áµÄreq_procº¯Êý£¬½«ÏûϢת»»¸øÏàÓ¦µÄatÇëÇóÃüÁ
23 at_ctlÔÚ½ÓÊÕµ½okÏìÓ¦¡¢errorÏìÓ¦¡¢Ö÷¶¯Éϱ¨/Öмä½á¹ûÉϱ¨ºó£¬»á·Ö±ðµ÷ÓÃÉÏÃæ×¢²áµÄok_act¡¢err_act¡¢auto_act´¦Àí£¬ÆäÖпͻ§¶Ë½öÖ§³ÖÒ»À´Ò»»ØµÄat½»»¥Á÷³Ì£¬Òò´Ëok_actºÍerr_actµÄ·µ»ØÖµ±ØÐëÊÇAT_END£»
24 ÔÚÀ©Õ¹at ¿Í»§¶ËµÄatÇëÇóÁ÷³Ì½áÊøÖ®ºó£¬at_ctl½«ÉÏÃæok_act/err_act´¦Àí½á¹û£¬·¢ËÍÏûÏ¢¸ø¸ÃÅäÌ×½ø³Ì/Ä£¿é£¬ÏûÏ¢idΪrsp_msg_id£¬£¬±íʾ±¾´Îat¿Í»§¶ËÁ÷³ÌÒѽáÊø£»
25
26 c¡¢ ¶ÔÓÚreq_proc´¦Àíº¯Êý£¬ÔÚ½«ÏûϢת»»atÇëÇóÃüÁîʱ£¬ÄÚ²¿±ØÐëµ÷ÓÃlibatutils¿âÖеĺ¯Êý£¬Éú³É¹Ì¶¨¸ñʽµÄatÇëÇóÃüÁ
27
28 /***************************************************************/
29 //
30 //Éú³Éat¶¯×÷ÇëÇóÃüÁî,Ò»°ãÔÚapp_clt_ops_tÖÐreq_procº¯Êýµ÷Ó㬸ù¾ÝÏûÏ¢ÄÚÈÝ£¬Éú³É×îÖÕµÄatÇëÇóÃüÁî
31 //Éú³ÉatÇëÇóÃüÁîʱ£¬±ØÐëͨ¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓã¬
32 //×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ
33 //input: cmd "xx"
34 // param "yy,zz"
35 //output: at+xx=yy,zz\r\n
36 /***************************************************************/
37 char* at_act_build(char* cmd, char* param);
38
39
40
41 /***************************************************************/
42 //Éú³Éat²éѯÇëÇóÃüÁһ°ãÔÚapp_clt_ops_tÖÐreq_procº¯Êýµ÷Ó㬸ù¾ÝÏûÏ¢ÄÚÈÝ£¬Éú³É×îÖÕµÄatÇëÇóÃüÁî
43 //Éú³Éat²éѯÃüÁîʱ£¬Í¨¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓã¬
44 //×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ¡£¶ÔÓÚÀ©Õ¹atµÄ²éѯÇëÇóÃüÁ½öÖ§³Öat+xx?µÄ¸ñʽ
45 //input: cmd "xx"
46 //output: at+xx? \r\n
47 /***************************************************************/
48 char* at_query_build(char* cmd);
49
50
512¡¢À©Õ¹at ·þÎñ¶ËµÄ×¢²áºÍ´¦Àí
52 a¡¢À©Õ¹at·þÎñ¶ËµÄ×¢²á
53 int register_serv_func2(char *at_cmd_prefix,int module_id,int req_msg_id,int rsp_msg_id,ser_req_func2 req_rcv_act,app_rsp_proc rsp_act)
54 ÆäÖÐ:
55 at_cmd_prefix±íʾÀ©Õ¹atÃüÁîǰ׺
56 module_id ±íʾģ¿éID£¬at_ctlÓ¦ÓÃÔÚ½ÓÊÕµ½×¢²áÀ©Õ¹atÃüÁîºó£¬·¢ËÍÏûÏ¢¸ø¸ÃÄ£¿é£»¸ÃÄ£¿éid±ØÐëÔÚmessage.hÖж¨Òå
57 req_msg_id ±íʾÇëÇóÏûÏ¢id£¬at_ctlÓ¦ÓÃÔÚ½ÓÊÕµ½×¢²áÀ©Õ¹atÃüÁîºó£¬ÔÚ·¢ËÍÏûÏ¢¸ømodule_idʱµÄÏûÏ¢id£¬±ØÐëÔÚlibatext¿âÖеÄext_regist.hÖж¨Ò壻
58 rsp_msg_id ±íʾÏìÓ¦ÏûÏ¢id£¬Ä£¿émodule_idÔÚ´¦ÀíÍêÉÏÃæµÄÇëÇóÏûÏ¢ºó£¬·¢ËÍÏûÏ¢idΪrsp_msg_idµÄÏûÏ¢¸øat_ctl£¬Í¨Öª´¦Àí½á¹û£»±ØÐëÓëreq_msg_idÔÚlibatext¿âÖеÄext_regist.hÖÐÒ»Æð¶¨Òå
59 req_rcv_act ×¢²áµÄ½ÓÊÕµ½À©Õ¹atÃüÁî´¦Àíº¯Êý£¬ÔÚat_ctl½ÓÊÕµ½À©Õ¹atÃüÁîºó£¬»áµ÷Óøô¦Àíº¯Êý£¬²¢½«´¦Àí½á¹û·¢Ë͸øÄ£¿émodule_id£¬ÏûÏ¢idΪreq_msg_id£»
60 rsp_act ×¢²áµÄ½ÓÊÕµ½Ä£¿émodule_idµÄÏìÓ¦ÏûÏ¢rsp_msg_idºó£¬µ÷Óøô¦Àíº¯Êý£¬´¦ÀíÏìÓ¦ÏûÏ¢£¬×ª»»ÎªatÏìÓ¦ÃüÁ
61
62 b¡¢at_ctlÓ¦ÓÃÔÚ½ÓÊÕµ½ÉÏÃæ×¢²áµÄÀ©Õ¹atÃüÁîºó£¬µ÷ÓÃ×¢²áµÄreq_rcv_act´¦Àíº¯Êý£¬½«À©Õ¹atÃüÁîת»»ÎªÏûÏ¢¸ñʽ£¬²¢·¢Ë͸øÄ£¿émodule_id£¬ÏûÏ¢idΪע²áµÄreq_msg_id£»Ä£¿émodule_idÔÚ´¦ÀíÍê¸ÃÏûÏ¢ºó£¬
63 ·¢ËÍÏìÓ¦ÏûÏ¢¸øat_ctlÓ¦Óã¬ÏûÏ¢idΪע²áµÄrsp_msg_id£¬at_ctlÔÚ½ÓÊÕµ½ÏìÓ¦ÏûÏ¢ºó£¬µ÷ÓÃrsp_act£¬½«ÏìÓ¦ÏûÏ¢£¬×ª»»ÎªatÏìÓ¦ÃüÁ
64
65 c¡¢¶ÔÓÚrsp_act´¦Àíº¯Êý£¬½«ÏìÓ¦ÏûϢת»»¸øatÏìÓ¦ÃüÁîʱ£¬ÄÚ²¿±ØÐëµ÷ÓÃlibatutils¿âÖеĺ¯Êý£¬Éú³É¹Ì¶¨¸ñʽµÄatÏìÓ¦ÃüÁ
66 /***************************************************************/
67 //Éú³Éat²éѯÇëÇóÃüÁîµÄÏìÓ¦ÃüÁµ±ÓÐÖмä½á¹ûÉϱ¨Ê±£¬ÔÚser_ops_tµÄrsp_actµ÷Óã¬
68 //¸Ãº¯ÊýÖн«ÖмäÉϱ¨½á¹ûºÍokatÃüÁî×é×°ÔÚÒ»Æð£¬Í¨¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø
69 //¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓã¬×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ
70 //input: cmd "xx"
71 // param "yy,zz"
72 //output: \r\n+xx:yy,zz\r\n
73 /***************************************************************/
74 char* at_query_result_build(char* cmd, char* param);
75
76 /***************************************************************/
77 //Éú³ÉatµÄokÏìÓ¦ÃüÁ¸ù¾Ý²ÎÊýÐÅÏ¢Éú³É²»Í¬µÄokÏìÓ¦ÃüÁî
78 //ͨ¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓã¬×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ
79 //output: \r\nok:xx
80 /***************************************************************/
81 char* at_ok_build();
82
83
84 /***************************************************************/
85 //Éú³ÉatµÄerrÏìÓ¦ÃüÁ¸ù¾Ý²ÎÊýÐÅÏ¢Éú³É²»Í¬µÄerrÏìÓ¦ÃüÁî
86 //ͨ¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓã¬×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ
87 //input: param xx
88 //output: \r\nerr:xx
89 /***************************************************************/
90 char* at_err_build(int param);
91
92