Swimate V2 without RTOS code

Dependencies:   Adafruit_GFX_128x64 DS3231 PinDetect SDFileSystem USBDevice mbed RealtimeMath MODSERIAL

Committer:
paulbartell
Date:
Wed May 28 22:56:25 2014 +0000
Revision:
13:227a6cfd2097
Parent:
12:bf282a100fbc
Child:
17:fb8415091770
Child:
18:06b718f8e6fd
Started bluetooth functionality.

Who changed what in which revision?

UserRevisionLine numberNew 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"
paulbartell 13:227a6cfd2097 6 #include "pins.h"
ellingjp 8:8430a5c0914c 7
ellingjp 8:8430a5c0914c 8 // SD Card
ellingjp 8:8430a5c0914c 9 SDFileSystem sd(P0_21, P0_22, P1_15, P1_19, "sd"); // MOSI, MISO, SCLK, SSEL SPI1
ellingjp 8:8430a5c0914c 10
paulbartell 13:227a6cfd2097 11
ellingjp 12:bf282a100fbc 12
ellingjp 8:8430a5c0914c 13 // Logging vars
ellingjp 9:a711b5b34d73 14 FILE *accelFile;
ellingjp 9:a711b5b34d73 15 FILE *splitFile;
ellingjp 8:8430a5c0914c 16
ellingjp 8:8430a5c0914c 17 /* Returns true if logging was successfully initialized, false otherwise */
paulbartell 13:227a6cfd2097 18 bool log_init(char* timestamp) {
paulbartell 13:227a6cfd2097 19 char dataLog[33] = "/sd/00-00-0000 00:00:00 data.log";
paulbartell 13:227a6cfd2097 20 if(true) // TODO: checkIf RTC is initialized properly
paulbartell 13:227a6cfd2097 21 {
paulbartell 13:227a6cfd2097 22 strncpy(&dataLog[4],timestamp,19);
paulbartell 13:227a6cfd2097 23 }
paulbartell 13:227a6cfd2097 24 accelFile = fopen(dataLog, "a");
ellingjp 9:a711b5b34d73 25 if (accelFile == NULL) {
ellingjp 9:a711b5b34d73 26 PC_PRINTLNF("SD card initialization error: Failed to open %s", ACCEL_LOG);
ellingjp 8:8430a5c0914c 27 DIE(SD_ERROR_RATE);
ellingjp 8:8430a5c0914c 28 return false;
ellingjp 8:8430a5c0914c 29 }
ellingjp 9:a711b5b34d73 30
ellingjp 9:a711b5b34d73 31 splitFile = fopen(SPLIT_LOG, "a");
ellingjp 9:a711b5b34d73 32 if (splitFile == NULL) {
ellingjp 9:a711b5b34d73 33 PC_PRINTLNF("SD card initialization error: Failed to open %s", SPLIT_LOG);
ellingjp 9:a711b5b34d73 34 DIE(SD_ERROR_RATE);
ellingjp 9:a711b5b34d73 35 return false;
ellingjp 9:a711b5b34d73 36 }
ellingjp 9:a711b5b34d73 37 fprintf(accelFile, "---- BEGIN NEW DATASET ----\n");
ellingjp 9:a711b5b34d73 38 fprintf(splitFile, "---- BEGIN NEW DATASET ----\n");
ellingjp 8:8430a5c0914c 39 return true;
ellingjp 8:8430a5c0914c 40 }
ellingjp 8:8430a5c0914c 41
ellingjp 8:8430a5c0914c 42 /* Returns true if data was successfully logged, false otherwise
ellingjp 8:8430a5c0914c 43 Used for logging acceleration data */
ellingjp 8:8430a5c0914c 44 bool log_data(VectorInt16 *data) {
ellingjp 9:a711b5b34d73 45 if (accelFile != NULL) {
ellingjp 9:a711b5b34d73 46 fprintf(accelFile, "%d, %d, %d\n", data->x, data->y, data->z);
ellingjp 8:8430a5c0914c 47 return true;
ellingjp 8:8430a5c0914c 48 }
ellingjp 8:8430a5c0914c 49
ellingjp 8:8430a5c0914c 50 return false;
ellingjp 8:8430a5c0914c 51 }
ellingjp 8:8430a5c0914c 52
ellingjp 8:8430a5c0914c 53 /* Returns true if data was successfully logged, false otherwise
ellingjp 8:8430a5c0914c 54 Used for logging split times */
ellingjp 8:8430a5c0914c 55 bool log_data(uint16_t data) {
ellingjp 9:a711b5b34d73 56 if (splitFile != NULL) {
ellingjp 9:a711b5b34d73 57 fprintf(splitFile, "%d\n", data);
ellingjp 9:a711b5b34d73 58 return true;
ellingjp 9:a711b5b34d73 59 }
ellingjp 8:8430a5c0914c 60
ellingjp 9:a711b5b34d73 61 return false;
ellingjp 8:8430a5c0914c 62 }
ellingjp 8:8430a5c0914c 63
ellingjp 8:8430a5c0914c 64 /* Returns true if logging was successfully closed, false otherwise */
ellingjp 8:8430a5c0914c 65 bool log_close() {
ellingjp 9:a711b5b34d73 66 // if (accelFile != NULL && splitFile != NULL)
ellingjp 9:a711b5b34d73 67 // return ( (fclose(accelFile) == 0) && (fclose(splitFile) == 0) );
ellingjp 8:8430a5c0914c 68
ellingjp 9:a711b5b34d73 69 fclose(accelFile);
ellingjp 9:a711b5b34d73 70 fclose(splitFile);
ellingjp 9:a711b5b34d73 71
ellingjp 9:a711b5b34d73 72 return true;
ellingjp 8:8430a5c0914c 73 }