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