bluez——数据从hci至dbus分析
hci数据如何传到dbus分析
1,event的接收
1,bluez分为kernel和user space两部分,首先看下kernel内部的数据流转:
我这里选了pincode request的传输作为例子来分析探讨,首先看下流转图
hci的接收队组收到数据后解析,根据event类型数值,评定类型,这里假设是pin_code_request类型,解析后通过需要mgmt机制发送至user space的bluez5.48.
2,user space的函数流转:
users space收到注册给mgmt的回调pin_code_request_callback,然后一步步地上传到agent,通过注册的dbus接口,使用dbusde方法调用method_call将信息发送给使用的模块。
2,cmd的发送
直接上图,我梳理下了配对指令的下发的流程,画了下面的图,蓝色指user space的bluez,绿色是kernel的协议栈文件
这里没有什么需要注意的点,都是流程化的函数调用,如图。