Page 1 of 1

exceeds high range (0)

Posted: 17 May 2011, 22:54
by uday
I am using Emotiv source module to make a P300 spelling application. While I run the code with given instructions, I always encounter the following error:

2011-05-18T08:22:04 - AlignmentFilter::Preflight: Parameter "Source->SourceChGain": Value at index 1 is 0.033, exceeds high range (0).
2011-05-18T08:22:04 - AlignmentFilter::Preflight: Parameter "Source->SourceChGain": Value at index 2 is 0.033, exceeds high range (0).
2011-05-18T08:22:04 - AlignmentFilter::Preflight: Parameter "Source->SourceChGain": Value at index 3 is 0.033, exceeds high range (0).
----------------------------
----------------------------

for all indexes upto 14.
I could not change the high range value wherever the new parameter is set.
It always shows the high range value as 0
. Please let me know how to solve this problem.

Regards,
Shambhu

Re: exceeds high range (0)

Posted: 18 May 2011, 10:42
by jawilson
Shambhu,
I am looking into this problem. In the meantime, could you post the text of your parameter file? You can save the parameter file in the configuration window, open it in notepad, and past the contents here.
Thanks,
Adam

Re: exceeds high range (0)

Posted: 18 May 2011, 11:21
by jawilson
Ok, try this: set all of the SourceChGain values to 1. According to the instructions on the wiki (http://bci2000.org/wiki/index.php/Contributions:Emotiv):

Code: Select all

SourceChGain is a list of signal gains which transform the signal output to muV. The API already provides output in muV. The SourceChGain must be set to 1 for each channel. 
I would imagine this fixes the problem, but I do not have the Emotiv hardware here to test it.
Adam

Re: exceeds high range (0)

Posted: 18 May 2011, 22:28
by uday
With this parameter '1' also, the same problem occurs except the change of 'value'.
The parameters set for the DataIOFilter are as follows. I have disabled the Alignment filter so no any error related to alignment filter but there is also the same problem with highpass filter in EmotivADC as ("2011-05-19T07:57:40 - EmotivADC::Preflight: Parameter "Source->HighPassFilter": Value is 1, exceeds high range (0)".) I want to know from where this highRange variable takes the argument?
In Environment.cpp there is a section of code for this:-
if( checkHighRange )
{
double highRange = ::atof( highRangeStr.c_str() );
for( int j = 0; j < p.NumRows(); ++j )
for( int k = 0; k < p.NumColumns(); ++k )
{
double value = ::atof( p.Value( j, k ).ToString().c_str() );
if( value > highRange )
bcierr__ << DescribeValue( p, j, k )
<< " is "
<< value << ", exceeds high range (" << highRange << ")"
<< endl;
}
}

Source:Signal%20Properties:DataIOFilter int SourceCh= 14 14 1 % // number of digitized and stored channels
Source:Signal%20Properties:DataIOFilter int SampleBlockSize= 4 32 1 % // number of samples transmitted at a time
Source:Signal%20Properties:DataIOFilter int SamplingRate= 128 128Hz 1 % // sample rate
Source:Signal%20Properties:DataIOFilter list ChannelNames= 14 AF3 F7 F3 FC5 T7 P7 O1 O2 P8 T8 FC6 F4 F8 AF4 // list of channel names
Source:Signal%20Properties:DataIOFilter floatlist SourceChOffset= 14 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 channels in A/D
Source:Signal%20Properties:DataIOFilter floatlist SourceChGain= 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 // gain for each channel (A/D units -> muV)

Regards,
Shambhu

Re: exceeds high range (0)

Posted: 19 May 2011, 22:31
by uday
Now the problem is solved. The configuration parameter is changed in the following place:
Filtering: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
Instead of 0, I replaced the value by 1. Now it is working. Thanks to all.

Regards,
Shambhu