main
zcwBit 2 years ago
parent f88125f49d
commit 5a18170519

@ -7,6 +7,7 @@ class AreaSettingWidget(QDialog):
def __init__(self, parent=None): def __init__(self, parent=None):
super().__init__(parent) super().__init__(parent)
self.initUI() self.initUI()
def initUI(self): def initUI(self):
layout = QFormLayout() layout = QFormLayout()
varType = QComboBox() varType = QComboBox()
@ -21,6 +22,10 @@ class AreaSettingWidget(QDialog):
layout.addRow('协议类型:', varType) layout.addRow('协议类型:', varType)
layout.addRow('通道数:', channelNums) layout.addRow('通道数:', channelNums)
layout.addRow("字节长度:", channelBytes) layout.addRow("字节长度:", channelBytes)
@ -59,6 +64,11 @@ class AreaSettingWidget(QDialog):
else: else:
self.accept() # 所有输入都是数字且不为空时接受对话框 self.accept() # 所有输入都是数字且不为空时接受对话框
def dataTypeTranslate(self, order):
self.dataTypeDict = {'不转换': 'ABCD', '字节转换': 'DCBA', '字转换': 'CDAB', '字转换': 'BADC'}
return self.dataTypeDict[order]
if __name__ == '__main__': if __name__ == '__main__':
app = QApplication(sys.argv) app = QApplication(sys.argv)
window = AreaSettingWidget() window = AreaSettingWidget()

