标签: bluez

使用BlueZ堆栈作为外围设备(广告商)

  • 目标:使用BlueZ和蓝牙4LE加密狗创建一个外围设备,宣传相当于"Hello World"的蓝牙.

  • 我在哪里:我目前有BlueZ堆栈设置和下载,我可以使用hci工具识别并看到蓝牙适配器.我已经使用了hciconfig leadv,但我只是不太了解它/了解正在发生的事情.

  • 我认为我需要什么帮助:我需要进入下一步.如果有人能指出我对一个好的资源,请指导我,或任何事情,非常感谢.如果我需要做额外的腿(搜索)工作,我可以,但我已经用我能想到的这个问题的许多不同衍生物来搜索Google和SO.

*我将此标记为CoreBluetooth,希望可能是iOS开发者在某些时候对此进行了修改.

编辑:回应评论,说明我的最终目标似乎是谨慎的.我最终希望通过加密狗广告最简单的简单消息/信号,并在iOS设备(CoreBluetooth)上进行选择.我已经能够让iOS方面运行良好(与Linux方面相比,大量文档)但对我来说困难的部分是将此适配器设置为外设.BlueZ堆栈对我来说是一个可怕的谜.

编辑:经过更多的挖掘,我最终偶然发现了这篇文章:Raspberry Pi蓝牙4.0连接.这使我走向GATT服务器的主题,我将继续追求这个话题.

编辑:好吧,所以我继续学习.在过去的几天里,我深入研究了hci*,sdptool和gatttool工具.我已经到了能够设置适配器做广告的程度,"hciconfig hci0 leadv".此时,我可以成功"看到"适配器,但我实际上无法读取任何内容.我甚至没有看到友好的名字.我将保持卡车运输,但一如既往,任何帮助/建议都非常受欢迎.

编辑:相关链接,关于iOS的蓝牙LE的可靠概述. https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/AboutCoreBluetooth/Introduction.html#//apple_ref/doc/uid/TP40013257-CH1-SW1

最后编辑:嘿所有,这个链接涵盖了如何使用Raspberry Pi + BlueZ创建iBeacon ... http://www.wadewegner.com/2014/05/create-an-ibeacon-transmitter-with-the-raspberry -pi /

linux bluetooth core-bluetooth bluetooth-lowenergy bluez

49
推荐指数
2
解决办法
5万
查看次数

低功耗蓝牙:在linux中监听通知/指示

我正在尝试通过Linux机器与BLE模块通信(该模块正在运行心率配置文件).到目前为止,除了听取通知和指示(例如,听取心率测量通知)之外,我已经能够做我需要的一切.我正在使用内核版本3.5和bluez-5.3.

到目前为止使用的成功命令:

hcitool lescan
hcitool lecc
gatttool -b <Mac Address> --primary
gatttool -b <MAC Address> --characteristics
gatttool -b <MAC Address> --char-read
gatttool -b <MAC Address> --char-desc
gatttool -b <MAC Address> --interactive
Run Code Online (Sandbox Code Playgroud)

命令失败:

gatttool -b <MAC Address> --listen
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.

linux bluetooth bluetooth-lowenergy bluez gatt

40
推荐指数
3
解决办法
5万
查看次数

位于Linux的bluetooth/bluetooth.h在哪里?

我想基于BlueZ构建ac文件,但在我的系统中似乎没有bluetooth.h文件.

fatal error: bluetooth/bluetooth.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我确信蓝牙加密狗运行正常,我已经成功构建了Bluez.

更新

对于我的情况,我在/ user/include/bluetooth文件夹中找到bluetooth.h

c linux bluetooth bluez ibeacon

38
推荐指数
2
解决办法
4万
查看次数

hcitool lescan显示I/O错误

我正在尝试使用覆盆子pi上的hcitool做一个lescan.

该命令打印出来

Set scan parameters failed: Input/output error. 
Run Code Online (Sandbox Code Playgroud)

我不确定,这里究竟发生了什么.我的iPhone在这里做广告.

我正在使用IOGear的BLE加密狗.

但是,如果我重新启动我的机器,它会在我发出lescan命令后显示一个MAC地址,并在我发出一次lescan命令后再开始显示相同的错误.是不是,lescan命令不能发出多次?

raspberry-pi bluetooth-lowenergy bluez

37
推荐指数
4
解决办法
4万
查看次数

检查linux上连接的蓝牙设备的电池电量

如何查看连接的蓝牙设备的电池电量?该设备显示Android上的电池电量,因此我假设该设备支持基于GATT的电池服务.但是,通过在bluetoothctl中输入"menu gatt",然后使用"list-attributes [dev]"列出设备的GATT属性,则不显示任何内容.

一个类似的问题被张贴到SO但OP似乎已经发现,不为我工作的解决方案.当我在bluetoothctl中运行"info [dev]"时,我没有看到电池服务的UUID.

我更喜欢在命令行上运行并且与驱动程序无关的解决方案.

如果这个问题应该发布在SuperUser上,请告诉我.

