前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof
正文
ATCID主要用来处理PC端传输过来的AT命令,从AT命令实际处理的地方来说,主要分为3类:
1. 需要Modem来处理的AT命令;
2. 需要在native层来处理的AT命令(在atcid内部处理和在其他module处理);
3. 需要在Java层来处理的AT命令。
针对这3类,需要在ATCID不同的地方来加入code实现。
在介绍如何客制化AT命令之前,先需要了解一下ATCID的架构,如下图:
上图红色方框内的表示了ATCID所包含的区域,其中:
1. tty连接的是PC端通过USB的设备文件;
2. dispatch module主要的功能是根据PC端发送过来的AT命令,看此AT命令是上述3类AT命令中的哪一类;
3. Atci_service用来处理Java层的AT命令;
4. Rild接收需要发送到Modem端处理的AT命令;
5. handler处理在atcid内部处理的AT命令(native层);
6. audio类似发送到其他module来处理的AT命令;
【AT客制化】
针对上述3类,需要在不同的地方来客制化:
1. 定制在atcid内部处理的AT命令(native层处理)
1). 在atcid_cust_cmd.c中编写一个函数用来处理你的AT命令;
2). 将你的AT命令的字符串,命令类型和处理函数填充到表格custom_cmd_table中,这个表格在atcid_cust_cmd_process.h中;
2. 定制在其他module处理的AT命令(native层处理)
1). 将你的AT命令的字符串填充到表格generic_cmd_table中,这份表格在atcid_cmd_dispatch.h中定制
2). 编写一个函数用来处理你的AT命令,将这个函数放在atci_service(native)目录中合适的文件里
3). 将你的AT命令的字符串,命令类型和处理函数填充到表格generic_cmd_table中,这份表格在atci_generic_cmd_table.h中定义
3. 定制在Java层处理的AT命令
1). 将你的AT命令填充到表格generic_cmd_table中,这份表格在atcid_cmd_dispatch.h中定义
2). 将你的AT命令和类型填充到表格mmi_cmd_table中,这份表格在atci_generic_cmd_table.h中定义
3). 在atciService.java中的initlizeAtparser函数里面注册你的CLASS用来处理AT命令
4. 如果是要定制在Modem处理的AT命令,那么ATCID这边并不需要做特别处理,只要输入的AT命令不适配ATCID这边定义的类型,那么就会将这条AT命令发送到Modem处理,那么具体客制化实现AT命令功能的code就需要在Modem端进行编写