diff --git a/libraries/AP_HAL_AVR_SITL/Console.cpp b/libraries/AP_HAL_AVR_SITL/Console.cpp index 2e369c5905..8a079c350d 100644 --- a/libraries/AP_HAL_AVR_SITL/Console.cpp +++ b/libraries/AP_HAL_AVR_SITL/Console.cpp @@ -59,5 +59,8 @@ size_t SITLConsoleDriver::write(uint8_t c) return _base_uart->write(c); } +size_t SITLConsoleDriver::write(const uint8_t *buffer, size_t size) { + return _base_uart->write(buffer, size); +} #endif diff --git a/libraries/AP_HAL_AVR_SITL/Console.h b/libraries/AP_HAL_AVR_SITL/Console.h index 42c278df99..93625abd6f 100644 --- a/libraries/AP_HAL_AVR_SITL/Console.h +++ b/libraries/AP_HAL_AVR_SITL/Console.h @@ -24,6 +24,7 @@ public: /* Implementations of Print virtual methods */ size_t write(uint8_t c); + size_t write(const uint8_t *buffer, size_t size); private: AP_HAL::UARTDriver* _base_uart; diff --git a/libraries/AP_HAL_AVR_SITL/UARTDriver.cpp b/libraries/AP_HAL_AVR_SITL/UARTDriver.cpp index 9f79afe303..fca750a119 100644 --- a/libraries/AP_HAL_AVR_SITL/UARTDriver.cpp +++ b/libraries/AP_HAL_AVR_SITL/UARTDriver.cpp @@ -174,6 +174,15 @@ size_t SITLUARTDriver::write(uint8_t c) return send(_fd, &c, 1, flags); } +size_t SITLUARTDriver::write(const uint8_t *buffer, size_t size) +{ + size_t n = 0; + while (size--) { + n += write(*buffer++); + } + return n; +} + /* start a TCP connection for the serial port. If wait_for_connection is true then block until a client connects diff --git a/libraries/AP_HAL_AVR_SITL/UARTDriver.h b/libraries/AP_HAL_AVR_SITL/UARTDriver.h index 861a77b213..36599426f2 100644 --- a/libraries/AP_HAL_AVR_SITL/UARTDriver.h +++ b/libraries/AP_HAL_AVR_SITL/UARTDriver.h @@ -46,6 +46,7 @@ public: /* Implementations of Print virtual methods */ size_t write(uint8_t c); + size_t write(const uint8_t *buffer, size_t size); // file descriptor, exposed so SITL_State::loop_hook() can use it int _fd;