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