BLE一主多从无法获取特征值handle
时间:10-02
整理:3721RD
点击:
我在central的基础上作的修改,发现几个问题:
1.不开优化没有办法获取特征值,
2.开了优化也只能获取第一个建立连接的丛机特征值handle并进行相应的操作。第二个丛机建立连接成功,服务发现执行完GATT_DiscPrimaryServiceByUUID,收到的pMsg中,含有正确的starthandle和endhanle,但是pMsg->hdr.status总是为0,不等于bleProcedureComplete,导致下面的条件不成立,无法执行GATT_ReadUsingCharUUID。
if ( ( pMsg->method == ATT_FIND_BY_TYPE_VALUE_RSP &&
pMsg->hdr.status == bleProcedureComplete ) ||
( pMsg->method == ATT_ERROR_RSP ) )
我把这个判断条件去掉,强制执行GATT_ReadUsingCharUUID,结果第一个建立连接的丛机特征值handle都无法获取。我想知道pMsg->hdr.status的值是由什么决定的?丛机的应答吗?为什么第一个没有问题,第二个却不行?如何解决这个问题?丛机的代码是否需要作什么修改?
另外由于两个丛机的代码一模一样,我投机取巧直接使用第一个丛机的相同特征值的handle向第二个丛机进行写操作,结果也不成功。
网上的那个一拖二的工程我看了,里面只操作了第一个连接的丛机特征值,好像没有什么参考价值。
呼叫大神yan!
怎么还没人啊,感觉论坛应该提供@功能。。
我也碰到这个问题,求解决
没有人吗?大神显灵啊