From cbe73e3706a6494b506febd0e4a51ce1096aae1f Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期四, 05 十二月 2019 17:21:46 +0800 Subject: [PATCH] 加跟踪算法,进程间通讯加sleep --- algorithm/middleware/middleware.go | 104 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 73 insertions(+), 31 deletions(-) diff --git a/algorithm/middleware/middleware.go b/algorithm/middleware/middleware.go index 282e069..8657df7 100644 --- a/algorithm/middleware/middleware.go +++ b/algorithm/middleware/middleware.go @@ -18,6 +18,38 @@ resultSplice := []*structure.LittleRuleResult{} sdkNames := "" polygonId := "" + // 杩欐杩囩殑鏄椂闂存瑙勫垯锛堟椂闂存绛夛級 + for j := 0; j < len(groupRule.Rules); j++ { + for _, sdkData := range args.Sdkdata { + sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId) + if err != nil { + logger.Error("娌℃煡鍒皊dk鐨勪俊鎭�---", err) + } + ipcId := sdk.IpcId + sdkName := sdk.SdkName + if ipcId == sdkData.IpcId { + for _, areaMap := range sdkData.AreaMapList { + ruleResult := timeRuleResult(groupRule.Rules[j], areaMap) + if ruleResult.Result != "" { + if strings.Contains(ruleResult.Result, "false") { + return false,"","" // 涓嶇鍚堟椂闂磋鍒欑殑璇濈洿鎺ヨ繑鍥烇紝涓嶅啀娴垂鏃堕棿 + } + if strings.Contains(ruleResult.Result, "true") { + areaMap.IsEffective = true + } + //logger.Info("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result) + if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) { + sdkNames = sdkName + " " + } + if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) { + polygonId += groupRule.Rules[j].PolygonId + "," + } + resultSplice = append(resultSplice, &ruleResult) + } + } + } + } + } // 鍏堣繃瀹屾潯浠惰鍒� for j := 0; j < len(groupRule.Rules); j++ { @@ -168,6 +200,42 @@ } } } + // 璺ㄦ憚鍍忔満璺熻釜 + for j := 0; j < len(groupRule.Rules); j++ { + if groupRule.Rules[j].SdkId == "浜轰綋璺熻釜" && groupRule.Rules[j].SdkArgAlias != "鐏甸瓊鍙傛暟"{ + for _, sdkData := range args.Sdkdata { + // 鏍规嵁瑙勫垯鐨剆dkId鏌ュ嚭鍏跺搴旂殑ipcId锛岀敤ipcId鍘绘壘璇ユ瘮瀵圭殑鏁版嵁 + sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId) + if err != nil { + _ = logger.Error("娌℃煡鍒皊dk鐨勪俊鎭�---", err) + } + ipcId := sdk.IpcId + sdkName := sdk.SdkName + //logger.Info("瑙勫垯鐨刬pcId涓巗dkData鐨処pcId:", ipcId, "===", sdkData.IpcId) + if ipcId == sdkData.IpcId { + //logger.Info("褰撳墠璧扮殑瑙勫垯鏄�--锛�", groupRule.Rules[j],sdkName,groupRule.Rules[j].SdkArgAlias, "---","") + for _, areaMap := range sdkData.AreaMapList { + ruleResult := CallSo(sdk.Id, groupRule.Rules[j], areaMap,lable,args,message) + if ruleResult.Result != "" { + //logger.Info("杞︾墝缁撴灉锛�", ruleResult.Result) + // 濡傛灉缁撴灉涓虹湡锛屾妸杩欐潯瑙勫垯涓殑鍖哄煙缃负鏈夋晥 + if strings.Contains(ruleResult.Result, "true") { + areaMap.IsEffective = true + } + // 濡傛灉姝ょ粨鏋滀负鐪熶笖褰撳墠杩囩殑鏄痽olo绠楁硶锛屽簲璁颁笅姝よ鍒欐墍瀵瑰簲鐨剆dkName,鍙﹀锛岃繕瑕佸幓閲� (鍚庡姞锛氭妸姝ゆ潯瑙︾鐨勫尯鍩焛d涔熻褰曚笅鏉�) + if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) { + sdkNames = sdkName + " " + } + if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) { + polygonId += groupRule.Rules[j].PolygonId + "," + } + resultSplice = append(resultSplice, &ruleResult) + } + } + } + } + } + } // 鍐嶈繃鍏朵粬鏁版嵁 杩欐鐩存帴寰楀埌缁撴灉锛堢湡鎴栧亣锛� 杩囩洰鏍囨暟閲� for j := 0; j < len(groupRule.Rules); j++ { if groupRule.Rules[j].SdkArgAlias == "objCount" { @@ -200,35 +268,7 @@ } } } - // 杩欐杩囩殑鏄椂闂存瑙勫垯锛堟椂闂存绛夛級 - for j := 0; j < len(groupRule.Rules); j++ { - for _, sdkData := range args.Sdkdata { - sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId) - if err != nil { - logger.Error("娌℃煡鍒皊dk鐨勪俊鎭�---", err) - } - ipcId := sdk.IpcId - sdkName := sdk.SdkName - if ipcId == sdkData.IpcId { - for _, areaMap := range sdkData.AreaMapList { - ruleResult := timeRuleResult(groupRule.Rules[j], areaMap) - if ruleResult.Result != "" { - if strings.Contains(ruleResult.Result, "true") { - areaMap.IsEffective = true - } - //logger.Info("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result) - if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) { - sdkNames = sdkName + " " - } - if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) { - polygonId += groupRule.Rules[j].PolygonId + "," - } - resultSplice = append(resultSplice, &ruleResult) - } - } - } - } - } + // 灏嗘暟缁勬寜sort鎺掑簭 sort.Sort(ruleserver.ResultList(resultSplice)) // 鎺掑簭鍚庡彇鍚勮嚜鐨勭粨鏋滃拰杩炴帴绗︽嫾鍑鸿鍒欒〃杈惧紡寰楀嚭缁撴灉 @@ -334,9 +374,11 @@ soName = "static.so" } else if sdkId == "812b674b-2375-4589-919a-5c1c3278a978" { soName = "plate.so" + } else if sdkId == "浜轰綋璺熻釜" { + soName = "personTrack.so" } - //soInfo,errr := cache.GetSoInfoById(sdkId) - //if errr != nil { + //soInfo,err := cache.GetSoInfoById(sdkId) + //if err != nil { // panic("娌¤鍒版敞鍐岃〃") //} //soName := soInfo.SoName -- Gitblit v1.8.0