RILD - 第八章 - 如何自定义request

八、AT命令

不同手机厂家的AT命令集都不一样,而在Android源代码中只实现了GSM27.007标准定义的Telephony基本功能。因此,在Android手机平台的定制过程中,免不了要修改或是增加AT指令。

8.1 AT LOG

不单是RILC可以向Modem发起AT命令,在ReferenceRIL中也会接收到Modem发出的AT命令,如何区分是谁给谁发送的命令,可以通过Radio Log来看出来。
如:

AT > ATE0Q0V1 //RIL发送给Modem的AT命令
AT < OK //Modem发送给RIL的AT命令,这里可以理解为SOL请求返回。
AT < RING //Modem主动发送给RIL的AT命令,接收来电请求,可理解为UNSOL的消息。

即”>”是RIL发给Modem,”<”是Modem发给RIL

8.2 新增AT命令的步骤

一条AT命令,是自上而下都需要支持的,包括RILJ,RILD,Modem。
此处只说明了在RILJ和RILD的修改,对于在Modem中的相应修改,后续在Modem的笔记中再讨论。

新增AT命令要修改的内容较多,按照步骤来可以减少失误。

  • Step1:确认Modem中对AT命令的支持情况,明确AT命令的格式,参数以及执行方向。

  • Step2:根据AT命令的执行方向,定义RIL中Solicited或UnSolicited消息类型,可在以及定义的最大消息类型后足部增加其RIL消息定义,主要修改RILJ层的RILConstants.java和RILC层的ril.h(MTK平台为mtk_ril.h)。

  • Step3: 修改framework

    • 对于Solicited消息:
      主要集中在修改processSolicited()方法的逻辑以及增加发起Solicited请求的方法。可参考getIMSI()。
    • 对于UnSolicited消息:
      修改processUnsolicited()方法的逻辑,可参考SimStateChange的UNSOL消息。
  • Step4:修改RILC

    • 对于Solicited消息:
      在ril_commands.h(data_to_parcel_ril_commands.h, rfx_ril_commands.h)中添加CommandInfo信息,并实现对于函数的逻辑处理。
    • 对于UnSolicited消息:
      在ril_unsol_command.h中增加UnSolicited消息低Response处理函数和电源管理策略定义,并实现对于函数的逻辑处理。
  • Step5:修改ReferenceRIL

    • 对于Solicited消息:
      新增RIL请求的处理逻辑分支,将RIL请求转换成已修改或新定义的AT命令发给Modem。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值