2018 revision to classic DataBus AVC code.

Dependencies:   LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell

Revision:
29:cb2f55fbfe9c
Parent:
24:a7f92dfc5310
Child:
30:ed791f1f7f7d
diff -r eab1b0680bb2 -r cb2f55fbfe9c Logger.cpp
--- a/Logger.cpp	Sat Dec 22 06:56:55 2018 +0000
+++ b/Logger.cpp	Sat Dec 22 20:28:52 2018 +0000
@@ -2,37 +2,43 @@
 
 Logger::Logger(const char *file) {
     _file = file;
+    _fp = NULL;
+}
+
+
+void Logger::start() {
+    if (_fp == NULL) _fp = fopen(_file, "a");
+}
+
+
+void Logger::stop() {
+    if (_fp && fclose(_fp) != EOF) {
+        _fp = NULL;
+    }
+}
+
+
+bool Logger::enabled() {
+    return (_fp != NULL);
 }
 
 
 void Logger::log_gps(GpsData gd) {
-    _open();
-    fprintf(_fp, "G,%3.7f,%3.7f,%3.1f,%2.1f,%2.1f,%d\n",
-        gd.latitude, 
-        gd.longitude,
-        gd.course,
-        gd.speed,
-        gd.hdop,
-        gd.svcount
-    );
-    _close();
+    if (enabled()) {
+        fprintf(_fp, "G,%llu,%3.9f,%3.9f,%3.1f,%2.1f,%2.1f,%d\n",
+            Kernel::get_ms_count(),
+            gd.latitude, 
+            gd.longitude,
+            gd.course,
+            gd.speed,
+            gd.hdop,
+            gd.svcount
+        );
+    }
 }
 
 
 void Logger::log_estimation() {
-    _open();
-    
-    _close();
-}
-
-
-void Logger::_open() {
-    _fp = fopen(_file, "a");
-}
-
-
-void Logger::_close() {
-    if (_fp) {
-        fclose(_fp);
+    if (enabled()) {
     }
 }
\ No newline at end of file