0311更新

main
ZHANGXUXU\95193 2 years ago
parent 0e55c20ff2
commit f603f2816f

@ -54,7 +54,7 @@ QPushButton#initAddDeviceButton, QPushButton#initAreaAddButton{
} }
QPushButton#initAddDeviceButton:hover, QPushButton#initAreaAddButton:hover{ QPushButton#initAddDeviceButton:hover, QPushButton#initAreaAddButton:hover, QPushButton#deviceAddButton:hover, QPushButton#addareabutton:hover{
color: #1a86d8; color: #1a86d8;
@ -105,19 +105,31 @@ QLabel#dataTypeLabel, QLabel#dataOrderLabel, QLabel#byteLineLabel{
} }
QLabel#pvUpperLimit, QLabel#pvLowerLimit, QLabel#pvUnit{
font-size: 24px;
}
QLabel#areaValueLabel{ QLabel#areaValueLabel{
color: #0160aa; color: #0160aa;
} }
QLineEdit#byteLineEdit{
font-size: 24px;
QLineEdit#byteLineEdit, QLineEdit#areaLineEdit { }
font-size: 28px;
QLineEdit#areaLineEdit {
font-size: 28px;
} }

@ -1,76 +0,0 @@
from PyQt5.QtWidgets import QDialog, QFormLayout, QLineEdit, QComboBox, QDialogButtonBox, QApplication, QMessageBox
from PyQt5.QtGui import QPixmap, QIcon
from PyQt5.QtCore import Qt
import sys
import re
class AreaSettingWidget(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.initUI()
def initUI(self):
layout = QFormLayout()
varType = QComboBox()
varType.addItems(['AI', 'AO', 'DI', 'DO'])
varType.setObjectName('varType')
channelNums = QLineEdit()
channelNums.setObjectName('channelNums')
channelBytes = QLineEdit()
channelBytes.setObjectName('channelBytes')
layout.addRow('协议类型:', varType)
layout.addRow('通道数:', channelNums)
layout.addRow("字节长度:", channelBytes)
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
ok_button = button_box.button(QDialogButtonBox.Ok)
ok_button.setText("确定") # 设置Ok按钮的文本
cancel_button = button_box.button(QDialogButtonBox.Cancel)
cancel_button.setText("取消") # 设置Cancel按钮的文本
button_box.accepted.connect(self.check_input)
button_box.rejected.connect(self.reject)
layout.addRow(button_box)
self.setWindowIcon(QIcon('Static/zhjt.ico'))
self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) # 去掉标题栏的问号
self.setLayout(layout)
self.setWindowTitle("通道配置")
def getParameters(self):
varType = self.findChild(QComboBox, "varType").currentText()
channelNums = self.findChild(QLineEdit, "channelNums").text()
channelBytes = self.findChild(QLineEdit, "channelBytes").text()
return varType, channelNums, channelBytes
def check_input(self):
varType, channelNums, channelBytes = self.getParameters()
if not channelNums or not channelBytes:
QMessageBox.warning(self, '警告', '有值未输入。')
elif not re.match(r'^[-+]?\d*\.?\d*$', channelNums) or not re.match(r'^[-+]?\d*\.?\d*$', channelBytes):
QMessageBox.warning(self, '警告', '请输入数字。')
else:
self.accept() # 所有输入都是数字且不为空时接受对话框
def dataTypeTranslate(self, order):
self.dataTypeDict = {'不转换': 'ABCD', '字节转换': 'DCBA', '字转换': 'CDAB', '字转换': 'BADC'}
return self.dataTypeDict[order]
if __name__ == '__main__':
app = QApplication(sys.argv)
window = AreaSettingWidget()
window.show()
sys.exit(app.exec_())

