微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > BLE indicate判断数据收发

BLE indicate判断数据收发

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

BLE indicate判断数据收发


前面说过 BLE 上传数据的两种方式 Notify 和 Indicate,也说明了 Indicate 方式主机会在收到数据后返回一个消息给 BLE,表明已收到数据,但是这个主机返回给 BLE 的消息很多人都不知道在哪里判断。其实是在下面的程序中:
[html] view plain copy 在CODE上查看代码片派生到我的代码片
static void wechatIOTProcessGattMsg( gattMsgEvent_t *pMsg )  
{  
  //Measurement Indication Confirmation  
  if( pMsg->method == ATT_HANDLE_VALUE_CFM)//Indicate 返回的消息  
  {  
      //处理程序,可以再此处加上判断 Indicate 回消息之后的处理方式  
  }  
  if ( pMsg->method == ATT_HANDLE_VALUE_NOTI ||  
       pMsg->method == ATT_HANDLE_VALUE_IND )  
  {  
    timeAppIndGattMsg( pMsg );  
  }  
  else if ( pMsg->method == ATT_READ_RSP ||  
            pMsg->method == ATT_WRITE_RSP )  
  {  
    timeAppConfigState = timeAppConfigGattMsg ( timeAppConfigState, pMsg );  
    if ( timeAppConfigState == TIMEAPP_CONFIG_CMPL )  
    {  
      timeAppDiscoveryCmpl = TRUE;  
    }  
  }  
  else  
  {  
    timeAppDiscState = timeAppDiscGattMsg( timeAppDiscState, pMsg );  
    if ( timeAppDiscState == DISC_IDLE )  
    {  
      // Start characteristic configuration  
      timeAppConfigState = timeAppConfigNext( TIMEAPP_CONFIG_START );  
    }  
  }  
}  
这里平时不需要注意,但是当你需要知道是否有返回消息,并根据这个消息来判断数据是否发送完成,或者想根据这个消息做下一步的动作时,就要在注释处加上你自己的处理程序,其实还是很简单的。

已退回5积分

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

网站地图

Top