Dear Juergen
We wrote a standalone program to receive packages from neuroscan Acquire directly and monitor the interval between the arrival of two packages, here is the result:
No software other than Neuroscan acquire is running.
The average interval is exactly 40ms. However, the intervals appears to be very irregular. I think this is the source of our problem.
To solve it we decided to modify the P3speller module so that a trigger signal will be sent through parallel port to our NuAmp amplifier right before the stimulus onset:
StimulusTask::Process
...
/* fall through */
case ISI:
{
if( mStimulusCode > 0 )
{ // Enter stimulus phase
if( ParallelPortOn==1)
{
// sent the stimulus code through parallel port to NuAmp
Out32(ParallelPortAddress,mStimulusCode);
}
mBlocksSinceStimulus = 0;
State( "StimulusCode" ) = mStimulusCode;
State( "StimulusType" ) = mAssociations[ mStimulusCode ].Contains( AttendedTarget() );
bcidbg( 2 ) << "Event: StimulusBegin for stimulus code #" << mStimulusCode << endl;
OnStimulusBegin( mStimulusCode );
mCodesPresented.insert( mStimulusCode );
mPhase = stimulus;
}
else
{ // Enter post sequence phase
State( "PhaseInSequence" ) = PhaseInSequence::PostSequence;
mPhase = postSequence;
}
} break;
...
And we are planing to add an event channel to the Source module for receiving the timing of the stimulus onset from the NuAmp
What's your opinion? Thanks.
Yichuan