From c4f4abbd7d40e75fef0eb1e1dadb78309c059d73 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期三, 13 十一月 2019 20:48:54 +0800 Subject: [PATCH] --- --- algorithm/static/static.go | 25 +++++++++++++++++-------- 1 files changed, 17 insertions(+), 8 deletions(-) diff --git a/algorithm/static/static.go b/algorithm/static/static.go index b548cd9..f652775 100644 --- a/algorithm/static/static.go +++ b/algorithm/static/static.go @@ -12,7 +12,7 @@ func Entrance(rule *protomsg.Rule, am *structure.AreaMap,lable *structure.Others,args *structure.SdkDatas,message *protomsg.SdkMessage) structure.LittleRuleResult { if rule.PolygonId == am.AreaId { // 棣栧厛杩欐潯瑙勫垯寰楁槸杩欎釜绠楁硶鐨勮鍒欙紝鍏舵瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓� - logger.Debug("---------璧颁簡浜哄憳寮傚父绠楁硶", rule.Id, rule.SdkArgAlias, rule.Operator, rule.SdkArgValue, am.AreaId) + logger.Debug("---------璧颁簡涓綋闈欐绠楁硶", rule.Id, rule.SdkArgAlias, rule.Operator, rule.SdkArgValue, am.AreaId) if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" || rule.SdkArgAlias == "" { // 鍒ゆ柇鐨勬槸鐩镐技鍊硷紝鍗犳瘮锛屽昂瀵哥瓑杩囨护鏉′欢锛屽鏋滃啀鏈夛紝杩樺彲浠ュ啀鍔� return filterRule(rule, am) } else if rule.SdkArgAlias == "duration" { @@ -95,8 +95,8 @@ } // 鍒ゆ柇涓�涓尯鍩熷唴鏈夋病鏈夐潤姝㈢殑鐩爣 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" { + 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 { @@ -113,12 +113,19 @@ return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort} } else { flag := "false" + // 浠ヤ箣鍓嶉潤姝㈢殑瀵硅薄涓轰富鍒ゆ柇鏄惁闈欐 + tars := []*structure.Arg{} for _, tar := range structure.StaticMap[am.AreaId].Targets { - singleResult := SingleStatic(tar,am,lable,90) + 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 // 鏇存柊鏁版嵁,鎶婃柊鏉ョ殑鏁版嵁鍐欏叆缂撳瓨 objs := []*structure.Obj{} for _, tar := range am.FilterData { @@ -153,11 +160,13 @@ } // 鍒ゆ柇涓�涓洰鏍囨槸鍚﹂潤姝簡鎸囧畾鏃堕棿 -func SingleStatic(person *structure.Obj, am *structure.AreaMap,lable *structure.Others, argValue float64) bool{ +func SingleStatic(person *structure.Obj, am *structure.AreaMap,lable *structure.Others, argValue float64) (bool,*structure.Arg){ 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) + o = obj if coincidenceDegree >= argValue { flag = true } @@ -166,13 +175,13 @@ if flag { // 鏈変竴涓璞′繚鎸侀潤姝紙id鐩哥瓑骞朵笖閲嶅悎搴﹂珮浜庨槇鍊硷級 flagTime := TimerAlarm(lable,person,flag,am.AreaId) if flagTime == "10" || flagTime == "11" { - return flag + return flag,o } else { - return false + return false,o } } else { TimerAlarm(lable,person,flag,am.AreaId) - return flag + return flag,o } } var rw sync.RWMutex -- Gitblit v1.8.0