| | |
| | | |
| | | // 人体跟踪算法 |
| | | func Entrance(rule *protomsg.Rule, am *structure.AreaMap, lable *structure.Others, args *structure.SdkDatas, message *protomsg.SdkMessage) structure.LittleRuleResult { |
| | | logger.Info("置位符号为:",structure.InitFlag) |
| | | if !structure.InitFlag { |
| | | Init() |
| | | } |
| | | |
| | | if rule.PolygonId == am.AreaId { // 首先这条规则得是这个算法的规则,其次规则所对应的区域id要跟区域数据的id对的上 |
| | | //logger.Debug("---------走了人员异常算法", rule.Id, rule.SdkArgAlias, rule.Operator, rule.SdkArgValue, am.AreaId) |
| | | if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" || rule.SdkArgAlias == "" { // 判断的是相似值,占比,尺寸等过滤条件,如果再有,还可以再加 |
| | |
| | | if errSize != nil { |
| | | logger.Error("Failed set MaxRecvSize: %v", err) |
| | | } |
| | | errTimeOut := sock.SetOption(mangos.OptionRecvDeadline,time.Millisecond * 1500) |
| | | if errTimeOut != nil { |
| | | logger.Error("接收响应超时") |
| | | return |
| | | } |
| | | errTimeOut1 := sock.SetOption(mangos.OptionSendDeadline,time.Millisecond * 1500) |
| | | if errTimeOut1 != nil { |
| | | logger.Error("发送超时") |
| | | return |
| | | } |
| | | //sock.AddTransport(ipc.NewTransport()) |
| | | sock.AddTransport(tcp.NewTransport()) |
| | | serverIP, _ := GetLocalIP() |
| | | if err = sock.Dial("tcp://"+serverIP+":4012"); err != nil { |
| | | logger.Error("请求socket拨号失败: %s", err.Error()) |
| | | } |
| | | //logger.Info("序列化数据") |
| | | structure.InitFlag = true |
| | | logger.Info("置位initFlag:",structure.InitFlag) |
| | | |
| | | for { |
| | | select { |
| | | case data := <- sender: |