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> |