panlei
2019-07-10 d81dee97316758a8d7910cf337667cbe4a3eabed
ruleserver/ruleToformula.go
@@ -184,7 +184,10 @@
// 把sdk从数据帧上提取的按照区域分类归置
func SdkDataFormat(cameraId string, arg *SdkData, cameraPolygons []protomsg.CameraPolygon) {
   logger.Info("--------看看解析出来的数据---", *arg)
   logger.Info("==================================本sdkData中解出来的目标数据=======================================")
   for _,photo := range arg.Photo{
      logger.Info("--------看看解析出来的数据---", cameraId,arg.IpcId,photo.Rects,photo.Score)
   }
   for _, polygon := range cameraPolygons {
      //logger.Println("++++++在这儿看一下区域啊:", polygon.Polygon)
      areaMap := AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
@@ -247,13 +250,15 @@
         }
      }
   }
   // 作弊,直接让其比对全部底库
   compareFlag = 1
   if compareFlag == 0 {
      logger.Info("没有配置对比底库参数")
      return
   }
   for j := 0; j < len(groupRule.Rules); j++ {
      // 只有是人脸对比并且配置的参数是对比底库才走(若配的对比阈值则不走)
      if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && groupRule.Rules[j].SdkArgAlias == "compareBase" {
      if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972"{
         for _, sdkData := range args.Sdkdata {
            if sdkData.IpcId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 搜索到人脸检测的sdkdata 现在关于人脸的只有他一个sdk,全找他
               for _, areaMap := range sdkData.AreaMapList {
@@ -439,7 +444,7 @@
               timeEle.N = timeEle.InitN // 重置定时器
            }
         }
         logger.Info("-------------------重置定时器并返回false---------------")
         logger.Info("-------------------重置可能存在的定时器并返回false---------------")
         return false
      } else {
         // 最后成功报警才把符合条件的人脸数据塞进结果标签里
@@ -738,6 +743,7 @@
            if rule.Operator == "==" || rule.Operator == ">=" || rule.Operator == "<=" || rule.Operator == "<" || rule.Operator == ">" || rule.Operator == "!=" {
               // 如果是不规矩的连接符统统返回false 规则也只能判断人脸的相似度,所以不存在别的连接符
               if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 判断的是相似值,占比,尺寸等过滤条件,如果再有,还可以再加
                  logger.Info("--------------------终于等到你的下文")
                  var args []Arg
                  if rule.RuleWithPre == "&&" {
                     args = am.filterData