---
panlei
2019-07-12 7f27fef93bd62eb1367a43430fee594cf33eb54e
ruleserver/ruleToformula.go
@@ -122,7 +122,7 @@
type SdkDatas struct {
   CameraId   string
   Sdkdata    []*SdkData
   RuleResult map[string]interface{} // 过完规则后打的标签 face: []Arg  yolo: []Result
   RuleResult map[string]interface{} // 过完规则后打的标签 face: []Arg  yolo: []Result cacheData: SdkDatas
}
// 将传递过来的参数转化为
@@ -470,6 +470,7 @@
               }
            }
         }
         //TimerAlarm(args,groupRule.GroupId)
         if flag {
            // 最后成功报警才把符合条件的人脸数据塞进结果标签里
            // 配了人脸的算法才把人脸的数据甩出来打标签
@@ -500,6 +501,7 @@
                  }
               }
            }
            logger.Debug("------locations的内容:",locations)
            if sdkNames != "" {
               args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText, locations,polygonId})
               logger.Info("-------------------yolo结果标签长度", len(args.RuleResult["yolo"].([]Result)))
@@ -516,14 +518,15 @@
      return false
   }
}
func TimerAlarm(groupId string) (int) {
   var flagTime int = 0
func TimerAlarm(args SdkDatas,groupId string) (int) {
   var flagTime int = 0  // 为0的意思是
   for k, timeEle := range TimeEleList {
      if strings.Contains(k, groupId) {
         if timeEle.N == 0 && !timeEle.AlarmFlag { // 这组规则的定时器要全部等于0   暂且认为一组规则只有一个定时器
            logger.Info("———————————-------------首次符合持续时间规则并报警")
            flagTime = 1
            timeEle.AlarmFlag = true
            args.RuleResult["cacheData"] = timeEle.CacheSdkData
         }
         if timeEle.N == 0 && timeEle.AlarmFlag {
            logger.Info("-------------------------符合持续时间规则但并不是首次,不报警")