微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > UUID数据交互

UUID数据交互

时间:12-22 整理:3721RD 点击:

请问我能在一个Service UUID下面自定义Attribute UUIDs来读写数据吗?这些UUID的值能不能自己来设定?在示例程序中有的Attribute UUIDs特性是其他作用,比如Accelerometer 的ACCEL_X_UUID,我想修改成仅用来做数据读写用,该怎么修改呢?  在设置  Attribute UUIDs时,下面这段设置是做什么用的?这么设置了之后我怎么读写这个UUID里交互的数据?

      // X-Coordinate Characteristic configuration
      {
        { ATT_BT_UUID_SIZE, clientCharCfgUUID },
        GATT_PERMIT_READ | GATT_PERMIT_WRITE,
        0,
        (uint8 *)accelXConfigCoordinates
      },

Hi Wang wx,

你完全可以在Service UUID下面自定义attribute UUID. 但前提是和你通信的对方(比如IOS 的APP)也必须对于同一个attribute也定义一样的UUID.

另外, SIG官方定义的UUID都是16位的, 如果你自定义的话, SIG规定必须用128位. 但是为了编程使用方便, 你定义成16位也可以. Accelerometer就是这么做的.

如果你想用做数据读取用, 你可以自定义一个characteristic(如何定义请参照代码, 以及Bluetooth Core Spec v4.0里面的volume 3, part G里面的3.3章), 记得把这个characteristic value的属性设置成可被读写.

如果你去看一下我上面提到的core spec 4.0的章节, 就很容易知道这是个characteristic的定义. 这是accelerometer的value的属性, 对方通过write的命令可以修改这个属性, 从而打开或者关闭accelerometer向对方发送加速坐标的功能.

上面提到的各个功能的定义, 都是可以从core spec 4.0上面提到的章节中找到对应解释.

有一点, 其实很简单, 举个例子, IOS跟keyfob连的时候,

如果IOS要从keyfob读数据, 就发read命令. keyfob会通过read response返回数据.

如果IOS要向keyfob写数据, 就发write命令.

keyfob要主动向IOS发数据, 可以用notify 或者 indication.

具体还是请参照core spec 4.0.可以从www.bluetooth.sig下载, 免费注册下载.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top