---
panlei
2019-08-16 290e1038188d255ce3272687c8d03dbcb979688e
ruleserver/ruleToformula.go
@@ -117,7 +117,7 @@
      // 拿到本摄像机的区域
      cameraPolygons := GetPolygons(args.CameraId)
      // 把所有的sdk提取的数据都按所属摄像机的区域归置
      //logger.Debug("当前摄像机id为:",message.Cid,"当前摄像机执行的任务是:",message.Tasklab.Taskname)
      logger.Debug("当前摄像机id为:",message.Cid,"当前摄像机执行的任务是:",message.Tasklab.Taskname,"--任务id为:",message.Tasklab.Taskid)
      for _, arg := range args.Sdkdata {
         SdkDataFormat(args.CameraId, arg, cameraPolygons)
      }
@@ -491,20 +491,22 @@
            result, _ := expression.Evaluate(nil) // 得到数学公式的结果
            if result.(bool) {
               logger.Info("___________________________________________________________________联动任务报警")
               // 把数组里缓存的数据取出来一起报警
               label.LinkCache = []ResultMsg{}
               for _, ruleRes := range TimeEleList[groupRule.GroupId].RuleResults {
                  label.LinkCache = append(label.LinkCache, ruleRes.CacheData)
               }
               logger.Debug("联动任务缓存了几个数据", len(label.LinkCache))
               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
               if TimeEleList[groupRule.GroupId] != nil {  // 极偶尔有情况会等于nil,不知道为啥,做个判断以防宕机
                  // 把数组里缓存的数据取出来一起报警
                  label.LinkCache = []ResultMsg{}
                  for _, ruleRes := range TimeEleList[groupRule.GroupId].RuleResults {
                     label.LinkCache = append(label.LinkCache, ruleRes.CacheData)
                  }
               }
               for i := 0; i < len(args.RuleResult["face"].([]FaceResult)); i++ {
                  if args.RuleResult["face"].([]FaceResult)[i].RuleGroupId == groupRule.GroupId { // 把联动数据追加上
                     args.RuleResult["face"].([]FaceResult)[i].Others.LinkCache = label.LinkCache
                  logger.Debug("联动任务缓存了几个数据", len(label.LinkCache))
                  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
                     }
                  }
                  for i := 0; i < len(args.RuleResult["face"].([]FaceResult)); i++ {
                     if args.RuleResult["face"].([]FaceResult)[i].RuleGroupId == groupRule.GroupId { // 把联动数据追加上
                        args.RuleResult["face"].([]FaceResult)[i].Others.LinkCache = label.LinkCache
                     }
                  }
               }
            }