您好:
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的写请求。