From 33804d4591d5021b4dec1da5f5152422282409c6 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期三, 13 十一月 2019 11:23:55 +0800 Subject: [PATCH] --暂存 --- ruleserver/ruleToformula.go | 44 +++++++++++++++++++++++--------------------- 1 files changed, 23 insertions(+), 21 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index d5433ae..e54a5d4 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -36,7 +36,8 @@ // 寰楀埌灞炰簬璇ユ憚鍍忔満鐨勮嫢骞茬粍浠诲姟鐨勫畬鏁磋鍒欙紙璺熸瘡涓�鏉″畬鏁磋鍒欐瘮杈冧箣鍚庡緱鍑烘湰寮犲浘鍍忓浜庢煇涓鍒欐槸鍚︽姤璀︾殑缁撴灉銆傛斁杩沵ap锛屾瘮濡傛湰甯у浘鍍忕殑id锛屾墍纰版挒鎴愬姛鐨勮鍒檌d锛� args.RuleResult = make(map[string]interface{}) args.RuleResult["yolo"] = []structure.Result{} - args.RuleResult["face"] = []structure.FaceResult{} + args.RuleResult["face"] = []structure.TargetResult{} + args.RuleResult["target"] = []structure.TargetResult{} //logger.Warn("浼犺繘鍘讳箣鍓嶆槸浠�涔堝痉琛岋細",args.RuleResult["yolo"]) if taskGroup != nil && len(taskGroup.GroupRules) > 0 { // 鍏堣繃鐙珛锛屽啀杩囪仈鍔� @@ -76,7 +77,7 @@ } } -func CallMiddleware(args *structure.SdkDatas,rule protomsg.GroupRule) (bool, string, string){ +func CallMiddleware(args *structure.SdkDatas,rule protomsg.GroupRule,lable *structure.Others,message *protomsg.SdkMessage) (bool, []*structure.Arg, string, string){ p,err := plugin.Open("./algorithm/middleware.so") if err != nil { panic(err) @@ -85,8 +86,8 @@ if err1 != nil { panic("娌℃湁鎵惧埌涓棿浠跺叆鍙e嚱鏁�") } - a,b,c := f.(func(args *structure.SdkDatas,rule protomsg.GroupRule)(bool, string, string))(args,rule) - return a,b,c + a,b,c,d := f.(func(args *structure.SdkDatas,rule protomsg.GroupRule,label *structure.Others,message *protomsg.SdkMessage)(bool,[]*structure.Arg, string, string))(args,rule,lable,message) + return a,b,c,d } func RunRule(args *structure.SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label structure.Others) (bool,[]int) { @@ -101,11 +102,12 @@ result := false sdkNames := "" polygonId := "" + targets := []*structure.Arg{} // 绗﹀悎鏉′欢鐨勭洰鏍� // 鎶婁竴甯ф暟鎹拰涓�缁勮鍒欏彂缁欑畻娉曢儴鍒嗭紝寰楀嚭鍒ゆ柇缁撴灉 - result,sdkNames,polygonId = CallMiddleware(args,*groupRule) - + result,targets,sdkNames,polygonId = CallMiddleware(args,*groupRule,&label,message) + logger.Info("绗﹀悎鏉′欢鐨勭洰鏍囨暟鎹細",targets) if result { - // 鏈�鍚庤繃鎸佺画鏃堕棿绛夋椂闂寸淮搴︾殑鏉′欢 鎶婃椂闂磋鍒欎綅缃皟鏁村埌杩欎釜浣嶇疆鏄负浜嗙紦瀛樻暟鎹� + // 鏈�鍚庤繃鎸佺画鏃堕棿绛夋椂闂寸淮搴︾殑鏉′欢 鎶婃椂闂磋鍒欎綅缃皟鏁村埌杩欎釜浣嶇疆鏄负浜嗙紦瀛樻暟鎹� 锛侊紒锛侊紒锛乸s: 瀵圭敾闈腑鍗曚釜鐩爣鍋氬畾鏃跺櫒鐨勪笉鐢ㄥ啀杩囩敾闈㈠畾鏃跺櫒 cacheId := "" for j := 0; j < len(groupRule.Rules); j++ { for _, sdkData := range args.Sdkdata { @@ -172,12 +174,12 @@ } var labelTypes []int // 0涓簓olo鏍囩锛�1涓篺ace鏍囩 2涓轰袱鑰呮爣绛� if sdkNames != "" { - args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]structure.Result), structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink,label,}) + args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]structure.Result), structure.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"].([]structure.FaceResult), structure.FaceResult{structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []structure.TargetInfo{}, polygonId, islink,label,}, faces}) + args.RuleResult["face"] = append(args.RuleResult["face"].([]structure.TargetResult), structure.TargetResult{structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []structure.TargetInfo{}, polygonId, islink,label}, faces}) //logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult))) labelTypes = append(labelTypes,1) } @@ -192,9 +194,9 @@ } } if k == "face" { - tempMap[k] = []structure.FaceResult{} - for _, res := range result.([]structure.FaceResult) { - tempMap[k] = append(tempMap[k].([]structure.FaceResult), res) + tempMap[k] = []structure.TargetResult{} + for _, res := range result.([]structure.TargetResult) { + tempMap[k] = append(tempMap[k].([]structure.TargetResult), res) } } } @@ -305,9 +307,9 @@ } } if k == "face" { - tempMap[k] = []structure.FaceResult{} - for _, res := range result.([]structure.FaceResult) { - tempMap[k] = append(tempMap[k].([]structure.FaceResult), res) + tempMap[k] = []structure.TargetResult{} + for _, res := range result.([]structure.TargetResult) { + tempMap[k] = append(tempMap[k].([]structure.TargetResult), res) } } } @@ -351,9 +353,9 @@ args.RuleResult["yolo"].([]structure.Result)[i].Others.LinkCache = label.LinkCache } } - for i := 0; i < len(args.RuleResult["face"].([]structure.FaceResult)); i++ { - if args.RuleResult["face"].([]structure.FaceResult)[i].RuleGroupId == groupRule.GroupId { // 鎶婅仈鍔ㄦ暟鎹拷鍔犱笂 - args.RuleResult["face"].([]structure.FaceResult)[i].Others.LinkCache = label.LinkCache + for i := 0; i < len(args.RuleResult["face"].([]structure.TargetResult)); i++ { + if args.RuleResult["face"].([]structure.TargetResult)[i].RuleGroupId == groupRule.GroupId { // 鎶婅仈鍔ㄦ暟鎹拷鍔犱笂 + args.RuleResult["face"].([]structure.TargetResult)[i].Others.LinkCache = label.LinkCache } } } @@ -371,9 +373,9 @@ } } if val == 1 { - if len(args.RuleResult["face"].([]structure.FaceResult)) >= 1 { - lens := len(args.RuleResult["face"].([]structure.FaceResult))-1 - args.RuleResult["face"] = args.RuleResult["face"].([]structure.FaceResult)[0:lens] + if len(args.RuleResult["face"].([]structure.TargetResult)) >= 1 { + lens := len(args.RuleResult["face"].([]structure.TargetResult))-1 + args.RuleResult["face"] = args.RuleResult["face"].([]structure.TargetResult)[0:lens] } } } -- Gitblit v1.8.0