Line data Source code
1 : #include "BetterStream.h" 2 : 3 : #include "print_vprintf.h" 4 : 5 12707 : void AP_HAL::BetterStream::printf(const char *fmt, ...) 6 : { 7 : va_list ap; 8 12707 : va_start(ap, fmt); 9 12707 : vprintf(fmt, ap); 10 12707 : va_end(ap); 11 12707 : } 12 : 13 12823 : void AP_HAL::BetterStream::vprintf(const char *fmt, va_list ap) 14 : { 15 12823 : print_vprintf(this, fmt, ap); 16 12823 : } 17 : 18 4 : size_t AP_HAL::BetterStream::write(const char *str) 19 : { 20 4 : return write((const uint8_t *)str, strlen(str)); 21 : } 22 : 23 16 : int16_t AP_HAL::BetterStream::read() 24 : { 25 : uint8_t b; 26 16 : if (!read(b)) { 27 6 : return -1; 28 : } 29 10 : return b; 30 : } 31 : 32 4 : ssize_t AP_HAL::BetterStream::read(uint8_t *buffer, uint16_t count) 33 : { 34 4 : size_t offset = 0; 35 12 : while (count--) { 36 10 : const int16_t x = read(); 37 10 : if (x == -1) { 38 2 : return offset; 39 : } 40 8 : buffer[offset++] = (uint8_t)x; 41 : } 42 2 : return offset; 43 : }