| | |
| | | if len(temp) > 0 { |
| | | if ruleList[i].SetType == "linkTask" { |
| | | // groupId中含有link则为联动任务 |
| | | linkTask(args, ruleList[i], taskId) |
| | | LinkTask(args, ruleList[i], taskId) |
| | | } else { |
| | | // 独立任务的处理 |
| | | RunRule(args, ruleList[i], taskId) |
| | |
| | | } |
| | | |
| | | }() |
| | | log.Println("+++++++++++规则开始运行+++++++++++++++++当前规则--:",*groupRule) |
| | | log.Println("+++++++++++规则开始运行+++++++++++++++++当前规则--:",(*groupRule).GroupText) |
| | | resultSplice := []*LittleRuleResult{} |
| | | // 先过完条件规则 |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | |
| | | } |
| | | } |
| | | } |
| | | args.RuleResult["face"] = faces |
| | | // 配了人脸的算法才把人脸的数据甩出来打标签 |
| | | flag := false |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" || groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a971" { |
| | | flag = true |
| | | } |
| | | } |
| | | if flag { |
| | | args.RuleResult["face"] = faces |
| | | } |
| | | // 再过其他数据 这步直接得到结果(真或假) 过目标数量 |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | for _, sdkData := range args.Sdkdata { |
| | |
| | | } |
| | | } |
| | | if flag { |
| | | fmt.Println("----------------------------终于走完万里长征") |
| | | fmt.Println("___________________________________________________________________________终于走完万里长征") |
| | | // 如果成功了我应该找到规则中涉及到的sdk,记录下他们的sdkname |
| | | sdkName := "" |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | |
| | | |
| | | func putFaceToResult(rule *protomsg.Rule, am *AreaMap) []Arg { |
| | | faces := []Arg{} |
| | | if rule.SdkId == am.sdkId { |
| | | if rule.SdkId == am.sdkId && rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" || rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a971"{ |
| | | if len(am.filterData) > 0 { |
| | | for _, data := range am.filterData { |
| | | log.Println("---------------------------------------------------------------------有这个data",data) |
| | | faces = append(faces, data) |
| | | } |
| | | } |
| | | } |
| | | log.Println("-----------------------------------------------听说你是空的?",faces) |
| | | //log.Println("-----------------------------------------------听说你是空的?",faces) |
| | | return faces |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | // 联动任务的处理 |
| | | func linkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) { |
| | | func LinkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) { |
| | | // new一个定时器,如果以此groupId为标志的定时器不存在的话 |
| | | var flag bool = true |
| | | var timeEle = TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId} |
| | |
| | | timeEle := TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId} // 扔进去一个定时器元素 |
| | | //TimeEleList = make(map[string]timeElement) |
| | | TimeEleList[groupRule.GroupId] = &timeEle // 定时器元素以规则组id为键 |
| | | fmt.Println("创建了计数器并且计数器集合为:", TimeEleList) |
| | | fmt.Println("---------------------------------------------联动任务创建了计数器并且计数器集合为:", TimeEleList) |
| | | // 得出这组完整规则里涉及到几个摄像机,决定着数组里有几个结构体,去重添加方式 |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | var flag1 bool = true |