Data logger with SD card storage and RTC
Dependencies: SDFileSystem SoftSerial ds3231 mbed
Diff: main.cpp
- Revision:
- 2:e0b3cb47b4ff
- Parent:
- 1:ab74071de2c8
- Child:
- 3:f1287f5fde38
--- a/main.cpp Sun Nov 22 22:39:17 2015 +0000 +++ b/main.cpp Tue Nov 24 00:20:00 2015 +0000 @@ -24,11 +24,16 @@ int timeCurrent; SDFileSystem sd(P0_9, P0_8, P0_10, P0_2, "sd"); + float lifeTime = 0; float oTwo = 0; float peak = 0; float trough = 0; float ancil = 0; +float label = 0; +float pressure = 0; +float temperature = 0; + char tbuff[32]; char pbuff[250]; void bPush() @@ -94,21 +99,32 @@ ///convert to Shijie datagram - if(fpgaBuffer[2]!=0xFF) { - lifeTime = (10 * (fpgaBuffer[0] >> 4)) + (fpgaBuffer[0] & 15)+(((10.0 * (fpgaBuffer[1] >> 4)) + 1.0*(fpgaBuffer[1] & 15))/100.0); - oTwo = (10 * (fpgaBuffer[2] >> 4)) + (fpgaBuffer[2] & 15)+(((10.0 * (fpgaBuffer[3] >> 4)) + 1.0*(fpgaBuffer[3] & 15))/100.0); - peak = (256 * (fpgaBuffer[4]))+fpgaBuffer[5]; - trough = (256 * (fpgaBuffer[6]))+fpgaBuffer[7]; - ancil = (10 * (fpgaBuffer[8] >> 4)) + (fpgaBuffer[8] & 15)+(((10.0 * (fpgaBuffer[9] >> 4)) + 1.0*(fpgaBuffer[9] & 15))/100.0); - // DEBUG fpga.printf("%x %x %x %x %x %x %x %x %x %x",fpgaBuffer[0],fpgaBuffer[1],fpgaBuffer[2],fpgaBuffer[3],fpgaBuffer[4],fpgaBuffer[5],fpgaBuffer[6],fpgaBuffer[7],fpgaBuffer[8],fpgaBuffer[9]); - } else { - lifeTime = (10 * (fpgaBuffer[0] >> 4)) + (fpgaBuffer[0] & 15)+(((10.0 * (fpgaBuffer[1] >> 4)) + 1.0*(fpgaBuffer[1] & 15))/100.0); - oTwo = (10 * (fpgaBuffer[3] >> 4)) + (fpgaBuffer[3] & 15)+(((10.0 * (fpgaBuffer[4] >> 4)) + 1.0*(fpgaBuffer[4] & 15))/100.0); + if(rx_in<14){ + if(fpgaBuffer[2]!=0xFF) { + lifeTime = (10 * (fpgaBuffer[0] >> 4)) + (fpgaBuffer[0] & 15)+(((10.0 * (fpgaBuffer[1] >> 4)) + 1.0*(fpgaBuffer[1] & 15))/100.0); + oTwo = (10 * (fpgaBuffer[2] >> 4)) + (fpgaBuffer[2] & 15)+(((10.0 * (fpgaBuffer[3] >> 4)) + 1.0*(fpgaBuffer[3] & 15))/100.0); + peak = (256 * (fpgaBuffer[4]))+fpgaBuffer[5]; + trough = (256 * (fpgaBuffer[6]))+fpgaBuffer[7]; + ancil = (10 * (fpgaBuffer[8] >> 4)) + (fpgaBuffer[8] & 15)+(((10.0 * (fpgaBuffer[9] >> 4)) + 1.0*(fpgaBuffer[9] & 15))/100.0); + // DEBUG fpga.printf("%x %x %x %x %x %x %x %x %x %x",fpgaBuffer[0],fpgaBuffer[1],fpgaBuffer[2],fpgaBuffer[3],fpgaBuffer[4],fpgaBuffer[5],fpgaBuffer[6],fpgaBuffer[7],fpgaBuffer[8],fpgaBuffer[9]); + } else { + lifeTime = (10 * (fpgaBuffer[0] >> 4)) + (fpgaBuffer[0] & 15)+(((10.0 * (fpgaBuffer[1] >> 4)) + 1.0*(fpgaBuffer[1] & 15))/100.0); + oTwo = (10 * (fpgaBuffer[3] >> 4)) + (fpgaBuffer[3] & 15)+(((10.0 * (fpgaBuffer[4] >> 4)) + 1.0*(fpgaBuffer[4] & 15))/100.0); + peak = (256 * (fpgaBuffer[6]))+fpgaBuffer[7]; + trough = (256 * (fpgaBuffer[9]))+fpgaBuffer[10]; + ancil = (10 * (fpgaBuffer[12] >> 4)) + (fpgaBuffer[12] & 15)+(((10.0 * (fpgaBuffer[13] >> 4)) + 1.0*(fpgaBuffer[13] & 15))/100.0); + // DEBUG fpga.printf("%x %x %x %x %x %x %x %x %x %x",fpgaBuffer[0],fpgaBuffer[1],fpgaBuffer[3],fpgaBuffer[4],fpgaBuffer[6],fpgaBuffer[7],fpgaBuffer[9],fpgaBuffer[10],fpgaBuffer[12],fpgaBuffer[13]); + } + }else{ + label = (256 * (fpgaBuffer[0]))+fpgaBuffer[1]; + lifeTime = (10 * (fpgaBuffer[2] >> 4)) + (fpgaBuffer[2] & 15)+(((10.0 * (fpgaBuffer[3] >> 4)) + 1.0*(fpgaBuffer[3] & 15))/100.0); + oTwo = (10 * (fpgaBuffer[4] >> 4)) + (fpgaBuffer[4] & 15)+(((10.0 * (fpgaBuffer[5] >> 4)) + 1.0*(fpgaBuffer[5] & 15))/100.0); peak = (256 * (fpgaBuffer[6]))+fpgaBuffer[7]; - trough = (256 * (fpgaBuffer[9]))+fpgaBuffer[10]; - ancil = (10 * (fpgaBuffer[12] >> 4)) + (fpgaBuffer[12] & 15)+(((10.0 * (fpgaBuffer[13] >> 4)) + 1.0*(fpgaBuffer[13] & 15))/100.0); - // DEBUG fpga.printf("%x %x %x %x %x %x %x %x %x %x",fpgaBuffer[0],fpgaBuffer[1],fpgaBuffer[3],fpgaBuffer[4],fpgaBuffer[6],fpgaBuffer[7],fpgaBuffer[9],fpgaBuffer[10],fpgaBuffer[12],fpgaBuffer[13]); + trough = (256 * (fpgaBuffer[8]))+fpgaBuffer[9]; + pressure = (256 * (fpgaBuffer[10]))+fpgaBuffer[11]; + temperature = (10 * (fpgaBuffer[12] & 15)) + (fpgaBuffer[13] >> 4) + (1.0*(fpgaBuffer[13] & 15)/10 ); } + newData=1; rx_in=0; return; @@ -170,8 +186,10 @@ ///print data to file if(newData==1) { - sprintf(pbuff,"%f, %f, %f, %f, %f",lifeTime,oTwo,peak,trough,ancil); - fpga.printf("%s",pbuff); + sprintf(pbuff,"%f, %f, %f, %f, %f, %f, %f, %f",label,lifeTime,oTwo,peak,trough,pressure,temperature); + serial_t0.printf("%s",pbuff); + //sprintf(pbuff,"%f, %f, %f, %f, %f",lifeTime,oTwo,peak,trough,ancil); + //fpga.printf("%s",pbuff); time_t epoch_time; epoch_time = rtc.get_epoch(); strftime(tbuff, 32, "%Y-%m-%d %H:%M:%S %Z", localtime(&epoch_time));