From d0dc144d4dc2958863c65c9ed98d71bbe41ceb46 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Thu, 3 Oct 2024 16:55:00 -0400 Subject: [PATCH] fix ble_serial_connected() --- devices/ble_hci/common-hal/_bleio/PacketBuffer.c | 4 ++++ ports/espressif/common-hal/_bleio/PacketBuffer.c | 4 ++++ ports/nordic/common-hal/_bleio/PacketBuffer.c | 4 ++++ shared-bindings/_bleio/PacketBuffer.h | 1 + supervisor/shared/bluetooth/serial.c | 2 +- 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/devices/ble_hci/common-hal/_bleio/PacketBuffer.c b/devices/ble_hci/common-hal/_bleio/PacketBuffer.c index 97626205a62f..771a1509f392 100644 --- a/devices/ble_hci/common-hal/_bleio/PacketBuffer.c +++ b/devices/ble_hci/common-hal/_bleio/PacketBuffer.c @@ -247,3 +247,7 @@ void common_hal_bleio_packet_buffer_deinit(bleio_packet_buffer_obj_t *self) { ringbuf_deinit(&self->ringbuf); } } + +bool common_hal_bleio_packet_buffer_connected(bleio_packet_buffer_obj_t *self) { + return !common_hal_bleio_packet_buffer_deinited(self) && self->conn_handle != BLE_CONN_HANDLE_INVALID; +} diff --git a/ports/espressif/common-hal/_bleio/PacketBuffer.c b/ports/espressif/common-hal/_bleio/PacketBuffer.c index a6cbdc530699..1cc167cb5c80 100644 --- a/ports/espressif/common-hal/_bleio/PacketBuffer.c +++ b/ports/espressif/common-hal/_bleio/PacketBuffer.c @@ -440,3 +440,7 @@ void common_hal_bleio_packet_buffer_deinit(bleio_packet_buffer_obj_t *self) { ble_event_remove_handler(packet_buffer_on_ble_client_evt, self); ringbuf_deinit(&self->ringbuf); } + +bool common_hal_bleio_packet_buffer_connected(bleio_packet_buffer_obj_t *self) { + return !common_hal_bleio_packet_buffer_deinited(self) && self->conn_handle != BLEIO_HANDLE_INVALID; +} diff --git a/ports/nordic/common-hal/_bleio/PacketBuffer.c b/ports/nordic/common-hal/_bleio/PacketBuffer.c index f3058f6c23d9..db4307279ae1 100644 --- a/ports/nordic/common-hal/_bleio/PacketBuffer.c +++ b/ports/nordic/common-hal/_bleio/PacketBuffer.c @@ -485,3 +485,7 @@ void common_hal_bleio_packet_buffer_deinit(bleio_packet_buffer_obj_t *self) { ringbuf_deinit(&self->ringbuf); } } + +bool common_hal_bleio_packet_buffer_connected(bleio_packet_buffer_obj_t *self) { + return !common_hal_bleio_packet_buffer_deinited(self) && self->conn_handle != BLE_CONN_HANDLE_INVALID; +} diff --git a/shared-bindings/_bleio/PacketBuffer.h b/shared-bindings/_bleio/PacketBuffer.h index e9e642e2677e..1a872512da27 100644 --- a/shared-bindings/_bleio/PacketBuffer.h +++ b/shared-bindings/_bleio/PacketBuffer.h @@ -35,3 +35,4 @@ mp_int_t common_hal_bleio_packet_buffer_get_outgoing_packet_length(bleio_packet_ void common_hal_bleio_packet_buffer_flush(bleio_packet_buffer_obj_t *self); bool common_hal_bleio_packet_buffer_deinited(bleio_packet_buffer_obj_t *self); void common_hal_bleio_packet_buffer_deinit(bleio_packet_buffer_obj_t *self); +bool common_hal_bleio_packet_buffer_connected(bleio_packet_buffer_obj_t *self); diff --git a/supervisor/shared/bluetooth/serial.c b/supervisor/shared/bluetooth/serial.c index 42c9b4bb3877..86ff1738a2a8 100644 --- a/supervisor/shared/bluetooth/serial.c +++ b/supervisor/shared/bluetooth/serial.c @@ -156,7 +156,7 @@ void supervisor_stop_bluetooth_serial(void) { } bool ble_serial_connected(void) { - return _tx_packet_buffer.conn_handle != BLEIO_HANDLE_INVALID; + return common_hal_bleio_packet_buffer_connected(&_tx_packet_buffer); } uint32_t ble_serial_available(void) {