P300 alphabet

Forum for discussion on different user applications
Locked
Ray Ma
Posts: 14
Joined: 15 Feb 2010, 16:39

P300 alphabet

Post by Ray Ma » 15 Feb 2010, 20:00

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

mellinger
Posts: 1097
Joined: 12 Feb 2003, 11:06

Post by mellinger » 17 Feb 2010, 09:35

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

Ray Ma
Posts: 14
Joined: 15 Feb 2010, 16:39

Post by Ray Ma » 17 Feb 2010, 18:58

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

Ray Ma
Posts: 14
Joined: 15 Feb 2010, 16:39

Post by Ray Ma » 02 Mar 2010, 14:50

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

Locked

Who is online

Users browsing this forum: No registered users and 1 guest