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