zhangzengfei
2024-10-20 cf5a63e3ba397649cb1cbf379f0ad6cd3c2a937e
debug osd
2个文件已修改
49 ■■■■■ 已修改文件
nvcs/cache.go 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
nvcs/osd.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
nvcs/cache.go
@@ -24,6 +24,9 @@
// 存储数据到缓存中
func (c *simpleCache) store(data elevatorRunData) {
    var floorChanged = true
    // 取RFID楼层
    if config.RFIDConf.ReadFloor && gRFIDFloor != data.Floor {
        if data.RunState == RunStop {
            logger.Warn("A floor error has occurred rfid epc %s, nvcs floor %s", gRFIDFloor, data.Floor)
@@ -35,27 +38,34 @@
    lastData := c.data.Back()
    // 如果楼层相同,并且数据在1秒内,则忽略
    if lastData != nil && lastData.Value.(elevatorRunData).Timestamp == data.Timestamp {
    if lastData != nil {
        if lastData.Value.(elevatorRunData).Floor == data.Floor {
            return
            floorChanged = false
            if lastData.Value.(elevatorRunData).Timestamp == data.Timestamp {
                return
            }
        }
    }
    // 数据库保存一份
    go func() {
        var d = models.Positions{
            DeviceId:   data.Device,
            Pos:        data.Floor,
            RunDir:     data.RunState,
            CreateTime: time.Now().Unix(),
            TimeString: time.Now().Format("2006-01-02 15:04:05"),
        }
    c.data.PushBack(data)
        err := d.Save()
        if err != nil {
            logger.Warn("Device position update error:%s", err.Error())
        }
    }()
    if !floorChanged {
        return
    }
    // 数据库保存一份
    var d = models.Positions{
        DeviceId:   data.Device,
        Pos:        data.Floor,
        RunDir:     data.RunState,
        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())
    }
    // 写OSD
    var runStateStr string
@@ -72,10 +82,9 @@
        floorText := fmt.Sprintf("%s%s %s", data.Floor, runStateStr, config.NVCSConf.OSD)
        // 调用hik api 将文字添加到osd的左下角
        go addFloorToOSD(floorText)
        addFloorToOSD(floorText)
    }
    c.data.PushBack(data)
}
// 删除过期数据
nvcs/osd.go
@@ -60,6 +60,10 @@
        }
    }
    if overlayText.DisplayText == osdText {
        return
    }
    overlayText.DisplayText = osdText
    body, _ := xml.Marshal(overlayText)
    _, err := hikISAPIRequest(cameraWebUser, cameraWebPassword, "PUT", overlay7Url, string(body))