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