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