@ -11,8 +11,8 @@ from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QSize from PyQt5.QtCore import QSize
from model.ProjectModel.DeviceManage import Device, DevicesManange from model.ProjectModel.DeviceManage import Device, DevicesManange
from UI.ButtonLayoutWidget import ButtonWidgets from UI.RightAreaWidget import RightAreaWidgets
from utils.DBModels.DeviceModels import DeviceDB
@ -21,7 +21,6 @@ class AreaTabWidget(QTabWidget):
super().__init__() super().__init__()
self.deviceWidget = deviceWidget self.deviceWidget = deviceWidget
self.devicesManange = self.deviceWidget.devicesManange self.devicesManange = self.deviceWidget.devicesManange
self.initUI() self.initUI()
@ -36,9 +35,9 @@ class AreaTabWidget(QTabWidget):
self.addAreaButton.setObjectName('addareabutton') self.addAreaButton.setObjectName('addareabutton')
self.addAreaButton.setIcon(QIcon('Static/add.png')) self.addAreaButton.setIcon(QIcon('Static/add.png'))
self.addAreaButton.setFlat(True) self.addAreaButton.setFlat(True)
self.setCornerWidget(self.addAreaButton)
self.addAreaButton.clicked.connect(self.addAreaTab) self.addAreaButton.clicked.connect(self.addAreaTab)
self.setCornerWidget(self.addAreaButton)
# self.state = True # self.state = True
self.initWidget() #初始化界面 self.initWidget() #初始化界面
@ -86,12 +85,17 @@ class AreaTabWidget(QTabWidget):
def addAreaTab(self, init = False, settingValue = None): def addAreaTab(self, init = False, settingValue = None):
if settingValue is None: if settingValue is None:
if init: if init:
self.removeTab(0) self.removeTab(0)
tabIndex = self.count() tabIndex = self.count()
#判断area右侧布局是是否添加
if self.widget(int(tabIndex - 1)):
if not self.widget(int(tabIndex - 1)).rightAreaWidgetState:
QMessageBox.warning(self, '警告', '有值未输入。')
return
areaWidget = AreaWidget(self) areaWidget = AreaWidget(self)
self.addTab(areaWidget, '通道' + str(tabIndex + 1)) self.addTab(areaWidget, '通道' + str(tabIndex + 1))
self.setCurrentIndex(tabIndex) self.setCurrentIndex(tabIndex)
@ -131,6 +135,7 @@ class AreaWidget(QWidget):
self.settingValue = settingValue self.settingValue = settingValue
self.state = True self.state = True
self.devicesManange = self.areaTabWidget.devicesManange self.devicesManange = self.areaTabWidget.devicesManange
self.rightAreaWidgetState = False
self.initUI() self.initUI()
def initUI(self): def initUI(self):
@ -138,6 +143,19 @@ class AreaWidget(QWidget):
self.leftLayout = QGridLayout() self.leftLayout = QGridLayout()
self.rightLayout = QGridLayout() self.rightLayout = QGridLayout()
LimitData = self.devicesManange.getLimitData(self.areaTabWidget.deviceName)
self.pvUpperLimit = QLabel('量程上限: {}'.format(LimitData[0]))
self.pvUpperLimit.setObjectName('pvUpperLimit')
self.pvLowerLimit = QLabel('量程下限: {}'.format(LimitData[1]))
self.pvLowerLimit.setObjectName('pvLowerLimit')
self.pvUnit = QLabel('单位: {}'.format(LimitData[2]))
self.pvUnit.setObjectName('pvUnit')
self.dataTypeLabel = QLabel('数据类型:') self.dataTypeLabel = QLabel('数据类型:')
self.dataTypeLabel.setObjectName('dataTypeLabel') self.dataTypeLabel.setObjectName('dataTypeLabel')
# self.dataTypeLabel.setFixedSize(90, 27) # self.dataTypeLabel.setFixedSize(90, 27)
@ -178,13 +196,23 @@ class AreaWidget(QWidget):
hLayout.addWidget(self.okBtn) hLayout.addWidget(self.okBtn)
hLayout.addWidget(self.delAreaBtn) hLayout.addWidget(self.delAreaBtn)
self.leftLayout.addWidget(self.dataTypeLabel, 0, 0, 1, 1)
self.leftLayout.addWidget(self.dataTypeCombox, 0, 1, 1, 1) # vlayout = QVBoxLayout()
self.leftLayout.addWidget(self.dataOrderLabel,1, 0, 1, 1 ) # vlayout.addWidget(self.pvUpperLimit)
self.leftLayout.addWidget(self.orderCombox,1, 1, 1, 1 ) # vlayout.addWidget(self.pvLowerLimit)
self.leftLayout.addWidget(self.byteLineLabel,2, 0, 1, 1 ) # vlayout.addWidget(self.pvUnit)
self.leftLayout.addWidget(self.byteLineEdit,2, 1, 1, 1 ) self.leftLayout.addWidget(self.pvUpperLimit, 0, 0, 1, 2)
self.leftLayout.addLayout(hLayout, 3, 0, 1, 2) self.leftLayout.addWidget(self.pvLowerLimit, 1, 0, 1, 2)
self.leftLayout.addWidget(self.pvUnit,2, 0, 1, 2)
self.leftLayout.addWidget(self.dataTypeLabel, 3, 0, 2, 1)
self.leftLayout.addWidget(self.dataTypeCombox, 3, 1, 2, 1)
self.leftLayout.addWidget(self.dataOrderLabel,4, 0, 2, 1)
self.leftLayout.addWidget(self.orderCombox,4, 1, 2, 1)
self.leftLayout.addWidget(self.byteLineLabel,5, 0, 2,1)
self.leftLayout.addWidget(self.byteLineEdit,5, 1, 2, 1)
self.leftLayout.addWidget(QSplitter(),6, 0, 2, 2)
self.leftLayout.addLayout(hLayout, 7, 0, 2, 2)
# self.leftLayout.addWidget(self.delAreaBtn, 3, 1, 1, 1) # self.leftLayout.addWidget(self.delAreaBtn, 3, 1, 1, 1)
@ -202,10 +230,14 @@ class AreaWidget(QWidget):
# self.deviceWidgetManage.addArea(mainLayout=mainLayout, leftLayoutWidget=leftLayoutWidgets) # self.deviceWidgetManage.addArea(mainLayout=mainLayout, leftLayoutWidget=leftLayoutWidgets)
self.setLayout(self.mainLayout) self.setLayout(self.mainLayout)
if self.settingValue is not None: if self.settingValue is not None:
self.addAreaWidget() self.addAreaWidget()
self.settingValue = None self.settingValue = None
def setByteLineEditValue(self): def setByteLineEditValue(self):
byteLineEditValue = self.dataTypeCombox.currentText() byteLineEditValue = self.dataTypeCombox.currentText()
if byteLineEditValue in ['DI','DO']: if byteLineEditValue in ['DI','DO']:
@ -215,15 +247,12 @@ class AreaWidget(QWidget):
self.byteLineEdit.setEnabled(True) self.byteLineEdit.setEnabled(True)
def removeAreaTab(self): def removeAreaTab(self):
# 只点击了新建域按钮,未点击确定按钮时,直接点击删除按钮的删除情况 # 只点击了新建域按钮,未点击确定按钮时,直接点击删除按钮的删除情况
index = self.areaTabWidget.currentIndex() index = self.areaTabWidget.currentIndex()
tabCount = self.areaTabWidget.count() tabCount = self.areaTabWidget.count()
if self.okBtn.text() == '确定': if self.okBtn.text() == '确定':
if index != -1: if index != -1:
self.areaTabWidget.removeTab(index) self.areaTabWidget.removeTab(index)
# if tabCount == 1:
# self.areaTabWidget.initWidget()
# self.state = True
#正常点击删除按钮的情况 #正常点击删除按钮的情况
else: else:
@ -241,6 +270,14 @@ class AreaWidget(QWidget):
self.areaTabWidget.initWidget() self.areaTabWidget.initWidget()
self.state = True self.state = True
#重新设置通道显示值
else:
for index in range(self.areaTabWidget.count()):
self.areaTabWidget.setTabText(index, '通道{}'.format(index+1))
@ -262,6 +299,7 @@ class AreaWidget(QWidget):
dataTypeIndex = self.settingValue[0] dataTypeIndex = self.settingValue[0]
orderIndex = self.settingValue[1] orderIndex = self.settingValue[1]
byteLineEditIndex = self.settingValue[2] byteLineEditIndex = self.settingValue[2]
self.dataTypeCombox.setCurrentIndex(dataTypeIndex) self.dataTypeCombox.setCurrentIndex(dataTypeIndex)
self.orderCombox.setCurrentIndex(orderIndex) self.orderCombox.setCurrentIndex(orderIndex)
self.byteLineEdit.setText(byteLineEditIndex) self.byteLineEdit.setText(byteLineEditIndex)
@ -269,11 +307,12 @@ class AreaWidget(QWidget):
order = self.dataTypeTranslate(self.orderCombox.currentText()) order = self.dataTypeTranslate(self.orderCombox.currentText())
byteLineEdit = self.byteLineEdit.text() byteLineEdit = self.byteLineEdit.text()
#判断字节长度的输入是否是数字 #判断字节长度的输入是否是数字
pattern = re.compile(r'^\d+$') pattern = re.compile(r'^[1-7]$')
match = pattern.match(byteLineEdit) match = pattern.match(byteLineEdit)
if not match: if not match:
QMessageBox.warning(self, '提示', '请输入数字') QMessageBox.warning(self, '提示', '请输入1 - 8')
return return
else: else:
#设置点击确定后无法编辑,点击编辑后才能编辑 #设置点击确定后无法编辑,点击编辑后才能编辑
@ -302,11 +341,16 @@ class AreaWidget(QWidget):
widget.deleteLater() widget.deleteLater()
#添加按钮布局 #添加按钮布局
self.buttonWidgets = ButtonWidgets(self, order = order, byteLineEdit = byteLineEdit, dataType = dataType, deviceName = deviceName) self.rightAreaWidgets = RightAreaWidgets(self, order = order, byteLineEdit = byteLineEdit, dataType = dataType, deviceName = deviceName)
areaLayout.addWidget(self.buttonWidgets) areaLayout.addWidget(self.rightAreaWidgets)
self.state = False self.state = False
self.rightAreaWidgetState = True
areaId = DevicesManange.getAreaID(deviceName) areaId = DevicesManange.getAreaID(deviceName)
if self.settingValue is not None: if self.settingValue is not None:
self.isRead = self.devicesManange.getDevice(deviceName).addArea(type = dataType, bytes = int(byteLineEdit), order = order, nums = 1) self.isRead = self.devicesManange.getDevice(deviceName).addArea(type = dataType, bytes = int(byteLineEdit), order = order, nums = 1)

