| | |
| | | for k, timeEle := range TimeEleList { |
| | | if strings.Contains(k, groupId) { |
| | | if timeEle.AlarmFlag { |
| | | logger.Debug("------------------------------杀死定时器,报警此帧状态改变的数据,此时的计数器的值为",timeEle.N) |
| | | flagTime = "12" |
| | | args.RuleResult["timeLabel"] = flagTime |
| | | delete(TimeEleList,k) |
| | | if timeEle.BufferFlag == 0 { |
| | | logger.Debug("------------------------------杀死定时器,报警此帧状态改变的数据,此时的计数器的值为",timeEle.N) |
| | | flagTime = "12" |
| | | args.RuleResult["timeLabel"] = flagTime |
| | | delete(TimeEleList,k) |
| | | } else { |
| | | if timeEle.BufferFlag > 0 { |
| | | timeEle.BufferFlag-- |
| | | } |
| | | } |
| | | } else { |
| | | delete(TimeEleList,k) |
| | | } |
| | |
| | | |
| | | if flag { |
| | | timeLength, _ := strconv.Atoi(rule.SdkArgValue) |
| | | timeEle := TimeElement{N: timeLength, InitN: timeLength, AlarmFlag: false, CacheSdkData: ResultMsg{message,args.RuleResult}} // 扔进去一个定时器元素(并缓存当前画面帧数据) |
| | | timeEle := TimeElement{N: timeLength, InitN: timeLength, AlarmFlag: false,BufferFlag:6, CacheSdkData: ResultMsg{message,args.RuleResult}} // 扔进去一个定时器元素(并缓存当前画面帧数据) |
| | | //TimeEleList = make(map[string]timeElement) |
| | | TimeEleList[groupId+" "+rule.Id] = &timeEle // 定时器元素以摄像机id拼接区域id为键 |
| | | logger.Info("创建了计数器并且计数器集合为:", TimeEleList) |
| | |
| | | type TimeElement struct { |
| | | N int // 按时间依次递减的当前值 |
| | | InitN int // 赋值后就不变的初始值 |
| | | BufferFlag int // 缓冲容错位 连续帧false才为false |
| | | BufferFlag int // 缓冲容错位 连续n帧false才为false |
| | | AlarmFlag bool // 报警标志位 定时器开启后第一次报警时会被置为true 往后再来报警也不会插进ES |
| | | CacheSdkData ResultMsg // 定时器的缓存数据 持续时间类的开启定时器时要缓存一帧 |
| | | GroupId string // 联动规则需要记录下此时的规则组id |