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:
Wed Jul 11 07:06:04 2018 -0400
Revision:
13:91350588d530
Parent:
12:c09a50d9469a
added /fs/ to be able to actually read and write to text file denoting log number

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 12:c09a50d9469a 34
DVLevine 12:c09a50d9469a 35
DVLevine 12:c09a50d9469a 36 //Read and increment for keeping track of SDcard files
DVLevine 12:c09a50d9469a 37 //Each file gets a new number
DVLevine 12:c09a50d9469a 38 int readAndIncrement(string filename);
DVLevine 12:c09a50d9469a 39
DVLevine 1:45627bbdeb69 40
DVLevine 0:ebe71c7e7854 41 private:
DVLevine 1:45627bbdeb69 42
DVLevine 1:45627bbdeb69 43 void write_uint16_t(uint16_t data, bool endline, FILE* fileToUse);
DVLevine 1:45627bbdeb69 44 void write_uint32_t(uint32_t data, bool endline, FILE* fileToUse);
DVLevine 1:45627bbdeb69 45
DVLevine 1:45627bbdeb69 46 // Define file system
DVLevine 3:df8fb1b5d868 47 FATFileSystem* m_fs;
DVLevine 0:ebe71c7e7854 48 };