+xHello,
We notice that when we test our script, we can advance through the modules without completing them if we press Control Q. Interestingly, pressing control Q does not quit out of the experiment, as we would expect (unless it's the last module), but instead as I said advances to the next module.
Would participants also be able to advance this way? If so it throws the integrity of our experiment off. Is there a way to make sure Control Q quits out of the whole experiment, instead of advancing? I should mention that the modules are built up of multiple scripts that are called from a parent script.
Any guidance would be much appreciated. Thank you!
CTRL+Q terminates the currently running *script*, if your experiment is made up of multiple scripts run via <batch>, then pressing CTRL+Q will end the current script N and the batch will then move on to the next script N+1. If you want to have the entire <batch> terminate, you need to add some additional logic to call the script.abort() function, which can terminate an entire batch optionally. Suppose you have two scripts A and B, then you would do something like this:
a.iqx:
<expt a>
/ ontrialend = [
if (expt.a.response == "Ctrl+'Q'") script.abort(true);
]
/ blocks = [1=myblock]
</expt>
<block myblock>
/ trials = [1-10=mytrial]
</block>
<trial mytrial>
/ stimulusframes = [1=mytext]
/ validresponse = (57)
/ posttrialpause = 500
</trial>
<text mytext>
/ items = ("Press SPACE")
</text>
b.iqx:
<expt b>
/ ontrialend = [
if (expt.b.response == "Ctrl+'Q'") script.abort(true);
]
/ blocks = [1=myblock]
</expt>
<block myblock>
/ trials = [1-10=mytrial]
</block>
<trial mytrial>
/ stimulusframes = [1=mytext]
/ validresponse = (28)
/ posttrialpause = 500
</trial>
<text mytext>
/ items = ("Press ENTER")
</text>
batch.iqx
<batch>
/ file = "a.iqx"
/ file = "b.iqx"
</batch>