BlueZ的学习资源推荐_bulez_舟的博客-程序员秘密

技术标签: Bluetooth  bluez  linux  BLE  蓝牙  计算机网络  

众所周知,现在很多设备开始用上类蓝牙4.0技术,在linux上的蓝牙官方协议即为Bluez了。

但是关于BlueZ的文档和学习资料却非常少。

我最近需要在nao机器人的操作系统上(linuxgentooo发行版)接收ibeacon的信息(通过接收蓝牙4.0的数据报,然后进行解析)

然而因为各种原因我需要对Bluez的一些工具进行移植,C++蓝牙编程是我唯一的解决方案,经过学习和折腾之后,总算是有了些头绪,接下来将我的学习经验分享给大家,水平有限,欢迎大家指正。


首先贴出一些蓝牙的学习资源:


Bluez官网:http://www.bluez.org/,可查阅的资料非常少,但是源码都推荐在这个网站下载


Bluetoothwiki(了解协议组成很有帮助):http://en.wikipedia.org/wiki/Bluetooth#Bluetooth_protocol_stack


Howto run Bluezhttp://www.stlinux.com/kernel/bluetooth/how-to-run-BlueZ关于运行Bluez工具的一些说明不全


hcitool以及hcidump解析ibeacon蓝牙数据报(对解析BLE设备的数据非常参考价值):

http://stackoverflow.com/questions/21733228/can-raspberrypi-with-ble-dongle-detect-ibeacons/21790504#21790504


LinuxBluez的编程实现:(国内比较详细介绍Bluez的博客,赞一个)

http://blog.csdn.net/kobbee9/article/details/7751372


实战LinuxBluetooth编程:(国内关于Bluez很详细的博客,很赞):

http://blog.sina.com.cn/s/blog_602f87700100e0vb.html


AnIntordunction to BluetoothProgramming(国外对蓝牙编程介绍很详细的博客,虽然比较老,但非常赞,很有参考意义,包括了Cpython语言)

http://people.csail.mit.edu/albert/bluez-intro/c33.html


Hcidump使用:http://blog.csdn.net/newtonnl/article/details/8073559

这是个非常好的工具,可以获取原始的蓝牙数据报,不过需要先用lescan工具开启le模式


Bluez相关的各种tools的使用(主要用到hcidump)http://blog.163.com/seven_7_one/blog/static/16260641220116892928675/


Bluez的移植和配置:http://blog.chinaunix.net/uid-20723653-id-1886857.html



UbtuntuBlueZBLEhttp://wv1124.iteye.com/blog/2025637


AndroidBluetooth介绍:http://blog.csdn.net/xubin341719/article/details/38584469


pybluezpython蓝牙编程类库):https://code.google.com/p/pybluez/



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cql342624757/article/details/40216775

智能推荐

最大似然估计MLE和最大后验概率估计MAP_lxy9712的博客-程序员秘密

声明:本文为原创文章,发表于nebulaf91的csdn博客。欢迎转载,但请务必保留本信息,注明文章出处。 本文作者: nebulaf91 本文原始地址:http://blog.csdn.net/u011508640/article/details/72815981最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a pos...

Linux on Power 上的调试工具和技术_阿蓬江的博客-程序员秘密

http://www.ibm.com/developerworks/cn/linux/l-pow-debug/简介调试程序有很多方法,例如向屏幕上打印消息,使用调试器,或者只需仔细考虑程序如何运行,并对问题进行有根有据的猜测。在修复 bug 之前,首先要确定在源程序中的位置。例如,当一个程序产生崩溃或生成核心转储(core dump)时,您就需要了解是哪行代码发生了崩溃

TCP/UDP常用详解_afs3-fileserver 禁用_Somnus_小凯的博客-程序员秘密

著名端口UNIX 特有的端口注册的端口数据报传递协议端口Kerberos(工程 Athena/MIT)端口未注册的端口著名端口端口号码 / 层名称注释1tcpmuxTCP 端口服务多路复用5rje远程作业入口7echoEcho 服务

