zhangzengfei
2024-08-25 43e02cb987f100c6ff67694e7d1099a139d8dee2
service/nvcs.go
@@ -7,6 +7,7 @@
   "io/ioutil"
   "net"
   "net/http"
   "strings"
   "time"
   "gat1400Exchange/config"
@@ -66,7 +67,6 @@
   logger.Info("UDP server listening on port %s...", port)
   var runState string
   // 无限循环等待接收数据
   for {
      // 创建一个缓冲区来存储接收的数据
@@ -96,19 +96,21 @@
         continue
      }
      // 记录电梯运行状态, 只记录上行和下行
      if data.Elevator[0].Status.RunDir == RunUp {
         runState = "上"
      } else if data.Elevator[0].Status.RunDir == RunDown {
         runState = "下"
      var runState string
      var iRunSate int
      // 记录电梯运行状态
      iRunSate = data.Elevator[0].Status.RunDir
      if config.NVCSConf.RunState {
         if data.Elevator[0].Status.RunDir == RunUp {
            runState = "上"
         } else if data.Elevator[0].Status.RunDir == RunDown {
            runState = "下"
         }
      }
      // 已到最下层
      if data.Elevator[0].Status.Floor == 0 {
         runState = "上"
      }
      if data.Elevator[0].Status.Floor == data.Elevator[0].Status.TotalFloors {
         runState = "下"
      if !config.NVCSConf.RunState {
         runState = ""
      }
      // 设置osd  格式 "1F上 固 枪"
@@ -133,6 +135,7 @@
      var d = models.Positions{
         DeviceId:   elevator.Name,
         Pos:        elevator.Status.FloorName,
         RunDir:     iRunSate,
         CreateTime: time.Now().Unix(),
         TimeString: time.Now().Format("2006-01-02 15:04:05"),
      }
@@ -167,10 +170,10 @@
type A2ElevatorData struct {
   Id    string `json:"id"`
   State struct {
      Floor  string  `json:"Floor"`
      Status string  `json:"Status"`
      TFloor int64   `json:"TFloor"`
      Speed  float64 `json:"Speed"`
      Floor  string `json:"Floor"`
      Status string `json:"Status"`
      TFloor int64  `json:"TFloor"`
      Speed  string `json:"Speed"`
   } `json:"State"`
}
@@ -202,7 +205,7 @@
   }
   if len(configData.FloorData) > 0 {
      A2BottomFloor, A2TopFloor = configData.FloorData[0], configData.FloorData[len(configData.FloorData[0])-1]
      A2BottomFloor, A2TopFloor = configData.FloorData[0], configData.FloorData[len(configData.FloorData)-1]
   }
   logger.Info("A2 floor config total:%d, bottomFloor:%s, topFloor:%s", len(configData.FloorData), A2BottomFloor, A2TopFloor)
@@ -210,13 +213,15 @@
func NVCSA2WebServer() {
   // 先获取总楼层数, 记录最高层
   GetA2ElevatorConfig()
   var runState string
   //GetA2ElevatorConfig()
   r := gin.Default()
   r.POST("/", func(c *gin.Context) {
      var req A2ElevatorData
      var runState string
      var iRunState int
      err := c.BindJSON(&req)
      if err != nil {
         c.JSON(http.StatusBadRequest, nil)
@@ -225,19 +230,27 @@
      logger.Debug("Received A2 report data %+v", req)
      // 记录电梯运行状态, 只记录上行和下行
      if req.State.Speed > 0 {
      // 记录电梯运行状态
      if strings.Contains(req.State.Status, "上") {
         runState = "上"
      } else if req.State.Speed < 0 {
         iRunState = RunUp
      } else if strings.Contains(req.State.Status, "下") {
         runState = "下"
         iRunState = RunDown
      }
      // 已到最下层
      if req.State.Floor == A2BottomFloor {
         runState = "上"
      }
      if req.State.Floor == A2TopFloor {
         runState = "下"
      //// 已到最下层
      //if req.State.Floor == A2BottomFloor {
      //   runState = "上"
      //   iRunState = RunUp
      //}
      //if req.State.Floor == A2TopFloor {
      //   runState = "下"
      //   iRunState = RunDown
      //}
      if !config.NVCSConf.RunState {
         runState = ""
      }
      if config.NVCSConf.OSD != "" {
@@ -250,6 +263,7 @@
      var d = models.Positions{
         DeviceId:   req.Id,
         Pos:        req.State.Floor,
         RunDir:     iRunState,
         CreateTime: time.Now().Unix(),
         TimeString: time.Now().Format("2006-01-02 15:04:05"),
      }