android gps机制分析--之八
来源:互联网 发布:asp手机考试系统源码 编辑:程序博客网 时间:2024/06/12 08:58
5 gps数据从modem到AP
从loc_api层的locClientIndCb开始走起:
vendor/qcom/opensource/location/loc_api/loc_api_v02/loc_api_v02_client.c
locClientIndCb的主要作用是根据indications的类型,将解析出来的数据发给相应的callback处理:
首先获取message的size和indType,后面根据IndType判断indication的类型:
解析qmi message,ind_bug是传入数据,indBuffer是解析之后的数据;
Qmi_client_message_decode返回QMI_NO_ERR,并且解析的indType是eventIndType后,
走下面的流程,eventCallback赋值给了localEventCallback,解析出来的数据indBuffer赋值给了eventIndUnion.pPositionReportEvent,
其中pPositionReportEvent的数据类型是qmiLocEventPositionReportIndMsgT_v02:
qmiLocEventPositionReportIndMsgT_v02里包含了latitude、longitude等位置信息:
上面eventCallback赋值给了localEventCallback,其实也就是赋值给了后面的globalEventCb,
在继续往下之前,我们看一下globalEventCb的绑定过程:
vendor/qcom/opensource/location/loc_api/loc_api_v02/LocApiV02.cpp
globalCallbacks的赋值又是一个典型的callback绑定动作,由于类型是locClientCallbacksType,
所以是把globalEventCb绑定到locClientCallbacksType的一个成员函数上,这个成员函数就是eventIndCb。
vendor/qcom/opensource/location/loc_api/loc_api_v02/loc_api_v02_client.h
继续回到locClientOpen函数中,又调用了locClientOpenInstance:
vendor/qcom/opensource/location/loc_api/loc_api_v02/loc_api_v02_client.c
到此,eventCallback跟eventIndCb成功绑定,也就是说eventCallback 跟globalEventCb绑定在一起了,
由于eventCallback在前面绑定到了localEventCallback,所以就是说localEventCallback绑定的是globalEventCb;
因此对localEventCallback的调用,也就是调用了globalEventCb:
vendor/qcom/opensource/location/loc_api/loc_api_v02/LocApiV02.cpp
由于locApaV02Instance是LocApiV02类型的,所以调用到了LocApiV02的eventCb函数,在eventCb里根据eventId做判断,如果eventId是QMI_LOC_EVENT_POSITION_REPORT_IND_V02,则调用reportPosition:
- android gps机制分析--之八
- android gps机制分析--之二
- android gps机制分析--之三
- android gps机制分析--之四
- android gps机制分析--之五
- android gps机制分析--之六
- android gps机制分析--之七
- android gps机制分析--之一
- Android GPS架构分析之二
- android gps机制分析--定位数据HAL处理
- android gps机制分析--定位数据传输到Java
- android gps机制分析--定位数据HAL处理
- Android GPS架构分析
- android gps杂乱分析
- Android GPS架构分析
- Android GPS架构分析
- Android系统Gps分析
- Android系统Gps分析
- Tensorflow学习笔记--MNIST LSTM分类器代码
- Unity知识图谱
- Java反射机制(1)
- 局部变量和全局变量的区别
- raw_input和input的区别
- android gps机制分析--之八
- 欢迎使用CSDN-markdown编辑器
- bzoj1584
- 协作图(Communication Diagram)
- Android APP基于Android Studio多版本构建实战
- 特长生模拟 八数码(bfs+hash)
- 算法:图的关键路径-数据结构(24)
- bzoj1151: [CTSC2007]动物园zoo
- PyQt5环境配置