添加了<数据精同步>的重采样,并且OrgBCG的采样率在切割前后都将保持一致
This commit is contained in:
@ -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"])
|
||||
|
||||
Reference in New Issue
Block a user