---
panlei
2019-12-13 fab26a9861ee7ce4652b4c15483cfc8e833b28d3
algorithm/personTrack/personTrack.go
@@ -12,7 +12,7 @@
   "nanomsg.org/go-mangos/protocol/req"
   "nanomsg.org/go-mangos/transport/tcp"
   "github.com/knetic/govaluate"
   logger "github.com/alecthomas/log4go"
   "basic.com/valib/logger.git"
   "basic.com/pubsub/protomsg.git"
   "ruleprocess/structure"
@@ -35,7 +35,7 @@
      //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 == "threshold"{
      } else if rule.SdkArgAlias == "cmpThreshold"{
         return track(rule,am)
      }
      return structure.LittleRuleResult{}
@@ -98,12 +98,14 @@
   trackArg := make(map[string]interface{})
   esId := uuid.NewV4().String()
   trackArg["esId"] = esId
   trackArg["threshold"] = compareThreshold
   trackArg["cameraId"] = am.CameraId
   trackArg["bodyFeature"] = arg.Feature
   trackArg["faceFeature"]   = arg.AttachArg.Feature
   logger.Info("请求张增飞比对数据参数:",trackArg)
   b,err := json.Marshal(trackArg)
   if err != nil {
      _ = logger.Error("json序列化错误", err)
      logger.Error("json序列化错误", err)
   }
   dataId := getCompareMsg(b)
   if esId == dataId { // 说明没比到相似的人
@@ -123,6 +125,7 @@
   }
   for _, arg := range am.FilterData {
      fillLiker(threshold,arg,am)
      logger.Info("比完之后的数据追踪数据是:",arg)
      //if len(arg.Liker) == 0 {
      //   // 如果没有相似者则删除本目标数据
      //   am.FilterData = append(am.FilterData[:i],am.FilterData[i+1:]...)
@@ -142,17 +145,17 @@
   var msg []byte
   if sock, err = req.NewSocket(); err != nil {
      _ = logger.Error("创建请求socket失败: %s", err.Error())
      logger.Error("创建请求socket失败: %s", err.Error())
   }
   errSize := sock.SetOption(mangos.OptionMaxRecvSize,5*1024*1024)
   if errSize != nil {
      _ = logger.Error("Failed set MaxRecvSize: %v", err)
      logger.Error("Failed set MaxRecvSize: %v", err)
   }
   //sock.AddTransport(ipc.NewTransport())
   sock.AddTransport(tcp.NewTransport())
   serverIP, _ := GetLocalIP()
   if err = sock.Dial("tcp://"+serverIP+":4010"); err != nil {
      _ = logger.Error("请求socket拨号失败: %s", err.Error())
      logger.Error("请求socket拨号失败: %s", err.Error())
   }
   logger.Info("序列化数据")
   initFlag = true
@@ -161,10 +164,10 @@
      case data := <- sender:
         logger.Debug("推送数据:",len(data))
         if err = sock.Send(data); err != nil {
            _ = logger.Error("推送socket发送数据失败: %s", err.Error())
            logger.Error("推送socket发送数据失败: %s", err.Error())
         }
         if msg, err = sock.Recv(); err != nil {
            _ = logger.Error("接收响应失败: %s", err.Error())
            logger.Error("接收响应失败: %s", err.Error())
         }
         logger.Debug("数据推送成功!收到响应,数据长度为:",len(msg))
         receiver <- string(msg)