Example中通过SimpleProfile_SetParameter()来执行Notify,我想要知道的是,调用SimpleProfile_SetParameter()之后,怎样知道这一包数据已经发送出去,会否会有相应的事件或callback ?
Alvin Chen:
case SIMPLEPROFILE_CHAR4: if ( len<SIMPLEPROFILE_CHAR4_LEN) { VOID memcpy( simpleProfileChar4, value, SIMPLEPROFILE_CHAR4_LEN );
// See if Notification has been enabled GATTServApp_ProcessCharCfg( simpleProfileChar4Config, simpleProfileChar4, FALSE, simpleProfileAttrTbl, GATT_NUM_ATTRS( simpleProfileAttrTbl ), INVALID_TASK_ID, simpleProfile_ReadAttrCB ); }
你可以对GATTServApp_ProcessCharCfg进行返回值判断
Alvin Chen:
回复 Alvin Chen:
实际上是设置了一个新的值,但是打开了notification会上报这个变化。
AndyChen:
回复 Alvin Chen:
GATTServApp_ProcessCharCfg()返回的是Success or Failure,应该只是调用这个API的状态返回,即使返回Success应该也不能说明这一包数据已经发出去了,可能只是存在了队列中而已。 否则GATTServApp_ProcessCharCfg()这个API就会造成block,必须等到发送结束才会继续往下执行。