BLE 广播帧和 BLE 信标帧有区别吗

2024-04-30

我正在接收EVT_LE_ADVERTISING_REPORT来自 HCI 套接字。我想区分 BLE 信标和普通 BLE 设备(解析设备名称等)我有点困惑是否所有 BLE 设备都会发出信标或者它们是不同的。如果不同,那么它们的数据包格式如何?


BLE 信标帧只是 BLE 广告帧内的专用有效负载。寻找 BLE 信标的设备只需扫描 BLE 广告,查看每个广告,然后查看其中是否包含已知 BLE 信标格式(如 iBeacon、AltBeacon 或 Eddystone)的字节模式。

许多 BLE 设备类型都会发出广告,通常是为了宣传 GATT 服务。但除非设备专门设计为 BLE 信标,否则大多数 BLE 设备不会发射 BLE 信标帧。信标是一种特殊类型的 BLE 设备,尽管非常简单。

常见的 BLE 信标格式使用 BLE 服务广告(广告数据类型 0x16)或 BLE 制造商广告(广告数据类型 0xff)。然后,它们在这些数据包内包含一个字节序列,向接收者表明它们是特定的格式。遵循该字节模式,它们有几个专用于唯一标识符以及数据和发射器功率校准字段的字节。

使用制造商广告的常见信标格式包括 iBeacon 和 AltBeacon。

  • AltBeacon 格式 https://github.com/AltBeacon/spec
  • iBeacon 格式 https://stackoverflow.com/a/19040616/1461050

Eddystone 是一种使用服务广告的常见信标格式。

  • 涡石格式 https://github.com/google/eddystone/blob/master/protocol-specification.md

