Android Ril层浅析
来源:互联网 发布:编程invalid argument 编辑:程序博客网 时间:2024/06/05 10:22
ril为Radio interface layer 的缩写, 翻译为协议转换层, 应用层通过ril层向串口发送命令, 串口之上为ril层, 串口之下为modem, ril层由rild进程负责, ril层代码目录为/hardware/ril. ril层做两件事情: 向串口发送at命令, 接收串口对at命令的处理结果. at为attention简写. at命令可理解为向底层发送的特定目的的命令.
一, ril层向串口发送命令:
相关文件有: ril_event.cpp(ril_event_loop对ril事件进行循环检测),
ril.cpp(processCommandBuffer对ril事件的解析),
refence_ril.cpp(onrequest对at命令的调用),
Atchannel.c(at_send_command发送命令, at_send_command最终调用write_line()实现 )
在事件循环中, 由listenCallback监听ril事件(即上层发送代表at命令的ril事件), listenCallback注册processCommandsCallback回调函数, processCommandsCallback->processCommandBuffer对事件解析, s_commands设置了事件与事件处理函数的对应关系,
processCommandBuffer由s_commands找到该事件的处理函数, 并调用之. 该处理函数调用reference_ril.cpp->onrequest()->at_send_command->writeline向串口发送at命令.
二, 串口向ril层返回对命令的处理结果过程:
相关文件: Atchannel.c(readline()读取串口发来的对at命令的处理结果)
readerLoop()调用readline()获取结果, 根据是是否为urc做不同处理, urc为远程进程对modem发送的at命令的处理结果.
在reference-ril.cpp 中由at_open()注册的onUnsolicited函数完成对串口发来的at结果的处理, onUnsolited->RIL_onUnsolicitedResponse(实现在ril.cpp中)由s_unsolResponses数组获取对结果的处理函数, s_unsolResponses为处理ril结果的数组(即接收),s_commands为处理ril命令的数组(即发送). solicited表示等待对请求处理的一种等待状态.
- Android Ril层浅析
- Android Ril层浅析
- android通话流程浅析RIL层
- Android 无线接口层RIL
- Android 无线接口层RIL
- 对android RIL层的思考
- [android]ril 层SMS的调用流程
- 对android RIL层的思考
- Android HAL层浅析
- android通话过程RIL层详细分析(代码)
- Android 无线接口层RIL(Radio Layer Interface)
- android通话过程RIL层详细分析(代码)
- android 手机芯片reference-ril层技术总结一
- android 中 ril 层调试笔记和理解
- Android RIL框架层相关模块类简介
- RIL 层分析
- Wince6 RIL层移植
- Wince6 RIL层移植
- 转:linux常用的makefile模版编写
- 4.java内存机制--堆与栈
- Gridview某行着色 --vb.net
- 【面试题】在二元树中找出和为某一值的所有路径
- 计算机网络的一些题
- Android Ril层浅析
- QtWidget 给Widget加上背景图实例
- 虚函数与纯虚函数的区别
- Flex+Java+Oracle详细配置说明,Flex访问Oracle数据库
- bitcount函数统计其整数参数的值为1的二进制位的个数
- 网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(一)
- 名企面试最看中的七点关键能力
- Java中四舍五入
- DDL/DML/DCL/TCL基本概念