chore: переработана инициализация классов PlotWindow и UMLCreator

This commit is contained in:
Andrew 2024-11-12 13:46:36 +03:00
parent 40af0afda8
commit 0587ca1a06
8 changed files with 38 additions and 62 deletions

View File

@ -8,13 +8,6 @@ from src.gui import PlotWindow, settingsWindow
class app:
def __init__(self):
self.request_generator = Request(server_url='http://www.plantuml.com/plantuml/svg/')
self.operSettings = settingsWindow("params\operator_params.json", 'Operator', self._update_settings)
self.sysSettings = settingsWindow("params\system_params.json", 'System', self._update_settings)
self._load_preset()
@ -26,39 +19,39 @@ class app:
def _load_preset(self):
self.operator_params = read_json("params/operator_params.json")
self.system_params = read_json("params/system_params.json")
self.opt_algorithm = OptAlgorithm(operator_config=self.operator_params, system_config=self.system_params)
generator = Request(server_url='http://www.plantuml.com/plantuml/svg/')
self.operSettings = settingsWindow("params\operator_params.json", 'Operator', self._update_settings)
self.sysSettings = settingsWindow("params\system_params.json", 'System', self._update_settings)
self.plotter = PlotWindow(opt =self.opt_algorithm,
show_settings_func=self._show_settings)
self.uml_creator = UMLCreator(request_generator=generator)
self.ideal_times = self._get_ideal_timings(self.opt_algorithm)
self.parser = DiagramParser(system_config=self.system_params)
self.parser.setData("trace_samples/2024_11_08-19_30_52.csv")
self.bool_dict = self.parser.getBoolDict()
self.float_dict = self.parser.getFloatDict()
self.timings_dict = self.parser.getRealTimings()
self.plotter = PlotWindow(operator_config=self.operator_params,
system_config=self.system_params,
opt=self.opt_algorithm,
bool_dict=self.bool_dict,
float_dict=self.float_dict,
timings_dict=self.timings_dict,
show_settings_func=self._show_settings)
self.uml_creator = UMLCreator(operator_config=self.operator_params,
system_config=self.system_params,
request_generator=self.request_generator,
ideal_time=self.ideal_times,
bool_dict=self.bool_dict,
float_dict=self.float_dict,
timings_dict=self.timings_dict)
self.mode = self.parser.getMode()
self.uml_creator.update_uml(operator_config=self.operator_params,
system_config=self.system_params,
request_generator=self.request_generator,
ideal_time=self.ideal_times,
bool_dict=self.bool_dict,
float_dict=self.float_dict,
float_dict=self.float_dict,
mode = self.mode,
timings_dict=self.timings_dict)
self.plotter.update_data(operator_config=self.operator_params,
system_config=self.system_params,
opt=self.opt_algorithm,
bool_dict=self.bool_dict,
float_dict=self.float_dict,
mode = self.mode,
timings_dict=self.timings_dict)
def _update_settings(self, _):
self.operator_params = self.operSettings.getParams()
@ -68,10 +61,10 @@ class app:
self.ideal_times = self._get_ideal_timings(self.opt_algorithm)
self.uml_creator.update_uml(system_config=self.system_params,
request_generator=self.request_generator,
ideal_time=self.ideal_times,
bool_dict=self.bool_dict,
float_dict=self.float_dict,
float_dict=self.float_dict,
mode = self.mode,
timings_dict=self.timings_dict)
self.plotter.update_data(operator_config=self.operator_params,
@ -79,6 +72,7 @@ class app:
opt=self.opt_algorithm,
bool_dict=self.bool_dict,
float_dict=self.float_dict,
mode = self.mode,
timings_dict=self.timings_dict)
def _show_settings(self):

View File

@ -8,23 +8,10 @@ from src.OptAlgorithm import OptAlgorithm
class PlotWindow:
def __init__(self,
system_config : dict,
operator_config: dict,
opt: OptAlgorithm,
bool_dict: dict,
float_dict: dict,
timings_dict: dict,
show_settings_func):
def __init__(self, opt: OptAlgorithm, show_settings_func):
pg.setConfigOptions(antialias=True)
self.opt = opt
self.bool_dict = bool_dict
self.float_dict = float_dict
self.timings_dict = timings_dict
self.scaler = int(system_config['UML_time_scaler'])
self.WeldTime = operator_config['time_wielding'] #[sec]
self.alpha = 100 #[0-255 прозрачность фона]
self.opt = opt
self._getIdealTimings()
self._init_ui()
self.settings_button.clicked.connect(show_settings_func)
@ -36,11 +23,13 @@ class PlotWindow:
opt: OptAlgorithm,
bool_dict: dict,
float_dict: dict,
timings_dict: dict):
timings_dict: dict,
mode: bool):
self.opt = opt
self.bool_dict = bool_dict
self.float_dict = float_dict
self.timings_dict = timings_dict
self.theor_mode = mode
self.scaler = int(system_config['UML_time_scaler'])
self.WeldTime = operator_config['time_wielding'] #[sec]
self._getIdealTimings()
@ -79,7 +68,6 @@ class PlotWindow:
self.p11.setAutoVisible(x=False, y=True)
self.p12.setAutoVisible(x=False, y=True)
self.p13.setAutoVisible(x=False, y=True)
self._updatePlots()
self.widget.setStyleSheet(qts.dark_style)
self.widget.show()

View File

@ -2,21 +2,8 @@ from src.uml.request_generator import Request
class UMLCreator:
def __init__(self,
system_config: dict,
operator_config: dict,
request_generator: Request,
ideal_time: list[float],
bool_dict: dict,
float_dict: dict,
timings_dict: dict):
def __init__(self, request_generator: Request):
self._request_generator = request_generator
self._ideal_time = ideal_time
self.bool_dict = bool_dict
self.float_dict = float_dict
self.timings_dict = timings_dict
self.scaler = int(system_config['UML_time_scaler'])
self.WeldTime = operator_config['time_wielding']
def _build_data(self):
@ -97,17 +84,17 @@ class UMLCreator:
def update_uml(self,
operator_config: dict,
system_config : dict,
request_generator: Request,
ideal_time: list[float],
bool_dict: dict,
float_dict: dict,
timings_dict: dict):
timings_dict: dict,
mode: bool):
self._request_generator = request_generator
self._ideal_time = ideal_time
self.bool_dict = bool_dict
self.float_dict = float_dict
self.timings_dict = timings_dict
self.theor_mode = mode
self.scaler = int(system_config['UML_time_scaler'])
self.WeldTime = operator_config['time_wielding']

View File

@ -12,8 +12,12 @@ class DiagramParser:
self.boolDict = {}
self.floatDict = {}
self.timingsDict = {}
self.theor_mode = False
def setData(self, path):
if not path:
self.theor_mode = True
self.data = pd.read_csv(path)
for signalName in self.data.columns:
@ -38,6 +42,9 @@ class DiagramParser:
def getRealTimings(self) -> dict:
return self.timingsDict
def getMode(self) -> bool:
return self.theor_mode
def _getBoolChanges(self, signalName) -> list:
timeCode = self.data['time']
signal_values = self.data[signalName]