Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
mbed/Print.h@35:f9f3a91fe4d4, 2017-02-20 (annotated)
- Committer:
- cassyarduino
- Date:
- Mon Feb 20 11:34:22 2017 +0100
- Revision:
- 35:f9f3a91fe4d4
- Parent:
- 8:b9332109461d
Changes
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| cassyarduino | 7:ef1f092165eb | 1 | /* |
| cassyarduino | 7:ef1f092165eb | 2 | Print.h - Base class that provides print() and println() |
| cassyarduino | 7:ef1f092165eb | 3 | Copyright (c) 2008 David A. Mellis. All right reserved. |
| cassyarduino | 7:ef1f092165eb | 4 | |
| cassyarduino | 7:ef1f092165eb | 5 | This library is free software; you can redistribute it and/or |
| cassyarduino | 7:ef1f092165eb | 6 | modify it under the terms of the GNU Lesser General Public |
| cassyarduino | 7:ef1f092165eb | 7 | License as published by the Free Software Foundation; either |
| cassyarduino | 7:ef1f092165eb | 8 | version 2.1 of the License, or (at your option) any later version. |
| cassyarduino | 7:ef1f092165eb | 9 | |
| cassyarduino | 7:ef1f092165eb | 10 | This library is distributed in the hope that it will be useful, |
| cassyarduino | 7:ef1f092165eb | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| cassyarduino | 7:ef1f092165eb | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| cassyarduino | 7:ef1f092165eb | 13 | Lesser General Public License for more details. |
| cassyarduino | 7:ef1f092165eb | 14 | |
| cassyarduino | 7:ef1f092165eb | 15 | You should have received a copy of the GNU Lesser General Public |
| cassyarduino | 7:ef1f092165eb | 16 | License along with this library; if not, write to the Free Software |
| cassyarduino | 7:ef1f092165eb | 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| cassyarduino | 7:ef1f092165eb | 18 | */ |
| cassyarduino | 35:f9f3a91fe4d4 | 19 | #if !defined(ARDUINO_ARCH_AVR) && !defined(ARDUINO_ARCH_SAM) |
| cassyarduino | 7:ef1f092165eb | 20 | |
| cassyarduino | 7:ef1f092165eb | 21 | #ifndef Print_h |
| cassyarduino | 7:ef1f092165eb | 22 | #define Print_h |
| cassyarduino | 7:ef1f092165eb | 23 | |
| cassyarduino | 35:f9f3a91fe4d4 | 24 | #if defined(__MBED__) |
| cassyarduino | 35:f9f3a91fe4d4 | 25 | #include <mbed.h> |
| cassyarduino | 35:f9f3a91fe4d4 | 26 | #endif |
| cassyarduino | 8:b9332109461d | 27 | #ifdef YOTTA_CFG |
| cassyarduino | 8:b9332109461d | 28 | #include "core-util/FunctionPointer.h" |
| cassyarduino | 8:b9332109461d | 29 | using namespace mbed; |
| cassyarduino | 8:b9332109461d | 30 | using namespace mbed::util; |
| cassyarduino | 8:b9332109461d | 31 | #endif |
| cassyarduino | 8:b9332109461d | 32 | |
| cassyarduino | 7:ef1f092165eb | 33 | #include <inttypes.h> |
| cassyarduino | 7:ef1f092165eb | 34 | #include <stdio.h> // for size_t |
| cassyarduino | 7:ef1f092165eb | 35 | |
| cassyarduino | 35:f9f3a91fe4d4 | 36 | #if defined(__MBED__) |
| cassyarduino | 35:f9f3a91fe4d4 | 37 | #include "mbed/WString.h" |
| cassyarduino | 35:f9f3a91fe4d4 | 38 | #include "mbed/Printable.h" |
| cassyarduino | 35:f9f3a91fe4d4 | 39 | #endif |
| cassyarduino | 35:f9f3a91fe4d4 | 40 | #if defined(ARDUINO) |
| cassyarduino | 35:f9f3a91fe4d4 | 41 | #include "WString.h" |
| cassyarduino | 35:f9f3a91fe4d4 | 42 | #include "Printable.h" |
| cassyarduino | 35:f9f3a91fe4d4 | 43 | #endif |
| cassyarduino | 7:ef1f092165eb | 44 | |
| cassyarduino | 7:ef1f092165eb | 45 | #define DEC 10 |
| cassyarduino | 7:ef1f092165eb | 46 | #define HEX 16 |
| cassyarduino | 7:ef1f092165eb | 47 | #define OCT 8 |
| cassyarduino | 7:ef1f092165eb | 48 | #define BIN 2 |
| cassyarduino | 7:ef1f092165eb | 49 | |
| cassyarduino | 7:ef1f092165eb | 50 | class Print |
| cassyarduino | 7:ef1f092165eb | 51 | { |
| cassyarduino | 7:ef1f092165eb | 52 | private: |
| cassyarduino | 7:ef1f092165eb | 53 | int write_error; |
| cassyarduino | 7:ef1f092165eb | 54 | size_t printNumber(unsigned long, uint8_t); |
| cassyarduino | 7:ef1f092165eb | 55 | size_t printFloat(double, uint8_t); |
| cassyarduino | 7:ef1f092165eb | 56 | protected: |
| cassyarduino | 7:ef1f092165eb | 57 | void setWriteError(int err = 1) { write_error = err; } |
| cassyarduino | 7:ef1f092165eb | 58 | public: |
| cassyarduino | 7:ef1f092165eb | 59 | Print() : write_error(0) {} |
| cassyarduino | 8:b9332109461d | 60 | |
| cassyarduino | 7:ef1f092165eb | 61 | int getWriteError() { return write_error; } |
| cassyarduino | 7:ef1f092165eb | 62 | void clearWriteError() { setWriteError(0); } |
| cassyarduino | 7:ef1f092165eb | 63 | |
| cassyarduino | 8:b9332109461d | 64 | virtual size_t write(uint8_t)= 0; |
| cassyarduino | 7:ef1f092165eb | 65 | size_t write(const char *str) { |
| cassyarduino | 7:ef1f092165eb | 66 | if (str == NULL) return 0; |
| cassyarduino | 7:ef1f092165eb | 67 | return write((const uint8_t *)str, strlen(str)); |
| cassyarduino | 7:ef1f092165eb | 68 | } |
| cassyarduino | 7:ef1f092165eb | 69 | virtual size_t write(const uint8_t *buffer, size_t size); |
| cassyarduino | 7:ef1f092165eb | 70 | size_t write(const char *buffer, size_t size) { |
| cassyarduino | 7:ef1f092165eb | 71 | return write((const uint8_t *)buffer, size); |
| cassyarduino | 7:ef1f092165eb | 72 | } |
| cassyarduino | 7:ef1f092165eb | 73 | |
| cassyarduino | 7:ef1f092165eb | 74 | size_t print(const __FlashStringHelper *); |
| cassyarduino | 7:ef1f092165eb | 75 | size_t print(const String &); |
| cassyarduino | 7:ef1f092165eb | 76 | size_t print(const char[]); |
| cassyarduino | 7:ef1f092165eb | 77 | size_t print(char); |
| cassyarduino | 7:ef1f092165eb | 78 | size_t print(unsigned char, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 79 | size_t print(int, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 80 | size_t print(unsigned int, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 81 | size_t print(long, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 82 | size_t print(unsigned long, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 83 | size_t print(double, int = 2); |
| cassyarduino | 7:ef1f092165eb | 84 | size_t print(const Printable&); |
| cassyarduino | 7:ef1f092165eb | 85 | |
| cassyarduino | 7:ef1f092165eb | 86 | size_t println(const __FlashStringHelper *); |
| cassyarduino | 7:ef1f092165eb | 87 | size_t println(const String &s); |
| cassyarduino | 7:ef1f092165eb | 88 | size_t println(const char[]); |
| cassyarduino | 7:ef1f092165eb | 89 | size_t println(char); |
| cassyarduino | 7:ef1f092165eb | 90 | size_t println(unsigned char, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 91 | size_t println(int, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 92 | size_t println(unsigned int, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 93 | size_t println(long, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 94 | size_t println(unsigned long, int = DEC); |
| cassyarduino | 7:ef1f092165eb | 95 | size_t println(double, int = 2); |
| cassyarduino | 7:ef1f092165eb | 96 | size_t println(const Printable&); |
| cassyarduino | 7:ef1f092165eb | 97 | size_t println(void); |
| cassyarduino | 7:ef1f092165eb | 98 | }; |
| cassyarduino | 7:ef1f092165eb | 99 | |
| cassyarduino | 7:ef1f092165eb | 100 | #endif |
| cassyarduino | 35:f9f3a91fe4d4 | 101 | #endif |