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.

cc2640主从使用自定义notify型的char6特征值通信问题,

我现在从机增加20字节大小的notify型的char6特征值,用于与主机通信,但是现在主机无法获取char6的句柄值(主机是能获取其他特征值的句柄的),而且如果使用手机app接收从机char6 notify的数据,是能接收到的。所以现在不不知道是从机还是主机出现的问题,换了几个板子都是一样的情况!TI开发人员知道是哪儿的问题的吗?希望解答一下谢谢 (这是主机获取句柄值的修改部分,只需要修改SIMPLEPROFILE_CHAR6_UUID应该就能获取char6的句柄的)

  • Hi,yongjing

    我在下面举一个例子:

    #define GATT_CLIENT_CFG_NOTIFY                  0x0001 //打开notify开关的数值  
    #define GATT_CLIENT_CFG_INDICATE                0x0002 //打开indicate开关的数值  
      
    #define SIMPLEPORFILE_CHAR4_Hdl                           0x2E //char4的句柄   
    #define SIMPLEPORFILE_CCC_Hdl                       0x2F //char4的CCC的句柄
    开启notification
     attWriteReq_t req;  
              
     req.handle = GUA_CHAR4_CCC_Hdl;                   //char4的CCC的特征值句柄,这里写死0x2F,可通过btool获取到  
     req.len = 2;  
     req.value[0] = LO_UINT16(GATT_CLIENT_CFG_NOTIFY); //0x0001为开notify  
     req.value[1] = HI_UINT16(GATT_CLIENT_CFG_NOTIFY);          
     req.sig = 0;  
     req.cmd = 0;  
      GATT_WriteCharValue( 0, &req, simpleBLETaskId );    

    接收部分

    SimpleBLECentral.c的simpleBLECentralProcessGATTMsg中
    
    else if ( ( pMsg->method == ATT_HANDLE_VALUE_NOTI ) )   //通知  
    {  
      if( pMsg->msg.handleValueNoti.handle == GUA_CHAR4_Hdl)     //CHAR6的通知  串口打印  
      {  
          char str[32] = {0};  
          osal_memcpy(str, pMsg->msg.handleValueNoti.value, pMsg->msg.handleValueNoti.len );  
      }  
    }