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.

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



注册一个服务的相关需要什么东西。
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
    },
    };

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

    BLE_SensorTag_GATT_Server.pdf
  • 应该怎么看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)

    祝你好运!