@ -1,61 +0,0 @@
from PyQt5.QtWidgets import QApplication, QMainWindow, QToolBar, QMdiArea, QAction, QInputDialog, QDialog, QFormLayout, QLineEdit, \
QMdiSubWindow, QDialogButtonBox, QWidget, QComboBox, QTabBar, QTabWidget, QGridLayout, QLabel, QPushButton, QSpacerItem,QSizePolicy
from AreaSettingWidget import AreaSettingWidget
import sys
class AreaWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.sub_window = QMdiSubWindow() # 创建一个子窗口
self.layoutAI = QGridLayout()
self.widget = QWidget()
self.widget.setLayout(self.layoutAI)
self.newbtn = QPushButton('New')
self.delbtn = QPushButton('Del')
self.layoutAI.addWidget(self.newbtn, 0, 0)
self.layoutAI.addWidget(self.delbtn, 0, 1)
self.newbtn.clicked.connect(lambda: self.newArea)
self.delbtn.clicked.connect(self.delArea)
self.layoutAI.addWidget(self.newbtn, 0, 0, 1, 1)
self.layoutAI.addWidget(self.delbtn, 0, 2, 1, 1)
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.layoutAI.addItem(self.horizontalSpacer, 0, 1, 1, 1)
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
self.layoutAI.addItem(self.verticalSpacer, 1, 0, 1, 1)
# self.sub_window.setGeometry(100, 100, 400, 300)
self.sub_window.setWidget(self.widget)
def newArea(self):
# print(1)
areaSettingWidget = AreaSettingWidget()
if areaSettingWidget.exec_() == QDialog.Accepted:
deviceName, proType, varType = areaSettingWidget.getParameters()
def delArea(self):
pass
if __name__ == '__main__':
app = QApplication(sys.argv)
window = AreaWidget()
window.show()
sys.exit(app.exec_())

