---
panlei
2019-07-29 c6a9f0ac501db824a3e1187d8eb661e7ac98b366
---
1个文件已修改
90 ■■■■ 已修改文件
ruleserver/personTrack.go 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruleserver/personTrack.go
@@ -44,51 +44,51 @@
                }
            }
        }
        if sdkinfo.Sdktype == "Yolo" {
            if len(sdkinfo.Sdkdata) > 1 {
                yoloParam := protomsg.ParamYoloObj{}
                err := proto.Unmarshal(sdkinfo.Sdkdata, &yoloParam)
                if err != nil {
                    logger.Info("解析yolo数据时出现错误", err)
                    continue
                }
                var yoloNum int = 0
                for i := 0; i < len(yoloParam.Infos); i++ {
                    if yoloParam.Infos[i].Typ == 0 {
                        yoloNum++
                    }
                }
                if TrackPond[msg.Cid] != nil {
                    logger.Info("================追踪之前yolo的个数:", yoloNum, "现在缓存池中记录的个数:", TrackPond[msg.Cid].Yolo)
                } else {
                    logger.Info("================追踪之前yolo的个数:", yoloNum, "还没有这个摄像机的缓存")
                }
                if yoloParam.Infos != nil && TrackPond[msg.Cid] != nil && yoloNum == TrackPond[msg.Cid].Yolo { // yolo的如果数量相同则视为不变、把yolo的sdkData清空
                    yoloParam.Infos = (yoloParam.Infos)[0:0]
                    sdkinfo.Sdkdata, err = proto.Marshal(&yoloParam)
                    if err != nil {
                        logger.Error("yolo序列化错误", err)
                    }
                    logger.Info("跟之前相同,清空yolo数据")
                } else {
                    if TrackPond[msg.Cid] != nil {
                        logger.Info("更新当前摄像机缓存池中的yolo个数:", yoloNum)
                        TrackPond[msg.Cid].Yolo = yoloNum
                    } else {
                        logger.Info("新建当前摄像机缓存池中的yolo个数:", yoloNum)
                        TrackPond[msg.Cid] = &PersonTrack{Yolo: yoloNum}
                    }
                }
            } else {
                if TrackPond[msg.Cid] != nil {
                    TrackPond[msg.Cid].Yolo = 0
                } else {
                    TrackPond[msg.Cid] = &PersonTrack{Yolo: 0}
                }
                logger.Info("摄像机:" + msg.Cid + "-没有yolo,被重置为0")
                continue
            }
        }
        //if sdkinfo.Sdktype == "Yolo" {
        //            if len(sdkinfo.Sdkdata) > 1 {
        //                yoloParam := protomsg.ParamYoloObj{}
        //                err := proto.Unmarshal(sdkinfo.Sdkdata, &yoloParam)
        //                if err != nil {
        //                    logger.Info("解析yolo数据时出现错误", err)
        //                    continue
        //                }
        //                var yoloNum int = 0
        //                for i := 0; i < len(yoloParam.Infos); i++ {
        //                    if yoloParam.Infos[i].Typ == 0 {
        //                        yoloNum++
        //                    }
        //                }
        //                if TrackPond[msg.Cid] != nil {
        //                    logger.Info("================追踪之前yolo的个数:", yoloNum, "现在缓存池中记录的个数:", TrackPond[msg.Cid].Yolo)
        //                } else {
        //                    logger.Info("================追踪之前yolo的个数:", yoloNum, "还没有这个摄像机的缓存")
        //                }
        //                if yoloParam.Infos != nil && TrackPond[msg.Cid] != nil && yoloNum == TrackPond[msg.Cid].Yolo { // yolo的如果数量相同则视为不变、把yolo的sdkData清空
        //                    yoloParam.Infos = (yoloParam.Infos)[0:0]
        //                    sdkinfo.Sdkdata, err = proto.Marshal(&yoloParam)
        //                    if err != nil {
        //                        logger.Error("yolo序列化错误", err)
        //                    }
        //                    logger.Info("跟之前相同,清空yolo数据")
        //                } else {
        //                    if TrackPond[msg.Cid] != nil {
        //                        logger.Info("更新当前摄像机缓存池中的yolo个数:", yoloNum)
        //                        TrackPond[msg.Cid].Yolo = yoloNum
        //                    } else {
        //                        logger.Info("新建当前摄像机缓存池中的yolo个数:", yoloNum)
        //                        TrackPond[msg.Cid] = &PersonTrack{Yolo: yoloNum}
        //                    }
        //                }
        //            } else {
        //                if TrackPond[msg.Cid] != nil {
        //                    TrackPond[msg.Cid].Yolo = 0
        //                } else {
        //                    TrackPond[msg.Cid] = &PersonTrack{Yolo: 0}
        //                }
        //                logger.Info("摄像机:" + msg.Cid + "-没有yolo,被重置为0")
        //                continue
        //    }
        //}
    }
    logger.Debug("---------------------------------------追踪结束--------------------------------------")
}