From 25559a9c7f590cb18a3ab18dd9734d6a3d219a48 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期四, 01 八月 2019 11:57:08 +0800
Subject: [PATCH] ---
---
ruleserver/ruleToformula.go | 55 +++++++++------------------
ruleserver/timeTicker.go | 14 +++---
2 files changed, 26 insertions(+), 43 deletions(-)
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 39568f0..e4f98c0 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -88,9 +88,13 @@
RuleText string // 鏂囧瓧鐗堣鍒欑粍
Location []Rect // 鐩爣鐨勫潗鏍�
AlarmPolygon string // 瑙﹀彂鐨勬姤璀︽
- Others map[string]interface{} // cacheData: []ResultMsg,(鏈粍瑙勫垯涓惈鏈夋寔缁椂闂寸殑瑙勫垯寮�鍚殑瀹氭椂鍣ㄧ紦瀛樼殑鏁版嵁甯�)锛宭inkCache: []ResultMsg 锛宼imeLabel: 00,01,10,11,12
+ Others
}
-
+type Others struct {
+ CacheData []ResultMsg //(鏈粍瑙勫垯涓惈鏈夋寔缁椂闂寸殑瑙勫垯寮�鍚殑瀹氭椂鍣ㄧ紦瀛樼殑鏁版嵁甯�)
+ LinkCache []ResultMsg
+ TimeLabel string
+}
// 杩囪鍒欏簱鎵撲笂鐨勬爣绛�
type FaceResult struct {
Result
@@ -127,7 +131,7 @@
taskId := taskGroup.TaskId
//logger.Println("------------鏈粍浠诲姟涓嬬殑瑙勫垯缁勭殑鏁伴噺锛�",len(ruleList))
temp := group.Rules // temp涓轰竴缁勫畬鏁磋鍒� 鍦ㄦ闇�瑕佸垽鏂鍒欐槸鍚︽槸鑱斿姩瑙勫垯
- label := make(map[string]interface{})
+ label := Others{}
if len(temp) > 0 {
if group.SetType != "linkTask" {
// 鐙珛浠诲姟鐨勫鐞�
@@ -140,7 +144,7 @@
taskId := taskGroup.TaskId
//logger.Println("------------鏈粍浠诲姟涓嬬殑瑙勫垯缁勭殑鏁伴噺锛�",len(ruleList))
temp := group.Rules // temp涓轰竴缁勫畬鏁磋鍒� 鍦ㄦ闇�瑕佸垽鏂鍒欐槸鍚︽槸鑱斿姩瑙勫垯
- label := make(map[string]interface{})
+ label := Others{}
if len(temp) > 0 {
if group.SetType == "linkTask" {
// groupId涓惈鏈塴ink鍒欎负鑱斿姩浠诲姟
@@ -152,7 +156,7 @@
}
}
-func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage,label map[string]interface{}) bool {
+func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage,label Others) bool {
defer func() {
if err := recover(); err != nil {
logger.Error("姣斿瑙勫垯鏈夎", err.(string))
@@ -296,7 +300,7 @@
}
}
// 杩涜瀹氭椂鍣ㄧ殑澶勭悊鍜屽垽鏂�
- timeFlag := TimerAlarm(label, groupRule.GroupId, result.(bool))
+ timeFlag := TimerAlarm(&label, groupRule.GroupId, result.(bool))
if timeFlag == "01" || timeFlag == "10" || timeFlag == "11" { // 娌℃湁瀹氭椂鍣ㄦ垨鑰呮弧瓒冲畾鏃跺櫒鏉′欢
// 鎵撲汉鑴告爣绛惧拰yolo鏍囩
// 鏈�鍚庢垚鍔熸姤璀︽墠鎶婄鍚堟潯浠剁殑浜鸿劯鏁版嵁濉炶繘缁撴灉鏍囩閲�
@@ -328,17 +332,13 @@
}
}
}
- nihao := make(map[string]interface{})
- for k,v := range label{
- nihao[k] = v
- }
//logger.Debug("------locations鐨勫唴瀹癸細", locations)
if sdkNames != "" {
- args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId,groupRule.DefenceState,groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId,nihao})
+ args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId,groupRule.DefenceState,groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId,label})
//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,nihao},faces})
+ args.RuleResult["face"] = append(args.RuleResult["face"].([]FaceResult), FaceResult{Result{taskId, sdkNames, groupRule.GroupId,groupRule.DefenceState,groupRule.AlarmLevel, groupRule.GroupText, []Rect{}, polygonId,label},faces})
//logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult)))
}
return true
@@ -389,7 +389,7 @@
}
// 鑱斿姩浠诲姟鐨勫鐞�
-func LinkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage,label map[string]interface{}) {
+func LinkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage,label Others) {
// new涓�涓畾鏃跺櫒锛屽鏋滀互姝roupId涓烘爣蹇楃殑瀹氭椂鍣ㄤ笉瀛樺湪鐨勮瘽
logger.Info("------------------------------------------褰撳墠鏄仈鍔ㄤ换鍔★紝瑙勫垯鏄細", groupRule.GroupText)
var flag bool = true
@@ -429,23 +429,10 @@
va.Result = strconv.FormatBool(isOk)
tempMap := make(map[string]interface{})
for k,result := range args.RuleResult {
- if k == "yolo" {
- tempMap[k] = []Result{}
- for _,res := range result.([]Result) {
- tempMap[k] = append(tempMap[k].([]Result),res)
- }
- }
- if k == "face" {
- tempMap[k] = []FaceResult{}
- for _,res := range result.([]FaceResult) {
- tempMap[k] = append(tempMap[k].([]FaceResult),res)
- }
- }
+ tempMap[k] = result
}
for _,result := range args.RuleResult["yolo"].([]Result) {
- for k,_ := range result.Others {
- logger.Warn("鏀捐繘鑱斿姩缂撳瓨鐨勯敭鏄�",k)
- }
+ logger.Warn("鏀捐繘鑱斿姩缂撳瓨鐨勯暱搴︽槸",len(result.LinkCache))
}
va.CacheData = ResultMsg{message,tempMap}
logger.Info("杩欎釜鎽勫儚鏈�--", args.CameraId, "--琚祴浜堜簡result", va.Result)
@@ -475,11 +462,11 @@
if result.(bool) {
logger.Info("___________________________________________________________________鑱斿姩浠诲姟鎶ヨ")
// 鎶婃暟缁勯噷缂撳瓨鐨勬暟鎹彇鍑烘潵涓�璧锋姤璀�
- label["linkCache"] = []ResultMsg{}
+ label.LinkCache = []ResultMsg{}
for _, ruleRes := range TimeEleList[groupRule.GroupId].RuleResults {
- label["linkCache"] = append(label["linkCache"].([]ResultMsg),ruleRes.CacheData)
+ label.LinkCache = append(label.LinkCache,ruleRes.CacheData)
}
- logger.Debug("鑱斿姩浠诲姟缂撳瓨浜嗗嚑涓暟鎹�",len(label["linkCache"].([]ResultMsg)))
+ logger.Debug("鑱斿姩浠诲姟缂撳瓨浜嗗嚑涓暟鎹�",len(label.LinkCache))
//for _,result := range args.RuleResult["yolo"].([]Result) {
// if result.RuleGroupId == groupRule.GroupId {
// result.Others["linkCache"] = label
@@ -487,11 +474,7 @@
//}
for i := 0; i < len(args.RuleResult["yolo"].([]Result)); i++ {
if args.RuleResult["yolo"].([]Result)[i].RuleGroupId == groupRule.GroupId { // 鎶婂師鏉ラ偅涓垹鎺夊啀瀛樹竴浠芥柊鐨�
- args.RuleResult["yolo"].([]Result)[i].Others["linkCache"] = label["linkCache"]
- //res := args.RuleResult["yolo"].([]Result)[i]
- //res.Others["linkCache"] = label["linkCache"]
- //args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result)[:i],args.RuleResult["yolo"].([]Result)[i+1:]...)
- //args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result),res)
+ args.RuleResult["yolo"].([]Result)[i].Others.LinkCache = label.LinkCache
}
}
}
diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go
index 8c9e980..e6219ed 100644
--- a/ruleserver/timeTicker.go
+++ b/ruleserver/timeTicker.go
@@ -69,7 +69,7 @@
}
// 鍒ゆ柇鏄惁绗﹀悎瀹氭椂鍣ㄦ潯浠�
-func TimerAlarm(args map[string]interface{}, groupId string, result bool) (string) {
+func TimerAlarm(oth *Others, groupId string, result bool) (string) {
var flagTime string //
// 鍒ゆ柇鏈夋棤姝よ鍒欑粍鐨勫畾鏃跺櫒
flag := false
@@ -86,15 +86,15 @@
if timeEle.N == 0 && timeEle.AlarmFlag {
logger.Debug("-------------------------绗﹀悎鎸佺画鏃堕棿瑙勫垯浣嗗苟涓嶆槸棣栨锛屼笉鎶ヨ")
flagTime = "11"
- args["timeLabel"] = flagTime
+ oth.TimeLabel = flagTime
}
if timeEle.N == 0 && !timeEle.AlarmFlag { // 杩欑粍瑙勫垯鐨勫畾鏃跺櫒瑕佸叏閮ㄧ瓑浜�0 鏆備笖璁や负涓�缁勮鍒欏彧鏈変竴涓畾鏃跺櫒
logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------棣栨绗﹀悎鎸佺画鏃堕棿瑙勫垯骞舵姤璀�")
flagTime = "10"
timeEle.AlarmFlag = true
- args["cacheData"] = []ResultMsg{}
- args["cacheData"] = append(args["cacheData"].([]ResultMsg),timeEle.CacheSdkData)
- args["timeLabel"] = flagTime
+ oth.CacheData = []ResultMsg{}
+ oth.CacheData = append(oth.CacheData,timeEle.CacheSdkData)
+ oth.TimeLabel = flagTime
}
if timeEle.N != 0 {
flagTime = "00"
@@ -111,7 +111,7 @@
if timeEle.BufferFlag == 0 {
logger.Debug("------------------------------鏉�姝诲畾鏃跺櫒锛屾姤璀︽甯х姸鎬佹敼鍙樼殑鏁版嵁锛屾鏃剁殑璁℃暟鍣ㄧ殑鍊间负", timeEle.N)
flagTime = "12"
- args["timeLabel"] = flagTime
+ oth.TimeLabel = flagTime
delete(TimeEleList, k)
} else {
if timeEle.BufferFlag > 0 {
@@ -127,7 +127,7 @@
} else { // 鏃犲畾鏃跺櫒
if result {
flagTime = "01"
- args["timeLabel"] = flagTime
+ oth.TimeLabel = flagTime
} else {
flagTime = "00"
}
--
Gitblit v1.8.0