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

This commit is contained in:
Andrew 2024-12-19 14:25:11 +03:00
parent d99fafd2ae
commit 625f3d7e01
12 changed files with 24 additions and 20 deletions

View File

@ -51,7 +51,7 @@
0.075 0.075
], ],
"time_capture": [ "time_capture": [
100.0 1000.0
], ],
"UML_time_scaler": [ "UML_time_scaler": [
1000.0 1000.0

View File

@ -10,14 +10,14 @@ class DataConverter(BaseDataConverter):
@staticmethod @staticmethod
def _replace_bool(dataframe: pd.DataFrame) -> pd.DataFrame: def _replace_bool(dataframe: pd.DataFrame) -> pd.DataFrame:
bool_columns = dataframe.columns[dataframe.isin([True, False]).any()] try:
dataframe[bool_columns] = dataframe[bool_columns].replace({True: 1, False: 0}) bool_columns = dataframe.columns[dataframe.isin([True, False]).any()]
return dataframe dataframe[bool_columns] = dataframe[bool_columns].replace({True: 1, False: 0})
return dataframe
except:
return None
def convert_data(self, files: list[str]) -> None: def convert_data(self, files: list[str]) -> None:
try: dataframes = [pd.read_csv(file) if file != '' else None for file in files]
dataframes = [pd.read_csv(file) for file in files] converted_dataframes = list(map(self._replace_bool, dataframes))
converted_dataframes = list(map(self._replace_bool, dataframes)) self._mediator.notify(self, converted_dataframes)
self._mediator.notify(self, converted_dataframes)
except:
self._mediator.notify(self, [None])

View File

@ -55,7 +55,7 @@ class DirectoryMonitor(BaseDirectoryMonitor):
def custom_csv_extract_only(self, path: str): def custom_csv_extract_only(self, path: str):
self.stop() self.stop()
self._files = [path] self._files.append(path)
if path is not None: if path is not None:
self._mediator.notify(self, [path]) self._mediator.notify(self, [path])
else: else:

View File

@ -18,7 +18,8 @@ class idealDataBuilder(BaseIdealDataBuilder):
def get_weldingDF(self) -> pd.DataFrame: def get_weldingDF(self) -> pd.DataFrame:
data = [] data = []
X1, X2, V1, V2, F = self.calcPhaseGrow(self.Ts['tgrow']) X1, X2, V1, V2, F = self.calcPhaseGrow(self.Ts['tgrow']-0.0001)
X1, X2, V1, V2 = X1*1000, X2*1000, V1*1000, V2*1000
data.append({"time":0, "Position FE":X1,"Position ME":X2, "Rotor Speed FE":V1, "Rotor Speed ME":V2, "Force":F}) data.append({"time":0, "Position FE":X1,"Position ME":X2, "Rotor Speed FE":V1, "Rotor Speed ME":V2, "Force":F})
data.append({"time":self.welding_time, "Position FE":X1,"Position ME":X2, "Rotor Speed FE":V1, "Rotor Speed ME":V2, "Force":F}) data.append({"time":self.welding_time, "Position FE":X1,"Position ME":X2, "Rotor Speed FE":V1, "Rotor Speed ME":V2, "Force":F})
return pd.DataFrame(data) return pd.DataFrame(data)

View File

@ -92,14 +92,10 @@ class MainWindow(BaseMainWindow):
def _init_raportUI(self) -> None: def _init_raportUI(self) -> None:
self._clear() self._clear()
self._transfer_settings() self._transfer_settings()
path = self._select_csv()
self.tabWidget = QtWidgets.QTabWidget() self.tabWidget = QtWidgets.QTabWidget()
self.tabWidget.setTabsClosable(True) self.tabWidget.setTabsClosable(True)
self.tabWidget.tabCloseRequested.connect(self._close_tab) self.tabWidget.tabCloseRequested.connect(self._close_tab)
if path is None:
self.layout().addWidget(QtWidgets.QLabel("Error. Please select correct path to csv"))
self._init_startUI()
self._controller.raport_mode(None)
sys_settings_btn = QtWidgets.QPushButton("System settings") sys_settings_btn = QtWidgets.QPushButton("System settings")
sys_settings_btn.setFixedWidth(185) sys_settings_btn.setFixedWidth(185)
sys_settings_btn.clicked.connect(lambda: self.sysSettings.show()) sys_settings_btn.clicked.connect(lambda: self.sysSettings.show())
@ -112,6 +108,9 @@ class MainWindow(BaseMainWindow):
save_screen_btn = QtWidgets.QPushButton("Save state") save_screen_btn = QtWidgets.QPushButton("Save state")
save_screen_btn.setFixedWidth(185) save_screen_btn.setFixedWidth(185)
save_screen_btn.clicked.connect(self._save_plots) save_screen_btn.clicked.connect(self._save_plots)
open_file_btn = QtWidgets.QPushButton("Open file")
open_file_btn.setFixedWidth(185)
open_file_btn.clicked.connect(self._open_file)
button_layout = QtWidgets.QHBoxLayout() button_layout = QtWidgets.QHBoxLayout()
button_layout.setSpacing(2) button_layout.setSpacing(2)
@ -119,6 +118,7 @@ class MainWindow(BaseMainWindow):
button_layout.addWidget(oper_settings_btn) button_layout.addWidget(oper_settings_btn)
button_layout.addWidget(view_settings_btn) button_layout.addWidget(view_settings_btn)
button_layout.addWidget(save_screen_btn) button_layout.addWidget(save_screen_btn)
button_layout.addWidget(open_file_btn)
button_widget = QtWidgets.QWidget() button_widget = QtWidgets.QWidget()
button_widget.setLayout(button_layout) button_widget.setLayout(button_layout)
@ -128,7 +128,6 @@ class MainWindow(BaseMainWindow):
mainLayout.addWidget(button_widget) mainLayout.addWidget(button_widget)
mainLayout.addWidget(title, alignment=Qt.AlignRight) mainLayout.addWidget(title, alignment=Qt.AlignRight)
self.resize(800,800) self.resize(800,800)
self._controller.raport_mode(path)
self._controller.raport_mode(None) self._controller.raport_mode(None)
#self._controller.raport_mode(path) #self._controller.raport_mode(path)
@ -171,6 +170,10 @@ class MainWindow(BaseMainWindow):
def _close_tab(self, index:int) -> None: def _close_tab(self, index:int) -> None:
self.tabWidget.removeTab(index) self.tabWidget.removeTab(index)
def _open_file(self) -> None:
path = self._select_csv()
self._controller.raport_mode(path)
def _select_csv(self) -> Optional[str]: def _select_csv(self) -> Optional[str]:
CSV_path, _ = QtWidgets.QFileDialog.getOpenFileName(self,"Select csv file", "", "CSV Files (*.csv)") CSV_path, _ = QtWidgets.QFileDialog.getOpenFileName(self,"Select csv file", "", "CSV Files (*.csv)")

View File

@ -48,7 +48,7 @@ class BaseDirectoryMonitor:
self._directory_path = None self._directory_path = None
self._update_time = None self._update_time = None
self.isActive = False self.isActive = False
self._files = None self._files = []
self._mediator = mediator self._mediator = mediator
@ -360,7 +360,7 @@ class BaseIdealDataBuilder(OptAlgorithm):
def _get_data(self, end_timestamp:float, func:function) -> pd.DataFrame: def _get_data(self, end_timestamp:float, func:function) -> pd.DataFrame:
data = [] data = []
for i in range (0, int(end_timestamp*self.mul)): for i in range (0, int(end_timestamp*self.mul)+1):
time = i/self.mul time = i/self.mul
X1, X2, V1, V2, F = func(time) X1, X2, V1, V2, F = func(time)
data.append({"time":time, "Position FE":X1*1000,"Position ME":X2*1000, "Rotor Speed FE":V1*1000, "Rotor Speed ME":V2*1000, "Force":F}) data.append({"time":time, "Position FE":X1*1000,"Position ME":X2*1000, "Rotor Speed FE":V1*1000, "Rotor Speed ME":V2*1000, "Force":F})