Compare commits
2 Commits
6215399cf7
...
f1447596b0
| Author | SHA1 | Date | |
|---|---|---|---|
| f1447596b0 | |||
| 4f150300fb |
@ -641,27 +641,41 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(1/3)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
# 重采样
|
||||
PublicFunc.progressbar_update(self, 2, 4, Constants.RESAMPLING_DATA, 0)
|
||||
result = self.data.resample()
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(2/4)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(2/4)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
self.__reset__()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
|
||||
# 处理数据
|
||||
PublicFunc.progressbar_update(self, 2, 3, Constants.PRECISELY_ALIGN_PROCESSING_DATA, 50)
|
||||
PublicFunc.progressbar_update(self, 3, 4, Constants.PRECISELY_ALIGN_PROCESSING_DATA, 50)
|
||||
result = self.data.data_process_for_calculate_correlation()
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(2/3)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.text_output(self.ui, "(3/4)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(2/3)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
PublicFunc.text_output(self.ui, "(3/4)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
# 绘图
|
||||
PublicFunc.progressbar_update(self, 3, 3, Constants.DRAWING_DATA, 70)
|
||||
PublicFunc.progressbar_update(self, 4, 4, Constants.DRAWING_DATA, 70)
|
||||
result = self.__plot__(result.data)
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(3/3)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.text_output(self.ui, "(4/4)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(3/3)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
PublicFunc.text_output(self.ui, "(4/4)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
self.__reset__()
|
||||
self.figToolbar.action_Get_Range.setEnabled(True)
|
||||
@ -1530,6 +1544,23 @@ class Data:
|
||||
|
||||
return Result().success(info=Constants.INPUT_FINISHED)
|
||||
|
||||
def resample(self):
|
||||
if self.raw_orgBcg is None or self.raw_BCG is None or self.raw_ECG is None:
|
||||
Result().failure(info=Constants.RESAMPLE_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
|
||||
try:
|
||||
if Config["InputConfig"]["orgBcgFreq"] != Config["InputConfig"]["UseFreq"]:
|
||||
self.raw_orgBcg = resample(self.raw_orgBcg,
|
||||
int(len(self.raw_orgBcg) *
|
||||
(Config["InputConfig"]["UseFreq"] / Config["InputConfig"]["orgBcgFreq"])))
|
||||
else:
|
||||
return Result().success(info=Constants.RESAMPLE_NO_NEED)
|
||||
except Exception as e:
|
||||
Result().failure(info=Constants.RESAMPLE_FAILURE +
|
||||
Constants.FAILURE_REASON["Resample_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.RESAMPLE_FINISHED)
|
||||
|
||||
def data_process_for_calculate_correlation(self):
|
||||
if self.Jpeak is None or self.Rpeak is None:
|
||||
return Result().failure(info=Constants.PRECISELY_ALIGN_PROCESS_FAILURE +
|
||||
@ -1873,6 +1904,11 @@ class Data:
|
||||
if (not Path(Config["Path"]["Save_OrgBCG"]).parent.exists()) or (not Path(Config["Path"]["Save_OrgBCG"]).parent.is_dir()):
|
||||
Path(Config["Path"]["Save_OrgBCG"]).parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
if Config["InputConfig"]["orgBcgFreq"] != Config["InputConfig"]["UseFreq"]:
|
||||
self.res_orgBcg = resample(self.res_orgBcg,
|
||||
int(len(self.res_orgBcg) *
|
||||
(Config["InputConfig"]["orgBcgFreq"] / Config["InputConfig"]["UseFreq"])))
|
||||
|
||||
if self.res_orgBcg is None:
|
||||
return Result().failure(info=Constants.PRECISELY_ALIGN_SAVING_RES_ORGBCG_FAILURE +
|
||||
Constants.FAILURE_REASON["res_orgBcg_Not_Exist"])
|
||||
|
||||
@ -309,6 +309,17 @@ class MainWindow_preprocess(QMainWindow):
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(1/1)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
# 重采样
|
||||
PublicFunc.progressbar_update(self, 2, 2, Constants.RESAMPLING_DATA, 0)
|
||||
result = self.data.resample()
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(2/2)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(2/2)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
self.__reset__()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
|
||||
@ -419,15 +430,29 @@ class Data:
|
||||
|
||||
return Result().success(info=Constants.INPUT_FINISHED)
|
||||
|
||||
def preprocess(self):
|
||||
def resample(self):
|
||||
if self.raw_data is None:
|
||||
Result().failure(info=Constants.PREPROCESS_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
Result().failure(info=Constants.RESAMPLE_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
|
||||
try:
|
||||
if Config["InputConfig"]["Freq"] != Config["OutputConfig"]["Freq"]:
|
||||
self.raw_data = resample(self.raw_data,
|
||||
int(len(self.raw_data) *
|
||||
(Config["OutputConfig"]["Freq"] / Config["InputConfig"]["Freq"])))
|
||||
else:
|
||||
return Result().success(info=Constants.RESAMPLE_NO_NEED)
|
||||
except Exception as e:
|
||||
Result().failure(info=Constants.RESAMPLE_FAILURE +
|
||||
Constants.FAILURE_REASON["Resample_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.RESAMPLE_FINISHED)
|
||||
|
||||
def preprocess(self):
|
||||
if self.raw_data is None:
|
||||
Result().failure(info=Constants.PREPROCESS_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
|
||||
try:
|
||||
|
||||
if Config["Mode"] == "BCG":
|
||||
self.processed_data = Butterworth_for_BCG_PreProcess(self.raw_data, type='bandpass',
|
||||
low_cut=Config["Filter"]["BCGBandPassLow"],
|
||||
|
||||
@ -26,6 +26,7 @@ class Constants:
|
||||
RESAMPLING_DATA: str = "正在数据重采样"
|
||||
RESAMPLE_FINISHED: str = "重采样完成"
|
||||
RESAMPLE_FAILURE: str = "重采样失败"
|
||||
RESAMPLE_NO_NEED: str = "无需进行重采样"
|
||||
|
||||
LOADING_ARCHIVE: str = "正在获取历史存档"
|
||||
ARCHIVE_EXIST: str = "找到历史存档,成功读取"
|
||||
|
||||
Reference in New Issue
Block a user