| | |
| | | } |
| | | // 判断一个区域内有没有静止的目标 |
| | | func CompareAndSave(rule *protomsg.Rule, am *structure.AreaMap,lable *structure.Others,args *structure.SdkDatas,message *protomsg.SdkMessage) structure.LittleRuleResult { |
| | | defer func() { |
| | | if err := recover(); err != nil { |
| | | logger.Error("个体静止规则有误", err) |
| | | } |
| | | }() |
| | | logger.Info("走了个体静止核心算法") |
| | | initN := 5 |
| | | if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a977" && rule.SdkArgAlias == "duration" { |
| | |
| | | initN = init |
| | | } |
| | | } |
| | | logger.Info("看一下静止区域内的目标:",am.AreaId) |
| | | for _, tar := range structure.StaticMap[am.AreaId].Targets { |
| | | logger.Info("具体目标:",tar.Location) |
| | | } |
| | | if len(structure.StaticMap[am.AreaId].Targets) == 0 { // 即第一帧数据(也不一定),还没有缓存 |
| | | logger.Info("之前无缓存") |
| | | objs := []*structure.Obj{} |
| | | for _, tar := range am.FilterData { |
| | | obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN} |
| | |
| | | structure.StaticMap[am.AreaId] = &structure.CameraArea{objs} |
| | | return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort} |
| | | } else { |
| | | logger.Info("之前有缓存") |
| | | flag := "false" |
| | | // 以之前静止的对象为主判断是否静止 |
| | | tars := []*structure.Arg{} |