panlei
2019-11-15 5d6651a0c9e966307d66769e8581e6da205faaab
完善静止算法
1个文件已修改
29 ■■■■■ 已修改文件
algorithm/static/static.go 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
algorithm/static/static.go
@@ -113,16 +113,19 @@
        }
    }
    if len(am.FilterData) < 0 {
        logger.Info("本帧区域内无数据,返回")
        return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
    }
    if (structure.StaticMap[am.AreaId] == nil || len(structure.StaticMap[am.AreaId].Targets) == 0) { // 即第一帧数据(也不一定),还没有缓存
    m := make(map[string]interface{})
    m["target"] = []structure.Result{}
    m["target"] = append(m["target"].([]structure.Result), structure.Result{args.TaskId, "", "", true, 0, "", am.FilterData, am.AreaJson, false,*lable})
    if structure.StaticMap[am.AreaId] == nil || len(structure.StaticMap[am.AreaId].Targets) == 0 { // 即第一帧数据(也不一定),还没有缓存
        logger.Info("之前无缓存并且此次区域内有人")
        m := make(map[string]interface{})
        m["target"] = []structure.Result{}
        m["target"] = append(m["target"].([]structure.Result), structure.Result{args.TaskId, "", "", true, 0, "", am.FilterData, am.AreaJson, false,*lable})
        objs := []*structure.Obj{}
        for _, tar := range am.FilterData {
            obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN,CacheSdkData:structure.ResultMsg{message, m}}
            obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN, InitN:initN, CacheSdkData:structure.ResultMsg{message, m}}
            objs = append(objs, obj)
        }
        structure.StaticMap[am.AreaId] = &structure.CameraArea{objs}
@@ -132,12 +135,12 @@
        flag := "false"
        // 以之前静止的对象为主判断是否静止
        tars := []*structure.Arg{}
        logger.Info("看一下静止区域内的目标:",am.AreaId)
        //logger.Info("看一下静止区域内的目标:",am.AreaId)
        //for _, tar := range structure.StaticMap[am.AreaId].Targets {
        //    logger.Info("具体目标:",tar.Location)
        //}
        for _, tar := range structure.StaticMap[am.AreaId].Targets {
            logger.Info("具体目标:",tar.Location)
        }
        for _, tar := range structure.StaticMap[am.AreaId].Targets {
            singleResult,arg := SingleStatic(tar,am,lable,90)
            singleResult,arg := SingleStatic(tar,am,lable,95)
            if singleResult {
                flag = "true"
                tars = append(tars,arg)
@@ -149,15 +152,15 @@
        am.AlarmObj = tars
        // 更新数据,把新来的数据写入缓存
        objs := []*structure.Obj{}
        for _, tar := range am.FilterData {
        for _, tar := range am.FilterData {m
            flag1 := false
            for _, OBJ := range structure.StaticMap[am.AreaId].Targets {
                if tar.Id == OBJ.Id {
                    flag1 = true
                }
            }
            if !flag1 { // 集合中没有的才插入
                obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN,AlarmFlag: false, BufferFlag: 10, CacheSdkData: structure.ResultMsg{message, nil}}
                if !flag1 { // 集合中没有的才插入
                obj := &structure.Obj{Id: tar.Id, Location: tar.Location, N: initN,InitN:initN,AlarmFlag: false, BufferFlag: 10, CacheSdkData: structure.ResultMsg{message, m}}
                objs = append(objs, obj)
            }
        }