public static PanTiltAlignment getInstance() { if (instance == null) { instance = new PanTiltAlignment(); } return(instance); }
public static PanTiltAlignment getInstance() { if (instance == null) { instance = new PanTiltAlignment(); } return instance; }
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 { }; }
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 { }; }
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); } } }
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)); } } }
private void saveAlignmentButton_Click(object sender, RoutedEventArgs e) { PanTiltAlignment.Save(); }
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!"); }