From 5823199abe494ddd677d0a99b5b53ea4445f389c Mon Sep 17 00:00:00 2001 From: wangxibao Date: Mon, 23 Sep 2024 14:15:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=B2=E5=8F=A3=E6=96=AD?= =?UTF-8?q?=E5=BC=80=E9=87=8D=E8=BF=9E=E5=8A=9F=E8=83=BD=E3=80=82=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E6=95=B0=E6=8D=AECOM=E5=8F=B7=E5=9C=A8=E6=9C=80?= =?UTF-8?q?=E5=89=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PyUartAssistant/PyUart.py | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/PyUartAssistant/PyUart.py b/PyUartAssistant/PyUart.py index 89fca84..b15eef3 100644 --- a/PyUartAssistant/PyUart.py +++ b/PyUartAssistant/PyUart.py @@ -274,7 +274,7 @@ class PyQt5Serial(QtWidgets.QWidget,Ui_UartAssistant): #日志保存 # 格式化日期时间字符串,用于文件名 # 例如:2024-05-28_12-34-56.txt - self.file =time.strftime("%Y%m%d%H%M%S", time.localtime())+self.ser.port + self.file = self.ser.port+"-"+time.strftime("%Y%m%d%H%M%S", time.localtime()) self.filename = self.file + ".txt" @@ -293,7 +293,10 @@ class PyQt5Serial(QtWidgets.QWidget,Ui_UartAssistant): if num>0 : #print("接收数据",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")) - data = self.ser.read(num) + try: + data = self.ser.read(num) + except: + QMessageBox.critical(self, '串口异常') self.buffer+=data #print("接收完成",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")) @@ -337,11 +340,30 @@ class PyQt5Serial(QtWidgets.QWidget,Ui_UartAssistant): except: - QMessageBox.critical(self, '串口异常', '串口接收数据异常,请重新连接设备!') - self.port_close() - return None - - + # QMessageBox.critical(self, '串口异常', '串口接收数据异常,请重新连接设备!') + # 获取到text光标 + textCursor = self.textEditReceive.textCursor() + # 滚动到底部 + textCursor.movePosition(textCursor.End) + # 设置光标到text中去 + self.textEditReceive.setTextCursor(textCursor) + self.textEditReceive.insertPlainText("串口断开,重连中...\r\n") + self.ser.close() + + try: + print("重连中...") + time.sleep(1) + if not self.ser.is_open: + self.ser.open() + print("重连成功") + else: + print("串口已连接,无需重连") + except Exception as e: + + print(f"重连失败{e}") + + + # %%定时发送数据 def data_send_timer(self): try: