attempt to fix posible power issues with the sharp

Dependencies:   ADS1115 BME280 CronoDot SDFileSystem mbed

Fork of Outdoor_UPAS_v1_2_Tboard by scott kelleher

Revision:
21:bb10efc5bf57
Parent:
20:30a00cd18e21
Child:
22:baa5a077d908
--- a/main.cpp	Thu Mar 24 23:03:34 2016 +0000
+++ b/main.cpp	Sat Mar 26 02:36:43 2016 +0000
@@ -71,7 +71,7 @@
 //GPS
 /////////////////////////////////////////////
 DigitalOut      gpsEN(PB_15, 0);
-Max_M8 gps(PB_9, PB_8,(66<<1));   // this must be defnined in the int main (? Not sure if this is true)
+Max_M8 gps(PB_9, PB_8,(66<<1));   
 
 /////////////////////////////////////////////
 //Hbridge Valve Control
@@ -227,7 +227,7 @@
                 if((transmissionValue == 1 || transmissionValue == 2 || transmissionValue == 3 || transmissionValue == 4 || transmissionValue == 5 ||
                     transmissionValue == 6 || transmissionValue == 7) &&  rx_buf[rx_len-1] != 0xff)
                 {}else{
-                    //if(transmissionValue == 4 ) sendData();
+                    if(transmissionValue == 4 ) sendData();
                     if(transmissionValue == 8){
                          runReady = 1;
                          microChannel.attach(NULL,microChannel.RxIrq);
@@ -296,15 +296,16 @@
 
 void sendData(){
     
-    uint8_t sampleTimePassValues[13] = {0x01,};
-    uint8_t subjectLabelOriginal[9] = {0x02,};
-    uint8_t dataLogOriginal[2] = {0x03,};
-    uint8_t flowRateOriginal[5] = {0x04,};
+    uint8_t sampleTimePassValues[13] = {0x01,0x00,0x00,0x0A,0x01,0x01,0x10,0x00,0x00,0x0A,0x01,0x01,0x10};
+    uint8_t subjectLabelOriginal[9] = {0x02,0x52,0x45,0x53,0x45,0x54,0x5F,0x5F,0x5f};
+    uint8_t dataLogOriginal[2] = {0x03,0x0A,};
+    uint8_t flowRateOriginal[5] = {0x04,0x00,0x00,0x80,0x3F};
     //uint8_t presetRunModeCheck[1] = {0,}; Commented and currently unused to prevent mem issues
     E2PROM.read(0x00015, sampleTimePassValues+1, 12);
     E2PROM.read(0x00001, subjectLabelOriginal+1,8);
     E2PROM.read(0x00014,dataLogOriginal+1,1);
     E2PROM.read(0x00010,flowRateOriginal+1,4);
+
     
     for(int i=0; i<13; i++){
          microChannel.putc(sampleTimePassValues[i]);        
@@ -445,10 +446,10 @@
     vInReading = ads.readADC_SingleEnded(1, 0xD583); // read channel 0
     vBlowerReading = ads.readADC_SingleEnded(2, 0xE783); // read channel 0
     omronDiff = ads.readADC_Differential(0x8583); // differential channel 2-3
-     
+    
     if(gpsEN ==1){    
     gps.read(1);
-        RGB_LED.set_led(1,1,0);
+        //RGB_LED.set_led(1,1,0);
         gpsspeed = gps.speed;
         gpssatellites =  gps.satellites;
         gpslatitude = gps.lat;
@@ -457,7 +458,7 @@
        // gpslon = 'W'; //gps.lon; need to fix this (if statement?)
         gpsaltitude = gps.altitude;
         
-          /*  
+           /*
             if (abs(gpslatitude) > 0 && abs(gpslongitude) > 0) {
       
             if(gpslat == 'S')
@@ -509,12 +510,13 @@
             //    digitalWrite (travel_red_led, HIGH);
                 location = 3;
               }
-*/
-     
+                
+*/     
 }
-     
+
+   
     FILE *fp = fopen(filename, "a");
-    //fprintf(fp, "%02d,%02d,%02d,%02d,%02d,%02d,",RTC_UPAS.year, RTC_UPAS.month,RTC_UPAS.date,RTC_UPAS.hour,RTC_UPAS.minutes,RTC_UPAS.seconds);
+    fprintf(fp, "%02d,%02d,%02d,%02d,%02d,%02d,",RTC_UPAS.year, RTC_UPAS.month,RTC_UPAS.date,RTC_UPAS.hour,RTC_UPAS.minutes,RTC_UPAS.seconds);
     fprintf(fp, "%s,", timestr);
     fprintf(fp, "%1.3f,%1.3f,%2.2f,%4.2f,%2.1f,%1.3f,", omronVolt,massflow,temp,press,rh,atmoRho);
     fprintf(fp, "%1.3f,%5.1f,%1.1f,%1.1f,%1.1f,%1.1f,", volflow, sampledVol, accel_x, accel_y, accel_z, accel_comp);
@@ -591,16 +593,17 @@
 //////////////////////////////////////////////////////////////
 int main(){
     
-    //gpsEN = 1;
-    //wait(1);
+    gpsEN = 1;
+    wait(1);
     BT_SW = 1;
     wait(1);
     BT_IRST = 1;
     wait(1);
     
+    /*
     //CODE ADDED TO TEST EEPROM
     //////////////////////////////////////////
-    uint8_t serialNumWriter [2] = {0x00,0x11};
+    uint8_t serialNumWriter [2] = {0x00,0x12};
     uint8_t putDataInMe[2] = {0x02,0x00};
     E2PROM.write(0x00034,serialNumWriter,2);
     wait(.5);
@@ -608,6 +611,7 @@
     if(putDataInMe[0] == 0x02)pumps=1;
     //////////////////////////////////////////
     //END CODE ADDED TO TEST EEPROM
+   
     
     RGB_LED.set_led(0,0,1);
     STtime.tm_sec = 10;    // 0-59
@@ -620,18 +624,20 @@
     set_time(seconds); // Set RTC time to 16 December 2013 10:05:23 UTC
     wait(5);
 
-/*
+
 motor1.getFault();
-    wait(5);
+    //wait(5);
     RGB_LED.set_led(0,0,0);
 motor2.getFault();
-    wait(5);
+    //wait(5);
     RGB_LED.set_led(1,0,0);
+
 motor3.getFault();
     wait(5);
     RGB_LED.set_led(0,0,0);
+    
 motor4.getFault();
-    wait(5);
+    //wait(5);
     RGB_LED.set_led(1,0,0);
 
     RGB_LED.set_led(1,0,0);
@@ -712,6 +718,11 @@
     //UPDATE THIS TO WORK WITH ST RTC INSTEAD
     //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
+    BT_SW = 0;
+    wait(1);
+    BT_IRST = 0;
+    wait(1);
+
     while(!RTC_UPAS.compare(startAndEndTime[0], startAndEndTime[1], startAndEndTime[2], startAndEndTime[3], startAndEndTime[4], startAndEndTime[5])) {  // this while waits for the start time by looping until the start time
             wait(0.5);
             
@@ -761,12 +772,12 @@
 
 
         
-    seconds = time(NULL);
+    time_t seconds = time(NULL);
     strftime(timestr, 32, "%y-%m-%d-%H=%M=%S", localtime(&seconds));
 
     //sprintf(filename, "/sd/UPAS%04dLOG_%02d-%02d-%02d_%02d=%02d=%02d_%c%c%c%c%c%c%c%c.txt",serial_num,RTC_UPAS.year,RTC_UPAS.month,RTC_UPAS.date,RTC_UPAS.hour,RTC_UPAS.minutes,RTC_UPAS.seconds,subjectLabelOriginal[0],subjectLabelOriginal[1],subjectLabelOriginal[2],subjectLabelOriginal[3],subjectLabelOriginal[4],subjectLabelOriginal[5],subjectLabelOriginal[6],subjectLabelOriginal[7]);
-    //sprintf(filename, "/sd/UPAS_TboardtestLog_%s_%c%c%c%c%c%c%c%c.txt", timestr,subjectLabelOriginal[0],subjectLabelOriginal[1],subjectLabelOriginal[2],subjectLabelOriginal[3],subjectLabelOriginal[4],subjectLabelOriginal[5],subjectLabelOriginal[6],subjectLabelOriginal[7]);
-   sprintf(filename, "/sd/UPAS_TboardtestLog_%s.txt", timestr);
+    sprintf(filename, "/sd/UPAS_TboardtestLog_%s_%c%c%c%c%c%c%c%c.txt", timestr,subjectLabelOriginal[0],subjectLabelOriginal[1],subjectLabelOriginal[2],subjectLabelOriginal[3],subjectLabelOriginal[4],subjectLabelOriginal[5],subjectLabelOriginal[6],subjectLabelOriginal[7]);
+    //sprintf(filename, "/sd/UPAS_TboardtestLog_%s.txt", timestr);
     FILE *fp = fopen(filename, "w");
     fclose(fp);