56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
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()
|
|
|