private void SeletorKinect_KinectChanged(object sender, KinectChangedEventArgs kinectArgs)
        {
            if (kinectArgs.OldSensor != null)
            {
                try
                {
                    if (kinectArgs.OldSensor.DepthStream.IsEnabled)
                        kinectArgs.OldSensor.DepthStream.Disable();

                    if (kinectArgs.OldSensor.SkeletonStream.IsEnabled)
                        kinectArgs.OldSensor.SkeletonStream.Disable();

                    if (kinectArgs.OldSensor.ColorStream.IsEnabled)
                        kinectArgs.OldSensor.ColorStream.Disable();
                }
                catch (InvalidOperationException)
                {
                    // Captura exceção caso o KinectSensor entre em um estado inválido durante a desabilitação de um fluxo.
                }
            }

            if (kinectArgs.NewSensor != null)
            {
                if (MetodoInicializadorKinect != null)
                    MetodoInicializadorKinect(SeletorKinect.Kinect);
            }

        }
Exemple #2
0
        private void SensorChooserOnKinectChanged(object sender, KinectChangedEventArgs args)
        {
                       
            MessageBox.Show(args.NewSensor == null ? "No Kinect" : args.NewSensor.Status.ToString());
           
 
        }
Exemple #3
0
        void myChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (null != e.OldSensor)
            {
                //Alten Kinect deaktivieren
                if (mySensor != null)
                {
                    mySensor.Dispose();
                }
            }

            if (null != e.NewSensor)
            {
                mySensor = e.NewSensor;
                mySensor.ColorStream.Enable(ColorImageFormat.InfraredResolution640x480Fps30);
                myColorArray = new byte[this.mySensor.ColorStream.FramePixelDataLength];
                myBitmap = new WriteableBitmap(this.mySensor.DepthStream.FrameWidth, this.mySensor.DepthStream.FrameHeight, 96.0, 96.0, PixelFormats.Gray16, null);
                image1.Source = myBitmap;
                mySensor.AllFramesReady += new EventHandler<AllFramesReadyEventArgs>(mySensor_AllFramesReady);
                try
                {
                    this.mySensor.Start();
                    SensorChooserUI.Visibility = Visibility.Hidden;
                }
                catch (IOException)
                {
                    this.mySensor = null;
                }
            }
        }
Exemple #4
0
        private static void ChooserSensorChanged(object sender, KinectChangedEventArgs e)
        {
            //As of 6/12/2013 @ 10:30AM, the program never enters here

            var old = e.OldSensor;
            StopKinect(old);

            var newsensor = e.NewSensor;
            if (newsensor == null)
            {
                return;
            }

            newsensor.SkeletonStream.Enable();
            //newsensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
            //newsensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
            newsensor.AllFramesReady += SensorAllFramesReady;

            try
            {
                newsensor.Start();
            }
            catch (System.IO.IOException)
            {
                //maybe another app is using Kinect
                _chooser.TryResolveConflict();
            }
        }
        void sensorChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (e.OldSensor != null)
            {
                e.OldSensor.Stop();
            }
            if (e.NewSensor != null)
            {
                e.NewSensor.ColorStream.Enable();
                e.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);

                //var parameters = new TransformSmoothParameters
                //{
                //    Smoothing = 0.3f,
                //    Correction = 0.0f,
                //    Prediction = 0.0f,
                //    JitterRadius = 1.0f,
                //    MaxDeviationRadius = 0.5f
                //};

                //e.NewSensor.SkeletonStream.Enable(parameters);
                e.NewSensor.SkeletonStream.Enable();
                e.NewSensor.DepthStream.Range = DepthRange.Near;
                e.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                e.NewSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
                e.NewSensor.AllFramesReady += NewSensor_AllFramesReady;
                _colorBitmap = Coding4Fun.Kinect.Wpf.WriteableBitmapHelper.CreateWriteableBitmap(e.NewSensor.ColorStream);
                _image1.Source = _colorBitmap; 
            }
        }
