Пример #1
0
 public static PanTiltAlignment getInstance()
 {
     if (instance == null)
     {
         instance = new PanTiltAlignment();
     }
     return(instance);
 }
Пример #2
0
 public static PanTiltAlignment getInstance()
 {
     if (instance == null)
     {
         instance = new PanTiltAlignment();
     }
     return instance;
 }
Пример #3
0
 private void panFactorScrollBar_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
 {
     try
     {
         PanTiltAlignment.getInstance().panFactor = panFactorScrollBar.Value;
         panFactorLabel.Content = string.Format("{0,5:0}", PanTiltAlignment.getInstance().panFactor);
         setPan(currentPan);
     } catch { };
 }
Пример #4
0
 private void tiltAlignScrollBar_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
 {
     try
     {
         PanTiltAlignment.getInstance().tiltAlign = tiltAlignScrollBar.Value;
         tiltAlignLabel.Content = string.Format("{0,5:0}", PanTiltAlignment.getInstance().tiltAlign);
         setTilt(currentTilt);
     }
     catch { };
 }
Пример #5
0
 public static void Restore()
 {
     if (File.Exists(filename))
     {
         using (TextReader reader = new StreamReader(filename))
         {
             XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(PanTiltAlignment));
             instance = (PanTiltAlignment)x.Deserialize(reader);
         }
     }
 }
Пример #6
0
 public static void Restore()
 {
     if (File.Exists(filename))
     {
         using (TextReader reader = new StreamReader(filename))
         {
             XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(PanTiltAlignment));
             instance = (PanTiltAlignment)x.Deserialize(reader);
         }
     }
 }
Пример #7
0
        private void setTilt(double degreesFromCenter)
        {
            currentTilt = degreesFromCenter;

            double mks = 1500.0d + PanTiltAlignment.getInstance().tiltAlign + degreesFromCenter * PanTiltAlignment.getInstance().tiltFactor;

            int tiltMks = (int)mks;

            if (tiltMks != tiltMksLast)
            {
                tiltMksLast = tiltMks;

                if (_picpxmod != null && deviceAttached)
                {
                    _picpxmod.ServoPositionSet(2, mks);
                    this.Dispatcher.Invoke(new UpdateLabelDelegate(updatePmValuesLabel), string.Format("Pan: {0:0}\r\nTilt: {1:0}", currentPan, currentTilt));
                    this.Dispatcher.Invoke(new UpdateLabelDelegate(updateTiltMksLabel), string.Format("{0,4} mks {1,4:0} degrees", tiltMksLast, currentTilt));
                }
            }
        }
Пример #8
0
 private void saveAlignmentButton_Click(object sender, RoutedEventArgs e)
 {
     PanTiltAlignment.Save();
 }
Пример #9
0
        private void Window_Loaded(object sender, EventArgs e)
        {
            PanTiltAlignment.Restore();

            PanTiltAlignment pta = PanTiltAlignment.getInstance();

            panAlignScrollBar.Value   = pta.panAlign;
            panFactorScrollBar.Value  = pta.panFactor;
            tiltAlignScrollBar.Value  = pta.tiltAlign;
            tiltFactorScrollBar.Value = pta.tiltFactor;

            // =============================================================
            //create picpxmod device:

            _picpxmod = new ProximityModule(0x0925, 0x7001);    // see PIC Firmware - usb_descriptors.c lines 178,179

            _picpxmod.HasReadFrameEvent += pmFrameCompleteHandler;

            _picpxmod.DeviceAttachedEvent += new EventHandler <ProximityModuleEventArgs>(_picpxmod_DeviceAttachedEvent);
            _picpxmod.DeviceDetachedEvent += new EventHandler <ProximityModuleEventArgs>(_picpxmod_DeviceDetachedEvent);

            deviceAttached = _picpxmod.FindTheHid();

            pmValuesLabel.Content = deviceAttached ?
                                    "Proximity Board Found" : string.Format("Proximity Board NOT Found\r\nYour USB Device\r\nmust have:\r\n vendorId=0x{0:X}\r\nproductId=0x{1:X}", _picpxmod.vendorId, _picpxmod.productId);

            // =============================================================
            // create Kinect device:

            nui = new Runtime();

            try
            {
                nui.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking | RuntimeOptions.UseColor);
            }
            catch (InvalidOperationException)
            {
                System.Windows.MessageBox.Show("Runtime initialization failed. Please make sure Kinect device is plugged in.");
                return;
            }

            // parameters used to smooth the skeleton data
            nui.SkeletonEngine.TransformSmooth = true;
            TransformSmoothParameters parameters = new TransformSmoothParameters();

            parameters.Smoothing                = 0.7f;
            parameters.Correction               = 0.3f;
            parameters.Prediction               = 0.4f;
            parameters.JitterRadius             = 1.0f;
            parameters.MaxDeviationRadius       = 0.5f;
            nui.SkeletonEngine.SmoothParameters = parameters;

            try
            {
                nui.VideoStream.Open(ImageStreamType.Video, 2, ImageResolution.Resolution640x480, ImageType.Color);
                nui.DepthStream.Open(ImageStreamType.Depth, 2, ImageResolution.Resolution320x240, ImageType.DepthAndPlayerIndex);
            }
            catch (InvalidOperationException)
            {
                System.Windows.MessageBox.Show("Failed to open stream. Please make sure to specify a supported image type and resolution.");
                return;
            }

            lastTime = DateTime.Now;

            nui.DepthFrameReady    += new EventHandler <ImageFrameReadyEventArgs>(nui_DepthFrameReady);
            nui.SkeletonFrameReady += new EventHandler <SkeletonFrameReadyEventArgs>(nui_SkeletonFrameReady);
            nui.VideoFrameReady    += new EventHandler <ImageFrameReadyEventArgs>(nui_ColorFrameReady);

            speak("come on!");
        }