How to set a pause after each round of flashings in P300?
Posted: 23 Jul 2010, 12:52
Hi,
We would like to set a pause of 500ms after each round of flashings. For example, in a 6x6 menu, there are 12 flashes in each round, we'd like to pause for 500ms after the flash of the 12th stimulus code.
We've tried to modify the code in OnNextStimulusCode, so it looks like:
It seems to have added a 500ms pause after the first round of flashings, however, BCI2000 said "Warning: DataIOFilter::EvaluateTiming: Roundtrip time approaches block duration (currently 83.44%)." and the following rounds of flashings are messed up, where instead of flashing 12 rows/columns, it only flashed a few of the 12 stimuli. We guessed it might be due to BCI2000 trying to skip some of the flashings in order to make up for the pause and keep the total duration of a round consistent with what it calculated from the ISI.
We are wondering how we should go about this. Could you give us some suggestions? Thanks very much!
Ray
We would like to set a pause of 500ms after each round of flashings. For example, in a 6x6 menu, there are 12 flashes in each round, we'd like to pause for 500ms after the flash of the 12th stimulus code.
We've tried to modify the code in OnNextStimulusCode, so it looks like:
Code: Select all
....
if( mSequencePos == mSequence.end() )
{
int numBlocks = 0.5 * 400 / 8;
int endSeq = mSequence.size()-1;
Associations()[ endSeq ].SetISIMaxDuration( numBlocks );
Associations()[ endSeq ].SetISIMinDuration( numBlocks );
int prevStimulusCode = *mSequence.rbegin();
// the rest are not changed
....
We are wondering how we should go about this. Could you give us some suggestions? Thanks very much!
Ray