| | |
| | | } |
| | | |
| | | // 规则主函数入口 |
| | | func (arg *ArgsFromSdk) MainJudge() { |
| | | func MainJudge(arg *ArgsFromSdk) { |
| | | cameraPolygons := GetPolygons(arg.CameraId) |
| | | list := AreaMapList{} |
| | | for _, polygon := range cameraPolygons { |
| | |
| | | // 根据cameraId去更新或者插入结果,然后判断是否数组是否可以得出报警的结论 |
| | | // 往联动任务的结果数组里放值或更新 |
| | | for _, va := range timeEle.RuleResults { |
| | | if aml.areaMapList[0].cameraId != "" && va.CameraId == aml.areaMapList[0].cameraId { |
| | | if arg.CameraId != "" && va.CameraId == arg.CameraId { |
| | | va.Result = strconv.FormatBool(isOk) |
| | | } |
| | | } |
| | |
| | | fmt.Println("这帧图像在任务下的一整条规则下(联动任务下就是跟本摄像机像相关的小规则)的判断结果为false") |
| | | // 所以也要去结果数组里放值或更新 |
| | | for _, va := range timeEle.RuleResults { |
| | | if aml.areaMapList[0].cameraId != "" && va.CameraId == aml.areaMapList[0].cameraId { // aml.areaMapList[0].cameraId 随便找一个数据 |
| | | if arg.CameraId != "" && va.CameraId == arg.CameraId { // arg.CameraId 随便找一个数据 |
| | | va.Result = strconv.FormatBool(isOk) |
| | | } |
| | | } |
| | |
| | | // 对单帧图像的判断 是舍弃(或者说对于某些需求可以放ES数据库一份)还是返回 |
| | | func judge(aml *AreaMapList, arg *ArgsFromSdk) { |
| | | // 得到属于该摄像机的若干组任务的完整规则(跟每一条完整规则比较之后得出本张图像对于某个规则是否报警的结果。放进map,比如本帧图像的id,所碰撞成功的规则id) |
| | | taskRuleList := GetRuleGroup(aml.areaMapList[0].cameraId) |
| | | taskRuleList := GetRuleGroup(arg.CameraId) |
| | | if len(taskRuleList) > 0 { |
| | | for _, taskRule := range taskRuleList { |
| | | ruleList := taskRule.GroupRules // 获取的是task下面的任务组 |