import json from PyQt6 import * from PyQt6.QtCore import * from PyQt6.QtGui import * from PyQt6.QtWidgets import * from ui.Ui_chooseDeviceDlg import Ui_chooseDeviceDlg from deviceModel.deviceManager import deviceManager from devmodelModel.devModelManager import devModelManager from instructionModel.instructionManager import instructionManager from taskInstructionModel.taskInstructionManager import taskInstructionManager from common import common class ChooseDeviceDlg(QDialog): chooseFinished = pyqtSignal() def __init__(self, parent=None): super().__init__(parent) self.ui = Ui_chooseDeviceDlg() self.ui.setupUi(self) self.task_instruction_id = None self.dev_model_id = None self.device_id = None self.ui.cbDevice.currentIndexChanged.connect(self.cbDeviceChanged) self.ui.pbOk.clicked.connect(self.handleAccept) self.ui.pbCancel.clicked.connect(self.reject) # 加载设备模型 def loadDevice(self): devices = deviceManager.getInfo() if len(devices) > 0: self.ui.cbDevice.clear() for device in devices: if device["dev_model_id"] == self.dev_model_id: self.ui.cbDevice.addItem(device["name"], device) def showChooseDeviceDlg(self, task_instruction_id, target_id): self.task_instruction_id = task_instruction_id instructionInfo =instructionManager.getInfo(target_id) print(instructionInfo,target_id) self.dev_model_id = instructionInfo["dev_model_id"] dev_modelInfo = devModelManager.getInfo(self.dev_model_id) self.ui.leModelName.setText(dev_modelInfo["name"]) self.loadDevice() self.exec() def cbDeviceChanged(self): device = self.ui.cbDevice.currentData() self.device_id = device["id"] def handleAccept(self): param = {"device_id": self.device_id} if taskInstructionManager.update(self.task_instruction_id, param): self.chooseFinished.emit() self.accept()