Page 1 of 1

AppConnector

Posted: 26 Jan 2009, 16:59
by marialaura
Hi,

I'm trying to write an external application interface that uses BCI control signal. On wiki page I read

Messages consist of a name and a value that in the case of the control signal assumes the format (<channel>,<element>) -- followed by a float value in decimal ASCII representation. I wonder:

<channel> indicates the dimension of the cursor movement ?
i.e. 1D task channel is 1, in 2D task channel 1-x dimension, channel 2-y dimension)?

while <element>indicates the number of features (electrodes) that are used to control the movement in that dimension?
If I'm not wrong, then in the example given on wiki
Signal(1,2) 1e-8\n, means the control signal in the 1D is computed using the Ch2 and is value is 1-e8?

thanks,
Maria Laura

Posted: 28 Jan 2009, 12:17
by mellinger
Hi Maria Laura,

thanks for your question.

The meaning of control signal indices depends on the application module used. For the control signal in a typical cursor task, there are up to three channels holding a single element each, with channels 1, 2, and 3 corresponding to movement in x, y, and z direction. Unlike configuration parameters, the AppConnector uses zero-based indices, such that
Signal(1,0) 1e-2\n
would indicate a value of 1e-2 for the control signal representing movement in y direction.

Apart from the way it is used in the application module, the presence of output channels in the control signal depends on which channels are specified as output channels in the LinearClassifier's last column (note that channels are given in one-based notation in the LinearClassifier parameter, and in zero-based notation in the AppConnector protocol).

I modified the wiki page, so it should be more clear now.

Regards,
Juergen

Posted: 28 Jan 2009, 14:09
by marialaura
Great! Thanks for the explanation....but still a doubt come out when I run my program. From the prompt I can read...

Running 1
Recording 1
SourceTime 18189
....
...
...
Signal (1,0) -0.989963
Signal (2,0) 0.491524
Signal (3,0) 0

Why <element > is zero? :oops: [/img]. The classifier matrix is set as follow:
C3 9Hz 1 -0.5
Cz 12Hz 2 1
CP3 8Hz 3 1

Should this be translated in channel 1 holds a single element (C3), channel 2 holds a single element (Cz) and channel 3 holds a single element too (CP3)?!?!?!?

Again thanks in adavance.
Maria Laura

Posted: 29 Jan 2009, 05:57
by mellinger
Maria Laura,

you are right. In the AppConnector, indices are zero-based, this is different from parameter configuration, where indices are one-based.

In your case, there are 3 channels in the control signal, and these are numbered 1, 2 and 3 in the LinearClassifier parameter. Thus, the output of the AppConnector should read

Signal (0,0) -0.989963
Signal (1,0) 0.491524
Signal (2,0) 0

Thank you for pointing out the inconsistency. I'm correcting my previous post to avoid confusion.

Regards,
Juergen