K64F based data logger for GPS (ublox MAX M8Q) & 6 Axis Sensor (FXOS8700Q) - Outputs to SD + UDP - Uses FRDM K64F + ublox "Cellular and positioning shield" (3G version)
Dependencies: MAX_M8Q_Capture EthernetInterface FXOS8700Q SDFileSystem eCompass_FPU_Lib mbed-rtos mbed
sd.cpp@0:77857a36b4ff, 2015-03-27 (annotated)
- Committer:
- rlinnmoran
- Date:
- Fri Mar 27 08:35:29 2015 +0000
- Revision:
- 0:77857a36b4ff
- Child:
- 2:bcd60a69583f
Initial version.; ; Working:; - Capture GPS ; - Capture 6 Axis; - Write to CVS on SD (crude); ; Issues:; - Update freq slow (5s); - No UDP; - Improve SD functions; - Clean MetaData class code + docs; - No status led, start/stop button; - Param for printf's
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rlinnmoran | 0:77857a36b4ff | 1 | #include "mbed.h" |
rlinnmoran | 0:77857a36b4ff | 2 | #include "SDFileSystem.h" |
rlinnmoran | 0:77857a36b4ff | 3 | //#include "main.h" |
rlinnmoran | 0:77857a36b4ff | 4 | |
rlinnmoran | 0:77857a36b4ff | 5 | int sd_append(char*); |
rlinnmoran | 0:77857a36b4ff | 6 | |
rlinnmoran | 0:77857a36b4ff | 7 | SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS |
rlinnmoran | 0:77857a36b4ff | 8 | FILE *fp; |
rlinnmoran | 0:77857a36b4ff | 9 | //Serial pc(USBTX, USBRX); |
rlinnmoran | 0:77857a36b4ff | 10 | char buffer[1024]; |
rlinnmoran | 0:77857a36b4ff | 11 | |
rlinnmoran | 0:77857a36b4ff | 12 | double utc = 123456.34; |
rlinnmoran | 0:77857a36b4ff | 13 | double mg = 123.4; |
rlinnmoran | 0:77857a36b4ff | 14 | double la = 12345.67; |
rlinnmoran | 0:77857a36b4ff | 15 | |
rlinnmoran | 0:77857a36b4ff | 16 | int sd_append(char* CSVOutput) { |
rlinnmoran | 0:77857a36b4ff | 17 | printf("Initializing \n"); |
rlinnmoran | 0:77857a36b4ff | 18 | wait(2); |
rlinnmoran | 0:77857a36b4ff | 19 | |
rlinnmoran | 0:77857a36b4ff | 20 | fp = fopen("/sd/metaData.csv", "r"); |
rlinnmoran | 0:77857a36b4ff | 21 | if (fp != NULL) { |
rlinnmoran | 0:77857a36b4ff | 22 | fclose(fp); |
rlinnmoran | 0:77857a36b4ff | 23 | //remove("/sd/hello.txt"); |
rlinnmoran | 0:77857a36b4ff | 24 | printf("Could not open file\n"); |
rlinnmoran | 0:77857a36b4ff | 25 | } |
rlinnmoran | 0:77857a36b4ff | 26 | |
rlinnmoran | 0:77857a36b4ff | 27 | |
rlinnmoran | 0:77857a36b4ff | 28 | printf("\r\nAppending data to the sd card \r\n"); |
rlinnmoran | 0:77857a36b4ff | 29 | fp = fopen("/sd/metaData.csv", "a"); |
rlinnmoran | 0:77857a36b4ff | 30 | if (fp == NULL) { |
rlinnmoran | 0:77857a36b4ff | 31 | printf("Unable to write the file \r\n"); |
rlinnmoran | 0:77857a36b4ff | 32 | } else { |
rlinnmoran | 0:77857a36b4ff | 33 | fprintf(fp, "%s", CSVOutput); |
rlinnmoran | 0:77857a36b4ff | 34 | fclose(fp); |
rlinnmoran | 0:77857a36b4ff | 35 | printf("File successfully written! \r\n"); |
rlinnmoran | 0:77857a36b4ff | 36 | } |
rlinnmoran | 0:77857a36b4ff | 37 | |
rlinnmoran | 0:77857a36b4ff | 38 | /* |
rlinnmoran | 0:77857a36b4ff | 39 | printf("\nReading data from the SD card. \r\n"); |
rlinnmoran | 0:77857a36b4ff | 40 | fp = fopen("/sd/metaData.csv", "r"); |
rlinnmoran | 0:77857a36b4ff | 41 | if (fp != NULL) { |
rlinnmoran | 0:77857a36b4ff | 42 | int size = fread(buffer, sizeof(char), 1024, fp); |
rlinnmoran | 0:77857a36b4ff | 43 | printf("Number of data read: %d, text from hello.txt file: %s \r\n", size, buffer); |
rlinnmoran | 0:77857a36b4ff | 44 | fclose(fp); |
rlinnmoran | 0:77857a36b4ff | 45 | } |
rlinnmoran | 0:77857a36b4ff | 46 | //printf("End of Lab 4. \n"); |
rlinnmoran | 0:77857a36b4ff | 47 | */ |
rlinnmoran | 0:77857a36b4ff | 48 | return 0; |
rlinnmoran | 0:77857a36b4ff | 49 | } |