|
|
|
|
@ -163,42 +163,34 @@ class AreaWidget(QWidget):
|
|
|
|
|
|
|
|
|
|
self.dataTypeLabel = QLabel('数据类型:')
|
|
|
|
|
self.dataTypeLabel.setObjectName('dataTypeLabel')
|
|
|
|
|
# self.dataTypeLabel.setFixedSize(90, 27)
|
|
|
|
|
self.dataTypeCombox = QComboBox()
|
|
|
|
|
self.dataTypeCombox.addItems(['AI', 'AO', 'DI', 'DO'])
|
|
|
|
|
self.dataTypeCombox.setObjectName('dataTypeCombox')
|
|
|
|
|
self.dataTypeCombox.currentIndexChanged.connect(self.setByteLineEditValue)
|
|
|
|
|
# self.dataTypeCombox.setFixedSize(90, 27)
|
|
|
|
|
|
|
|
|
|
self.dataOrderLabel = QLabel('数据格式:')
|
|
|
|
|
self.dataOrderLabel.setObjectName('dataOrderLabel')
|
|
|
|
|
# self.dataOrderLabel.setFixedSize(90, 27)
|
|
|
|
|
self.orderCombox = QComboBox()
|
|
|
|
|
self.orderCombox.addItems(['不转换', '字节转换', '字转换', '字内转换'])
|
|
|
|
|
self.orderCombox.setObjectName('orderCombox')
|
|
|
|
|
self.orderCombox.setCurrentIndex(1)
|
|
|
|
|
# self.orderCombox.setFixedSize(90, 27)
|
|
|
|
|
|
|
|
|
|
self.byteLineLabel = QLabel('字节长度:')
|
|
|
|
|
self.byteLineLabel.setObjectName('byteLineLabel')
|
|
|
|
|
# self.byteLineLabel.setFixedSize(90, 27)
|
|
|
|
|
self.byteLineEdit = SoftKeyBoardEdit()
|
|
|
|
|
self.byteLineEdit.setPlaceholderText('字节长度')
|
|
|
|
|
self.byteLineEdit.setObjectName('byteLineEdit')
|
|
|
|
|
# self.byteLineEdit.setFixedSize(90, 27)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.okBtn = QPushButton('保存')
|
|
|
|
|
# self.okBtn.setFixedSize(90, 27)
|
|
|
|
|
self.okBtn.setObjectName('okBtn')
|
|
|
|
|
self.okBtn.setIcon(qtawesome.icon('fa.pencil', color='#4c8cf2'))
|
|
|
|
|
# self.okBtn.setIcon(QIcon(':/static/delete.png'))
|
|
|
|
|
self.okBtn.clicked.connect(self.addAreaWidget)
|
|
|
|
|
self.okBtnValue = True
|
|
|
|
|
|
|
|
|
|
self.delAreaBtn = QPushButton('删除')
|
|
|
|
|
self.delAreaBtn.setIcon(QIcon(':/static/delete.png'))
|
|
|
|
|
self.delAreaBtn.setObjectName('delAreaBtn')
|
|
|
|
|
# self.delAreaBtn.setFixedSize(90, 27)
|
|
|
|
|
self.delAreaBtn.clicked.connect(self.removeAreaTab)
|
|
|
|
|
|
|
|
|
|
hLayout = QHBoxLayout()
|
|
|
|
|
@ -208,11 +200,6 @@ class AreaWidget(QWidget):
|
|
|
|
|
hLayout.addWidget(self.delAreaBtn)
|
|
|
|
|
hLayout.addWidget(QSplitter())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# vlayout = QVBoxLayout()
|
|
|
|
|
# vlayout.addWidget(self.pvUpperLimit)
|
|
|
|
|
# vlayout.addWidget(self.pvLowerLimit)
|
|
|
|
|
# vlayout.addWidget(self.pvUnit)
|
|
|
|
|
self.leftLayout.addWidget(self.pvUpperLimit, 0, 0, 1, 2)
|
|
|
|
|
self.leftLayout.addWidget(self.pvLowerLimit, 1, 0, 1, 2)
|
|
|
|
|
self.leftLayout.addWidget(self.pvUnit,2, 0, 1, 2)
|
|
|
|
|
@ -226,7 +213,6 @@ class AreaWidget(QWidget):
|
|
|
|
|
self.leftLayout.addWidget(QSplitter(),6, 0, 2, 2)
|
|
|
|
|
self.leftLayout.addLayout(hLayout, 7, 0, 2, 2)
|
|
|
|
|
self.leftLayout.setContentsMargins(10, 10, 0, 20)
|
|
|
|
|
# self.leftLayout.addWidget(self.delAreaBtn, 3, 1, 1, 1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -240,12 +226,8 @@ class AreaWidget(QWidget):
|
|
|
|
|
self.mainLayout.addLayout(self.rightLayout, 20)
|
|
|
|
|
self.mainLayout.setSpacing(10)
|
|
|
|
|
|
|
|
|
|
# self.deviceWidgetManage.addArea(mainLayout=mainLayout, leftLayoutWidget=leftLayoutWidgets)
|
|
|
|
|
|
|
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if self.settingValue is not None:
|
|
|
|
|
self.addAreaWidget()
|
|
|
|
|
|
|
|
|
|
@ -289,12 +271,6 @@ class AreaWidget(QWidget):
|
|
|
|
|
self.areaTabWidget.setTabText(index, '通道{}'.format(index+1))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def addAreaWidget(self):
|
|
|
|
|
curIndex = self.areaTabWidget.currentIndex()
|
|
|
|
|
#获取左侧配置布局的参数
|
|
|
|
|
@ -320,7 +296,6 @@ class AreaWidget(QWidget):
|
|
|
|
|
order = self.dataTypeTranslate(self.orderCombox.currentText())
|
|
|
|
|
byteLineEdit = self.byteLineEdit.text()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#判断字节长度的输入是否是数字
|
|
|
|
|
pattern = re.compile(r'^[1-7]$')
|
|
|
|
|
match = pattern.match(byteLineEdit)
|
|
|
|
|
@ -361,11 +336,7 @@ class AreaWidget(QWidget):
|
|
|
|
|
self.rightAreaWidgets = RightAreaWidgets(self, order = order, byteLineEdit = byteLineEdit, dataType = dataType, deviceName = deviceName)
|
|
|
|
|
areaLayout.addWidget(self.rightAreaWidgets)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.state = False
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.rightAreaWidgetState = True
|
|
|
|
|
|
|
|
|
|
areaId = DevicesManange.getAreaID(deviceName)
|
|
|
|
|
@ -374,16 +345,13 @@ class AreaWidget(QWidget):
|
|
|
|
|
self.devicesManange.recalculateAddress()
|
|
|
|
|
return
|
|
|
|
|
elif areaId is not None and curIndex in areaId:
|
|
|
|
|
# print(areaId,curIndex,2222)
|
|
|
|
|
DevicesManange.updataAreas(dataType, order, byteLineEdit, deviceName, curIndex)
|
|
|
|
|
# print(deviceName, curIndex, dataType, int(byteLineEdit))
|
|
|
|
|
self.isRead = self.devicesManange.getDevice(deviceName).editArea(index = curIndex, type = dataType, order = order, bytes = int(byteLineEdit))
|
|
|
|
|
# self.readVarTimer.start(500)
|
|
|
|
|
else:
|
|
|
|
|
DevicesManange.addAreas(dataType, order, byteLineEdit, deviceName)
|
|
|
|
|
self.isRead = self.devicesManange.getDevice(deviceName).addArea(type = dataType, bytes = int(byteLineEdit), order = order, nums = 1)
|
|
|
|
|
self.devicesManange.recalculateAddress()
|
|
|
|
|
# self.readVarTimer.start(500)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|