diff --git a/features/FEATURE_BLE/ble/services/UARTService.h b/features/FEATURE_BLE/ble/services/UARTService.h index 1043ddbf46..e8701ab155 100644 --- a/features/FEATURE_BLE/ble/services/UARTService.h +++ b/features/FEATURE_BLE/ble/services/UARTService.h @@ -140,6 +140,19 @@ public: return write(str, strlen(str)); } + /** + * Flush sendBuffer, i.e., forcefully write its contents to the UART RX + * characteristic even if the buffer is not full. + */ + void flush() { + if (ble.getGapState().connected) { + if (sendBufferIndex != 0) { + ble.gattServer().write(getRXCharacteristicHandle(), static_cast(sendBuffer), sendBufferIndex); + sendBufferIndex = 0; + } + } + } + /** * Override for Stream::_putc(). * @param c