SDFileSystem, slightly modified for the ExoController
Dependents: Data-Management-Honka
Fork of SDFileSystem_HelloWorld by
Diff: SDFile.cpp
- Revision:
- 2:ec4d7e5fa68e
- Child:
- 3:8f5903a77a13
diff -r 5acf78b01da3 -r ec4d7e5fa68e SDFile.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SDFile.cpp Wed Dec 17 21:43:42 2014 +0000 @@ -0,0 +1,45 @@ +#include "mbed.h" +#include "SDFileSystem.h" +#include "SDFile.h" +#include "errno.h" + + +SDFile::SDFile(string path, string filename) { + //Creates the necessary directory + char *a=new char[path.size()+1]; + a[path.size()]=0; + memcpy(a,path.c_str(),path.size()); + int dir = mkdir((const char *)a, 0777); + //Calculates the full filename, then creates the file + std::string fullname = path + filename; + + char *b=new char[filename.size()+1]; + b[filename.size()]=0; + memcpy(b,filename.c_str(),filename.size()); + fp = fopen((const char*)b, "w+"); + + +} + +//Reads from the file pointed to by FP to an array +int* SDFile::read(int *array, int length) { + + //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; +} + +//writes from an array to the file pointed to by fp +void SDFile::write(int *array, int length) { + 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]); +} + \ No newline at end of file