From b5646e3f08bf45a27a3db92f5e27568a5448cb03 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期二, 10 十二月 2024 12:34:11 +0800
Subject: [PATCH] 优化串口重连

---
 src/samples/deviceApi/mbp7000.ts |   28 ++++++++++++++++++----------
 1 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/src/samples/deviceApi/mbp7000.ts b/src/samples/deviceApi/mbp7000.ts
index f1005f9..de51cab 100644
--- a/src/samples/deviceApi/mbp7000.ts
+++ b/src/samples/deviceApi/mbp7000.ts
@@ -1,5 +1,5 @@
 
-import { ElMessage, ElMessageBox } from 'element-plus'
+import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
 const { SerialPort } = require('serialport')
 const { DelimiterParser } = require('@serialport/parser-delimiter')
 const { InterByteTimeoutParser } = require('@serialport/parser-inter-byte-timeout')
@@ -21,7 +21,7 @@
     console.log('初始化打开mbp7000口')
     if(reconnectAttempts!==0){
         ipcRenderer.invoke('logger', '串口重连第${reconnectAttempts}次')
-        ElMessage({
+        ElMessage.warning({
             message: `串口重连第${reconnectAttempts}次启动`,
             type: 'success',
         })
@@ -58,16 +58,25 @@
     }
     try {
         serialPort  = new SerialPort({ path, baudRate }, (err: any) => {
+            reconnectAttempts++
             if (err) {
                 console.log(err)
-                ElMessage({
-                    message: '端口打开失败!',
-                    type: 'error',
-                })
-                console.log(err)
+                ipcRenderer.invoke('logger', 'mbp7000血压计端口打开失败!')
+                ElNotification.warning({
+                    title: '警告',
+                    message: 'mbp7000血压计端口打开失败!',
+                    showClose: false,
+                    duration:10000
+                  })
+
+                setTimeout(()=>{
+                    initPort(path,baudRate)
+                }, RECONNECT_INTERVAL);
             }else{
-                ElMessage({
-                    message: '端口打开成功',
+                reconnectAttempts=0
+                ipcRenderer.invoke('logger', 'mbp7000血压计端口打开成功')
+                ElMessage.success({
+                    message: 'mbp7000血压计端口打开成功',
                     type: 'success',
                 })
             } 
@@ -84,7 +93,6 @@
       
         const parser = serialPort.pipe(new InterByteTimeoutParser({ interval: 500 ,maxBufferSize:20}))
         parser.on('ready', () => console.log('the ready byte sequence has been received'))
-    
         parser.on('data',(value: string | any[]) =>{
             console.log('-----------------')
             if(value.length>=20){

--
Gitblit v1.8.0