From 1cbc87560b2d85295ac6192281d149ac32066331 Mon Sep 17 00:00:00 2001
From: Lennard <27106448+SirWalross@users.noreply.github.com>
Date: Fri, 20 May 2022 19:05:46 +0200
Subject: [PATCH] Switch to yaml config file for better comments

---
 config.json | 20 --------------------
 config.yml  | 19 +++++++++++++++++++
 main.py     | 15 ++++++++-------
 3 files changed, 27 insertions(+), 27 deletions(-)
 delete mode 100644 config.json
 create mode 100644 config.yml

diff --git a/config.json b/config.json
deleted file mode 100644
index 5362520..0000000
--- a/config.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-    "DataLogger": {
-        "backupCount": 28,
-        "when": "h",
-        "interval": 25,
-        "filename": "data",
-        "levels": ["INFO", "INFO"]
-    },
-    "InfoLogger": {
-        "backupCount": 10,
-        "maxBytes": 1000000,
-        "filename": "log",
-        "levels": ["INFO", "WARNING"]
-    },
-    "Data": {
-       "factors": [1, 1, 1, 1],
-       "delta_time": 30,
-       "smoothing": false 
-    }
-}
\ No newline at end of file
diff --git a/config.yml b/config.yml
new file mode 100644
index 0000000..1c5024d
--- /dev/null
+++ b/config.yml
@@ -0,0 +1,19 @@
+DataLogger:
+    backupCount: 28 # number of datalogs to keep
+    filename: data # filename for datalogs
+    levels: # log level for outputting to file and to stdout respectivly
+        - INFO
+        - INFO
+
+InfoLogger:
+    backupCount: 10 # number of logs to keep
+    maxBytes: 1000000 # size of single log
+    filename: log # filename for logs
+    levels: # log level for outputting to file and to stdout respectivly
+        - INFO
+        - WARNING
+
+Data:
+    factors: [1, 1, 1, 0.9] # factors for the 4 dms
+    delta_time: 30 # time between logging data
+    smoothing: false # wether to smoothe the logged data
diff --git a/main.py b/main.py
index c3b0e9d..0d38a1f 100644
--- a/main.py
+++ b/main.py
@@ -1,6 +1,5 @@
-import configparser
 import datetime
-import json
+import yaml
 import time
 from typing import Any, List, Optional
 import serial
@@ -95,8 +94,8 @@ def setup_loggers(config: Any) -> None:
         TimedRotatingFileHandlerWithHeader(
             header=f"Timestamp,{','.join([f'dms{i+1}' for i in range(4)])},{','.join([f'temp{i+1}' for i in range(4)])},n",
             filename=f"{Path(__file__).parent}/data/{config['DataLogger']['filename']}",
-            when=config["DataLogger"]["when"],
-            interval=config["DataLogger"]["interval"],
+            when='h',
+            interval=25,
             backupCount=config["DataLogger"]["backupCount"],
         )
     )
@@ -140,7 +139,7 @@ def main(config: Any) -> None:
     offsets = np.hstack((get_offset(), np.zeros((4,))))
 
     logger.info(
-        f"Factors: {', '.join(f'{factor:.3f}' for factor in factors)}, Offset: {', '.join(f'{offset:.3f}' for offset in offsets[:4])}"
+        f"Factors: {', '.join(f'{factor:.3f}' for factor in factors[:4])}, Offset: {', '.join(f'{offset:.3f}' for offset in offsets[:4])}"
     )
 
     with serial.Serial("/dev/ttyACM0", 9600, timeout=3) as con1, serial.Serial("/dev/ttyACM1", 9600, timeout=3) as con2:
@@ -154,7 +153,6 @@ def main(config: Any) -> None:
             con1.write(1)
             con2.write(2)
 
-            # read data
             try:
                 new_data = data.copy()
 
@@ -162,6 +160,7 @@ def main(config: Any) -> None:
                 off1 = 0 if int(convert(con1.readline())) == 1.0 else 4
                 off2 = 4 if int(convert(con2.readline())) == 2.0 else 0
 
+                # read data
                 for i in range(4):
                     recv1 = con1.readline()
                     recv2 = con2.readline()
@@ -174,7 +173,9 @@ def main(config: Any) -> None:
             except (TypeError, ValueError):
                 # may occur if no data was read over serial
                 logger.info(f"Didn't receive data from arduino, off1: {off1}, off2: {off2}, recv1: {recv1}, recv2: {recv2}")
+
             if time.time() - last_write > delta_time:
+                # write data
                 data_logger.info(",".join([f"{value/n * factors + offsets:.5f}" for value in data]) + f",{n}")
                 logger.debug("Wrote data")
                 n = 0
@@ -187,4 +188,4 @@ def main(config: Any) -> None:
 
 
 if __name__ == "__main__":
-    main(json.load(open(f"{Path(__file__).parent}/config.json")))
+    main(yaml.safe_load(open(f"{Path(__file__).parent}/config.yml")))
-- 
GitLab