yuezonghe | 824eb0c | 2024-06-27 02:32:26 -0700 | [diff] [blame] | 1 | ±¾ÎÄÖ÷ÒªÏêϸ˵Ã÷ƽ̨ÄÚ²¿À©Õ¹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 |
|
| 7 | 1¡¢À©Õ¹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 |
|
| 51 | 2¡¢À©Õ¹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 |
|