cc2640主从使用自定义notify型的char6特征值通信问题,
时间:10-02
整理:3721RD
点击:
我现在从机增加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 );
}
}
