From 6ed5521a978b330b990f2c4092e729207fca2412 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期五, 11 十月 2019 13:48:54 +0800
Subject: [PATCH] 除了架构把代码跟主分支同步一下

---
 ruleserver/ruleToformula.go |   59 ++++++++++++++++++++++-------------------------------------
 1 files changed, 22 insertions(+), 37 deletions(-)

diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index bf5c84f..8b429a6 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -1,9 +1,9 @@
 package ruleserver
 
 import (
+	"basic.com/valib/logger.git"
 	"plugin"
 	"ruleprocess/cache"
-	"ruleprocess/logger"
 	"ruleprocess/structure"
 	"sort"
 	"strconv"
@@ -16,6 +16,11 @@
 
 // 瀵瑰崟甯у浘鍍忕殑鍒ゆ柇 thisSdkDatas  褰撳墠浼犲叆鐨勮繖甯ф暟鎹紝cacheSdkData 瀹氭椂鍣ㄩ噷缂撳瓨鐨勪竴甯ф暟鎹� 娌℃湁灏辫繑鍥瀗il  (thisSdkDatas SdkDatas, cacheSdkDatas SdkDatas)
 func Judge(args *structure.SdkDatas, message *protomsg.SdkMessage) {
+	defer func() {
+		if err := recover(); err != nil {
+			logger.Error("瑙勫垯妯″潡鍎跨殑寮傚父鎹曡幏锛�",err)
+		}
+	}()
 	if len(args.Sdkdata) > 0 {
 		// 鎷垮埌鏈憚鍍忔満鐨勫尯鍩�
 		cameraPolygons := GetPolygons(args.CameraId)
@@ -62,30 +67,6 @@
 			}
 		}
 	}
-}
-
-func CallSo(sdkId string,rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult{
-	// 鏍规嵁sdkId鏌ュ嚭鍏跺搴旂殑sdk鐨剆oName锛岃皟鐢ㄧ浉搴攕o鐨凟ntrance鏂规硶
-	var soName = ""
-	if sdkId == "812b674b-2375-4589-919a-5c1c3278a97e" {
-		soName = "face.so"
-	} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a975"{
-		soName = "intrusion.so"
-	} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a976" {
-		soName = "personUnsual.so"
-	} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a972" {
-		soName = "faceCompare.so"
-	}
-	p,err :=  plugin.Open("./algorithm/"+soName)
-	if err != nil {
-		panic(err)
-	}
-	f,err1 := p.Lookup("Entrance")
-	if err1 != nil {
-		panic("娌℃湁鎵惧埌鍏ュ彛鍑芥暟")
-	}
-	ruleResult := f.(func(rule *protomsg.Rule, am *structure.AreaMap)structure.LittleRuleResult)(rule,am)
-	return ruleResult
 }
 
 func CallMiddleware(args *structure.SdkDatas,rule protomsg.GroupRule) ([]*structure.LittleRuleResult, string, string){
@@ -186,7 +167,7 @@
 				//}
 				logger.Warn("___________________________________________________________________________缁堜簬璧板畬涓囬噷闀垮緛")
 				// 鎶婁粬浠殑浣嶇疆鏁版嵁涔熶紶涓嬪幓
-				locations := []structure.Rect{}
+				locations := []structure.TargetInfo{}
 				for _, sdkData := range args.Sdkdata {
 					if sdkData.IpcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && sdkNames != "" { // 鎶妝olo鏁版嵁鐨勫悇涓洰鏍囩殑鍧愭爣杈撳嚭鏂逛究鍚庨潰鐢绘
 						for _, areaMap := range sdkData.AreaMapList {
@@ -203,12 +184,12 @@
 				}
 				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,})
+					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.Rect{}, polygonId, islink, label,}, faces})
+					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})
 					//logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult)))
 					labelTypes = append(labelTypes,1)
 				}
@@ -247,11 +228,15 @@
 	return faces
 }
 
-func putYolosToResult(am *structure.AreaMap) []structure.Rect {
-	locations := []structure.Rect{}
+func putYolosToResult(am *structure.AreaMap) []structure.TargetInfo {
+	locations := []structure.TargetInfo{}
 	if len(am.FilterData) > 0 {
 		for _, data := range am.FilterData {
-			locations = append(locations, data.Location)
+			location := structure.TargetInfo{}
+			location.Rect = data.Location
+			location.TargetId = data.Id
+			location.TargetScore = data.Score
+			locations = append(locations, location)
 		}
 	}
 	//logger.Println("-----------------------------------------------鍚浣犳槸绌虹殑锛�",faces)
@@ -364,15 +349,15 @@
 			// 鍊掓槸鎶婃墦鐨勭粍瑙勫垯鏍囩缁欏幓鎺変簡鍟�
 			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 len(args.RuleResult["yolo"].([]structure.Result)) >= 1 {
+						lens := len(args.RuleResult["yolo"].([]structure.Result))-1
+						args.RuleResult["yolo"] = args.RuleResult["yolo"].([]structure.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]
+					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]
 					}
 				}
 			}

--
Gitblit v1.8.0