From 05177a90b9ae0c27f7b819cfc21ea4798bc74028 Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 25 Dec 2024 16:47:35 +0300 Subject: [PATCH] =?UTF-8?q?dev:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=B4=D0=B5=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D0=BF=D1=80=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE?= =?UTF-8?q?=D0=B4=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=80=D0=B8=20=D0=BF=D0=BE=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BD=D0=B8=D0=B8=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA?= =?UTF-8?q?=D0=BE=20=D0=B8=D0=B4=D0=B5=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D1=86=D0=B8=D0=BA=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passportFormer.cpython-310.pyc | Bin 4603 -> 4679 bytes src/controller/passportFormer.py | 3 ++- src/gui/__pycache__/plotter.cpython-310.pyc | Bin 11534 -> 11673 bytes src/gui/plotter.py | 25 ++++++++++++------ 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/controller/__pycache__/passportFormer.cpython-310.pyc b/src/controller/__pycache__/passportFormer.cpython-310.pyc index 4e1ce225a01e35d8b0506499394aaae8f1cbf270..c02bade5ad8552b1e76f617d4e9ce097a45b7abd 100644 GIT binary patch delta 568 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 ReJS1(e~(t_bul#N{R4_cqRjvR diff --git a/src/gui/plotter.py b/src/gui/plotter.py index f855d4e..5d55b81 100644 --- a/src/gui/plotter.py +++ b/src/gui/plotter.py @@ -162,8 +162,11 @@ class PlotWidget(BasePlotWidget): label_layout = QHBoxLayout(label_widget) start_label = QLabel("Сокращение длительности: ") real_label = QLabel(f"фактическое = {tesla_TWC} % ") + if not tesla_TWC or not TWC_time: real_label.setVisible(False) ideal_label = QLabel(f"идеальное = {tesla_ideal} % ") + if not tesla_ideal: ideal_label.setVisible(False) kdip_label = QLabel(f"КДИП = {TWC_ideal}% ") + if not TWC_ideal: kdip_label.setVisible(False) label_layout.addWidget(start_label, alignment=Qt.AlignLeft) label_layout.addWidget(real_label, alignment=Qt.AlignLeft) label_layout.addWidget(ideal_label, alignment=Qt.AlignLeft) @@ -209,7 +212,7 @@ class PlotWidget(BasePlotWidget): for widget_num, (channel, description) in enumerate(self._plt_channels.items()): plot_item, legend = self._init_plot_item(title=channel) settings = description["Settings"] - + global_shift = 0 TWC_time = 0.0 ideal_time = 0.0 worst_perf = 2 @@ -230,13 +233,14 @@ class PlotWidget(BasePlotWidget): ideal_data = copy.deepcopy(ideal_dat) if dat_is_none: - worst_timeframe = point_timeframe = [0, ideal_data["Ideal cycle"]] + worst_timeframe = point_timeframe = [global_shift, global_shift+ ideal_data["Ideal cycle"]] point_events = {} keys = list(ideal_data.keys()) shift = 0 for i, time in enumerate(ideal_data["Ideal timings"]): - point_events[keys[i]] = [shift, time+shift] + point_events[keys[i]] = [global_shift+shift, global_shift+time+shift] shift += time + global_shift +=ideal_data["Ideal cycle"] # TODO: проверить корректность расчетов if settings["force compensation FE"] and not dat_is_none: @@ -288,14 +292,18 @@ class PlotWidget(BasePlotWidget): self._add_ideal_signals(plot_item, ideal_data, point_events, description["Ideal_signals"], curve_items) # Подсчёт производительности - if settings["performance"]and not dat_is_none: + if settings["performance"]: is_last_point = (cur_point == len(points_pocket) - 1) if is_last_point: - TWC_delta = sum([point_events[stage][1] - point_events[stage][0] for stage in ["Closing", "Squeeze", "Welding"]]) - ideal_delta = sum(ideal_data["Ideal timings"][0:3]) + if not dat_is_none: TWC_delta = sum([point_events[stage][1] - point_events[stage][0] + for stage in ["Closing", "Squeeze", "Welding"]]) + else: TWC_delta = 0 + ideal_delta = sum(ideal_data["Ideal timings"][0:3]) else: - TWC_delta = point_timeframe[1] - point_timeframe[0] + if not dat_is_none: TWC_delta = point_timeframe[1] - point_timeframe[0] + else: TWC_delta = 0 ideal_delta = ideal_data["Ideal cycle"] + TWC_time += TWC_delta ideal_time += ideal_delta curr_perf = ideal_delta/TWC_delta if TWC_delta != 0 else 1 @@ -303,6 +311,7 @@ class PlotWidget(BasePlotWidget): if curr_perf < worst_perf: worst_perf = curr_perf worst_timeframe = point_timeframe + # Считаем прогресс self._update_status(widget_steps, point_steps, widget_num, cur_point) @@ -316,7 +325,7 @@ class PlotWidget(BasePlotWidget): # Связываем остальные графики с основным графиком plot_item.setXLink(main_plot) - if settings["performance"] and not dat_is_none: + if settings["performance"]: self._add_performance_label(result_layout, TWC_time, ideal_time, tesla_time, qt_items) plot_layout.addItem(plot_item, widget_num, 0)