SDFileSystem, slightly modified for the ExoController
Dependents: Data-Management-Honka
Fork of SDFileSystem_HelloWorld by
SDFile.cpp
- Committer:
- mzling
- Date:
- 2015-02-04
- Revision:
- 3:8f5903a77a13
- Parent:
- 2:ec4d7e5fa68e
- Child:
- 4:99e9c9e0dfb0
File content as of revision 3:8f5903a77a13:
#include "mbed.h" #include "SDFileSystem.h" #include "SDFile.h" #include "errno.h" SDFile::SDFile(string path, string filename) { //Creates the necessary directory printf("Creating SDFile object\r\n"); char *a = new char[path.size()+1]; a[path.size()] = 0; memcpy(a,path.c_str(),path.size()); //Calculates the full filename, then creates the file std::string fullname = path + filename; char *b = new char[fullname.size()+1]; b[fullname.size()] = 0; memcpy(b,fullname.c_str(),fullname.size()); _fp = fopen((const char*)b, "w+"); printf("fp is %d\r\n", _fp); } /** * This function reads bytes from the SDFile object. * @author Michael Ling * @param length The number of bytes to read * @param array The int array the bytes are copied to * @date 2/2/2015 */ int* SDFile::read(int length, int *array) { //shift to the end of the file and go back accounting for the commas, spaces, \n, and \r (6 places per data) fseek(_fp, -6*length, SEEK_END); //cycle through the length of the vector and read the values. for(int i = 0; i < length; i++) { fscanf(_fp, "%x, ", &array[i]); } return array; } /** * This function writes from an array to the file pointed to by fp * @param length length of data to write * @param array array to draw written data from * @author Michael Ling * @date 2/2/2015 */ void SDFile::write(int length, int *array) { fseek(_fp, 0, SEEK_SET); for(int i = 0; i < length-1; i++) { fprintf(_fp, "%04x, ", array[i]); } fprintf(_fp, "%04x\r\n", array[length-1]); }