SDFileSystem, slightly modified for the ExoController
Dependents: Data-Management-Honka
Fork of SDFileSystem_HelloWorld by
SDFile.cpp
- Committer:
- mzling
- Date:
- 2014-12-17
- Revision:
- 2:ec4d7e5fa68e
- Child:
- 3:8f5903a77a13
File content as of revision 2:ec4d7e5fa68e:
#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]); }