微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于connHandle的问题

关于connHandle的问题

时间:10-02 整理:3721RD 点击:

hi,各位大神:

最近我想使用Notification的方式通信,在编写程序的过程中遇到几个函数,比如:

bStatus_t GATT_Notification( uint16 connHandle, attHandleValueNoti_t *pNoti,uint8 authenticated );

uint16 GATTServApp_ReadCharCfg( uint16 connHandle, gattCharCfg_t *charCfgTbl );

bStatus_t GATT_WriteCharValue( uint16 connHandle, attWriteReq_t *pReq, uint8 taskId );

这几个函数里面都有一个参数connHandle,我一直没有搞明白这个参数到底是什么含义,应该如何获取?

如果我定义的Profile Attributes - Table如下:

static gattAttribute_t AttrTbl[SERVAPP_NUM_ATTR_SUPPORTED] =
{
      /* Service*/
    {
        { ATT_BT_UUID_SIZE, primaryServiceUUID },
        GATT_PERMIT_READ, 
        0, 
        (uint8 *)&accelService
     },      

        /* Declaration*/
    {
        { ATT_BT_UUID_SIZE, characterUUID },
        GATT_PERMIT_READ,
        0,
         &TimeCharProps
     },
     /* Value*/
     {
          { ATT_BT_UUID_SIZE, TransmitTimeUUID },
          GATT_PERMIT_READ | GATT_PERMIT_WRITE,
           0,
           (uint8 *)&DeviceTime
     },
     /* configuration*/
     {
          { ATT_BT_UUID_SIZE, clientCharCfgUUID },
         GATT_PERMIT_READ | GATT_PERMIT_WRITE,
          0,
           (uint8 *)TimeConfigCoordinates
      },

          /*  Declaration*/
      {
          { ATT_BT_UUID_SIZE, characterUUID },
         GATT_PERMIT_READ,
          0,
         &DataNOTICharProps
       },
       /*  Value*/
      {
          { ATT_BT_UUID_SIZE, TransmitMACUUID },
           0,
           0,
           (uint8 *)(&SendData)
       },
        /* configuration*/
       {
          { ATT_BT_UUID_SIZE, clientCharCfgUUID },
          GATT_PERMIT_READ | GATT_PERMIT_WRITE,
          0,
          (uint8 *)DataNOTIConfigCoordinates
        },

}

  编程时为了使能peripheral的notification来上传Data,我想在central中将我上面定义的data特性的congfiguration值写入0x0001,那么我需要调用GATT_WriteCharValue函数,此时connHandle应该是多少或者怎么得到?如果我已经使能notification,那么我在调用GATT_Notification时,这里的connHandle又应该是多少?

蓝牙支持组网,一个主设备连接多个从设备,connhandle就是连接号,从而区分不同从设备。

hi,cedar_xuesong:

谢谢你的回复!

那connhandle与特性的handle有什么联系吗?还有就是如何获取handle?

connhandle上面已经解释过了。特征值的handle,你可以理解成数组索引值,获取到一个handle,就能操作这个特征值进行读写操作,也能通过handle+1来获取下一个数据元素,然后读写特定值,典型用途是使能notify功能。 connhandle是设备之间的概念;handle是设备内部的属性,很多信息,可以看蓝牙规范中的gatt部分

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

网站地图

Top