@ -1,86 +0,0 @@
from PyQt5.QtWidgets import QApplication, QMainWindow, QToolBar, QMdiArea, QAction, QInputDialog, QDialog, QFormLayout, QLineEdit, \
QMdiSubWindow, QDialogButtonBox, QWidget, QComboBox, QTabBar, QTabWidget, QGridLayout, QLabel, QPushButton, QSpacerItem,QSizePolicy, QCheckBox, QVBoxLayout
from UI.AreaSettingWidget import AreaSettingWidget
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap, QIcon
import sys
from model.ProjectModel.DeviceManage import Device
class DelAreaWidget(QDialog):
def __init__(self, deviceName):
super().__init__()
self.checkbox_data ={}
self.deviceName = deviceName
self.delAreaRowAndColunm = []
self.initUI()
self.intType = 0
self.foloatType = 1
def initUI(self):
vorlayout = QVBoxLayout() #主布局
# layout = QGridLayout()
jsonCons = Device.getAreaJson(self.deviceName)
row = 1
if jsonCons is None:
return
else:
for jsoncon in jsonCons:
varType = jsoncon["type"]
channelNums = jsoncon["nums"]
channelBytes = jsoncon["bytes"]
text = varType + ": " + channelBytes + 'Byte' + '数量:'+ channelNums
checkbox = QCheckBox(text)
vorlayout.addWidget(checkbox)
checkbox.stateChanged.connect(self.checkbox_state_changed)
self.checkbox_data[checkbox] = row
row += 1
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
ok_button = button_box.button(QDialogButtonBox.Ok)
ok_button.setText("确定") # 设置Ok按钮的文本
cancel_button = button_box.button(QDialogButtonBox.Cancel)
cancel_button.setText("取消") # 设置Cancel按钮的文本
button_box.accepted.connect(self.getDelAreaRowAndColunm)
button_box.rejected.connect(self.reject)
vorlayout.addWidget(button_box)
self.setWindowIcon(QIcon('Static/zhjt.ico'))
self.setWindowTitle("删除通道")
self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)#去掉标题栏的问号
self.setLayout(vorlayout)
def checkbox_state_changed(self, state):
sender = self.sender() # 获取触发信号的对象
if isinstance(sender, QCheckBox):
if state == 2: # 选中状态
self.delAreaRowAndColunm.append(self.checkbox_data[sender]) # 从字典中获取行列信息
elif state == 0: # 取消选中状态
self.delAreaRowAndColunm.remove(self.checkbox_data[sender])
def getDelAreaRowAndColunm(self):
self.accept()
return self.delAreaRowAndColunm
if __name__ == '__main__':
app = QApplication(sys.argv)
# Client.initDB()
window = DelAreaWidget()
window.show()
sys.exit(app.exec_())

