mirror of
https://github.com/espressif/esp-idf.git
synced 2026-09-22 13:01:16 +03:00
bt_mesh_bta_gatts_cb did not always answer ATT Read/Write Requests: - READ: on a callback error it only logged a warning and sent nothing; a 0-byte read (Read Blob at an offset equal to the value length) also sent nothing, although it is a successful empty read. - WRITE: on a callback error it sent nothing, and a partial/zero write was treated as success. - Both: when the handle was not found or the attribute had no read/write callback, the request was silently dropped. An ATT Request must always be answered: - READ: len >= 0 is success -> Read Response (a 0-byte read yields an empty value); len < 0 -> ATT Error Response carrying the callback's error code (-len, since BLE_MESH_GATT_ERR(x) == -x). The copy length is clamped to the source buffer size as a defensive bound. If the handle is unknown or the attribute has no read callback, respond with INVALID_HANDLE / READ_NOT_PERMITTED. - WRITE: when need_rsp is set, always reply. len == write length -> Write Response; otherwise (negative ATT error, partial write, or 0) -> ATT Error Response (the negative code, or UNLIKELY for partial/0). If the handle is unknown or the attribute has no write callback, respond with INVALID_HANDLE / WRITE_NOT_PERMITTED. Write Without Response still sends no response. A non-success status passed to BTA_GATTS_SendRsp is turned into an ATT Error Response by the GATT layer (gatt_sr_process_app_rsp -> gatt_send_error_rsp).
ESP-BLE-MESH Component
This is Espressif Bluetooth Low Energy Mesh component folder.
This component is a part of Espressif IoT Development Framework (ESP-IDF). For the latest documentation please refer to ESP-IDF Programming Guide.
The ESP-BLE-MESH networking enables many-to-many (m:m) device communications and is optimized for creating large-scale device networks.
ESP-BLE-MESH Documentation
ESP-BLE-MESH Examples
- Refer to ESP-BLE-MESH Examples of Getting Started for the tutorials of ESP BLE Mesh examples.