Group: Forum Members
Posts: 12,
Visits: 74
|
I have coded my experiment with correct/valid responses being keyboard inputs but would now like to change it to mouse input (left and right mouse click) instead.
So what I had was (among other code of course):
<values> / reference_odor_item = 0 / comparison_odor_item = 0 / odor_1_item = 0 / odor_2_item = 0 / is_reference = "" / correctkey = 0 </values>
<trial discrimination> / ontrialbegin = [ values.reference_odor_item = list.reference_odors.nextvalue; values.comparison_odor_item = list.comparison_odors.nextvalue; values.is_reference = list.is_reference_list.nextvalue; ] / ontrialbegin = [ if (values.is_reference == "odor_1") { values.odor_1_item = values.reference_odor_item; values.odor_2_item = values.comparison_odor_item; values.correctkey = lbuttondown; } else if (values.is_reference == "odor_2") { values.odor_1_item = values.comparison_odor_item; values.odor_2_item = values.reference_odor_item; values.correctkey = 38; }; ] / stimulustimes = [0=3; 1000=2; 2000=1; 2850=reference_odor; 3000=inhale; 3000=reference_label; 5000=empty; 7000=3; 8000=2; 9000=1; 9850=odor_1; 10000=inhale; 10000=odor1_label; 12000=empty; 14000=3; 15000=2; 16000=1; 16850=odor_2; 17000=inhale; 17000=odor2_label; 19000=empty; 21000=odor1_response; 21000=odor2_response; 21000=discrim_quest] / validresponse = (30, 38) / beginresponsetime = 21000 / pretrialpause = 1000 / iscorrectresponse = [ trial.discrimination.response == values.correctmouseevent ] </trial>
I now did the following changes (see what is printed bold):
<values> / reference_odor_item = 0 / comparison_odor_item = 0 / odor_1_item = 0 / odor_2_item = 0 / is_reference = "" / correctmouseevent = rbuttondown </values>
<trial discrimination> / ontrialbegin = [ values.reference_odor_item = list.reference_odors.nextvalue; values.comparison_odor_item = list.comparison_odors.nextvalue; values.is_reference = list.is_reference_list.nextvalue; ] / ontrialbegin = [ if (values.is_reference == "odor_1") { values.odor_1_item = values.reference_odor_item; values.odor_2_item = values.comparison_odor_item; values.correctmouseevent = lbuttondown; } else if (values.is_reference == "odor_2") { values.odor_1_item = values.comparison_odor_item; values.odor_2_item = values.reference_odor_item; values.correctmouseevent = rbuttondown; }; ] / stimulustimes = [0=3; 1000=2; 2000=1; 2850=reference_odor; 3000=inhale; 3000=reference_label; 5000=empty; 7000=3; 8000=2; 9000=1; 9850=odor_1; 10000=inhale; 10000=odor1_label; 12000=empty; 14000=3; 15000=2; 16000=1; 16850=odor_2; 17000=inhale; 17000=odor2_label; 19000=empty; 21000=odor1_response; 21000=odor2_response; 21000=discrim_quest] / validresponse = (lbuttondown, rbuttondown) / inputdevice = mousekey / beginresponsetime = 21000 / pretrialpause = 1000 / iscorrectresponse = [ trial.discrimination.response == values.correctmouseevent ] </trial>
The only error that I now still get is that the 'lbuttondown' expression within the if - else if expression in /ontrialbegin (the one I colored red) "contains an unknown element or property name." I suppose this is the case because Inquisit does not know, on trial begin, that the input device has changed from its default. I was, thus, wondering how this can be communicated to Inquisit or whether I am wrong and something else needs to be changed about my code.
Thousand thanks in advance!
|