| | |
| | | |
| | | logger.Info("UDP server listening on port %s...", port) |
| | | |
| | | var runState string |
| | | // 无限循环等待接收数据 |
| | | for { |
| | | // 创建一个缓冲区来存储接收的数据 |
| | |
| | | continue |
| | | } |
| | | |
| | | // 设置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 == RunUp { |
| | | runState = "上" |
| | | } else if data.Elevator[0].Status.RunDir == RunDown { |
| | | runState = "下" |
| | | } |
| | | |
| | | floorText = floorText + " " + config.NVCSConf.OSD |
| | | // 已到最下层 |
| | | if data.Elevator[0].Status.Floor == 0 { |
| | | runState = "上" |
| | | } |
| | | if data.Elevator[0].Status.Floor == data.Elevator[0].Status.TotalFloors { |
| | | runState = "下" |
| | | } |
| | | |
| | | // 设置osd 格式 "1F上 固 枪" |
| | | if config.NVCSConf.OSD != "" { |
| | | floorText := fmt.Sprintf("%s%s %s", data.Elevator[0].Status.FloorName, runState, config.NVCSConf.OSD) |
| | | |
| | | // 调用hik api 将文字添加到osd的左下角 |
| | | AddFloorToOSD(floorText) |
| | |
| | | CameraWebPassword = "a1234567" |
| | | ) |
| | | |
| | | var overlayText TextOverlay |
| | | |
| | | type TextOverlay struct { |
| | | Id int64 `xml:"id"` |
| | | Enabled bool `xml:"enabled"` |
| | |
| | | |
| | | func AddFloorToOSD(osdText string) { |
| | | overlay7Url := CameraWebAddr + HikISAPIOverlaySetUrl |
| | | rsp, err := ISAPIRequest(CameraWebUser, CameraWebPassword, "GET", overlay7Url, "") |
| | | if err != nil { |
| | | logger.Warn("Get osd info failure") |
| | | return |
| | | } |
| | | |
| | | var overlayText TextOverlay |
| | | err = xml.Unmarshal(rsp, &overlayText) |
| | | if err != nil { |
| | | logger.Warn("%s", err.Error()) |
| | | return |
| | | // 获取左下角第一个字符的位置 |
| | | if overlayText.DisplayText == "" { |
| | | rsp, err := ISAPIRequest(CameraWebUser, CameraWebPassword, "GET", overlay7Url, "") |
| | | if err != nil { |
| | | logger.Warn("Get osd info failure") |
| | | return |
| | | } |
| | | |
| | | err = xml.Unmarshal(rsp, &overlayText) |
| | | if err != nil { |
| | | logger.Warn("%s", err.Error()) |
| | | return |
| | | } |
| | | } |
| | | |
| | | overlayText.DisplayText = osdText |
| | | body, _ := xml.Marshal(overlayText) |
| | | _, err = ISAPIRequest(CameraWebUser, CameraWebPassword, "PUT", overlay7Url, string(body)) |
| | | _, err := ISAPIRequest(CameraWebUser, CameraWebPassword, "PUT", overlay7Url, string(body)) |
| | | if err != nil { |
| | | logger.Warn("Camera osd set failure!!") |
| | | return |