Microduino

Dependencies:   mbed

Fork of LED_DZ by Li Weiyi

Committer:
lixianyu
Date:
Thu Jun 02 01:07:50 2016 +0000
Revision:
2:487a727d6181
Parent:
0:5ca227682ee7
drawBMP work.

Who changed what in which revision?

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