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