Log data to a micro SD card.

Dependencies:   SDFileSystem mbed

Revision:
1:c5e56e2580bf
Parent:
0:56d642e39289
diff -r 56d642e39289 -r c5e56e2580bf main.cpp
--- a/main.cpp	Wed Apr 22 06:57:07 2015 +0000
+++ b/main.cpp	Mon May 04 07:10:55 2015 +0000
@@ -1,63 +1,42 @@
 #include "mbed.h"
-#include "SDFileSystem.h"
+#include "Log.h"
 
 DigitalIn mybutton(USER_BUTTON);
 Serial pc(SERIAL_TX, SERIAL_RX);
 
-SDFileSystem sd(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, "sd");
-FILE *fp;
+Log logger(SERIAL_TX, SERIAL_RX, SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, "sd");
 
 Ticker timer;
-static double t;    //時間t
-
-//SDカード内からログ番号の最大値を取得する関数
-int find_last() {
-    int i, n = 0;
-    DIR *dp;
-    struct dirent *dirst;
-    dp = opendir("/sd/");
-    if (!dp){
-        printf("Could not open directry\n");
-        return -1;
-    }
-    while((dirst = readdir(dp)) != NULL) {
-        if(sscanf(dirst->d_name, "log%03d.csv", &i) == 1 && i>n) {
-            n = i;
-        }
-    }
-    closedir(dp);
-    return n;
-}
-
-void Int_Timer() {
-    //ボタンが押されているかどうかをログする
-    fprintf(fp, "%.1f,%d\n", t, (int)mybutton);
-    t += 0.1;
-}
+void Int_Timer();
+static double t;
 
 int main() {
-    char filename[15];
-    int n = find_last();
-    if(n < 0) return 0;
-    
-    //ログ番号を+1してファイルを新規作成
-    //ファイル名は"logXXX.csv"
-    sprintf(filename, "/sd/log%03d.csv", n+1);
-    fp = fopen(filename, "w");
-    
-    printf("Start writing!\n");
-    fprintf(fp, "time,x\n");
-    
-    //0.1s間隔のタイマー割り込み
+    /** ログのタイトル行 **/
+    char* str="time,button\n";
+    if(!(logger.initialize_sdlog(str))){
+        return 0;
+    }
+
+//    printf("Start!\n");
     timer.attach(&Int_Timer, 0.1);
     
     t = 0.0;
-    //10.0sで終了
-    while(t < 10.0){
+    while(1){
+        if(t > 10.0){
+            timer.detach();
+            break;
+        }
     }
 
-    timer.detach();
-    fclose(fp);
+    logger.close();
     printf("Finish!\n");
 }
- 
\ No newline at end of file
+
+
+void Int_Timer() {
+    char buf[20];
+    /** ログをとりたい値を記入 **/
+    sprintf(buf, "%.1f,%d\n", t, (int)mybutton);
+    logger.puts(buf);
+    t += 0.1;
+}
\ No newline at end of file