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积分