Data logger with SD card storage and RTC

Dependencies:   SDFileSystem SoftSerial ds3231 mbed

Committer:
dexterg
Date:
Wed Dec 09 22:16:42 2015 +0000
Revision:
7:31cf052463a0
Parent:
6:facc3b44ab4e
Child:
8:4da30196d571
Write fpga settings debugged. Wrong buffer was in use

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dexterg 0:e0a8ea9b571e 1 #include "mbed.h"
dexterg 0:e0a8ea9b571e 2 #include "SDFileSystem.h"
dexterg 0:e0a8ea9b571e 3 #include "SoftSerial.h"
dexterg 1:ab74071de2c8 4 #include "Serial.h"
dexterg 0:e0a8ea9b571e 5 #include "ds3231.h"
dexterg 1:ab74071de2c8 6 #include <string>
dexterg 0:e0a8ea9b571e 7 DigitalOut externalTrig(P0_17);
dexterg 0:e0a8ea9b571e 8 DigitalOut myled(LED1);
dexterg 1:ab74071de2c8 9
dexterg 1:ab74071de2c8 10
dexterg 0:e0a8ea9b571e 11 //Serial usbPC(P0_19, P0_18);
dexterg 0:e0a8ea9b571e 12
dexterg 0:e0a8ea9b571e 13 InterruptIn button(P0_23);
dexterg 0:e0a8ea9b571e 14 InterruptIn button2(P0_16);
dexterg 0:e0a8ea9b571e 15
dexterg 0:e0a8ea9b571e 16 Serial fpga(P0_19, P0_18);//must change to new pins
dexterg 0:e0a8ea9b571e 17
dexterg 1:ab74071de2c8 18 SoftSerial serial_t0(P0_11,P0_12);
dexterg 1:ab74071de2c8 19
dexterg 0:e0a8ea9b571e 20 Ds3231 rtc(P0_5, P0_4);///must change to new pins
dexterg 0:e0a8ea9b571e 21
dexterg 1:ab74071de2c8 22 Timer t;
dexterg 1:ab74071de2c8 23 int timeStart;
dexterg 1:ab74071de2c8 24 int timeCurrent;
dexterg 1:ab74071de2c8 25
dexterg 1:ab74071de2c8 26 SDFileSystem sd(P0_9, P0_8, P0_10, P0_2, "sd");
dexterg 2:e0b3cb47b4ff 27
dexterg 0:e0a8ea9b571e 28 float lifeTime = 0;
dexterg 0:e0a8ea9b571e 29 float oTwo = 0;
dexterg 0:e0a8ea9b571e 30 float peak = 0;
dexterg 0:e0a8ea9b571e 31 float trough = 0;
dexterg 0:e0a8ea9b571e 32 float ancil = 0;
dexterg 2:e0b3cb47b4ff 33 float label = 0;
dexterg 2:e0b3cb47b4ff 34 float pressure = 0;
dexterg 2:e0b3cb47b4ff 35 float temperature = 0;
dexterg 2:e0b3cb47b4ff 36
dexterg 0:e0a8ea9b571e 37 char tbuff[32];
dexterg 0:e0a8ea9b571e 38 char pbuff[250];
dexterg 0:e0a8ea9b571e 39 void bPush()
dexterg 0:e0a8ea9b571e 40 {
dexterg 0:e0a8ea9b571e 41 time_t epoch_time;
dexterg 0:e0a8ea9b571e 42 epoch_time = rtc.get_epoch();
dexterg 0:e0a8ea9b571e 43
dexterg 0:e0a8ea9b571e 44 strftime(tbuff, 32, "%Y-%m-%d %H:%M:%S %Z", localtime(&epoch_time));
dexterg 0:e0a8ea9b571e 45
dexterg 0:e0a8ea9b571e 46 FILE *fp = fopen("/sd/d.txt", "a");
dexterg 0:e0a8ea9b571e 47 if(fp == NULL) {
dexterg 0:e0a8ea9b571e 48 } else {
dexterg 0:e0a8ea9b571e 49 fprintf(fp, "%s,%f,%f,%f,%f,%f\r\n",tbuff,lifeTime,oTwo,peak,trough,ancil);
dexterg 0:e0a8ea9b571e 50 }
dexterg 0:e0a8ea9b571e 51 fclose(fp);
dexterg 0:e0a8ea9b571e 52 fpga.printf("lifetime: %f o2: %f peak: %f trough: %f ancil: %f ",lifeTime,oTwo,peak,trough,ancil);
dexterg 0:e0a8ea9b571e 53 }
dexterg 0:e0a8ea9b571e 54
dexterg 0:e0a8ea9b571e 55 void bPush2()
dexterg 0:e0a8ea9b571e 56 {
dexterg 0:e0a8ea9b571e 57 time_t epoch_time;
dexterg 0:e0a8ea9b571e 58 epoch_time = rtc.get_epoch();
dexterg 0:e0a8ea9b571e 59
dexterg 0:e0a8ea9b571e 60 externalTrig=1;
dexterg 0:e0a8ea9b571e 61 wait(0.1);
dexterg 0:e0a8ea9b571e 62 externalTrig=0;
dexterg 0:e0a8ea9b571e 63
dexterg 0:e0a8ea9b571e 64 //strftime(tbuff, 32, "%X %x", localtime(&epoch_time));
dexterg 0:e0a8ea9b571e 65 //printf("%s", tbuff);
dexterg 0:e0a8ea9b571e 66 }
dexterg 0:e0a8ea9b571e 67 const int buffer_size = 255;
dexterg 0:e0a8ea9b571e 68 char fpgaBuffer[buffer_size+1];
dexterg 0:e0a8ea9b571e 69 volatile int rx_in=0;
dexterg 0:e0a8ea9b571e 70 volatile int rx_out=0;
dexterg 0:e0a8ea9b571e 71 int newData=0;
dexterg 0:e0a8ea9b571e 72
dexterg 1:ab74071de2c8 73 char softBuffer[buffer_size+1];
dexterg 5:159a0b7172c8 74 char rBuffer[255];
dexterg 1:ab74071de2c8 75 volatile int rxSoftIn=0;
dexterg 1:ab74071de2c8 76 volatile int rxSoftOut=0;
dexterg 1:ab74071de2c8 77 int newSoftData=0;
dexterg 1:ab74071de2c8 78
dexterg 1:ab74071de2c8 79 int setT0 = 0;
dexterg 1:ab74071de2c8 80 int setPre0=0;
dexterg 1:ab74071de2c8 81 int setM=0;
dexterg 1:ab74071de2c8 82 int setC=0;
dexterg 6:facc3b44ab4e 83 int strN;
dexterg 6:facc3b44ab4e 84 int setSend=0;
dexterg 5:159a0b7172c8 85 void serial_t0_RxInt()
dexterg 5:159a0b7172c8 86 {
dexterg 1:ab74071de2c8 87 while ((serial_t0.readable()) && (((rxSoftIn + 1) % buffer_size) != rxSoftOut)) {
dexterg 1:ab74071de2c8 88 softBuffer[rxSoftIn] = serial_t0.getc();
dexterg 1:ab74071de2c8 89 rxSoftIn = (rxSoftIn + 1) % buffer_size;
dexterg 1:ab74071de2c8 90 }
dexterg 1:ab74071de2c8 91 softBuffer[rxSoftIn]='\0';
dexterg 1:ab74071de2c8 92 newSoftData=1;
dexterg 1:ab74071de2c8 93 }
dexterg 1:ab74071de2c8 94
dexterg 0:e0a8ea9b571e 95 void fpga_Rx_interrupt()
dexterg 0:e0a8ea9b571e 96 {
dexterg 0:e0a8ea9b571e 97 wait(0.1);
dexterg 0:e0a8ea9b571e 98 while ((fpga.readable()) && (((rx_in + 1) % buffer_size) != rx_out)) {
dexterg 0:e0a8ea9b571e 99 fpgaBuffer[rx_in] = fpga.getc();
dexterg 0:e0a8ea9b571e 100 rx_in = (rx_in + 1) % buffer_size;
dexterg 0:e0a8ea9b571e 101 }
dexterg 0:e0a8ea9b571e 102
dexterg 0:e0a8ea9b571e 103
dexterg 0:e0a8ea9b571e 104 ///convert to Shijie datagram
dexterg 5:159a0b7172c8 105 if(rx_in<14) {
dexterg 2:e0b3cb47b4ff 106 if(fpgaBuffer[2]!=0xFF) {
dexterg 2:e0b3cb47b4ff 107 lifeTime = (10 * (fpgaBuffer[0] >> 4)) + (fpgaBuffer[0] & 15)+(((10.0 * (fpgaBuffer[1] >> 4)) + 1.0*(fpgaBuffer[1] & 15))/100.0);
dexterg 2:e0b3cb47b4ff 108 oTwo = (10 * (fpgaBuffer[2] >> 4)) + (fpgaBuffer[2] & 15)+(((10.0 * (fpgaBuffer[3] >> 4)) + 1.0*(fpgaBuffer[3] & 15))/100.0);
dexterg 2:e0b3cb47b4ff 109 peak = (256 * (fpgaBuffer[4]))+fpgaBuffer[5];
dexterg 2:e0b3cb47b4ff 110 trough = (256 * (fpgaBuffer[6]))+fpgaBuffer[7];
dexterg 2:e0b3cb47b4ff 111 ancil = (10 * (fpgaBuffer[8] >> 4)) + (fpgaBuffer[8] & 15)+(((10.0 * (fpgaBuffer[9] >> 4)) + 1.0*(fpgaBuffer[9] & 15))/100.0);
dexterg 2:e0b3cb47b4ff 112 // 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]);
dexterg 2:e0b3cb47b4ff 113 } else {
dexterg 2:e0b3cb47b4ff 114 lifeTime = (10 * (fpgaBuffer[0] >> 4)) + (fpgaBuffer[0] & 15)+(((10.0 * (fpgaBuffer[1] >> 4)) + 1.0*(fpgaBuffer[1] & 15))/100.0);
dexterg 2:e0b3cb47b4ff 115 oTwo = (10 * (fpgaBuffer[3] >> 4)) + (fpgaBuffer[3] & 15)+(((10.0 * (fpgaBuffer[4] >> 4)) + 1.0*(fpgaBuffer[4] & 15))/100.0);
dexterg 2:e0b3cb47b4ff 116 peak = (256 * (fpgaBuffer[6]))+fpgaBuffer[7];
dexterg 2:e0b3cb47b4ff 117 trough = (256 * (fpgaBuffer[9]))+fpgaBuffer[10];
dexterg 2:e0b3cb47b4ff 118 ancil = (10 * (fpgaBuffer[12] >> 4)) + (fpgaBuffer[12] & 15)+(((10.0 * (fpgaBuffer[13] >> 4)) + 1.0*(fpgaBuffer[13] & 15))/100.0);
dexterg 2:e0b3cb47b4ff 119 // 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]);
dexterg 2:e0b3cb47b4ff 120 }
dexterg 5:159a0b7172c8 121 } else {
dexterg 5:159a0b7172c8 122
dexterg 5:159a0b7172c8 123 if(rx_in<18) {
dexterg 5:159a0b7172c8 124
dexterg 5:159a0b7172c8 125 label = (256 * (fpgaBuffer[0]))+fpgaBuffer[1];
dexterg 5:159a0b7172c8 126 lifeTime = (10 * (fpgaBuffer[2] >> 4)) + (fpgaBuffer[2] & 15)+(((10.0 * (fpgaBuffer[3] >> 4)) + 1.0*(fpgaBuffer[3] & 15))/100.0);
dexterg 5:159a0b7172c8 127 oTwo = (10 * (fpgaBuffer[4] >> 4)) + (fpgaBuffer[4] & 15)+(((10.0 * (fpgaBuffer[5] >> 4)) + 1.0*(fpgaBuffer[5] & 15))/100.0);
dexterg 5:159a0b7172c8 128 peak = (256 * (fpgaBuffer[6]))+fpgaBuffer[7];
dexterg 5:159a0b7172c8 129 trough = (256 * (fpgaBuffer[8]))+fpgaBuffer[9];
dexterg 5:159a0b7172c8 130 pressure = (256 * (fpgaBuffer[10]))+fpgaBuffer[11];
dexterg 5:159a0b7172c8 131 temperature = (10 * (fpgaBuffer[12] & 15)) + (fpgaBuffer[13] >> 4) + (1.0*(fpgaBuffer[13] & 15)/10 );
dexterg 5:159a0b7172c8 132
dexterg 5:159a0b7172c8 133 } else {
dexterg 5:159a0b7172c8 134
dexterg 5:159a0b7172c8 135 label = (256 * (fpgaBuffer[0]))+fpgaBuffer[1];
dexterg 5:159a0b7172c8 136 lifeTime = (10 * (fpgaBuffer[3] >> 4)) + (fpgaBuffer[3] & 15)+(((10.0 * (fpgaBuffer[4] >> 4)) + 1.0*(fpgaBuffer[4] & 15))/100.0);
dexterg 5:159a0b7172c8 137 oTwo = (10 * (fpgaBuffer[6] >> 4)) + (fpgaBuffer[6] & 15)+(((10.0 * (fpgaBuffer[7] >> 4)) + 1.0*(fpgaBuffer[7] & 15))/100.0);
dexterg 5:159a0b7172c8 138 peak = (256 * (fpgaBuffer[9]))+fpgaBuffer[10];
dexterg 5:159a0b7172c8 139 trough = (256 * (fpgaBuffer[12]))+fpgaBuffer[13];
dexterg 5:159a0b7172c8 140 pressure = (256 * (fpgaBuffer[15]))+fpgaBuffer[16];
dexterg 5:159a0b7172c8 141 temperature = (10 * (fpgaBuffer[18] & 15)) + (fpgaBuffer[19] >> 4) + (1.0*(fpgaBuffer[19] & 15)/10 );
dexterg 4:3b055e2a9f4e 142 }
dexterg 0:e0a8ea9b571e 143 }
dexterg 5:159a0b7172c8 144
dexterg 0:e0a8ea9b571e 145 newData=1;
dexterg 0:e0a8ea9b571e 146 rx_in=0;
dexterg 0:e0a8ea9b571e 147 return;
dexterg 0:e0a8ea9b571e 148 }
dexterg 0:e0a8ea9b571e 149 int createFile=0;
dexterg 1:ab74071de2c8 150 char* strings;
dexterg 1:ab74071de2c8 151 string s1;
dexterg 1:ab74071de2c8 152 string s2;
dexterg 5:159a0b7172c8 153 int r;
dexterg 1:ab74071de2c8 154 int msgCode;
dexterg 1:ab74071de2c8 155 int msgValue;
dexterg 5:159a0b7172c8 156 int lineN;
dexterg 6:facc3b44ab4e 157 char * pch;
dexterg 6:facc3b44ab4e 158
dexterg 6:facc3b44ab4e 159
dexterg 6:facc3b44ab4e 160 void SendSet(){
dexterg 6:facc3b44ab4e 161 FILE *fr = fopen("/sd/set.txt", "r");
dexterg 6:facc3b44ab4e 162 if(fr == NULL) {
dexterg 6:facc3b44ab4e 163 serial_t0.printf("Could not open file for read");
dexterg 6:facc3b44ab4e 164 } else {
dexterg 6:facc3b44ab4e 165 lineN=0;
dexterg 6:facc3b44ab4e 166 if( fgets(rBuffer , 200 , fr) != NULL ) {
dexterg 7:31cf052463a0 167 pch = strtok (rBuffer,",");
dexterg 6:facc3b44ab4e 168 strN=0;
dexterg 6:facc3b44ab4e 169 while (pch != NULL)
dexterg 6:facc3b44ab4e 170 {
dexterg 7:31cf052463a0 171 if(strN==0){setT0 = atoi(pch); }
dexterg 7:31cf052463a0 172 if(strN==1){setPre0 =atoi(pch); }
dexterg 7:31cf052463a0 173 if(strN==2){setM=atoi(pch); }
dexterg 7:31cf052463a0 174 if(strN==3){setC =atoi(pch); }
dexterg 6:facc3b44ab4e 175 pch = strtok (NULL, ",");
dexterg 6:facc3b44ab4e 176 strN++;
dexterg 6:facc3b44ab4e 177 }
dexterg 7:31cf052463a0 178 serial_t0.printf("%d,%d,%d,%d\n",setT0,setPre0,setM,setC);
dexterg 7:31cf052463a0 179 rBuffer[0] = setT0/255; //LSB
dexterg 7:31cf052463a0 180 rBuffer[1] = setT0%255; //MSB
dexterg 7:31cf052463a0 181 rBuffer[2] = setPre0/255; //LSB
dexterg 7:31cf052463a0 182 rBuffer[3] = setPre0%255; //MSB
dexterg 7:31cf052463a0 183 rBuffer[4] = setM/255; //LSB
dexterg 7:31cf052463a0 184 rBuffer[5] = setM%255; //MSB
dexterg 7:31cf052463a0 185 rBuffer[6] = setC/255; //LSB
dexterg 7:31cf052463a0 186 rBuffer[7] = setC%255; //MSB
dexterg 7:31cf052463a0 187 rBuffer[8] = '\0';
dexterg 7:31cf052463a0 188 fpga.putc(rBuffer[0]);
dexterg 7:31cf052463a0 189 fpga.putc(rBuffer[1]);
dexterg 7:31cf052463a0 190 fpga.putc(rBuffer[2]);
dexterg 7:31cf052463a0 191 fpga.putc(rBuffer[3]);
dexterg 7:31cf052463a0 192 fpga.putc(rBuffer[4]);
dexterg 7:31cf052463a0 193 fpga.putc(rBuffer[5]);
dexterg 7:31cf052463a0 194 fpga.putc(rBuffer[6]);
dexterg 7:31cf052463a0 195 fpga.putc(rBuffer[7]);
dexterg 6:facc3b44ab4e 196 }
dexterg 6:facc3b44ab4e 197 }
dexterg 6:facc3b44ab4e 198 fclose(fr);
dexterg 6:facc3b44ab4e 199
dexterg 6:facc3b44ab4e 200 }
dexterg 6:facc3b44ab4e 201
dexterg 0:e0a8ea9b571e 202 int main()
dexterg 0:e0a8ea9b571e 203 {
dexterg 1:ab74071de2c8 204 //Comment below to test without RTC and SD
dexterg 0:e0a8ea9b571e 205 externalTrig=0;
dexterg 0:e0a8ea9b571e 206 button.mode(PullUp);
dexterg 0:e0a8ea9b571e 207 button.fall(&bPush);
dexterg 0:e0a8ea9b571e 208 button2.mode(PullUp);
dexterg 0:e0a8ea9b571e 209 button2.fall(&bPush2);
dexterg 5:159a0b7172c8 210
dexterg 0:e0a8ea9b571e 211 fpga.attach(&fpga_Rx_interrupt,Serial::RxIrq);
dexterg 0:e0a8ea9b571e 212 FILE *fpo = fopen("/sd/d.txt", "r");
dexterg 0:e0a8ea9b571e 213 if(fpo == NULL) {
dexterg 0:e0a8ea9b571e 214 createFile=1;
dexterg 0:e0a8ea9b571e 215 }
dexterg 5:159a0b7172c8 216 fclose(fpo);
dexterg 6:facc3b44ab4e 217
dexterg 0:e0a8ea9b571e 218 FILE *fp = fopen("/sd/d.txt", "a");
dexterg 0:e0a8ea9b571e 219 if(fp == NULL) {
dexterg 0:e0a8ea9b571e 220 fpga.printf("file system failed\r\n");
dexterg 0:e0a8ea9b571e 221 } else {
dexterg 0:e0a8ea9b571e 222 fpga.printf("file system active\r\n");
dexterg 1:ab74071de2c8 223 if(createFile==1) {
dexterg 5:159a0b7172c8 224 //fprintf(fp, "DateTime,Lifetime,02,Peak,Trough,Ancil\r\n");
dexterg 1:ab74071de2c8 225 }
dexterg 0:e0a8ea9b571e 226 }
dexterg 0:e0a8ea9b571e 227 fclose(fp);
dexterg 0:e0a8ea9b571e 228 ds3231_cntl_stat_t rtc_control_status = {1,1};
dexterg 0:e0a8ea9b571e 229 rtc.set_cntl_stat_reg(rtc_control_status);
dexterg 0:e0a8ea9b571e 230 time_t epoch_time;
dexterg 0:e0a8ea9b571e 231 epoch_time = rtc.get_epoch();
dexterg 1:ab74071de2c8 232 //Comment above to test without RTC and SD
dexterg 0:e0a8ea9b571e 233
dexterg 0:e0a8ea9b571e 234
dexterg 1:ab74071de2c8 235 fpga.baud(9600);
dexterg 1:ab74071de2c8 236 fpga.printf("start v2 \r\n");
dexterg 5:159a0b7172c8 237
dexterg 1:ab74071de2c8 238 serial_t0.baud(4800);
dexterg 1:ab74071de2c8 239 serial_t0.printf("start soft serial\r\n");//DEBUG
dexterg 1:ab74071de2c8 240 serial_t0.attach(&serial_t0_RxInt,SoftSerial::RxIrq);
dexterg 1:ab74071de2c8 241 serial_t0.printf("entering loop\r\n"); ///DEBUG
dexterg 0:e0a8ea9b571e 242
dexterg 0:e0a8ea9b571e 243 while(1) {
dexterg 1:ab74071de2c8 244 //serial_t0.printf("looping \r\n");
dexterg 1:ab74071de2c8 245 //fpga.printf("Im looping too");
dexterg 5:159a0b7172c8 246
dexterg 0:e0a8ea9b571e 247 myled = 1;
dexterg 0:e0a8ea9b571e 248 wait(0.2);
dexterg 0:e0a8ea9b571e 249 myled = 0;
dexterg 0:e0a8ea9b571e 250 wait(0.2);
dexterg 5:159a0b7172c8 251
dexterg 1:ab74071de2c8 252 ///print data to file
dexterg 0:e0a8ea9b571e 253 if(newData==1) {
dexterg 3:f1287f5fde38 254 sprintf(pbuff,"%f,%f,%f,%f,%f,%f,%f",label,lifeTime,oTwo,peak,trough,pressure,temperature);
dexterg 3:f1287f5fde38 255 //serial_t0.printf("%s",pbuff);
dexterg 2:e0b3cb47b4ff 256 //sprintf(pbuff,"%f, %f, %f, %f, %f",lifeTime,oTwo,peak,trough,ancil);
dexterg 2:e0b3cb47b4ff 257 //fpga.printf("%s",pbuff);
dexterg 0:e0a8ea9b571e 258 time_t epoch_time;
dexterg 0:e0a8ea9b571e 259 epoch_time = rtc.get_epoch();
dexterg 0:e0a8ea9b571e 260 strftime(tbuff, 32, "%Y-%m-%d %H:%M:%S %Z", localtime(&epoch_time));
dexterg 0:e0a8ea9b571e 261 FILE *fp = fopen("/sd/d.txt", "a");
dexterg 0:e0a8ea9b571e 262 if(fp == NULL) {
dexterg 0:e0a8ea9b571e 263 } else {
dexterg 0:e0a8ea9b571e 264 fprintf(fp, "%s,%s\r\n",tbuff,pbuff);
dexterg 0:e0a8ea9b571e 265 }
dexterg 3:f1287f5fde38 266 serial_t0.printf("%s,%s\r\n",tbuff,pbuff);
dexterg 0:e0a8ea9b571e 267 fclose(fp);
dexterg 0:e0a8ea9b571e 268 newData=0;
dexterg 5:159a0b7172c8 269 }
dexterg 5:159a0b7172c8 270
dexterg 5:159a0b7172c8 271 if(newSoftData==1) {
dexterg 1:ab74071de2c8 272 rxSoftIn=0;
dexterg 1:ab74071de2c8 273 newSoftData=0;
dexterg 5:159a0b7172c8 274
dexterg 1:ab74071de2c8 275 //serial_t0.printf(softBuffer);
dexterg 5:159a0b7172c8 276
dexterg 1:ab74071de2c8 277 string str(softBuffer);
dexterg 5:159a0b7172c8 278
dexterg 5:159a0b7172c8 279 if(softBuffer[0]=='S'&&softBuffer[1]=='D') {
dexterg 6:facc3b44ab4e 280 FILE *fr = fopen("/sd/d.txt", "r");
dexterg 5:159a0b7172c8 281 if(fr == NULL) {
dexterg 5:159a0b7172c8 282 serial_t0.printf("Could not open file for read");
dexterg 5:159a0b7172c8 283 } else {
dexterg 5:159a0b7172c8 284 lineN=0;
dexterg 5:159a0b7172c8 285 while( fgets(rBuffer , 200 , fr) != NULL && !( rBuffer[0]=='D' && lineN==1) ) {
dexterg 5:159a0b7172c8 286 if(rBuffer[0]=='D') {
dexterg 5:159a0b7172c8 287 lineN++;
dexterg 5:159a0b7172c8 288 } else {
dexterg 5:159a0b7172c8 289 serial_t0.printf("%s",rBuffer);
dexterg 6:facc3b44ab4e 290 //wait(0.040);
dexterg 5:159a0b7172c8 291 }
dexterg 5:159a0b7172c8 292 }
dexterg 5:159a0b7172c8 293 }
dexterg 6:facc3b44ab4e 294 } else if(softBuffer[0]=='P'&&softBuffer[1]=='A') {
dexterg 5:159a0b7172c8 295
dexterg 6:facc3b44ab4e 296 pch = strtok (softBuffer,",");
dexterg 6:facc3b44ab4e 297 strN=0;
dexterg 6:facc3b44ab4e 298 while (pch != NULL)
dexterg 6:facc3b44ab4e 299 {
dexterg 6:facc3b44ab4e 300 if(strN==1){setT0 = atoi(pch); }
dexterg 6:facc3b44ab4e 301 if(strN==2){setPre0 =atoi(pch); }
dexterg 6:facc3b44ab4e 302 if(strN==3){setM=atoi(pch); }
dexterg 6:facc3b44ab4e 303 if(strN==4){setC =atoi(pch); }
dexterg 6:facc3b44ab4e 304 pch = strtok (NULL, ",");
dexterg 6:facc3b44ab4e 305 strN++;
dexterg 6:facc3b44ab4e 306 }
dexterg 6:facc3b44ab4e 307 ///serial_t0.printf (" setT0: %d Pre0 %d M %d C %d \n",setT0,setPre0,setM,setC);
dexterg 6:facc3b44ab4e 308
dexterg 6:facc3b44ab4e 309 FILE *fpo = fopen("/sd/set.txt", "w");
dexterg 6:facc3b44ab4e 310 if(fpo != NULL) {
dexterg 6:facc3b44ab4e 311 fprintf(fpo,"%d,%d,%d,%d\n",setT0,setPre0,setM,setC);
dexterg 6:facc3b44ab4e 312 }
dexterg 6:facc3b44ab4e 313 fclose(fpo);
dexterg 6:facc3b44ab4e 314
dexterg 6:facc3b44ab4e 315 SendSet();
dexterg 6:facc3b44ab4e 316
dexterg 6:facc3b44ab4e 317 }
dexterg 5:159a0b7172c8 318
dexterg 6:facc3b44ab4e 319 }
dexterg 6:facc3b44ab4e 320
dexterg 6:facc3b44ab4e 321 setSend++;
dexterg 6:facc3b44ab4e 322
dexterg 7:31cf052463a0 323 if(setSend>20){
dexterg 6:facc3b44ab4e 324 setSend=0;
dexterg 6:facc3b44ab4e 325 SendSet();
dexterg 0:e0a8ea9b571e 326 }
dexterg 1:ab74071de2c8 327
dexterg 0:e0a8ea9b571e 328 }
dexterg 6:facc3b44ab4e 329 }