File tree Expand file tree Collapse file tree 3 files changed +73
-1
lines changed Expand file tree Collapse file tree 3 files changed +73
-1
lines changed Original file line number Diff line number Diff line change 1+ cd ..
2+
3+ cfg.device = ' Scanner' ;
4+
5+ cfg.numTriggers = 4 ;
6+
7+ cfg.triggerKey = ' space' ;
8+
9+ KbName(' UnifyKeyNames' );
10+
11+ wait4Trigger(cfg )
Original file line number Diff line number Diff line change 1111
1212 responseKey = KbName(find(keyCode ));
1313
14- if strcmp(responseKey ,' space' )
14+ if strcmp(responseKey , ' space' )
1515 fprintf(' starting the experiment....\n ' );
1616 break
1717 end
Original file line number Diff line number Diff line change 1+ function wait4Trigger(cfg )
2+
3+ triggerCounter = 0 ;
4+
5+ if strcmp(cfg .device , ' Scanner' )
6+
7+ msg = ' Waiting for trigger' ;
8+ talkToMe(cfg , msg )
9+
10+ while triggerCounter < cfg .numTriggers
11+
12+ keyCode = []; % #ok<NASGU>
13+
14+ [~ , keyCode ] = KbPressWait(-1 );
15+
16+ if strcmp(KbName(keyCode ), cfg .triggerKey )
17+
18+ triggerCounter = triggerCounter + 1 ;
19+
20+ msg = sprintf(' Trigger %i ' , triggerCounter );
21+ talkToMe(cfg , msg )
22+
23+ pauseBetweenTriggers(cfg )
24+
25+ end
26+ end
27+ end
28+ end
29+
30+
31+ function talkToMe(cfg , msg )
32+
33+ fprintf([msg , ' \n ' ]);
34+
35+ if isfield(cfg , ' win' )
36+
37+ DrawFormattedText(cfg .win , msg ,...
38+ ' center' , ' center' , cfg .textColor );
39+
40+ Screen(' Flip' , cfg .win );
41+
42+ end
43+
44+ end
45+
46+
47+ function pauseBetweenTriggers(cfg )
48+ % we pause between triggers for half a repetition time or 500 ms if no RT
49+ % is specified.
50+ % we do this otherwise KbWait and KbPressWait might be too fast and could
51+ % catch several triggers in one go.
52+
53+ if isfield(cfg , ' repetitionTime' )
54+ waitTime = cgf .repetitionTime / 2 ;
55+ else
56+ waitTime = .5 ;
57+ end
58+
59+ WaitSecs(waitTime );
60+
61+ end
You can’t perform that action at this time.
0 commit comments