zhangzengfei
2024-10-20 cf5a63e3ba397649cb1cbf379f0ad6cd3c2a937e
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,14 +38,22 @@
   lastData := c.data.Back()
   // 如果楼层相同,并且数据在1秒内,则忽略
   if lastData != nil && lastData.Value.(elevatorRunData).Timestamp == data.Timestamp {
   if lastData != nil {
      if lastData.Value.(elevatorRunData).Floor == data.Floor {
         floorChanged = false
         if lastData.Value.(elevatorRunData).Timestamp == data.Timestamp {
         return
      }
   }
   }
   c.data.PushBack(data)
   if !floorChanged {
      return
   }
   // 数据库保存一份
   go func() {
      var d = models.Positions{
         DeviceId:   data.Device,
         Pos:        data.Floor,
@@ -55,7 +66,6 @@
      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)
}
// 删除过期数据