From 0cf922cf29cb96d28e3b2cabd4815473c445e58f Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期六, 29 六月 2019 19:19:45 +0800
Subject: [PATCH] ---

---
 ruleserver/ruleToformula.go |   35 ++++++++++++++++++-----------------
 1 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index c5aae7c..8484174 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -112,13 +112,13 @@
 	IsStatic    bool       // 鏄惁闈欐
 	ImageWidth  int        // 鎽勫儚鏈烘媿鎽勭殑鍥惧儚瀹� 鍍忕礌
 	ImageHeight int        // 鎽勫儚鏈烘媿鎽勭殑鍥惧儚楂� 鍍忕礌
-	AreaMapList []*AreaMap // 鏈瑂dk鎻愬彇鐨勬暟鎹寜鐓у尯鍩熷垝鍒嗗悗鐨勬暟鎹泦鍚�
+	AreaMapList []AreaMap // 鏈瑂dk鎻愬彇鐨勬暟鎹寜鐓у尯鍩熷垝鍒嗗悗鐨勬暟鎹泦鍚�
 }
 
 // 浠庣畻娉曟ā鍧楀効鎷挎潵鐨勫涓�甯у浘鍍忓悇涓畻娉曟彁鍙栫殑鏁版嵁闆嗗悎
 type SdkDatas struct {
 	CameraId   string
-	Sdkdata    []SdkData
+	Sdkdata    []*SdkData
 	RuleResult map[string]interface{} // 杩囧畬瑙勫垯鍚庢墦鐨勬爣绛� face: []Arg  yolo: []Result
 }
 
@@ -168,7 +168,7 @@
 		if item.CameraId == cameraId && item.Type != "line" {
 			// 闇�瑕佹牴鎹瘮渚嬫妸鍓嶅彴鐢荤殑鍖哄煙鐨勫潗鏍囪浆鍖栦负鐩稿簲鎽勫儚鏈烘媿鎽勭殑鍥惧儚鐨勫ぇ灏�   x鍧愭爣鍒嗗埆*image.width/椤甸潰鍖哄煙瀹�  y鍧愭爣鍒嗗埆*image.height/椤甸潰鍖哄煙楂�
 			// 鍓嶅彴瀹介珮鍥哄畾
-			log.Println("------------绗﹀悎鏉′欢鐨勫尯鍩燂細",item)
+			//log.Println("------------绗﹀悎鏉′欢鐨勫尯鍩燂細",item)
 			cameraPolygons = append(cameraPolygons, item)
 		}
 	}
@@ -179,22 +179,24 @@
 // 鎶妔dk浠庢暟鎹抚涓婃彁鍙栫殑鎸夌収鍖哄煙鍒嗙被褰掔疆
 func SdkDataFormat(cameraId string, arg *SdkData, cameraPolygons []protomsg.CameraPolygon) {
 	for _, polygon := range cameraPolygons {
-		log.Println("++++++鍦ㄨ繖鍎跨湅涓�涓嬪尯鍩熷晩", polygon)
-		areaMap := &AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
+		//log.Println("++++++鍦ㄨ繖鍎跨湅涓�涓嬪尯鍩熷晩", polygon)
+		areaMap := AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
 		// 涓烘瘡涓憚鍍忔満鍖哄煙濉厖鏁版嵁
 		areaMap.CountAreaObjs(arg)
+		log.Println("-------areaMap鐨勫唴瀹�",areaMap)
 		arg.AreaMapList = append(arg.AreaMapList, areaMap)
+		log.Println("-------AreaMapList鐨勫唴瀹�",arg.AreaMapList)
 	}
 }
 
 // 瀵瑰崟甯у浘鍍忕殑鍒ゆ柇 鏄垗寮冿紙鎴栬�呰瀵逛簬鏌愪簺闇�姹傚彲浠ユ斁ES鏁版嵁搴撲竴浠斤級杩樻槸杩斿洖
-func Judge(args *SdkDatas) {
+func Judge(args SdkDatas) {
 	if len(args.Sdkdata) > 0 {
 		// 鎷垮埌鏈憚鍍忔満鐨勫尯鍩�
 		cameraPolygons := GetPolygons(args.CameraId)
 		// 鎶婃墍鏈夌殑sdk鎻愬彇鐨勬暟鎹兘鎸夋墍灞炴憚鍍忔満鐨勫尯鍩熷綊缃�
 		for _, arg := range args.Sdkdata {
-			SdkDataFormat(args.CameraId, &arg, cameraPolygons)
+			SdkDataFormat(args.CameraId, arg, cameraPolygons)
 		}
 		// 璺戞湰鎽勫儚鏈虹殑鎵�鏈夎鍒欑粍 涓�缁勪竴缁勮窇
 		taskRuleList := GetRuleGroup(args.CameraId) // 鏈憚鍍忔満涓嬫墍鏈変换鍔$粍
@@ -224,17 +226,16 @@
 		}
 	}
 }