Exemple #6
0
        void myChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (null != e.OldSensor)
            {
                //Alten Kinect deaktivieren
                if (mySensor != null)
                {
                    mySensor.Dispose();
                }
            }

            if (null != e.NewSensor)
            {
                mySensor = e.NewSensor;
                mySensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                myDArray1 = new short[this.mySensor.DepthStream.FramePixelDataLength];
                myDArray2 = new short[this.mySensor.DepthStream.FramePixelDataLength];
                myDArray3 = new short[this.mySensor.DepthStream.FramePixelDataLength];
                myHistoArray = new int[50];
                myFinalArray = new short[this.mySensor.DepthStream.FramePixelDataLength];

                mySensor.AllFramesReady += new EventHandler<AllFramesReadyEventArgs>(mySensor_AllFramesReady);
                try
                {
                    this.mySensor.Start();
                    SensorChooserUI.Visibility = Visibility.Hidden;
                }
                catch (IOException)
                {
                    this.mySensor = null;
                }
            }
        }
Exemple #7
0
        void myChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (null != e.OldSensor)
            {
                //Alten Kinect deaktivieren
                if (mySensor != null)
                {
                    mySensor.Dispose();
                }
            }

            if (null != e.NewSensor)
            {
                mySensor = e.NewSensor;
                mySensor.AudioSource.Start();
                mySensor.AudioSource.BeamAngleChanged += new EventHandler<BeamAngleChangedEventArgs>(AudioSource_BeamAngleChanged);
                mySensor.AudioSource.SoundSourceAngleChanged += new EventHandler<SoundSourceAngleChangedEventArgs>(AudioSource_SoundSourceAngleChanged);
                myBitmap = new WriteableBitmap(640,480, 96.0, 96.0, PixelFormats.Pbgra32, null);
                image1.Source = myBitmap;
                try
                {
                    this.mySensor.Start();
                    SensorChooserUI.Visibility = Visibility.Hidden;
                }
                catch (IOException)
                {
                    this.mySensor = null;
                }
            }
        }
        private void SeletorKinect_KinectChanged(object sender, KinectChangedEventArgs kinectArgs)
        {

            if (kinectArgs.OldSensor != null)
            {
                try
                {
                    if (kinectArgs.OldSensor.DepthStream.IsEnabled)
                        kinectArgs.OldSensor.DepthStream.Disable();

                    if (kinectArgs.OldSensor.SkeletonStream.IsEnabled)
                        kinectArgs.OldSensor.SkeletonStream.Disable();

                    if (kinectArgs.OldSensor.ColorStream.IsEnabled)
                        kinectArgs.OldSensor.ColorStream.Disable();

                }
                catch (InvalidOperationException)
                {
                    //captura exceção em algum dos fluxos caso entre em estado inválido
                }
            }

            if (kinectArgs.NewSensor != null)
            {
                if (MetodoInicializadorKinect != null)
                    MetodoInicializadorKinect(SeletorKinect.Kinect);
            }

        }
Exemple #9
0
        void ChooserSensorChanged(object sender, KinectChangedEventArgs e)
        {
            var old = e.OldSensor;
            StopKinect(old);

            var newsensor = e.NewSensor;
            if (newsensor == null)
            {
                return;
            }

            newsensor.SkeletonStream.Enable();
            newsensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
            newsensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
            newsensor.AllFramesReady += SensorAllFramesReady;

            try
            {
                newsensor.Start();
                rtbMessages.Text = "Kinect Started" + "\r";
            }
            catch (System.IO.IOException)
            {
                rtbMessages.Text = "Kinect Not Started" + "\r";
                //maybe another app is using Kinect
                _chooser.TryResolveConflict();
            }
        }
Exemple #10
0
        public void OnKinectSensorChanged(object sender, KinectChangedEventArgs args)
        {
            if (null == args)
            {
                throw new ArgumentNullException("args");
            }

            if (null != args.OldSensor)
            {
                args.OldSensor.ColorFrameReady -= this.ColorImageReady;

            }

            if ((null != args.NewSensor) && (KinectStatus.Connected == args.NewSensor.Status))
            {
                if (ColorImageFormat.RawYuvResolution640x480Fps15 == args.NewSensor.ColorStream.Format)
                {
                    throw new NotImplementedException("RawYuv conversion is not yet implemented.");
                }
                else
                {
                    args.NewSensor.ColorFrameReady += this.ColorImageReady;
                }
            }
        }