QHeaderView 表头设置QWidget控件_qheaderview表头设置_缘如风的博客-程序员秘密

(恶心的需求)表头要求特殊的字符串(有下标的那种)。本来去掉了表头,将表格的第一行作为表头,这样就可以在表格上添加QLabel控件实现。这样的弊端就是没有了表头的鼠标拖动的功能。看到QHeaderView有setIndexWidget ( const QModelIndex & index, QWidget * widget )这个函数,所以采用这个方式。效果如下:代码如下: QStrin...

面试题-Java API篇_StoneHui_的博客-程序员秘密

最近得空,就去一些招聘网站做了些面试题,为方便大家共同学习,Java API相关的就在这篇博客里记录一下,以后有空会持续更新,大家有更好的答案也可以留言告诉我。 面试题-Java算法篇 传送门 面试题-Android篇 传送门1. HashMap和Hashtable的区别Hashtable 继承自 Dictiionary 而 HashMap继承自AbstractMap。HashMap允许将n

进程间通信使用消息队列的试验代码与总结_caleb_zhou的博客-程序员秘密

本文描述了Linux上使用消息队列进行进程间通信的方法,源码和验证结果。试验表明,消息队列用于异步通信非常方便。

随便推点

系统设计.短链系统设计_闲猫的博客-程序员秘密

301永久重定向,即浏览器只需要第一次请求拿到长链接后,下次再去访问这个短链就不会向短网址服务器请求了,而是直接从浏览器的缓存里拿。302临时重定向,即每次访问短链都会去请求短网址服务器(除非响应中用Cache-Control或Expired暗示浏览器缓存),这样就便于server数据监控,所以虽然用302会给server增加一点压力,但明显是利大于弊的。根据短链获取长链或者根据长链获取短链使用类似HashMap的get算法,先根据HashCode查询,然后再根据短链文本查询。...

【干货】干货篇_weixin_30756499的博客-程序员秘密

1.有空格的字符串 拆成数组 string str = System.Text.RegularExpressions.Regex.Replace(headProducts, @"\s+", ","); string[] Products= str.Split(',');2.生成日志 public void Log(string message) ...

检查Rabbitmq中队列及消息个数,还有清空的方法_weixin_34319374的博客-程序员秘密

rabbitmqctl list_queuesrabbitmqctl purge_queue kafka_queue (不推荐)使用reset方式重置rabbitmq即清空掉rabbitmq所有的队列数据和配置(划重点)rabbitmqctl stop_apprabbitmqctl resetrabbitmqctl start_app...

U-Boot HW Watchdog_玛丽奥ZJY的博客-程序员秘密

U-Boot HW Watchdog概述include/watchdog.h文件中有宏定义#ifdef CONFIG_HW_WATCHDOG        #if defined(__ASSEMBLY__)                #define WATCHDOG_RESET bl hw_watchdog_reset

Unity StreamingAssets和PersistentData文件夹__Shelcon的博客-程序员秘密

项目中打AssetBundle一般会根这两个文件夹挂勾。对比分析: StreamingAssets:可读取、不可写入;Assets根目录下的StreamingAssets文件夹,文件夹内容不压缩打包到apk、ipa包内。 PersistentData:可读取、可写入;沙盒目录,应用程序安装运行后才会出现。 所以由上可以看出,Stre...

MyBatis-Spring-TransactionManager_ywb201314的博客-程序员秘密

事务一个使用 MyBatis-Spring 的主要原因是它允许 MyBatis 参与到 Spring 的事务管理中。而 不是给 MyBatis 创建一个新的特定的事务管理器,MyBatis-Spring 利用了存在于 Spring 中的 DataSourceTransactionManager。一旦 Spring 的 PlatformTransactionManager 配置好了,

推荐文章

热门文章

相关标签