A simple wrapper for the Raw serial class to transmit double variables.
Dependents: EquatorStrutDigitalMonitor
LightWeightSerialTransmit.cpp
00001 #include "LightWeightSerialTransmit.h" 00002 00003 LWSerialTX::LWSerialTX(int baudRate) 00004 { 00005 SerialConnection = new RawSerial(P1_27, P1_26); 00006 (*SerialConnection).baud(baudRate); 00007 } 00008 00009 void LWSerialTX::NewFile() 00010 { 00011 (*SerialConnection).putc(28); 00012 (*SerialConnection).putc(10); 00013 (*SerialConnection).putc(13); 00014 } 00015 00016 void LWSerialTX::NewLine() 00017 { 00018 (*SerialConnection).putc(10); 00019 (*SerialConnection).putc(13); 00020 } 00021 00022 void LWSerialTX::Delimiter(Delimiters delimiter) 00023 { 00024 (*SerialConnection).putc(delimiter); 00025 } 00026 00027 void LWSerialTX::Transmit(double output) 00028 { 00029 int outChar = 0; 00030 00031 if (output < 0.0) 00032 { 00033 (*SerialConnection).putc('-'); 00034 output *= -1.0; 00035 } 00036 if (output >= 1000.0) 00037 { 00038 outChar = output / 1000; 00039 (*SerialConnection).putc(outChar + 48); 00040 output -= outChar * 1000.0; 00041 } 00042 if (output >= 100.0) 00043 { 00044 outChar = output / 100; 00045 (*SerialConnection).putc(outChar + 48); 00046 output -= outChar * 100.0; 00047 } 00048 else if(outChar > 0) 00049 { 00050 (*SerialConnection).putc('0'); 00051 } 00052 if (output >= 10.0) 00053 { 00054 outChar = output / 10; 00055 (*SerialConnection).putc(outChar + 48); 00056 output -= outChar * 10.0; 00057 } 00058 else if(outChar > 0) 00059 { 00060 (*SerialConnection).putc('0'); 00061 } 00062 if (output >= 1.0) 00063 { 00064 outChar = output; 00065 (*SerialConnection).putc(outChar + 48); 00066 output -= outChar; 00067 } 00068 else 00069 { 00070 (*SerialConnection).putc('0'); 00071 } 00072 if (output >= 0.1) 00073 { 00074 (*SerialConnection).putc('.'); 00075 outChar = output * 10; 00076 (*SerialConnection).putc(outChar + 48); 00077 output -= (double)outChar / 10.0; 00078 } 00079 else 00080 { 00081 (*SerialConnection).putc('.'); 00082 (*SerialConnection).putc('0'); 00083 } 00084 if (output >= 0.01) 00085 { 00086 outChar = output * 100; 00087 (*SerialConnection).putc(outChar + 48); 00088 output -= (double)outChar / 100.0; 00089 } 00090 else 00091 { 00092 (*SerialConnection).putc('0'); 00093 } 00094 if (output >= 0.001) 00095 { 00096 outChar= output * 1000; 00097 (*SerialConnection).putc(outChar + 48); 00098 } 00099 }
Generated on Mon Jul 18 2022 21:34:29 by 1.7.2