Exemple #11
0
        /* This function is used to stop any previous instances of a running kinect sensor
         * and starts a new reference under the name NewSensor.
         * if a kinect sensor is connected to the PC then its depth stream is enabled
         * to receive the depth data and the sensor is started. Exceptions may occur
         * during the process of starting the sensor which is taken care of in the try-
         * catch block.
         */ 

        void chooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            KinectSensor oldSensor = (KinectSensor)e.OldSensor;
            //Get reference to any old sensor
            StopKinect(oldSensor);
            //Stop the previous instances if any
            KinectSensor newSensor = (KinectSensor)e.NewSensor;
            //Get a reference to a new (latest) kinect sensor
            if (newSensor == null)
            {
                //If no kinect sensor is connected simply return
                return;
            }
            //If a kinect sensor is attached then ...
            newSensor.DepthStream.Enable(DepthImageFormat.Resolution320x240Fps30);
            //Enable the depth stream to recerive depth data of the frame of resolution 320 x 240
            newSensor.AllFramesReady += newSensor_AllFramesReady;
            //Initializing the AllFramesReady event
            try
            {
                newSensor.Start();
                //Start the kinect sensor
            }
            catch (System.IO.IOException)
            {
                //Some other application is streaming from the same Kinect sensor
                chooser.TryResolveConflict();
                //Allow chooser to resolve conflict if any
            }
        }
Exemple #12
0
        void myChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (null != e.OldSensor)
            {
                //Alten Kinect deaktivieren
                if (mySensor != null)
                {
                    mySensor.Dispose();
                }
            }

            if (null != e.NewSensor)
            {
                mySensor = e.NewSensor;
                mySensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                myArray = new short[this.mySensor.DepthStream.FramePixelDataLength];
                myBitmap = new WriteableBitmap(this.mySensor.DepthStream.FrameWidth, this.mySensor.DepthStream.FrameHeight, 96.0, 96.0, PixelFormats.Gray16, null);
                image1.Source = myBitmap;
                mySensor.DepthFrameReady += this.SensorDepthFrameReady;
                try
                {
                    this.mySensor.Start();
                    //SensorChooserUI.Visibility = Visibility.Hidden;
                }
                catch (IOException)
                {
                    this.mySensor = null;
                }
            }
        }
