From 56831d71bbb16d262b72f55d2e008f2750f070f0 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期六, 16 十一月 2019 18:11:51 +0800 Subject: [PATCH] --- --- ruleserver/ruleToformula.go | 36 +++++++++++++++++++++++++++++++----- 1 files changed, 31 insertions(+), 5 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 5a08201..f4c5355 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -27,9 +27,7 @@ cameraPolygons := GetPolygons(args.CameraId) // 鎶婃墍鏈夌殑sdk鎻愬彇鐨勬暟鎹兘鎸夋墍灞炴憚鍍忔満鐨勫尯鍩熷綊缃� logger.Debug("褰撳墠鎽勫儚鏈篿d涓猴細",message.Cid,"褰撳墠鎽勫儚鏈烘墽琛岀殑浠诲姟鏄細",message.Tasklab.Taskname,"--浠诲姟id涓猴細",message.Tasklab.Taskid) - for _, arg := range args.Sdkdata { - SdkDataFormat(args.CameraId, arg, cameraPolygons) - } + CallReadyData(args,cameraPolygons) // 璺戞湰鎽勫儚鏈虹殑鎵�鏈夎鍒欑粍 涓�缁勪竴缁勮窇 taskGroup := GetRuleGroup(args.CameraId, args.TaskId) // 鏈憚鍍忔満鏈换鍔′笅鎵�鏈夎鍒欑粍 //logger.Println("鐪嬩笅鎽勫儚鏈轰笅鐨勪换鍔$粍锛�",taskRuleList) @@ -88,6 +86,18 @@ } a,b,c := f.(func(args *structure.SdkDatas,rule protomsg.GroupRule,label *structure.Others,message *protomsg.SdkMessage)(bool,string, string))(args,rule,lable,message) return a,b,c +} + +func CallReadyData(args *structure.SdkDatas,cameraPolygons []protomsg.CameraPolygon) { + p,err := plugin.Open("./algorithm/middleware.so") + if err != nil { + panic(err) + } + f,err1 := p.Lookup("ReadyData") + if err1 != nil { + panic("娌℃湁鎵惧埌涓棿浠剁殑鏁版嵁鍑嗗鍑芥暟") + } + f.(func(args *structure.SdkDatas,cameraPolygons []protomsg.CameraPolygon)())(args,cameraPolygons) } func RunRule(args *structure.SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label structure.Others) (bool,[]int) { @@ -169,10 +179,21 @@ // 澶勭悊鐩爣瀹氭椂鏁版嵁 targets := []*structure.Arg{} for _, sdkData := range args.Sdkdata { - if sdkData.IpcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && sdkNames != "" { // 鎶妝olo鏁版嵁鐨勫悇涓洰鏍囩殑鍧愭爣杈撳嚭鏂逛究鍚庨潰鐢绘 + if sdkData.IpcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && sdkNames != "" { // 杈撳嚭鐩爣鏁版嵁 for _, areaMap := range sdkData.AreaMapList { if areaMap.IsEffective { targets = append(targets, putTargetsToResult(areaMap)...) + } + } + } + } + // 杞﹁締鐩爣缁熻 + cars := []*structure.Arg{} + for _, sdkData := range args.Sdkdata { + if sdkData.IpcId == "91d923ef-6200-4549-ab1b-8e773e85d729" && sdkNames != "" { // 鎶妝olo鏁版嵁鐨勫悇涓洰鏍囩殑鍧愭爣杈撳嚭鏂逛究鍚庨潰鐢绘 + for _, areaMap := range sdkData.AreaMapList { + if areaMap.IsEffective { + cars = append(cars, putYolosToResult(areaMap)...) } } } @@ -184,7 +205,7 @@ islink = false } var labelTypes []int // 0涓簓olo鏍囩锛�1涓篺ace鏍囩 2涓轰袱鑰呮爣绛� - if sdkNames != "" { + if sdkNames != "" && len(targets) == 0 { args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]structure.Result), structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, yolos, polygonId, islink,label}) labelTypes = append(labelTypes,0) //logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result))) @@ -199,6 +220,11 @@ logger.Info("-------------------鐩爣鎸佺画缁撴灉鏍囩", len(args.RuleResult["target"].([]structure.Result))) //labelTypes = append(labelTypes,2) } + if len(cars) > 0 { + args.RuleResult["car"] = append(args.RuleResult["car"].([]structure.Result), structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, cars, polygonId, islink,label}) + logger.Info("-------------------鐩爣鎸佺画缁撴灉鏍囩", len(args.RuleResult["target"].([]structure.Result))) + //labelTypes = append(labelTypes,2) + } // 缁欐寔缁椂闂寸殑绗竴寮犺祴浜堢紦瀛樻暟鎹紙閬嶅巻澶嶅埗锛� if cacheId != "" { // 鏈夎繖甯ф暟鎹殑缂撳瓨 tempMap := make(map[string]interface{}) -- Gitblit v1.8.0