подскажите, на есп32 BLE GATT server. как я могу выполнить чтение характеристики с сервера более 22 байт пакетами?
Записать я могу, а вот если пытаюсь чтение выполнить то происходит ошибка:
BT_GATT: GATTS_SendRsp conn_id: 3 waiting for op_code = 00
BT_APPL: Sending response failed
код:
case ESP_GATTS_CREATE_EVT:
else if(param->read.handle == gl_profile_tab[PROFILE_A_APP_ID].char_handle[2])
{
...
...
f = fopen(LOG_FILE_PATH, "r");
for(int i=0; i<read_blocks; i++)
{
memset(txt_buf, 0, GATTS_CHAR_VAL_LEN_MAX);
if(i == read_blocks - 1)
{
fread(txt_buf, sizeof(char), (read_ost * GATTS_CHAR_VAL_LEN_MAX / 10), f);
}
else{
fread(txt_buf, sizeof(char), GATTS_CHAR_VAL_LEN_MAX, f);
}
printf(txt_buf);
/* отпправляем пакеты в ответе */
rsp.attr_value.len = GATTS_CHAR_VAL_LEN_MAX;
rsp.attr_value.handle = param->read.handle;
strcpy((char*)rsp.attr_value.value, (const char*)txt_buf);
esp_ble_gatts_send_response(gatts_if, param->read.conn_id, param->read.trans_id+i, ESP_GATT_OK, &rsp);
}
fclose(f);
printf("\n");
}