@ -2,11 +2,12 @@ import re
from PyQt5.QtWidgets import QDialog, QFormLayout, QLineEdit, QDialogButtonBox, QMessageBox from PyQt5.QtWidgets import QDialog, QFormLayout, QLineEdit, QDialogButtonBox, QMessageBox
from PyQt5.QtGui import QIcon from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from utils.DBModels.DeviceModels import DeviceDB
class DeviceDialog(QDialog): class DeviceDialog(QDialog):
def __init__(self, parent=None): def __init__(self,dataTypeAndModel,parent=None):
super().__init__(parent) super().__init__(parent)
self.dataTypeAndModel = dataTypeAndModel
self.initUI() self.initUI()
def initUI(self): def initUI(self):
@ -15,8 +16,6 @@ class DeviceDialog(QDialog):
deviceName = QLineEdit() deviceName = QLineEdit()
deviceName.setObjectName('deviceName') deviceName.setObjectName('deviceName')
pvUpperLimit = QLineEdit() pvUpperLimit = QLineEdit()
pvUpperLimit.setObjectName('pvUpperLimit') pvUpperLimit.setObjectName('pvUpperLimit')
@ -56,11 +55,15 @@ class DeviceDialog(QDialog):
return deviceName, pvUpperLimit, pvLowerLimit, pvUnit return deviceName, pvUpperLimit, pvLowerLimit, pvUnit
def check_input(self): def check_input(self):
deviceName, pvUpperLimit, pvLowerLimit, pvUnit = self.getParameters() titleName, pvUpperLimit, pvLowerLimit, pvUnit = self.getParameters()
deviceName = titleName + self.dataTypeAndModel
if not pvUpperLimit or not pvLowerLimit or not pvUnit or not deviceName: if not pvUpperLimit or not pvLowerLimit or not pvUnit or not deviceName:
QMessageBox.warning(self, '警告', '有值未输入。') QMessageBox.warning(self, '警告', '有值未输入。')
return return
elif DeviceDB.getByName(deviceName):
print(DeviceDB.getByName(deviceName),2343)
QMessageBox.warning(self, '警告', '设备名重复')
return
elif not re.match(r'^[-+]?\d*\.?\d*$', pvUpperLimit) or not re.match(r'^[-+]?\d*\.?\d*$', pvLowerLimit): elif not re.match(r'^[-+]?\d*\.?\d*$', pvUpperLimit) or not re.match(r'^[-+]?\d*\.?\d*$', pvLowerLimit):
QMessageBox.warning(self, '警告', '请输入数字。') QMessageBox.warning(self, '警告', '请输入数字。')
return return

