extmod/modbluetooth: Implement read done event.

On btstack there's no status associated with the read result, it comes
through as a separate event.  This allows you to detect read failures or
timeouts.
This commit is contained in:
Jim Mussared
2020-06-02 14:22:47 +10:00
committed by Damien George
parent 919d640aec
commit c07ea3e4c2
5 changed files with 19 additions and 9 deletions

View File

@@ -844,6 +844,7 @@ STATIC int ble_gatt_attr_read_cb(uint16_t conn_handle, const struct ble_gatt_err
if (error->status == 0) {
gattc_on_data_available(MP_BLUETOOTH_IRQ_GATTC_READ_RESULT, conn_handle, attr->handle, attr->om);
}
mp_bluetooth_gattc_on_read_write_status(MP_BLUETOOTH_IRQ_GATTC_READ_DONE, conn_handle, attr->handle, error->status);
return 0;
}
@@ -861,7 +862,7 @@ STATIC int ble_gatt_attr_write_cb(uint16_t conn_handle, const struct ble_gatt_er
if (!mp_bluetooth_is_active()) {
return 0;
}
mp_bluetooth_gattc_on_write_status(conn_handle, attr->handle, error->status);
mp_bluetooth_gattc_on_read_write_status(MP_BLUETOOTH_IRQ_GATTC_WRITE_DONE, conn_handle, attr->handle, error->status);
return 0;
}