前言:
经过前几篇文章的梳理,相信读者对如何使用Bluez协议栈有一个初步的认识了,本篇文章再最终汇总以下Bluez的访问接口,先看一下之前的那个框图,如图1。
图1
里面其实还少画了一个hci_le_*的接口使用方式,hcitool.c使用这套接口。
接口定义:
mgmt_*接口:
头文件:lib/mgmt.h
c文件:src/shared/mgmt.c
示例:mgmt_send(data->mgmt, MGMT_OP_READ_INFO, data->mgmt_index, 0, NULL,
read_info_callback, NULL, NULL);
缺点:如果应用层希望拿到比较细节的hci参数,那么mgmt无法提供,mgmt的相关资料不详细。
优点:屏蔽了hci的细节,使用mgmt的command发送给kernel,一条指令可以解析成为很多条hci指令,对于L2CAP socket的兼容性好,peripheral示例就是这样实现的。
bt_hci_*接口:
头文件:monitor/bt.h,src/shared/hci.h
c文件:s