From cd885fa2f65f90ae6d2d8df1afb5e74cfa214855 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期日, 26 五月 2024 20:19:26 +0800
Subject: [PATCH] 添加A2梯控的接收端
---
service/nvcs.go | 71 ++++++++++++++++++++++++++++++++++-
1 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/service/nvcs.go b/service/nvcs.go
index acb1177..ffb4f20 100644
--- a/service/nvcs.go
+++ b/service/nvcs.go
@@ -4,8 +4,10 @@
"bytes"
"encoding/json"
"fmt"
+ "github.com/gin-gonic/gin"
"io/ioutil"
"net"
+ "net/http"
"time"
"gat1400Exchange/config"
@@ -31,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"`
}
@@ -80,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())
@@ -134,8 +136,73 @@
}
}
+/*
+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)
+
+ 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