Пример #1
0
        /* D3D Resources */

        public P300SpellerWindow(Session session, SpellerController spellerController) : base(session, spellerController)
        {
            SuspendLayout();
            ControlBox      = false;
            IsFullscreen    = true;
            DoubleBuffered  = false;
            FormBorderStyle = FormBorderStyle.None;
            WindowState     = FormWindowState.Maximized;
            ResumeLayout(true);

            SpellerController.CancellingTrial += (sender, e) =>
            {
                if (_trial != null)
                {
                    StageProgram.Skip();
                    TrialCancelled = true;
                }
            };

            if (session.StreamerCollection.TryFindFirst <BiosignalStreamer>(out var biosignalStreamer))
            {
                biosignalStreamer.Attach(_p300Detector = new P300Detector(
                                             Experiment.Config.Test.Channels.Enumerate(1, biosignalStreamer.BiosignalSampler.ChannelNum).Select(i => (uint)(i - 1)).ToArray(),
                                             biosignalStreamer.BiosignalSampler.Frequency, (uint)biosignalStreamer.BiosignalSampler.Frequency, 0.5F));
            }
        }
        public EyeTrackingSpellerWindow(Session session, SpellerController spellerController) : base(session, spellerController)
        {
            SuspendLayout();
            ControlBox   = false;
            IsFullscreen = false;
            // ReSharper disable once VirtualMemberCallInConstructor
            DoubleBuffered  = false;
            FormBorderStyle = FormBorderStyle.None;
            WindowState     = FormWindowState.Maximized;
            ResumeLayout(true);

            _detector = new EyeTrackingDetector();
            GazePointHandler.Point += (sender, e) =>
            {
                if (e != null)
                {
                    _detector.Accept(e.Value);
                }
            };

            SpellerController.CancellingTrial += (sender, e) =>
            {
                if (_trial != null)
                {
                    StageProgram.Skip();
                    TrialCancelled = true;
                }
            };
        }
Пример #3
0
        public SsvepSpellerWindow(Session session, SpellerController spellerController) : base(session, spellerController)
        {
            SuspendLayout();
            ControlBox   = false;
            IsFullscreen = true;
            // ReSharper disable once VirtualMemberCallInConstructor
            DoubleBuffered  = false;
            FormBorderStyle = FormBorderStyle.None;
            WindowState     = FormWindowState.Maximized;
            ResumeLayout(true);

            SpellerController.CancellingTrial += (sender, e) =>
            {
                if (_trial != null)
                {
                    StageProgram.Skip();
                    TrialCancelled = true;
                }
            };

            _stimulationPatterns = Paradigm.Config.Test.StimulationPatterns;

            if (session.StreamerCollection.TryFindFirst(out _biosignalStreamer))
            {
                _hybridSsvepIdentifier = new HybridSsvepIdentifier(session.Clock, Paradigm.Config.Test.ComputeParallelLevel,
                                                                   _stimulationPatterns, Paradigm.Config.Test.FilterBank, Paradigm.Config.Test.SubBandMixingParams,
                                                                   Paradigm.Config.Test.HarmonicsCount, Paradigm.Config.Test.CcaThreshold,
                                                                   Paradigm.Config.Test.Channels.Enumerate(1, _biosignalStreamer.BiosignalSource.ChannelNum).Select(i => (uint)(i - 1)).ToArray(),
                                                                   _biosignalStreamer.BiosignalSource.Frequency, Paradigm.Config.Test.Trial.Duration,
                                                                   Paradigm.Config.Test.SsvepDelay);
                _biosignalStreamer.AttachConsumer(_hybridSsvepIdentifier);
            }
        }