From 3031a80fdec1ff02b7b2087caec69382a4109c04 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期一, 19 八月 2019 17:07:02 +0800 Subject: [PATCH] 对于或规则的一些改进 --- ruleserver/ruleToformula.go | 76 +++++++++++++++++++++----------------- 1 files changed, 42 insertions(+), 34 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 84569b7..a236fbd 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -117,7 +117,7 @@ // 鎷垮埌鏈憚鍍忔満鐨勫尯鍩� cameraPolygons := GetPolygons(args.CameraId) // 鎶婃墍鏈夌殑sdk鎻愬彇鐨勬暟鎹兘鎸夋墍灞炴憚鍍忔満鐨勫尯鍩熷綊缃� - //logger.Debug("褰撳墠鎽勫儚鏈篿d涓猴細",message.Cid,"褰撳墠鎽勫儚鏈烘墽琛岀殑浠诲姟鏄細",message.Tasklab.Taskname) + logger.Debug("褰撳墠鎽勫儚鏈篿d涓猴細",message.Cid,"褰撳墠鎽勫儚鏈烘墽琛岀殑浠诲姟鏄細",message.Tasklab.Taskname,"--浠诲姟id涓猴細",message.Tasklab.Taskid) for _, arg := range args.Sdkdata { SdkDataFormat(args.CameraId, arg, cameraPolygons) } @@ -336,6 +336,7 @@ } } } + logger.Info("face鏍囩鐨勯暱搴︼細",len(faces)) //for _,face := range faces { // //logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�擾_______________鐪嬬湅浜鸿劯鐨勫潗鏍�:",face.Location) //} @@ -370,8 +371,8 @@ } } else { - // 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏃跺�欎负鍋囩殑鐘舵�佸弽杞暟鎹篃闇�瑕佽褰曚笅鏉� - //timeFlag := TimerAlarm(args, groupRule.GroupId, result.(bool)) + // 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏉�姝诲畾鏃跺櫒鐨勬搷浣� + TimerAlarm(&label, groupRule.GroupId, result.(bool)) //fmt.Println(timeFlag) return false } @@ -491,20 +492,22 @@ result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋� if result.(bool) { logger.Info("___________________________________________________________________鑱斿姩浠诲姟鎶ヨ") - // 鎶婃暟缁勯噷缂撳瓨鐨勬暟鎹彇鍑烘潵涓�璧锋姤璀� - label.LinkCache = []ResultMsg{} - for _, ruleRes := range TimeEleList[groupRule.GroupId].RuleResults { - label.LinkCache = append(label.LinkCache, ruleRes.CacheData) - } - logger.Debug("鑱斿姩浠诲姟缂撳瓨浜嗗嚑涓暟鎹�", len(label.LinkCache)) - for i := 0; i < len(args.RuleResult["yolo"].([]Result)); i++ { - if args.RuleResult["yolo"].([]Result)[i].RuleGroupId == groupRule.GroupId { // 鎶婅仈鍔ㄦ暟鎹拷鍔犱笂 - args.RuleResult["yolo"].([]Result)[i].Others.LinkCache = label.LinkCache + if TimeEleList[groupRule.GroupId] != nil { // 鏋佸伓灏旀湁鎯呭喌浼氱瓑浜巒il锛屼笉鐭ラ亾涓哄暐锛屽仛涓垽鏂互闃插畷鏈� + // 鎶婃暟缁勯噷缂撳瓨鐨勬暟鎹彇鍑烘潵涓�璧锋姤璀� + label.LinkCache = []ResultMsg{} + for _, ruleRes := range TimeEleList[groupRule.GroupId].RuleResults { + label.LinkCache = append(label.LinkCache, ruleRes.CacheData) } - } - for i := 0; i < len(args.RuleResult["face"].([]FaceResult)); i++ { - if args.RuleResult["face"].([]FaceResult)[i].RuleGroupId == groupRule.GroupId { // 鎶婅仈鍔ㄦ暟鎹拷鍔犱笂 - args.RuleResult["face"].([]FaceResult)[i].Others.LinkCache = label.LinkCache + logger.Debug("鑱斿姩浠诲姟缂撳瓨浜嗗嚑涓暟鎹�", len(label.LinkCache)) + for i := 0; i < len(args.RuleResult["yolo"].([]Result)); i++ { + if args.RuleResult["yolo"].([]Result)[i].RuleGroupId == groupRule.GroupId { // 鎶婅仈鍔ㄦ暟鎹拷鍔犱笂 + args.RuleResult["yolo"].([]Result)[i].Others.LinkCache = label.LinkCache + } + } + for i := 0; i < len(args.RuleResult["face"].([]FaceResult)); i++ { + if args.RuleResult["face"].([]FaceResult)[i].RuleGroupId == groupRule.GroupId { // 鎶婅仈鍔ㄦ暟鎹拷鍔犱笂 + args.RuleResult["face"].([]FaceResult)[i].Others.LinkCache = label.LinkCache + } } } } @@ -542,24 +545,28 @@ if rule.PolygonId == am.areaId { // 绠楁硶鍜屽尯鍩熼兘寰楀鐨勪笂 if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule"{ - //logger.Debug("褰撳墠灏忚鍒欐槸锛�",rule) - flag := "false" - // 鎶婃病鏈夌浉浼艰�呯殑浜鸿劯浠巉ilterData涓垹闄� - for index := 0; index < len(am.filterData); { - // 灏嗚揪涓嶅埌闃堝�肩殑鐩镐技鑰呬粠鐩镐技鑰呮暟缁勪腑鍒犻櫎 - logger.Info("鐪嬬湅鐩镐技鑰呬汉鏁帮細",len(am.filterData[index].Liker)) - if len(am.filterData[index].Liker) == 0 { - // Go 璇█涓垏鐗囧垹闄ゅ厓绱犵殑鏈川鏄細浠ヨ鍒犻櫎鍏冪礌涓哄垎鐣岀偣锛屽皢鍓嶅悗涓や釜閮ㄥ垎鐨勫唴瀛橀噸鏂拌繛鎺ヨ捣鏉ャ�備笉鐢ㄦ��鐤戯紝鏁扮粍鍒犻櫎鍏冪礌灏辫繖涔堝潙鐖� - am.filterData = append(am.filterData[:index], am.filterData[index+1:]...) - } else { - index++ + if rule.RuleWithPre == "||" { + return LittleRuleResult{} + } else { + //logger.Debug("褰撳墠灏忚鍒欐槸锛�",rule) + flag := "false" + // 鎶婃病鏈夌浉浼艰�呯殑浜鸿劯浠巉ilterData涓垹闄� + for index := 0; index < len(am.filterData); { + // 灏嗚揪涓嶅埌闃堝�肩殑鐩镐技鑰呬粠鐩镐技鑰呮暟缁勪腑鍒犻櫎 + logger.Info("鐪嬬湅鐩镐技鑰呬汉鏁帮細",len(am.filterData[index].Liker)) + if len(am.filterData[index].Liker) == 0 { + // Go 璇█涓垏鐗囧垹闄ゅ厓绱犵殑鏈川鏄細浠ヨ鍒犻櫎鍏冪礌涓哄垎鐣岀偣锛屽皢鍓嶅悗涓や釜閮ㄥ垎鐨勫唴瀛橀噸鏂拌繛鎺ヨ捣鏉ャ�備笉鐢ㄦ��鐤戯紝鏁扮粍鍒犻櫎鍏冪礌灏辫繖涔堝潙鐖� + am.filterData = append(am.filterData[:index], am.filterData[index+1:]...) + } else { + index++ + } } + if len(am.filterData) > 0 { + flag = "true" + } + logger.Info("---------浜鸿劯姣斿绗﹀悎鏉′欢鐨勬暟閲忎负锛�",len(am.filterData)) + return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + flag, rule.Sort} } - if len(am.filterData) > 0 { - flag = "true" - } - logger.Info("---------浜鸿劯姣斿绗﹀悎鏉′欢鐨勬暟閲忎负锛�",len(am.filterData)) - return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + flag, rule.Sort} } if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 浜鸿劯妫�娴� //logger.Debug("褰撳墠灏忚鍒欐槸锛�",rule) @@ -570,13 +577,14 @@ var args []*Arg if rule.RuleWithPre == "&&" { args = am.filterData + // 鍏堟竻绌鸿繃婊ゅ悗鐨勬暟鎹紝鍐嶅線閲屽鏈杩囨护鍚庣殑鏁版嵁 + am.filterData = am.filterData[0:0] //logger.Info("杩囨护鍚庣殑args鐨勯暱搴︿负锛�",len(args)) } else { args = am.args + //涓嶆竻绌轰箣鍓嶇殑杩囨护鏁版嵁锛岀户缁 //logger.Info("娌¤繃婊ょ殑args鐨勯暱搴︿负锛�",len(args)) } - // 鍏堟竻绌鸿繃婊ゅ悗鐨勬暟鎹紝鍐嶅線閲屽鏈杩囨护鍚庣殑鏁版嵁 - am.filterData = am.filterData[0:0] //logger.Info("-----------------------浜鸿劯杩囨护鐨刟rgs閲岀殑鏁伴噺锛�", len(args)) for _, arg := range args { var formula string -- Gitblit v1.8.0