From 0a2d14441df29732d6555abf42bc249f5ec345b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Czcw=E2=80=9D?= Date: Fri, 3 Nov 2023 17:49:03 +0800 Subject: [PATCH] =?UTF-8?q?1103=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UI/VarManages/MessageWidget.py | 35 +++++++++++++++------------- protocol/ModBus/SetMessage.py | 8 +++---- protocol/ModBus/rtuslave_example.py | 4 ++-- protocol/ModBus/tcpmaster_example.py | 2 +- protocol/ModBus/tcpslave_example.py | 4 ++-- 5 files changed, 28 insertions(+), 25 deletions(-) diff --git a/UI/VarManages/MessageWidget.py b/UI/VarManages/MessageWidget.py index df4d563..5eca398 100644 --- a/UI/VarManages/MessageWidget.py +++ b/UI/VarManages/MessageWidget.py @@ -95,19 +95,22 @@ class MessageWidget(QWidget): self.reButton.setText('停止刷新') def addText(self): - self.recvEdit.clear() - self.sendEdit.clear() - if self.decima == 16: - for x in app.backend.client.lrange("16R" , 0 , -1): - text = str(x)[2:-1] - self.recvEdit.append(text) - for x in app.backend.client.lrange("16S" , 0 , -1): - text = str(x)[2:-1] - self.sendEdit.append(text) - elif self.decima == 10: - for x in app.backend.client.lrange("10R" , 0 , -1): - text = str(x)[2:-1] - self.recvEdit.append(text) - for x in app.backend.client.lrange("10S" , 0 , -1): - text = str(x)[2:-1] - self.sendEdit.append(text) \ No newline at end of file + try: + self.recvEdit.clear() + self.sendEdit.clear() + if self.decima == 16: + for x in app.backend.client.lrange("16R" , 0 , -1): + text = str(x)[2:-1] + self.recvEdit.append(text) + for x in app.backend.client.lrange("16S" , 0 , -1): + text = str(x)[2:-1] + self.sendEdit.append(text) + elif self.decima == 10: + for x in app.backend.client.lrange("10R" , 0 , -1): + text = str(x)[2:-1] + self.recvEdit.append(text) + for x in app.backend.client.lrange("10S" , 0 , -1): + text = str(x)[2:-1] + self.sendEdit.append(text) + except: + pass \ No newline at end of file diff --git a/protocol/ModBus/SetMessage.py b/protocol/ModBus/SetMessage.py index e182dbc..04c828a 100644 --- a/protocol/ModBus/SetMessage.py +++ b/protocol/ModBus/SetMessage.py @@ -7,8 +7,8 @@ from protocol.Celery.MBRTUSlave import app def afterRecv(args): - request16 = ' '.join(hex(x) for x in args[-1]) - request10 = ' '.join(str(int(x, 16)) for x in request16.split(' ')) + request16 = ' '.join([hex(value)[2:].zfill(2) if index not in [0, 1] else str(int(hex(value), 16)).zfill(2) for index, value in enumerate(args[-1])]) + request10 = ' '.join(str(int(hex(value), 16)).zfill(2) for index, value in enumerate(args[-1])) app.backend.client.rpush("16R", request16) app.backend.client.rpush("10R", request10) if app.backend.client.llen('16R') == 81: @@ -21,8 +21,8 @@ def afterRecv(args): # print(request10) def afterSend(args): - request16 = ' '.join(hex(x) for x in args[-1]) - request10 = ' '.join(str(int(x, 16)) for x in request16.split(' ')) + request16 = ' '.join([hex(value)[2:].zfill(2) if index not in [0, 1] else str(int(hex(value), 16)).zfill(2) for index, value in enumerate(args[-1])]) + request10 = ' '.join(str(int(hex(value), 16)).zfill(2) for index, value in enumerate(args[-1])) app.backend.client.rpush("16S", request16) app.backend.client.rpush("10S", request10) if app.backend.client.llen('16S') == 81: diff --git a/protocol/ModBus/rtuslave_example.py b/protocol/ModBus/rtuslave_example.py index 686189f..31f5e24 100644 --- a/protocol/ModBus/rtuslave_example.py +++ b/protocol/ModBus/rtuslave_example.py @@ -18,8 +18,8 @@ class RTUSlave(): self.server = modbus_rtu.RtuServer(serial.Serial(port = port, baudrate = baudrate, bytesize = bytesize, parity = parity, stopbits = stopbits, xonxoff = xonxoff)) except Exception as e: return - hooks.install_hook("modbus_rtu.RtuServer.after_recv", afterRecv) - hooks.install_hook("modbus_rtu.RtuServer.after_send", afterSend) + hooks.install_hook('modbus.Server.before_handle_request', afterRecv) + hooks.install_hook("modbus.Server.after_handle_request", afterSend) # self.server.set_timeout(5.0) # self.server.set_verbose(True) diff --git a/protocol/ModBus/tcpmaster_example.py b/protocol/ModBus/tcpmaster_example.py index ba5343e..a0df64b 100644 --- a/protocol/ModBus/tcpmaster_example.py +++ b/protocol/ModBus/tcpmaster_example.py @@ -17,7 +17,7 @@ class TcpMaster(): pass hooks.install_hook("modbus_tcp.TcpMaster.after_recv", afterRecv) - hooks.install_hook("modbus_tcp.TcpMaster.after_send", afterSend) + hooks.install_hook("modbus_tcp.TcpMaster.before_send", afterSend) def writeSingleRegister(self, slaveId, address, outputValue, order = 'ABCD'): try: diff --git a/protocol/ModBus/tcpslave_example.py b/protocol/ModBus/tcpslave_example.py index db37793..7e6cb2e 100644 --- a/protocol/ModBus/tcpslave_example.py +++ b/protocol/ModBus/tcpslave_example.py @@ -17,8 +17,8 @@ class TCPSlave(): except Exception as e: pass - hooks.install_hook("modbus_tcp.TcpServer.after_recv", afterRecv) - hooks.install_hook("modbus_tcp.TcpServer.after_send", afterSend) + hooks.install_hook('modbus.Server.before_handle_request', afterRecv) + hooks.install_hook("modbus.Server.after_handle_request", afterSend) # 创建从站 # 添加存储区