diff --git a/params/system_params.json b/params/system_params.json index beb0753..7e69d3c 100644 --- a/params/system_params.json +++ b/params/system_params.json @@ -51,7 +51,7 @@ 0.075 ], "time_capture": [ - 100.0 + 1000.0 ], "UML_time_scaler": [ 1000.0 diff --git a/src/controller/__pycache__/converter.cpython-310.pyc b/src/controller/__pycache__/converter.cpython-310.pyc index 8d38c8e..24aaabf 100644 Binary files a/src/controller/__pycache__/converter.cpython-310.pyc and b/src/controller/__pycache__/converter.cpython-310.pyc differ diff --git a/src/controller/__pycache__/monitor.cpython-310.pyc b/src/controller/__pycache__/monitor.cpython-310.pyc index e55aa47..7075f6b 100644 Binary files a/src/controller/__pycache__/monitor.cpython-310.pyc and b/src/controller/__pycache__/monitor.cpython-310.pyc differ diff --git a/src/controller/__pycache__/passportFormer.cpython-310.pyc b/src/controller/__pycache__/passportFormer.cpython-310.pyc index 352a1bf..0e0d361 100644 Binary files a/src/controller/__pycache__/passportFormer.cpython-310.pyc and b/src/controller/__pycache__/passportFormer.cpython-310.pyc differ diff --git a/src/controller/converter.py b/src/controller/converter.py index 7079dd3..d87acb3 100644 --- a/src/controller/converter.py +++ b/src/controller/converter.py @@ -10,14 +10,14 @@ class DataConverter(BaseDataConverter): @staticmethod def _replace_bool(dataframe: pd.DataFrame) -> pd.DataFrame: - bool_columns = dataframe.columns[dataframe.isin([True, False]).any()] - dataframe[bool_columns] = dataframe[bool_columns].replace({True: 1, False: 0}) - return dataframe + try: + bool_columns = dataframe.columns[dataframe.isin([True, False]).any()] + dataframe[bool_columns] = dataframe[bool_columns].replace({True: 1, False: 0}) + return dataframe + except: + return None def convert_data(self, files: list[str]) -> None: - try: - dataframes = [pd.read_csv(file) for file in files] - converted_dataframes = list(map(self._replace_bool, dataframes)) - self._mediator.notify(self, converted_dataframes) - except: - self._mediator.notify(self, [None]) + dataframes = [pd.read_csv(file) if file != '' else None for file in files] + converted_dataframes = list(map(self._replace_bool, dataframes)) + self._mediator.notify(self, converted_dataframes) diff --git a/src/controller/monitor.py b/src/controller/monitor.py index 42603a0..c6603d7 100644 --- a/src/controller/monitor.py +++ b/src/controller/monitor.py @@ -55,7 +55,7 @@ class DirectoryMonitor(BaseDirectoryMonitor): def custom_csv_extract_only(self, path: str): self.stop() - self._files = [path] + self._files.append(path) if path is not None: self._mediator.notify(self, [path]) else: diff --git a/src/controller/passportFormer.py b/src/controller/passportFormer.py index 7da8a87..ad7ca1c 100644 --- a/src/controller/passportFormer.py +++ b/src/controller/passportFormer.py @@ -18,7 +18,8 @@ class idealDataBuilder(BaseIdealDataBuilder): def get_weldingDF(self) -> pd.DataFrame: 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":self.welding_time, "Position FE":X1,"Position ME":X2, "Rotor Speed FE":V1, "Rotor Speed ME":V2, "Force":F}) return pd.DataFrame(data) diff --git a/src/gui/__pycache__/mainGui.cpython-310.pyc b/src/gui/__pycache__/mainGui.cpython-310.pyc index bf5aa19..941766e 100644 Binary files a/src/gui/__pycache__/mainGui.cpython-310.pyc and b/src/gui/__pycache__/mainGui.cpython-310.pyc differ diff --git a/src/gui/__pycache__/plotter.cpython-310.pyc b/src/gui/__pycache__/plotter.cpython-310.pyc index 4bda562..8cb60bc 100644 Binary files a/src/gui/__pycache__/plotter.cpython-310.pyc and b/src/gui/__pycache__/plotter.cpython-310.pyc differ diff --git a/src/gui/mainGui.py b/src/gui/mainGui.py index e09f4e6..d358671 100644 --- a/src/gui/mainGui.py +++ b/src/gui/mainGui.py @@ -92,14 +92,10 @@ class MainWindow(BaseMainWindow): def _init_raportUI(self) -> None: self._clear() self._transfer_settings() - path = self._select_csv() + self.tabWidget = QtWidgets.QTabWidget() self.tabWidget.setTabsClosable(True) 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.setFixedWidth(185) 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.setFixedWidth(185) 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.setSpacing(2) @@ -119,6 +118,7 @@ class MainWindow(BaseMainWindow): button_layout.addWidget(oper_settings_btn) button_layout.addWidget(view_settings_btn) button_layout.addWidget(save_screen_btn) + button_layout.addWidget(open_file_btn) button_widget = QtWidgets.QWidget() button_widget.setLayout(button_layout) @@ -128,7 +128,6 @@ class MainWindow(BaseMainWindow): mainLayout.addWidget(button_widget) mainLayout.addWidget(title, alignment=Qt.AlignRight) self.resize(800,800) - self._controller.raport_mode(path) self._controller.raport_mode(None) #self._controller.raport_mode(path) @@ -171,6 +170,10 @@ class MainWindow(BaseMainWindow): def _close_tab(self, index:int) -> None: self.tabWidget.removeTab(index) + + def _open_file(self) -> None: + path = self._select_csv() + self._controller.raport_mode(path) def _select_csv(self) -> Optional[str]: CSV_path, _ = QtWidgets.QFileDialog.getOpenFileName(self,"Select csv file", "", "CSV Files (*.csv)") diff --git a/src/utils/base/__pycache__/base.cpython-310.pyc b/src/utils/base/__pycache__/base.cpython-310.pyc index ca1553e..9ed5de3 100644 Binary files a/src/utils/base/__pycache__/base.cpython-310.pyc and b/src/utils/base/__pycache__/base.cpython-310.pyc differ diff --git a/src/utils/base/base.py b/src/utils/base/base.py index 0c6b9a4..0b489fd 100644 --- a/src/utils/base/base.py +++ b/src/utils/base/base.py @@ -48,7 +48,7 @@ class BaseDirectoryMonitor: self._directory_path = None self._update_time = None self.isActive = False - self._files = None + self._files = [] self._mediator = mediator @@ -360,7 +360,7 @@ class BaseIdealDataBuilder(OptAlgorithm): def _get_data(self, end_timestamp:float, func:function) -> pd.DataFrame: 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 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})