| | |
| | | } |
| | | if (structure.StaticMap[am.AreaId] == nil || len(structure.StaticMap[am.AreaId].Targets) == 0) && len(am.FilterData) > 0 { // 即第一帧数据(也不一定),还没有缓存 |
| | | logger.Info("之前无缓存并且此次区域内有人") |
| | | args.RuleResult["target"] = []structure.Result{} |
| | | args.RuleResult["target"] = append(args.RuleResult["target"].([]structure.Result), structure.Result{args.TaskId, "", "", true, 0, "", am.FilterData, am.AreaJson, false,*lable}) |
| | | m := make(map[string]interface{}) |
| | | m["target"] = []structure.Result{} |
| | | m["target"] = append(m["target"].([]structure.Result), structure.Result{args.TaskId, "", "", true, 0, "", am.FilterData, am.AreaJson, false,*lable}) |
| | | objs := []*structure.Obj{} |
| | | for _, tar := range am.FilterData { |
| | | obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN,CacheSdkData:structure.ResultMsg{message, args.RuleResult}} |
| | | obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN,CacheSdkData:structure.ResultMsg{message, m}} |
| | | objs = append(objs, obj) |
| | | } |
| | | structure.StaticMap[am.AreaId] = &structure.CameraArea{objs} |
| | |
| | | result := false |
| | | sdkNames := "" |
| | | polygonId := "" |
| | | targets11 := []*structure.Arg{} // 符合条件的目标 |
| | | //targets11 := []*structure.Arg{} // 符合条件的目标 |
| | | // 把一帧数据和一组规则发给算法部分,得出判断结果 |
| | | result,sdkNames,polygonId = CallMiddleware(args,*groupRule,&label,message) |
| | | for _, sdkData := range args.Sdkdata { |
| | | for _, areaMap := range sdkData.AreaMapList { |
| | | targets11 = append(targets11,areaMap.AlarmObj...) |
| | | for _,obj := range areaMap.AlarmObj { |
| | | logger.Info("个体静止的目标",obj.Id, obj.Location, obj.CacheData.Cid, len(obj.CacheData.Data)) |
| | | } |
| | | } |
| | | } |
| | | //for _, sdkData := range args.Sdkdata { |
| | | // for _, areaMap := range sdkData.AreaMapList { |
| | | // targets11 = append(targets11,areaMap.AlarmObj...) |
| | | // for _,obj := range areaMap.AlarmObj { |
| | | // logger.Info("个体静止的目标",obj.Id, obj.Location, obj.CacheData.Cid, len(obj.CacheData.Data)) |
| | | // } |
| | | // } |
| | | //} |
| | | //logger.Info("符合条件的目标数据:",targets) |
| | | if result { |
| | | // 最后过持续时间等时间维度的条件 把时间规则位置调整到这个位置是为了缓存数据 !!!!!ps: 对画面中单个目标做定时器的不用再过画面定时器 |