From 934312682e0a879e090fa4206fc2045e709e44fa Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Sun, 4 Jul 2010 23:22:34 +0000 Subject: [PATCH] Adding support for printing Strings to the Print class. --- hardware/arduino/cores/arduino/HardwareSerial.cpp | 1 + hardware/arduino/cores/arduino/Print.cpp | 12 ++++++++++++ hardware/arduino/cores/arduino/Print.h | 6 +++++- hardware/arduino/cores/arduino/WString.h | 3 ++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/hardware/arduino/cores/arduino/HardwareSerial.cpp b/hardware/arduino/cores/arduino/HardwareSerial.cpp index 712a4c74c..638b6d1b0 100755 --- a/hardware/arduino/cores/arduino/HardwareSerial.cpp +++ b/hardware/arduino/cores/arduino/HardwareSerial.cpp @@ -19,6 +19,7 @@ Modified 23 November 2006 by David A. Mellis */ +#include #include #include #include diff --git a/hardware/arduino/cores/arduino/Print.cpp b/hardware/arduino/cores/arduino/Print.cpp index fb5afc11b..6fe162dd0 100755 --- a/hardware/arduino/cores/arduino/Print.cpp +++ b/hardware/arduino/cores/arduino/Print.cpp @@ -19,6 +19,7 @@ Modified 23 November 2006 by David A. Mellis */ +#include #include #include #include @@ -42,6 +43,11 @@ void Print::write(const uint8_t *buffer, size_t size) write(*buffer++); } +void Print::print(const String &s) +{ + print(s.toCharArray()); +} + void Print::print(const char str[]) { write(str); @@ -99,6 +105,12 @@ void Print::println(void) print('\n'); } +void Print::println(const String &s) +{ + print(s); + println(); +} + void Print::println(const char c[]) { print(c); diff --git a/hardware/arduino/cores/arduino/Print.h b/hardware/arduino/cores/arduino/Print.h index 8a1e2b8b3..b092ae51d 100755 --- a/hardware/arduino/cores/arduino/Print.h +++ b/hardware/arduino/cores/arduino/Print.h @@ -23,6 +23,8 @@ #include #include // for size_t +#include "WString.h" + #define DEC 10 #define HEX 16 #define OCT 8 @@ -38,7 +40,8 @@ class Print virtual void write(uint8_t) = 0; virtual void write(const char *str); virtual void write(const uint8_t *buffer, size_t size); - + + void print(const String &); void print(const char[]); void print(char, int = BYTE); void print(unsigned char, int = BYTE); @@ -48,6 +51,7 @@ class Print void print(unsigned long, int = DEC); void print(double, int = 2); + void println(const String &s); void println(const char[]); void println(char, int = BYTE); void println(unsigned char, int = BYTE); diff --git a/hardware/arduino/cores/arduino/WString.h b/hardware/arduino/cores/arduino/WString.h index 205c1f068..531c6b897 100644 --- a/hardware/arduino/cores/arduino/WString.h +++ b/hardware/arduino/cores/arduino/WString.h @@ -20,7 +20,8 @@ #ifndef String_h #define String_h -#include "WProgram.h" +//#include "WProgram.h" +#include #include #include