From b4814201252dd4d01173ac30f5fdf7af78db5aee Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期三, 04 九月 2019 14:23:04 +0800
Subject: [PATCH] face link fix bug
---
ruleserver/ruleToformula.go | 33 ++++++++++++++++++++++++---------
1 files changed, 24 insertions(+), 9 deletions(-)
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 102ec20..2911c50 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -161,7 +161,7 @@
}
}
-func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label Others) bool {
+func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label Others) (bool,[]int) {
defer func() {
if err := recover(); err != nil {
logger.Error("姣斿瑙勫垯鏈夎", err.(string))
@@ -357,27 +357,30 @@
} else {
islink = false
}
+ var labelTypes []int // 0涓簓olo鏍囩锛�1涓篺ace鏍囩 2涓轰袱鑰呮爣绛�
if sdkNames != "" {
args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink,label,})
+ labelTypes = append(labelTypes,0)
//logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result)))
}
if faceFlag {
args.RuleResult["face"] = append(args.RuleResult["face"].([]FaceResult), FaceResult{Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []Rect{}, polygonId, islink,label,}, faces})
//logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult)))
+ labelTypes = append(labelTypes,1)
}
- return true
+ return true,labelTypes
} else {
- return false
+ return false,[]int{}
}
} else {
// 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏉�姝诲畾鏃跺櫒鐨勬搷浣�
TimerAlarm(&label, groupRule.GroupId, result.(bool))
//fmt.Println(timeFlag)
- return false
+ return false,[]int{}
}
} else {
- return false
+ return false,[]int{}
}
}
@@ -442,7 +445,7 @@
}
}
// 寰�鏁扮粍閲岃祴鍊�
- isOk := RunRule(args, groupRule, taskId, message, label)
+ isOk,labelTypes := RunRule(args, groupRule, taskId, message, label)
if isOk {
logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负true")
// 鏍规嵁cameraId鍘绘洿鏂版垨鑰呮彃鍏ョ粨鏋�,鐒跺悗鍒ゆ柇鏄惁鏁扮粍鏄惁鍙互寰楀嚭鎶ヨ鐨勭粨璁�
@@ -515,10 +518,22 @@
} else {
logger.Warn("鏁扮粍涓嶅渾婊′笉鎵撴爣绛�")
// 鍊掓槸鎶婃墦鐨勭粍瑙勫垯鏍囩缁欏幓鎺変簡鍟�
- if len(args.RuleResult["yolo"].([]Result)) > 1 {
- lens := len(args.RuleResult["yolo"].([]Result))-1
- args.RuleResult["yolo"] = args.RuleResult["yolo"].([]Result)[0:lens]
+ for _,val := range labelTypes {
+ if val == 0 {
+ if len(args.RuleResult["yolo"].([]Result)) > 1 {
+ lens := len(args.RuleResult["yolo"].([]Result))-1
+ args.RuleResult["yolo"] = args.RuleResult["yolo"].([]Result)[0:lens]
+ }
+ }
+ if val == 1 {
+ if len(args.RuleResult["face"].([]FaceResult)) > 1 {
+ lens := len(args.RuleResult["face"].([]FaceResult))-1
+ args.RuleResult["face"] = args.RuleResult["face"].([]FaceResult)[0:lens]
+ }
+ }
}
+
+
}
} else { // 娌℃湁鎶ヨ锛�
//logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负false")
--
Gitblit v1.8.0