main
parent 8011d136cd
commit b042f6662b

@ -530,7 +530,7 @@ QLineEdit#deviceMesEdit{
QLineEdit#deviceAddressEdit, QLineEdit#parameEditline{
font-size: 16px;
font-size: 25px;
border-top: none;

Binary file not shown.

Binary file not shown.

@ -187,6 +187,7 @@ class BlockParameterManageWidget(QWidget):
self.deviceAddressLabel = QLabel('从站地址')
self.deviceAddressLabel.setObjectName('deviceAddressLabel')
self.deviceAddressEdit = QLineEdit()
self.deviceAddressEdit.returnPressed.connect(self.loadBlackData)
self.deviceAddressEdit.setObjectName("deviceAddressEdit")
self.confirmBtn = QPushButton('确定')
@ -233,10 +234,10 @@ class BlockParameterManageWidget(QWidget):
address = self.deviceAddressEdit.text()
# print(address)
if address:
pattern = re.compile(r'^(?:[1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-5])$')
pattern = re.compile(r'^(?:[1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-6])$')
match = pattern.match(address)
if not match:
QMessageBox.warning(self, '提示', '请输入1 - 125')
QMessageBox.warning(self, '提示', '请输入1 - 126')
return
if self.initUIstat:
try:
@ -304,18 +305,19 @@ class BlockParameterManageWidget(QWidget):
def editAddress(self):
if self.initUIstat:
reply = QMessageBox.question(self.parent(),
'警告',
"请先连接设备",
QMessageBox.Yes)
return
# if self.initUIstat:
# reply = QMessageBox.question(self.parent(),
# '警告',
# "请先连接设备",
# QMessageBox.Yes)
# return
oldAddress = self.blockManage.address
# oldAddress = int(self.blockManage.address)
oldAddress = 106
self.editAddressWidget = EditAddressWidget(oldAddress)
if self.editAddressWidget.exec_() == QDialog.Accepted:
newAddress = self.editAddressWidget.editAddressEdit.text()
newAddress = int(self.editAddressWidget.editAddressEdit.text())
self.blockManage.DPV1Master.editDevAddress(oldAddress, newAddress)

@ -11,6 +11,7 @@ QComboBox, QStyledItemDelegate, QVBoxLayout, QSplitter
from UI.LoadingDataWidget import LoadingDataWidget
from UI.ObjectTypeEditlayout import ObjectTypeEditlayout
from utils import Globals
class VarTableModel(QAbstractTableModel):
@ -131,7 +132,6 @@ class VarTableModel(QAbstractTableModel):
self.table.proxy.invalidate()
def updateValue(self, valueList):
print(len(valueList), len(self.datas))
for index, value in enumerate(valueList):
self.datas[index][5] = value
self.table.proxy.invalidate()
@ -180,18 +180,29 @@ class VarButtonDelegate(QItemDelegate):
if objectType == 'TARGET_MODE':
combox = QComboBox()
combox.setObjectName('modeCombox')
combox.addItems(["非服务", "手动初始化", "本地超驰", '手动', '自动', '级联', '远程级联', '远程输出'])
combox.setCurrentIndex(-1)
combox.currentIndexChanged.connect(lambda index : self.startAction(modelIndex = index))
combox.currentIndexChanged.connect(lambda index: self.startAction(modelIndex = index))
boxLayout.addWidget(combox, 10)
boxLayout.addWidget(refreshButton,1)
combox.index = [index.row(), index.column()]
elif objectType == 'SENSOR_UNIT':
comboxUnit = QComboBox()
comboxUnit.setObjectName('modeCombox')
comboxUnit.addItems(["kPa", "bar", "psi", 'inHg'])
comboxUnit.setCurrentIndex(-1)
comboxUnit.currentIndexChanged.connect(lambda index, comboxUnit = comboxUnit : self.startAction(modelIndex = index, comboxUnit = comboxUnit))
boxLayout.addWidget(comboxUnit, 10)
boxLayout.addWidget(refreshButton,1)
comboxUnit.index = [index.row(), index.column()]
else:
boxLayout.addLayout(editlineLayout)
boxLayout.addLayout(editlineLayout)
startActionBtn.clicked.connect(lambda: self.startAction(objectTypeEditlayout = editlineLayout))
boxLayout.addWidget(startActionBtn)
boxLayout.addWidget(refreshButton)
@ -209,49 +220,68 @@ class VarButtonDelegate(QItemDelegate):
)
def startAction(self, objectTypeEditlayout = None, modelIndex = None):
def startAction(self, objectTypeEditlayout = None, modelIndex = None, comboxUnit = None):
sender = self.sender()
blockView = self.parent()
model = blockView.model
blockType = blockView.blockType
blockIndex = blockView.blcokIndex
parmIndex = model.datas[sender.index[0]][0]
blockManage = Globals.getValue('blockManage')
if modelIndex or str(modelIndex) == '0' :
values = modelIndex
self.refreshData(modelIndex)
else:
parmIndex = model.datas[sender.index[0]][0]
values = objectTypeEditlayout.getEditlineValue()
# if not values:
# reply = QMessageBox.question(self.parent(),
# '警告',
# "请输入强制值或数字",
# QMessageBox.Yes)
# return
# for value in values:
# # print(value)
# pattern = re.compile(r'[^0-9\.-]+')
# if not value or re.findall(pattern, str(value)):
# reply = QMessageBox.question(self.parent(),
# '警告',
# "请输入强制值或数字",
# QMessageBox.Yes)
# return
res = blockManage.writeParmValue(blockType, blockIndex, parmIndex, values)
self.refreshData()
values = []
#修改单位
if comboxUnit:
match str(modelIndex):
case '0':
values.append('1133')
case '1':
values.append('1137') #kPa(1133),bar1137).psi(1141),inHg(1155)
case '2':
values.append('1141')
case '3':
values.append('1155')
#修改操作模式
else:
if modelIndex or str(modelIndex) == '0' :
values.append(str(modelIndex))
#正常修改其他值
else:
values = objectTypeEditlayout.getEditlineValue()
dataType = model.datas[sender.index[0]][3]
if not values:
reply = QMessageBox.question(self.parent(),
'警告',
"请输入强制值",
QMessageBox.Yes)
return
match dataType:
case "Float":
for value in values:
pattern = re.compile(r'[^0-9\.-]+')
if not value or re.findall(pattern, str(value)):
reply = QMessageBox.question(self.parent(),
'警告',
"请输入强制值或数字",
QMessageBox.Yes)
return
res = blockManage.writeParmValue(blockType, blockIndex, parmIndex, values)
self.refreshData()
def refreshData(self, modelIndex = None):
def refreshData(self):
sender = self.sender()
blockView = self.parent()
model = blockView.model
parmIndex = model.datas[sender.index[0]][0]
blockType = blockView.blockType
blockIndex = blockView.blcokIndex
# print(blockName, blcokIndex, index)
blockManage = Globals.getValue('blockManage')
value = blockManage.getBlockParmValue(blockType, blockIndex, parmIndex)

