Swimate V2 without RTOS code
Dependencies: Adafruit_GFX_128x64 DS3231 PinDetect SDFileSystem USBDevice mbed RealtimeMath MODSERIAL
log_data.cpp@8:8430a5c0914c, 2014-05-20 (annotated)
- Committer:
- ellingjp
- Date:
- Tue May 20 00:43:55 2014 +0000
- Revision:
- 8:8430a5c0914c
- Child:
- 9:a711b5b34d73
Working logging and split time detection
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ellingjp | 8:8430a5c0914c | 1 | #include "mbed.h" |
ellingjp | 8:8430a5c0914c | 2 | #include "log_data.h" |
ellingjp | 8:8430a5c0914c | 3 | #include "SDFileSystem.h" |
ellingjp | 8:8430a5c0914c | 4 | #include "helper_3dmath.h" |
ellingjp | 8:8430a5c0914c | 5 | #include "debug.h" |
ellingjp | 8:8430a5c0914c | 6 | |
ellingjp | 8:8430a5c0914c | 7 | // SD Card |
ellingjp | 8:8430a5c0914c | 8 | SDFileSystem sd(P0_21, P0_22, P1_15, P1_19, "sd"); // MOSI, MISO, SCLK, SSEL SPI1 |
ellingjp | 8:8430a5c0914c | 9 | |
ellingjp | 8:8430a5c0914c | 10 | // Logging vars |
ellingjp | 8:8430a5c0914c | 11 | FILE *logFile; |
ellingjp | 8:8430a5c0914c | 12 | |
ellingjp | 8:8430a5c0914c | 13 | /* Returns true if logging was successfully initialized, false otherwise */ |
ellingjp | 8:8430a5c0914c | 14 | bool log_init() { |
ellingjp | 8:8430a5c0914c | 15 | logFile = fopen(LOG_FILE, "a"); |
ellingjp | 8:8430a5c0914c | 16 | if (logFile == NULL) { |
ellingjp | 8:8430a5c0914c | 17 | PC_PRINTLNF("SD card initialization error: Failed to open %s", LOG_FILE); |
ellingjp | 8:8430a5c0914c | 18 | DIE(SD_ERROR_RATE); |
ellingjp | 8:8430a5c0914c | 19 | return false; |
ellingjp | 8:8430a5c0914c | 20 | } |
ellingjp | 8:8430a5c0914c | 21 | fprintf(logFile, "---- BEGIN NEW DATASET ----\n"); |
ellingjp | 8:8430a5c0914c | 22 | return true; |
ellingjp | 8:8430a5c0914c | 23 | } |
ellingjp | 8:8430a5c0914c | 24 | |
ellingjp | 8:8430a5c0914c | 25 | /* Returns true if data was successfully logged, false otherwise |
ellingjp | 8:8430a5c0914c | 26 | Used for logging acceleration data */ |
ellingjp | 8:8430a5c0914c | 27 | bool log_data(VectorInt16 *data) { |
ellingjp | 8:8430a5c0914c | 28 | if (logFile != NULL) { |
ellingjp | 8:8430a5c0914c | 29 | fprintf(logFile, "%d, %d, %d\n", data->x, data->y, data->z); |
ellingjp | 8:8430a5c0914c | 30 | return true; |
ellingjp | 8:8430a5c0914c | 31 | } |
ellingjp | 8:8430a5c0914c | 32 | |
ellingjp | 8:8430a5c0914c | 33 | return false; |
ellingjp | 8:8430a5c0914c | 34 | } |
ellingjp | 8:8430a5c0914c | 35 | |
ellingjp | 8:8430a5c0914c | 36 | /* Returns true if data was successfully logged, false otherwise |
ellingjp | 8:8430a5c0914c | 37 | Used for logging split times */ |
ellingjp | 8:8430a5c0914c | 38 | bool log_data(uint16_t data) { |
ellingjp | 8:8430a5c0914c | 39 | |
ellingjp | 8:8430a5c0914c | 40 | } |
ellingjp | 8:8430a5c0914c | 41 | |
ellingjp | 8:8430a5c0914c | 42 | /* Returns true if logging was successfully closed, false otherwise */ |
ellingjp | 8:8430a5c0914c | 43 | bool log_close() { |
ellingjp | 8:8430a5c0914c | 44 | if (logFile != NULL) |
ellingjp | 8:8430a5c0914c | 45 | return fclose(logFile) == 0; |
ellingjp | 8:8430a5c0914c | 46 | |
ellingjp | 8:8430a5c0914c | 47 | return false; |
ellingjp | 8:8430a5c0914c | 48 | } |