大家好,问两个问题,希望有时间的朋友们帮忙回答一下
1.调用GATT_WriteCharValue去使能从机的notify滞后于,从机一定有indication的应答吗?
2.这个版本的协议栈发送 Write no response命令应该怎么发?我写的代码如下,但是抓包抓不到任何东西,
好像没发出来,但是返回值是SUCCESS
bStatus_t snm_sampling_enable(void) { attWriteReq_t req; bStatus_t res = FAILURE; BLE_DEV *p = &(gDev[0]); req.pValue = GATT_bm_alloc( p->ble_dev_conn_handle, ATT_WRITE_REQ, 1, NULL ); if( req.pValue != NULL ) { req.handle = SNM_CUSTOM3_CMD_HANDLE; req.len = sizeof(sampling_enable); req.pValue = (uint8*)&sampling_enable[0]; req.cmd = 1; req.sig = 0; uint8 i; printf("sampling on-command"); for(i=0;i<3;i++) { printf("%X ",*(req.pValue+i)); } printf("\r\n"); res = GATT_WriteNoRsp(p->ble_dev_conn_handle,&req); if(res != SUCCESS) { GATT_bm_free( (gattMsg_t *)&req, ATT_WRITE_REQ ); } }else { res = bleMemAllocError; } return res; }
3.上述代码中的
GATT_bm_alloc( p->ble_dev_conn_handle, ATT_WRITE_REQ, 1, NULL );
第三个参数根据什么设置?开启notify之后,再发送上述命令,会有20个字节的传感器数据发送过来,
这个时候这个NULL 是不是要改为20?