TI中文支持网
TI专业的中文技术问题搜集分享网站

SimpleBLECentral 例程里的GATT_WriteNoRsp()函数和GATT_WriteCharValue()函数

您好:

     1.我现在用cc2640做主机,程序是在TI的SDK里的SimpleBLECentral 例程里修改的

        协议栈的版本是2.1.0

        里面有一函数如下:
/*********************************************************************
 * GATT Write Without Response.
 *
 * Public function defined in gatt.h.
 *
 * @return  SUCCESS or FAILURE
 */
bStatus_t GATT_WriteNoRsp(uint16 connHandle, attWriteReq_t *pReq)
{
  return gattRequest(connHandle, (attMsg_t *)pReq, ICall_getEntityId(),
                     GATT_WRITE_NO_RSP);
}

         因为这个函数是GATT Write Without Response,写,但是不要求对方答复

             我想改成GATT Write With Response,写,要求对方答复,请问如何修改?

 
     2.里面还有一函数如下:
       
/*********************************************************************
 * GATT Write Characteristic Value.
 *
 * Public function defined in gatt.h.
 *
 * @return  SUCCESS or FAILURE
 */
bStatus_t GATT_WriteCharValue(uint16 connHandle, attWriteReq_t *pReq,
                              uint8 taskId)
{
  return gattRequest(connHandle, (attMsg_t *)pReq, taskId, ATT_WRITE_REQ);
}
 
请问GATT_WriteCharValue函数和GATT_WriteNoRsp函数有何区别?
原先用GATT_WriteNoRsp可以实现的,能否用GATT_WriteCharValue函数来替代?
Susan Yang:

用GATT_WriteCharValue() 操作一个特征值,必须等到ATT层的write response之后才能对它进行下一步操作,没收到response之前,不能进行第二次操作。所以在进行第二次写入之前,必须先等待收到第一次response

而GATT_WriteNoRsp()是不需要peripheral 回复 response的写请求。

赞(0)
未经允许不得转载:TI中文支持网 » SimpleBLECentral 例程里的GATT_WriteNoRsp()函数和GATT_WriteCharValue()函数
分享到: 更多 (0)