private void Add_Click(object sender, EventArgs e)
        {
            EditCamera form = new EditCamera();
            var result = form.ShowDialog(this);
            if (result != DialogResult.OK) return;

            try
            {
                var cam = new CameraInfo();
                cam.Description = "";
                cam.Id = form.CameraId;
                cam.Location = new Uri(form.Url);
                cam.Provider = form.CameraType;

                this.Presenter.AddCamera(cam);

            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);

            }
        }
 public void DeleteCamera(CameraInfo camera)
 {
     this.objContainer.Delete(camera);
     this.objContainer.Commit();
 }
 public void AddCamera(CameraInfo camera)
 {
     UpdateCamera(camera);
 }
        public void UpdateCamera(CameraInfo camera)
        {
            this.objContainer.Store(camera);
            this.objContainer.Commit();

            InvokeConfigurationChanged();
        }
        private void StartCameraInternal(CameraInfo cam)
        {
            System.Threading.WaitCallback action = delegate
            {
                try
                {
                    if (cam.Provider == CameraProvider.Sanyo)
                    {
                        this._mainForm.StartRecord(cam);
                    }

                }
                catch (System.Net.WebException ex)
                {
                    var msg = string.Format("无法连接 {0}", cam.Location.Host);
                    _mainForm.ShowMessage(msg);
                }

            };
            System.Threading.ThreadPool.QueueUserWorkItem(action);
        }
 public void DeleteCamera(CameraInfo cam)
 {
     this.manager.DeleteCamera(cam);
     this.form.cameraConfigurer1.Cameras = this.manager.GetCameras();
 }
 public void AddCamera(CameraInfo cam)
 {
     this.manager.AddCamera(cam);
     this.form.cameraConfigurer2.Cameras = this.manager.GetCameras();
 }
        private static FoKoShVideoSourceAdapter CreateAipCamera(CameraInfo cameraInfo, IntPtr hwnd)
        {
            var c = new FoKoShVideoSourceAdapter(hwnd);
            c.Camera.Ip = cameraInfo.Location.Host;
            c.Camera.Port = 6002;
            c.Camera.UserName = cameraInfo.LoginUserName ?? "system";
            c.Camera.Password = cameraInfo.LoginPassword ?? "system";
            c.FrameInterval = cameraInfo.Interval;

            return c;
        }
        public void StartWith(CameraInfo cameraInfo, System.Windows.Forms.Control displayControl)
        {
            _displayControl = displayControl;

            if (_jpegStream == null)
            {
                switch (cameraInfo.Provider)
                {
                    case CameraProvider.LocalDirectory:
                        var dir = new Damany.Cameras.DirectoryFilesCamera(cameraInfo.Location.LocalPath, "*.*");
                        dir.Repeat = false;
                        dir.FrameIntervalMs = cameraInfo.Interval;

                        _jpegStream = dir;
                        break;

                    case CameraProvider.Sanyo:
                        var sanyo = new JPEGExtendStream(cameraInfo.Location.ToString());
                        sanyo.Login = cameraInfo.LoginUserName ?? "guest";
                        sanyo.Password = cameraInfo.LoginPassword ?? "guest";
                        sanyo.FrameInterval = cameraInfo.Interval;

                        sanyo.RequireCookie = cameraInfo.Provider == CameraProvider.Sanyo;
                        _portraitFinder.PostFilters = _facePostFilters;

                        _jpegStream = sanyo;
                        break;
                    case CameraProvider.AipStar:

                        var hwnd = displayControl != null ? displayControl.Handle : IntPtr.Zero;
                        var aip = CreateAipCamera(cameraInfo, hwnd);
                        aip.Camera.StreamId = 0;

                        Mediator.Instance.RegisterHandler(
                            "liveViewResize", new Action<object>(LiveViewResized));
                        _jpegStream = aip;

                        if (displayControl != null)
                        {
                            //aip.Camera.DisplayPos = displayControl.ClientRectangle;
                        }

                        var videoRecorder = CreateAipCamera(cameraInfo, IntPtr.Zero);
                        videoRecorder.Camera.PathFunc = d =>
                                                            {
                                                                var utc = d.ToUniversalTime();
                                                                var rp = string.Format(
                                                                    "{0:d2}\\NORMAL\\{1:d4}{2:d2}{3:d2}\\{4:d2}\\{5:d2}.m4v",
                                                                    cameraInfo.Id,
                                                                    utc.Year, utc.Month, utc.Day, utc.Hour, utc.Minute);

                                                                var ap = Path.Combine(Util.GetVideoOutputPath(), rp);
                                                                var directory = Path.GetDirectoryName(ap);
                                                                if (!Directory.Exists(directory))
                                                                {
                                                                    Directory.CreateDirectory(directory);
                                                                }

                                                                return ap;
                                                            };
                        videoRecorder.Camera.StreamId = 1;
                        videoRecorder.Start();
                        videoRecorder.Camera.StartRecord();

                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                }

                _cameraInfo = cameraInfo;

                _jpegStream.NewFrame += JpegStreamNewFrame;
                _jpegStream.Start();

                if (_faceSearchTask == null)
                {
                    _faceSearchTask =
                        Task.Factory.StartNew(
                            FaceSearchWorkerThread,
                            _tokenSource.Token,
                            TaskCreationOptions.LongRunning,
                            TaskScheduler.Default
                            );
                }

                _faceComparer.InitializeAsync();
                _faceComparer.Start();

                _faceComparer.Threshold = Properties.Settings.Default.RealTimeFaceCompareSensitivity;
                _faceComparer.Sensitivity = Properties.Settings.Default.LbpThreshold;

            }
        }
        private void SendCommand(IEnumerable<INavigationCommand> commands)
        {
            var cam = _screen.SelectedCamera();
            CurrentCamera = cam;
            commands.AddressTo((byte)cam.YunTaiId);
            var buffer = commands.Build();

            var stream = _connectionManager.GetConnection(cam.YunTaiUri);
            stream.Write(buffer, 0, buffer.Length);
        }
        public void StartWith(CameraInfo cameraInfo, System.Windows.Forms.Control displayControl)
        {
            _displayControl = displayControl;

            if (_jpegStream == null)
            {
                switch (cameraInfo.Provider)
                {
                case CameraProvider.LocalDirectory:
                    var dir = new Damany.Cameras.DirectoryFilesCamera(cameraInfo.Location.LocalPath, "*.*");
                    dir.Repeat          = false;
                    dir.FrameIntervalMs = cameraInfo.Interval;

                    _jpegStream = dir;
                    break;

                case CameraProvider.Sanyo:
                    var sanyo = new JPEGExtendStream(cameraInfo.Location.ToString());
                    sanyo.Login         = cameraInfo.LoginUserName ?? "guest";
                    sanyo.Password      = cameraInfo.LoginPassword ?? "guest";
                    sanyo.FrameInterval = cameraInfo.Interval;

                    sanyo.RequireCookie         = cameraInfo.Provider == CameraProvider.Sanyo;
                    _portraitFinder.PostFilters = _facePostFilters;

                    _jpegStream = sanyo;
                    break;

                case CameraProvider.AipStar:

                    var hwnd = displayControl != null ? displayControl.Handle : IntPtr.Zero;
                    var aip  = CreateAipCamera(cameraInfo, hwnd);
                    aip.Camera.StreamId = 0;


                    Mediator.Instance.RegisterHandler(
                        "liveViewResize", new Action <object>(LiveViewResized));
                    _jpegStream = aip;

                    if (displayControl != null)
                    {
                        //aip.Camera.DisplayPos = displayControl.ClientRectangle;
                    }

                    var videoRecorder = CreateAipCamera(cameraInfo, IntPtr.Zero);
                    videoRecorder.Camera.PathFunc = d =>
                    {
                        var utc = d.ToUniversalTime();
                        var rp  = string.Format(
                            "{0:d2}\\NORMAL\\{1:d4}{2:d2}{3:d2}\\{4:d2}\\{5:d2}.m4v",
                            cameraInfo.Id,
                            utc.Year, utc.Month, utc.Day, utc.Hour, utc.Minute);

                        var ap        = Path.Combine(Util.GetVideoOutputPath(), rp);
                        var directory = Path.GetDirectoryName(ap);
                        if (!Directory.Exists(directory))
                        {
                            Directory.CreateDirectory(directory);
                        }

                        return(ap);
                    };
                    videoRecorder.Camera.StreamId = 1;
                    videoRecorder.Start();
                    videoRecorder.Camera.StartRecord();

                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                _cameraInfo = cameraInfo;

                _jpegStream.NewFrame += JpegStreamNewFrame;
                _jpegStream.Start();



                if (_faceSearchTask == null)
                {
                    _faceSearchTask =
                        Task.Factory.StartNew(
                            FaceSearchWorkerThread,
                            _tokenSource.Token,
                            TaskCreationOptions.LongRunning,
                            TaskScheduler.Default
                            );
                }



                _faceComparer.InitializeAsync();
                _faceComparer.Start();

                _faceComparer.Threshold   = Properties.Settings.Default.RealTimeFaceCompareSensitivity;
                _faceComparer.Sensitivity = Properties.Settings.Default.LbpThreshold;
            }
        }
Beispiel #12
0
 private void cameraTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
 {
     if (e.Node.Parent != null)
     {
         CurrentCamera = e.Node.Tag as CameraInfo;
         _navController.CurrentCamera = CurrentCamera;
         //  MessageBox.Show(CurrentCamera.Location.ToString() + " " + CurrentCamera.Name);
     }
 }
Beispiel #13
0
        public void StartRecord(CameraInfo cam)
        {
            var axCamImgCtrl = this.axCamImgCtrl1;

            if (InvokeRequired)
            {
                Action<CameraInfo, AxIMGCTRLLib.AxCamImgCtrl> action = StartRecordInternal;

                this.BeginInvoke(action, cam, axCamImgCtrl);
                return;
            }

            StartRecordInternal(cam, axCamImgCtrl);
        }
Beispiel #14
0
        private void StartRecordInternal(CameraInfo cam, AxIMGCTRLLib.AxCamImgCtrl axCamImgCtrl)
        {
            axCamImgCtrl.CamImgCtrlStop();

            System.Diagnostics.Debug.WriteLine(axCamImgCtrl.Tag);

            axCamImgCtrl.ImageFileURL = @"liveimg.cgi";
            axCamImgCtrl.ImageType = @"MPEG";
            axCamImgCtrl.CameraModel = 1;
            axCamImgCtrl.CtlLocation = @"http://" + cam.Location.Host;
            axCamImgCtrl.uid = "guest";
            axCamImgCtrl.pwd = "guest";
            axCamImgCtrl.RecordingFolderPath
                = Path.Combine(Util.GetVideoOutputPath(), cam.Id.ToString("D2"));
            axCamImgCtrl.RecordingFormat = 0;
            axCamImgCtrl.UniIP = this.axCamImgCtrl1.CtlLocation;
            axCamImgCtrl.UnicastPort = 3939;
            axCamImgCtrl.MulticastPort = 34344;
            axCamImgCtrl.MCIP = "239.136.50.230";
            axCamImgCtrl.ComType = Properties.Settings.Default.SanyoCommType; //multi:1, udp:2, http:0

            if (Properties.Settings.Default.Live)
            {
                axCamImgCtrl.CamImgCtrlStart();
                axCamImgCtrl.CamImgRecStart();

            }
        }