From bb48a3ef0bdc2b5a0b50ca429bc5bc0a118f9732 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 13 九月 2024 02:49:22 +0800
Subject: [PATCH] use goroutinne run rfid read

---
 service/nvcs.go |   37 +++++++++++++++++++++----------------
 1 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/service/nvcs.go b/service/nvcs.go
index fbab7c9..fbff0ac 100644
--- a/service/nvcs.go
+++ b/service/nvcs.go
@@ -185,6 +185,7 @@
 
 	logger.Info("UDP server listening on port %s...", port)
 
+	var lastFloor int
 	// 鏃犻檺寰幆绛夊緟鎺ユ敹鏁版嵁
 	for {
 		// 鍒涘缓涓�涓紦鍐插尯鏉ュ瓨鍌ㄦ帴鏀剁殑鏁版嵁
@@ -216,9 +217,6 @@
 
 		elevator := data.Elevator[0]
 
-		// 璁板綍鐢垫杩愯鐘舵��
-		ElevatorRunState = elevator.Status.RunDir
-
 		var runStateStr string
 		if config.NVCSConf.RunState {
 			if elevator.Status.RunDir == RunUp {
@@ -241,10 +239,13 @@
 		}
 
 		// correct floor when elevator stopped.
-		if ElevatorRunState == 0 {
-			A1CorrectFloor()
+		if elevator.Status.RunDir == 0 {
+			go A1CorrectFloor()
 		} else {
 			RunningCorrectTaskId = ""
+			if lastFloor == elevator.Status.Floor {
+				continue
+			}
 		}
 
 		// 绋嬪簭閮ㄧ讲鍦ㄨ澶囩, 瀛楃鍙犲姞鍣ㄤ笂鎶ョ殑鍚嶇О鍏佽涓虹┖. 鍦ㄤ簯绔�, 鍚嶇О蹇呴』涓庢憚鍍忔満鐩稿悓
@@ -252,18 +253,22 @@
 			elevator.Name = "1"
 		}
 
-		var d = models.Positions{
-			DeviceId:   elevator.Name,
-			Pos:        elevator.Status.FloorName,
-			RunDir:     elevator.Status.RunDir,
-			CreateTime: time.Now().Unix(),
-			TimeString: time.Now().Format("2006-01-02 15:04:05"),
-		}
+		lastFloor = elevator.Status.Floor
 
-		err = d.Save()
-		if err != nil {
-			logger.Warn("Device position update error:%s", err.Error())
-		}
+		go func() {
+			var d = models.Positions{
+				DeviceId:   elevator.Name,
+				Pos:        elevator.Status.FloorName,
+				RunDir:     elevator.Status.RunDir,
+				CreateTime: time.Now().Unix(),
+				TimeString: time.Now().Format("2006-01-02 15:04:05"),
+			}
+
+			err = d.Save()
+			if err != nil {
+				logger.Warn("Device position update error:%s", err.Error())
+			}
+		}()
 	}
 }
 

--
Gitblit v1.8.0