@ -44,15 +44,20 @@ class MainWindow(QMainWindow):
self.addToolBar(self.toolbar) self.addToolBar(self.toolbar)
# self.setWindowState(self.windowState() | QtCore.Qt.WindowMaximized) # self.setWindowState(self.windowState() | QtCore.Qt.WindowMaximized)
self.action1 = QAction("添加设备", self) self.addDiviceBtn = QAction("添加设备", self)
self.action1.setObjectName("action1") self.addDiviceBtn.setObjectName("addDiviceBtn")
self.action1.triggered.connect(self.createDeciveWidget) self.addDiviceBtn.triggered.connect(self.createDeciveWidget)
self.action2 = QAction("开始通讯", self)
self.action2.setObjectName("action2")
self.action2.triggered.connect(self.startProtocol)
self.toolbar.addAction(self.action1) self.startProtocolBtn = QAction("开始通讯", self)
self.toolbar.addAction(self.action2) self.startProtocolBtn.setObjectName("startProtocolBtn")
self.startProtocolBtn.triggered.connect(self.startProtocol)
# self.loadProjectBtn = QAction('导入工程', self)
# self.loadProjectBtn.setObjectName("loadProjectBtn")
# self.loadProjectBtn.triggered.connect(self.loadProject)
self.toolbar.addAction(self.addDiviceBtn)
self.toolbar.addAction(self.startProtocolBtn)
self.mdi_area = QMdiArea() self.mdi_area = QMdiArea()
# self.scrollArea = QScrollArea() # self.scrollArea = QScrollArea()
@ -97,7 +102,7 @@ class MainWindow(QMainWindow):
horizontalLayout.addWidget(newbtn) horizontalLayout.addWidget(newbtn)
horizontalLayout.addItem(self.horizontalSpacer) horizontalLayout.addItem(self.horizontalSpacer)
horizontalLayout.addWidget(delbth) # horizontalLayout.addWidget(delbth)
newbtn.clicked.connect(lambda: self.newAreaWidget(sub_window)) newbtn.clicked.connect(lambda: self.newAreaWidget(sub_window))
delbth.clicked.connect(lambda: self.delAreaWidget(sub_window)) delbth.clicked.connect(lambda: self.delAreaWidget(sub_window))
@ -142,6 +147,7 @@ class MainWindow(QMainWindow):
channelNums = area["nums"] channelNums = area["nums"]
channelBytes = area["bytes"] channelBytes = area["bytes"]
areaID = area['id'] areaID = area['id']
if masterSlaveModel == '主站': if masterSlaveModel == '主站':
self.addAreaWidget(deviceName, number, channelNums, channelBytes, varType, layout, areaID) self.addAreaWidget(deviceName, number, channelNums, channelBytes, varType, layout, areaID)
else: else:
@ -202,28 +208,33 @@ class MainWindow(QMainWindow):
areaLabel2 =QLabel('0') areaLabel2 =QLabel('0')
areaLineEdit = QLineEdit('0') areaLineEdit = QLineEdit('0')
editbtn = QPushButton('强制') editbtn = QPushButton('强制')
order = QComboBox()
order.addItems(['不转换', '字节转换', '字转换', '字内转换'])
layout.addWidget(areaLabel, (i + number)//2, (i + number) % 2) layout.addWidget(areaLabel, (i + number)//2, (i + number) % 2)
layout.addWidget(areaLabel2, (i + number)//2, (i + number) % 2 + 1 ) layout.addWidget(areaLabel2, (i + number)//2, (i + number) % 2 + 1 )
layout.addWidget(areaLineEdit, (i + number)//2, (i + number) % 2 + 2 ) layout.addWidget(areaLineEdit, (i + number)//2, (i + number) % 2 + 2 )
layout.addWidget(editbtn, (i + number) // 2, (i + number) % 2 + 3) layout.addWidget(order, (i + number)//2, (i + number) % 2 + 3)
layout.addWidget(editbtn, (i + number) // 2, (i + number) % 2 + 4)
editbtn.clicked.connect(lambda checked, btn=editbtn: self.forceEdit(btn)) editbtn.clicked.connect(lambda checked, btn=editbtn: self.forceEdit(btn))
widgetList.append([layout, ID, editbtn, areaLabel, areaLabel2, areaLineEdit]) widgetList.append([layout, ID, editbtn, areaLabel, areaLabel2, areaLineEdit, order])
else: else:
areaLabel = QLabel(varType + str(i + 1) + ": " + channelByte + 'Byte') areaLabel = QLabel(varType + str(i + 1) + ": " + channelByte + 'Byte')
areaLabel2 = QLabel('0') areaLabel2 = QLabel('0')
areaLineEdit = QLineEdit('0') areaLineEdit = QLineEdit('0')
editbtn = QPushButton('强制') editbtn = QPushButton('强制')
order = QComboBox()
layout.addWidget(areaLabel, (i + number) // 2, (i + number) % 2 + 3) order.addItems(['不转换', '字节转换', '字转换', '字内转换'])
layout.addWidget(areaLabel2, (i + number) // 2, (i + number) % 2 + 4) layout.addWidget(areaLabel, (i + number) // 2, (i + number) % 2 + 4)
layout.addWidget(areaLineEdit, (i + number) // 2, (i + number) % 2 + 5) layout.addWidget(areaLabel2, (i + number) // 2, (i + number) % 2 + 6)
layout.addWidget(editbtn, (i + number) // 2, (i + number) % 2 + 6) layout.addWidget(areaLineEdit, (i + number) // 2, (i + number) % 2 + 6)
layout.addWidget(order, (i + number)//2, (i + number) % 2 + 7)
layout.addWidget(editbtn, (i + number) // 2, (i + number) % 2 + 8)
editbtn.clicked.connect(lambda checked, btn=editbtn: self.forceEdit(btn)) editbtn.clicked.connect(lambda checked, btn=editbtn: self.forceEdit(btn))
widgetList.append([layout, ID, editbtn, areaLabel, areaLabel2, areaLineEdit]) widgetList.append([layout, ID, editbtn, areaLabel, areaLabel2, areaLineEdit, order])
if not self.areaDict.get(deviceName): if not self.areaDict.get(deviceName):
self.areaDict[deviceName] = [widgetList] self.areaDict[deviceName] = [widgetList]
@ -236,8 +247,8 @@ class MainWindow(QMainWindow):
def delAreaWidget(self, subWindow): def delAreaWidget(self, subWindow):
subwindow = subWindow subwindow = subWindow
deviceName = sub_window.windowTitle() deviceName = subwindow.windowTitle()
areaLayout = sub_window.widget().widget().layout().itemAt(1).widget().layout() areaLayout = subwindow.widget().widget().layout().itemAt(1).widget().layout()
if self.nowValue: if self.nowValue:
@ -307,8 +318,13 @@ class MainWindow(QMainWindow):
for widgets in area: for widgets in area:
if btn in widgets: if btn in widgets:
widgets[4].setText(widgets[5].text()) widgets[4].setText(widgets[5].text())
forceValue
order = self.dataTypeTranslate(widgets[6].currentText())
print(order)
def dataTypeTranslate(self, order):
self.dataTypeDict = {'不转换': 'ABCD', '字节转换': 'DCBA', '字转换': 'CDAB', '字内转换': 'BADC'}
return self.dataTypeDict[order]
# for item in self.nowValue: # for item in self.nowValue:
# if btn in item: # if btn in item:
# item[4].setText(item[5].text()) # item[4].setText(item[5].text())
@ -353,6 +369,7 @@ class AreaQMdiSubWindow(QMdiSubWindow):
if __name__ == '__main__': if __name__ == '__main__':
app = QApplication(sys.argv) app = QApplication(sys.argv)
Client.initDB() Client.initDB()

@ -154,6 +154,7 @@ class Devices():
"type": type, "type": type,
"nums": nums, "nums": nums,
"bytes": bytes, "bytes": bytes,
}]) }])
else: else:
jsonCon = json.loads(DeviceDB.getByName(deviceName=deviceName).areaJson) jsonCon = json.loads(DeviceDB.getByName(deviceName=deviceName).areaJson)
@ -163,6 +164,7 @@ class Devices():
"type": type, "type": type,
"nums": nums, "nums": nums,
"bytes": bytes, "bytes": bytes,
}) })
areaJson = json.dumps(jsonCon) areaJson = json.dumps(jsonCon)
DeviceDB.update(areaJson=areaJson).where(DeviceDB.deviceName == deviceName).execute() DeviceDB.update(areaJson=areaJson).where(DeviceDB.deviceName == deviceName).execute()

Loading…
Cancel
Save