非信标 BLE 设备也会发出类似于 Eddystone 格式的 GATT 服务广告,但使用不同的服务 UUID 来指示它们提供的特定服务。 (例如心跳监视器或智能手表配置服务。)但是,这些非信标 GATT 广告通常仅用于宣传其存在,而不是在广告本身内发送数据,因此智能手机和计算机可以连接到它们并使用设备托管的更复杂的 GATT 服务交换数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BLE 广播帧和 BLE 信标帧有区别吗 的相关文章

  • 如何通过蓝牙在Raspberry Pi 4和Arduino Nano BLE之间进行读写?

    我能够通过 Rpi4 的 bluepy 和 Arduino Nano BLE 的 ArduinoBLE h 连接 Raspberry Pi 4 和 Arduino Nano BLE 不幸的是 当我尝试从 Rpi4 写入 Arduino Na
  • 在 Windows 10 上为 BLE GATT 设备开发 HID 输入设备驱动程序

    这是一个来自 MSDN 论坛的交叉帖子 https social msdn microsoft com Forums windowsdesktop en US 01b08fbd 3320 4796 b65e 92239d9b7306 how
  • iOS - iBeacon - iOS 7.1 更新后在后台作为信标进行广告(广播)

    我正在尝试使用 iBeacon 制作一个应用程序 其中一台设备将用作信标广播器 另一台设备将用作接收器 我经历了类似的事情在后台将 iPhone 作为 iBeacon 运行 https stackoverflow com q 1894432
  • 如何在控制台应用程序中引用 Windows 8 运行时(特别是 BLE API)?

    我在 Windows 8 1 上的 Visual Studio Professional 13 中使用 C WDK http msdn microsoft com en us library windows hardware ff54708
  • OS X 10.11 El Capitan 上的蓝牙低功耗延迟/延迟

    我一直在开发一个 Mac OS X 应用程序 该应用程序通过低功耗蓝牙连续向硬件设备发送命令 在 Yosemite 环境下 该应用程序运行良好 测得命令传输的往返延迟为 7 12 毫秒 该命令以最小 2 秒 最大 0 2 秒的稳定间隔发送到
  • 在 Pi 上通过 python 执行 bluetoothctl 命令

    每次我想在我的 pi 上运行 python 脚本之前 我都会在终端上运行一系列 Bluetoothctl 命令 我想从 pi 自动连接到 BLE 设备 无需任何配对确认或用户交互 以下是每次在运行另一个 python 脚本之前重新启动 pi
  • 浏览器对蓝牙信标/iBeacons 的感知

    有没有办法让浏览器知道其附近的 iBeacon 设备 类似于 HTML5 地理定位的工作方式 如果不是 这是否可以通过浏览器插件来实现 该插件可以提供 javascript 使用的详细信息 很不幸的是 不行 没有 Web 浏览器在信标检测和
  • HM10 ble改变特征值AT命令Arduino

    谁能帮我用AT命令写入特征值 或者如何使用Hm10模块将数据从arduino发送到另一个ble设备 HM10发送AT START后 会通告数据包 并且可以检测服务和特征 但特征值是默认的0x00 如何更改 多次检查数据表 但找不到能够执行相
  • Windows Phone 8.1 中的信标 - 没有可能性吗?

    首先 是的 我已经阅读了所有其他类似的问题 其次 我正在开发应用程序 WP 8 1 WinRT 它必须使用信标 我读了很多相关内容 我知道 如果不先配对 通常无法与 BLE 设备连接 但希望最后会破灭 所以我想问一下我有什么可能性 可以在代
  • 蓝牙低功耗广告扫描、频道信息或选择

    我使用 bluez 编写了一个应用程序 用于扫描 BLE 广告数据 该应用程序当前接收广告消息没有任何问题 对于广告消息 BLE 使用 37 38 和 39 三个通道发送消息 每个通道使用不同的频率 当应用程序接收数据时 我希望能够确定在哪
  • 与 BLE 设备交互的 Android 应用程序无法在 Chromebook 上运行

    我有一个与自定义 BLE 设备交互的 Android 应用程序 此应用程序在 Android 版本 4 4 至 6 0 的设备上按预期运行 现在我想通过 Chromebook 上的 Google Playstore Chrome 的应用运行
  • 扫描大量BLE标签

    我一直在寻找在一次扫描中扫描大量 BLE 标签 StickNFind 的可能性 我注意到 当我扫描 10 秒时 我可以轻松检测到大约 20 个 BLE 当我将扫描间隔增加到 30 秒左右并尝试扫描大量 BLE 标签时 例如200 个标签 我
  • 典型的按键持续时间是多少

    我正在固件项目中做一些关于按键处理的工作 我一直在谷歌上搜索 试图找出按键的典型持续时间是多少 特别是快速打字员的最短持续时间 令人惊讶的是我在任何地方都找不到任何相关数据 最近有一些关于按键时序的研究已经发表 这里有两个 http www
  • Android:自动重新连接 BLE 设备

    我的目标是让 Android 设备重新连接到之前连接过的 BLE 设备无需用户干预与经典 BT 配对设备的操作方式相同 甚至可以通过电源循环工作 BTLE 设备的想法之一是节省服务 绑定和启用状态 以便重新连接非常快并且在外设上消耗很少的功
  • BLE:使用 Android / iOS 读取长特征值

    对于正常的特征读取 仅读取 MTU 大小 20 字节 的数据 我的客户将提供更大尺寸 超过 100 字节 的特征 我看到 BLE 提供了 长读取 功能 可以读取直到达到特征的大小 https bluegiga zendesk com ent
  • 如何使 Raspberry Pi 3 可被 iOS 和 CoreBluetooth 发现?

    我有一个 Raspberry Pi 3 我正在尝试使其可供 iOS 设备发现 我跑了sudo hciconfig hci0 piscan让它被发现 我可以用我的 iMac 看到它 在 iOS 上 我使用 CoreBluetooth 并扫描附
  • 蓝牙 - TX 功率和 RSSI

    我正在试验两个低功耗蓝牙 4 我在下载的 Android 应用程序上获取了 uuid tx 功率级别和 rss 值 我注意到其中一个发送 0 表示 tx 功率级别 但另一个发送 4 表示 tx 功率级别 并且在 android 应用程序上看
  • 在 Android 5 上支持 BLE 外设角色的芯片组 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Android 5 0 Lollipop 引入的新 BLE 外设模式将不会在 Nexus 4 5 或 7 上启用 https code
  • 从 WP8 连接至 Polar H7 心率监测器

    有没有办法从 Windows Phone 8 连接到低功耗蓝牙设备 例如心率监测器 例如 Polar H7 我尝试过的一些背景 我看过这个 Windows 8 的示例 http code msdn microsoft com windows
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc

