mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 18:57:19 +02:00
fix ble read multi char err when the number of handles is more than 10
This commit is contained in:
@ -1149,12 +1149,16 @@ void bta_gattc_read_multi(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data)
|
|||||||
memset(&read_param, 0, sizeof(tGATT_READ_PARAM));
|
memset(&read_param, 0, sizeof(tGATT_READ_PARAM));
|
||||||
|
|
||||||
if (status == BTA_GATT_OK) {
|
if (status == BTA_GATT_OK) {
|
||||||
read_param.read_multiple.num_handles = p_data->api_read_multi.num_attr;
|
if(p_data->api_read_multi.num_attr < GATT_MAX_READ_MULTI_HANDLES) {
|
||||||
read_param.read_multiple.auth_req = p_data->api_read_multi.auth_req;
|
read_param.read_multiple.num_handles = p_data->api_read_multi.num_attr;
|
||||||
memcpy(&read_param.read_multiple.handles, p_data->api_read_multi.handles,
|
read_param.read_multiple.auth_req = p_data->api_read_multi.auth_req;
|
||||||
sizeof(UINT16) * p_data->api_read_multi.num_attr);
|
memcpy(&read_param.read_multiple.handles, p_data->api_read_multi.handles,
|
||||||
|
sizeof(UINT16) * p_data->api_read_multi.num_attr);
|
||||||
|
|
||||||
status = GATTC_Read(p_clcb->bta_conn_id, GATT_READ_MULTIPLE, &read_param);
|
status = GATTC_Read(p_clcb->bta_conn_id, GATT_READ_MULTIPLE, &read_param);
|
||||||
|
} else {
|
||||||
|
status = GATT_ILLEGAL_PARAMETER;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* read fail */
|
/* read fail */
|
||||||
|
@ -527,6 +527,7 @@ void gatt_process_read_multi_req (tGATT_TCB *p_tcb, UINT8 op_code, UINT16 len, U
|
|||||||
|
|
||||||
if (ll != 0) {
|
if (ll != 0) {
|
||||||
GATT_TRACE_ERROR("max attribute handle reached in ReadMultiple Request.");
|
GATT_TRACE_ERROR("max attribute handle reached in ReadMultiple Request.");
|
||||||
|
err = GATT_INVALID_HANDLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_tcb->sr_cmd.multi_req.num_handles == 0) {
|
if (p_tcb->sr_cmd.multi_req.num_handles == 0) {
|
||||||
|
Reference in New Issue
Block a user