(二)深入理解Bluez协议栈之“bluetooth socket通信”

目录

协议栈与内核通信:

协议栈提供的封装库:

mgmt接口:

hci接口:

hci_lib接口:

其他:

说明:


协议栈与内核通信:

Bluez协议栈与内核通信,是通过创建bluetooth类型的socket实现的。创建socket之后,可以通过它收发hci命令和事件,也可以收发mgmt类型消息,还可以通过ioctl控制controller,这几种方式在Bluez的代码中都是存在的,这也导致了我们阅读Bluez协议栈的时候总是感觉特别乱,因为它没有统一的访问Controller的接口,目前从bluetoothd守护进程的实现来看,mgmt是bluez主推的一种方式。

关于mgmt的详细介绍,参考:http://www.bluez.org/the-management-interface/

但是本人并不很喜欢mgmt,因为它过分封装了hci消息,并且阉割了它,一条mgmt消息发给kernel,kernel转换为多条hci命令发送给controller,导致通过mgmt编写的蓝牙程序,很多详细的hci数据拿不到(hci的原始消息是有这些数据的,但是mgmt却没有提供给我们,比如MGMT_EV_DEVICE_CONNECTED,拿不到conn_param的latency等等)。

协议栈提供的封装库:

mgmt接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuoFeng.Wan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值