@ -17,16 +17,15 @@ class DeviceWidget(QMainWindow):
def __init__(self, dockWidget, devicesManange): def __init__(self, dockWidget, devicesManange):
super().__init__() super().__init__()
self.dockWidget = dockWidget self.dockWidget = dockWidget
self.forceValues = []
self.devicesManange = devicesManange self.devicesManange = devicesManange
self.initUI() self.initUI()
def initUI(self): def initUI(self):
#获取DP、PA协议和主从模式 #获取DP、PA协议和主从模式
self.dataTypeAndModel = self.dockWidget.windowTitle()
self.proType = self.dockWidget.windowTitle()[0:2] self.proType = self.dataTypeAndModel[0:2]
self.masterSlaveModel = self.dockWidget.windowTitle()[2:4] self.masterSlaveModel = self.dataTypeAndModel[2:4]
self.deviceTabWidget = QTabWidget(self) self.deviceTabWidget = QTabWidget(self)
@ -56,9 +55,11 @@ class DeviceWidget(QMainWindow):
QMessageBox.Yes | QMessageBox.No, QMessageBox.No) QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes: if reply == QMessageBox.Yes:
if index != -1: if index != -1:
deviceName = self.deviceTabWidget.tabText(index) + self.dockWidget.windowTitle()
print(deviceName,index,222)
self.deviceTabWidget.removeTab(index) self.deviceTabWidget.removeTab(index)
self.devicesManange.delDevice(deviceName = self.deviceName) self.devicesManange.delDevice(deviceName = deviceName )
DeviceDB.deleteDevice(deviceName = self.deviceName) DeviceDB.deleteDevice(deviceName = deviceName)
else: else:
return return
if self.deviceTabWidget.count() == 0: if self.deviceTabWidget.count() == 0:
@ -68,11 +69,11 @@ class DeviceWidget(QMainWindow):
def addDeviceWidget(self,init = False,deviceName = None): def addDeviceWidget(self,init = False,deviceName = None):
if deviceName is None: if deviceName is None:
dialog = DeviceDialog() dialog = DeviceDialog(self.dataTypeAndModel)
if dialog.exec_() == QDialog.Accepted: if dialog.exec_() == QDialog.Accepted:
self.titleName, pvUpperLimit, pvLowerLimit, pvUnit = dialog.getParameters() self.titleName, pvUpperLimit, pvLowerLimit, pvUnit = dialog.getParameters()
self.deviceName = self.titleName + self.dockWidget.windowTitle() self.deviceName = self.titleName + self.dataTypeAndModel
DeviceDB().addDevice(deviceName = self.deviceName, proType = self.proType , masterSlaveModel = self.masterSlaveModel) DeviceDB().addDevice(deviceName = self.deviceName, proType = self.proType , masterSlaveModel = self.masterSlaveModel, pvUpperLimit=pvUpperLimit, pvLowerLimit=pvLowerLimit, pvUnit=pvUnit)
areaTabWidget = AreaTabWidget(self) areaTabWidget = AreaTabWidget(self)
if init: if init:
self.deviceTabWidget.removeTab(0) self.deviceTabWidget.removeTab(0)
@ -84,7 +85,6 @@ class DeviceWidget(QMainWindow):
else: else:
return return
else: else:
self.deviceName = deviceName self.deviceName = deviceName
self.titleName = self.deviceName[:-4] self.titleName = self.deviceName[:-4]
areaTabWidget = AreaTabWidget(self) areaTabWidget = AreaTabWidget(self)

