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 | 42 ++++++++++++++++++++---------------------- 1 files changed, 20 insertions(+), 22 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 0fe862d..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 } @@ -158,18 +158,18 @@ } // 鏍规嵁鎽勫儚鏈篿d鎷垮埌鎽勫儚鏈烘墍鏈夊尯鍩� -func GetPolygons(cameraId string) []*protomsg.CameraPolygon { +func GetPolygons(cameraId string) []protomsg.CameraPolygon { var api dbapi.CameraApi data := api.FindAllPolygons() //fmt.Println("鏌ュ埌鐨勬墍鏈夊尯鍩燂細", data) // 鏍规嵁id浠巑ap涓嬁鍒板尯鍩� - var cameraPolygons []*protomsg.CameraPolygon + var cameraPolygons []protomsg.CameraPolygon for _, item := range data { if item.CameraId == cameraId && item.Type != "line" { // 闇�瑕佹牴鎹瘮渚嬫妸鍓嶅彴鐢荤殑鍖哄煙鐨勫潗鏍囪浆鍖栦负鐩稿簲鎽勫儚鏈烘媿鎽勭殑鍥惧儚鐨勫ぇ灏� x鍧愭爣鍒嗗埆*image.width/椤甸潰鍖哄煙瀹� y鍧愭爣鍒嗗埆*image.height/椤甸潰鍖哄煙楂� // 鍓嶅彴瀹介珮鍥哄畾 - log.Println("------------绗﹀悎鏉′欢鐨勫尯鍩燂細",item) - cameraPolygons = append(cameraPolygons, &item) + //log.Println("------------绗﹀悎鏉′欢鐨勫尯鍩燂細",item) + cameraPolygons = append(cameraPolygons, item) } } //log.Println("鏍规嵁鎽勫儚鏈篿d鏌ュ埌鐨勫尯鍩�", cameraPolygons, "--鍖哄煙鏁伴噺涓猴細", len(cameraPolygons)) @@ -177,26 +177,26 @@ } // 鎶妔dk浠庢暟鎹抚涓婃彁鍙栫殑鎸夌収鍖哄煙鍒嗙被褰掔疆 -func SdkDataFormat(cameraId string, arg *SdkData, cameraPolygons []*protomsg.CameraPolygon) { - // cameraPolygons := GetPolygons(arg.CameraId) - // list := AreaMapList{} +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) // 鏈憚鍍忔満涓嬫墍鏈変换鍔$粍 @@ -226,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) @@ -249,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) } } } @@ -258,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) @@ -270,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) @@ -282,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) } } } @@ -366,7 +365,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) { // 杩欐瑕佸榻愯〃杈惧紡閲屾墍闇�瑕佺殑鎵�鏈夊弬鏁� @@ -419,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