A simple wrapper for the Raw serial class to transmit double variables.
Dependents: EquatorStrutDigitalMonitor
Diff: LightWeightSerialTransmit.cpp
- Revision:
- 0:ff597e1c059d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LightWeightSerialTransmit.cpp Fri Aug 22 06:37:08 2014 +0000 @@ -0,0 +1,99 @@ +#include "LightWeightSerialTransmit.h" + +LWSerialTX::LWSerialTX(int baudRate) +{ + SerialConnection = new RawSerial(P1_27, P1_26); + (*SerialConnection).baud(baudRate); +} + +void LWSerialTX::NewFile() +{ + (*SerialConnection).putc(28); + (*SerialConnection).putc(10); + (*SerialConnection).putc(13); +} + +void LWSerialTX::NewLine() +{ + (*SerialConnection).putc(10); + (*SerialConnection).putc(13); +} + +void LWSerialTX::Delimiter(Delimiters delimiter) +{ + (*SerialConnection).putc(delimiter); +} + +void LWSerialTX::Transmit(double output) +{ + int outChar = 0; + + if (output < 0.0) + { + (*SerialConnection).putc('-'); + output *= -1.0; + } + if (output >= 1000.0) + { + outChar = output / 1000; + (*SerialConnection).putc(outChar + 48); + output -= outChar * 1000.0; + } + if (output >= 100.0) + { + outChar = output / 100; + (*SerialConnection).putc(outChar + 48); + output -= outChar * 100.0; + } + else if(outChar > 0) + { + (*SerialConnection).putc('0'); + } + if (output >= 10.0) + { + outChar = output / 10; + (*SerialConnection).putc(outChar + 48); + output -= outChar * 10.0; + } + else if(outChar > 0) + { + (*SerialConnection).putc('0'); + } + if (output >= 1.0) + { + outChar = output; + (*SerialConnection).putc(outChar + 48); + output -= outChar; + } + else + { + (*SerialConnection).putc('0'); + } + if (output >= 0.1) + { + (*SerialConnection).putc('.'); + outChar = output * 10; + (*SerialConnection).putc(outChar + 48); + output -= (double)outChar / 10.0; + } + else + { + (*SerialConnection).putc('.'); + (*SerialConnection).putc('0'); + } + if (output >= 0.01) + { + outChar = output * 100; + (*SerialConnection).putc(outChar + 48); + output -= (double)outChar / 100.0; + } + else + { + (*SerialConnection).putc('0'); + } + if (output >= 0.001) + { + outChar= output * 1000; + (*SerialConnection).putc(outChar + 48); + } +} \ No newline at end of file