Arduino Core API Library besed on mbed platform.

Dependents:   WeeESP8266 ESP8266_moj

Committer:
itead
Date:
Thu Feb 05 07:24:30 2015 +0000
Revision:
0:5ebc917ebd09
First commit for ArduinoAPI library by Wu Pengfei<pengfei.wu@itead.cc>

Who changed what in which revision?

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