Exemple #13
0
        void myChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (null != e.OldSensor)
            {
                //Alten Kinect deaktivieren
                if (mySensor != null)
                {
                    mySensor.Dispose();
                }
            }

            if (null != e.NewSensor)
            {

            RecognizerInfo ri = GetKinectRecognizer();
            mySensor = e.NewSensor;
            if (null != ri)
            {
                myEngine = new SpeechRecognitionEngine(ri.Id);

                using (var memoryStream = new MemoryStream(Encoding.ASCII.GetBytes(Properties.Resources.Grammar)))
                {
                    var g = new Grammar(memoryStream);
                    myEngine.LoadGrammar(g);
                }

                myEngine.SpeechRecognized+=new EventHandler<SpeechRecognizedEventArgs>(myEngine_SpeechRecognized);
                myEngine.SpeechRecognitionRejected+=new EventHandler<SpeechRecognitionRejectedEventArgs>(myEngine_SpeechRecognitionRejected);

                myEngine.SetInputToAudioStream(mySensor.AudioSource.Start(), new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));
                myEngine.RecognizeAsync(RecognizeMode.Multiple);
            }
            }
        }
        private void SensorChooserOnKinectChanged(object sender, KinectChangedEventArgs args)
        {
            bool error = false;
            if (args.OldSensor != null)
            {
                try
                {
                    args.OldSensor.DepthStream.Range = DepthRange.Default;
                    args.OldSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    args.OldSensor.DepthStream.Disable();
                    args.OldSensor.SkeletonStream.Disable();
                }
                catch (InvalidOperationException)
                {
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                    error = true;
                }
            }

            if (args.NewSensor != null)
            {
                try
                {
                    args.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                    args.NewSensor.SkeletonStream.Enable();

                    try
                    {
                        args.NewSensor.DepthStream.Range = DepthRange.Near;
                        args.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                        args.NewSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
                    }
                    catch (InvalidOperationException)
                    {
                        // Non Kinect for Windows devices do not support Near mode, so reset back to default mode.
                        args.NewSensor.DepthStream.Range = DepthRange.Default;
                        args.NewSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    }
                }
                catch (InvalidOperationException)
                {
                    error = true;
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
                try
                {
                    if (!error)
                        kinectRegion1.KinectSensor = args.NewSensor;
                }
                catch (Exception)
                {

                    throw;
                }

            }
        }
        private void SensorChooserOnKinectChanged(object sender, KinectChangedEventArgs kinectChangedEventArgs)
        {
            Trace.WriteLine("kinect changed!");
            KinectSensor oldSensor = kinectChangedEventArgs.OldSensor;
            KinectSensor newSensor = kinectChangedEventArgs.NewSensor;

            if (oldSensor != null)
            {
                Trace.WriteLine("old sensor");
                oldSensor.AllFramesReady -= KinectSensorOnAllFramesReady;
                oldSensor.ColorStream.Disable();
                oldSensor.DepthStream.Disable();
                oldSensor.DepthStream.Range = DepthRange.Default;
                oldSensor.SkeletonStream.Disable();
                oldSensor.SkeletonStream.EnableTrackingInNearRange = false;
                oldSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Default;
            }

            if (newSensor != null)
            {
                try
                {
                    newSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
                    newSensor.DepthStream.Enable(DepthImageFormat.Resolution320x240Fps30);
                    try
                    {
                        // This will throw on non Kinect For Windows devices.
                        newSensor.DepthStream.Range = DepthRange.Near;
                        newSensor.SkeletonStream.EnableTrackingInNearRange = true;
                    }
                    catch (InvalidOperationException)
                    {
                        newSensor.DepthStream.Range = DepthRange.Default;
                        newSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    }

                    newSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
                    Trace.WriteLine("before enable");
                    newSensor.SkeletonStream.Enable();
                    Trace.WriteLine("after enable");
                    
                    newSensor.AllFramesReady += KinectSensorOnAllFramesReady;
                }
                catch (InvalidOperationException)
                {
                    // This exception can be thrown when we are trying to
                    // enable streams on a device that has gone away.  This
                    // can occur, say, in app shutdown scenarios when the sensor
                    // goes away between the time it changed status and the
                    // time we get the sensor changed notification.
                    //
                    // Behavior here is to just eat the exception and assume
                    // another notification will come along if a sensor
                    // comes back.
                }
            }
        }
        void KinectSensor_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            bool error = true;

            if (e.OldSensor == null)
            {
                try
                {
                    e.OldSensor.DepthStream.Disable();
                    e.OldSensor.SkeletonStream.Disable();
                }
                catch (Exception)
                {
                    error = true;
                }
            }

            if (e.NewSensor == null)
                return;

            try
            {
                Kinect = e.NewSensor;
                e.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                e.NewSensor.SkeletonStream.Enable();
                e.NewSensor.SkeletonFrameReady += KinectSensor_SkeletonFrameReady;


                try
                {
                    e.NewSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
                    e.NewSensor.DepthStream.Range = DepthRange.Near;
                    e.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                }
                catch (InvalidOperationException)
                {
                    e.NewSensor.DepthStream.Range = DepthRange.Default;
                    e.NewSensor.SkeletonStream.EnableTrackingInNearRange = false;
                }
            }
            catch (InvalidOperationException)
            {
                error = true;
            }

            ZonaCursor.KinectSensor = e.NewSensor;
            KinectRegion.AddHandPointerGripHandler(this.ZonaCursor, this.OnHandGripHandler);
            KinectRegion.AddHandPointerGripReleaseHandler(this.ZonaCursor, this.OngRripReleaseHandler);
            KinectRegion.AddHandPointerMoveHandler(this.ZonaCursor, this.OnMoveHandler);
            KinectRegion.AddHandPointerPressHandler(this.ZonaCursor, this.OnPressHandler);
            KinectRegion.AddHandPointerPressReleaseHandler(this.ZonaCursor, this.OnPressRelaaseHandler);

        }
 void sensorChooser_KinectChanged(object sender, KinectChangedEventArgs e)
 {
     try
     {
         this.UninitializeSensor(e.OldSensor);
         this.InitializeSensor(e.NewSensor);
     }
     catch (InvalidOperationException)
     {
         // cos zle z sensorem
     }
 }
