From cd40c6f6f3a6138cb70b2e2d017cc7f34a887ef8 Mon Sep 17 00:00:00 2001
From: lgq <1015864684@qq.com>
Date: 星期五, 17 四月 2026 13:59:49 +0800
Subject: [PATCH] 1.更新vf107代码,更新自动上报通行记录接口、人员查询接口、人员添加接口

---
 vf107/src/worker/netWorker.js |   64 ++++++++++++++++++++++---------
 1 files changed, 45 insertions(+), 19 deletions(-)

diff --git a/vf107/src/worker/netWorker.js b/vf107/src/worker/netWorker.js
index c068030..da189d0 100644
--- a/vf107/src/worker/netWorker.js
+++ b/vf107/src/worker/netWorker.js
@@ -31,6 +31,8 @@
 // 缃戠粶鐘舵�佽窡韪彉閲�
 let lastConnected = false  // 涓婃杩炴帴鐘舵��
 let shouldReconnect = false
+let lastReconnectTime = 0  // 涓婃閲嶈繛鏃堕棿
+const RECONNECT_INTERVAL = 15000  // 閲嶈繛闂撮殧锛堟绉掞級
 const net_map = map.get("NET")
 /**
  * 鏍规嵁閰嶇疆寤虹珛缃戠粶杩炴帴
@@ -42,6 +44,12 @@
  */
 function connect() {
     try {
+        // 濡傛灉缃戠粶宸茬粡杩炴帴锛屼笉闇�瑕侀噸杩�
+        if (net.isConnected()) {
+            logger.info("NET already connected, skip connect")
+            return 0
+        }
+        
         let res = 0;
         // 鑾峰彇缃戠粶閰嶇疆
         let dhcp = config.get("net.dhcp") == 2  // DHCP鍚敤鏍囧織
@@ -119,7 +127,10 @@
         logger.info("NET connect res:", res);
         if (res < 0) {
             //灏忎簬0骞朵笉鏄〃绀虹綉缁滆繛鎺ュけ璐ワ紝鑰屾槸涓�涓壒娈婄殑閿欒锛屽彲浠ラ噸璇曚竴娆″氨鍙互
-            shouldReconnect = true
+            const currentTime = Date.now()
+            if (currentTime - lastReconnectTime >= RECONNECT_INTERVAL) {
+                shouldReconnect = true
+            }
         }
         return res;
     } catch (error) {
@@ -187,28 +198,43 @@
             if (net.getNative()) {
                 net.loop(); // 鎵ц缃戠粶寰幆澶勭悊
             }
+            
+            // 鍏堟鏌ョ綉缁滆繛鎺ョ姸鎬�
+            if (net.isConnected()) {
+                let param = driver.net.getNetParam()
+                if (!lastConnected || lastConnectedIp != param.ip) {
+                    bus.fire(driver.net.CONNECTED_CHANGED, "connected")
+                    lastConnected = true
+                    net_map.put("NET_STATUS", "connected")
+                    lastConnectedIp = param.ip
+                }
+            } else {
+                logger.info("NET not isConnected");
+                // if (lastConnected) {
+                    bus.fire(driver.net.CONNECTED_CHANGED, "disconnected")
+                    lastConnected = false
+                    net_map.put("NET_STATUS", "disconnected")
+                    // 鑷姩瑙﹀彂閲嶈繛
+                    shouldReconnect = true
+                // }
+            }
+            
+            // 鐒跺悗妫�鏌ユ槸鍚﹂渶瑕侀噸杩�
             if (shouldReconnect) {
-                logger.info("NET shouldReconnect");
-                shouldReconnect = false
-                connect()
+                const currentTime = Date.now()
+                if (currentTime - lastReconnectTime >= RECONNECT_INTERVAL) {
+                    logger.info("NET shouldReconnect");
+                    shouldReconnect = false
+                    lastReconnectTime = currentTime
+                    connect()
+                } else {
+                    // 閲嶈繛闂撮殧涓嶈冻锛屽彇娑堥噸杩�
+                    shouldReconnect = false
+                    // logger.info("NET reconnect skipped, interval not reached")
+                }
             }
         } catch (error) {
             logger.error(error)
-        }
-        if (net.isConnected()) {
-            let param = driver.net.getNetParam()
-            if (!lastConnected || lastConnectedIp != param.ip) {
-                bus.fire(driver.net.CONNECTED_CHANGED, "connected")
-                lastConnected = true
-                net_map.put("NET_STATUS", "connected")
-                lastConnectedIp = param.ip
-            }
-        } else {
-            if (lastConnected) {
-                bus.fire(driver.net.CONNECTED_CHANGED, "disconnected")
-                lastConnected = false
-                net_map.put("NET_STATUS", "disconnected")
-            }
         }
     }, 5000)
 }

--
Gitblit v1.9.3