public void EnterValidationMode() { if (State != ValidationState.Idle) { throw new InvalidOperationException("Validation mode already entered"); } _dataMap = new List <KeyValuePair <NormalizedPoint2D, Queue <GazeDataEventArgs> > >(); _latestResult = new CalibrationValidationResult(); State = ValidationState.NotCollecting; _eyeTracker.GazeDataReceived += OnGazeDataReceived; }
/// <summary> /// Create a calibration validation object for screen based eye trackers. /// </summary> /// <param name="eyeTracker">An <see cref="IEyeTracker"/> instance.</param> /// <param name="sampleCount">The number of samples to collect. Default 30, minimum 10, maximum 3000.</param> /// <param name="timeoutMS">Timeout in milliseconds. Default 1000, minimum 100, maximum 3000.</param> public ScreenBasedCalibrationValidation(IEyeTracker eyeTracker, int sampleCount = 30, int timeoutMS = 1000) { if (eyeTracker == null) { throw new ArgumentException("Eye tracker is null"); } if (sampleCount < 10 || sampleCount > 3000) { throw new ArgumentException("Samples must be between 10 and 3000"); } if (timeoutMS < 100 || timeoutMS > 3000) { throw new ArgumentException("Timout must be between 100 and 3000 ms"); } _eyeTracker = eyeTracker; _sampleCount = sampleCount; _timeKeeper = new TimeKeeper(timeoutMS); _result = new CalibrationValidationResult(); State = ValidationState.NotInValidationMode; }