private Tracker(GTCommands commands) { log.Info("Constructing Tracker..."); this.commands = commands; detectionManager = new DetectionManager(); calibration = new Calibration.Calibration(); recalibration = new Recalibration(); eyeMovement = new Classifier(); exponentialSmoother = new ExponentialSmoother(Settings.Instance.EyeMovement.SmoothNumberOfSamples, 0, (int)Math.Ceiling(Settings.Instance.EyeMovement.SmoothLevel / 5.0)); visualization = new Visualization(); server = new UDPServer(); gazeDataRaw = new GTGazeData(); gazeDataSmoothed = new GTGazeData(); gazeDazaExtended = new GTExtendedData(); processingDone = true; timerCalibrationDelay = new DispatcherTimer(); timerCalibrationDelay.Interval = TimeSpan.FromMilliseconds(calibrationDelayMilliseconds); timerCalibrationDelay.Tick += TimerCalibrationTick; logGaze = new Logger(); logGaze.Server = server; // Used to send messages back to client (log start/stop etc.) log.Info( "Looking up LoggingEnabled in FileSettings" ); logGaze.IsEnabled = Settings.Instance.FileSettings.LoggingEnabled; log.Info( "Setting RecalibrationAvailableHandler" ); recalibration.RecalibrationAvailable += new Recalibration.RecalibrationAvailableHandler( recalibration_RecalibrationAvailable ); //recalibration.OnRecalibrationAvailable +=new Recalibration.RecalibrationAvailable(recalibration_OnRecalibrationAvailable); Settings.Instance.Processing.PropertyChanged += ProcessingSettingsPropertyChanged; timerCalibrationDelay.Tick += TimerCalibrationTick; if ( GTHardware.Camera.Instance.Device != null ) { log.Info( "Setting GTHardware device OnImage EventHandler" ); GTHardware.Camera.Instance.Device.OnImage += new EventHandler<GTHardware.Cameras.ImageEventArgs>( Device_OnImage ); } log.Info("Completed constructing Tracker"); }
/// <summary> /// Is called whenever new raw data is available, /// sends the <see cref="GTExtendedDataChanged"/> event. /// </summary> /// <param name="data">The gaze data.</param> private void OnGTExtendedDataChanged(GTExtendedData data) { this.lastTime = data.TimeStamp; if (this.GTExtendedDataChanged != null) { this.GTExtendedDataChanged(data); } }