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
sdCardReader.h@13:91350588d530, 2018-07-11 (annotated)
- 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?
User | Revision | Line number | New 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 | }; |