gpt4 book ai didi

ios - 理解 iBeacon 数据 : the power field and other bytes

转载 作者:可可西里 更新时间:2023-11-01 04:35:02 24 4
gpt4 key购买 nike

我是蓝牙系统的新手,我正在尝试了解用于新 Apple 技术的数据:iBeacon。

已经有一些很好的答案解释了它是如何工作的,我一直在阅读我能找到的所有内容(尤其是蓝牙规范)。尽管如此,我还是遗漏了一些要点,我将首先举个例子:(我正在使用 Set Advertising Data Command,它在这里遗漏了 OGF 之前的 hcitool cmd)

0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 C5 6D B5 DF FB 48 D2 B0 60 D0 F5 A7 10 96 E0 00 00 00 00 C5 00

我会在这里列出我不明白的或找到的信息。

  1. 有没有关于 OGF 的任何信息(这里是 0x08)?我知道它代表 OpCode Group Field,但与 OGF 之后的 OCF 相反,我什么也没找到。
  2. 02 01 1A 1A 字节行代表什么?我知道第一个字节 1E 表示其余数据,在该行之后,以 FF 开头,您将获得制造商特定数据。但是我找不到关于这 4 个字节的任何信息。
  3. 功率字节是如何工作的?这里是C5。我知道我得到的是我的 iBeacon(例如在我的 iPhone 上)测距时的 dBm 值。我知道值越高(在 功率字节 上),功率越高,这意味着精度越高,但能耗也越高。 但是你如何使用那个字节呢?您可以设置的最小值和最大值是多少?或者那里有什么公式?对于字节上的设定值,您是否获得了设定的 dBm 值(距离您的 iBeacon 一米)?

谢谢。

最佳答案

前两个问题的答案可以在巨大的 Bluetooth 4.0 Core spec 中找到。 .

  1. 0x08 的 OGF 组 LE Controller 的 OCF 命令:

    For the LE Controller Commands, the OGF code is defined as 0x08. (Bluetooth Specification Version 4.0 [Vol 2], page 1114)

    因为 0x0008 OCF 命令是一个 Controller 命令,所以你必须使用 0x08 OGF 代码。使困惑?忘了它。只知道您使用 0x08 0x0008 使用 hcitool 设置广告数据。

  2. 开始广告的字节序列如下:

    1E Number of bytes that follow in the advertisement
    02 Number of bytes that follow in first AD structure
    01 Flags AD type
    1A Flags value 0x1A = 000011010
    bit 0 (OFF) LE Limited Discoverable Mode
    bit 1 (ON) LE General Discoverable Mode
    bit 2 (OFF) BR/EDR Not Supported
    bit 3 (ON) Simultaneous LE and BR/EDR to Same Device Capable (controller)
    bit 4 (ON) Simultaneous LE and BR/EDR to Same Device Capable (Host)
    1A Number of bytes that follow in second (and last) AD structure
    FF Manufacturer specific data AD type
    4C Company identifier code LSB
    00 Company identifier code MSB (0x004C == Apple)
    02 Byte 0 of iBeacon advertisement indicator
    15 Byte 1 of iBeacon advertisement indicator

    -- 蓝牙规范版本 4.0 [第 3 卷],“广告和扫描响应数据格式”p. 375

    -- 蓝牙规范版本 4.0 [第 3 卷],附录 C(规范):EIR 和 AD 格式”,第 401 页

  3. 功率字段只是一个字节的二进制补码,代表一米外 RSSI 中的“测量功率”。简单来说

    这是它的工作原理:

    1. 将 iBeacon 扫描仪(例如 Locate for iBeacon 适用于 iOS)放在离您的 iBeacon 发射器一米远的地方。
    2. 在 RSSI 中读取其信号强度。它将是一个介于 -1 和 -127 之间的数字。 (-1 很强,-127 很弱)
    3. 使用二进制补码将此数字转换为十六进制。 (加 256 然后转换为十六进制)

注意:功率场可以是80-FF。如果是 00,iOS 根本不会进行距离计算。您可以阅读有关如何使用它的更多信息 here .

关于ios - 理解 iBeacon 数据 : the power field and other bytes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com