Example #1
0
 public P300DynamicSpellerStageProvider(SpellerController spellerController, SpellerParadigm.Configuration.TestConfig testConfig)
     : base(testConfig, false, new PipelinedStageProvider((int)(testConfig.SubTrialCount * 2), TimeSpan.FromMilliseconds(5)))
 {
     spellerController.Calibrated    += (sender, e) => CalibrationCompleted();
     spellerController.Stopping      += (sender, e) => Provider.Break();
     spellerController.CreatingTrial += (sender, e) => Provider.Offer(P300SpellerStageProviderUtils.GenerateRepeatingStages(testConfig));
 }
Example #2
0
 public static IStageProvider GetParadigmProvider(SpellerController spellerController,
                                                  SpellerParadigm.Configuration.TestConfig testConfig)
 {
     return(testConfig.DynamicInterval
         ? (IStageProvider) new P300DynamicSpellerStageProvider(spellerController, testConfig)
         : new P300StaticSpellerStageProvider(spellerController, testConfig));
 }
 public static Stage[] GenerateRepeatingStages(SpellerParadigm.Configuration.TestConfig testConfig) => new[]
 {
     new Stage {
         Marker = MarkerDefinitions.TrialStartMarker, Duration = testConfig.Trial.Duration
     },
     new Stage {
         Marker = MarkerDefinitions.TrialEndMarker, Duration = testConfig.DynamicInterval ? 0 : testConfig.Trial.Interval
     },
 };
Example #4
0
        public static IReadOnlyCollection <Stage> GenerateRepeatingStages(SpellerParadigm.Configuration.TestConfig testConfig)
        {
            var stages = new LinkedList <Stage>();

            stages.AddLast(new Stage {
                Marker = MarkerDefinitions.TrialStartMarker, Duration = 0
            });
            var subTrialDuration = testConfig.SubTrialDuration;

            for (var i = 0; i < testConfig.SubTrialCount; i++)
            {
                stages.AddLast(new Stage {
                    Marker = SpellerMarkerDefinitions.SubTrialMarker, Duration = subTrialDuration
                });
            }
            stages.AddLast(new Stage {
                Marker = MarkerDefinitions.TrialEndMarker, Duration = testConfig.DynamicInterval ? 0 : testConfig.Trial.Interval
            });
            return(stages.AsReadonly());
        }
Example #5
0
 public P300StaticSpellerStageProvider(SpellerController spellerController, SpellerParadigm.Configuration.TestConfig testConfig)
     : base(testConfig, false, RepeatingStageProvider.Simple.Unlimited(P300SpellerStageProviderUtils.GenerateRepeatingStages(testConfig)))
 {
     spellerController.Calibrated += (sender, e) => CalibrationCompleted();
     spellerController.Stopping   += (sender, e) => ((RepeatingStageProvider)this[1]).Break();
 }
 public SsvepStaticSpellerStageProvider(SpellerController spellerController, SpellerParadigm.Configuration.TestConfig testConfig)
     : base(testConfig, true, RepeatingStageProvider.Simple.Unlimited(SsvepSpellerStageProviderUtils.GenerateRepeatingStages(testConfig)))
 {
     spellerController.Calibrated += (sender, e) => CalibrationCompleted();
     spellerController.Stopping   += (sender, e) => Provider.Break();
 }
Example #7
0
 public static IStageProvider GetParadigmProvider(SpellerController spellerController,
                                                  SpellerParadigm.Configuration.TestConfig testConfig) => testConfig.DynamicInterval
         ? (IStageProvider) new EyeTrackingDynamicSpellerStageProvider(spellerController, testConfig)
         : new EyeTrackingStaticSpellerStageProvider(spellerController, testConfig);
Example #8
0
 public EyeTrackingDynamicSpellerStageProvider(SpellerController spellerController, SpellerParadigm.Configuration.TestConfig testConfig)
     : base(testConfig, false, new PipelinedStageProvider(1024, TimeSpan.FromMilliseconds(5)))
 {
     spellerController.Stopping      += (sender, e) => Provider.Break();
     spellerController.CreatingTrial += (sender, e) => Provider.Offer(EyeTrackingSpellerStageProviderUtils.GenerateRepeatingStages(testConfig));
 }