±¾ÎÄÖ÷ÒªÏêϸ˵Ã÷ƽ̨ÄÚ²¿À©Õ¹atÃüÁîµÄ×¢²á¡¢´¦ÀíÁ÷³Ì£¬ÎªÆ½Ì¨ÄÚ²¿À©Õ¹atÃüÁ·¢Ìṩָµ¼¡£ | |
±¾Ä¿Â¼ÏµÄext_clt_func.c¡¢ext_ser_func.cºÍext_demo_func.hΪʾÀý²Î¿¼´úÂë¡£ | |
ƽ̨ÄÚÒª¿ª·¢Ò»¸öÀ©Õ¹atÃüÁÊ×ÏȱØÐëÔÚlibatext¿âµÄext_regist_init½Ó¿Úµ±ÖÐ×¢²á¸ÃatÃüÁî | |
1¡¢À©Õ¹at ¿Í»§¶ËµÄ×¢²áºÍ´¦Àí | |
a¡¢À©Õ¹at¿Í»§¶ËµÄ×¢²á | |
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) | |
ÆäÖÐ: | |
position±íʾ¸Ã¿Í»§¶ËʹÓÃatͨµÀµÄλÖ㬼´ÔÚ±¾cpuÄÚ²¿£¬Î»Öÿ¿½ümodemÐÒéÕ»(NEAR_PS)£¬»¹ÊÇÔ¶ÀëmodemÐÒéÕ»(FAR_PS)£» | |
at_cmd_prefix±íʾÀ©Õ¹atÃüÁîµÄǰ׺ÐÅÏ¢£» | |
req_msg_idΪ±¾Ä£¿é·¢Ë͸øat_ctlÓ¦ÓõÄÏûÏ¢id£¬ÓÃÓÚ´¥·¢atÇëÇóÁ÷³Ì£¬±ØÐëÔÚlibatext¿âÖеÄext_regist.hÖж¨Òå | |
rsp_msg_idΪat_ctlÓ¦Óô¦ÀíÍêÉÏÃæµÄatÇëÇóÁ÷³Ìºó£¬·¢Ë͸ÃÏûÏ¢id¸ø±¾Ä£¿é£¬±íʾat¿Í»§¶ËÁ÷³Ì½áÊø£»±ØÐëÓëreq_msg_idÔÚlibatext¿âÖеÄext_regist.hÖÐÒ»Æð¶¨Òå | |
req_proc ÏûÏ¢´¦Àíº¯Êý£¬at_ctlÓ¦ÓÃÔÚ½ÓÊÕµ½ÏûÏ¢idΪreq_msg_idʱ£¬¾Í»áµ÷Óô¦Àíº¯Êý£¬´¦Àí±¾Ä£¿é·¢Ë͸øat_ctlµÄÏûÏ¢£» | |
ok_act À©Õ¹atÃüÁîµÄokÏìÓ¦´¦Àíº¯Êý | |
err_actÀ©Õ¹atÃüÁîµÄerrÏìÓ¦´¦Àíº¯Êý | |
inform_act_funcÀ©Õ¹atÃüÁîµÄÖ÷¶¯Éϱ¨/Öмä½á¹ûÉϱ¨´¦Àíº¯Êý | |
b¡¢ÔÚ¸ÃÀ©Õ¹at ÅäÌ×µÄÓ¦Óýø³Ì/Ä£¿éÖУ¬µ±ÐèÒª´¥·¢at ¿Í»§¶Ëʱ£¬·¢ËÍ×¢²áµÄreq_msg_idÏûÏ¢id¸øat_ctl,²¢ÔÚÏûÏ¢ÄÚÈÝÖÐЯ´øÏìÓ¦²ÎÊý£»at_ctl½ÓÊÕµ½¸ÃÏûÏ¢ºó£¬µ÷ÓÃÉÏÃæ×¢²áµÄreq_procº¯Êý£¬½«ÏûϢת»»¸øÏàÓ¦µÄatÇëÇóÃüÁ | |
at_ctlÔÚ½ÓÊÕµ½okÏìÓ¦¡¢errorÏìÓ¦¡¢Ö÷¶¯Éϱ¨/Öмä½á¹ûÉϱ¨ºó£¬»á·Ö±ðµ÷ÓÃÉÏÃæ×¢²áµÄok_act¡¢err_act¡¢auto_act´¦Àí£¬ÆäÖпͻ§¶Ë½öÖ§³ÖÒ»À´Ò»»ØµÄat½»»¥Á÷³Ì£¬Òò´Ëok_actºÍerr_actµÄ·µ»ØÖµ±ØÐëÊÇAT_END£» | |
ÔÚÀ©Õ¹at ¿Í»§¶ËµÄatÇëÇóÁ÷³Ì½áÊøÖ®ºó£¬at_ctl½«ÉÏÃæok_act/err_act´¦Àí½á¹û£¬·¢ËÍÏûÏ¢¸ø¸ÃÅäÌ×½ø³Ì/Ä£¿é£¬ÏûÏ¢idΪrsp_msg_id£¬£¬±íʾ±¾´Îat¿Í»§¶ËÁ÷³ÌÒѽáÊø£» | |
c¡¢ ¶ÔÓÚreq_proc´¦Àíº¯Êý£¬ÔÚ½«ÏûϢת»»atÇëÇóÃüÁîʱ£¬ÄÚ²¿±ØÐëµ÷ÓÃlibatutils¿âÖеĺ¯Êý£¬Éú³É¹Ì¶¨¸ñʽµÄatÇëÇóÃüÁ | |
/***************************************************************/ | |
// | |
//Éú³Éat¶¯×÷ÇëÇóÃüÁî,Ò»°ãÔÚapp_clt_ops_tÖÐreq_procº¯Êýµ÷Ó㬸ù¾ÝÏûÏ¢ÄÚÈÝ£¬Éú³É×îÖÕµÄatÇëÇóÃüÁî | |
//Éú³ÉatÇëÇóÃüÁîʱ£¬±ØÐëͨ¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓ㬠| |
//×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ | |
//input: cmd "xx" | |
// param "yy,zz" | |
//output: at+xx=yy,zz\r\n | |
/***************************************************************/ | |
char* at_act_build(char* cmd, char* param); | |
/***************************************************************/ | |
//Éú³Éat²éѯÇëÇóÃüÁһ°ãÔÚapp_clt_ops_tÖÐreq_procº¯Êýµ÷Ó㬸ù¾ÝÏûÏ¢ÄÚÈÝ£¬Éú³É×îÖÕµÄatÇëÇóÃüÁî | |
//Éú³Éat²éѯÃüÁîʱ£¬Í¨¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓ㬠| |
//×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ¡£¶ÔÓÚÀ©Õ¹atµÄ²éѯÇëÇóÃüÁ½öÖ§³Öat+xx?µÄ¸ñʽ | |
//input: cmd "xx" | |
//output: at+xx? \r\n | |
/***************************************************************/ | |
char* at_query_build(char* cmd); | |
2¡¢À©Õ¹at ·þÎñ¶ËµÄ×¢²áºÍ´¦Àí | |
a¡¢À©Õ¹at·þÎñ¶ËµÄ×¢²á | |
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) | |
ÆäÖÐ: | |
at_cmd_prefix±íʾÀ©Õ¹atÃüÁîǰ׺ | |
module_id ±íʾģ¿éID£¬at_ctlÓ¦ÓÃÔÚ½ÓÊÕµ½×¢²áÀ©Õ¹atÃüÁîºó£¬·¢ËÍÏûÏ¢¸ø¸ÃÄ£¿é£»¸ÃÄ£¿éid±ØÐëÔÚmessage.hÖж¨Òå | |
req_msg_id ±íʾÇëÇóÏûÏ¢id£¬at_ctlÓ¦ÓÃÔÚ½ÓÊÕµ½×¢²áÀ©Õ¹atÃüÁîºó£¬ÔÚ·¢ËÍÏûÏ¢¸ømodule_idʱµÄÏûÏ¢id£¬±ØÐëÔÚlibatext¿âÖеÄext_regist.hÖж¨Ò壻 | |
rsp_msg_id ±íʾÏìÓ¦ÏûÏ¢id£¬Ä£¿émodule_idÔÚ´¦ÀíÍêÉÏÃæµÄÇëÇóÏûÏ¢ºó£¬·¢ËÍÏûÏ¢idΪrsp_msg_idµÄÏûÏ¢¸øat_ctl£¬Í¨Öª´¦Àí½á¹û£»±ØÐëÓëreq_msg_idÔÚlibatext¿âÖеÄext_regist.hÖÐÒ»Æð¶¨Òå | |
req_rcv_act ×¢²áµÄ½ÓÊÕµ½À©Õ¹atÃüÁî´¦Àíº¯Êý£¬ÔÚat_ctl½ÓÊÕµ½À©Õ¹atÃüÁîºó£¬»áµ÷Óøô¦Àíº¯Êý£¬²¢½«´¦Àí½á¹û·¢Ë͸øÄ£¿émodule_id£¬ÏûÏ¢idΪreq_msg_id£» | |
rsp_act ×¢²áµÄ½ÓÊÕµ½Ä£¿émodule_idµÄÏìÓ¦ÏûÏ¢rsp_msg_idºó£¬µ÷Óøô¦Àíº¯Êý£¬´¦ÀíÏìÓ¦ÏûÏ¢£¬×ª»»ÎªatÏìÓ¦ÃüÁ | |
b¡¢at_ctlÓ¦ÓÃÔÚ½ÓÊÕµ½ÉÏÃæ×¢²áµÄÀ©Õ¹atÃüÁîºó£¬µ÷ÓÃ×¢²áµÄreq_rcv_act´¦Àíº¯Êý£¬½«À©Õ¹atÃüÁîת»»ÎªÏûÏ¢¸ñʽ£¬²¢·¢Ë͸øÄ£¿émodule_id£¬ÏûÏ¢idΪע²áµÄreq_msg_id£»Ä£¿émodule_idÔÚ´¦ÀíÍê¸ÃÏûÏ¢ºó£¬ | |
·¢ËÍÏìÓ¦ÏûÏ¢¸øat_ctlÓ¦Óã¬ÏûÏ¢idΪע²áµÄrsp_msg_id£¬at_ctlÔÚ½ÓÊÕµ½ÏìÓ¦ÏûÏ¢ºó£¬µ÷ÓÃrsp_act£¬½«ÏìÓ¦ÏûÏ¢£¬×ª»»ÎªatÏìÓ¦ÃüÁ | |
c¡¢¶ÔÓÚrsp_act´¦Àíº¯Êý£¬½«ÏìÓ¦ÏûϢת»»¸øatÏìÓ¦ÃüÁîʱ£¬ÄÚ²¿±ØÐëµ÷ÓÃlibatutils¿âÖеĺ¯Êý£¬Éú³É¹Ì¶¨¸ñʽµÄatÏìÓ¦ÃüÁ | |
/***************************************************************/ | |
//Éú³Éat²éѯÇëÇóÃüÁîµÄÏìÓ¦ÃüÁµ±ÓÐÖмä½á¹ûÉϱ¨Ê±£¬ÔÚser_ops_tµÄrsp_actµ÷Ó㬠| |
//¸Ãº¯ÊýÖн«ÖмäÉϱ¨½á¹ûºÍokatÃüÁî×é×°ÔÚÒ»Æð£¬Í¨¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø | |
//¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓã¬×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ | |
//input: cmd "xx" | |
// param "yy,zz" | |
//output: \r\n+xx:yy,zz\r\n | |
/***************************************************************/ | |
char* at_query_result_build(char* cmd, char* param); | |
/***************************************************************/ | |
//Éú³ÉatµÄokÏìÓ¦ÃüÁ¸ù¾Ý²ÎÊýÐÅÏ¢Éú³É²»Í¬µÄokÏìÓ¦ÃüÁî | |
//ͨ¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓã¬×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ | |
//output: \r\nok:xx | |
/***************************************************************/ | |
char* at_ok_build(); | |
/***************************************************************/ | |
//Éú³ÉatµÄerrÏìÓ¦ÃüÁ¸ù¾Ý²ÎÊýÐÅÏ¢Éú³É²»Í¬µÄerrÏìÓ¦ÃüÁî | |
//ͨ¹ýmallocÉêÇëʹÓõÄÄڴ棬²¢·µ»Ø¸ÃÖ¸Õë¸øÍâ²ãµ÷Óú¯ÊýʹÓã¬×îÖÕÓÉÍâ²ãµ÷Óú¯ÊýÊͷŸÃÄÚ´æ | |
//input: param xx | |
//output: \r\nerr:xx | |
/***************************************************************/ | |
char* at_err_build(int param); | |