@ -1,6 +0,0 @@
111111111111111111111111
111111111111111111111111

@ -5,14 +5,13 @@ import re
class forceButton(QPushButton): class forceButton(QPushButton):
def __init__(self, number = None, valueLabel = None, valueEdit = None): def __init__(self, number = None, valueLabel = None, valueEdit = None):
super().__init__() super().__init__()
self.valueEdit = valueEdit self.valueEdit = valueEdit
self.valueLabel = valueLabel self.valueLabel = valueLabel
self.number = number self.number = number
self.setObjectName('forceBtn') self.setObjectName('forceBtn')
self.setText('强制') self.setText('强制')
class ButtonWidgets(QWidget): class RightAreaWidgets(QWidget):
def __init__(self, areaWidget, order, byteLineEdit, dataType, deviceName): def __init__(self, areaWidget, order, byteLineEdit, dataType, deviceName):
super().__init__() super().__init__()
self.areaLineEditValue = [] self.areaLineEditValue = []

@ -399,6 +399,16 @@ class DevicesManange():
return return
l = [] l = []
for x in devices: for x in devices:
l.append([x.deviceName, x.proType, x.masterSlaveModel, x.areaJson]) l.append([x.deviceName, x.proType, x.masterSlaveModel, x.areaJson, x.pvLowerLimit, x.pvUpperLimit, x.pvUnit])
return l return l
@classmethod
def getLimitData(cls, deviceName):
try:
pvUpperLimit = DeviceDB.getByName(deviceName=deviceName).pvUpperLimit
pvLowerLimit = DeviceDB.getByName(deviceName=deviceName).pvLowerLimit
pvUnit = DeviceDB.getByName(deviceName=deviceName).pvUnit
l =[pvUpperLimit, pvLowerLimit, pvUnit]
return l
except Exception as e:
return print(e)

@ -50,7 +50,7 @@ class DeviceDB(BaseModel):
# 添加设备 # 添加设备
def addDevice(self, deviceName, proType, masterSlaveModel=masterSlaveModel, areaJson=json.dumps([]), pvLowerLimit=pvLowerLimit, pvUpperLimit=pvUpperLimit, pvUnit=pvUnit): def addDevice(self, deviceName, proType, masterSlaveModel=masterSlaveModel, areaJson=json.dumps([]), pvUpperLimit=pvUpperLimit, pvLowerLimit=pvLowerLimit, pvUnit=pvUnit):
self.deviceName = deviceName self.deviceName = deviceName
self.proType = proType self.proType = proType
self.masterSlaveModel = masterSlaveModel self.masterSlaveModel = masterSlaveModel

Loading…
Cancel
Save