mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Unified Provisioning: Miscellaneous fixes in BLE
1. Pass the correct conn_id to protocomm_req_handle In transport_simple_ble_write(), passing param->exec_write.conn_id would be invalid. Instead param->write.conn_id should be passed Similar change in transport_simple_ble_exec_write() to use param->exec_write.conn_id 2. simple_ble_start() assumes that the mode is BLE only and enables Bluetooth controller accordingly. For, cases having BT + BLE like Alexa (Provisioning over BLE + Audio over classic BT), this assumption should be removed.
This commit is contained in:
parent
30e3e26834
commit
a717825b7e
@ -189,7 +189,14 @@ esp_err_t simple_ble_start(simple_ble_cfg_t *cfg)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_BTDM_CONTROLLER_MODE_BTDM
|
||||||
|
ret = esp_bt_controller_enable(ESP_BT_MODE_BTDM);
|
||||||
|
#elif defined CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY
|
||||||
ret = esp_bt_controller_enable(ESP_BT_MODE_BLE);
|
ret = esp_bt_controller_enable(ESP_BT_MODE_BLE);
|
||||||
|
#else
|
||||||
|
ESP_LOGE(TAG, "Configuration mismatch. Select BLE Only or BTDM mode from menuconfig");
|
||||||
|
return ESP_FAIL;
|
||||||
|
#endif
|
||||||
if (ret) {
|
if (ret) {
|
||||||
ESP_LOGE(TAG, "%s enable controller failed %d", __func__, ret);
|
ESP_LOGE(TAG, "%s enable controller failed %d", __func__, ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -201,7 +201,7 @@ static void transport_simple_ble_write(esp_gatts_cb_event_t event, esp_gatt_if_t
|
|||||||
|
|
||||||
ret = protocomm_req_handle(protoble_internal->pc_ble,
|
ret = protocomm_req_handle(protoble_internal->pc_ble,
|
||||||
handle_to_handler(param->write.handle),
|
handle_to_handler(param->write.handle),
|
||||||
param->exec_write.conn_id,
|
param->write.conn_id,
|
||||||
param->write.value,
|
param->write.value,
|
||||||
param->write.len,
|
param->write.len,
|
||||||
&outbuf, &outlen);
|
&outbuf, &outlen);
|
||||||
@ -246,7 +246,7 @@ static void transport_simple_ble_exec_write(esp_gatts_cb_event_t event, esp_gatt
|
|||||||
|
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
ESP_LOGE(TAG, "Invalid content received, killing connection");
|
ESP_LOGE(TAG, "Invalid content received, killing connection");
|
||||||
esp_ble_gatts_close(gatts_if, param->write.conn_id);
|
esp_ble_gatts_close(gatts_if, param->exec_write.conn_id);
|
||||||
} else {
|
} else {
|
||||||
hexdump("Response from exec write", outbuf, outlen);
|
hexdump("Response from exec write", outbuf, outlen);
|
||||||
esp_ble_gatts_set_attr_value(prepare_write_env.handle, outlen, outbuf);
|
esp_ble_gatts_set_attr_value(prepare_write_env.handle, outlen, outbuf);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user