Skip to content
Snippets Groups Projects
Commit 1cbc8756 authored by Lennard's avatar Lennard
Browse files

Switch to yaml config file for better comments

parent 2c2c66fa
No related branches found
Tags
No related merge requests found
{
"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
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
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")))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment