各位大神,小弟我有些问题需要请教下
1、主从机连接后simpleBLECharHdl这个值一直为零,弄得我通信不了,是哪里问题呢?
2、从机使用的是特征值7为通知,那我在主机中使能通知的话在设置时的handle应该为多少呢
是handle= 0x0039么?(特征值7得句柄值为0x0038)
3、希望回复大神留下联系方式,以便今后即使沟通,谢谢!!
在线等回复,谢谢!!!
Yan:
yongcai,
你是用simpleBLECentral和SmipleBLEPeripheral吗?
特征值的handle其实未必是定死的。
最好的方法是遍历特征值并取得其handle。
如果你知道你自己定义的特征值7的UUID(你肯定知道),那么就可以通过这个特征值查找到相应的handle,而不是你自己去估计。你可以用这个API:GATT_DiscCharsByUUID(),在gatt.h里面。
yongcai zhang:
回复 Yan:
我是在读写数据的时候发现的
attWriteReq_t writeReq; writeReq.handle = simpleBLECharHdl; writeReq.len = SIMPLEPROFILE_CHAR6_LEN;writeReq.sig = 0; writeReq.cmd = 0; osal_memcpy(writeReq.value,ver_data,SIMPLEPROFILE_CHAR6_LEN); GATT_WriteCharValue( simpleBLEConnHandle, &writeReq, simpleBLETaskId );
发现这个simpleBLECharHdl为零,但是我已经发现设备了,为什么这个值会为零呢,他要是零的话我就没法读写数据了,这个东西困惑好久了,不知怎么解决哎,上面海催着要程序,弄得我 哎
以下为主机使能通知的程序
if(events & ENABLE_NOTICE_EVT ) //使能通知
{
writeReq.handle = 0x0039;//1C;
writeReq.len = 2; writeReq.value[0] = 0x01; writeReq.value[1] = 0x00; writeReq.sig = 0; writeReq.cmd = 0; GATT_WriteCharDesc( simpleBLEConnHandle, &writeReq, simpleBLETaskId );
其中writeReq.handle 怎么确定,我在从机中已经把特征值7作为notify形式了,这个writeReq.handle 应该是多少呢?
shuzhou wong:
回复 Yan:
dear Y大神:
读取特征值1,需要使用GATT_ReadUsingCharUUID取得句柄以后,在用GATT_ReadCharValue取得特征值,还是直接用GATT_ReadCharValue获取特征值?
谢谢!