00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <stdio.h>
00021 #include <string.h>
00022 #include <inttypes.h>
00023 #include "wiring.h"
00024
00025 #include "HardwareSerial.h"
00026
00027
00028
00029 HardwareSerial::HardwareSerial(uint8_t uart)
00030 {
00031 if(uart == 0){
00032 _uart = 0;
00033 }else{
00034 _uart = 1;
00035 }
00036 }
00037
00038
00039
00040 void HardwareSerial::begin(long speed, uint8_t portNum)
00041 {
00042 beginSerial(speed, portNum);
00043 }
00044
00045 uint8_t HardwareSerial::available(uint8_t portNum)
00046 {
00047 return serialAvailable(portNum);
00048 }
00049
00050 int HardwareSerial::read(uint8_t portNum)
00051 {
00052 return serialRead(portNum);
00053 }
00054
00055 void HardwareSerial::flush(uint8_t portNum)
00056 {
00057 serialFlush(portNum);
00058 }
00059
00060 void HardwareSerial::print(char c, uint8_t portNum)
00061 {
00062 printByte(c, portNum);
00063 }
00064
00065 void HardwareSerial::print(const char c[], uint8_t portNum)
00066 {
00067 printString(c, portNum);
00068 }
00069
00070 void HardwareSerial::print(uint8_t b, uint8_t portNum)
00071 {
00072 printByte(b, portNum);
00073 }
00074
00075 void HardwareSerial::print(int n, uint8_t portNum)
00076 {
00077 print((long) n, portNum);
00078 }
00079
00080 void HardwareSerial::print(unsigned int n, uint8_t portNum)
00081 {
00082 print((unsigned long) n, portNum);
00083 }
00084
00085 void HardwareSerial::print(long n, uint8_t portNum)
00086 {
00087 if (n < 0) {
00088 print('-', portNum);
00089 n = -n;
00090 }
00091 printNumber(n, 10, portNum);
00092 }
00093
00094 void HardwareSerial::print(unsigned long n, uint8_t portNum)
00095 {
00096 printNumber(n, 10, portNum);
00097 }
00098
00099 void HardwareSerial::print(long n, int base, uint8_t portNum)
00100 {
00101 if (base == 0)
00102 print((char) n, portNum);
00103 else if (base == 10)
00104 print(n, portNum);
00105 else
00106 printNumber(n, base, portNum);
00107 }
00108
00109 void HardwareSerial::print(double n, uint8_t portNum)
00110 {
00111 printFloat(n, 2, portNum);
00112 }
00113
00114 void HardwareSerial::println(uint8_t portNum)
00115 {
00116 print('\r', portNum);
00117 print('\n', portNum);
00118 }
00119
00120 void HardwareSerial::println(char c, uint8_t portNum)
00121 {
00122 print(c, portNum);
00123 println(portNum);
00124 }
00125
00126 void HardwareSerial::println(const char c[], uint8_t portNum)
00127 {
00128 print(c, portNum);
00129 println(portNum);
00130 }
00131
00132 void HardwareSerial::println(uint8_t b, uint8_t portNum)
00133 {
00134 print(b, portNum);
00135 println(portNum);
00136 }
00137
00138 void HardwareSerial::println(int n, uint8_t portNum)
00139 {
00140 print(n, portNum);
00141 println(portNum);
00142 }
00143
00144 void HardwareSerial::println(long n, uint8_t portNum)
00145 {
00146 print(n, portNum);
00147 println(portNum);
00148 }
00149
00150 void HardwareSerial::println(unsigned long n, uint8_t portNum)
00151 {
00152 print(n, portNum);
00153 println(portNum);
00154 }
00155
00156 void HardwareSerial::println(long n, int base, uint8_t portNum)
00157 {
00158 print(n, base, portNum);
00159 println(portNum);
00160 }
00161
00162 void HardwareSerial::println(double n, uint8_t portNum)
00163 {
00164 print(n, portNum);
00165 println(portNum);
00166 }
00167
00168
00169
00170 void HardwareSerial::printNumber(unsigned long n, uint8_t base, uint8_t portNum)
00171 {
00172 printIntegerInBase(n, base, portNum);
00173 }
00174
00175 void HardwareSerial::printFloat(double number, uint8_t digits, uint8_t portNum)
00176 {
00177
00178 if (number < 0.0)
00179 {
00180 print('-', portNum);
00181 number = -number;
00182 }
00183
00184
00185 double rounding = 0.5;
00186 for (uint8_t i=0; i<digits; ++i)
00187 rounding /= 10.0;
00188
00189 number += rounding;
00190
00191
00192 unsigned long int_part = (unsigned long)number;
00193 double remainder = number - (double)int_part;
00194 print(int_part,portNum);
00195
00196
00197 if (digits > 0)
00198 print(".",portNum);
00199
00200
00201 while (digits-- > 0)
00202 {
00203 remainder *= 10.0;
00204 int toPrint = int(remainder);
00205 print(toPrint,portNum);
00206 remainder -= toPrint;
00207 }
00208 }
00209
00210
00211
00212 HardwareSerial Serial = HardwareSerial(0);
00213 HardwareSerial Serial1 = HardwareSerial(1);
00214