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函数来替代?
用GATT_WriteCharValue() 操作一个特征值,必须等到ATT层的write response之后才能对它进行下一步操作,没收到response之前,不能进行第二次操作。所以在进行第二次写入之前,必须先等待收到第一次response
而GATT_WriteNoRsp()是不需要peripheral 回复 response的写请求。