@ -52,6 +52,7 @@ class BlockManage():
def __init__(self, address = None):
self.address = address
if address:
# pass
self.initBlocks()
@property
@ -140,6 +141,7 @@ class BlockManage():
return block
def getBlockNums(self):
# return [1,1,1]
return [len(self.blockDict[BlockType.PB]), len(self.blockDict[BlockType.TB]), len(self.blockDict[BlockType.FB])]
@classmethod
@ -197,6 +199,19 @@ class Block():
def getTBType(self):
return
def getParmIndex(self, blockType, paramName):
match blockType:
case "BlockType.PB":
PhysicalBlock.getIndex(paramName)
case "BlockType.FB":
AIFunctionBlock.getIndex(paramName)
case "BlockType.TB":
pass
if __name__ == '__main__':
b = BlockManage(address = 55)

@ -123,7 +123,6 @@ class Parm():
return displayStr
def unpackDS32(self, value):
print(value)
reserved = self.unpackU8(value[0:1])
blockObject = self.unpackU8(value[1:2])
parentClass = self.unpackU8(value[2:3])

@ -130,9 +130,9 @@ class DPV1Master():
return False
def editDevAddress(self, oldAddress, newAddress):
oldAddressHex = int(oldAddress).to_bytes(1, byteorder='little')
newAddressHex = int(newAddress).to_bytes(1, byteorder='little')
editAddressStream = b'\x03' + oldAddressHex + newAddressHex + b'\x00'
oldAddressHex = oldAddress.to_bytes(length=1, byteorder='little')
newAddressHex = newAddress.to_bytes(1, byteorder='little')
editAddressStream = b'\x03' + oldAddressHex + b'\x00'+ newAddressHex
editAddressDate = struct.unpack('>hh', editAddressStream)
self.writeMultipleRegister(1, 750, self.resetData)
self.writeMultipleRegister(1, 750, editAddressDate)

@ -43,6 +43,14 @@ class PressureTranslationBlock(BaseModel):
except Exception as e:
return
@classmethod
def getIndex(cls):
params = cls.get_all()
if params is 'error':
return
return params.index
def addParame(self, index, paramName, objectType, dataType, saveType, dataSize, accessType, transferType, description):
self.index = index
self.paramName = paramName
@ -57,6 +65,7 @@ class PressureTranslationBlock(BaseModel):
# print(self.createTime)
self.save()

Loading…
Cancel
Save