| | |
| | | } |
| | | if len(am.FilterData) < 0 { |
| | | logger.Info("本帧区域内无数据,返回") |
| | | // 清空缓存的目标 |
| | | |
| | | return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort} |
| | | } |
| | | 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}) |
| | | |
| | | if structure.StaticMap[am.AreaId] == nil || len(structure.StaticMap[am.AreaId].Targets) == 0 { // 即第一帧数据(也不一定),还没有缓存 |
| | | if structure.StaticMap[am.AreaId] == nil || len(structure.StaticMap[am.AreaId].Targets) == 0 { |
| | | logger.Info("之前无缓存并且此次区域内有人") |
| | | |
| | | objs := []*structure.Obj{} |
| | |
| | | // 把满足条件的目标放进areaMap中 |
| | | am.AlarmObj = tars |
| | | // 更新数据,把新来的数据写入缓存 |
| | | objs := []*structure.Obj{} |
| | | for _, tar := range am.FilterData { |
| | | flag1 := false |
| | | for _, OBJ := range structure.StaticMap[am.AreaId].Targets { |
| | |
| | | } |
| | | if !flag1 { // 集合中没有的才插入 |
| | | obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN,AlarmFlag: false, BufferFlag: 10, CacheSdkData: structure.ResultMsg{message, m}} |
| | | objs = append(objs, obj) |
| | | structure.StaticMap[am.AreaId].Targets = append(structure.StaticMap[am.AreaId].Targets, obj) |
| | | } |
| | | } |
| | | structure.StaticMap[am.AreaId] = &structure.CameraArea{objs} |
| | | return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort} |
| | | } |
| | | } |
| | |
| | | // 先判断一下数据带的规则标签是否有可以插入的 |
| | | logger.Info("插入定时目标信息:",len(msg.RuleResult["target"].([]structure.Result))) |
| | | for _, yoloResult := range msg.RuleResult["target"].([]structure.Result) { |
| | | for _, tar := range yoloResult.AlarmObj { |
| | | // 装载目标信息 |
| | | logger.Info("报警目标个数:",len(yoloResult.AlarmObj),tar.AreaJson,tar.Location,tar.Score) |
| | | var target = new(Target) |
| | | target.TargetId = strconv.FormatUint(tar.Id, 10) |
| | | target.TargetScore = tar.Score |
| | | target.TargetLocation = Points{TopLeft: Point{tar.Location.X, tar.Location.Y}, BottomRight: Point{tar.Location.X + tar.Location.Width, tar.Location.Y + tar.Location.Height}} |
| | | // 装载目标信息` |
| | | //logger.Info("报警目标个数:",len(yoloResult.AlarmObj),tar.AreaJson,tar.Location,tar.Score) |
| | | //var target = new(Target) |
| | | //target.TargetId = strconv.FormatUint(tar.Id, 10) |
| | | //target.TargetScore = tar.Score |
| | | //target.TargetLocation = Points{TopLeft: Point{tar.Location.X, tar.Location.Y}, BottomRight: Point{tar.Location.X + tar.Location.Width, tar.Location.Y + tar.Location.Height}} |
| | | //logger.Info("人脸的id:",strconv.FormatUint(face.Id, 10)) |
| | | var targetInfos []Target |
| | | targetInfos = append(targetInfos, *target) |
| | | //var targetInfos []Target |
| | | //targetInfos = append(targetInfos, *target) |
| | | // 获取目标缓存图片 |
| | | url := []string{} |
| | | //InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg)) |
| | | // 把缓存的数据上传后得到地址存进去 |
| | | // 解压缩并上传图片 |
| | | url1 := uploadImg(tar.CacheData) |
| | | url1 := uploadImg(yoloResult.AlarmObj[0].CacheData) |
| | | url = append(url,url1) |
| | | // 添加报警规则组 |
| | | sdkNames := "" |
| | |
| | | url = append(url, resp["fileUrl"].(string)) |
| | | //esDataId := uuid.NewV4().String() |
| | | peraction := Personaction{ |
| | | tar.Uuid, |
| | | msg.Push.PushId, |
| | | msg.Cid, |
| | | msg.Push.Cam.Name, |
| | | msg.Push.Cam.Addr, |
| | |
| | | 0, |
| | | 0, |
| | | 0, |
| | | targetInfos, |
| | | nil, |
| | | linkTag, |
| | | linkTagInfos, |
| | | } |
| | |
| | | } |
| | | logger.Warn("__________________________________________往ES插入target数据成功") |
| | | //os.Exit(1) |
| | | } |
| | | } |
| | | } |
| | | } |