-func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) bool {
+func RunRule(args SdkDatas, groupRule *protomsg.GroupRule, taskId string) bool {
 	resultSplice := []*LittleRuleResult{}
 	// 鍏堣繃瀹屾潯浠惰鍒�
-	log.Println("---------------------鐪嬩笅杩欎釜缁勮鍒欙細", groupRule.Rules)
 	for j := 0; j < len(groupRule.Rules); j++ {
 		for _, sdkData := range args.Sdkdata {
 			if sdkData.SdkId == "812b674b-2375-4589-919a-5c1c3278a975" {
 				log.Println("鍏ヤ镜鐨勭畻娉曟暟鎹�", sdkData)
 			}
 			for _, areaMap := range sdkData.AreaMapList {
-				ruleResult := filterRule(groupRule.Rules[j], areaMap)
+				ruleResult := filterRule(groupRule.Rules[j], &areaMap)
 				if ruleResult.Result != "" {
 					log.Println("鏉′欢瑙勫垯缁撴灉锛�", ruleResult.Result)
 					resultSplice = append(resultSplice, &ruleResult)
@@ -247,7 +248,7 @@
 	for _, sdkData := range args.Sdkdata {
 		for _, areaMap := range sdkData.AreaMapList {
 			for j := 0; j < len(groupRule.Rules); j++ {
-				putFaceToResult(groupRule.Rules[j], areaMap, faces)
+				putFaceToResult(groupRule.Rules[j], &areaMap, faces)
 			}
 		}
 	}
@@ -256,7 +257,7 @@
 	for j := 0; j < len(groupRule.Rules); j++ {
 		for _, sdkData := range args.Sdkdata {
 			for _, areaMap := range sdkData.AreaMapList {
-				ruleResult := transferParameters(groupRule.Rules[j], areaMap)
+				ruleResult := transferParameters(groupRule.Rules[j], &areaMap)
 				if ruleResult.Result != "" {
 					log.Println("鏁伴噺瑙勫垯缁撴灉锛�", ruleResult.Result)
 					resultSplice = append(resultSplice, &ruleResult)
@@ -268,7 +269,7 @@
 	for j := 0; j < len(groupRule.Rules); j++ {
 		for _, sdkData := range args.Sdkdata {
 			for _, areaMap := range sdkData.AreaMapList {
-				ruleResult := timeRuleResult(groupRule.Rules[j], areaMap)
+				ruleResult := timeRuleResult(groupRule.Rules[j], &areaMap)
 				if ruleResult.Result != "" {
 					log.Println("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result)
 					resultSplice = append(resultSplice, &ruleResult)
@@ -280,7 +281,7 @@
 	for j := 0; j < len(groupRule.Rules); j++ {
 		for _, sdkData := range args.Sdkdata {
 			for _, areaMap := range sdkData.AreaMapList {
-				duration(groupRule.Rules[j], areaMap)
+				duration(groupRule.Rules[j], &areaMap)
 			}
 		}
 	}
@@ -314,7 +315,7 @@
 				}
 			}
 			if flag {
-				fmt.Println("鏈抚鏁版嵁绗﹀悎瑙勫垯")
+				fmt.Println("----------------------------缁堜簬璧板畬涓囬噷闀垮緛")
 				// 濡傛灉鎴愬姛浜嗘垜搴旇鎵惧埌瑙勫垯涓秹鍙婂埌鐨剆dk锛岃褰曚笅浠栦滑鐨剆dkname
 				sdkName := ""
 				for j := 0; j < len(groupRule.Rules); j++ {
@@ -326,6 +327,7 @@
 				}
 				// 杩囧畬瑙勫垯鍚庢墦涓爣绛撅紝鍛婅瘔璋冪敤鑰呮湰甯ф暟鎹拡瀵瑰摢涓换鍔″摢缁勮鍒欐姤璀︿簡     鍚庡姞锛氬彲鑳借繕涓嶅锛岃繕闇�瑕佸尯鍒嗚Е鍙戞姤璀︾殑瀵硅薄锛屽悗闈㈠線es鏁版嵁搴撴彃鏁版嵁鏃惰鐢�
 				args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText})
+				log.Println("-------------------缁撴灉鏍囩",args.RuleResult["yolo"].([]Result))
 				return true
 			} else {
 				return false
@@ -364,7 +366,6 @@
 
 	// }
 	for _, obj := range arg.Photo {
-		log.Println("-------------------鐪嬬湅areajson-------------", a.areaJson)
 		log.Println("------------------鐪嬬湅sdkData鐨凱hoto鏁版嵁----------------", obj, "----椤轰究鐪嬬湅鍗犳瘮-----锛�", PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale))
 		if threshold <= obj.Score && size <= float64(obj.Rects.Width*obj.Rects.Height) && intersectionper <= PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale) {
 			// 杩欐瑕佸榻愯〃杈惧紡閲屾墍闇�瑕佺殑鎵�鏈夊弬鏁�
@@ -417,7 +418,7 @@
 }
 
 // 鑱斿姩浠诲姟鐨勫鐞�
-func linkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) {
+func linkTask(args SdkDatas, groupRule *protomsg.GroupRule, taskId string) {
 	// new涓�涓畾鏃跺櫒锛屽鏋滀互姝roupId涓烘爣蹇楃殑瀹氭椂鍣ㄤ笉瀛樺湪鐨勮瘽
 	var flag bool = true
 	var timeEle = TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId}

--
Gitblit v1.8.0