For test

Dependencies:   mbed

Committer:
shennongmin
Date:
Thu Feb 05 06:48:45 2015 +0000
Revision:
35:90be2bc2a492
Parent:
10:9d4ec0359a5c
compile okay and test okay

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shennongmin 10:9d4ec0359a5c 1 /*
shennongmin 10:9d4ec0359a5c 2 Print.h - Base class that provides print() and println()
shennongmin 10:9d4ec0359a5c 3 Copyright (c) 2008 David A. Mellis. All right reserved.
shennongmin 10:9d4ec0359a5c 4
shennongmin 10:9d4ec0359a5c 5 This library is free software; you can redistribute it and/or
shennongmin 10:9d4ec0359a5c 6 modify it under the terms of the GNU Lesser General Public
shennongmin 10:9d4ec0359a5c 7 License as published by the Free Software Foundation; either
shennongmin 10:9d4ec0359a5c 8 version 2.1 of the License, or (at your option) any later version.
shennongmin 10:9d4ec0359a5c 9
shennongmin 10:9d4ec0359a5c 10 This library is distributed in the hope that it will be useful,
shennongmin 10:9d4ec0359a5c 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
shennongmin 10:9d4ec0359a5c 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
shennongmin 10:9d4ec0359a5c 13 Lesser General Public License for more details.
shennongmin 10:9d4ec0359a5c 14
shennongmin 10:9d4ec0359a5c 15 You should have received a copy of the GNU Lesser General Public
shennongmin 10:9d4ec0359a5c 16 License along with this library; if not, write to the Free Software
shennongmin 10:9d4ec0359a5c 17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
shennongmin 10:9d4ec0359a5c 18 */
shennongmin 10:9d4ec0359a5c 19
shennongmin 10:9d4ec0359a5c 20 #ifndef __PRINT_H__
shennongmin 10:9d4ec0359a5c 21 #define __PRINT_H__
shennongmin 10:9d4ec0359a5c 22
shennongmin 10:9d4ec0359a5c 23 #include <inttypes.h>
shennongmin 10:9d4ec0359a5c 24 #include <stdio.h> // for size_t
shennongmin 10:9d4ec0359a5c 25
shennongmin 10:9d4ec0359a5c 26 #include "WString.h"
shennongmin 10:9d4ec0359a5c 27
shennongmin 10:9d4ec0359a5c 28
shennongmin 10:9d4ec0359a5c 29 #define DEC 10
shennongmin 10:9d4ec0359a5c 30 #define HEX 16
shennongmin 10:9d4ec0359a5c 31 #define OCT 8
shennongmin 10:9d4ec0359a5c 32 #define BIN 2
shennongmin 10:9d4ec0359a5c 33
shennongmin 10:9d4ec0359a5c 34 class Print
shennongmin 10:9d4ec0359a5c 35 {
shennongmin 10:9d4ec0359a5c 36 private:
shennongmin 10:9d4ec0359a5c 37 int write_error;
shennongmin 10:9d4ec0359a5c 38 size_t printNumber(unsigned long, uint8_t);
shennongmin 10:9d4ec0359a5c 39 size_t printFloat(double, uint8_t);
shennongmin 10:9d4ec0359a5c 40 protected:
shennongmin 10:9d4ec0359a5c 41 void setWriteError(int err = 1) { write_error = err; }
shennongmin 10:9d4ec0359a5c 42 public:
shennongmin 10:9d4ec0359a5c 43 Print() : write_error(0) {}
shennongmin 10:9d4ec0359a5c 44
shennongmin 10:9d4ec0359a5c 45 int getWriteError() { return write_error; }
shennongmin 10:9d4ec0359a5c 46 void clearWriteError() { setWriteError(0); }
shennongmin 10:9d4ec0359a5c 47
shennongmin 10:9d4ec0359a5c 48 virtual size_t write(uint8_t) = 0;
shennongmin 10:9d4ec0359a5c 49 size_t write(const char *str) {
shennongmin 10:9d4ec0359a5c 50 if (str == NULL) return 0;
shennongmin 10:9d4ec0359a5c 51 return write((const uint8_t *)str, strlen(str));
shennongmin 10:9d4ec0359a5c 52 }
shennongmin 10:9d4ec0359a5c 53 virtual size_t write(const uint8_t *buffer, size_t size);
shennongmin 10:9d4ec0359a5c 54
shennongmin 10:9d4ec0359a5c 55 size_t print(const String &);
shennongmin 10:9d4ec0359a5c 56 size_t print(const char[]);
shennongmin 10:9d4ec0359a5c 57 size_t print(char);
shennongmin 10:9d4ec0359a5c 58 size_t print(unsigned char, int = DEC);
shennongmin 10:9d4ec0359a5c 59 size_t print(int, int = DEC);
shennongmin 10:9d4ec0359a5c 60 size_t print(unsigned int, int = DEC);
shennongmin 10:9d4ec0359a5c 61 size_t print(long, int = DEC);
shennongmin 10:9d4ec0359a5c 62 size_t print(unsigned long, int = DEC);
shennongmin 10:9d4ec0359a5c 63 size_t print(double, int = 2);
shennongmin 10:9d4ec0359a5c 64
shennongmin 10:9d4ec0359a5c 65 size_t println(const String &s);
shennongmin 10:9d4ec0359a5c 66 size_t println(const char[]);
shennongmin 10:9d4ec0359a5c 67 size_t println(char);
shennongmin 10:9d4ec0359a5c 68 size_t println(unsigned char, int = DEC);
shennongmin 10:9d4ec0359a5c 69 size_t println(int, int = DEC);
shennongmin 10:9d4ec0359a5c 70 size_t println(unsigned int, int = DEC);
shennongmin 10:9d4ec0359a5c 71 size_t println(long, int = DEC);
shennongmin 10:9d4ec0359a5c 72 size_t println(unsigned long, int = DEC);
shennongmin 10:9d4ec0359a5c 73 size_t println(double, int = 2);
shennongmin 10:9d4ec0359a5c 74 size_t println(void);
shennongmin 10:9d4ec0359a5c 75 };
shennongmin 10:9d4ec0359a5c 76
shennongmin 10:9d4ec0359a5c 77 #endif /* #ifndef __PRINT_H__ */