From 7457cd8b4cd5c4c2b0c0f2f4415dcb87b6b7b6d5 Mon Sep 17 00:00:00 2001 From: zhu-mengmeng <15588200382@163.com> Date: Tue, 1 Jul 2025 10:15:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E6=80=A5=E5=81=9C?= =?UTF-8?q?=E4=BF=A1=E5=8F=B7=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/app_config.json | 2 +- db/jtDB.db | Bin 126976 -> 126976 bytes tests/main_window_old.py | 6 ++--- utils/register_handlers.py | 48 +++++++++++++++++++++++++++++-------- 4 files changed, 42 insertions(+), 14 deletions(-) diff --git a/config/app_config.json b/config/app_config.json index d348eb8..224bfde 100644 --- a/config/app_config.json +++ b/config/app_config.json @@ -90,6 +90,6 @@ } }, "electricity": { - "auto_start": true + "auto_start": false } } \ No newline at end of file diff --git a/db/jtDB.db b/db/jtDB.db index 867bbe1f67c9b47bd9e41cdb5970289710cdc6e7..b06fd1c1cbba2c0612dc51d6bc1b0486919ac707 100644 GIT binary patch delta 622 zcmZwDu@1pd6vlBkDmAhZ28mTU_ujU*y=Wx{lNT^FHmf(N#A0N!n(Sim7+%5VDI~6( z3Te;$8_xOun}@x5*!vcn9okbiyDVQ3n{1Q#mc;CQDz7TtqrGPLYrQtN(#CFLl_V1& zJO`8myu(3rPYd2`>|%mkq=+DiG$u$Ojq;S5V;pUmH$#A=iv%H3NKk+j5TuaQm(t&8 z@X`FQ{ZZD#BPi?P5|s6j1Z6!$nlm%YQ(F2aJ};8XwN!?HAV3-vNrp&$f`$Q_LzwyF PbF4>@|DoIB$9GLalZ0Wz^*{XPLJgI+(kUOxe*paW6|T9*fK0j0AM5UvIT R7>FyE@#X;&w{YhHkO*%<6zl*1 diff --git a/tests/main_window_old.py b/tests/main_window_old.py index ae2c283..bdbf667 100644 --- a/tests/main_window_old.py +++ b/tests/main_window_old.py @@ -2260,10 +2260,10 @@ class MainWindow(MainWindowUI): @Slot(int, str) def handle_error_1(self, error_code, error_desc): """机器人视觉报警""" - logging.info(f"[处理] 机器人视觉报警: {error_desc}") + logging.info(f"[处理] 机械手报警: {error_desc}") from utils.register_handlers import Error1Handler error_handler = Error1Handler() - detailed_desc = error_handler.error_map.get(error_code, f"机器人视觉报警-{error_code}") + detailed_desc = error_handler.error_map.get(error_code, f"机械手报警-{error_code}") # 保存故障码 self.error_1 = error_code @@ -2271,7 +2271,7 @@ class MainWindow(MainWindowUI): # 只有当错误码为1、2或3时才弹框提示 if error_code in [1, 2, 3]: - QMessageBox.warning(self, "机器人视觉报警", f"机器人视觉报警: {detailed_desc}") + QMessageBox.warning(self, "机械手报警", f"机械手报警: {detailed_desc}") # 获取Modbus连接 modbus = ModbusUtils() client = modbus.get_client() diff --git a/utils/register_handlers.py b/utils/register_handlers.py index 99ff385..d101241 100644 --- a/utils/register_handlers.py +++ b/utils/register_handlers.py @@ -173,7 +173,6 @@ class Error2Handler(RegisterHandler): self.callback = callback self.error_map = { 0: "无报警", - 1: "急停报警", 2: "贴标故障" } def handle_change(self, value): @@ -246,20 +245,49 @@ class NGHandler(RegisterHandler): self.callback(value) -class EmergencyStopHandler(RegisterHandler): - """寄存器D25处理器,处理急停信号""" +class EmergencyStopHandler: + """处理急停信号""" + def __init__(self, callback=None): - super().__init__() + """初始化处理器 + + Args: + callback: 回调函数,接收两个参数:value(int), desc(str) + """ self.callback = callback + self.prev_value = 0 + + # 急停状态描述映射 self.status_map = { 0: "正常", 1: "急停触发" } - def handle_change(self, value): - status = self.status_map.get(value, f"未知状态({value})") - logging.info(f"急停信号: {status}") + def handle(self, value): + """处理急停信号 - # 如果有回调函数,则调用 - if self.callback and value == 1: - self.callback(value, "监听到急停信号") \ No newline at end of file + Args: + value: 寄存器值 + + Returns: + tuple: (是否变化, 状态描述) + """ + # 检查值是否有效 + if value not in [0, 1]: + return False, f"无效的急停状态值: {value}" + + # 检查值是否变化 + if value == self.prev_value: + return False, self.status_map.get(value, "未知状态") + + # 更新上一次的值 + self.prev_value = value + + # 获取状态描述 + desc = self.status_map.get(value, "未知状态") + + # 调用回调函数 + if self.callback: + self.callback(value, desc) + + return True, desc \ No newline at end of file