Remove the unused tc_trace logging
trace_tc (tasks/tracer.py's TracerTask wired to a generic Tracer instance) was logging to tc_trace.mat, but its var_list was empty, so it only ever wrote a bare tick counter - no actual tc data, despite the name. Drop the dead plumbing and the now-unused tracer.py module entirely; the real, populated brewpi.mat logging (sensor/heater/tc data, built directly inside TracerTask) is untouched. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DkkuG48uHFCGKe6dPSERFk
This commit is contained in:
+1
-6
@@ -14,7 +14,6 @@ from components.actor import HeaterFactory, StirrerFactory
|
||||
from components.sud import Sud
|
||||
from components.sud_forecast import SudForecastEstimator
|
||||
from tasks import TaskManager, TempSensorTask, HeaterTask, PotTask, TcTask, StirrerTask, TracerTask, SudTask, SudLogTask
|
||||
from tracer import Tracer
|
||||
|
||||
import argparse as ap
|
||||
|
||||
@@ -92,10 +91,6 @@ if __name__ == '__main__':
|
||||
tc_task = TcTask(tc, DT_TASK, dispatcher.msgio_get("TempCtrl"))
|
||||
taskmgr.add(tc_task)
|
||||
|
||||
tc_trace_vars = []
|
||||
|
||||
trace_tc = Tracer(tc, tc_trace_vars, name='tc_trace')
|
||||
|
||||
# Stirrer
|
||||
stirrer = StirrerFactory.create(config['Controller']['stirrer_name'], DT, config['Stirrer'])
|
||||
stirrer_task = StirrerTask(stirrer, DT_TASK, dispatcher.msgio_get("Stirrer"))
|
||||
@@ -117,7 +112,7 @@ if __name__ == '__main__':
|
||||
taskmgr.add(SudLogTask(sud, tc, heater, heater_task, sud_task, DT_TASK))
|
||||
|
||||
# Tracer
|
||||
taskmgr.add(TracerTask(sensor, heater, tc, trace_tc, DT_TASK_TRACER, dispatcher.msgio_get("Tracer")))
|
||||
taskmgr.add(TracerTask(sensor, heater, tc, DT_TASK_TRACER, dispatcher.msgio_get("Tracer")))
|
||||
|
||||
# Assign data flow
|
||||
# Assign tc control value to heater
|
||||
|
||||
+1
-5
@@ -5,7 +5,6 @@ from ws.message import MsgIo
|
||||
from components import ATemperatureSensor
|
||||
from components import AHeater
|
||||
from components import APid
|
||||
from tracer import Tracer
|
||||
|
||||
import numpy as np
|
||||
import scipy.io
|
||||
@@ -13,7 +12,7 @@ import os
|
||||
|
||||
|
||||
class TracerTask(ATask):
|
||||
def __init__(self, sensor: ATemperatureSensor, heater: AHeater, temp_ctrl: APid, tracer: Tracer, interval, msg_handler: MsgIo, path= './logs'):
|
||||
def __init__(self, sensor: ATemperatureSensor, heater: AHeater, temp_ctrl: APid, interval, msg_handler: MsgIo, path= './logs'):
|
||||
ATask.__init__(self, interval)
|
||||
if not os.path.exists(path):
|
||||
os.makedirs(path)
|
||||
@@ -24,7 +23,6 @@ class TracerTask(ATask):
|
||||
self.sensor = sensor
|
||||
self.heater = heater
|
||||
self.temp_ctrl = temp_ctrl
|
||||
self.tracer = tracer
|
||||
self.path = path
|
||||
|
||||
async def recv(self, data):
|
||||
@@ -51,8 +49,6 @@ class TracerTask(ATask):
|
||||
filename_full = os.path.join(self.path, '') + name + "." + time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".mat"
|
||||
|
||||
while True:
|
||||
self.tracer.process()
|
||||
|
||||
_timestamp = np.append(_timestamp, timestamp)
|
||||
_sensor_temp = np.append(_sensor_temp, self.sensor.temperature())
|
||||
_heater_power = np.append(_heater_power, self.heater.get_power())
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
import numpy as np
|
||||
import scipy.io
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
if sys.version_info[0] == 3 and sys.version_info[1] >= 8:
|
||||
from typing import TypedDict
|
||||
else:
|
||||
from typing_extensions import TypedDict
|
||||
|
||||
|
||||
class Entry(TypedDict):
|
||||
variable: str
|
||||
name: str
|
||||
unit: str
|
||||
|
||||
|
||||
class Tracer:
|
||||
def __init__(self, obj, var_list: Entry, name='default', path='./logs'):
|
||||
if not os.path.exists(path):
|
||||
os.makedirs(path)
|
||||
self.obj = obj
|
||||
self.var_list = var_list
|
||||
self.timestamp = 0
|
||||
self.timestamp_data = np.empty(0)
|
||||
self.filename_full = os.path.join(path, '') + name + "." + time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".mat"
|
||||
self.filename = os.path.join(path, '') + name + ".mat"
|
||||
self.data_list = {}
|
||||
for var in self.var_list:
|
||||
self.data_list[var['name']] = np.empty(0)
|
||||
|
||||
def process(self):
|
||||
data = {}
|
||||
self.timestamp_data = np.append(self.timestamp_data, self.timestamp)
|
||||
data['time'] = self.timestamp_data
|
||||
|
||||
for var in self.var_list:
|
||||
key_name = var['name']
|
||||
key_variable = var['variable']
|
||||
self.data_list[key_name] = np.append(self.data_list[key_name], self.obj.__getattribute__(key_variable))
|
||||
data[key_name] = self.data_list[key_name]
|
||||
|
||||
scipy.io.savemat(self.filename, data)
|
||||
scipy.io.savemat(self.filename_full, data)
|
||||
self.timestamp += 1
|
||||
|
||||
|
||||
class Test:
|
||||
def __init__(self):
|
||||
self.a = 0
|
||||
self.b = 0
|
||||
|
||||
def process(self):
|
||||
self.a += 1
|
||||
self.b += 10
|
||||
|
||||
@staticmethod
|
||||
def get_entry():
|
||||
a: Entry = [{'variable': 'a', 'name' : 'v_a', 'unit': 'u_a'}]
|
||||
b: Entry = [{'variable': 'b', 'name' : 'v_b', 'unit': 'u_b'}]
|
||||
return a + b
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test = Test()
|
||||
|
||||
dut = Tracer(test, Test.get_entry(), name='TracerTest')
|
||||
|
||||
for i in range(0, 10):
|
||||
dut.process()
|
||||
test.process()
|
||||
Reference in New Issue
Block a user