View difference between Paste ID: 23pTuDdS and Vsx93WCP
SHOW: | | - or go back to the newest paste.
1
import random
2
from openexp.keyboard import keyboard
3
 
4
# Inter-stimulus interval
5
ITI = 20
6
 
7
# The number of cycles
8
n_cycles = 20
9
10
# Determines whether the canvas list is presented in random order
11
# or sequentially
12
random_order = False
13
 
14
# Set-up a keyboard object with a timeout equal to the interval
15
# between the two stimuli
16-
my_keyboard = keyboard(exp, timeout=ITI)
16+
my_keyboard = keyboard(exp, timeout=1)
17
 
18
# Copy a number of canvases from sketchpads and put them in a list
19
canvas_list = [
20
	self.copy_sketchpad('sketchpad_1'),
21
	self.copy_sketchpad('sketchpad_2'),
22
	self.copy_sketchpad('sketchpad_3')
23
	]
24
25
# Start the response interval
26
start_timestamp = self.time()
27
 
28
# We are going to keep a list of responses
29
resp_list = []
30
 
31
# Go into a loop where the two canvases are shown in alternation
32
for i in range(n_cycles):
33
34
	# Show the first canvas
35
	if random_order:
36
		my_canvas = random.choice(canvas_list)
37
	else:
38
		my_canvas = canvas_list[i % len(canvas_list)]
39
	
40
	# Show the canvas
41
	t1 = my_canvas.show()
42
43
	# Use the get_key() function to sleep and monitor for keypresses
44
	# at the same time.
45
	while self.time() - t1 < ITI:
46
		resp, t2 = my_keyboard.get_key()
47
		if resp != None:
48
			# If a key was pressed, add it to the list of responses.
49
			resp_list.append( (resp, t2) )
50
51
# If the response_list is empty, no response was given
52
if len(resp_list) == 0:
53
	response = 'timeout'
54
	response_time = 0
55
56
# Otherwise get the first response from the list
57
else:
58
	resp, resp_timestamp = resp_list[0]
59
	response = resp
60
	response_time = start_timestamp - resp_timestamp
61
	
62
# Set the response variables!
63
exp.set('response', resp)
64
exp.set('response_time', response_time)
65
 
66
# To maintain feedback variables, see
67
# <http://osdoc.cogsci.nl/usage/giving-feedback-to-participants/#inline-script>