From 581f6696c8259afdf00d2a219d2ccd5611a4b74a Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期一, 09 九月 2019 15:11:37 +0800 Subject: [PATCH] cpu test --- ruleserver/ruleToformula.go | 57 ++++++++++++++++++++++++++++----------------------------- 1 files changed, 28 insertions(+), 29 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 6a5702d..7d64ed4 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -161,7 +161,7 @@ } } -func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label Others) bool { +func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label Others) (bool,[]int) { defer func() { if err := recover(); err != nil { logger.Error("姣斿瑙勫垯鏈夎", err.(string)) @@ -357,27 +357,30 @@ } else { islink = false } + var labelTypes []int // 0涓簓olo鏍囩锛�1涓篺ace鏍囩 2涓轰袱鑰呮爣绛� if sdkNames != "" { args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink,label,}) + labelTypes = append(labelTypes,0) //logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result))) } if faceFlag { args.RuleResult["face"] = append(args.RuleResult["face"].([]FaceResult), FaceResult{Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []Rect{}, polygonId, islink,label,}, faces}) //logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult))) + labelTypes = append(labelTypes,1) } - return true + return true,labelTypes } else { - return false + return false,[]int{} } } else { // 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏉�姝诲畾鏃跺櫒鐨勬搷浣� TimerAlarm(&label, groupRule.GroupId, result.(bool)) //fmt.Println(timeFlag) - return false + return false,[]int{} } } else { - return false + return false,[]int{} } } @@ -442,7 +445,7 @@ } } // 寰�鏁扮粍閲岃祴鍊� - isOk := RunRule(args, groupRule, taskId, message, label) + isOk,labelTypes := RunRule(args, groupRule, taskId, message, label) if isOk { logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负true") // 鏍规嵁cameraId鍘绘洿鏂版垨鑰呮彃鍏ョ粨鏋�,鐒跺悗鍒ゆ柇鏄惁鏁扮粍鏄惁鍙互寰楀嚭鎶ヨ鐨勭粨璁� @@ -515,8 +518,22 @@ } else { logger.Warn("鏁扮粍涓嶅渾婊′笉鎵撴爣绛�") // 鍊掓槸鎶婃墦鐨勭粍瑙勫垯鏍囩缁欏幓鎺変簡鍟� - lens := len(args.RuleResult["yolo"].([]Result))-1 - args.RuleResult["yolo"] = args.RuleResult["yolo"].([]Result)[0:lens] + for _,val := range labelTypes { + if val == 0 { + if len(args.RuleResult["yolo"].([]Result)) >= 1 { + lens := len(args.RuleResult["yolo"].([]Result))-1 + args.RuleResult["yolo"] = args.RuleResult["yolo"].([]Result)[0:lens] + } + } + if val == 1 { + if len(args.RuleResult["face"].([]FaceResult)) >= 1 { + lens := len(args.RuleResult["face"].([]FaceResult))-1 + args.RuleResult["face"] = args.RuleResult["face"].([]FaceResult)[0:lens] + } + } + } + + } } else { // 娌℃湁鎶ヨ锛� //logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负false") @@ -546,25 +563,7 @@ if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule"{ if rule.RuleWithPre == "||" { - // 濡傛灉鏄垨锛屼粠鍘熷鏁版嵁杩囨护骞剁洿鎺ユ坊鍔犲�掕繃婊ゆ暟鎹悗闈� - flag := "false" - // 鎶婃病鏈夌浉浼艰�呯殑浜鸿劯浠巉ilterData涓垹闄� - for index := 0; index < len(am.args); { - // 灏嗚揪涓嶅埌闃堝�肩殑鐩镐技鑰呬粠鐩镐技鑰呮暟缁勪腑鍒犻櫎 - logger.Info("鐪嬬湅鐩镐技鑰呬汉鏁帮細",len(am.args[index].Liker)) - if len(am.args[index].Liker) == 0 { - // Go 璇█涓垏鐗囧垹闄ゅ厓绱犵殑鏈川鏄細浠ヨ鍒犻櫎鍏冪礌涓哄垎鐣岀偣锛屽皢鍓嶅悗涓や釜閮ㄥ垎鐨勫唴瀛橀噸鏂拌繛鎺ヨ捣鏉ャ�備笉鐢ㄦ��鐤戯紝鏁扮粍鍒犻櫎鍏冪礌灏辫繖涔堝潙鐖� - am.args = append(am.args[:index], am.args[index+1:]...) - } else { - index++ - } - } - if len(am.args) > 0 { - flag = "true" - } - logger.Info("---------浜鸿劯姣斿绗﹀悎鏉′欢鐨勬暟閲忎负锛�",len(am.args)) - am.filterData = append(am.filterData,am.args...) - return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + flag, rule.Sort} + return LittleRuleResult{} } else { //logger.Debug("褰撳墠灏忚鍒欐槸锛�",rule) flag := "false" @@ -595,14 +594,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