高通modem侧新增AT命令


modem侧新增AT命令

下面列举出与ATCoP相关的一些主要的资源目录:


filename

Description

Dsat.h

ATCoP外部模块使用的定义,函数和数据结构

Dsat.h

ATCoP外部模块使用的定义,函数和数据结构

Dsati.h

ATCoP内部使用的定义,函数和数据结构

Dsatprep.c

接收自串口设备的数据的预处理

Dsatpar.c

AT命令解析器,将命令行的AT命令解析到token结构中

Dsatcmdp.c

AT命令处理器,查找token结构中的包含的命令并从命令列表中调用相应的命令处理函数处理命令

Dsatrsp.c

产生AT命令响应和格式化

Dsatutil.c

产生AT命令处理器

Dsatparm.c

通用AT参数类型命令过程

Dsatarm.h

ATCoP内部使用的通用AT参数类型命令处理定义,函数和数据结构

Dsatact.c

通用ATactive type命令处理函数

Dsatact.h

通用AT动作类型命令处理的定义、函数和数据结构,供ATCoP内部模块使用

Dsatvend.c

通用AT指定提供商类型命令处理

Dsatvend.h

通用AT指定提供商类型命令处理的定义、函数和数据结构,供ATCoP内部模块使用

Dsatctab.c

通用AT命令表

Dsatctab.h

通用AT命令表定义、函数和数据结构,供ATCoP内部模块使用

Dsatcmif.c

通用呼叫管理接口

Dsatcmif.h

通用呼叫管理接口定义、函数和数据结构,供ATCoP内部模块使用

Dsatvoice.c

通用语音呼叫处理控制

Dsatvoice.h

通用语音呼叫处理控制的定义、函数和数据结构,供ATCoP内部模块使用

Dsatetsicall.c

ETSI呼叫控制命令处理

Dsatetsicall.h

ETSI呼叫控制命令处理的定义、函数和数据结构,供ATCoP内部模块使用

Dsatetsicmif.c

ETSI命令呼叫管理接口

Dsatetsicmif.h

ETSI命令呼叫管理接口的定义、函数和数据结构,供ATCoP内部模块使用

Dsatetsipkt.c

ETSI包数据命令处理

Dsatetsipkt.h

ETSI包数据命令处理的定义、函数和数据结构,供ATCoP内部模块使用

Dsatetsime.c

ETSI移动设备命令处理

Dsatetsime.h

ETSI移动设备命令处理的定义、函数和数据结构,供ATCoP内部模块使用

Dsatetsismsc.c

ETSI短消息服务命令处理

Dsatetsismsa.c

ETSI短消息服务异步事件处理

Dsatetsismsu.c

ETSI短消息服务命令处理实体

Dsatetsisms.h

ETSI短消息服务命令处理的定义、函数和数据结构,供ATCoP内部模块使用

Dsatetsismsi.h

ETSI短消息服务命令处理的定义、函数和数据结构,供ATCoP内部模块的短消息服务单元使用

Dsatetsictab.c

ETSIAT命令表

Dsatetsictab.h

ETSIAT命令表的定义、函数和数据结构,供ATCoP内部模块使用

Dsatetsitgt.c

顶层AT命令表,命令表指针数组,ETSI指定目标的命令表,同步事件处理表。定义ETSI目标支持的AT命令集

Dsatgsmfax.c

GSMfax命令处理

Dsatgsmfax.h

GSMfax命令处理的定义、函数和数据结构,供ATCoP内部模块使用

 

数据服务任务源文件列表:

filename

Description

Dstask.h

数据服务任务的外部或内部模块使用的定义,函数和数据结构

Dsatsk.c

数据服务任务和顶层分发

 

具体新增的过程:

以新增“+AGMR”为例。

1、 定义指针变量:

    在dsati.h下的dsat_ext_index_enum_type枚举数组中添加一个指针变量如下:

      DSAT_EXT_AGMR_IDX = 12039,

2、 建立AT命令和处理函数的映射:

    在dsatctab.c下的dsat_basic_table_ex[] 数据下添加映射:

      { DSAT_EXT_AGMR_IDX,    dsatact_exec_agmr_cmd },

 

3、 定义AT命令

  下面我们增加的是一个最简单的命令,name是”+AGMR”,属性是无参数。

    在dsatctab_ex.c下的dsat_ext_table[]数组中添加:

      { "+AGMR",     READ_ONLY| RESTRICTED,

            

 

SPECIAL_NONE,   0, DSAT_EXT_AGMR_IDX,   NULL },

 

4、 声明处理函数

    上面完成以后就能定义其实际的处理函数了,在定义之前,我们先要声明一下,在dsatact.h下添加:

dsat_result_enum_type dsatact_exec_agmr_cmd

(

 dsat_mode_enum_type  mode,              /* AT command mode:            */

 const dsati_cmd_type *parse_table,     /*  Ptr to cmd in parse table   */

 const tokens_struct_type *tok_ptr,     /*  Command tokens fromparser  */

 dsm_item_type *res_buff_ptr            /*  Place to put response       */

);

5、 定义处理函数, 在dsatact.c下添加:

/*test-add yangxiangbin*/

dsat_result_enum_typedsatact_exec_agmr_cmd( 

 dsat_mode_enum_type  mode,              /*  AT command mode:            */

 const dsati_cmd_type *parse_table,     /*  Ptr to cmd in parse table   */

 const tokens_struct_type *tok_ptr,     /*  Command tokens fromparser  */

 dsm_item_type *res_buff_ptr            /*  Place to put response       */

 

)

dsat_result_enum_type result= DSAT_OK;  

static char info[32] = "at_commands_test";

  if((tok_ptr->op == (NA|EQ|AR)) ||

     (tok_ptr->op == (NA|EQ|QU)) ||

     (tok_ptr->op == (NA|QU)) ||

     (tok_ptr->op == (NA)))

  {

     res_buff_ptr->used =(word) strlcpy((char*)res_buff_ptr->data_ptr,

                                            (const char*)info,

                                            res_buff_ptr->size);

  /*command does not make sense */

 else

  {

   result = DSAT_ERROR;

  }

 return result;

} /* dsatetsime_exec_agmr_cmd() */

超级终端输入at+agmr

at+agmr

 at_commands_test

OK


 

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值