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 信标帧有区别吗 的相关文章

  • 如何重启BluetoothLeScanner?

    我正在使用 Android 端的 BluetoothLeScanner 将 Android 设备连接到 iOS 第一次一切都完美无缺 问题是 在我连接到其中一台已发现的 iOS 设备后 我停止扫描 stopScan scanCallback
  • 原生 Android BLE 实现本质上是同步的吗?

    我记得读过 指导和提示 http img developer samsung com contents authCdn ble Guide and Hints for Samsung BLE API pdf gda 1375430976 5
  • Android 蓝牙accept() / connect() 与已配对的设备

    我在通过蓝牙连接两个 Android 设备时遇到问题 只有当它们之前已配对时才会出现这种情况 我运行一个作为服务器 另一个作为客户端 以下是服务器端的操作顺序 检查各种蓝牙状态 适配器可用 已启用等 使用我选择的预定义UUID 调用list
  • 如何通过蓝牙在Raspberry Pi 4和Arduino Nano BLE之间进行读写?

    我能够通过 Rpi4 的 bluepy 和 Arduino Nano BLE 的 ArduinoBLE h 连接 Raspberry Pi 4 和 Arduino Nano BLE 不幸的是 当我尝试从 Rpi4 写入 Arduino Na
  • Android BLE 扫描与 UUID 过滤器列表混淆

    我正在 Android 移动设备 A 上执行 UUID 过滤扫描 并且有两个测试用例 一个人在另一台 Android 设备 移动设备 b 上使用名为 BLE Scanner 的应用程序来创建具有两个测试服务 每个服务都有自己唯一的 UUID
  • Android 模拟器上的低功耗蓝牙

    我研究了关于蓝牙低功耗 http developer android com guide topics connectivity bluetooth le html 但我没有支持 BLE 设备进行测试 因此 我想问 Android模拟器支持
  • iOS 的 BLE 外设名称不正确

    我正在编写一个 iOS 应用程序来与 BLE 设备通信 设备可以在连接之间更改名称 不能在 BLE 连接期间 但 iOS 拒绝更改设备名称 例如 当设备名称为 SadName 时 我可以连接到该设备 我断开连接 关闭应用程序等 然后将设备的
  • 在 Android 上同时与多个 BLE 设备进行稳健通信

    尽管没有记录 但使用 Android BLE api 的传统观点是 某些操作 例如读 写特性和描述符 应该一次完成一个 尽管某些设备比其他设备更宽松 但是 我不清楚此策略是否应仅适用于单个连接 还是适用于所有活动连接 我听说最好一次启动与一
  • 更快地重新连接 CBPeripheral

    我正在开发一个应用程序 它可以多次连接和断开不同的蓝牙低功耗外围设备 经过在互联网上的大量研究 我没有找到一种方法来存储已经发现的服务和特征 以便我可以更快地重新连接 目前 我正在每次重新连接后发现所需的服务和特征 这花费了我 1 5 到
  • Android 8.0 上的 BLE 扫描

    我开发了一个应用程序 可以扫描附近的设备 周围有多种信标 我正在使用带有 CALLBACK TYPE ALL MATCHES 和空 ScanFilter 数组的 BluetoothLeScanner 进行扫描 因为我想获取所有附近设备的回调
  • Android:BLE如何读取多个Characteristic?

    用于读取某些特征的 Android BLE API 方法本质上是异步的 当您请求某些值时 将调用您的 GATT 回调方法 如果您请求多个读取特征值 它只会丢弃其他值 直到它不满足第一个请求为止 如果有人知道我们应该采用哪种设计模式来解决这个
  • 我应该在 OBDII 的 BLE IOS 设备中使用什么 BLE 特性

    您好 我想知道我应该从这个 OBDII BLE 设备 加密狗中使用什么写入和通知特性 我想在 Flutter 中创建一个适用于 IOS 的程序 有不少 Device name VEEPEAK Device id 34E2B2AF 60F4
  • 如何估算 BLE 模块的功耗?

    我正在为带有 BLE 模块的设备编写一个 iOS 应用程序 该模块在连接时一致地通告几个字节的数据 我们正在尝试估算 BLE 模块的功耗 以便估算设备的电池寿命 我已经在 SO 和 Google 上搜索过 寻找合适的方法来估计这一点 但我一
  • 在 Android BLE 中处理指示而不是通知

    使用蓝牙 SIG 应用加速器代码 它很好地演示了蓝牙低功耗的不同概念 然而 它没有提到与通知相反的指示 我知道与通知不同 需要确认指示 并且在代码中我会这样做byte val enabled BluetoothGattDescriptor
  • Electron Web 蓝牙 API requestDevice() 错误

    我正在尝试开发一个与蓝牙低功耗设备通信的应用程序 我使用 Web Bluetooth API 建立了一个工作 网站 一切正常 所以我使用 Electron 框架来构建一个应用程序 这个问题是已知的 如果你开始navigator blueto
  • 典型的按键持续时间是多少

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

    我正在研究 iBeacon 技术 但我找不到有关地址类型的特定问题的任何答案 我找到了解释地址类型的文档 蓝牙规范 但我似乎找不到如何在两种类型 公共和随机 之间进行选择 这是我发现它的一个例子 它是由 Raspberry PI 上的 iB
  • Android 蓝牙低功耗特性通知计数限制:这是否因设备而异?

    Context 我正在构建一个针对 5 0 的 Android 应用程序 它使用 BLE 连接到多个外围设备 这些外设中的每一个都有许多 10 个特性 理想情况下 我想订阅这些特征中每一项的更改通知 然而 我从阅读中了解到 Android
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc
  • BlueCove 与 Bluez 卡盘“无法打开 SDP 会话。[2] 没有这样的文件或目录”

    我正在尝试编写一个简单的蓝牙服务器 它接受来自我的 HeartRate Device 蓝牙 LE 的连接 但它总是引发异常 javax bluetooth ServiceRegistrationException Can not open

随机推荐

  • 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 设备都会发出信标或者它们是不同的 如果不同 那么它们的数据包格式如何