蓝牙低功耗模式下的广播消息

时间:2014-11-10 21:08:27

标签: linux bluetooth bluetooth-lowenergy ibeacon

您的荣誉:

我想知道如何在BLE(蓝牙低能耗模式)中广播消息。

这种行为就像在Macintosh中的iBeacon一样。

据我所知,windows(7或8)不支持此功能。

但是linux确实如此。

任何人都可以指导/提示我在linux中实现这个目标吗?

通过命令行或代码都可以,两者都很好。

就像是,x86-linux会播放一条消息,例如:"我是笔记本电脑"

我可以使用其他设备(手机/电脑等)接收此信息。

谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

您可以使用BlueZ堆栈在Linux中宣传BLE设备。有关如何执行此操作的基础知识,请参阅此问题:

Use BlueZ Stack As A Peripheral (Advertiser)

根据您要宣传的内容,您需要确定广告中字节的格式。以下是如何使用BlueZ传输开源AltBeacon广告格式的示例:https://github.com/RadiusNetworks/altbeacon-reference/blob/master/altbeacon_transmit

答案 1 :(得分:1)

第0步:

(如果你有mac,请下载mactsAsBeacon进行验证)

在你的android / iOS手机中下载iBeacon扫描仪。

第1步:

这是我的shell脚本:

#!/bin/bash
set -x

export BLUETOOTH_DEVICE=hci0
#sudo hcitool -i hcix cmd <OGF> <OCF> <No. Significant Data Octets> <iBeacon Prefix>    <UUID> <Major> <Minor> <Tx Power> <Placeholder Octets>

#OGF = Operation Group Field = Bluetooth Command Group = 0x08
#OCF = Operation Command Field = HCI_LE_Set_Advertising_Data = 0x0008
#No. Significant Data Octets (Max of 31) = 1E (Decimal 30)
#iBeacon Prefix (Always Fixed) = 02 01 1A 1A FF 4C 00 02 15

export OGF="0x08"
export OCF="0x0008"
export IBEACONPROFIX="02 01 1A 1A FF 4C 00 02 15"
#export UUID="92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE"
export UUID="B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D"
export MAJOR="01 02"
export MINOR="03 04"
export POWER="C5 00"

sudo hciconfig $BLUETOOTH_DEVICE up
sudo hciconfig $BLUETOOTH_DEVICE noleadv
sudo hciconfig $BLUETOOTH_DEVICE noscan
sudo hciconfig $BLUETOOTH_DEVICE leadv 3
sudo hcitool -i $BLUETOOTH_DEVICE cmd 0x08 0x0008 $IBEACONPROFIX $UUID $MAJOR $MINOR $POWER

#sudo hciconfig $BLUETOOTH_DEVICE leadv 3

第2步:

运行此脚本,您会发现手机上的iBeacon扫描仪找到了linux ibeacon发射器。

如果您想关闭电路板广播:

sudo hciconfig hci0 noleadv

答案 2 :(得分:0)

export IBEACONPROFIX =“ 02 01 1A 1A FF 4C 00 02 15”

是正确的,但可以进一步分为Bluetooth HCI数据和Apple专有数据:

3个字节的标志,符合《蓝牙核心规范》的补充

02:长度(1)

01:输入“标志”

1A:标志值

后跟供应商专有数据

1A:专有有效载荷的长度(1),此处为0x1A == 26:5个字节的iBeacon标头+ 21个iBeacon有效载荷数据

FF:专有数据指标(1)

4C 00:公司ID(2),苹果

02:iBeacon类型

15:iBeacon数据长度(1)0x15 == 21:UUID 16字节,专业2字节,2字节 次要的,1字节TX Power

https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/

https://www.bluetooth.com/specifications/bluetooth-core-specification/