fix: исправлено взаимодействие с новыми типами данных

This commit is contained in:
Andrew 2025-01-27 16:09:13 +03:00
parent 4dfd9a5a8f
commit b7a190ec54
5 changed files with 42 additions and 31 deletions

View File

@ -12,6 +12,13 @@ from OptAlgorithm import OptAlgorithm
from utils.qt_settings import dark_style
@dataclass
class PlotItems:
regions: dict
curves: dict
qt_items: dict
@dataclass
class PointPassport:
timeframe: list
@ -20,11 +27,18 @@ class PointPassport:
useful_data: dict
@dataclass
class UsefulGraphData:
client_time: float
range_ME: float
k_hardness: float
@dataclass
class GraphicPassport:
dataframe: pd.DataFrame
points_pocket: list[PointPassport]
useful_data: dict
useful_data: UsefulGraphData
@dataclass
@ -127,8 +141,10 @@ class BasePlotWidget:
mediator: Optional[BaseMediator] = None,
controller: BaseController = None):
super().__init__()
self._mediator = mediator
self._controller = controller
self._mediator: BaseMediator = mediator
self._controller: BaseController = controller
self._datalen: int = 0
self._datastep: int = 0
self._stage_colors = {
"Closing": [220, 20, 60, 100], # Crimson

View File

@ -6,7 +6,7 @@ import numpy as np
import pandas as pd
from loguru import logger
from base.base import BasePointPassportFormer, BaseIdealDataBuilder, PointPassport, GraphicPassport, Settings
from base.base import BasePointPassportFormer, BaseIdealDataBuilder, PointPassport, GraphicPassport, Settings, UsefulGraphData
class PassportFormer(BasePointPassportFormer):
@ -115,31 +115,27 @@ class PassportFormer(BasePointPassportFormer):
key = list(self._settings.operator.keys())[0]
point_quantity = len(self._settings.operator[key])
graphic_passport = GraphicPassport()
graphic_passport.dataframe = dataframe
graphic_passport.points_pocket = []
system_settings = {key: value[0] for key, value in self._settings.system.items()}
graphic_passport.useful_data = self._form_graphic_useful_data(system_settings)
graphic_passport = GraphicPassport(dataframe, [], self._form_graphic_useful_data(system_settings))
for i in range(point_quantity):
point_settings = Settings()
point_settings.operator = self._get_operator_settings_part(i)
point_settings.system = system_settings
point_settings = Settings(self._get_operator_settings_part(i), system_settings)
point_passport = PointPassport()
point_passport.ideal_data = self._form_point_ideal_data(point_settings)
point_passport.useful_data = self._form_point_useful_data(point_settings.operator)
point_passport.timeframe, point_passport.events = self._form_point_events(events, i)
timeframe, po_events = self._form_point_events(events, i)
ideal_data = self._form_point_ideal_data(point_settings)
useful_data = self._form_point_useful_data(point_settings.operator)
point_passport = PointPassport(timeframe, po_events, ideal_data, useful_data)
graphic_passport.points_pocket.append(point_passport)
return graphic_passport
def _form_graphic_useful_data(self, system_settings:dict) -> dict:
tesla_time = sum(self._settings.operator.get("Tesla summary time", []))
useful_data = {"tesla_time": tesla_time,
"range_ME": system_settings["Range ME, mm"],
"k_hardness": system_settings["k_hardness_1"]
}
useful_data = UsefulGraphData(
tesla_time,
system_settings["Range ME, mm"],
system_settings["k_hardness_1"]
)
return useful_data
def _form_point_useful_data(self, operator_settings:dict) -> dict:
@ -151,7 +147,7 @@ class PassportFormer(BasePointPassportFormer):
def _form_point_ideal_data(self, point_settings:Settings) -> dict:
cache_key = self._generate_cache_key(point_settings)
ideal_data = self._ideal_data_cashe.get(cache_key,
self._build_ideal_data(idealDataBuilder=IdealDataBuilder, params=point_settings))
self._build_ideal_data(idealDataBuilder=IdealDataBuilder, point_settings=point_settings))
self._ideal_data_cashe[cache_key] = ideal_data
return ideal_data
@ -218,7 +214,7 @@ class IdealDataBuilder(BaseIdealDataBuilder):
]
return ideal_timings
def _get_data(self, end_timestamp:float, func:function) -> pd.DataFrame:
def _get_data(self, end_timestamp:float, func) -> pd.DataFrame:
data = []
for i in range (0, int(end_timestamp*self.mul)+1):
time = i/self.mul

View File

@ -116,10 +116,8 @@ class MainWindow(BaseMainWindow):
self.signal_mode.emit(2)
def _transfer_settings(self) -> None:
settings = Settings()
settings.operator = self.operSettings.getParams()
settings.system = self.sysSettings.getParams()
self.signal_settings.emit(Settings)
settings = Settings(self.operSettings.getParams(), self.sysSettings.getParams())
self.signal_settings.emit(settings)
def _upd_settings(self) -> None:
self._transfer_settings()

View File

@ -12,6 +12,7 @@ from PyQt5.QtWidgets import QSizePolicy as QSP
from gui.settings_window import SystemSettings, OperatorSettings
from gui.report_gui import ReportSettings
from base.base import PlotItems
class StartWidget(QWidget):
@ -124,13 +125,13 @@ class CustomTabWidget(QTabWidget):
#TODO: переписать обмен данными, засунуть ссылки куда-то еще
def create_tab(self, plot_widget:QWidget) -> None:
widget, reg_items, curve_items, qt_items = plot_widget
plot_items:PlotItems = plot_widget.property("plot_items")
tab = QWidget()
tab.setProperty("reg_items", reg_items)
tab.setProperty("curve_items", curve_items)
tab.setProperty("qt_items", qt_items)
tab.setProperty("reg_items", plot_items.regions)
tab.setProperty("curve_items", plot_items.curves)
tab.setProperty("qt_items", plot_items.qt_items)
grid = QGridLayout()
grid.addWidget(widget)
grid.addWidget(plot_widget)
tab.setLayout(grid)
self.addTab(tab, "SF_trace_" + dt.now().strftime('%Y_%m_%d-%H_%M_%S'))
self.setCurrentWidget(tab)

View File

@ -9,7 +9,7 @@ from controller.mediator import Mediator
from controller.converter import DataConverter
from gui.plotter import PlotWidget
from controller.controller import Controller
from src.controller.passport_former import PassportFormer
from controller.passport_former import PassportFormer
def main():