随机推荐

  • WinForms 应用程序中的初始化代码 - Program.cs 还是 MainForm?

    我有一个 Windows 窗体应用程序 当前在启动时加载数据库 流程是这样的 Program cs gt Application Run new MainForm gt MainForm 构造函数 gt 打开数据库 因此基本上 MainFo
  • 当我在 Xcode 4 中“构建存档”时,文件去了哪里?

    当我在 Xcode 4 中 构建存档 时 文件去了哪里 例如 存档的应用程序保存在我的计算机上的什么位置 Thanks 这取决于您的构建位置 请参阅 Xcode gt 首选项 gt 位置 请注意 构建存档 不会将您的工作存档在您输入的 存档
  • Laravel dusk chrome 驱动程序超时

    任何人都可以帮忙 我无法让 Laravel dusk 在 mac high Sierra 上当前的 Laravel 5 6 项目中运行默认示例测试 错误信息 时间 2 5 分钟 内存 14 00MB 有 1 个错误 1 测试 浏览器 Exa
  • 大虾PDF压缩,压缩内容流,它是做什么用的

    虾 gem 有一个初始化选项 compress 描述的是here http www rubydoc info github sandal prawn Prawn 2FDocument 3Ainitialize 显然它 Compresses
  • 多个文本视图还是一个具有可点击跨度的文本视图?

    我有一组模型 每个模型代表文本中的一个单词 它看起来像这样 ArrayList
  • PLSQL 中的 REAL 数据类型

    SET SERVEROUTPUT ON DECLARE A REAL 123456789123456789123456789123456789123456789123456789123456789123456789 BEGIN DBMS O
  • 如何从 TKinter 和 SQLite3 中的列表框中删除行

    我试图弄清楚如何从列表框和 sqlite3 中删除一行 我的底部有一个 delButton 函数 我需要从列表框和sql中删除该行吗 我不确定我在这里做什么 就删除部分而言 我通过复制和粘贴各种示例将该功能放在一起 from Tkinter
  • SQL Server Management Studio 2005 或 2008 是否有 SVN 插件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 正在寻找一个 源代码控制 插件来将 SSMS 与 Subversion SVN 集成 有人知道其中一个吗 Redgate 的解决方案似乎是
  • 即使禁用缓存,Safari 也会缓存 GET 请求

    我已经将我所知道的所有标头设置为在我的服务器上禁用缓存 甚至禁用 ETAG 但 Safari 仍然偶尔 大约 50 次 缓存我的请求 Workflow 我正在实施 oauth 1 所以 浏览器使GET api user request 服务
  • jQuery JSON 请求得到“200 OK”答案,但没有内容

    我正在使用 jQuery 通过访问者的 IP 地址获取其位置 有一项很棒的服务叫做免费地理IP http freegeoip appspot com 我需要做的就是在 URL 末尾添加 json 或 xml 然后添加 IP 地址 它将返回所
  • 如何使用 selenium 获取带有 css 选择器的所有元素的直接子元素?

    我已经尝试过使用 gt 语法 但 selenium 不接受它 我知道有一种方法可以使用 Xpath 获取它 但我们的整个项目是使用 CSS 选择器编写的 我试图存储一个列表 其中包含元素的所有直接子元素 但不包含其子元素 后代 当我使用 语
  • 使 URL W3C 有效并在 Ajax 请求中工作

    我有一个返回 URL 的通用函数 这是一个插件函数 可返回插件内资源 图像 样式表 的 URL 我在这些 URL 中使用 GET 参数 如果我想在 HTML 页面中使用这些 URL 以通过 W3C 验证 我需要将 符号屏蔽为 plugin
  • 我可以使用 VIM 查看 Python 中函数的文档字符串吗?

    在 VIM 中编写 Python 时 有什么方法可以查看函数的文档字符串吗 例如 def MyFunction spam A function that foobars the spam returns eggs return foobar
  • 使用 ImageMagick 从文本生成图像?

    我正在尝试使用 ImageMagick 创建 3840 x 2160 的缩略图 我需要图像具有黑色背景和白色文本 文本应垂直和水平居中 我希望能够设置字体大小 但如果文本超出图像 则会自动减小字体大小 使其适合左侧和右侧的一定量的填充 我将
  • 通过 nginx 入口控制器进行基本身份验证

    我正在使用 nginx 入口控制器 https kubernetes github io ingress nginx deploy https kubernetes github io ingress nginx deploy 在 AWS
  • C++ win32 控制台中的颜色

    std cout lt lt blblabla done lt lt std endl 是否有可能使 done 采用另一种颜色 并且可能是大胆的 我使用的是 Windows 7 这取决于您使用的操作系统 如果您使用的是您想要的 Window
  • Aurelia:创建嵌套/多级导航菜单的简单方法

    我需要创建一个多级导航菜单 菜单的内容根据用户的不同而不同 我计划通过一个以 JSON 形式返回数据的服务来提取可包含子项数组的导航项集合 我见过的每个导航 路由示例都使用静态路由或单级菜单 我已经阅读了一些有关子路由的内容 但这似乎不是我
  • 基于我的 C# 类生成 xml 文件

    我有 xml 文件 每次都需要根据新客户的要求进行更新 大多数时候 xml 不正确是因为手动更新了 xml 文件 我正在考虑编写一个提供适当验证的程序 网络 Windows 并根据 ui 的输入 我将创建 xml 文件 下面是我的示例 xm
  • 内联网应用程序是否需要 SSL 证书

    我的应用程序将使用 MSI 安装程序部署到用户的服务器 并且期望它将作为 Intranet 应用程序在其安全网络上运行 但是 由于我在整个网站上使用 HTTPS 我想知道如何获得有效的证书 我已经使用 MakeCert 生成了一个开发版本
  • BLE 广播帧和 BLE 信标帧有区别吗

    我正在接收EVT LE ADVERTISING REPORT来自 HCI 套接字 我想区分 BLE 信标和普通 BLE 设备 解析设备名称等 我有点困惑是否所有 BLE 设备都会发出信标或者它们是不同的 如果不同 那么它们的数据包格式如何