diff --git a/UI/BlockParameterManageWidget.py b/UI/BlockParameterManageWidget.py index cdfa594..8e14e97 100644 --- a/UI/BlockParameterManageWidget.py +++ b/UI/BlockParameterManageWidget.py @@ -243,10 +243,10 @@ class BlockParameterManageWidget(QWidget): self.refershDataBtn.clicked.connect(self.refreshData) self.refershDataBtn.setObjectName("parameBtn") - self.deviceAddressSearchBtn = QPushButton('搜索站地址') - self.deviceAddressSearchBtn.setIcon(qtawesome.icon('fa.search', color='#1fbb6f')) - self.deviceAddressSearchBtn.clicked.connect(self.searchAddress) - self.deviceAddressSearchBtn.setObjectName("parameBtn") + # self.deviceAddressSearchBtn = QPushButton('搜索站地址') + # self.deviceAddressSearchBtn.setIcon(qtawesome.icon('fa.search', color='#1fbb6f')) + # self.deviceAddressSearchBtn.clicked.connect(self.searchAddress) + # self.deviceAddressSearchBtn.setObjectName("parameBtn") self.editAddressBtn = QPushButton('修改站地址') self.editAddressBtn.setIcon(qtawesome.icon('fa.edit', color='#1fbb6f')) @@ -258,7 +258,7 @@ class BlockParameterManageWidget(QWidget): self.settingLayout.addWidget(self.deviceAddressLabel, 1) self.settingLayout.addWidget(self.deviceAddressEdit, 1) self.settingLayout.addWidget(self.confirmBtn, 1) - self.settingLayout.addWidget(self.deviceAddressSearchBtn, 1) + # self.settingLayout.addWidget(self.deviceAddressSearchBtn, 1) self.settingLayout.addWidget(self.editAddressBtn, 1) self.settingLayout.addWidget(self.refershDataBtn, 1) # self.settingLayout.addLayout(self.blockLayout) @@ -356,9 +356,9 @@ class BlockParameterManageWidget(QWidget): def editAddress(self): self.editAddressWidget = EditAddressWidget() - def searchAddress(self): - self.searchAddressWidget = SearchAddressWidget(self.deviceAddressEdit) - self.searchAddressWidget.show() + # def searchAddress(self): + # self.searchAddressWidget = SearchAddressWidget(self.deviceAddressEdit) + # self.searchAddressWidget.show() def changeProType(self): diff --git a/UI/MainWindow.py b/UI/MainWindow.py index 48406c0..100381d 100644 --- a/UI/MainWindow.py +++ b/UI/MainWindow.py @@ -18,6 +18,7 @@ from model.ProjectModel.DeviceManage import DevicesManange from utils.DBModels.InitParameterDB import InitParameterDB from protocol.BatterySerial.BatteryProtocol import BatteryManange +from protocol.ModBus.DPV1Master import DPV1Master from UI.BlockParameterManageWidget import BlockParameterManageWidget import sys @@ -75,6 +76,7 @@ class MainWindow(QWidget): self.setObjectName("MainWindow") self.devicesManange = DevicesManange() self.batteryManange = BatteryManange() + self.dpv1Master = DPV1Master('192.168.3.10', 502) self.blockParameterManageWidget = BlockParameterManageWidget() self.process = None self.initUI() @@ -87,6 +89,10 @@ class MainWindow(QWidget): self.batteryTimer.timeout.connect(self.refreshProgressBar) self.batteryTimer.start(3000) + self.searchAddressTimer = QTimer() + self.searchAddressTimer.timeout.connect(self.searchSlave) + self.searchAddressTimer.start(1000) + # self.toolbarWidget = QWidget() # self.addToolBar(Qt.LeftToolBarArea, self.toolbar) @@ -115,6 +121,9 @@ class MainWindow(QWidget): self.deviceParameterManageBtn.setCheckable(True) self.deviceParameterManageBtn.clicked.connect(self.switchDeviceParManageWidget) + self.addressLabel = QLabel('在线仪表地址:') + self.addressLabel.setObjectName('batteryLabel') + self.batteryProBar = CustomProgressBar() self.batteryProBar.setRange(0, 100) @@ -154,7 +163,9 @@ class MainWindow(QWidget): toolbarLayout.addWidget(self.switchBtn, 1) toolbarLayout.addWidget(self.switchTouchBtn, 1) toolbarLayout.addWidget(self.deviceParameterManageBtn, 1) - toolbarLayout.addWidget(QWidget(), 20) + toolbarLayout.addWidget(QWidget(), 4) + toolbarLayout.addWidget(self.addressLabel, 1) + toolbarLayout.addWidget(QWidget(), 10) # toolbarLayout.addWidget(QLabel('电量:'), 1) toolbarLayout.addWidget(self.batteryProBar, 1) toolbarLayout.addWidget(self.batteryStateLabel, 1) @@ -265,10 +276,14 @@ class MainWindow(QWidget): # self.capacity = capacity # mAH # self.cappercent = cappercent # 百分比% # self.state = state # 充放电状态 - pass - # result = self.batteryManange.readBatteryInfo() - # self.batteryProBar.setValue(result.cappercent) - # self.batteryStateLabel.setText(result.chargingStatus) + # pass + result = self.batteryManange.readBatteryInfo() + self.batteryProBar.setValue(result.cappercent) + self.batteryStateLabel.setText(result.chargingStatus) + + def searchSlave(self): + address = self.dpv1Master.searchSlave() + self.addressLabel.setText('在线仪表地址:{}'.format(address)) diff --git a/protocol/ModBus/DPV1Master.py b/protocol/ModBus/DPV1Master.py index fb1c213..3c43d0c 100644 --- a/protocol/ModBus/DPV1Master.py +++ b/protocol/ModBus/DPV1Master.py @@ -62,8 +62,12 @@ class DPV1Master(): def searchSlave(self, callback = None): - self.searchSlaveThread = SearchSlaveThread(callback = callback, master = self) - self.searchSlaveThread.start() + # self.searchSlaveThread = SearchSlaveThread(callback = callback, master = self) + # self.searchSlaveThread.start() + data = self.readHoldingRegisters(1, 850, 64) + dataHex = struct.pack('>64h', *data) + indices = [i for i, byte in enumerate(dataHex) if byte == 1] + return ",".join(map(str, indices)) def closeThread(self): self.searchSlaveThread.stop() @@ -217,7 +221,7 @@ class DPV1Master(): if __name__ == "__main__": tcpMaster = DPV1Master('192.168.3.10', 502) - tcpMaster.searchMaster() + tcpMaster.searchSlave() # tcpMaster.readHoldingRegisters(1, 6, 2) # tcpMaster.master.execute(1, cst.WRITE_MULTIPLE_REGISTERS, starting_address=0, output_value=[1,2,3,4,5]) #