From f1447596b09d7052530c237a14c768398ff132d2 Mon Sep 17 00:00:00 2001 From: Yorusora <2944763079@qq.com> Date: Wed, 21 May 2025 09:48:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86<=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=B2=BE=E5=90=8C=E6=AD=A5>=E7=9A=84=E9=87=8D=E9=87=87?= =?UTF-8?q?=E6=A0=B7=EF=BC=8C=E5=B9=B6=E4=B8=94OrgBCG=E7=9A=84=E9=87=87?= =?UTF-8?q?=E6=A0=B7=E7=8E=87=E5=9C=A8=E5=88=87=E5=89=B2=E5=89=8D=E5=90=8E?= =?UTF-8?q?=E9=83=BD=E5=B0=86=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- func/Module_precisely_align.py | 48 +++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/func/Module_precisely_align.py b/func/Module_precisely_align.py index 5d558db..8ca9c0e 100644 --- a/func/Module_precisely_align.py +++ b/func/Module_precisely_align.py @@ -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"])