From 539a78196da60eb97cf7057c5c85dfaa9b240741 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 11 十月 2024 16:21:32 +0800
Subject: [PATCH] 添加A3平层传感器数据获取方式

---
 service/nvcs.go |   70 +++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/service/nvcs.go b/service/nvcs.go
index fbff0ac..d7579ce 100644
--- a/service/nvcs.go
+++ b/service/nvcs.go
@@ -407,11 +407,81 @@
 	}
 }
 
+type A3ElevatorData struct {
+	Id     string `json:"id"`
+	Time   string `json:"time"`
+	Total  int    `json:"total"`
+	Status int    `json:"status"`
+	Floor  int    `json:"floor"`
+}
+
+func NVCSA3WebServer() {
+	r := gin.Default()
+
+	r.POST("/", func(c *gin.Context) {
+		var req A3ElevatorData
+		var runState string
+		var iRunState int
+
+		err := c.BindJSON(&req)
+		if err != nil {
+			c.JSON(http.StatusBadRequest, nil)
+			return
+		}
+
+		iRunState = req.Status
+		logger.Debug("Received A2 report data %+v", req)
+
+		// 璁板綍鐢垫杩愯鐘舵��
+		if iRunState == RunUp {
+			runState = "涓�"
+		} else if iRunState == RunDown {
+			runState = "涓�"
+		}
+
+		if !config.NVCSConf.RunState {
+			runState = ""
+		}
+
+		if config.NVCSConf.OSD != "" {
+			floorText := fmt.Sprintf("%dF%s %s", req.Floor, runState, config.NVCSConf.OSD)
+
+			// 璋冪敤hik api 灏嗘枃瀛楁坊鍔犲埌osd鐨勫乏涓嬭
+			AddFloorToOSD(floorText)
+		}
+
+		var d = models.Positions{
+			DeviceId:   req.Id,
+			Pos:        fmt.Sprintf("%dF", req.Floor),
+			RunDir:     iRunState,
+			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())
+		}
+
+		c.JSON(http.StatusOK, "ok")
+	})
+
+	err := r.Run(fmt.Sprintf(":%s", config.NVCSConf.Port))
+	if err != nil {
+		logger.Warn("Start NVCS WebServer error, %s", err.Error())
+	}
+}
+
 func StartNVCSServer() {
 	if config.NVCSConf.Model == "A1" {
 		go NVCSA1UDPServer()
 	}
+
 	if config.NVCSConf.Model == "A2" {
 		go NVCSA2WebServer()
 	}
+
+	if config.NVCSConf.Model == "A3" {
+		go NVCSA3WebServer()
+	}
 }

--
Gitblit v1.8.0