|
46 | 46 |
|
47 | 47 | % dots are displayed on a square with a length in visual angle equal to the |
48 | 48 | % field of view |
49 | | - cfg.dot.number = round(cfg.dot.density * (cfg.screen.winWidth / cfg.screen.ppd)^2); |
| 49 | + cfg.dot.number = round(cfg.dot.density * ... |
| 50 | + (cfg.dot.matrixWidth / cfg.screen.ppd)^2); |
50 | 51 |
|
51 | 52 | [el] = eyeTracker('Calibration', cfg); |
52 | 53 |
|
|
55 | 56 | % Prepare for the output logfiles with all |
56 | 57 | logFile.extraColumns = cfg.extraColumns; |
57 | 58 | logFile = saveEventsFile('open', cfg, logFile); |
58 | | - |
| 59 | + |
59 | 60 | % prepare textures |
60 | 61 | cfg = apertureTexture('init', cfg); |
61 | 62 | cfg = dotTexture('init', cfg); |
|
101 | 102 |
|
102 | 103 | thisEvent.event = iEvent; |
103 | 104 | thisEvent.block = iBlock; |
| 105 | + thisEvent.keyName = 'n/a'; |
104 | 106 | thisEvent.duration = duration; |
105 | 107 | thisEvent.onset = onset - cfg.experimentStart; |
106 | 108 |
|
|
115 | 117 |
|
116 | 118 | % collect the responses and appends to the event structure for |
117 | 119 | % saving in the tsv file |
118 | | - responseEvents = collectAndSaveResponses(cfg, logFile, cfg.experimentStart); |
119 | | - |
120 | | - responseEvents = getResponse('check', cfg.keyboard.responseBox, cfg, getOnlyPress); |
121 | | - |
| 120 | + responseEvents = getResponse('check', cfg.keyboard.responseBox, cfg, ... |
| 121 | + getOnlyPress); |
| 122 | + |
122 | 123 | if isfield(responseEvents(1), 'onset') && ~isempty(responseEvents(1).onset) |
123 | | - |
| 124 | + |
124 | 125 | for iResp = 1:size(responseEvents, 1) |
125 | | - |
126 | | - responseEvents(iResp).event = iEvent; |
127 | | - responseEvents(iResp).block = iBlock; |
| 126 | + responseEvents(iResp).onset = ... |
| 127 | + responseEvents(iResp).onset - cfg.experimentStart; |
| 128 | + responseEvents(iResp).event = 'n/a'; |
| 129 | + responseEvents(iResp).block = 'n/a'; |
| 130 | + responseEvents(iResp).direction = 'n/a'; |
| 131 | + responseEvents(iResp).speed = 'n/a'; |
| 132 | + responseEvents(iResp).target = 'n/a'; |
| 133 | + if strcmp(responseEvents(iResp).keyName, 't') |
| 134 | + responseEvents(iResp).trial_type = 'trigger'; |
| 135 | + end |
128 | 136 | end |
129 | | - |
| 137 | + |
| 138 | + responseEvents(1).fileID = logFile.fileID; |
| 139 | + responseEvents(1).extraColumns = logFile.extraColumns; |
130 | 140 | saveEventsFile('save', cfg, responseEvents); |
131 | | - |
| 141 | + |
132 | 142 | end |
133 | | - |
| 143 | + |
134 | 144 | % wait for the inter-stimulus interval |
135 | 145 | WaitSecs(cfg.ISI); |
136 | 146 |
|
137 | | - getResponse('flush', cfg.keyboard.responseBox); |
138 | | - |
139 | 147 | end |
140 | | - |
| 148 | + |
141 | 149 | eyeTracker('StopRecordings', cfg); |
142 | | - |
| 150 | + |
143 | 151 | WaitSecs(cfg.IBI); |
| 152 | + |
| 153 | + % trigger monitoring |
| 154 | + triggerEvents = getResponse('check', cfg.keyboard.responseBox, cfg, ... |
| 155 | + getOnlyPress); |
| 156 | + |
| 157 | + if isfield(triggerEvents(1), 'onset') && ~isempty(triggerEvents(1).onset) |
| 158 | + |
| 159 | + for iResp = 1:size(triggerEvents, 1) |
| 160 | + triggerEvents(iResp).onset = ... |
| 161 | + triggerEvents(iResp).onset - cfg.experimentStart; |
| 162 | + triggerEvents(iResp).event = 'n/a'; |
| 163 | + triggerEvents(iResp).block = 'n/a'; |
| 164 | + triggerEvents(iResp).direction = 'n/a'; |
| 165 | + triggerEvents(iResp).speed = 'n/a'; |
| 166 | + triggerEvents(iResp).target = 'n/a'; |
| 167 | + if strcmp(triggerEvents(iResp).keyName, 't') |
| 168 | + triggerEvents(iResp).trial_type = 'trigger-baseline'; |
| 169 | + end |
| 170 | + end |
| 171 | + |
| 172 | + triggerEvents(1).fileID = logFile.fileID; |
| 173 | + triggerEvents(1).extraColumns = logFile.extraColumns; |
| 174 | + saveEventsFile('save', cfg, triggerEvents); |
| 175 | + |
| 176 | + end |
| 177 | + |
144 | 178 |
|
145 | 179 | end |
146 | 180 |
|
|
0 commit comments