CC250 indication 发送成功是否?
在BloodPressure工程中,发送indication 成功是否?
在函数static bStatus_t bloodPressure_WriteAttrCB( uint16 connHandle, gattAttribute_t *pAttr,
uint8 *pValue, uint8 len, uint16 offset )中:
status = GATTServApp_ProcessCCCWriteReq( connHandle, pAttr, pValue, len,
offset, GATT_CLIENT_CFG_NOTIFY );
if ( status == SUCCESS )
{
uint16 value = BUILD_UINT16( pValue[0], pValue[1] );
(*bloodPressureServiceCB)( (value == GATT_CFG_NO_OPERATION) ?
BLOODPRESSURE_IMEAS_NOTI_DISABLED :
BLOODPRESSURE_IMEAS_NOTI_ENABLED );
}
status 代表indicaton已经发送成功,还是Value的值代表indication已经发送成功。
以SimpleBLEPeripheral为例
在CC2540的程序里面 GATT_Indication 调用之后
在有ACK的时候,程序里面simpleBLEPeripheral_ProcessOSALMsg 这个函数里面的GATT_MSG_EVENT会被触发
然后在simpleBLEPeripheral_ProcessGattMsg函数里面,
if(pMsg->method ==ATT_HANDLE_VALUE_CFM) {
ATT_HandleValueCfm( pMsg->connHandle ); <--- Here confirms the ack supposedly
sendData(); <--- And here calls sendData function again to send data again.
你好TI工程师
我查找了一些资料,但是对于这个函数还是有点疑问,
您在这里的理解是 ACK已经收到,可是我怎么确认ACK搜到呢,如果没有收到,还不是照样执行 SendData
ATT_HandleValueCfm( pMsg->connHandle );
我想问下一 客户端是怎么发送ACK了,我查找了一些资料也是调用了这个函数,所以我有点糊涂了,麻烦指点一下
主机怎么返回ACK;了
你好:我公司正在开发一个CC2540的蓝牙模块,你们有简单的驱动电路和底层源码提供吗?急需