SDFileSystem, slightly modified for the ExoController

Dependencies:   SDFileSystem

Dependents:   Data-Management-Honka

Fork of SDFileSystem_HelloWorld by Bradley Perry

Revision:
2:ec4d7e5fa68e
Child:
3:8f5903a77a13
--- /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