From 855acd05ad59da181e595c6f68b1e5ac8d4bbaa4 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期四, 14 十一月 2019 10:52:51 +0800 Subject: [PATCH] --- --- algorithm/static/static.go | 24 ++++++++++++++++++++---- 1 files changed, 20 insertions(+), 4 deletions(-) diff --git a/algorithm/static/static.go b/algorithm/static/static.go index cc83ae0..f050591 100644 --- a/algorithm/static/static.go +++ b/algorithm/static/static.go @@ -95,8 +95,14 @@ } // 鍒ゆ柇涓�涓尯鍩熷唴鏈夋病鏈夐潤姝㈢殑鐩爣 func CompareAndSave(rule *protomsg.Rule, am *structure.AreaMap,lable *structure.Others,args *structure.SdkDatas,message *protomsg.SdkMessage) structure.LittleRuleResult { - initN := 60 - if rule.SdkId == "涓綋闈欐" && rule.SdkArgAlias == "duration" { + defer func() { + if err := recover(); err != nil { + logger.Error("涓綋闈欐瑙勫垯鏈夎", err) + } + }() + logger.Info("璧颁簡涓綋闈欐鏍稿績绠楁硶") + initN := 5 + if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a977" && rule.SdkArgAlias == "duration" { if init,err := strconv.Atoi(rule.SdkArgValue); err != nil { logger.Debug("涓綋闈欐绠楁硶璇诲彇鎸佺画鏃堕棿澶辫触",err) } else { @@ -104,6 +110,7 @@ } } if len(structure.StaticMap[am.AreaId].Targets) == 0 { // 鍗崇涓�甯ф暟鎹�(涔熶笉涓�瀹�)锛岃繕娌℃湁缂撳瓨 + logger.Info("涔嬪墠鏃犵紦瀛�") objs := []*structure.Obj{} for _, tar := range am.FilterData { obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN} @@ -112,16 +119,23 @@ structure.StaticMap[am.AreaId] = &structure.CameraArea{objs} return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort} } else { + logger.Info("涔嬪墠鏈夌紦瀛�") flag := "false" // 浠ヤ箣鍓嶉潤姝㈢殑瀵硅薄涓轰富鍒ゆ柇鏄惁闈欐 tars := []*structure.Arg{} + logger.Info("鐪嬩竴涓嬮潤姝㈠尯鍩熷唴鐨勭洰鏍囷細",am.AreaId) + for _, tar := range structure.StaticMap[am.AreaId].Targets { + logger.Info("鍏蜂綋鐩爣锛�",tar.Location) + } for _, tar := range structure.StaticMap[am.AreaId].Targets { singleResult,arg := SingleStatic(tar,am,lable,90) if singleResult { flag = "true" tars = append(tars,arg) + logger.Info("闈欐鐨勭洰鏍囷細",arg.Id,arg.Location,arg.Score) } } + // 鎶婃弧瓒虫潯浠剁殑鐩爣鏀捐繘areaMap涓� am.AlarmObj = tars // 鏇存柊鏁版嵁,鎶婃柊鏉ョ殑鏁版嵁鍐欏叆缂撳瓨 @@ -159,18 +173,20 @@ // 鍒ゆ柇涓�涓洰鏍囨槸鍚﹂潤姝簡鎸囧畾鏃堕棿 func SingleStatic(person *structure.Obj, am *structure.AreaMap,lable *structure.Others, argValue float64) (bool,*structure.Arg){ + logger.Info("鍗曚釜鐩爣鐨勫垽鏂細") flag := false var o *structure.Arg = nil for _, obj := range am.FilterData { if person.Id == obj.Id { coincidenceDegree := PgsInterPercent(Rect2Point(person.Location), obj.Location, 1, 1) + logger.Info("鍒ゆ柇鐩爣鐨勯噸鍚堝害",coincidenceDegree) o = obj if coincidenceDegree >= argValue { flag = true } } } - if flag { // 鏈変竴涓璞′繚鎸侀潤姝紙id鐩哥瓑骞朵笖閲嶅悎搴﹂珮浜庨槇鍊硷級 + if flag { // 褰撳墠妫�娴嬪璞′繚鎸侀潤姝紙id鐩哥瓑骞朵笖閲嶅悎搴﹂珮浜庨槇鍊硷級 flagTime := TimerAlarm(lable,person,flag,am.AreaId) if flagTime == "10" || flagTime == "11" { return flag,o @@ -186,7 +202,7 @@ // 鍒ゆ柇鏄惁绗﹀悎瀹氭椂鍣ㄦ潯浠� func TimerAlarm(oth *structure.Others,person *structure.Obj, result bool,areaId string) (string) { var flagTime string // - + logger.Info("鐩爣鐨勫畾鏃跺櫒锛�") rw.Lock() if result { // 缁撴灉涓虹湡 -- Gitblit v1.8.0