diff options
Diffstat (limited to 'core/arduino/HardwareSerial.cpp')
-rwxr-xr-x | core/arduino/HardwareSerial.cpp | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/core/arduino/HardwareSerial.cpp b/core/arduino/HardwareSerial.cpp new file mode 100755 index 0000000..f78eb2d --- /dev/null +++ b/core/arduino/HardwareSerial.cpp @@ -0,0 +1,170 @@ +/* + HarwareSerial.cpp - Hardware serial library for Wiring + Copyright (c) 2006 Nicholas Zambetti. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 23 November 2006 by David A. Mellis +*/ + +#include <stdio.h> +#include <string.h> +#include <inttypes.h> +#include "wiring.h" + +#include "HardwareSerial.h" + +// Constructors //////////////////////////////////////////////////////////////// + +HardwareSerial::HardwareSerial(uint8_t uart) +{ + //if(uart == 0){ + // _uart = 0; + //}else{ + // _uart = 1; + //} +} + +// Public Methods ////////////////////////////////////////////////////////////// + +void HardwareSerial::begin(long speed) +{ + beginSerial(speed); +} + +uint8_t HardwareSerial::available(void) +{ + return serialAvailable(); +} + +int HardwareSerial::read(void) +{ + return serialRead(); +} + +void HardwareSerial::flush() +{ + serialFlush(); +} + +void HardwareSerial::print(char c) +{ + printByte(c); +} + +void HardwareSerial::print(const char c[]) +{ + printString(c); +} + +void HardwareSerial::print(uint8_t b) +{ + printByte(b); +} + +void HardwareSerial::print(int n) +{ + print((long) n); +} + +void HardwareSerial::print(unsigned int n) +{ + print((unsigned long) n); +} + +void HardwareSerial::print(long n) +{ + if (n < 0) { + print('-'); + n = -n; + } + printNumber(n, 10); +} + +void HardwareSerial::print(unsigned long n) +{ + printNumber(n, 10); +} + +void HardwareSerial::print(long n, int base) +{ + if (base == 0) + print((char) n); + else if (base == 10) + print(n); + else + printNumber(n, base); +} + +void HardwareSerial::println(void) +{ + print('\r'); + print('\n'); +} + +void HardwareSerial::println(char c) +{ + print(c); + println(); +} + +void HardwareSerial::println(const char c[]) +{ + print(c); + println(); +} + +void HardwareSerial::println(uint8_t b) +{ + print(b); + println(); +} + +void HardwareSerial::println(int n) +{ + print(n); + println(); +} + +void HardwareSerial::println(long n) +{ + print(n); + println(); +} + +void HardwareSerial::println(unsigned long n) +{ + print(n); + println(); +} + +void HardwareSerial::println(long n, int base) +{ + print(n, base); + println(); +} + +// Private Methods ///////////////////////////////////////////////////////////// + +void HardwareSerial::printNumber(unsigned long n, uint8_t base) +{ + printIntegerInBase(n, base); +} + +// Preinstantiate Objects ////////////////////////////////////////////////////// + +HardwareSerial Serial = HardwareSerial(0); +//HardwareSerial Serial1 = HardwareSerial(1); + |