From e0c4bae41fac4213f8bb2cf771969b1cd9cf93c2 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期六, 29 六月 2019 19:11:47 +0800
Subject: [PATCH] 改为指针传递

---
 ruleserver/ruleToformula.go |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index e100a3e..aa4b8da 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
 }
 
@@ -180,21 +180,23 @@
 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}
+		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)
 			}
 		}
 	}
@@ -416,7 +417,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