From a37d04bf73e12325bf5dc5055f34770c912dcf66 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期六, 16 十一月 2019 18:13:38 +0800 Subject: [PATCH] --- --- ruleserver/ruleToformula.go | 42 ++++++++++++++++++++++++++++++++++-------- 1 files changed, 34 insertions(+), 8 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 37a495a..c666960 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("ReadData") + 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))) @@ -196,6 +217,11 @@ } if len(targets) > 0 { args.RuleResult["target"] = append(args.RuleResult["target"].([]structure.Result), structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, targets, polygonId, islink,label}) + 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) } @@ -438,9 +464,9 @@ } if flag { - m := make(map[string]interface{}) - m["yolo"] = []structure.Result{} - m["yolo"] = append(m["yolo"].([]structure.Result), structure.Result{args.TaskId, "", "", true, 0, "", am.FilterData, am.AreaJson, false,*lable}) + //m := make(map[string]interface{}) + //m["yolo"] = []structure.Result{} + //m["yolo"] = append(m["yolo"].([]structure.Result), structure.Result{args.TaskId, "", "", true, 0, "", am.FilterData, am.AreaJson, false,*lable}) timeLength, _ := strconv.Atoi(rule.SdkArgValue) timeEle := TimeElement{N: timeLength, InitN: timeLength, AlarmFlag: false, BufferFlag: 10, CacheSdkData: structure.ResultMsg{message, nil}} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌锛堝苟缂撳瓨褰撳墠鐢婚潰甯ф暟鎹級 //TimeEleList = make(map[string]timeElement) -- Gitblit v1.8.0