32 lines
1.1 KiB
Python
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")
|
|
|