Exemple #18
0
        void _sensorChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (e.OldSensor != null)
            {
                e.OldSensor.Stop();
                e.OldSensor.AllFramesReady -= this._sensor_AllFramesReady;
            }
            if (e.NewSensor != null)
            {
                #region Setup Kinect Sensor
                _sensor = e.NewSensor;

                //map points
                _mapper = new CoordinateMapper(_sensor);

                // create color data bitmaps and arrays
                _colorData = new byte[_sensor.ColorStream.FramePixelDataLength];
                _colorWriteableBitmap = new WriteableBitmap(_sensor.ColorStream.FrameWidth, _sensor.ColorStream.FrameHeight, 96.0, 96.0, PixelFormats.Bgr32, null);

                // create the skeleton arrays
                _skeletons = new Skeleton[_sensor.SkeletonStream.FrameSkeletonArrayLength];

                // Assign the writeable bitmap to the WPF color image display
                ColorImage.Source = _colorWriteableBitmap;

                // enable color, depth, skeleton
                _sensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
                _sensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);

                try
                {
                    _sensor.DepthStream.Range = DepthRange.Near;
                }
                catch
                {
                    // Kinect for Xbox, doesn't support this.
                }

                _sensor.SkeletonStream.Enable();
                _sensor.SkeletonStream.EnableTrackingInNearRange = true;
                _sensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;

                // hook up our event
                _sensor.AllFramesReady += _sensor_AllFramesReady; 
                #endregion

                //System.Drawing.Bitmap and the OpenCvImage
                _drawingBitmap = new Bitmap(_sensor.ColorStream.FrameWidth, _sensor.ColorStream.FrameHeight, PixelFormat.Format32bppRgb);
                _ocvColorImg = new Image<Bgra, byte>(_drawingBitmap); 


            }
        }
        void _sensorChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (e.OldSensor != null)
            {
                try
                {
                    e.OldSensor.DepthStream.Range = DepthRange.Default;
                    e.OldSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    e.OldSensor.DepthStream.Disable();
                    e.OldSensor.SkeletonStream.Disable();
                    e.OldSensor.ColorStream.Disable();
                    e.OldSensor.Stop();
                }
                catch (InvalidOperationException)
                {
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
            }

            if (e.NewSensor != null)
            {
                try
                {
                    e.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                    e.NewSensor.SkeletonStream.Enable();
                    //e.NewSensor.ColorStream.Enable();

                    try
                    {
                        e.NewSensor.DepthStream.Range = DepthRange.Near;
                        e.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                        e.NewSensor.Start();
                        this.openGameWindow();
                    }
                    catch (InvalidOperationException)
                    {
                        // Non Kinect for Windows devices do not support Near mode, so reset back to default mode.
                        e.NewSensor.DepthStream.Range = DepthRange.Default;
                        e.NewSensor.SkeletonStream.EnableTrackingInNearRange = false;
                        e.NewSensor.Start();
                        this.openGameWindow();
                    }
                }
                catch (InvalidOperationException)
                {
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
            }
            //throw new NotImplementedException();
        }
        private void SensorChooserOnKinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (e.OldSensor != null)
            {
                try
                {
                    e.OldSensor.DepthStream.Range = DepthRange.Default;
                    e.OldSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    e.OldSensor.DepthStream.Disable();
                    e.OldSensor.SkeletonStream.Disable();
                }
                catch (InvalidOperationException)
                {
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
            }

            if (e.NewSensor != null)
            {
                try
                {
                    e.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                    e.NewSensor.SkeletonStream.Enable();

                    try
                    {
                        e.NewSensor.DepthStream.Range = DepthRange.Near;
                        e.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                        e.NewSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
                    }
                    catch (InvalidOperationException)
                    {
                        // Non Kinect for Windows devices do not support Near mode, so reset back to default mode.
                        e.NewSensor.DepthStream.Range = DepthRange.Default;
                        e.NewSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    }
                }
                catch (InvalidOperationException)
                {
                    //MessageBox.Show("Kinect Setup Error");
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
                if (e.NewSensor.Status == KinectStatus.Connected)
                {
                    KinectUserViewer.KinectSensor = e.NewSensor;
                    MyKinectRegion.KinectSensor = e.NewSensor;
                }
            }
        }
        private void SensorChooserOnKinectChanged(object sender, KinectChangedEventArgs args)
        {
            bool error = false;

            if (args.OldSensor != null)
            {
                try
                {
                    args.OldSensor.DepthStream.Range = DepthRange.Default;
                    args.OldSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    args.OldSensor.DepthStream.Disable();
                    args.OldSensor.SkeletonStream.Disable();

                }
                catch (InvalidOperationException)
                {
                    error = true;
                }
            }

            if (args.NewSensor != null)
            {
                try
                {
                    args.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                    args.NewSensor.SkeletonStream.Enable();

                    try
                    {
                        args.NewSensor.DepthStream.Range = DepthRange.Near;
                        args.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                    }
                    catch (InvalidOperationException)
                    {
                        args.NewSensor.DepthStream.Range = DepthRange.Default;
                        args.NewSensor.SkeletonStream.EnableTrackingInNearRange = false;
                        error = true;
                    }
                }
                catch (InvalidOperationException)
                {
                    error = true;
                }
            }

            if (!error)
            {
               kinectRegion.KinectSensor = args.NewSensor;
            }
        }
        private void SensorChooserOnKinectChanged(object sender, KinectChangedEventArgs args)
        {
            bool error = false;
            if (args.OldSensor != null)
            {
                try
                {
                    args.OldSensor.DepthStream.Range = DepthRange.Default;
                    args.OldSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    args.OldSensor.DepthStream.Disable();
                    args.OldSensor.SkeletonStream.Disable();
                }
                catch (InvalidOperationException)
                {
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                    error = true;
                }
            }

            if (args.NewSensor != null)
            {
                try
                {
                    args.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                    args.NewSensor.SkeletonStream.Enable();

                    //// Skeleton Stream
                    //kinectSensor.SkeletonStream.Enable(new TransformSmoothParameters()
                    //{
                    //    Smoothing = 0.5f,
                    //    Correction = 0.5f,
                    //    Prediction = 0.5f,
                    //    JitterRadius = 0.05f,
                    //    MaxDeviationRadius = 0.04f
                    //});
                    //args.NewSensor.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(kinectSensor_SkeletonFrameReady);
    
                }
                catch (InvalidOperationException)
                {
                    error = true;
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
            }

            if (!error)
                kinectRegion.KinectSensor = args.NewSensor;
        }
        private void SensorChooserOnKinectChanged(object sender, KinectChangedEventArgs kinectChangedEventArgs)
        {
            KinectSensor oldSensor = kinectChangedEventArgs.OldSensor;
            KinectSensor newSensor = kinectChangedEventArgs.NewSensor;

            if (oldSensor != null)
            {//controlamos que no hubiese un sensor ya conectado, para evitar que pete
                oldSensor.AllFramesReady -= KinectSensorOnAllFramesReady;
                oldSensor.ColorStream.Disable();
                oldSensor.DepthStream.Disable();
                oldSensor.DepthStream.Range = DepthRange.Default;
                oldSensor.SkeletonStream.Disable();
                oldSensor.SkeletonStream.EnableTrackingInNearRange = false;
                oldSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Default;
            }

            if (newSensor != null)
            {
                try
                {
                    //habilitamos strem de color i profundidad. El de color se puede hacer a menos profundidad
                    //pero perderíamos fps
                    newSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
                    newSensor.DepthStream.Enable(DepthImageFormat.Resolution320x240Fps30);
                    try
                    {
                        //hay dos tipos de dispositivos kinect:
                        //  - kinect for xbox (el típico y que yo he usado)
                        //  - kinect for windows (uno específico para aplicaciones que funcionen en windows)
                        //este código es para que funcionen ambos
                        newSensor.DepthStream.Range = DepthRange.Near;
                        newSensor.SkeletonStream.EnableTrackingInNearRange = true;
                    }
                    catch (InvalidOperationException)
                    {
                        newSensor.DepthStream.Range = DepthRange.Default;
                        newSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    }

                    //indicamos que hay que hacer un seguimiento del esqueleto teniendo en cuenta que estaremos sentados
                    newSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
                    newSensor.SkeletonStream.Enable();
                    newSensor.AllFramesReady += KinectSensorOnAllFramesReady;
                }
                catch (InvalidOperationException)
                {
                    // TODO
                }
            }
        }
        private void SensorChooserOnKinectChanged(object sender, KinectChangedEventArgs e)
        {
            sensor = e.NewSensor;
            sensor.Start();
            sensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
            sensor.SkeletonStream.Enable();
            sensor.DepthStream.Range = DepthRange.Near;
            sensor.SkeletonStream.EnableTrackingInNearRange = true;
            sensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
            kinectRegion.KinectSensor = sensor;

            //Lance la page principale...
            startProgram();
        }
        public void Config(object sender, KinectChangedEventArgs args)
        {
            bool error = false;

            if (args.OldSensor != null)
            {
                try
                {
                    args.OldSensor.DepthStream.Disable();
                    args.OldSensor.SkeletonStream.Disable();
                }
                catch (Exception e)
                {
                    error = true;
                }
            }

            if (args.NewSensor == null)
            {
                return;
            }

            try
            {
                args.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                args.NewSensor.SkeletonStream.Enable();
                try
                {
                    args.NewSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
                    args.NewSensor.DepthStream.Range = DepthRange.Near;
                    args.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                    args.NewSensor.SkeletonFrameReady += NewSensor_SkeletonFrameReady;
                }
                catch (InvalidOperationException)
                {
                    args.NewSensor.DepthStream.Range = DepthRange.Default;
                    args.NewSensor.SkeletonStream.EnableTrackingInNearRange = false;
                }
            }
            catch (InvalidOperationException)
            {
                error = true;
            }

            if (!error)
            {
                this.KinectRegion.KinectSensor = args.NewSensor;
            }
        }
Exemple #26
0
 void sensorChooser_KinectChanged(object sender, KinectChangedEventArgs e)
 {
     if (e.OldSensor != null)
     {
         e.OldSensor.Stop();
     }
     if (e.NewSensor != null)
     {
         e.NewSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30); 
         e.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
         e.NewSensor.SkeletonStream.Enable();
         e.NewSensor.DepthStream.Range = DepthRange.Near;
         e.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
     }
 }
Exemple #27
0
        void SensorChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            if (e.OldSensor != null)
            {
                try
                {
                    e.OldSensor.AllFramesReady -= Kinect_AllFramesReady;
                    e.OldSensor.ColorStream.Disable();
                    e.OldSensor.DepthStream.Disable();
                    e.OldSensor.SkeletonStream.Disable();
                }
                catch (InvalidOperationException)
                {
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
            }

            if (e.NewSensor != null)
            {
                try
                {
                    e.NewSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
                    e.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution320x240Fps30);
                    e.NewSensor.SkeletonStream.Enable();

                    try
                    {
                        e.NewSensor.DepthStream.Range = DepthRange.Near;
                        e.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                    }
                    catch (InvalidOperationException)
                    {
                        // Non Kinect for Windows devices do not support Near mode, so reset back to default mode.
                        e.NewSensor.DepthStream.Range = DepthRange.Default;
                        e.NewSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    }
                    e.NewSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;

                    e.NewSensor.AllFramesReady += Kinect_AllFramesReady;
                }
                catch (InvalidOperationException)
                {
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
            }
        }
        void KinectChanged(object sender, KinectChangedEventArgs args)
        {
            KinectInteractionsConfig interactionConfig = new KinectInteractionsConfig(KinectRegion, KinectUserViewer);

            interactionConfig.Config(sender, args);
            /**
            bool error = false;

            if (args.OldSensor != null)
            {
                try
                {
                    args.OldSensor.DepthStream.Disable();
                    args.OldSensor.SkeletonStream.Disable();
                }catch(Exception e){
                    error = true;
                }
            }

            if (args.NewSensor == null)
            {
                return;
            }

            try
            {
                args.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                args.NewSensor.SkeletonStream.Enable();
                try
                {
                    args.NewSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
                    args.NewSensor.DepthStream.Range = DepthRange.Near;
                    args.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                }
                catch (InvalidOperationException)
                {
                    args.NewSensor.DepthStream.Range = DepthRange.Default;
                    args.NewSensor.SkeletonStream.EnableTrackingInNearRange = false;
                }
            }
            catch (InvalidOperationException)
            {
                error = true;
            }
             */
        }
Exemple #29
0
        private static void SensorChooserOnKinectChanged(object sender, KinectChangedEventArgs args)
        {
            if (args.OldSensor != null)
            {
                try
                {
                    args.OldSensor.DepthStream.Range = DepthRange.Default;
                    args.OldSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    args.OldSensor.DepthStream.Disable();
                    args.OldSensor.SkeletonStream.Disable();
                }
                catch (InvalidOperationException)
                {
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
            }

            if (args.NewSensor != null)
            {
                try
                {
                    args.NewSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
                    args.NewSensor.SkeletonStream.Enable();
            #if (DEBUG)
                    Console.WriteLine("NEW GEN SENSOR FOUND!");
            #endif
                    try
                    {
                        args.NewSensor.DepthStream.Range = DepthRange.Near;
                        args.NewSensor.SkeletonStream.EnableTrackingInNearRange = true;
                    }
                    catch (InvalidOperationException)
                    {
                        // Non Kinect for Windows devices do not support Near mode, so reset back to default mode.
                        args.NewSensor.DepthStream.Range = DepthRange.Default;
                        args.NewSensor.SkeletonStream.EnableTrackingInNearRange = false;
                    }
                }
                catch (InvalidOperationException)
                {
                    // KinectSensor might enter an invalid state while enabling/disabling streams or stream features.
                    // E.g.: sensor might be abruptly unplugged.
                }
            }
        }
Exemple #30
0
        void KinectSensorChooser_KinectChanged(object sender, KinectChangedEventArgs e)
        {
            KinectSensor oldSensor = e.OldSensor;

            //stop the old sensor
            if (oldSensor != null)
            {
                oldSensor.Stop();
            }

            //get the new sensor
            KinectSensor newSensor = e.NewSensor;
            if (newSensor == null)
            {
                return;
            }

            //turn on features that you need
            newSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
            //newSensor.DepthStream.Range = DepthRange.Near; 
            newSensor.SkeletonStream.Enable();

            //sign up for events if you want to get at API directly
            newSensor.AllFramesReady += new EventHandler<AllFramesReadyEventArgs>(newSensor_AllFramesReady);

            try
            {
                _depthBitmap = new WriteableBitmap(newSensor.DepthStream.FrameWidth,
                    newSensor.DepthStream.FrameHeight,
                    96, 96, PixelFormats.Bgr32, null);

                _imageSize = new Int32Rect(0, 0, newSensor.DepthStream.FrameWidth, 
                    newSensor.DepthStream.FrameHeight);
                _stride = newSensor.DepthStream.FrameWidth * 4; 
                _pixels = new byte[newSensor.DepthStream.FrameHeight * _stride];

                newSensor.Start();


                image1.Source = _depthBitmap;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Exception: " + ex.Message); 
            }
        }