Beispiel #1
0
        private void _info_RealtimeInfoEvent(VideoParser.Camera camera, VideoParser.GPS gps)
        {
            CCTVDynamicInfo dynamicInfo = getCameraInfo(camera);

            if (dynamicInfo == null)
            {
                dynamicInfo = getGpsInfo(gps);
            }
            if (dynamicInfo != null)
            {
                ObjectItem <CCTVDynamicInfo> item = new ObjectItem <CCTVDynamicInfo>()
                {
                    Key       = dynamicInfo.VideoId,
                    IsDeleted = false,
                    Item      = dynamicInfo,
                };
                _dynamicItemList.Add(item);
                if (DateTime.Now - _lastUpdateTime > TimeSpan.FromSeconds(0.5))
                {
                    _lastUpdateTime = DateTime.Now;
                    _dynamicSync.PutUpdate(_dynamicItemList);
                    _dynamicItemList.Clear();
                }
            }
        }
 // POST: api/Dynamic
 public void Post([FromBody] CCTVDynamicInfo info)
 {
     if (info == null)
     {
         throw new HttpRequestException("动态信息内容不能为空。");
     }
     if (string.IsNullOrWhiteSpace(info.VideoId))
     {
         info.VideoId = Guid.NewGuid().ToString();
     }
     DynamicPersistence.Instance.Put(info.VideoId, info);
 }
Beispiel #3
0
        CCTVDynamicInfo getGpsInfo(VideoParser.GPS gps)
        {
            if (gps != null)
            {
                CCTVDynamicInfo dynamicInfo = getDynamicInfo(getNodeId(gps.Id));
                dynamicInfo.Latitude  = gps.Latitude;
                dynamicInfo.Longitude = gps.Longitude;
                dynamicInfo.SOG       = gps.SOG;
                dynamicInfo.COG       = gps.COG;
                return(dynamicInfo);
            }

            return(null);
        }
Beispiel #4
0
        CCTVDynamicInfo getCameraInfo(VideoParser.Camera camera)
        {
            if (camera != null)
            {
                CCTVDynamicInfo dynamicInfo = getDynamicInfo(getNodeId(camera.Id));
                dynamicInfo.Heading = camera.Pointing.Pan;
                dynamicInfo.Tilt    = camera.Pointing.Tilt;
                CCTVStaticInfo   staticInfo;
                CCTVCameraLimits cLimits;
                if (_staticSync.TryGetValue(dynamicInfo.VideoId, out staticInfo) && _cameraSync.TryGetValue(dynamicInfo.VideoId, out cLimits))
                {
                    double zoom = Math.Min(1, Math.Max(0, camera.Zoom));
                    dynamicInfo.ViewPort = (1 - zoom) * (cLimits.MaxViewPort - cLimits.MinViewPort) + cLimits.MinViewPort;
                }
                return(dynamicInfo);
            }

            return(null);
        }
 public void PutDynamicInfo(CCTVDynamicInfo info, bool isDeleted)
 {
     PutDefaultInfo(CCTVInfoType.DynamicInfo, info.VideoId, info, isDeleted);
 }