diff --git a/utils/serial_manager.py b/utils/serial_manager.py index 6842e28..13744fe 100644 --- a/utils/serial_manager.py +++ b/utils/serial_manager.py @@ -76,6 +76,7 @@ class SerialManager: # 注册触发键回调 self.keyboard_listener.register_callback(trigger_key, self.trigger_resistance_query) logging.info(f"已注册{trigger_key}按键回调用于触发米电阻查询") + # 注意:不在这里启动键盘监听器,而是在点击"开始"按钮时启动 except Exception as e: logging.error(f"初始化键盘监听器失败: {e}") # 创建一个空的键盘监听器对象,以避免后续代码出现NoneType错误 @@ -938,22 +939,12 @@ class SerialManager: else: logging.warning("米电阻串口未配置,跳过自动打开") - # 检查是否启用键盘监听功能 - enable_keyboard_listener = self.config.get_value('app.features.enable_keyboard_listener', False) - if enable_keyboard_listener: - # 启动键盘监听 - try: - self.start_keyboard_listener() - except Exception as e: - logging.error(f"启动键盘监听失败: {e}") - # 键盘监听启动失败不影响串口打开的整体状态 - else: - logging.info("键盘监听功能已在配置中禁用,跳过启动") + # 注意:不在这里启动键盘监听器,而是在MainWindow的handle_start方法中显式调用start_keyboard_listener if not success: logging.warning("部分串口自动打开失败,请检查设备连接或在参数配置中手动打开") - return True # 总是返回True,防止应用程序因串口问题而终止 + return True # 总是返回True,防止应用程序因串口问题而终止 def suspend_file_operations(self, suspend: bool): """暂停或恢复文件操作 diff --git a/widgets/main_window.py b/widgets/main_window.py index 8b3a00f..52fc53a 100644 --- a/widgets/main_window.py +++ b/widgets/main_window.py @@ -545,6 +545,10 @@ class MainWindow(MainWindowUI): # 启动串口监听 self.serial_manager.auto_open_configured_ports() + # 显式启动键盘监听器 + self.serial_manager.start_keyboard_listener() + logging.info("已在开始操作时启动键盘监听器") + success0 = modbus.write_register_until_success(client, 0, int(stow_num)) success1 = modbus.write_register_until_success(client, 1, int(pallet_type)) success2 = modbus.write_register_until_success(client, 2, 1)