From 33606536203d2177f1c72373ae491776e3e359b1 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期四, 29 八月 2019 17:23:39 +0800
Subject: [PATCH] 追踪加数据为空的判断
---
algorithm/middleware/middleware.go | 65 ++++++++++++++++++++++++++------
1 files changed, 53 insertions(+), 12 deletions(-)
diff --git a/algorithm/middleware/middleware.go b/algorithm/middleware/middleware.go
index 3a1cd36..5316a62 100644
--- a/algorithm/middleware/middleware.go
+++ b/algorithm/middleware/middleware.go
@@ -12,13 +12,13 @@
"time"
)
-func Entrance (args *structure.SdkDatas,groupRule protomsg.GroupRule) {
+func Entrance (args *structure.SdkDatas,groupRule protomsg.GroupRule) ([]*structure.LittleRuleResult,string,string){
resultSplice := []*structure.LittleRuleResult{}
sdkNames := ""
polygonId := ""
// 鍏堣繃瀹屾潯浠惰鍒�
for j := 0; j < len(groupRule.Rules); j++ {
- if groupRule.Rules[j].SdkArgAlias == "score" || groupRule.Rules[j].SdkArgAlias == "proportion" || groupRule.Rules[j].SdkArgAlias == "size" {
+ if groupRule.Rules[j].SdkArgAlias == "score" || groupRule.Rules[j].SdkArgAlias == "proportion" || groupRule.Rules[j].SdkArgAlias == "size" || (groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && groupRule.Rules[j].SdkArgAlias != "time_rule"){
for _, sdkData := range args.Sdkdata {
// 鏍规嵁瑙勫垯鐨剆dkId鏌ュ嚭鍏跺搴旂殑ipcId锛岀敤ipcId鍘绘壘璇ユ瘮瀵圭殑鏁版嵁
sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId)
@@ -53,7 +53,42 @@
}
}
}
-
+ for j := 0; j < len(groupRule.Rules); j++ {
+ if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && groupRule.Rules[j].SdkArgAlias != "time_rule"{
+ 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("褰撳墠璧扮殑瑙勫垯鏄�--锛�", sdkName, "---","")
+ for _, areaMap := range sdkData.AreaMapList {
+ ruleResult := CallSo(sdk.Id, groupRule.Rules[j], areaMap)
+ 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 + ","
+ polygonId = groupRule.Rules[j].PolygonId + ","
+ }
+ 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" {
@@ -115,6 +150,7 @@
}
}
}
+ return resultSplice,sdkNames,polygonId
}
func timeRuleResult(rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult {
@@ -176,16 +212,21 @@
func CallSo(sdkId string,rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult{
// 鏍规嵁sdkId鏌ュ嚭鍏跺搴旂殑sdk鐨剆oName锛岃皟鐢ㄧ浉搴攕o鐨凟ntrance鏂规硶
- var soName = ""
- if sdkId == "812b674b-2375-4589-919a-5c1c3278a97e" {
- soName = "face.so"
- } else if sdkId == "812b674b-2375-4589-919a-5c1c3278a975"{
- soName = "intrusion.so"
- } else if sdkId == "812b674b-2375-4589-919a-5c1c3278a976" {
- soName = "personUnsual.so"
- } else if sdkId == "812b674b-2375-4589-919a-5c1c3278a972" {
- soName = "faceCompare.so"
+ //var soName = ""
+ //if sdkId == "812b674b-2375-4589-919a-5c1c3278a97e" {
+ // soName = "face.so"
+ //} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a975"{
+ // soName = "intrusion.so"
+ //} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a976" {
+ // soName = "personUnsual.so"
+ //} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a972" {
+ // soName = "faceCompare.so"
+ //}
+ soInfo,errr := cache.GetSoInfoById(sdkId)
+ if errr != nil {
+ panic("娌¤鍒版敞鍐岃〃")
}
+ soName := soInfo.SoName
p,err := plugin.Open("./algorithm/"+soName)
if err != nil {
panic(err)
--
Gitblit v1.8.0