Page 1 of 1

P300 alphabet

Posted: 15 Feb 2010, 20:00
by Ray Ma
Hello,

We are trying to implement our P300 project which
(1) intensifies P300 alphabet symbol by symbol instead of intensifying column(row) by column(row), and
(2) chooses from multiple menus to be intensified instead of traversing the whole alphabet every time.

There seems to be already some way of choosing among multiple menus in the current implementation of P3SpellerTask, and I played with it a bit but didn't figure out how to make it work.

Can anyone give us some advice how to quickly get (1) and (2) working? Thanks very much!

Ray

Posted: 17 Feb 2010, 09:35
by mellinger
Ray,

(1) may be achieved by a slight modification to the function P3SpellerTask::LoadMenu() in BCI2000/src/core/Application/P3Speller/P3SpellerTask.cpp. In the loop starting from line 998, stimuli are associated with rows and columns. For your purposes, each stimulus needs its own stimulus code rather than being part of a row and a column.

This can be done by modifying the code as follows:

Comment out lines 1002-1003. In their place, add a line

Code: Select all

Association& stimSet = ioAssociations[ i + 1 ];
Comment out lines 1023-1024. In their place, add

Code: Select all

stimSet.Add( pTarget );
Similarly, for lines 1042-1043, add

Code: Select all

stimSet.Add( pTextStimulus );
And for lines 1055-1056:

Code: Select all

stimSet.Add( pIcon );
(2) I don't understand what you intend to to. Do you want to present different menus during a single intensification sequence?

HTH,
Juergen

Posted: 17 Feb 2010, 18:58
by Ray Ma
Hi Juergen,

Thanks very much for your timely reply! Your answer for (1) worked very well, and I've been successfully intensifying the symbols individually.

As for (2), I guess I just need to know how I can only intensify a subset of the alphabet, say {A, B, C, D}.

Thanks a lot!

Ray

Posted: 02 Mar 2010, 14:50
by Ray Ma
Well, I've found that by manipulating the mSequence and mSequencePos members, one should be able to display arbitrary subset of the alphabet. Thanks!
Ray Ma wrote:Hi Juergen,

Thanks very much for your timely reply! Your answer for (1) worked very well, and I've been successfully intensifying the symbols individually.

As for (2), I guess I just need to know how I can only intensify a subset of the alphabet, say {A, B, C, D}.

Thanks a lot!

Ray