This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2F --- 图示上的 ID 值是哪来的



Hi JRs:

     如下图里的信息是我用 苹果手机的 eBeacon AP 搜索到的附件 Beacon 设备

      请教下,红框里的 ID 值是哪来的?是什么 ID?

谢谢

  • 应该是自定义uuid
  • Hi ViKi:

    请问你说的自定义是怎么定义的呢?我没有定义的。

    谢谢
  • 是那些beacon设备定义的,这些附近的设备都是你自己的吗?
  • Hi ViKi:

    我们的设备是这样的:目前只生产过一次,大概是在 2 年前生产的;

    现在准备生产第二代的 Beacon 设备,HW 上只是比 一代的少个 Key;

    目前 二代的 HW 还没生产出来,所以我 Debug 用的都是 一代的产品;

    我问过之前研究一代产品的工程师,他们都没有写过这个值,而我自己下载软件(现在这包新的 SDK),也会出现这个 ID,那我怀疑这个 ID 不是我们写的?

    所以请问这个 ID 是哪来的?表示什么信息?

    谢谢
  • 就是UUID,app据此区分不同的beacon设备。详解请看这边:www.cnblogs.com/.../5995674.html
  • Hi ViKi:

    谢谢,这篇文档我看完了,其实我的问题还是没能解决。

    我还是没明白,这个 UUID 是哪来的?

    从我现在的测试来看,这些 UUID 是唯一的,每个Beacon 设备都一个唯一且固定的值,肯定是有某个地方写进去(或者在哪算出来的)。

    谢谢
  • 写在adverdata里的,以ibeacon的格式为例:

    static beaconAdvData_t beaconAdv =
    {
    // Flags; this sets the device to use general discoverable mode
    0x02, // length of this data
    GAP_ADTYPE_FLAGS,
    0x06,
    0x1A, // length of this data including the data type byte
    0xFF, // type
    0x4C, // company ID[0]
    0x00, // company ID[1]
    0x02, // beacon type[0]
    0x15, // beacon type[1]
    0xA3, // UUID LSB
    0x22,
    0x37,
    0xE7,
    0x3E,
    0xC0,
    0xC5,
    0x84,
    0x86,
    0x4B,
    0xB9,
    0x99,
    0xF9,
    0x82,
    0x03,
    0xF7, // UUID MSB
    0x00, //major[0] (major and minor fields can be set as desired)
    0x00, //major[1]
    0x00, //minor[0]
    0x00, //minor[1]
    0x00 //measured power (can be set later)
    };
  • Hi ViKi:

    不是的,我们代码里 adverdata 数组里的 UUID 都是 0,所以肯定不是 adverdata 里的 UUID。
  • UUID可以直接填充到adverdata里,也可以根据代码设计,更新并填充给GAP层发送出来。一般一家公司beacon产品的UUID是通过一个算法计算出来,填充到广播包里。比如在TI 的例程里,是通过以下函数填充的:

    static void MicroEddystoneBeacon_initUID(void)
    {
    // Set Eddystone UID frame with meaningless numbers for example.
    // This need to be replaced with some algorithm-based formula
    // for production.
    eddystoneUID.namespaceID[0] = 0x00;
    eddystoneUID.namespaceID[1] = 0x01;
    eddystoneUID.namespaceID[2] = 0x02;
    eddystoneUID.namespaceID[3] = 0x03;
    eddystoneUID.namespaceID[4] = 0x04;
    eddystoneUID.namespaceID[5] = 0x05;
    eddystoneUID.namespaceID[6] = 0x06;
    eddystoneUID.namespaceID[7] = 0x07;
    eddystoneUID.namespaceID[8] = 0x08;
    eddystoneUID.namespaceID[9] = 0x09;

    eddystoneUID.instanceID[0] = 0x04;
    eddystoneUID.instanceID[1] = 0x51;
    eddystoneUID.instanceID[2] = 0x40;
    eddystoneUID.instanceID[3] = 0x00;
    eddystoneUID.instanceID[4] = 0xB0;
    eddystoneUID.instanceID[5] = 0x00;
    }

  • Hi ViKi:

    UUID 的填充我们也规划了自己的方法。


    可是我的问题是:图片里红框中的这一串值是哪来的?因为我现在并没有写UUID,ID 全是原始的,那怎么会有这串值的?


    请看上面问题的图片,第二个红框的部分,也就是 FIH_BCN_V1.010 那一栏里的:

    我手头的 Beacon 设备在 2 年前生产的;

    我现在从 TI 网站新下载了 simplelink_cc2640r2_sdk_4_20_00_04 的 SDK 包,编译后下载到 Beacon 设备里;

    用苹果手机的 eBeacon APK 搜索,这台 Beacon 设备 无论是下载两年前的软件 还是 下载现在新的软件,eBeacon APK 搜索到这个设备时的 ID(就是红框里的值)都是这个 UUID。


    所以我怀疑这个 ID 不是我们写的,那问题来了,这个 ID 是哪来的?由谁写进去的(或者计算出来)?

    谢谢
  • 照这个描述的话,确实有可能是软件自己生成的,应该是根据一定的规则,mac 地址之类的
    建议你问一下APP或IOS的人,我是安卓机,无法测了

  • Hi ViKi:

    谢谢~~~