A set of data recording functions to locally store data in a circular buffer, with functions for offloading to an SD Card when convenient. dataRecorderr.h shows accessible functions to the main program - all direct SD operations are abstracted away by the library. When using this library, #include dataRecorder.h

Dependencies:   sd-driver_compatible_with_MAX32630FTHR

Fork of CircularBufferSDCardLib by Daniel Levine

Committer:
DVLevine
Date:
Thu Apr 05 04:08:32 2018 -0400
Revision:
5:0a4ff027086c
Parent:
4:fe6d2823b7cb
Child:
12:c09a50d9469a
bugs ironed out. Uses circular buffer and saves information.
Some last bug where last data of row (third col) always shows up as some weird number. Fixing now...

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DVLevine 0:ebe71c7e7854 1 #include "mbed.h"
DVLevine 0:ebe71c7e7854 2 #include "SDBlockDevice.h"
DVLevine 0:ebe71c7e7854 3 #include "iostream"
DVLevine 0:ebe71c7e7854 4 #include "stdio.h"
DVLevine 0:ebe71c7e7854 5 #include "string"
DVLevine 0:ebe71c7e7854 6 #include "vector"
DVLevine 0:ebe71c7e7854 7 #include <errno.h>
DVLevine 0:ebe71c7e7854 8 #include "HeapBlockDevice.h"
DVLevine 1:45627bbdeb69 9 #include "platform/CircularBuffer.h"
DVLevine 0:ebe71c7e7854 10
DVLevine 4:fe6d2823b7cb 11 //For saving funny int formats
DVLevine 4:fe6d2823b7cb 12 #include <inttypes.h>
DVLevine 4:fe6d2823b7cb 13
DVLevine 0:ebe71c7e7854 14 // File systems
DVLevine 0:ebe71c7e7854 15 //#include "LittleFileSystem.h"
DVLevine 0:ebe71c7e7854 16 #include "FATFileSystem.h"
DVLevine 0:ebe71c7e7854 17
DVLevine 3:df8fb1b5d868 18 class SDCardReader:public SDBlockDevice{
DVLevine 0:ebe71c7e7854 19 public:
DVLevine 3:df8fb1b5d868 20 SDCardReader(PinName a=MBED_CONF_SD_SPI_MOSI, PinName b=MBED_CONF_SD_SPI_MISO, PinName c=MBED_CONF_SD_SPI_CLK, PinName d=MBED_CONF_SD_SPI_CS):SDBlockDevice(a, b, c, d){
DVLevine 3:df8fb1b5d868 21 m_fs = new FATFileSystem("fs");
DVLevine 3:df8fb1b5d868 22 };
DVLevine 1:45627bbdeb69 23
DVLevine 1:45627bbdeb69 24 FILE* openFile(string filename);
DVLevine 1:45627bbdeb69 25 void closeFile(FILE* fileToClose);
DVLevine 1:45627bbdeb69 26
DVLevine 5:0a4ff027086c 27 int writeDataPoint(FILE* theFile, int index, uint32_t timestamp, vector<uint16_t> data);
DVLevine 1:45627bbdeb69 28 int eraseData();
DVLevine 1:45627bbdeb69 29
DVLevine 5:0a4ff027086c 30 int fullWriteProcedure(string filename,vector<int> indexArr, vector<uint32_t> timeArr, vector<vector <uint16_t> > allData);
DVLevine 1:45627bbdeb69 31
DVLevine 1:45627bbdeb69 32 void mountFileSystem();
DVLevine 1:45627bbdeb69 33 void unmountFileSystem();
DVLevine 1:45627bbdeb69 34
DVLevine 0:ebe71c7e7854 35 private:
DVLevine 1:45627bbdeb69 36
DVLevine 1:45627bbdeb69 37 void write_uint16_t(uint16_t data, bool endline, FILE* fileToUse);
DVLevine 1:45627bbdeb69 38 void write_uint32_t(uint32_t data, bool endline, FILE* fileToUse);
DVLevine 1:45627bbdeb69 39
DVLevine 1:45627bbdeb69 40 // Define file system
DVLevine 3:df8fb1b5d868 41 FATFileSystem* m_fs;
DVLevine 0:ebe71c7e7854 42 };