微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC250 indication 发送成功是否?

CC250 indication 发送成功是否?

时间:10-02 整理:3721RD 点击:

在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的蓝牙模块,你们有简单的驱动电路和底层源码提供吗?急需

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top