OlliTut/measurement.py
2021-08-10 23:51:50 +02:00

32 lines
1.1 KiB
Python

import os
class Measurement:
def __init__(self, name, path=None, comment=None):
self.name = name
self.path = os.path.join(path or "./meas_values", self.name)
os.makedirs(self.path)
self.save_version_text(comment)
self.data_files = {} # sensor_name: file_handler
def append_data(self, sensor_name, data):
"""
Save data from a sensor. Write it into the corresponding file.
TODO: file size limit, zip?
data: list of tuples: (timestamp, value)
"""
if sensor_name not in self.data_files:
self.data_files[sensor_name] = open(os.path.join(self.path, f"{sensor_name}_data.csv"), "w")
for timestamp, value in zip(data[0], data[1]):
self.data_files[sensor_name].write(f"{timestamp.isoformat()}, {timestamp.timestamp()}, {value}\n")
def save_version_text(self, comment):
with open(os.path.join(self.path, "version.txt"), "w") as file:
file.write("Version 0.1\n")
if comment:
file.write(comment + "\n")
file.write("More descriptions of relevant parameters\n")