微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 先问两个问题。先谢谢ti的工程师们,再感谢下论坛的广大网友

先问两个问题。先谢谢ti的工程师们,再感谢下论坛的广大网友

时间:10-02 整理:3721RD 点击:
注册一个服务的相关需要什么东西。
static gattAttribute_t irTempAttrTbl[] =
{
  // Sensor Profile Services
  {
    { ATT_BT_UUID_SIZE, primaryServiceUUID }, /* type */
    GATT_PERMIT_READ,                         /* permissions */
    0,                                        /* handle */
    (uint8 *)&irTempService                   /* pValue */
  },

    // Characteristic Declaration
    {
      { ATT_BT_UUID_SIZE, characterUUID },
      GATT_PERMIT_READ,
      0,
      &irTempDataProps
    },

      // Characteristic Value "Data"
      {
        { TI_UUID_SIZE, irTempDataUUID },
        GATT_PERMIT_READ,
        0,
        sendData// irTempData
      },

      // Characteristic configuration
      {
        { ATT_BT_UUID_SIZE, clientCharCfgUUID },
        GATT_PERMIT_READ | GATT_PERMIT_WRITE,
        0,
        (uint8 *)irTempDataConfig
      },

      // Characteristic User Description
      {
        { ATT_BT_UUID_SIZE, charUserDescUUID },
        GATT_PERMIT_READ,
        0,
        irTempDataUserDesp
      },

    // Characteristic Declaration
    {
      { ATT_BT_UUID_SIZE, characterUUID },
      GATT_PERMIT_READ,
      0,
      &irTempCfgProps
    },

      // Characteristic Value "Configuration"
      {
        { TI_UUID_SIZE, irTempConfUUID },
        GATT_PERMIT_READ | GATT_PERMIT_WRITE,
        0,
        &irTempCfg
      },

      // Characteristic User Description
      {
        { ATT_BT_UUID_SIZE, charUserDescUUID },
        GATT_PERMIT_READ,
        0,
        irTempCfgUserDesp
      },
};
开发板  sensortag
问题1   gattAttribute_t    xxxxxxTbl[]  这个character数组(表的)写法,每一个service都是注册了一个xxxxxxTbl[]。但是几乎每一个都是不同的,有些相类似的也没有看出类似点。 
这个问题其实想问的是

问题2  GATTServApp_RegisterService( irTempAttrTbl,GATT_NUM_ATTRS( irTempAttrTbl ),&irTempCBs );

因为这个函数是没法看到定义的。想知道这个函数的实现方式,或者说这个函数调用了什么。以后操作这个服务如何操作。那个api函数可以操作这些函数。

关于GATTServApp_RegisterService ,您可以打开工程,通过使用搜索功能Edit--> Find and replace-->Find in files...来查看哪些函数调用了该函数

第一次发贴,不太会用功能,问得问题也是很乱七八糟。这个功能我已经造就会使用了,我想问的是GATTServApp_RegisterService 这个函数中调用了那些API函数。这样我就可以了解注册服务之后的过程。也就是想问问注册服务之后osal会做什么。

这次的第二个问题,也就是上贴的第一个问题,就是想知道。 gattAttribute_t    XXXXAttrTbl[]。这个服务注册的列表是怎么来写的。和注册的服务是啥关系。看了很多XXXXAttrTbl。感觉每一个都不太相同,这是怎么规定的。

用的开发板是sensortag   平板电脑是 nexus 7(2012)

shaoxuan,

这个是根据BLE 的spec 来定义的。

你可以看到表的第一个成员:

 {

    { ATT_BT_UUID_SIZE, primaryServiceUUID }, /* type */

    GATT_PERMIT_READ,                         /* permissions */

    0,                                        /* handle */

    (uint8 *)&irTempService                   /* pValue */

  },

看到我标黄标红的地方没? 这个就是spec的要求。你就照抄把 :)

有兴趣的话可以去看一下蓝牙spec 的 ATT 层的解释:)

static gattAttribute_t irTempAttrTbl[] =
{
// Sensor Profile Services
{
{ ATT_BT_UUID_SIZE, primaryServiceUUID }, /* type */
GATT_PERMIT_READ, /* permissions */
0, /* handle */
(uint8 *)&irTempService /* pValue */
},

// Characteristic Declaration
{
{ ATT_BT_UUID_SIZE, characterUUID },
GATT_PERMIT_READ,
0,
&irTempDataProps
},

// Characteristic Value "Data"
{
{ TI_UUID_SIZE, irTempDataUUID },
GATT_PERMIT_READ,
0,
 irTempData
},

// Characteristic configuration
{
{ ATT_BT_UUID_SIZE, clientCharCfgUUID },
GATT_PERMIT_READ | GATT_PERMIT_WRITE,
0,
(uint8 *)irTempDataConfig
},

// Characteristic User Description
{
{ ATT_BT_UUID_SIZE, charUserDescUUID },
GATT_PERMIT_READ,
0,
irTempDataUserDesp
},

// Characteristic Declaration
{
{ ATT_BT_UUID_SIZE, characterUUID },
GATT_PERMIT_READ,
0,
&irTempCfgProps
},

// Characteristic Value "Configuration"
{
{ TI_UUID_SIZE, irTempConfUUID },
GATT_PERMIT_READ | GATT_PERMIT_WRITE,
0,
&irTempCfg
},

// Characteristic User Description
{
{ ATT_BT_UUID_SIZE, charUserDescUUID },
GATT_PERMIT_READ,
0,
irTempCfgUserDesp
},
};

在这个数组的每一个元素中,我用红色添加背景的东西该有顺序应该就是写这个表的核心问题。我想问的是,这个顺序和对应关系应该怎么理解。

应该怎么看spec呢,是那些章节,这个实在有点多,希望指点下看的章节。

shaoxuan,

要理解你标记的内容,最好看一下蓝牙spec 里面的ATT和 GATT 的相关内容。

你从bluetooth org下载到spec的话,可以 从第 2113页开始看。

这是要看完整个Volume5么,感觉有好多。

shaoxuan,

建议你看一下论坛置顶的教学视频吧,里面应该有介绍。

这个看过了,是一个很笼统的介绍,除了看spec,还有别的办法么。多谢你要是没有办法我就老实去看spec吧。

shaoxuan,

最好的办法还是老实去看spec :)

既然已经觉得视频的内容已经不够,那么spec是最好的选择,其实关于ATT和GATT的内容也不多,就那么一些,看过你就会了解。

好了,谢谢你的帮助,祝你工作顺利,心情愉快。嘿嘿。我也去干活了。

这是讲ATT和GATT的章节么。怎么感觉看了半天不太对啊。如果确实是的话,原谅我的英文太差。

shaoxuan,

你的英语肯定足够好了 :)

我说的是最新的4.1 版本的spec, 你有可能在看4.0的。

不管哪个版本,你可以这样找,vol 3: core system package [Host Volume] -> Part F: Attribute Protocol(ATT) , 接下来一章就是 Part G: Generic Attribute Profile(GATT)

祝你好运!

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

网站地图

Top