From dc765761b9bb6866635f06f754d28895507e711f Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期四, 06 六月 2024 16:26:40 +0800
Subject: [PATCH] 完善打印

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

diff --git a/service/nvcs.go b/service/nvcs.go
index 64464fa..3cbd488 100644
--- a/service/nvcs.go
+++ b/service/nvcs.go
@@ -4,9 +4,10 @@
 	"bytes"
 	"encoding/json"
 	"fmt"
+	"github.com/gin-gonic/gin"
 	"io/ioutil"
 	"net"
-	"strings"
+	"net/http"
 	"time"
 
 	"gat1400Exchange/config"
@@ -32,7 +33,7 @@
 	Alarm  []interface{}  `json:"Alarm"` // You might want to define a specific type for alarms
 }
 
-type ElevatorData struct {
+type A1ElevatorData struct {
 	Elevator []Elevator `json:"Elevator"`
 }
 
@@ -81,7 +82,7 @@
 		reader := transform.NewReader(bytes.NewReader(buffer[:numBytes]), decoder)
 		decodedBytes, err := ioutil.ReadAll(reader)
 
-		var data ElevatorData
+		var data A1ElevatorData
 		err = json.Unmarshal(decodedBytes, &data)
 		if err != nil {
 			logger.Warn("ElevatorData unmarshal error:%s", err.Error())
@@ -93,16 +94,16 @@
 			continue
 		}
 
-		// 璁剧疆osd  鏍煎紡 "1F鍋� 鍥� 鏋�"
+		// 璁剧疆osd  鏍煎紡 "1F 鍥� 鏋�"
 		if config.NVCSConf.OSD != "" {
 			floorText := data.Elevator[0].Status.FloorName
-			if data.Elevator[0].Status.RunDir == RunStop {
-				floorText = floorText + "鍋�"
-			} else if data.Elevator[0].Status.RunDir == RunUp {
-				floorText = floorText + "涓�"
-			} else {
-				floorText = floorText + "涓�"
-			}
+			//if data.Elevator[0].Status.RunDir == RunStop {
+			//	floorText = floorText + "鍋�"
+			//} else if data.Elevator[0].Status.RunDir == RunUp {
+			//	floorText = floorText + "涓�"
+			//} else {
+			//	floorText = floorText + "涓�"
+			//}
 
 			floorText = floorText + " " + config.NVCSConf.OSD
 
@@ -117,11 +118,8 @@
 		elevator := data.Elevator[0]
 
 		// 绋嬪簭閮ㄧ讲鍦ㄨ澶囩, 瀛楃鍙犲姞鍣ㄤ笂鎶ョ殑鍚嶇О鍏佽涓虹┖. 鍦ㄤ簯绔�, 鍚嶇О蹇呴』涓庢憚鍍忔満鐩稿悓
-		if config.ServeConf.Role != "agent" {
-			elevator.Name = strings.Trim(elevator.Name, " ")
-			if elevator.Name == "" {
-				continue
-			}
+		if elevator.Name == "" {
+			elevator.Name = "1"
 		}
 
 		var d = models.Positions{
@@ -138,8 +136,81 @@
 	}
 }
 
+/*
+A2 娆� 鏁版嵁涓婃姤鏍煎紡
+
+	{
+		"id": "10c8a1b0051607361c",
+		"State": {
+		"Floor": "-1",
+		"Floor_flag": "宸叉牎鍑�",
+		"JZ_flag": "宸叉牎鍑�,",
+		"JZ_i": 7,
+		"Pressure": "99766",
+		"Speed": "0.000",
+		"Status": "鍋滄顒�1",
+		"TFloor": 7,
+		"T_acc": "0.062",
+		"X_acc": "1.175",
+		"Y_acc": "-1.129",
+		"Z_acc": "8.344"
+	}
+*/
+type A2ElevatorData struct {
+	Id    string `json:"id"`
+	State struct {
+		Floor  string `json:"Floor"`
+		Status string `json:"Status"`
+		TFloor int64  `json:"TFloor"`
+	} `json:"State"`
+}
+
+func NVCSA2WebServer() {
+	r := gin.Default()
+	r.POST("/", func(c *gin.Context) {
+		var req A2ElevatorData
+		err := c.BindJSON(&req)
+		if err != nil {
+			c.JSON(http.StatusBadRequest, nil)
+			return
+		}
+
+		logger.Debug("Received A2 report data %+v", req)
+
+		if config.NVCSConf.OSD != "" {
+			floorText := req.State.Floor
+			floorText = floorText + " " + config.NVCSConf.OSD
+
+			// 璋冪敤hik api 灏嗘枃瀛楁坊鍔犲埌osd鐨勫乏涓嬭
+			AddFloorToOSD(floorText)
+		}
+
+		var d = models.Positions{
+			DeviceId:   req.Id,
+			Pos:        req.State.Floor,
+			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()
+	}
 }

--
Gitblit v1.8.0