TG-PlatformPlus/chooseDeviceDlg.py

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()