Add Nested Spelling, Remove wheelchair

This commit is contained in:
Igor Beloschapkin committed 2020-09-09 12:43:17 +02:00
1 parent f3d2d2f7a2
commit 5b747fb066
6 files changed
+284 -278

No files matched your search

+97 -91
View File
@@ -1,21 +1,88 @@
Visualize:Property%20Sets matrix VisPropertySets= 0 1 // row titles are properties in the form "SRCD.Left", columns are property sets
System:Version matrix OperatorVersion= { Framework Revision Build Config Protocol } 1 3.6%20BETA.5570.5 5570.5,%202016-10-12T19:27:33Z MSVC-17.0.61030.0-AMD64,%20release,%202016-10-16T14:03:14Z,%20user@user-PC USE_DYNAMIC_CRT:OFF%20USE_OPENMP:ON%20USE_PRECOMPILED_HEADERS:ON%20USE_ASSERTS_IN_RELEASE_BUILDS:OFF%20USE_EXTERNAL_QT:OFF 2.3 // operator module version information (noedit)(readonly)
System:Protocol int AutoConfig= 1 1 0 1 // Use AutoConfig protocol extension (boolean)
System:Protocol int OperatorBackLink= 1 1 0 1 // Send final state and signal information to Operator (boolean)
System:Core%20Connections string OperatorIP= 127.0.0.1 127.0.0.1 % % // the Operator module's IP (noedit)(readonly)
System:Configuration matrix OperatorVersion= { Framework Revision Build } 1 3.0.5 % Jun%20%203%202013%2011:41:59 // operator module version information(readonly)
System:Additional%20Connections int OperatorBackLink= 1 1 0 1 // Send final state and signal information to Operator (boolean)(readonly)
Source:Signal%20Properties:DataIOFilter int SourceCh= 12 16 1 % // number of digitized and stored channels
Source:Signal%20Properties:DataIOFilter int SampleBlockSize= 8 32 1 % // number of samples transmitted at a time
Source:Signal%20Properties:DataIOFilter int SamplingRate= 512 256Hz 1 % // sample rate
Source:Signal%20Properties:DataIOFilter list ChannelNames= 12 Fz Fc1 Fc2 C3 Cz C4 P3 Pz P4 O1 Oz O2 // list of channel names
Source:Signal%20Properties:DataIOFilter floatlist SourceChOffset= 12 0 0 0 0 0 0 0 0 0 0 0 0 0 % % // Offset for channels in A/D units
Source:Signal%20Properties:DataIOFilter floatlist SourceChGain= 12 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.003 % % // gain for each channel (A/D units -> muV)
Storage:Data%20Location:DataIOFilter string DataDirectory= ../data/WheelchairTraining ..\data % % // path to top level data directory (directory)
Storage:Session:DataIOFilter string SubjectName= WT-tacCalib Name % % // subject alias
Storage:Session:DataIOFilter string SubjectSession= 001 001 % % // three-digit session number
Storage:Session:DataIOFilter string SubjectRun= 00 00 % % // two-digit run number
Storage:Documentation:DataIOFilter string ID_System= % // BCI2000 System Code
Storage:Documentation:DataIOFilter string ID_Amp= % // BCI2000 Amp Code
Storage:Documentation:DataIOFilter string ID_Montage= % // BCI2000 Cap Montage Code
Visualize:Timing:DataIOFilter int VisualizeTiming= 0 1 0 1 // visualize system timing (0=no, 1=yes) (boolean)
Visualize:Source%20Signal:DataIOFilter int VisualizeSource= 1 1 0 1 // visualize raw brain signal (0=no, 1=yes) (boolean)
Visualize:Source%20Signal:DataIOFilter int VisualizeSourceDecimation= 1 auto % % // decimation factor for raw brain signal
Visualize:Source%20Signal:DataIOFilter int VisualizeSourceBufferSize= auto auto % % // number of blocks to aggregate before sending to operator
Visualize:Source%20Signal:DataIOFilter int VisualizeSourceTime= 2s 2s 0 % // how much time in Source visualization
Visualize:Source%20Signal:DataIOFilter int SourceMin= -100muV -100muV % % // raw signal vis Min Value
Visualize:Source%20Signal:DataIOFilter int SourceMax= 100muV 100muV % % // raw signal vis Max Value
Source:gUSBampADC intlist SourceChList= 0 0 1 128 // list of channels to digitize
Source:gUSBampADC intlist SourceChDevices= 1 12 16 1 17 // number of digitized channels per device
Source:gUSBampADC int NumBuffers= 2 1 2 32 // number of software buffers to use
Source:gUSBampADC string DeviceIDMaster= auto // deviceID for the device whose SYNC goes to the slaves
Source:gUSBampADC int FilterEnabled= 1 1 0 1 // Enable pass band filter (0=no, 1=yes)
Source:gUSBampADC float FilterHighPass= 0.1 0.1 0 50 // high pass filter for pass band
Source:gUSBampADC float FilterLowPass= 60 60 0 4000 // low pass filter for pass band
Source:gUSBampADC int FilterModelOrder= 8 8 1 12 // filter model order for pass band
Source:gUSBampADC int FilterType= 1 1 1 2 // filter type for pass band (1=BUTTERWORTH, 2=CHEBYSHEV)
Source:gUSBampADC int NotchEnabled= 1 1 0 1 // Enable notch (0=no, 1=yes)
Source:gUSBampADC float NotchHighPass= 48 58 0 70 // high pass filter for notch filter
Source:gUSBampADC float NotchLowPass= 52 62 0 4000 // low pass filter for notch filter
Source:gUSBampADC int NotchModelOrder= 4 4 1 10 // filter model order for notch filter
Source:gUSBampADC int NotchType= 1 1 1 2 // filter type for pass band (1=CHEBYSHEV, 2=BUTTERWORTH)
Source:gUSBampADC list DeviceIDs= 1 auto // list of USBamps to be used (or auto)
Source:gUSBampADC int DigitalInput= 0 0 0 1 // enable digital input: 0: false, 1: true (enumeration)
Source:gUSBampADC int DigitalOutput= 0 0 0 1 // enable digital output on block acquisition (boolean)
Source:gUSBampADC string DigitalOutputEx= % // expression for output on digital output 2 (expression)
Source:gUSBampADC int SignalType= 0 0 0 1 // numeric type of output signal: 0: int16, 1: float32 (enumeration)
Source:gUSBampADC int AcquisitionMode= 0 0 0 2 // data acquisition mode: 0: analog signal acquisition, 1: calibration, 2: impedance (enumeration)
Source:gUSBampADC int CommonGround= 1 0 0 1 // internally connect GNDs from all blocks: 0: false, 1: true (enumeration)
Source:gUSBampADC int CommonReference= 1 0 0 1 // internally connect Refs from all blocks: 0: false, 1: true (enumeration)
Storage:BCI2000FileWriter string FileFormat= dat // format of data file (readonly)
Storage:Documentation:BCI2000FileWriter string StorageTime= % // time of beginning of data storage
Source:Alignment:AlignmentFilter int AlignChannels= 1 0 0 1 // align channels in time (0=no, 1=yes)
Source:Alignment:AlignmentFilter floatlist SourceChTimeOffset= 0 0 % % // time offsets for all source channels (may be empty)
Source:Online%20Processing:TransmissionFilter list TransmitChList= 12 1 2 3 4 5 6 7 8 9 10 11 12 // list of transmitted channels: Channel names may contain * and ? wildcards, and character ranges enclosed in []; wildcard patterns may be negated by an exclamation mark. Ranges of channels may be specified using : or - to separate begin from end.
System:Additional%20Connections:EventLink int EventLink= 1 1 0 1 // Send events from Operator to Source module (boolean)(readonly)
Storage:Data%20Location:RunManager string DataFile= $%7bSubjectName%7d$%7bSubjectSession%7d/$%7bSubjectName%7dS$%7bSubjectSession%7dR$%7bSubjectRun%7d.$%7bFileFormat%7d // name of data file relative to DataDirectory
System:Core%20Connections string OperatorIP= 127.0.0.1 127.0.0.1 % % // the Operator module's IP(readonly)
System:Core%20Connections string SignalSourcePort= 49242 4200 1024 65535 // the SignalSource module's listening port(readonly)
System:Core%20Connections string SignalSourceIP= 127.0.0.1 127.0.0.1 % % // the SignalSource module's listening IP(readonly)
System:Configuration matrix SignalSourceVersion= { Framework Revision Build } 1 3.0.5 % Jun%20%203%202013%2011:41:59 // SignalSource version information(readonly)
System:Configuration matrix SignalSourceFilterChain= 8 { Filter%20Name Position%20String } DataIOFilter 0 gUSBampADC 1 GDFFileWriter 1 EDFFileWriter 1 BCI2000FileWriter 1 NullFileWriter 1 AlignmentFilter 1.1 TransmissionFilter 1.2 // SignalSource filter chain(readonly)
Visualize:Processing%20Stages int VisualizeAlignmentFilter= 0 0 0 1 // Visualize AlignmentFilter output (boolean)
Visualize:Processing%20Stages int VisualizeTransmissionFilter= 0 0 0 1 // Visualize TransmissionFilter output (boolean)
Filtering:SpatialFilter int SpatialFilterType= 0 2 0 3 // spatial filter type 0: none, 1: full matrix, 2: sparse matrix, 3: common average reference (CAR) (enumeration)
Filtering:SpatialFilter:SpatialFilter matrix SpatialFilter= 4 4 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 % % // columns represent input channels, rows represent output channels
Filtering:SpatialFilter:SpatialFilter intlist SpatialFilterCAROutput= 0 // when using CAR filter type: list of output channels, or empty for all channels
Filtering:SpatialFilter:SpatialFilter int SpatialFilterMissingChannels= 1 0 0 1 // how to handle missing channels 0: ignore, 1: report error (enumeration)
Filtering:P3TemporalFilter int EpochLength= 800ms 500ms 0 % // Length of data epoch from stimulus onset
Filtering:P3TemporalFilter int EpochsToAverage= 10 1 0 % // Number of epochs to average
Filtering:P3TemporalFilter int SingleEpochMode= 0 0 0 1 // Report result after each epoch (boolean)
Visualize:P3TemporalFilter int VisualizeP3TemporalFiltering= 0 0 0 1 // Visualize averaged epochs (0=no 1=yes) (boolean)
Visualize:P3TemporalFilter int TargetERPChannel= 1 1 % % // Input channel for which to display ERP data
Filtering:LinearClassifier matrix Classifier= 2 { input%20channel input%20element%20(bin) output%20channel weight } 1 4 1 1 1 6 2 1 // Linear classification matrix in sparse representation
System:Core%20Connections string SignalProcessingPort= 49243 4200 1024 65535 // the SignalProcessing module's listening port(readonly)
System:Core%20Connections string SignalProcessingIP= 127.0.0.1 127.0.0.1 % % // the SignalProcessing module's listening IP(readonly)
System:Configuration matrix SignalProcessingVersion= { Framework Revision Build } 1 3.0.5 % Jun%20%203%202013%2011:41:59 // SignalProcessing version information(readonly)
System:Configuration matrix SignalProcessingFilterChain= 3 { Filter%20Name Position%20String } SpatialFilter 2.A P3TemporalFilter 2.B LinearClassifier 2.C // SignalProcessing filter chain(readonly)
Visualize:Processing%20Stages int VisualizeSpatialFilter= 0 0 0 1 // Visualize SpatialFilter output (boolean)
Visualize:Processing%20Stages int VisualizeLinearClassifier= 0 0 0 1 // Visualize LinearClassifier output (boolean)
Connector:ConnectorInput list ConnectorInputFilter= 0 // list of state names or signal elements to allow, "*" for any, signal elements as in "Signal(1,0)"
Connector:ConnectorInput string ConnectorInputAddress= % localhost:20320 % % // IP address/port to read from, e.g. localhost:20320
Application:Application%20Window:ApplicationWindow int WindowWidth= 640 640 0 % // width of Application window
Application:Application%20Window:ApplicationWindow int WindowHeight= 480 480 0 % // height of Application window
Application:Application%20Window:ApplicationWindow int WindowLeft= 0 0 % % // screen coordinate of Application window's left edge
Application:Application%20Window:ApplicationWindow int WindowTop= 0 0 % % // screen coordinate of Application window's top edge
Application:Application%20Window:ApplicationWindow int WindowTop= 600 0 % % // screen coordinate of Application window's top edge
Application:Application%20Window:ApplicationWindow string WindowBackgroundColor= 0x000000 0x505050 % % // Application window background color (color)
Visualize:Application%20Window:ApplicationWindow int VisualizeApplicationWindow= 0 0 0 1 // Display miniature copy of Application window (boolean)
Visualize:Application%20Window:ApplicationWindow int AppWindowSpatialDecimation= 8 8 1 % // Application window decimation (shrinking) factor
Visualize:Application%20Window:ApplicationWindow int AppWindowTemporalDecimation= 4 16 1 % // Application window time decimation factor
Application:AudioPlayback:ApplicationWindow float AudioPlaybackRate= auto // audio playback sampling rate
Application:AudioPlayback:ApplicationWindow int AudioPlaybackChannels= auto // number of playback output channels
Application:AudioPlayback:ApplicationWindow float AudioPlaybackBufferDuration= auto // duration of playback buffer
Visualize:Application%20Log:ApplicationBase int ShowAppLog= 1 0 0 1 // Show application log window (boolean)
Application:Sequencing:StimulusTask float PreRunDuration= 2s 1 0 % // pause preceding first sequence
Application:Sequencing:StimulusTask float PostRunDuration= 2s 0 0 % // pause following last sequence
@@ -36,7 +103,7 @@ Application:Speller%20Targets:P3SpellerTask intlist NumMatrixRows= 1 4 6 0 % //
Application:Audio%20Stimuli:P3SpellerTask int AudioStimuliOn= 0 0 0 1 // Audio Stimuli Mode (0=no, 1=yes) (boolean)
Application:Audio%20Stimuli:P3SpellerTask matrix AudioStimuliRowsFiles= 6 { filename } sounds/1.wav sounds/2.wav sounds/3.wav sounds/4.wav sounds/5.wav sounds/6.wav // audio stimuli rows files
Application:Audio%20Stimuli:P3SpellerTask matrix AudioStimuliColsFiles= 6 { filename } sounds/a.wav sounds/b.wav sounds/c.wav sounds/d.wav sounds/e.wav sounds/f.wav // audio stimuli column files
Application:Speller%20Targets:P3SpellerTask floatlist TargetWidth= 1 40 0 0 100 // target width in percent of screen width
Application:Speller%20Targets:P3SpellerTask floatlist TargetWidth= 1 16 0 0 100 // target width in percent of screen width
Application:Speller%20Targets:P3SpellerTask floatlist TargetHeight= 1 14 0 0 100 // target height in percent of screen height
Application:Speller%20Targets:P3SpellerTask floatlist TargetTextHeight= 1 12 0 0 100 // height of target labels in percent of screen height
Application:Speller%20Targets:P3SpellerTask stringlist BackgroundColor= 1 0x00000000 0x505050 % % // target background color (color)
@@ -45,104 +112,43 @@ Application:Speller%20Targets:P3SpellerTask stringlist TextColorIntensified= 1 0
Application:Speller%20Targets:P3SpellerTask intlist IconHighlightMode= 1 1 1 0 4 // icon highlight method 0: Show/Hide, 1: Intensify, 2: Grayscale, 3: Invert, 4: Dim (enumeration)
Application:Speller%20Targets:P3SpellerTask floatlist IconHighlightFactor= 1 0.5 0.5 0 % // scale factor for highlighted icon pixel values
Application:Speller:P3SpellerTask int FirstActiveMenu= 1 1 1 % // Index of first active menu
Storage:Data%20Location:DataIOFilter string DataDirectory= ../data/WheelchairTraining ..\data % % // path to top level data directory (directory)
Application:Speller:P3SpellerTask float StatusBarSize= 25 0 0 100 // size of status bar in percent of screen height
Storage:Session:DataIOFilter string SubjectName= WT-tacCalib Name % % // subject alias
Application:Speller:P3SpellerTask float StatusBarSize= 30 0 0 100 // size of status bar in percent of screen height
Application:Speller:P3SpellerTask float StatusBarTextHeight= 12 0 0 100 // size of status bar text in percent of screen height
Storage:Session:DataIOFilter string SubjectSession= 001 001 % % // three-digit session number
Application:Speller:P3SpellerTask string TextToSpell= LRFBLRFB // character or string to spell in offline copy mode
Storage:Session:DataIOFilter string SubjectRun= 00 00 % % // two-digit run number
Application:Speller:P3SpellerTask string TextResult= % // user spelling result
Storage:Documentation:DataIOFilter string ID_System= % // BCI2000 System Code
Application:Speller:P3SpellerTask int TestMode= 1 0 0 1 // select targets by clicking on their associated stimuli (0=no, 1=yes) (boolean)
Storage:Documentation:DataIOFilter string ID_Amp= % // BCI2000 Amp Code
Application:Speller:P3SpellerTask string DestinationAddress= % // network address for speller output in IP:port format
Storage:Documentation:DataIOFilter string ID_Montage= % // BCI2000 Cap Montage Code
Application:Text%20Window:P3SpellerTask int TextWindowEnabled= 0 0 0 1 // Show Text Window (0=no, 1=yes) (boolean)
Visualize:Timing:DataIOFilter int VisualizeTiming= 0 1 0 1 // visualize system timing (0=no, 1=yes) (boolean)
Application:Text%20Window:P3SpellerTask int TextWindowLeft= 600 0 0 % // Text Window X location
Visualize:Source%20Signal:DataIOFilter int VisualizeSource= 1 1 0 1 // visualize raw brain signal (0=no, 1=yes) (boolean)
Application:Text%20Window:P3SpellerTask int TextWindowTop= 5 0 0 % // Text Window Y location
Visualize:Source%20Signal:DataIOFilter int VisualizeSourceDecimation= 1 auto % % // decimation factor for raw brain signal
Application:Text%20Window:P3SpellerTask int TextWindowWidth= 512 512 0 % // Text Window Width
Visualize:Source%20Signal:DataIOFilter int VisualizeSourceBufferSize= auto auto % % // number of blocks to aggregate before sending to operator
Application:Text%20Window:P3SpellerTask int TextWindowHeight= 512 512 0 % // Text Window Height
Visualize:Source%20Signal:DataIOFilter int VisualizeSourceTime= 2s 2s 0 % // how much time in Source visualization
Application:Text%20Window:P3SpellerTask string TextWindowFontName= Courier // Text Window Font Name
Visualize:Source%20Signal:DataIOFilter int SourceMin= -100muV // raw signal vis Min Value
Application:Text%20Window:P3SpellerTask int TextWindowFontSize= 10 4 1 % // Text Window Font Size
Visualize:Source%20Signal:DataIOFilter int SourceMax= 100muV // raw signal vis Max Value
Application:Text%20Window:P3SpellerTask string TextWindowFilePath= % // Path for Saved Text File (directory)
Source:gUSBampADC int SamplingRate= 256 256Hz % % // the signal sampling rate
Application:Human%20Interface%20Devices:KeystrokeFilter string KeystrokeStateName= % // State to be translated into keystrokes (0-F), empty for off
Source:gUSBampADC int SampleBlockSize= 8 1 % % // number of samples per block
Application:Human%20Interface%20Devices:KeystrokeFilter string KeystrokeExpression= % // Expression that evaluates to a virtual keycode, empty for off
Source:gUSBampADC int SourceCh= 8 auto 0 % // number of digitized channels total
Application:Human%20Interface%20Devices:KeystrokeFilter string KeystrokeExpressionOnStartRun= % // Expression that initializes expression variables on StartRun
Source:gUSBampADC list SourceChGain= 8 1 1 1 1 1 1 1 1
Connector:ConnectorOutput string ConnectorOutputAddress= localhost:5001 localhost:20321 % % // one or more IP:Port combinations, e.g. localhost:20321
Source:gUSBampADC list SourceChOffset= 8 0 0 0 0 0 0 0 0
Application:GazeMonitor:GazeMonitorFilter int VisualizeGazeMonitorFilter= 0 0 0 1 // Visualize the gaze data on the app visualization (boolean)
Application:GazeMonitor:GazeMonitorFilter int EnforceFixation= 0 0 0 1 // Enforce a fixation point on the screen (boolean)
Application:GazeMonitor:GazeMonitorFilter string FixationX= 0.5 0.5 % % // X coordinate of fixation center - 0.0 to 1.0 (expression)
Application:GazeMonitor:GazeMonitorFilter string FixationY= 0.5 0.5 % % // Y coordinate of fixation center - 0.0 to 1.0 (expression)
Application:GazeMonitor:GazeMonitorFilter int ShowFixationZone= 0 0 0 1 // Show the legal fixation zone with a ring (boolean)
Application:GazeMonitor:GazeMonitorFilter float BlinkTime= 100ms 100ms 0 % // Maximum allowed time for invalid eyes
Application:GazeMonitor:GazeMonitorFilter float SaccadeTime= 100ms 100ms 0 % // Maximum allowed time for violating the fixation
Application:GazeMonitor:GazeMonitorFilter float FixationRadius= 0.1 0.1 0.0 1.0 // Allowable distance from fixation center
Application:GazeMonitor:GazeMonitorFilter string FixationImage= % // Image to render at fixation (inputfile)
Application:GazeMonitor:GazeMonitorFilter string FixationViolationImage= % // Image to render at fixation when violated (inputfile)
Application:GazeMonitor:GazeMonitorFilter string FixationViolationSound= % // Sound to play when fixation violated (inputfile)
Application:GazeMonitor:GazeMonitorFilter float FixationImageSize= 0.04 0.04 0.01 1.0 // Size in percentage of screen height of the fixation image
Application:GazeMonitor:GazeMonitorFilter int LogGazeInformation= 0 0 0 1 // Add Eyetracker information to applog (boolean)
Application:Localization:Localization string Language= Default Default % % // Language for user messages
Source:gUSBampADC list ChannelNames= 7 Fz Cz Pz T3 C3 C4 T4
Application:Localization:Localization matrix LocalizedStrings= { German } { TIME%20OUT%20!!! Waiting%20to%20start%20... Sleeping--Select%20SLEEP%20twice%20to%20resume Select%20SLEEP%20once%20more%20to%20resume Paused--Select%20PAUSE%20again%20to%20resume } Zeit%20abgelaufen! Warte%20... Angehalten:%20Zweimal%20SLEEP%20fur%20Weiter Angehalten:%20Noch%20einmal%20SLEEP%20fur%20Weiter Angehalten:%20Noch%20einmal%20PAUSE%20fur%20Weiter // Localized user messages
Source:gUSBamp:Acquisition:gUSBampADC int AcquisitionMode= 0 0 0 2 // data acquisition mode: 0: analog signal acquisition, 1: calibration signal, 2: impedance measurement (enumeration)
System string OperatorAddress= 127.0.0.1:4001
Source:gUSBamp:Acquisition:gUSBampADC int CommonGround= 1 0 0 1 // internally connect GNDs from all blocks: 0: false, 1: true (enumeration)
Source:gUSBamp:Acquisition:gUSBampADC int CommonReference= 1 0 0 1 // internally connect Refs from all blocks: 0: false, 1: true (enumeration)
System:Core%20Connections string ApplicationIP= 192.168.2.100 // (readonly)(noedit)
System:Core%20Connections string ApplicationPort= 50135 // (readonly)(noedit)
Source:gUSBamp:DigitalIO:gUSBampADC int EnableDigitalInput= 0 0 0 1 // enable digital inputs (boolean)
Source:gUSBamp:DigitalIO:gUSBampADC int EnableDigitalOutput= 0 0 0 2 // enable digital output on block acquisition 0: off, 1: use expressions, 2: timing test (enumeration)
System:Version matrix ApplicationVersion= { Framework Revision Build Config Protocol } 1 3.6%20BETA.5570.5 5570.5,%202016-10-12T19:27:33Z MSVC-17.0.61030.0-AMD64,%20release,%202016-10-16T14:03:14Z,%20user@user-PC USE_DYNAMIC_CRT:OFF%20USE_OPENMP:ON%20USE_PRECOMPILED_HEADERS:ON%20USE_ASSERTS_IN_RELEASE_BUILDS:OFF%20USE_EXTERNAL_QT:OFF%20Qt:5.3.2:C:/BCI2000.x64/build/CMakeFiles/extlib/qt-5.3.2/win32-amd64-msvc2012/bin/qmake.exe 2.3 // Application version information (noedit)(readonly)
Source:gUSBamp:DigitalIO:gUSBampADC matrix DigitalOutputEx= 1 1 % // Matrix of Expressions for digital output
System:Configuration matrix ApplicationFilterChain= 4 { Filter%20Name Position%20String } ConnectorInput 2.9999 P3SpellerTask 3 KeystrokeFilter 3.1 ConnectorOutput 3.9999 // Application filter chain (noedit)(readonly)
Source:gUSBamp:Acquisition:gUSBampADC int DetectDataLoss= 0 0 0 1 // use gUSBamp counter mode to detect data loss (boolean)
System:Configuration matrix Filters= 12 1 /3/ConnectorInput /3/P3SpellerTask /3/KeystrokeFilter /3/ConnectorOutput /1/DataIOFilter /1/gUSBampADC /1/BCI2000FileWriter /1/AlignmentFilter /1/TransmissionFilter /2/SpatialFilter /2/P3TemporalFilter /2/LinearClassifier // Filter Directory (noedit)(readonly)
Source:gUSBamp:Acquisition:gUSBampADC int NumBuffers= 2 5 2 % // IO queue length
Source:Buffering:gUSBampADC int SourceBufferSize= 2s 2s % % // size of data acquisition ring buffer (in blocks or seconds)
Source:gUSBamp:Multiple%20Devices:gUSBampADC list DeviceIDs= 1 auto // list of USBamps to be used (or auto)
Source:gUSBamp:Multiple%20Devices:gUSBampADC string DeviceIDMaster= auto // deviceID for the device whose SYNC goes to the slaves
Source:gUSBamp:Multiple%20Devices:gUSBampADC intlist SourceChList= 0 // list of channels to digitize, in terms of physical inputs numbered across all devices
Source:gUSBamp:Multiple%20Devices:gUSBampADC intlist SourceChDevices= 1 8 // number of digitized channels per device
Source:gUSBamp:DSP:gUSBampADC int FilterEnabled= 1 1 0 1 // Enable pass band filter (0=no, 1=yes)
Source:gUSBamp:DSP:gUSBampADC float FilterHighPass= 0.1 0.1 0 50 // high pass filter for pass band
Source:gUSBamp:DSP:gUSBampADC float FilterLowPass= 60 60 0 4000 // low pass filter for pass band
Source:gUSBamp:DSP:gUSBampADC int FilterModelOrder= 8 8 1 12 // filter model order for pass band
Source:gUSBamp:DSP:gUSBampADC int FilterType= 1 1 1 2 // filter type for pass band (1=BUTTERWORTH, 2=CHEBYSHEV)
Source:gUSBamp:DSP:gUSBampADC int NotchEnabled= 1 1 0 1 // Enable notch (0=no, 1=yes)
Source:gUSBamp:DSP:gUSBampADC float NotchHighPass= 48 58 0 70 // high pass filter for notch filter
Source:gUSBamp:DSP:gUSBampADC float NotchLowPass= 52 62 0 4000 // low pass filter for notch filter
Source:gUSBamp:DSP:gUSBampADC int NotchModelOrder= 4 4 1 10 // filter model order for notch filter
Source:gUSBamp:DSP:gUSBampADC int NotchType= 1 1 1 2 // filter type for pass band (1=CHEBYSHEV, 2=BUTTERWORTH)
Storage:BCI2000FileWriter string FileFormat= dat // format of data file (readonly)
Storage:Documentation:BCI2000FileWriter string StorageTime= % // time of beginning of data storage
Source:Alignment:AlignmentFilter int AlignChannels= 1 0 0 1 // align channels in time (0=no, 1=yes)
Source:Alignment:AlignmentFilter floatlist SourceChTimeOffset= 0 0 % % // time offsets for all source channels (may be empty)
Source:Online%20Processing:TransmissionFilter list TransmitChList= 8 1 2 3 4 5 6 7 8 // list of transmitted channels: Channel names may contain * and ? wildcards, and character ranges enclosed in []; wildcard patterns may be negated by prepending an exclamation mark. Ranges of channels may be specified using : or - to separate begin from end.
System:Protocol:EventLink int EventLink= 1 1 0 1 // Send events from Operator to Source module (boolean)
Storage:Data%20Location:RunManager string DataFile= $%7bSubjectName%7d$%7bSubjectSession%7d/$%7bSubjectName%7dS$%7bSubjectSession%7dR$%7bSubjectRun%7d.$%7bFileFormat%7d // name of data file relative to DataDirectory
System:Core%20Connections string SignalSourceIP= 192.168.2.100 // (readonly)(noedit)
System:Core%20Connections string SignalSourcePort= 50141 // (readonly)(noedit)
System:Version matrix SignalSourceVersion= { Framework Revision Build Config Protocol } 1 3.6%20BETA.5570.5 5570.5,%202016-10-12T19:27:33Z MSVC-17.0.61030.0-AMD64,%20release,%202016-10-16T14:03:14Z,%20user@user-PC USE_DYNAMIC_CRT:OFF%20USE_OPENMP:ON%20USE_PRECOMPILED_HEADERS:ON%20USE_ASSERTS_IN_RELEASE_BUILDS:OFF%20USE_EXTERNAL_QT:OFF 2.3 // SignalSource version information (noedit)(readonly)
System:Configuration matrix SignalSourceFilterChain= 8 { Filter%20Name Position%20String } DataIOFilter 0 gUSBampADC 1 NullFileWriter 1 BCI2000FileWriter 1 EDFFileWriter 1 GDFFileWriter 1 AlignmentFilter 1.1 TransmissionFilter 1.2 // SignalSource filter chain (noedit)(readonly)
Visualize:Processing%20Stages int VisualizeAlignmentFilter= 0 0 0 1 // Visualize AlignmentFilter output (boolean)
Visualize:Processing%20Stages int VisualizeTransmissionFilter= 0 0 0 1 // Visualize TransmissionFilter output (boolean)
Filtering:SpatialFilter int SpatialFilterType= 0 2 0 3 // spatial filter type 0: none, 1: full matrix, 2: sparse matrix, 3: common average reference (CAR) (enumeration)
Filtering:SpatialFilter:SpatialFilter matrix SpatialFilter= 4 4 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 % % // columns represent input channels, rows represent output channels
Filtering:SpatialFilter:SpatialFilter intlist SpatialFilterCAROutput= 0 // when using CAR filter type: list of output channels, or empty for all channels
Filtering:SpatialFilter:SpatialFilter int SpatialFilterMissingChannels= 1 0 0 1 // how to handle missing channels 0: ignore, 1: report error (enumeration)
Filtering:P3TemporalFilter int EpochLength= 800ms 500ms 0 % // Length of data epoch from stimulus onset
Filtering:P3TemporalFilter int EpochsToAverage= 10 1 0 % // Number of epochs to average
Filtering:P3TemporalFilter int SingleEpochMode= 0 0 0 1 // Report result after each epoch (boolean)
Visualize:P3TemporalFilter int VisualizeP3TemporalFiltering= 0 0 0 1 // Visualize averaged epochs (0=no 1=yes) (boolean)
Visualize:P3TemporalFilter int TargetERPChannel= 1 1 % % // Input channel for which to display ERP data
Filtering:LinearClassifier matrix Classifier= 2 { input%20channel input%20element%20(bin) output%20channel weight } 1 4 1 1 1 6 2 1 // Linear classification matrix in sparse representation
System:Core%20Connections string SignalProcessingIP= 192.168.2.100 // (readonly)(noedit)
System:Core%20Connections string SignalProcessingPort= 50150 // (readonly)(noedit)
System:Version matrix SignalProcessingVersion= { Framework Revision Build Config Protocol } 1 3.6%20BETA.5570.5 5570.5,%202016-10-12T19:27:33Z MSVC-17.0.61030.0-AMD64,%20release,%202016-10-16T14:03:14Z,%20user@user-PC USE_DYNAMIC_CRT:OFF%20USE_OPENMP:ON%20USE_PRECOMPILED_HEADERS:ON%20USE_ASSERTS_IN_RELEASE_BUILDS:OFF%20USE_EXTERNAL_QT:OFF 2.3 // SignalProcessing version information (noedit)(readonly)
System:Configuration matrix SignalProcessingFilterChain= 3 { Filter%20Name Position%20String } SpatialFilter 2.A P3TemporalFilter 2.B LinearClassifier 2.C // SignalProcessing filter chain (noedit)(readonly)
Visualize:Processing%20Stages int VisualizeSpatialFilter= 0 0 0 1 // Visualize SpatialFilter output (boolean)
Visualize:Processing%20Stages int VisualizeLinearClassifier= 0 0 0 1 // Visualize LinearClassifier output (boolean)
System:Randomization int RandomSeed= 13310 0 % % // seed for the BCI2000 pseudo random number generator (readonly)
System:Randomization int RandomizationWarning= 1 1 0 1 // warn if subsequent Runs have identical RandomSeed value (boolean)
System:State%20Vector int StateVectorLength= 37 16 % % // length of the state vector in bytes (noedit)(readonly)
System:Core%20Connections string ApplicationPort= 49244 4200 1024 65535 // the Application module's listening port(readonly)
System:Core%20Connections string ApplicationIP= 127.0.0.1 127.0.0.1 % % // the Application module's listening IP(readonly)
System:Configuration matrix ApplicationVersion= { Framework Revision Build } 1 3.0.5 % Jun%20%203%202013%2011:41:59 // Application version information(readonly)
System:Configuration matrix ApplicationFilterChain= 5 { Filter%20Name Position%20String } ConnectorInput 2.9999 P3SpellerTask 3 KeystrokeFilter 3.1 ConnectorOutput 3.9999 GazeMonitorFilter 3.A // Application filter chain(readonly)
System:Randomization int RandomSeed= 31788 0 % % // seed for the BCI2000 pseudo random number generator(readonly)
System:Randomization int RandomizationWarning= 1 1 0 1 // warn if subsequent Runs have identical RandomSeed value (boolean)(readonly)
System:State%20Vector int StateVectorLength= 15 16 % % // length of the state vector in bytes(readonly)
+147
View File
@@ -0,0 +1,147 @@
Visualize:Property%20Sets matrix VisPropertySets= 0 1 // row titles are properties in the form "SRCD.Left", columns are property sets
System:Version matrix OperatorVersion= { Framework Revision Build Config Protocol } 1 3.6%20BETA.5570.5 5570.5,%202016-10-12T19:27:33Z MSVC-17.0.61030.0-AMD64,%20release,%202016-10-16T14:03:14Z,%20user@user-PC USE_DYNAMIC_CRT:OFF%20USE_OPENMP:ON%20USE_PRECOMPILED_HEADERS:ON%20USE_ASSERTS_IN_RELEASE_BUILDS:OFF%20USE_EXTERNAL_QT:OFF 2.3 // operator module version information (noedit)(readonly)
System:Protocol int AutoConfig= 1 1 0 1 // Use AutoConfig protocol extension (boolean)
System:Protocol int OperatorBackLink= 1 1 0 1 // Send final state and signal information to Operator (boolean)
System:Core%20Connections string OperatorIP= 127.0.0.1 127.0.0.1 % % // the Operator module's IP (noedit)(readonly)
Connector:ConnectorInput list ConnectorInputFilter= 0 // list of state names or signal elements to allow, "*" for any, signal elements as in "Signal(1,0)"
Connector:ConnectorInput string ConnectorInputAddress= % localhost:20320 % % // IP address/port to read from, e.g. localhost:20320
Application:Application%20Window:ApplicationWindow int WindowWidth= 640 640 0 % // width of Application window
Application:Application%20Window:ApplicationWindow int WindowHeight= 480 480 0 % // height of Application window
Application:Application%20Window:ApplicationWindow int WindowLeft= 0 0 % % // screen coordinate of Application window's left edge
Application:Application%20Window:ApplicationWindow int WindowTop= 600 0 % % // screen coordinate of Application window's top edge
Application:Application%20Window:ApplicationWindow string WindowBackgroundColor= 0x000000 0x505050 % % // Application window background color (color)
Visualize:Application%20Window:ApplicationWindow int VisualizeApplicationWindow= 0 0 0 1 // Display miniature copy of Application window (boolean)
Visualize:Application%20Window:ApplicationWindow int AppWindowSpatialDecimation= 8 8 1 % // Application window decimation (shrinking) factor
Visualize:Application%20Window:ApplicationWindow int AppWindowTemporalDecimation= 4 16 1 % // Application window time decimation factor
Application:AudioPlayback:ApplicationWindow float AudioPlaybackRate= auto // audio playback sampling rate
Application:AudioPlayback:ApplicationWindow int AudioPlaybackChannels= auto // number of playback output channels
Application:AudioPlayback:ApplicationWindow float AudioPlaybackBufferDuration= auto // duration of playback buffer
Visualize:Application%20Log:ApplicationBase int ShowAppLog= 1 0 0 1 // Show application log window (boolean)
Application:Sequencing:StimulusTask float PreRunDuration= 2s 1 0 % // pause preceding first sequence
Application:Sequencing:StimulusTask float PostRunDuration= 2s 0 0 % // pause following last sequence
Application:Sequencing:StimulusTask float PreSequenceDuration= 1/2s 2s 0 % // pause preceding sequences/sets of intensifications
Application:Sequencing:StimulusTask float PostSequenceDuration= 3s 2s 0 % // pause following sequences/sets of intensifications
Application:Sequencing:StimulusTask float StimulusDuration= 220ms 40ms 0 % // stimulus duration
Application:Sequencing:StimulusTask string EarlyOffsetExpression= % // abort stimulus if this expression becomes true
Application:Sequencing:StimulusTask float ISIMinDuration= 400ms 80ms 0 % // minimum duration of inter-stimulus interval
Application:Sequencing:StimulusTask float ISIMaxDuration= 400ms 80ms 0 % // maximum duration of inter-stimulus interval
Application:Result%20Processing:StimulusTask int InterpretMode= 2 0 0 2 // interpretation of results: 0 none, 1 online free mode, 2 copy mode (enumeration)
Application:Result%20Processing:StimulusTask int DisplayResults= 1 1 0 1 // display results of copy/free spelling (boolean)
Application:Result%20Processing:StimulusTask int AccumulateEvidence= 0 0 0 1 // accumulate evidence until a selection is made (boolean)
Application:Result%20Processing:StimulusTask float MinimumEvidence= 0 0 0 % // do not make a selection unless target evidence exceeds this value. For a normalized classifier, MinimumEvidence approximates -2.3*log10(Error Probability)
Application:Sequencing:P3SpellerTask int NumberOfSequences= 8 15 1 % // number of sequences in a set of intensifications
Application:Speller%20Targets:P3SpellerTask matrix TargetDefinitions= 6 { Display } { matrix 4 { Display Enter Display%20Size Icon%20File Sound%20File } L:%20Ja Ja 1 % 'Ja' R:%20Nein Nein 1 % 'Nein' F:%20PFLEGE <GOTO2> 1 % % B:%20OPTIONEN <GOTO3> 1 % % } { matrix 4 { Display Enter Display%20Size Icon%20File Sound%20File } L:%20HILFE <GOTO4> 1 % % R:%20K%d6RPER <GOTO5> 1 % % F:%20GER%c4TE <GOTO6> 1 % % B:%20ZUR%dcCK <BK> 1 % % } { matrix 4 { Display Enter Display%20Size Icon%20File Sound%20File } L:%20TASTATUR WIP:Key 1 % % R:%20PAUSE <PAUSE> 1 % % F:%20SLEEP <SLEEP> 1 % % B:%20ZUR%dcCK <BK> 1 % % } { matrix 4 { Display Enter Display%20Size Icon%20File Sound%20File } L:%20Schmerz Schmerz 1 % 'Schmerz' R:%20Atemnot Atemnot 1 % 'Atemnot' F:%20Anderes%20Problem Anderes 1 % 'Anderes%20Problem' B:%20ZUR%dcCK <BK> 1 % % } { matrix 4 { Display Enter Display%20Size Icon%20File Sound%20File } L:%20Hunger Hunger 1 % 'Hunger' R:%20Lage Lage 1 % 'Lage' F:%20M%fcdigkeit M%fcdigkeit 1 % 'M%fcdigkeit' B:%20ZUR%dcCK <BK> 1 % % } { matrix 4 { Display Enter Display%20Size Icon%20File Sound%20File } L:%20Rollstuhl Rollstuhl 1 % 'Rollstuhl' R:%20Atemger%e4t Atemger%e4t 1 % 'Atemger%e4t' F:%20M%fcdigkeit M%fcdigkeit 1 % 'M%fcdigkeit' B:%20ZUR%dcCK <BK> 1 % % } // speller target properties
Application:Speller%20Targets:P3SpellerTask intlist NumMatrixColumns= 6 1 1 1 1 1 1 6 1 % // display matrices' column number(s)
Application:Speller%20Targets:P3SpellerTask intlist NumMatrixRows= 6 4 4 4 4 4 4 6 0 % // display matrices' row number(s)
Application:Audio%20Stimuli:P3SpellerTask int AudioStimuliOn= 0 0 0 1 // Audio Stimuli Mode (0=no, 1=yes) (boolean)
Application:Audio%20Stimuli:P3SpellerTask matrix AudioStimuliRowsFiles= 6 { filename } sounds/1.wav sounds/2.wav sounds/3.wav sounds/4.wav sounds/5.wav sounds/6.wav // audio stimuli rows files
Application:Audio%20Stimuli:P3SpellerTask matrix AudioStimuliColsFiles= 6 { filename } sounds/a.wav sounds/b.wav sounds/c.wav sounds/d.wav sounds/e.wav sounds/f.wav // audio stimuli column files
Application:Speller%20Targets:P3SpellerTask floatlist TargetWidth= 1 16 0 0 100 // target width in percent of screen width
Application:Speller%20Targets:P3SpellerTask floatlist TargetHeight= 1 14 0 0 100 // target height in percent of screen height
Application:Speller%20Targets:P3SpellerTask floatlist TargetTextHeight= 1 12 0 0 100 // height of target labels in percent of screen height
Application:Speller%20Targets:P3SpellerTask stringlist BackgroundColor= 1 0x00000000 0x505050 % % // target background color (color)
Application:Speller%20Targets:P3SpellerTask stringlist TextColor= 1 0x00555555 0x505050 % % // text color (color)
Application:Speller%20Targets:P3SpellerTask stringlist TextColorIntensified= 1 0x00FFFFFF 0x505050 % % // intensified text color (color)
Application:Speller%20Targets:P3SpellerTask intlist IconHighlightMode= 1 1 1 0 4 // icon highlight method 0: Show/Hide, 1: Intensify, 2: Grayscale, 3: Invert, 4: Dim (enumeration)
Application:Speller%20Targets:P3SpellerTask floatlist IconHighlightFactor= 1 0.5 0.5 0 % // scale factor for highlighted icon pixel values
Application:Speller:P3SpellerTask int FirstActiveMenu= 1 1 1 % // Index of first active menu
Application:Speller:P3SpellerTask float StatusBarSize= 30 0 0 100 // size of status bar in percent of screen height
Application:Speller:P3SpellerTask float StatusBarTextHeight= 12 0 0 100 // size of status bar text in percent of screen height
Application:Speller:P3SpellerTask string TextToSpell= LRFBLRFB // character or string to spell in offline copy mode
Application:Speller:P3SpellerTask string TextResult= % // user spelling result
Application:Speller:P3SpellerTask int TestMode= 1 0 0 1 // select targets by clicking on their associated stimuli (0=no, 1=yes) (boolean)
Application:Speller:P3SpellerTask string DestinationAddress= % // network address for speller output in IP:port format
Application:Text%20Window:P3SpellerTask int TextWindowEnabled= 0 0 0 1 // Show Text Window (0=no, 1=yes) (boolean)
Application:Text%20Window:P3SpellerTask int TextWindowLeft= 600 0 0 % // Text Window X location
Application:Text%20Window:P3SpellerTask int TextWindowTop= 5 0 0 % // Text Window Y location
Application:Text%20Window:P3SpellerTask int TextWindowWidth= 512 512 0 % // Text Window Width
Application:Text%20Window:P3SpellerTask int TextWindowHeight= 512 512 0 % // Text Window Height
Application:Text%20Window:P3SpellerTask string TextWindowFontName= Courier // Text Window Font Name
Application:Text%20Window:P3SpellerTask int TextWindowFontSize= 10 4 1 % // Text Window Font Size
Application:Text%20Window:P3SpellerTask string TextWindowFilePath= % // Path for Saved Text File (directory)
Application:Human%20Interface%20Devices:KeystrokeFilter string KeystrokeStateName= % // State to be translated into keystrokes (0-F), empty for off
Application:Human%20Interface%20Devices:KeystrokeFilter string KeystrokeExpression= % // Expression that evaluates to a virtual keycode, empty for off
Application:Human%20Interface%20Devices:KeystrokeFilter string KeystrokeExpressionOnStartRun= % // Expression that initializes expression variables on StartRun
Connector:ConnectorOutput string ConnectorOutputAddress= localhost:5001 localhost:20321 % % // one or more IP:Port combinations, e.g. localhost:20321
Application:Localization:Localization string Language= Default Default % % // Language for user messages
Application:Localization:Localization matrix LocalizedStrings= { German } { TIME%20OUT%20!!! Waiting%20to%20start%20... Sleeping--Select%20SLEEP%20twice%20to%20resume Select%20SLEEP%20once%20more%20to%20resume Paused--Select%20PAUSE%20again%20to%20resume } Zeit%20abgelaufen! Warte%20... Angehalten:%20Zweimal%20SLEEP%20fur%20Weiter Angehalten:%20Noch%20einmal%20SLEEP%20fur%20Weiter Angehalten:%20Noch%20einmal%20PAUSE%20fur%20Weiter // Localized user messages
System string OperatorAddress= 127.0.0.1:4001
System:Core%20Connections string ApplicationIP= 141.75.33.117 // (readonly)(noedit)
System:Core%20Connections string ApplicationPort= 58922 // (readonly)(noedit)
System:Version matrix ApplicationVersion= { Framework Revision Build Config Protocol } 1 3.6%20BETA.5570.5 5570.5,%202016-10-12T19:27:33Z MSVC-17.0.61030.0-AMD64,%20release,%202016-10-16T14:03:14Z,%20user@user-PC USE_DYNAMIC_CRT:OFF%20USE_OPENMP:ON%20USE_PRECOMPILED_HEADERS:ON%20USE_ASSERTS_IN_RELEASE_BUILDS:OFF%20USE_EXTERNAL_QT:OFF%20Qt:5.3.2:C:/BCI2000.x64/build/CMakeFiles/extlib/qt-5.3.2/win32-amd64-msvc2012/bin/qmake.exe 2.3 // Application version information (noedit)(readonly)
System:Configuration matrix ApplicationFilterChain= 4 { Filter%20Name Position%20String } ConnectorInput 2.9999 P3SpellerTask 3 KeystrokeFilter 3.1 ConnectorOutput 3.9999 // Application filter chain (noedit)(readonly)
System:Configuration matrix Filters= 12 1 /3/ConnectorInput /3/P3SpellerTask /3/KeystrokeFilter /3/ConnectorOutput /1/DataIOFilter /1/gUSBampADC /1/BCI2000FileWriter /1/AlignmentFilter /1/TransmissionFilter /2/SpatialFilter /2/P3TemporalFilter /2/LinearClassifier // Filter Directory (noedit)(readonly)
Storage:Data%20Location:DataIOFilter string DataDirectory= ../data/WheelchairTraining ..\data % % // path to top level data directory (directory)
Storage:Session:DataIOFilter string SubjectName= WT-tacCopyNested Name % % // subject alias
Storage:Session:DataIOFilter string SubjectSession= 001 001 % % // three-digit session number
Storage:Session:DataIOFilter string SubjectRun= 00 00 % % // two-digit run number
Storage:Documentation:DataIOFilter string ID_System= % // BCI2000 System Code
Storage:Documentation:DataIOFilter string ID_Amp= % // BCI2000 Amp Code
Storage:Documentation:DataIOFilter string ID_Montage= % // BCI2000 Cap Montage Code
Visualize:Timing:DataIOFilter int VisualizeTiming= 0 1 0 1 // visualize system timing (0=no, 1=yes) (boolean)
Visualize:Source%20Signal:DataIOFilter int VisualizeSource= 1 1 0 1 // visualize raw brain signal (0=no, 1=yes) (boolean)
Visualize:Source%20Signal:DataIOFilter int VisualizeSourceDecimation= 1 auto % % // decimation factor for raw brain signal
Visualize:Source%20Signal:DataIOFilter int VisualizeSourceBufferSize= auto auto % % // number of blocks to aggregate before sending to operator
Visualize:Source%20Signal:DataIOFilter int VisualizeSourceTime= 2s 2s 0 % // how much time in Source visualization
Visualize:Source%20Signal:DataIOFilter int SourceMin= -100muV // raw signal vis Min Value
Visualize:Source%20Signal:DataIOFilter int SourceMax= 100muV // raw signal vis Max Value
Source:gUSBampADC int SamplingRate= 512 256Hz % % // the signal sampling rate
Source:gUSBampADC int SampleBlockSize= 8 1 % % // number of samples per block
Source:gUSBampADC int SourceCh= 12 auto 0 % // number of digitized channels total
Source:gUSBampADC list SourceChGain= 12 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033 0.033
Source:gUSBampADC list SourceChOffset= 12 0 0 0 0 0 0 0 0 0 0 0 0
Source:gUSBampADC list ChannelNames= 12 Fz Fc1 Fc2 C3 Cz C4 P3 Pz P4 O1 Oz O2
Source:gUSBamp:Acquisition:gUSBampADC int AcquisitionMode= 0 0 0 2 // data acquisition mode: 0: analog signal acquisition, 1: calibration signal, 2: impedance measurement (enumeration)
Source:gUSBamp:Acquisition:gUSBampADC int CommonGround= 1 0 0 1 // internally connect GNDs from all blocks: 0: false, 1: true (enumeration)
Source:gUSBamp:Acquisition:gUSBampADC int CommonReference= 1 0 0 1 // internally connect Refs from all blocks: 0: false, 1: true (enumeration)
Source:gUSBamp:DigitalIO:gUSBampADC int EnableDigitalInput= 0 0 0 1 // enable digital inputs (boolean)
Source:gUSBamp:DigitalIO:gUSBampADC int EnableDigitalOutput= 0 0 0 2 // enable digital output on block acquisition 0: off, 1: use expressions, 2: timing test (enumeration)
Source:gUSBamp:DigitalIO:gUSBampADC matrix DigitalOutputEx= 1 { Filter%20Name } % // Matrix of Expressions for digital output
Source:gUSBamp:Acquisition:gUSBampADC int DetectDataLoss= 0 0 0 1 // use gUSBamp counter mode to detect data loss (boolean)
Source:gUSBamp:Acquisition:gUSBampADC int NumBuffers= 2 5 2 % // IO queue length
Source:Buffering:gUSBampADC int SourceBufferSize= 2s 2s % % // size of data acquisition ring buffer (in blocks or seconds)
Source:gUSBamp:Multiple%20Devices:gUSBampADC list DeviceIDs= 1 auto // list of USBamps to be used (or auto)
Source:gUSBamp:Multiple%20Devices:gUSBampADC string DeviceIDMaster= auto // deviceID for the device whose SYNC goes to the slaves
Source:gUSBamp:Multiple%20Devices:gUSBampADC intlist SourceChList= 0 // list of channels to digitize, in terms of physical inputs numbered across all devices
Source:gUSBamp:Multiple%20Devices:gUSBampADC intlist SourceChDevices= 1 12 // number of digitized channels per device
Source:gUSBamp:DSP:gUSBampADC int FilterEnabled= 1 1 0 1 // Enable pass band filter (0=no, 1=yes)
Source:gUSBamp:DSP:gUSBampADC float FilterHighPass= 0.1 0.1 0 50 // high pass filter for pass band
Source:gUSBamp:DSP:gUSBampADC float FilterLowPass= 60 60 0 4000 // low pass filter for pass band
Source:gUSBamp:DSP:gUSBampADC int FilterModelOrder= 8 8 1 12 // filter model order for pass band
Source:gUSBamp:DSP:gUSBampADC int FilterType= 1 1 1 2 // filter type for pass band (1=BUTTERWORTH, 2=CHEBYSHEV)
Source:gUSBamp:DSP:gUSBampADC int NotchEnabled= 1 1 0 1 // Enable notch (0=no, 1=yes)
Source:gUSBamp:DSP:gUSBampADC float NotchHighPass= 48 58 0 70 // high pass filter for notch filter
Source:gUSBamp:DSP:gUSBampADC float NotchLowPass= 52 62 0 4000 // low pass filter for notch filter
Source:gUSBamp:DSP:gUSBampADC int NotchModelOrder= 4 4 1 10 // filter model order for notch filter
Source:gUSBamp:DSP:gUSBampADC int NotchType= 1 1 1 2 // filter type for pass band (1=CHEBYSHEV, 2=BUTTERWORTH)
Storage:BCI2000FileWriter string FileFormat= dat // format of data file (readonly)
Storage:Documentation:BCI2000FileWriter string StorageTime= % // time of beginning of data storage
Source:Alignment:AlignmentFilter int AlignChannels= 1 0 0 1 // align channels in time (0=no, 1=yes)
Source:Alignment:AlignmentFilter floatlist SourceChTimeOffset= 0 0 % % // time offsets for all source channels (may be empty)
Source:Online%20Processing:TransmissionFilter list TransmitChList= 6 1 2 3 5 7 9 // list of transmitted channels: Channel names may contain * and ? wildcards, and character ranges enclosed in []; wildcard patterns may be negated by prepending an exclamation mark. Ranges of channels may be specified using : or - to separate begin from end.
System:Protocol:EventLink int EventLink= 1 1 0 1 // Send events from Operator to Source module (boolean)
Storage:Data%20Location:RunManager string DataFile= $%7bSubjectName%7d$%7bSubjectSession%7d/$%7bSubjectName%7dS$%7bSubjectSession%7dR$%7bSubjectRun%7d.$%7bFileFormat%7d // name of data file relative to DataDirectory
System:Core%20Connections string SignalSourceIP= 141.75.33.117 // (readonly)(noedit)
System:Core%20Connections string SignalSourcePort= 58928 // (readonly)(noedit)
System:Version matrix SignalSourceVersion= { Framework Revision Build Config Protocol } 1 3.6%20BETA.5570.5 5570.5,%202016-10-12T19:27:33Z MSVC-17.0.61030.0-AMD64,%20release,%202016-10-16T14:03:14Z,%20user@user-PC USE_DYNAMIC_CRT:OFF%20USE_OPENMP:ON%20USE_PRECOMPILED_HEADERS:ON%20USE_ASSERTS_IN_RELEASE_BUILDS:OFF%20USE_EXTERNAL_QT:OFF 2.3 // SignalSource version information (noedit)(readonly)
System:Configuration matrix SignalSourceFilterChain= 8 { Filter%20Name Position%20String } DataIOFilter 0 gUSBampADC 1 NullFileWriter 1 BCI2000FileWriter 1 EDFFileWriter 1 GDFFileWriter 1 AlignmentFilter 1.1 TransmissionFilter 1.2 // SignalSource filter chain (noedit)(readonly)
Visualize:Processing%20Stages int VisualizeAlignmentFilter= 0 0 0 1 // Visualize AlignmentFilter output (boolean)
Visualize:Processing%20Stages int VisualizeTransmissionFilter= 0 0 0 1 // Visualize TransmissionFilter output (boolean)
Filtering:SpatialFilter int SpatialFilterType= 0 2 0 3 // spatial filter type 0: none, 1: full matrix, 2: sparse matrix, 3: common average reference (CAR) (enumeration)
Filtering:SpatialFilter:SpatialFilter matrix SpatialFilter= 4 4 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 % % // columns represent input channels, rows represent output channels
Filtering:SpatialFilter:SpatialFilter intlist SpatialFilterCAROutput= 0 // when using CAR filter type: list of output channels, or empty for all channels
Filtering:SpatialFilter:SpatialFilter int SpatialFilterMissingChannels= 1 0 0 1 // how to handle missing channels 0: ignore, 1: report error (enumeration)
Filtering:P3TemporalFilter int EpochLength= 800ms 500ms 0 % // Length of data epoch from stimulus onset
Filtering:P3TemporalFilter int EpochsToAverage= 8 1 0 % // Number of epochs to average
Filtering:P3TemporalFilter int SingleEpochMode= 0 0 0 1 // Report result after each epoch (boolean)
Visualize:P3TemporalFilter int VisualizeP3TemporalFiltering= 0 0 0 1 // Visualize averaged epochs (0=no 1=yes) (boolean)
Visualize:P3TemporalFilter int TargetERPChannel= 1 1 % % // Input channel for which to display ERP data
Filtering:LinearClassifier matrix Classifier= 494 { input%20channel input%20element%20(bin) output%20channel weight } 1 53 1 2.68025 1 54 1 2.68025 1 55 1 2.68025 1 56 1 2.68025 1 57 1 2.68025 1 58 1 2.68025 1 59 1 2.68025 1 60 1 2.68025 1 61 1 2.68025 1 62 1 2.68025 1 63 1 2.68025 1 64 1 2.68025 1 65 1 2.68025 1 66 1 2.68025 1 67 1 2.68025 1 68 1 2.68025 1 69 1 2.68025 1 70 1 2.68025 1 71 1 2.68025 1 72 1 2.68025 1 73 1 2.68025 1 74 1 2.68025 1 75 1 2.68025 1 76 1 2.68025 1 77 1 2.68025 1 78 1 2.68025 1 209 1 -3.27388 1 210 1 -3.27388 1 211 1 -3.27388 1 212 1 -3.27388 1 213 1 -3.27388 1 214 1 -3.27388 1 215 1 -3.27388 1 216 1 -3.27388 1 217 1 -3.27388 1 218 1 -3.27388 1 219 1 -3.27388 1 220 1 -3.27388 1 221 1 -3.27388 1 222 1 -3.27388 1 223 1 -3.27388 1 224 1 -3.27388 1 225 1 -3.27388 1 226 1 -3.27388 1 227 1 -3.27388 1 228 1 -3.27388 1 229 1 -3.27388 1 230 1 -3.27388 1 231 1 -3.27388 1 232 1 -3.27388 1 233 1 -3.27388 1 234 1 -3.27388 2 1 1 -3.60389 2 2 1 -3.60389 2 3 1 -3.60389 2 4 1 -3.60389 2 5 1 -3.60389 2 6 1 -3.60389 2 7 1 -3.60389 2 8 1 -3.60389 2 9 1 -3.60389 2 10 1 -3.60389 2 11 1 -3.60389 2 12 1 -3.60389 2 13 1 -3.60389 2 14 1 -3.60389 2 15 1 -3.60389 2 16 1 -3.60389 2 17 1 -3.60389 2 18 1 -3.60389 2 19 1 -3.60389 2 20 1 -3.60389 2 21 1 -3.60389 2 22 1 -3.60389 2 23 1 -3.60389 2 24 1 -3.60389 2 25 1 -3.60389 2 26 1 -3.60389 2 131 1 2.74505 2 132 1 2.74505 2 133 1 2.74505 2 134 1 2.74505 2 135 1 2.74505 2 136 1 2.74505 2 137 1 2.74505 2 138 1 2.74505 2 139 1 2.74505 2 140 1 2.74505 2 141 1 2.74505 2 142 1 2.74505 2 143 1 2.74505 2 144 1 2.74505 2 145 1 2.74505 2 146 1 2.74505 2 147 1 2.74505 2 148 1 2.74505 2 149 1 2.74505 2 150 1 2.74505 2 151 1 2.74505 2 152 1 2.74505 2 153 1 2.74505 2 154 1 2.74505 2 155 1 2.74505 2 156 1 2.74505 2 313 1 2.38607 2 314 1 2.38607 2 315 1 2.38607 2 316 1 2.38607 2 317 1 2.38607 2 318 1 2.38607 2 319 1 2.38607 2 320 1 2.38607 2 321 1 2.38607 2 322 1 2.38607 2 323 1 2.38607 2 324 1 2.38607 2 325 1 2.38607 2 326 1 2.38607 2 327 1 2.38607 2 328 1 2.38607 2 329 1 2.38607 2 330 1 2.38607 2 331 1 2.38607 2 332 1 2.38607 2 333 1 2.38607 2 334 1 2.38607 2 335 1 2.38607 2 336 1 2.38607 2 337 1 2.38607 2 338 1 2.38607 3 53 1 5.61406 3 54 1 5.61406 3 55 1 5.61406 3 56 1 5.61406 3 57 1 5.61406 3 58 1 5.61406 3 59 1 5.61406 3 60 1 5.61406 3 61 1 5.61406 3 62 1 5.61406 3 63 1 5.61406 3 64 1 5.61406 3 65 1 5.61406 3 66 1 5.61406 3 67 1 5.61406 3 68 1 5.61406 3 69 1 5.61406 3 70 1 5.61406 3 71 1 5.61406 3 72 1 5.61406 3 73 1 5.61406 3 74 1 5.61406 3 75 1 5.61406 3 76 1 5.61406 3 77 1 5.61406 3 78 1 5.61406 3 79 1 -4.49599 3 80 1 -4.49599 3 81 1 -4.49599 3 82 1 -4.49599 3 83 1 -4.49599 3 84 1 -4.49599 3 85 1 -4.49599 3 86 1 -4.49599 3 87 1 -4.49599 3 88 1 -4.49599 3 89 1 -4.49599 3 90 1 -4.49599 3 91 1 -4.49599 3 92 1 -4.49599 3 93 1 -4.49599 3 94 1 -4.49599 3 95 1 -4.49599 3 96 1 -4.49599 3 97 1 -4.49599 3 98 1 -4.49599 3 99 1 -4.49599 3 100 1 -4.49599 3 101 1 -4.49599 3 102 1 -4.49599 3 103 1 -4.49599 3 104 1 -4.49599 3 365 1 -1.32178 3 366 1 -1.32178 3 367 1 -1.32178 3 368 1 -1.32178 3 369 1 -1.32178 3 370 1 -1.32178 3 371 1 -1.32178 3 372 1 -1.32178 3 373 1 -1.32178 3 374 1 -1.32178 3 375 1 -1.32178 3 376 1 -1.32178 3 377 1 -1.32178 3 378 1 -1.32178 3 379 1 -1.32178 3 380 1 -1.32178 3 381 1 -1.32178 3 382 1 -1.32178 3 383 1 -1.32178 3 384 1 -1.32178 3 385 1 -1.32178 3 386 1 -1.32178 3 387 1 -1.32178 3 388 1 -1.32178 3 389 1 -1.32178 3 390 1 -1.32178 4 53 1 -10 4 54 1 -10 4 55 1 -10 4 56 1 -10 4 57 1 -10 4 58 1 -10 4 59 1 -10 4 60 1 -10 4 61 1 -10 4 62 1 -10 4 63 1 -10 4 64 1 -10 4 65 1 -10 4 66 1 -10 4 67 1 -10 4 68 1 -10 4 69 1 -10 4 70 1 -10 4 71 1 -10 4 72 1 -10 4 73 1 -10 4 74 1 -10 4 75 1 -10 4 76 1 -10 4 77 1 -10 4 78 1 -10 4 209 1 8.09571 4 210 1 8.09571 4 211 1 8.09571 4 212 1 8.09571 4 213 1 8.09571 4 214 1 8.09571 4 215 1 8.09571 4 216 1 8.09571 4 217 1 8.09571 4 218 1 8.09571 4 219 1 8.09571 4 220 1 8.09571 4 221 1 8.09571 4 222 1 8.09571 4 223 1 8.09571 4 224 1 8.09571 4 225 1 8.09571 4 226 1 8.09571 4 227 1 8.09571 4 228 1 8.09571 4 229 1 8.09571 4 230 1 8.09571 4 231 1 8.09571 4 232 1 8.09571 4 233 1 8.09571 4 234 1 8.09571 4 287 1 2.91278 4 288 1 2.91278 4 289 1 2.91278 4 290 1 2.91278 4 291 1 2.91278 4 292 1 2.91278 4 293 1 2.91278 4 294 1 2.91278 4 295 1 2.91278 4 296 1 2.91278 4 297 1 2.91278 4 298 1 2.91278 4 299 1 2.91278 4 300 1 2.91278 4 301 1 2.91278 4 302 1 2.91278 4 303 1 2.91278 4 304 1 2.91278 4 305 1 2.91278 4 306 1 2.91278 4 307 1 2.91278 4 308 1 2.91278 4 309 1 2.91278 4 310 1 2.91278 4 311 1 2.91278 4 312 1 2.91278 5 79 1 4.49899 5 80 1 4.49899 5 81 1 4.49899 5 82 1 4.49899 5 83 1 4.49899 5 84 1 4.49899 5 85 1 4.49899 5 86 1 4.49899 5 87 1 4.49899 5 88 1 4.49899 5 89 1 4.49899 5 90 1 4.49899 5 91 1 4.49899 5 92 1 4.49899 5 93 1 4.49899 5 94 1 4.49899 5 95 1 4.49899 5 96 1 4.49899 5 97 1 4.49899 5 98 1 4.49899 5 99 1 4.49899 5 100 1 4.49899 5 101 1 4.49899 5 102 1 4.49899 5 103 1 4.49899 5 104 1 4.49899 5 105 1 3.21251 5 106 1 3.21251 5 107 1 3.21Line truncated
System:Core%20Connections string SignalProcessingIP= 141.75.33.117 // (readonly)(noedit)
System:Core%20Connections string SignalProcessingPort= 58937 // (readonly)(noedit)
System:Version matrix SignalProcessingVersion= { Framework Revision Build Config Protocol } 1 3.6%20BETA.5570.5 5570.5,%202016-10-12T19:27:33Z MSVC-17.0.61030.0-AMD64,%20release,%202016-10-16T14:03:14Z,%20user@user-PC USE_DYNAMIC_CRT:OFF%20USE_OPENMP:ON%20USE_PRECOMPILED_HEADERS:ON%20USE_ASSERTS_IN_RELEASE_BUILDS:OFF%20USE_EXTERNAL_QT:OFF 2.3 // SignalProcessing version information (noedit)(readonly)
System:Configuration matrix SignalProcessingFilterChain= 3 { Filter%20Name Position%20String } SpatialFilter 2.A P3TemporalFilter 2.B LinearClassifier 2.C // SignalProcessing filter chain (noedit)(readonly)
Visualize:Processing%20Stages int VisualizeSpatialFilter= 0 0 0 1 // Visualize SpatialFilter output (boolean)
Visualize:Processing%20Stages int VisualizeLinearClassifier= 0 0 0 1 // Visualize LinearClassifier output (boolean)
System:Randomization int RandomSeed= 9689 0 % % // seed for the BCI2000 pseudo random number generator (readonly)
System:Randomization int RandomizationWarning= 1 1 0 1 // warn if subsequent Runs have identical RandomSeed value (boolean)
-104
View File
@@ -1,104 +0,0 @@
# imports
from socket import *
import threading
import queue
import time
# connect to BCI2000 in a new thread
class BCI2000ReceiverThread(threading.Thread):
def __init__(self, id, phaseInSequenceQueue, StimulusCodeQueue):
threading.Thread.__init__(self, name="BCI2000ReceiverThread%d" % (id,))
self.phaseInSequenceQueue=phaseInSequenceQueue
self.StimulusCodeQueue=StimulusCodeQueue
self.running=True
self.firstData = True
self.repeat = 0
#udp settings
self.host = "localhost"
self.port = 5003 # BCI2000
self.UNITY_PORT = 5002 # unity
self.FEATHER_PORT = 5001 # feather gui
self.go = True
self.buf = 1024
self.addr = (self.host,self.port)
#connect to udp socket
self.UDPSock = socket(AF_INET,SOCK_DGRAM)
self.UDPSock.bind(self.addr) # BIND to LISTEN
print('%s initialized to %s at port %s' % (self.getName(), self.host, self.port))
print('Relaying SelectedTargets to port -- %s ---' % self.UNITY_PORT)
self.relay_unity = socket(AF_INET,SOCK_DGRAM) # UDP RELAY TO UNITY
print('Relaying all to port -- %s ---' % self.FEATHER_PORT)
self.relay_feather = socket(AF_INET,SOCK_DGRAM) # UDP RELAY TO FEATHER
def kill(self):
self.running=False
log('%s terminated' % (self.getName()))
def run(self):
# define a new contains method comparing strings
def contains(theString, theQueryValue):
return theString.find(theQueryValue) > -1
while self.running:
# try to receive from BCI2000 AppConnector
try:
self.data,self.addr = self.UDPSock.recvfrom(self.buf)
#print(self.data) #####
if self.firstData:
print ("UDP is receiving...")
self.firstData=0
if "SelectedTarget 0" in self.data:
self.go = True
if "SelectedTarget" in self.data and "SelectedTarget 0" not in self.data and self.go == True:
print("Relaying Command to Unity: ", self.data)
self.relay_unity.sendto(self.data, (self.host, self.UNITY_PORT))
self.go = False
if contains(self.data, "PhaseInSequence"):
phaseInSequence=int(self.data.replace('PhaseInSequence ',''))
self.phaseInSequenceQueue.put(phaseInSequence)
#print (phaseInSequence)
if contains(self.data, "StimulusCode "):
print("Relaying Command to TactileBCIfilter: ", self.data)
self.relay_feather.sendto(self.data, (self.host, self.FEATHER_PORT))
StimulusCode=int(self.data.replace('StimulusCode ',''))
if not StimulusCode == 0 and self.repeat == 0:
self.repeat = 1
self.StimulusCodeQueue.put(StimulusCode)
self.Code = StimulusCode
elif StimulusCode == 0:
self.repeat = 0
# print (StimulusCode)
# wait a short time and try again
except error:
time.sleep(0.0001)
print('sleeping')
continue
# def run(self):
# a = 1
def returnProgramStatus(self):
return self.running
### M A I N P R O G R A M M ###
# # initialize queue
# phaseInSequenceQueue = queue.Queue()
# StimulusCodeQueue = queue.Queue()
# RunApplication = True
# #start BCI2000ReceiverThread
# BCI2000ReceiverThread1=BCI2000ReceiverThread(1, phaseInSequenceQueue, StimulusCodeQueue)
# BCI2000ReceiverThread1.start()
+37 -79
View File
@@ -11,11 +11,6 @@ import tkinter.filedialog
import subprocess
import configparser
import os
# import queue
# own code:
# from questionnaire import quest
# from wheelchairAdapter import BCI2000ReceiverThread
# TODO Eventuell updatefunktion über git pull mit einbauen!
@@ -58,26 +53,24 @@ class PythonBCIgui:
self.Bp300 = makeBtn(self, "P300 Klassifizierung", "orange", self.btn_p300)
self.BtacCopy = makeBtn(self, "Freies Buchstabieren", "lightblue", self.btn_tacCopy)
self.BtacCopy = makeBtn(self, "Freies Buchstabieren:\nTest", "lightblue", self.btn_tacCopy)
self.BtacCopyNested = makeBtn(self, "Freies Buchstabieren:\nKategorien", "lightyellow", self.btn_tacCopyNested)
self.BvisCopy = makeBtn(self, "Freies Buchstabieren", "lightblue", self.btn_visCopy)
self.BtacSimul = makeBtn(self, "Rollstuhlsimulator", "lightyellow", self.btn_tacSimul)
# self.Bquest = makeBtnSmall(self, "Fragebogen", "green", self.btn_quest, TOP)
frame.rowconfigure((0,1), weight=1) # make buttons stretch when
frame.rowconfigure((0,1), weight=1) # make buttons stretch when # TODO Remove
frame.columnconfigure((0,2), weight=1) # when window is resized
# TODO Hilfestellung nach jedem Button aufploppen lassen:
# Was tun? Wo klicken? Welche File wo laden?
self.pack_layout()
# 1. FILTER ##################################
# FILTER ##################################
def btn_tacFilter(self):
print('Starte TactileBCIFilter.exe')
subprocess.Popen(config['PATH']['tactilebcifilter'] + r'\TactileBCIFilter.exe')
# 2. KALIBIERUNGEN ###########################
# KALIBRIERUNGEN ###########################
def btn_tacCal(self):
print('starte taktile Kalibrierung')
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\Operator.exe', '--OnConnect', '-LOAD PARAMETERFILE TactileCalibration.prm'])
@@ -92,18 +85,24 @@ class PythonBCIgui:
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3SignalProcessing.exe', '127.0.0.1'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3Speller.exe', '127.0.0.1'])
# 3. P300 Classifier #########################
# P300 Classifier #########################
def btn_p300(self):
print('Starte P300Classifier.exe')
subprocess.Popen(config['PATH']['bci2000'] + r'\tools\P300Classifier\P300Classifier.exe')
# 4. COPYSPELL ###########################
# COPYSPELL ###########################
def btn_tacCopy(self):
print('Starte taktilen Speller')
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\Operator.exe', '--OnConnect', '-LOAD PARAMETERFILE TactileCopy.prm'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\gUSBampSource.exe', '127.0.0.1'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3SignalProcessing.exe', '127.0.0.1'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3Speller.exe', '127.0.0.1'])
def btn_tacCopyNested(self):
print('Starte taktilen Speller') # TODO Prints rausnehmen
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\Operator.exe', '--OnConnect', '-LOAD PARAMETERFILE TactileCopyNested.prm'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\gUSBampSource.exe', '127.0.0.1'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3SignalProcessing.exe', '127.0.0.1'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3Speller.exe', '127.0.0.1'])
def btn_visCopy(self):
print('Starte visuellen Speller')
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\Operator.exe', '--OnConnect', '-LOAD PARAMETERFILE gUSBamp_visual_freeSpeller.prm'])
@@ -111,53 +110,28 @@ class PythonBCIgui:
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3SignalProcessing.exe', '127.0.0.1'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3Speller.exe', '127.0.0.1'])
# 5. WHEELCHAIR SIMULATOR ###########################
def btn_tacSimul(self):
print('Starte Wheelchair Simulator')
# BCI2000ReceiverThread1.start()
subprocess.Popen(config['PATH']['wheelchairsimulator'] + r'\Wheels_Occlusion_AutoLog.exe')
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\Operator.exe', '--OnConnect', '-LOAD PARAMETERFILE TactileDrive.prm'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\gUSBampSource.exe', '127.0.0.1'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3SignalProcessing.exe', '127.0.0.1'])
subprocess.Popen([config['PATH']['bci2000'] + r'\prog\P3Speller.exe', '127.0.0.1'])
# QUESTIONNAIRE PROMPT ###########################
# def btn_quest(self):
#root.destroy()
# self.startQuestions(self.paradigmText)
# def startQuestions(self, para):
# print('Starte Fragebogen')
# q = quest(para)
# q.qSatisfaction()
# q.qExhaustion()
# q.qSubjControl()
# q.qCtrlChange()
# q.save()
# This Function packs all the Buttons into the Layout
def pack_layout(self):
# This Function packs all the Buttons into the Layout
if config['SETTINGS']['paradigm'] == 'Tactile':
self.BtacFilter.pack()
self.BtacCal.pack()
self.Bp300.pack()
self.BtacCopy.pack()
self.BtacCopyNested.pack()
elif config['SETTINGS']['paradigm'] == 'Visual':
self.BvisCal.pack()
self.Bp300.pack()
if config['SETTINGS']['paradigm'] == 'Tactile':
self.BtacCopy.pack()
self.BtacSimul.pack()
elif config['SETTINGS']['paradigm'] == 'Visual':
self.Bp300.pack()
self.BvisCopy.pack()
# This Function removes all the Buttons from the Layout
def unpack_layout(self):
# This Function removes all the Buttons from the Layout
# Add ALL your Buttons here
self.BtacFilter.pack_forget()
self.BtacCal.pack_forget()
self.BvisCal.pack_forget()
self.Bp300.pack_forget()
self.BtacCopy.pack_forget()
self.BtacSimul.pack_forget()
self.BtacCopyNested.pack_forget()
self.BvisCopy.pack_forget()
def global_close(self, window):
@@ -173,18 +147,24 @@ config.read(configPath)
def setVisual():
config['SETTINGS']['paradigm'] = 'Visual'
config.write(open(configPath,'w'))
app.Lparadigm.config(text = config['SETTINGS']['paradigm'] + ' BCI')
app.unpack_layout()
app.pack_layout()
if config['SETTINGS']['paradigm'] == 'Visual':
return
else:
config['SETTINGS']['paradigm'] = 'Visual'
config.write(open(configPath,'w'))
app.Lparadigm.config(text = config['SETTINGS']['paradigm'] + ' BCI')
app.unpack_layout()
app.pack_layout()
def setTactile():
config['SETTINGS']['paradigm'] = 'Tactile'
config.write(open(configPath,'w'))
app.Lparadigm.config(text = config['SETTINGS']['paradigm'] + ' BCI')
app.unpack_layout()
app.pack_layout()
if config['SETTINGS']['paradigm'] == 'Tactile':
return
else:
config['SETTINGS']['paradigm'] = 'Tactile'
config.write(open(configPath,'w'))
app.Lparadigm.config(text = config['SETTINGS']['paradigm'] + ' BCI')
app.unpack_layout()
app.pack_layout()
root = tkinter.Tk()
root.title('PythonBCIgui v' + str(__version__))
@@ -207,24 +187,13 @@ def setPathTactileBCIFilter():
config['PATH']['tactilebcifilter'] = tmpPath
config.write(open(configPath,'w'))
def setPathWheelchair():
tkinter.messagebox.showinfo('Konfiguration', 'Bitte wählen Sie nun den Ordner aus, in dem sich die Wheels_Occlusion_AutoLog.exe befindet.')
tmpPath = tkinter.filedialog.askdirectory()
if not tmpPath:
pass
else:
config['PATH']['wheelchairsimulator'] = tmpPath
config.write(open(configPath,'w'))
def setConfigDefault():
# config['PATH']['tactilebcifilter'] = r'C:/Users/bci/Desktop/Qt Filter Program/build-TactileBCIFilter-Desktop_Qt_5_15_0_MinGW_32_bit-Release/release'
# config['PATH']['bci2000'] = r'C:/BCI2000/BCI2000 v3.6.beta.R5570/BCI2000.x64'
# config['PATH']['wheelchairsimulator'] = r'C:\Users\bci\Desktop\Wheelchair'
config['PATH']['tactilebcifilter'] = r'C:\Users\EEG-Gruppe\Desktop\Arduino\Qt Tactile BCI Filter App\Executable'
config['PATH']['bci2000'] = r'C:\Users\EEG-Gruppe\Desktop\BCI Paket\Paradigmen\Tactile\BCI2000\BCI2000-06-13\BCI2000src'
config['PATH']['wheelchairsimulator'] = r'C:\Users\EEG-Gruppe\Desktop\Wheelchair'
config['SETTINGS']['paradigm'] = r'Visual'
config['SETTINGS']['hardware'] = r'gUSBamp'
config['SETTINGS']['hardware'] = r'gUSBamp' # TODO Add gNautilus parameters
config.write(open(configPath,'w'))
app.Lparadigm.config(text = config['SETTINGS']['paradigm'] + ' BCI')
app.unpack_layout()
@@ -256,20 +225,9 @@ leistenMenu.add_cascade(label="Pfade", menu=pathMenu)
pathMenu.add_command(label="BCI2000", command=setPathBci2000)
pathMenu.add_separator()
pathMenu.add_command(label="TactileBCIFilter", command=setPathTactileBCIFilter)
pathMenu.add_separator()
pathMenu.add_command(label="Wheelchair Simulator", command=setPathWheelchair)
root.config(menu = leistenMenu)
# # initialize queue for wheelchairadapter
# phaseInSequenceQueue = queue.Queue()
# StimulusCodeQueue = queue.Queue()
# RunApplication = True
# # initialize BCI2000ReceiverThread for wheelchairadapter
# BCI2000ReceiverThread1 = BCI2000ReceiverThread(1, phaseInSequenceQueue, StimulusCodeQueue)
app = PythonBCIgui(root)
root.mainloop()
#root.destroy() # optional;
+3 -3
View File
@@ -1,9 +1,9 @@
[SETTINGS]
paradigm = Tactile
paradigm = Visual
hardware = gUSBamp
[PATH]
bci2000 = C:/BCI2000/BCI2000 v3.6.beta.R5570/BCI2000.x64
tactilebcifilter = C:/Users/bci/Desktop/Qt Filter Program/build-TactileBCIFilter-Desktop_Qt_5_15_0_MinGW_32_bit-Release/release
bci2000 = C:\Users\EEG-Gruppe\Desktop\BCI Paket\Paradigmen\Tactile\BCI2000\BCI2000-06-13\BCI2000src
tactilebcifilter = C:\Users\EEG-Gruppe\Desktop\Arduino\Qt Tactile BCI Filter App\Executable
wheelchairsimulator = C:\Users\bci\Desktop\Wheelchair
-1
View File
@@ -1 +0,0 @@
python3 ./app.py