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

sdCardReader.h

Committer:
DVLevine
Date:
2018-07-11
Revision:
13:91350588d530
Parent:
12:c09a50d9469a

File content as of revision 13:91350588d530:

#include "mbed.h"
#include "SDBlockDevice.h"
#include "iostream"
#include "stdio.h"
#include "string"
#include "vector"
#include <errno.h>
#include "HeapBlockDevice.h"
#include "platform/CircularBuffer.h"

//For saving funny int formats
#include <inttypes.h>

// File systems
//#include "LittleFileSystem.h"
#include "FATFileSystem.h"

class SDCardReader:public SDBlockDevice{
    public:
        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){
    m_fs = new FATFileSystem("fs");
  };
        	
  	FILE* openFile(string filename);
	void closeFile(FILE* fileToClose);

	int writeDataPoint(FILE* theFile, int index, uint32_t timestamp, vector<uint16_t> data);
	int eraseData();

	int fullWriteProcedure(string filename,vector<int> indexArr, vector<uint32_t> timeArr, vector<vector <uint16_t> > allData);
		
	void mountFileSystem();
	void unmountFileSystem();


	//Read and increment for keeping track of SDcard files
	//Each file gets a new number
	int readAndIncrement(string filename); 

	
    private:

	void write_uint16_t(uint16_t data, bool endline, FILE* fileToUse);
	void write_uint32_t(uint32_t data, bool endline, FILE* fileToUse);

	// Define file system
        FATFileSystem* m_fs;
};