From 9624821493d4ffaed848c5bc16feeecb3dc5fe37 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 2 Oct 2013 17:37:27 +1000 Subject: [PATCH] HAL_FLYMAPLE: implement a dummy buffered write --- libraries/AP_HAL_FLYMAPLE/Console.cpp | 4 ++++ libraries/AP_HAL_FLYMAPLE/Console.h | 1 + libraries/AP_HAL_FLYMAPLE/UARTDriver.cpp | 9 +++++++++ libraries/AP_HAL_FLYMAPLE/UARTDriver.h | 1 + 4 files changed, 15 insertions(+) diff --git a/libraries/AP_HAL_FLYMAPLE/Console.cpp b/libraries/AP_HAL_FLYMAPLE/Console.cpp index 87f2e2a5ea..7934b1e522 100644 --- a/libraries/AP_HAL_FLYMAPLE/Console.cpp +++ b/libraries/AP_HAL_FLYMAPLE/Console.cpp @@ -72,4 +72,8 @@ size_t FLYMAPLEConsoleDriver::write(uint8_t c) { return _base_uart->write(c); } +size_t FLYMAPLEConsoleDriver::write(const uint8_t *buffer, size_t size) { + return _base_uart->write(buffer, size); +} + #endif diff --git a/libraries/AP_HAL_FLYMAPLE/Console.h b/libraries/AP_HAL_FLYMAPLE/Console.h index 67d84fe8c5..8195d7bf90 100644 --- a/libraries/AP_HAL_FLYMAPLE/Console.h +++ b/libraries/AP_HAL_FLYMAPLE/Console.h @@ -18,6 +18,7 @@ public: int16_t read(); 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_FLYMAPLE/UARTDriver.cpp b/libraries/AP_HAL_FLYMAPLE/UARTDriver.cpp index 98ee4fa746..273130429e 100644 --- a/libraries/AP_HAL_FLYMAPLE/UARTDriver.cpp +++ b/libraries/AP_HAL_FLYMAPLE/UARTDriver.cpp @@ -98,4 +98,13 @@ size_t FLYMAPLEUARTDriver::write(uint8_t c) return 1; } +size_t FLYMAPLEUARTDriver::write(const uint8_t *buffer, size_t size) +{ + size_t n = 0; + while (size--) { + n += write(*buffer++); + } + return n; +} + #endif diff --git a/libraries/AP_HAL_FLYMAPLE/UARTDriver.h b/libraries/AP_HAL_FLYMAPLE/UARTDriver.h index 4cb6da0200..0f2fc60c15 100644 --- a/libraries/AP_HAL_FLYMAPLE/UARTDriver.h +++ b/libraries/AP_HAL_FLYMAPLE/UARTDriver.h @@ -43,6 +43,7 @@ public: /* FLYMAPLE implementations of Print virtual methods */ size_t write(uint8_t c); + size_t write(const uint8_t *buffer, size_t size); private: HardwareSerial* _hws; uint8_t* _txBuf; // If need more than libmaple usart driver buffer of 63