protected override IEnumerable <Stage> Following() { if (_remainingTrialCount <= 0) { return(null); } var target = _randomBoolSequence.Next(); var stages = new[] { new Stage { Cue = target ? "YES" : "NO", Marker = MarkerDefinitions.TrialStartMarker, Duration = _testConfig.TrialDuration, Tag = target }, new Stage { Marker = MarkerDefinitions.TrialEndMarker, Duration = _testConfig.InterStimulusInterval }, }; _remainingTrialCount--; return(stages); }
protected override IEnumerable <Stage> Following() { if (_completed) { return(null); } var target = _randomBoolSequence.Next(); var cue = target ? NonTargetChars.ElementAt(_r.Next(NonTargetChars.Length)).ToString() : "X"; if (_testConfig.Still) { var stage = new Stage { Cue = cue, Duration = _remaining }; _completed = true; return(new[] { stage }); } var stages = new Stage[2]; var marker = target ? CptExperiment.TargetDisplayMarker : CptExperiment.NonTargetDisplayMarker; stages[0] = new CptStage { Cue = cue, IsTarget = target, Duration = _testConfig.LetterDuration, Marker = marker }; stages[1] = new Stage { Cue = "", Duration = _testConfig.InterStimulusInterval, Marker = CptExperiment.IntervalMarker }; if (_remaining < _testConfig.LetterDuration + _testConfig.InterStimulusInterval) { _completed = true; } else { _remaining -= _testConfig.LetterDuration + _testConfig.InterStimulusInterval; if (_remaining < _testConfig.LetterDuration) { _completed = true; } } return(stages); }