1、精简部分公共代码到PublicFunc.py中
2、完成了<人工纠正>的部分代码
This commit is contained in:
@ -2,7 +2,7 @@ from gc import collect
|
||||
from pathlib import Path
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
from PySide6.QtWidgets import QMessageBox, QMainWindow, QWidget, QPushButton, QProgressBar, QApplication
|
||||
from PySide6.QtWidgets import QMessageBox, QMainWindow, QApplication
|
||||
from matplotlib import gridspec
|
||||
from matplotlib.backends.backend_qt import NavigationToolbar2QT
|
||||
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg
|
||||
@ -85,7 +85,7 @@ class SettingWindow(QMainWindow):
|
||||
},
|
||||
"Mode": self.mode
|
||||
})
|
||||
else:
|
||||
elif self.mode == "ECG":
|
||||
Config.update({
|
||||
"Path": {
|
||||
"Input": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_PSG_TEXT /
|
||||
@ -99,6 +99,8 @@ class SettingWindow(QMainWindow):
|
||||
},
|
||||
"Mode": self.mode
|
||||
})
|
||||
else:
|
||||
raise ValueError
|
||||
|
||||
# 数据回显
|
||||
self.ui.spinBox_input_freq.setValue(Config["InputConfig"]["Freq"])
|
||||
@ -144,7 +146,7 @@ class SettingWindow(QMainWindow):
|
||||
Path(ConfigParams.PREPROCESS_SAVE_BCG_FILENAME +
|
||||
str(self.ui.spinBox_output_freq.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
else:
|
||||
elif self.mode == "ECG":
|
||||
self.ui.plainTextEdit_file_path_input.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_PSG_TEXT /
|
||||
@ -159,6 +161,8 @@ class SettingWindow(QMainWindow):
|
||||
Path(ConfigParams.PREPROCESS_SAVE_ECG_FILENAME +
|
||||
str(self.ui.spinBox_output_freq.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
else:
|
||||
raise ValueError
|
||||
|
||||
|
||||
class MainWindow_preprocess(QMainWindow):
|
||||
@ -179,7 +183,7 @@ class MainWindow_preprocess(QMainWindow):
|
||||
|
||||
# 初始化进度条
|
||||
self.progressbar = None
|
||||
self.add_progressbar()
|
||||
PublicFunc.add_progressbar(self)
|
||||
|
||||
#初始化画框
|
||||
self.fig = None
|
||||
@ -219,17 +223,19 @@ class MainWindow_preprocess(QMainWindow):
|
||||
self.ax0.grid(True)
|
||||
self.ax0.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
|
||||
self.__resetAllButton__()
|
||||
PublicFunc.__resetAllButton__(self, ButtonState)
|
||||
|
||||
self.ui.label_mode.setText(self.mode)
|
||||
if self.mode == "BCG":
|
||||
self.ui.spinBox_bandPassOrder.setValue(Config["Filter"]["BCGBandPassOrder"])
|
||||
self.ui.doubleSpinBox_bandPassLow.setValue(Config["Filter"]["BCGBandPassLow"])
|
||||
self.ui.doubleSpinBox_bandPassHigh.setValue(Config["Filter"]["BCGBandPassHigh"])
|
||||
else:
|
||||
elif self.mode == "ECG":
|
||||
self.ui.spinBox_bandPassOrder.setValue(Config["Filter"]["ECGBandPassOrder"])
|
||||
self.ui.doubleSpinBox_bandPassLow.setValue(Config["Filter"]["ECGBandPassLow"])
|
||||
self.ui.doubleSpinBox_bandPassHigh.setValue(Config["Filter"]["ECGBandPassHigh"])
|
||||
else:
|
||||
raise ValueError
|
||||
|
||||
self.ui.pushButton_input.clicked.connect(self.__slot_btn_input__)
|
||||
self.ui.pushButton_input_setting.clicked.connect(self.setting.show)
|
||||
@ -242,9 +248,9 @@ class MainWindow_preprocess(QMainWindow):
|
||||
@overrides
|
||||
def closeEvent(self, event):
|
||||
|
||||
self.__disableAllButton__()
|
||||
PublicFunc.__disableAllButton__(self, ButtonState)
|
||||
|
||||
self.statusbar_show_msg(PublicFunc.format_status_msg(Constants.SHUTTING_DOWN))
|
||||
PublicFunc.statusbar_show_msg(self, PublicFunc.format_status_msg(Constants.SHUTTING_DOWN))
|
||||
QApplication.processEvents()
|
||||
|
||||
# 清空画框
|
||||
@ -297,74 +303,22 @@ class MainWindow_preprocess(QMainWindow):
|
||||
self.canvas.draw()
|
||||
return status, info
|
||||
|
||||
def __disableAllButton__(self):
|
||||
# 禁用所有按钮
|
||||
all_widgets = self.centralWidget().findChildren(QWidget)
|
||||
|
||||
# 迭代所有部件,查找按钮并禁用它们
|
||||
for widget in all_widgets:
|
||||
if isinstance(widget, QPushButton):
|
||||
if widget.objectName() in ButtonState["Current"].keys():
|
||||
widget.setEnabled(False)
|
||||
|
||||
def __enableAllButton__(self):
|
||||
# 启用按钮
|
||||
all_widgets = self.centralWidget().findChildren(QWidget)
|
||||
|
||||
# 迭代所有部件,查找按钮并启用它们
|
||||
for widget in all_widgets:
|
||||
if isinstance(widget, QPushButton):
|
||||
if widget.objectName() in ButtonState["Current"].keys():
|
||||
widget.setEnabled(ButtonState["Current"][widget.objectName()])
|
||||
|
||||
def __resetAllButton__(self):
|
||||
# 启用按钮
|
||||
all_widgets = self.centralWidget().findChildren(QWidget)
|
||||
|
||||
# 迭代所有部件,查找按钮并启用它们
|
||||
for widget in all_widgets:
|
||||
if isinstance(widget, QPushButton):
|
||||
if widget.objectName() in ButtonState["Default"].keys():
|
||||
widget.setEnabled(ButtonState["Default"][widget.objectName()])
|
||||
|
||||
def __update_config__(self):
|
||||
|
||||
if self.mode == "BCG":
|
||||
Config["Filter"]["BCGBandPassOrder"] = self.ui.spinBox_bandPassOrder.value()
|
||||
Config["Filter"]["BCGBandPassLow"] = self.ui.doubleSpinBox_bandPassLow.value()
|
||||
Config["Filter"]["BCGBandPassHigh"] = self.ui.doubleSpinBox_bandPassHigh.value()
|
||||
else:
|
||||
elif self.mode == "ECG":
|
||||
Config["Filter"]["ECGBandPassOrder"] = self.ui.spinBox_bandPassOrder.value()
|
||||
Config["Filter"]["ECGBandPassLow"] = self.ui.doubleSpinBox_bandPassLow.value()
|
||||
Config["Filter"]["ECGBandPassHigh"] = self.ui.doubleSpinBox_bandPassHigh.value()
|
||||
|
||||
def finish_operation(self):
|
||||
|
||||
self.statusbar_show_msg(PublicFunc.format_status_msg(Constants.OPERATION_FINISHED))
|
||||
self.progressbar.setValue(100)
|
||||
QApplication.processEvents()
|
||||
|
||||
self.__enableAllButton__()
|
||||
|
||||
def add_progressbar(self):
|
||||
|
||||
self.progressbar = QProgressBar()
|
||||
self.progressbar.setRange(0, 100)
|
||||
self.progressbar.setValue(0)
|
||||
self.progressbar.setStyleSheet(Constants.PROGRESSBAR_STYLE)
|
||||
self.ui.statusbar.addPermanentWidget(self.progressbar)
|
||||
|
||||
def statusbar_show_msg(self, msg):
|
||||
|
||||
self.ui.statusbar.showMessage(msg)
|
||||
|
||||
def statusbar_clear_msg(self):
|
||||
|
||||
self.ui.statusbar.clearMessage()
|
||||
else:
|
||||
raise ValueError
|
||||
|
||||
def __slot_btn_input__(self):
|
||||
|
||||
self.__disableAllButton__()
|
||||
PublicFunc.__disableAllButton__(self, ButtonState)
|
||||
|
||||
# 清空画框
|
||||
if self.line_raw_data and self.line_processed_data:
|
||||
@ -375,7 +329,7 @@ class MainWindow_preprocess(QMainWindow):
|
||||
pass
|
||||
self.canvas.draw()
|
||||
|
||||
self.statusbar_show_msg(PublicFunc.format_status_msg("(1/1)" + Constants.INPUTTING_DATA))
|
||||
PublicFunc.statusbar_show_msg(self, PublicFunc.format_status_msg("(1/1)" + Constants.INPUTTING_DATA))
|
||||
self.progressbar.setValue(0)
|
||||
QApplication.processEvents()
|
||||
|
||||
@ -385,19 +339,19 @@ class MainWindow_preprocess(QMainWindow):
|
||||
if not status:
|
||||
PublicFunc.text_output(self.ui, "(1/1)" + info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, info, Constants.MSGBOX_TYPE_ERROR)
|
||||
self.finish_operation()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(1/1)" + info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
MainWindow_preprocess.__reset__()
|
||||
self.finish_operation()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
|
||||
def __slot_btn_view__(self):
|
||||
|
||||
self.__disableAllButton__()
|
||||
PublicFunc.__disableAllButton__(self, ButtonState)
|
||||
|
||||
self.statusbar_show_msg(PublicFunc.format_status_msg("(1/2)" + Constants.PREPROCESS_PROCESSING_DATA))
|
||||
PublicFunc.statusbar_show_msg(self, PublicFunc.format_status_msg("(1/2)" + Constants.PREPROCESS_PROCESSING_DATA))
|
||||
self.progressbar.setValue(0)
|
||||
QApplication.processEvents()
|
||||
|
||||
@ -406,12 +360,12 @@ class MainWindow_preprocess(QMainWindow):
|
||||
if not status:
|
||||
PublicFunc.text_output(self.ui, "(1/2)" + info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, info, Constants.MSGBOX_TYPE_ERROR)
|
||||
self.finish_operation()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(1/2)" + info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
self.statusbar_show_msg(PublicFunc.format_status_msg("(2/2)" + Constants.DRAWING_DATA))
|
||||
PublicFunc.statusbar_show_msg(self, PublicFunc.format_status_msg("(2/2)" + Constants.DRAWING_DATA))
|
||||
self.progressbar.setValue(50)
|
||||
QApplication.processEvents()
|
||||
|
||||
@ -420,13 +374,13 @@ class MainWindow_preprocess(QMainWindow):
|
||||
if not status:
|
||||
PublicFunc.text_output(self.ui, "(2/2)" + info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, info, Constants.MSGBOX_TYPE_ERROR)
|
||||
self.finish_operation()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(2/2)" + info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
ButtonState["Current"]["pushButton_save"] = True
|
||||
self.finish_operation()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
|
||||
def __slot_btn_save__(self):
|
||||
|
||||
@ -435,9 +389,9 @@ class MainWindow_preprocess(QMainWindow):
|
||||
QMessageBox.Yes | QMessageBox.No,
|
||||
QMessageBox.Yes)
|
||||
if reply == QMessageBox.Yes:
|
||||
self.__disableAllButton__()
|
||||
PublicFunc.__disableAllButton__(self, ButtonState)
|
||||
|
||||
self.statusbar_show_msg(PublicFunc.format_status_msg("(1/1)" + Constants.SAVING_DATA))
|
||||
PublicFunc.statusbar_show_msg(self, PublicFunc.format_status_msg("(1/1)" + Constants.SAVING_DATA))
|
||||
self.progressbar.setValue(0)
|
||||
QApplication.processEvents()
|
||||
|
||||
@ -457,13 +411,13 @@ class MainWindow_preprocess(QMainWindow):
|
||||
if not status:
|
||||
PublicFunc.text_output(self.ui, "(1/1)" + info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, info, Constants.MSGBOX_TYPE_ERROR)
|
||||
self.finish_operation()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(1/1)" + info, Constants.TIPS_TYPE_INFO)
|
||||
PublicFunc.msgbox_output(self, info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
self.finish_operation()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
|
||||
|
||||
class Data:
|
||||
@ -506,12 +460,14 @@ class Data:
|
||||
high_cut=Config["Filter"]["BCGBandPassHigh"],
|
||||
order=Config["Filter"]["BCGBandPassOrder"],
|
||||
sample_rate=Config["OutputConfig"]["Freq"])
|
||||
else:
|
||||
elif Config["Mode"] == "ECG":
|
||||
self.processed_data = Butterworth_for_ECG_PreProcess(self.raw_data, type='bandpass',
|
||||
low_cut=Config["Filter"]["ECGBandPassLow"],
|
||||
high_cut=Config["Filter"]["ECGBandPassHigh"],
|
||||
order=Config["Filter"]["ECGBandPassOrder"],
|
||||
sample_rate=Config["OutputConfig"]["Freq"])
|
||||
else:
|
||||
raise ValueError
|
||||
except Exception:
|
||||
return False, Constants.PREPROCESS_PROCESS_FAILURE + Constants.PREPROCESS_FAILURE_REASON["Filter_Exception"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user