| | |
| | | "io/ioutil" |
| | | "net" |
| | | "net/http" |
| | | "strings" |
| | | "time" |
| | | |
| | | "gat1400Exchange/config" |
| | |
| | | |
| | | logger.Info("UDP server listening on port %s...", port) |
| | | |
| | | var runState string |
| | | // 无限循环等待接收数据 |
| | | for { |
| | | // 创建一个缓冲区来存储接收的数据 |
| | |
| | | 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上 固 枪" |
| | |
| | | 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"), |
| | | } |
| | |
| | | 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"` |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | 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) |
| | |
| | | |
| | | 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) |
| | |
| | | |
| | | 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 != "" { |
| | |
| | | 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"), |
| | | } |