From 26e835e25ab478933dc4cfbb2c100cf87b344810 Mon Sep 17 00:00:00 2001 From: zhu-mengmeng <15588200382@163.com> Date: Sun, 22 Jun 2025 01:32:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AE=80=E5=8C=96=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E9=80=BB=E8=BE=91=EF=BC=8C=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D=E6=A1=86=EF=BC=8C=E7=9B=B4=E6=8E=A5=E5=86=99?= =?UTF-8?q?=E5=85=A5=E5=AF=84=E5=AD=98=E5=99=A8=202=20=E5=92=8C=203=20?= =?UTF-8?q?=E7=9A=84=E5=80=BC=E4=B8=BA=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- widgets/main_window.py | 116 ++++------------------------------------- 1 file changed, 10 insertions(+), 106 deletions(-) diff --git a/widgets/main_window.py b/widgets/main_window.py index 36b20c0..828ba87 100644 --- a/widgets/main_window.py +++ b/widgets/main_window.py @@ -482,113 +482,17 @@ class MainWindow(MainWindowUI): def handle_start(self): """ - 处理开始按钮点击事件,并启动 modbus 监控 + 2,3 寄存器设置为 1 """ - # 创建对话框 - dialog = QDialog(self) - dialog.setWindowTitle("上料操作") - dialog.setFixedSize(300, 200) - - # 对话框布局 - layout = QVBoxLayout(dialog) - - # 添加提示信息 - info_label = QLabel("请选择拆垛层数:") - info_label.setFont(self.normal_font) - layout.addWidget(info_label) - - # 添加托盘类型选择 - pallet_combo = QComboBox() - pallet_combo.setFont(self.normal_font) - # 复制当前托盘类型选择器的内容 - for i in range(1,4): - pallet_combo.addItem(str(i)) - layout.addWidget(pallet_combo) - - # 添加提示信息 - info_label = QLabel("请选择码垛层数:") - info_label.setFont(self.normal_font) - layout.addWidget(info_label) - - # 添加托盘类型选择 - pallet_combo2 = QComboBox() - pallet_combo2.setFont(self.normal_font) - # 复制当前托盘类型选择器的内容 - for i in range(1,4): - pallet_combo2.addItem(str(i)) - layout.addWidget(pallet_combo2) - - - - # 添加按钮 - button_layout = QHBoxLayout() - confirm_button = QPushButton("确认") - confirm_button.setFont(self.normal_font) - confirm_button.setStyleSheet("background-color: #e3f2fd; border: 1px solid #2196f3; padding: 8px 16px; font-weight: bold; border-radius: 4px;") - - cancel_button = QPushButton("取消") - cancel_button.setFont(self.normal_font) - cancel_button.setStyleSheet("padding: 8px 16px; font-weight: bold; border-radius: 4px;") - - button_layout.addStretch() - button_layout.addWidget(confirm_button) - button_layout.addWidget(cancel_button) - layout.addLayout(button_layout) - - # 连接按钮信号 - confirm_button.clicked.connect(dialog.accept) - cancel_button.clicked.connect(dialog.reject) - - # 显示对话框 - result = dialog.exec() - - # 如果用户确认,则执行上料操作 - if result == QDialog.Accepted: - stow_num = pallet_combo.currentText() - stow_num2 = pallet_combo2.currentText() - - # 获取托盘号对应的托盘类型 - tray_id = self.tray_edit.currentText() - pallet_type = self.pallet_type_manager.get_pallet_type_by_pallet_id(tray_id) - # 初始化托盘号对应的序号 - if tray_id not in self.init_seq: - self.init_seq[tray_id] = 1 - - if not pallet_type: - QMessageBox.warning(self, "错误", "未查到对应下料托盘类型") - return - - # 执行Modbus操作 - modbus = ModbusUtils() - client = modbus.get_client() - try: - # 启动Modbus监控 - self.setup_modbus_monitor() - - # 启动串口监听 - 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) - success3 = modbus.write_register_until_success(client, 3, 1) - success4 = modbus.write_register_until_success(client, 4, int(stow_num2)) - # 上料 D2 寄存器写入 1 ,D0 寄存器写入托盘类型 - if success0 and success2 and success1 and success3 and success4: - # 创建状态标签并显示在右上角 - self.show_operation_status("拆垛层数", "input", stow_num) - else: - QMessageBox.information(self, "操作提示", "上料失败") - except Exception as e: - logging.error(f"上料操作失败: {str(e)}") - QMessageBox.critical(self, "错误", f"上料操作失败: {str(e)}") - finally: - modbus.close_client(client) - + modbus = ModbusUtils() + client = modbus.get_client() + try: + success2 = modbus.write_register_until_success(client, 2, 1) + success3 = modbus.write_register_until_success(client, 3, 1) + except Exception as e: + logging.error(f"启动操作失败: {str(e)}") + finally: + modbus.close_client(client) def handle_stop(self): """处理停止按钮点击事件,并关闭 modbus 监控"""