linux bluetooth bluez

37
推荐指数
7
解决办法
1万
查看次数

Linux命令行如何在没有引脚的情况下接受蓝牙设备的配对

有没有办法在Linux中配对设备而不需要引脚(出于测试目的,所以我需要在没有人工交互的情况下完成,假设你有root权限)?

bluez-simple-agent似乎需要一个引脚,除了一些简单的设备,如鼠标.

linux command-line bluetooth bluez

32
推荐指数
5
解决办法
10万
查看次数

在linux命令行中使用蓝牙低功耗

我正在使用Linux的蓝牙低功耗调制解调器.我正在使用命令行选项,即hcitool.我能够使用命令查找设备:$ hcitool scan

它对我来说很好,我也可以使用以下方式广播我的设备:

 sudo hciconfig hci0 leadv
Run Code Online (Sandbox Code Playgroud)

它也工作正常.但我想将调制解调器设备的服务和特性添加到其他设备中.我试过了,sdptool add但它不适合我.有没有人知道如何使用ubuntu中的命令行工具将服务和特性添加到外设?

编辑:我的调制解调器正在广播,但无法探索其他BLE设备的服务和特性.现在我可以使用设置设备的名称hcio name command

编辑:现在我可以通过同时运行sudo hcidump命令来呈现服务和特性.但我无法追踪我从哪里获得这些服务和特征.一个明确的观察是那些服务是从机器渲染的.

linux ubuntu bluetooth-lowenergy bluez

26
推荐指数
1
解决办法
5万
查看次数

Bluez:做广告服务/ gatt服务器的例子?

目标

我正在开发一个运行Linux的简单设备.它具有BLE功能,我目前正在使用bluez 5.8.

我想使用iPhone触发此设备上的操作.

什么有效:

  • 我可以让iPhone"看到"该设备.
  • iPhone也连接到设备.

我在linux上设置了这样的蓝牙设备(感谢这个问题):

# activate bluetooth
hciconfig hci0 up                                             
# set advertise data: "hello world"
hcitool -i hci0 cmd 0x08 0x0008 48 45 4c 4c 4f 57 4f 52 4c 44
# start advertising as connectable
hciconfig hci0 leadv 0
Run Code Online (Sandbox Code Playgroud)

iOS代码很简单:

- (int) scanForPeripherals
{
    if (self->centralManager.state != CBCentralManagerStatePoweredOn) {
        return -1;
    }
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
    [self.centralManager scanForPeripheralsWithServices:nil options:options];
    return 0;
}

- (void)centralManagerDidUpdateState:(CBCentralManager *)central
{
    if (central.state …
Run Code Online (Sandbox Code Playgroud)

linux bluetooth core-bluetooth bluetooth-lowenergy bluez

25
推荐指数
1
解决办法
2万
查看次数

如何使用bluez在Linux上通过蓝牙4.0 LE连接到FitBit Zip?

我买了一个FitBit拉链.此设备使用蓝牙4.0 LE.我想至少通过bluez连接到它.如果成功,我想知道我能找出多少协议.

我使用的是联想P500 Ideapad,它集成了对蓝牙4.0的支持.它似乎工作(种类)

当我做:

hcitool lescan
Run Code Online (Sandbox Code Playgroud)

我能够找到设备的蓝牙地址,虽然可能无关紧要,但是:CF:D9:24:DB:F4:7B

现在,我在另一个问题中读到:蓝牙低功耗:在linux监听通知/指示我可以收听通知和其他协议功能.我曾经使用旧蓝牙,但我没有使用蓝牙LE的经验.

我试图使用hcitool leccgatttool连接到设备时遇到困难.连接超时并且似乎在Linux机器上使蓝牙处于不良状态.我能够通过重新加载蓝牙相关的内核模块来解决这个问题.

任何提示都表示赞赏.我现在正在尝试最新的bluez.

linux reverse-engineering fitbit bluez

24
推荐指数
2
解决办法
2万
查看次数

在Linux上设置蓝牙自动配对

我想使用任何手机通过蓝牙Classic与串行端口协议(SPP)连接到物联网设备.物联网设备没有屏幕,没有键盘,只要连接电话知道一个秘密密码,就应该自动接受连接(即,我不想强​​迫每次都进入物联网设备进行配对一部新手机试图连接).

这些是我到目前为止在物联网设备上运行的命令:

# Make the device discoverable:
hciconfig hci0 piscan

# Register SPP:
sdptool add --channel=22 SP

# Start rfcomm:
rfcomm -r watch /dev/rfcomm0 22
Run Code Online (Sandbox Code Playgroud)

不幸的是,我找不到任何设置PIN的方法,当我尝试连接手机时,配对失败了.此外,该设备只能在短时间内被发现.

如何配置物联网设备的蓝牙堆栈(运行最近的Bluez)以与任何知道给定PIN的电话自动配对,以及如何使发现期间永恒?

bluetooth rfcomm bluez

24
推荐指数
1
解决办法
3284
查看次数