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@5:0a4ff027086c, 2018-04-05 (annotated)
- 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?
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 |
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 | }; |