| | |
| | | type SdkDatas struct { |
| | | CameraId string |
| | | Sdkdata []*SdkData |
| | | RuleResult map[string]interface{} // 过完规则后打的标签 face: []Arg yolo: []Result |
| | | RuleResult map[string]interface{} // 过完规则后打的标签 face: []Arg yolo: []Result cacheData: SdkDatas |
| | | } |
| | | |
| | | // 将传递过来的参数转化为 |
| | |
| | | } |
| | | } |
| | | } |
| | | //TimerAlarm(args,groupRule.GroupId) |
| | | if flag { |
| | | // 最后成功报警才把符合条件的人脸数据塞进结果标签里 |
| | | // 配了人脸的算法才把人脸的数据甩出来打标签 |
| | |
| | | } |
| | | } |
| | | } |
| | | logger.Debug("------locations的内容:",locations) |
| | | if sdkNames != "" { |
| | | args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText, locations,polygonId}) |
| | | logger.Info("-------------------yolo结果标签长度", len(args.RuleResult["yolo"].([]Result))) |
| | |
| | | return false |
| | | } |
| | | } |
| | | func TimerAlarm(groupId string) (int) { |
| | | var flagTime int = 0 |
| | | func TimerAlarm(args SdkDatas,groupId string) (int) { |
| | | var flagTime int = 0 // 为0的意思是 |
| | | for k, timeEle := range TimeEleList { |
| | | if strings.Contains(k, groupId) { |
| | | if timeEle.N == 0 && !timeEle.AlarmFlag { // 这组规则的定时器要全部等于0 暂且认为一组规则只有一个定时器 |
| | | logger.Info("———————————-------------首次符合持续时间规则并报警") |
| | | flagTime = 1 |
| | | timeEle.AlarmFlag = true |
| | | args.RuleResult["cacheData"] = timeEle.CacheSdkData |
| | | } |
| | | if timeEle.N == 0 && timeEle.AlarmFlag { |
| | | logger.Info("-------------------------符合持续时间规则但并不是首次,不报警") |