diff --git a/config.json b/config.json deleted file mode 100644 index 53625200ad65d61f6e45d54230973efddc33467e..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..1c5024d3cd6b60da6cba784f6f722cc2afdf43df --- /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 c3b0e9d525ef5ea2b7a573d35fbe9e1a800e1daa..0d38a1f1ea750108f847266597483d2a5e5c7101 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")))