Swimate V2 without RTOS code
Dependencies: Adafruit_GFX_128x64 DS3231 PinDetect SDFileSystem USBDevice mbed RealtimeMath MODSERIAL
Diff: main.cpp
- 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); }