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:
2026-06-22 17:50:46 +02:00
co-authored by Claude Sonnet 4.6
parent c1f4bac3f2
commit 6c50a819fc
3 changed files with 2 additions and 82 deletions
+1 -6
View File
@@ -14,7 +14,6 @@ from components.actor import HeaterFactory, StirrerFactory
from components.sud import Sud from components.sud import Sud
from components.sud_forecast import SudForecastEstimator from components.sud_forecast import SudForecastEstimator
from tasks import TaskManager, TempSensorTask, HeaterTask, PotTask, TcTask, StirrerTask, TracerTask, SudTask, SudLogTask from tasks import TaskManager, TempSensorTask, HeaterTask, PotTask, TcTask, StirrerTask, TracerTask, SudTask, SudLogTask
from tracer import Tracer
import argparse as ap import argparse as ap
@@ -92,10 +91,6 @@ if __name__ == '__main__':
tc_task = TcTask(tc, DT_TASK, dispatcher.msgio_get("TempCtrl")) tc_task = TcTask(tc, DT_TASK, dispatcher.msgio_get("TempCtrl"))
taskmgr.add(tc_task) taskmgr.add(tc_task)
tc_trace_vars = []
trace_tc = Tracer(tc, tc_trace_vars, name='tc_trace')
# Stirrer # Stirrer
stirrer = StirrerFactory.create(config['Controller']['stirrer_name'], DT, config['Stirrer']) stirrer = StirrerFactory.create(config['Controller']['stirrer_name'], DT, config['Stirrer'])
stirrer_task = StirrerTask(stirrer, DT_TASK, dispatcher.msgio_get("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)) taskmgr.add(SudLogTask(sud, tc, heater, heater_task, sud_task, DT_TASK))
# Tracer # 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 data flow
# Assign tc control value to heater # Assign tc control value to heater
+1 -5
View File
@@ -5,7 +5,6 @@ from ws.message import MsgIo
from components import ATemperatureSensor from components import ATemperatureSensor
from components import AHeater from components import AHeater
from components import APid from components import APid
from tracer import Tracer
import numpy as np import numpy as np
import scipy.io import scipy.io
@@ -13,7 +12,7 @@ import os
class TracerTask(ATask): 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) ATask.__init__(self, interval)
if not os.path.exists(path): if not os.path.exists(path):
os.makedirs(path) os.makedirs(path)
@@ -24,7 +23,6 @@ class TracerTask(ATask):
self.sensor = sensor self.sensor = sensor
self.heater = heater self.heater = heater
self.temp_ctrl = temp_ctrl self.temp_ctrl = temp_ctrl
self.tracer = tracer
self.path = path self.path = path
async def recv(self, data): 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" filename_full = os.path.join(self.path, '') + name + "." + time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".mat"
while True: while True:
self.tracer.process()
_timestamp = np.append(_timestamp, timestamp) _timestamp = np.append(_timestamp, timestamp)
_sensor_temp = np.append(_sensor_temp, self.sensor.temperature()) _sensor_temp = np.append(_sensor_temp, self.sensor.temperature())
_heater_power = np.append(_heater_power, self.heater.get_power()) _heater_power = np.append(_heater_power, self.heater.get_power())
-71
View File
@@ -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()