|
|
|
@ -7,12 +7,12 @@ from UI.SoftKeyBoardEdit import SoftKeyBoardEdit
|
|
|
|
|
|
|
|
|
|
class ForceButton(QPushButton):
|
|
|
|
|
def __init__(self, number = None, valueLabel = None, valueEdit = None, qualityValueLabel = None, \
|
|
|
|
|
qualityValue = None, btnName = None):
|
|
|
|
|
qualityLineEdit = None, btnName = None):
|
|
|
|
|
super().__init__()
|
|
|
|
|
self.valueEdit = valueEdit
|
|
|
|
|
self.valueLabel = valueLabel
|
|
|
|
|
self.qualityValueLabel = qualityValueLabel
|
|
|
|
|
self.qualityValue = qualityValue
|
|
|
|
|
self.qualityLineEdit = qualityLineEdit
|
|
|
|
|
self.number = number
|
|
|
|
|
self.setObjectName('forceBtn')
|
|
|
|
|
self.setText(btnName)
|
|
|
|
@ -26,6 +26,7 @@ class RightAreaWidgets(QWidget):
|
|
|
|
|
def __init__(self, areaWidget, order, byteLineEdit, dataType, deviceName):
|
|
|
|
|
super().__init__()
|
|
|
|
|
self.areaLineEditValue = []
|
|
|
|
|
self.qualityEditValueList = []
|
|
|
|
|
self.areaLabel = {}
|
|
|
|
|
self.areaWidget = areaWidget
|
|
|
|
|
self.devicesManange = self.areaWidget.devicesManange
|
|
|
|
@ -118,14 +119,14 @@ class RightAreaWidgets(QWidget):
|
|
|
|
|
qualityLineEdit = SoftKeyBoardEdit('0')
|
|
|
|
|
qualityLineEdit.setObjectName('areaLineEdit')
|
|
|
|
|
qualityLineEdit.setFixedSize(80, 33)
|
|
|
|
|
qualityValue = qualityLineEdit.text()
|
|
|
|
|
forceBtn = ForceButton(number = number, valueLabel=areaValueLabel, valueEdit=areaLineEdit, qualityValueLabel=qualityLabel, \
|
|
|
|
|
qualityValue=qualityValue, btnName = '强制')
|
|
|
|
|
qualityLineEdit=qualityLineEdit, btnName = '强制')
|
|
|
|
|
forceBtn.clicked.connect(self.AIAOForceValues)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
qualityBtn = ForceButton(number = number, valueLabel=areaValueLabel, valueEdit=areaLineEdit, qualityValueLabel=qualityLabel, \
|
|
|
|
|
qualityValue=0, btnName = '故障')
|
|
|
|
|
qualityBtn.clicked.connect(self.AIAOForceValues)
|
|
|
|
|
qualityLineEdit=qualityLineEdit, btnName = '故障')
|
|
|
|
|
qualityBtn.clicked.connect(lambda: self.AIAOForceValues(qualityValue = '0'))
|
|
|
|
|
|
|
|
|
|
# forceBtn.setFixedSize(50, 27)
|
|
|
|
|
forceLayout.addWidget(areaLineEdit,0,2,1,1)
|
|
|
|
@ -162,30 +163,25 @@ class RightAreaWidgets(QWidget):
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if dataTypeAndModel in ['主站AO','从站AI']:
|
|
|
|
|
pattern = re.compile(r'-?\d*\.?\d+')
|
|
|
|
|
match = pattern.match(value, qualityValue)
|
|
|
|
|
if not match:
|
|
|
|
|
pattern = re.compile(r'^[+-]?(\d+(\.\d*)?|\.\d+)$')
|
|
|
|
|
match = pattern.match(value)
|
|
|
|
|
match2 = pattern.match(qualityValue)
|
|
|
|
|
if not match or not match2:
|
|
|
|
|
QMessageBox.warning(self, '提示', '请输入数字。')
|
|
|
|
|
return
|
|
|
|
|
else:
|
|
|
|
|
valueLabel.setText(str(float(value)))
|
|
|
|
|
qualityValueLabel.setText(str(float(qualityValue)))
|
|
|
|
|
self.areaLineEditValue[number] = [float(value), float(qualityValue)]
|
|
|
|
|
|
|
|
|
|
self.areaLineEditValue[number] = float(value)
|
|
|
|
|
self.qualityEditValueList[number] = float(qualityValue)
|
|
|
|
|
return self.areaLineEditValue , self.qualityEditValueList #返回值和质量位值
|
|
|
|
|
|
|
|
|
|
#判断输入值是否为0和1
|
|
|
|
|
elif dataTypeAndModel in ['主站DO','从站DI']:
|
|
|
|
|
|
|
|
|
|
# pattern = re.compile(r'^[01]$')
|
|
|
|
|
# match = pattern.match(value)
|
|
|
|
|
# if not match:
|
|
|
|
|
# QMessageBox.warning(self, '提示', '请输入0或1。')
|
|
|
|
|
# return
|
|
|
|
|
# else:
|
|
|
|
|
# valueLabel.setText(value)
|
|
|
|
|
self.areaLineEditValue[number] = value
|
|
|
|
|
|
|
|
|
|
return self.areaLineEditValue
|
|
|
|
|
return self.areaLineEditValue
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def readValues(self, curIndex):
|
|
|
|
@ -212,25 +208,25 @@ class RightAreaWidgets(QWidget):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def AIAOForceValues(self):
|
|
|
|
|
def AIAOForceValues(self, qualityValue = None):
|
|
|
|
|
sender = self.sender()
|
|
|
|
|
number = sender.number
|
|
|
|
|
valueLabel = sender.valueLabel
|
|
|
|
|
qualityValueLabel = sender.qualityValueLabel
|
|
|
|
|
value = sender.valueEdit.text()
|
|
|
|
|
qualityValue = sender.qualityValue
|
|
|
|
|
if qualityValue == False:
|
|
|
|
|
qualityValue = 0
|
|
|
|
|
|
|
|
|
|
if qualityValue == '0':
|
|
|
|
|
qualityValue = '0'
|
|
|
|
|
else:
|
|
|
|
|
qualityValue = sender.qualityLineEdit.text()
|
|
|
|
|
dataTypeAndModel = self.deviceName[-2:] + self.dataType
|
|
|
|
|
curIndex = self.areaWidget.areaTabWidget.currentIndex()
|
|
|
|
|
valueList = self.wirteAreaLineEditValue(dataTypeAndModel=dataTypeAndModel, number=number, value=value, qualityValue=qualityValue, \
|
|
|
|
|
valueList, qualityValueList = self.wirteAreaLineEditValue(dataTypeAndModel=dataTypeAndModel, number=number, value=value, qualityValue=qualityValue, \
|
|
|
|
|
valueLabel=valueLabel, qualityValueLabel=qualityValueLabel )
|
|
|
|
|
# print(valueList, curIndex)
|
|
|
|
|
if valueList is None:
|
|
|
|
|
return
|
|
|
|
|
else:
|
|
|
|
|
self.devicesManange.writeAreas(deviceName = self.deviceName, areaIndex = curIndex, values = valueList)
|
|
|
|
|
self.devicesManange.writeAreas(deviceName = self.deviceName, areaIndex = curIndex, values = valueList, qualityValueList = qualityValueList)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def DIDOForceValues(self):
|
|
|
|
|