Swimate V2 without RTOS code

Dependencies:   Adafruit_GFX_128x64 DS3231 PinDetect SDFileSystem USBDevice mbed RealtimeMath MODSERIAL

Revision:
3:9aa7c37212b5
Parent:
2:a28cc676a454
--- a/main.cpp	Thu May 08 22:27:54 2014 +0000
+++ b/main.cpp	Fri May 09 00:04:44 2014 +0000
@@ -29,10 +29,10 @@
 
 // Logging vars
 FILE *rawlog;
-FILE *linlog;
-FILE *worldlog;
+//FILE *linlog;
+//FILE *worldlog;
 FILE *quatlog;
-FILE *gravlog;
+//FILE *gravlog;
 FILE *splitlog;
 
 // Timer
@@ -69,7 +69,7 @@
 
 // Forward declarations
 void die(int flash_rate_s);
-bool log_open(FILE *lf, char *path);
+FILE *log_open(char *path);
 void log_acceleration(VectorInt16 data);
 void log_close(FILE *lf);
 void mpu_init();
@@ -107,18 +107,18 @@
             OLED_PRINTPR("Starting capture.       ",0,0);
             
             // Start receiving data
-            PC_PRINTLN("Opening log file...");
-            if (!log_open(rawlog, RAW_ACCEL_FILE) ||
-                    !log_open(linlog, LIN_ACCEL_FILE) ||
-                    !log_open(worldlog, WORLD_ACCEL_FILE) ||
-                    !log_open(quatlog, QUAT_FILE) ||
-                    !log_open(gravlog, GRAV_FILE) ||
-                    !log_open(splitlog, SPLITS_FILE)) {
-                OLED_CLEAR();
-                OLED_PRINTP("ERROR: SD (retry)", 0, 50);
-                State = IDLE;
-                continue;
-            }
+//            PC_PRINTLN("Opening log file...");
+//            if (!(rawlog = log_open(RAW_ACCEL_FILE)) ||
+//                    !(linlog = log_open(LIN_ACCEL_FILE)) ||
+//                    !(worldlog = log_open(WORLD_ACCEL_FILE)) ||
+//                    !(quatlog = log_open(QUAT_FILE)) ||
+//                    !(gravlog = log_open(GRAV_FILE)) ||
+//                    !(splitlog = log_open(SPLITS_FILE)) ) {
+//                OLED_CLEAR();
+//                OLED_PRINTP("ERROR: SD (retry)", 0, 50);
+//                State = IDLE;
+//                continue;
+//            }
             
             PC_PRINTLN("Initializing MPU...");
             mpu_init();
@@ -130,14 +130,15 @@
                 get_data();
             OLED_PRINTPR("Finished capture.",0,0);
             
-            log_open(RAW_ACCEL_FILE) ||
-            log_open(LIN_ACCEL_FILE) ||
-            log_open(worldlog, WORLD_ACCEL_FILE) ||
-            log_open(quatlog, QUAT_FILE) ||
-            log_open(gravlog, GRAV_FILE) ||
-            log_open(splitlog, SPLITS_FILE)) {
+//            log_close(rawlog);
+//            log_close(linlog);
+//            log_close(worldlog);
+//            log_close(quatlog);
+//            log_close(gravlog);
+//            log_close(splitlog);
                 
             captureTime.stop();
+            captureTime.reset();
         }
     
         PC_PRINTLN("Idling...");
@@ -155,10 +156,10 @@
 }
 
 /* Returns false on failure, true otherwise */
-FILE *log_open(FILE *lf, char *path) {
-    lf = fopen(path, "a");
+FILE *log_open(char *path) {
+    FILE *lf = fopen(path, "a");
     if (lf == NULL) {
-        PC_PRINTLNF("SD card initialization error: Failed to open %s", LOG_FILE);
+        PC_PRINTLNF("SD card initialization error: Failed to open %s", path);
         return lf;
     }
     fprintf(lf, "---- BEGIN NEW DATASET ----\n");
@@ -231,15 +232,19 @@
   
         int currtime = captureTime.read_ms();
         
-        if (mov_avg(accel_buf))
-            fprintf(splitlog, "%d", currtime);
-        fprintf(rawlog, "%d,%d,%d,%d", currtime, aa.x, aa.y, aa.z);
-        fprintf(linlog, "%d,%d,%d,%d", currtime, aaReal.x, aaReal.y, aaReal.z);
-        fprintf(worldlog, "%d,%d,%d,%d", currtime, aaWorld.x, aaWorld.y, aaWorld.z);       
-        fprintf(quatlog, "%d,%f,%f,%f,%f", currtime, q.x, q.y, q.z, q.w);   
-        fprintf(gravlog, "%d,%f,%f,%f", currtime, gravity.x, gravity.y, gravity.z);
+        bool print_split = false;
+        if (mov_avg(accel_buf)) {
+//            fprintf(splitlog, "%d", currtime);
+            print_split = true;
+        }
+//        fprintf(rawlog, "%d,%d,%d,%d", currtime, aa.x, aa.y, aa.z);
+//        fprintf(linlog, "%d,%d,%d,%d", currtime, aaReal.x, aaReal.y, aaReal.z);
+//        fprintf(worldlog, "%d,%d,%d,%d", currtime, aaWorld.x, aaWorld.y, aaWorld.z);       
+//        fprintf(quatlog, "%d,%f,%f,%f,%f", currtime, q.x, q.y, q.z, q.w);   
+//        fprintf(gravlog, "%d,%f,%f,%f", currtime, gravity.x, gravity.y, gravity.z);
 
-        PC_PRINTF("%d, ", aaWorld.x); PC_PRINTF("%d, ", aaWorld.y); PC_PRINTLNF("%d", aaWorld.z);
+//        PC_PRINTF("%d, ", aa.x); PC_PRINTF("%d, ", aa.y); PC_PRINTLNF("%d, ", aa.z); 
+        if (print_split) PC_PRINTLNF("%d", currtime);
         
 //        OLED_SETCURS(0, 10); OLED_PRINTF("%d, ", aaWorld.x); OLED_PRINTF("%d, ", aaWorld.y); OLED_PRINTLNF("%d", aaWorld.z);
     }