From a52e823967d2260681c9909b9f2c16b32b247814 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 8 Jul 2021 17:10:23 +1000 Subject: [PATCH] AP_HAL_SITL: implement read(buf, length) --- libraries/AP_HAL_SITL/UARTDriver.cpp | 10 +++++++--- libraries/AP_HAL_SITL/UARTDriver.h | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libraries/AP_HAL_SITL/UARTDriver.cpp b/libraries/AP_HAL_SITL/UARTDriver.cpp index 86e6d56ce3..e892c12538 100644 --- a/libraries/AP_HAL_SITL/UARTDriver.cpp +++ b/libraries/AP_HAL_SITL/UARTDriver.cpp @@ -180,14 +180,18 @@ uint32_t UARTDriver::txspace(void) int16_t UARTDriver::read(void) { - if (available() <= 0) { + uint8_t c; + if (read(&c, 1) == 0) { return -1; } - uint8_t c; - _readbuffer.read(&c, 1); return c; } +ssize_t UARTDriver::read(uint8_t *buffer, uint16_t count) +{ + return _readbuffer.read(buffer, count); +} + bool UARTDriver::discard_input(void) { _readbuffer.clear(); diff --git a/libraries/AP_HAL_SITL/UARTDriver.h b/libraries/AP_HAL_SITL/UARTDriver.h index 59053da486..c9126f9262 100644 --- a/libraries/AP_HAL_SITL/UARTDriver.h +++ b/libraries/AP_HAL_SITL/UARTDriver.h @@ -48,6 +48,7 @@ public: uint32_t available() override; uint32_t txspace() override; int16_t read() override; + ssize_t read(uint8_t *buffer, uint16_t count) override; bool discard_input() override;