psychopy 2024.2.4__py3-none-any.whl → 2024.2.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of psychopy might be problematic. Click here for more details.
- psychopy/.DS_Store +0 -0
- psychopy/CHANGELOG.txt +204 -0
- psychopy/GIT_SHA +1 -1
- psychopy/VERSION +1 -1
- psychopy/app/locale/ar_001/.DS_Store +0 -0
- psychopy/app/locale/ar_001/LC_MESSAGE/.DS_Store +0 -0
- psychopy/app/locale/ar_001/LC_MESSAGE/messages.po +1511 -3256
- psychopy/app/runner/runner.py +18 -8
- psychopy/experiment/_experiment.py +32 -7
- psychopy/iohub/client/__init__.py +17 -0
- psychopy/iohub/client/keyboard.py +5 -0
- psychopy/iohub/devices/mouse/linux2.py +4 -0
- psychopy/iohub/devices/mouse/win32.py +5 -0
- psychopy/tests/data/test_loaded_namespace/test_counterbalance.psyexp +142 -0
- psychopy/tests/data/test_loaded_namespace/test_custom_missing.psyexp +129 -0
- psychopy/tests/data/test_loaded_namespace/test_missing_counterbalance.psyexp +116 -0
- psychopy/tests/data/test_loaded_namespace/test_mix_exp.psyexp +181 -0
- psychopy/tests/data/test_loaded_namespace/test_mix_missing.psyexp +140 -0
- psychopy/tests/data/test_loaded_namespace/test_mix_name_calibration.psyexp +164 -0
- psychopy/tests/test_experiment/test_experiment.py +96 -0
- {psychopy-2024.2.4.dist-info → psychopy-2024.2.5.dist-info}/METADATA +1 -1
- {psychopy-2024.2.4.dist-info → psychopy-2024.2.5.dist-info}/RECORD +25 -55
- psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN.mo +0 -0
- psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN.po +0 -6127
- psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN_allFlagged.mo +0 -0
- psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN_allFlagged.po +0 -7366
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/index.html +0 -23
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/randomisedBlocks-legacy-browsers.js +0 -423
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/randomisedBlocks.js +0 -427
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/chooseBlock.xlsx +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/facesBlock.xlsx +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/housesBlock.xlsx +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face01.jpg +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face02.jpg +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face03.jpg +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house01.jpg +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house02.jpg +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house03.jpg +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks.py +0 -330
- psychopy/demos/builder/Feature Demos/eyetracking/eyetracking.xml +0 -298
- psychopy/demos/builder/Feature Demos/eyetracking/eyetracking.xsd +0 -120
- psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual.psyexp +0 -323
- psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual.py +0 -562
- psychopy/demos/builder/Tools/gammaCalibration/questStairs.xlsx +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/readme.md +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/resources/low_contrast.png +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/resources/make_2nd_order_tex.py +0 -59
- psychopy/demos/builder/Tools/gammaCalibration/resources/second_order_tex.png +0 -0
- psychopy/demos/coder/stimuli/radialGratingContracting.py +0 -29
- psychopy/hardware/serialport.py +0 -51
- psychopy/tests/data/__test.png +0 -0
- psychopy/tests/data/corrFullRandom_local.csv +0 -16
- psychopy/tests/data/corrFullRandom_local.tsv +0 -6
- psychopy/tests/data/testLoopsBlocks.psyexp_local.py +0 -328
- psychopy/tests/data/text2_height.png +0 -0
- psychopy/tests/data/text2_normAddBlend.png +0 -0
- psychopy/tests/data/text2_normHexbackground.png +0 -0
- psychopy/tests/data/text2_stencil.png +0 -0
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.csv +0 -9
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.csv +0 -9
- {psychopy-2024.2.4.dist-info → psychopy-2024.2.5.dist-info}/WHEEL +0 -0
- {psychopy-2024.2.4.dist-info → psychopy-2024.2.5.dist-info}/entry_points.txt +0 -0
- {psychopy-2024.2.4.dist-info → psychopy-2024.2.5.dist-info}/licenses/LICENSE +0 -0
psychopy/app/runner/runner.py
CHANGED
|
@@ -490,7 +490,6 @@ class RunnerPanel(wx.Panel, ScriptProcess, handlers.ThemeMixin):
|
|
|
490
490
|
|
|
491
491
|
# setup ribbon
|
|
492
492
|
self.ribbon = RunnerRibbon(self)
|
|
493
|
-
self.ribbon.buttons['pyswitch'].setMode(0)
|
|
494
493
|
self.mainSizer.Add(self.ribbon, border=0, flag=wx.EXPAND | wx.ALL)
|
|
495
494
|
|
|
496
495
|
# Setup splitter
|
|
@@ -843,25 +842,36 @@ class RunnerPanel(wx.Panel, ScriptProcess, handlers.ThemeMixin):
|
|
|
843
842
|
del self.entries[self.currentFile] # remove from our tracking dictionary
|
|
844
843
|
self.expCtrl.DeleteItem(self.currentSelection) # from wx control
|
|
845
844
|
self.app.updateWindowMenu()
|
|
846
|
-
|
|
847
|
-
def
|
|
845
|
+
|
|
846
|
+
def updateRunModeIcons(self, evt=None):
|
|
848
847
|
"""
|
|
849
|
-
Function to
|
|
848
|
+
Function to update run/pilot icons according to run mode
|
|
850
849
|
"""
|
|
851
|
-
mode =
|
|
852
|
-
# update buttons
|
|
850
|
+
mode = self.ribbon.buttons['pyswitch'].mode
|
|
853
851
|
# show/hide run buttons
|
|
854
852
|
for key in ("pyrun", "jsrun"):
|
|
855
853
|
self.ribbon.buttons[key].Show(mode)
|
|
856
854
|
# hide/show pilot buttons
|
|
857
855
|
for key in ("pypilot", "jspilot"):
|
|
858
856
|
self.ribbon.buttons[key].Show(not mode)
|
|
857
|
+
# update
|
|
858
|
+
self.ribbon.Layout()
|
|
859
|
+
|
|
860
|
+
def onRunModeToggle(self, evt):
|
|
861
|
+
"""
|
|
862
|
+
Function to execute when switching between pilot and run modes
|
|
863
|
+
"""
|
|
864
|
+
mode = evt.GetInt()
|
|
865
|
+
# update buttons
|
|
866
|
+
self.updateRunModeIcons()
|
|
859
867
|
# update experiment mode
|
|
860
868
|
if self.currentExperiment is not None:
|
|
861
869
|
# find any Builder windows with this experiment open
|
|
862
870
|
for frame in self.app.getAllFrames(frameType='builder'):
|
|
863
871
|
if frame.exp == self.currentExperiment:
|
|
864
|
-
frame.ribbon.buttons['pyswitch'].setMode(mode)
|
|
872
|
+
frame.ribbon.buttons['pyswitch'].setMode(mode, silent=True)
|
|
873
|
+
if hasattr(frame, "updateRunModeIcons"):
|
|
874
|
+
frame.updateRunModeIcons()
|
|
865
875
|
# update current selection
|
|
866
876
|
runMode = "pilot"
|
|
867
877
|
if mode:
|
|
@@ -904,7 +914,7 @@ class RunnerPanel(wx.Panel, ScriptProcess, handlers.ThemeMixin):
|
|
|
904
914
|
# disable stop
|
|
905
915
|
self.ribbon.buttons['pystop'].Disable()
|
|
906
916
|
# switch mode
|
|
907
|
-
self.ribbon.buttons['pyswitch'].setMode(runMode == "run"
|
|
917
|
+
self.ribbon.buttons['pyswitch'].setMode(runMode == "run")
|
|
908
918
|
# update
|
|
909
919
|
self.updateAlerts()
|
|
910
920
|
self.app.updateWindowMenu()
|
|
@@ -770,6 +770,34 @@ class Experiment:
|
|
|
770
770
|
|
|
771
771
|
return exp
|
|
772
772
|
|
|
773
|
+
def _getValidRoutineName(self, routineNode, modifiedNames):
|
|
774
|
+
"""
|
|
775
|
+
Find valid routine name
|
|
776
|
+
|
|
777
|
+
Parameters
|
|
778
|
+
----------
|
|
779
|
+
routineNode : Routine
|
|
780
|
+
Routine, Standalone Routine, or Unknown Routine node being read
|
|
781
|
+
from XML file
|
|
782
|
+
modifiedNames : List[str]
|
|
783
|
+
Names that have been modified within the XML file
|
|
784
|
+
|
|
785
|
+
Modifies:
|
|
786
|
+
-------
|
|
787
|
+
modifiedNames : List[str]
|
|
788
|
+
Appends name (str) if name was changed
|
|
789
|
+
|
|
790
|
+
Returns
|
|
791
|
+
-------
|
|
792
|
+
routineGoodName : str
|
|
793
|
+
Validated name of routine being added, meaning no duplicate names
|
|
794
|
+
"""
|
|
795
|
+
routineGoodName = self.namespace.makeValid(routineNode.get('name'))
|
|
796
|
+
if routineGoodName != routineNode.get('name'):
|
|
797
|
+
modifiedNames.append(routineNode.get('name'))
|
|
798
|
+
self.namespace.add(routineGoodName)
|
|
799
|
+
return routineGoodName
|
|
800
|
+
|
|
773
801
|
def loadFromXML(self, filename):
|
|
774
802
|
"""Loads an xml file and parses the builder Experiment from it
|
|
775
803
|
"""
|
|
@@ -826,11 +854,7 @@ class Experiment:
|
|
|
826
854
|
# get each routine node from the list of routines
|
|
827
855
|
for routineNode in routinesNode:
|
|
828
856
|
if routineNode.tag == "Routine":
|
|
829
|
-
routineGoodName = self.
|
|
830
|
-
routineNode.get('name'))
|
|
831
|
-
if routineGoodName != routineNode.get('name'):
|
|
832
|
-
modifiedNames.append(routineNode.get('name'))
|
|
833
|
-
self.namespace.user.append(routineGoodName)
|
|
857
|
+
routineGoodName = self._getValidRoutineName(routineNode, modifiedNames)
|
|
834
858
|
routine = Routine(name=routineGoodName, exp=self)
|
|
835
859
|
# self._getXMLparam(params=routine.params, paramNode=routineNode)
|
|
836
860
|
self.routines[routineNode.get('name')] = routine
|
|
@@ -898,12 +922,13 @@ class Experiment:
|
|
|
898
922
|
if component not in routine:
|
|
899
923
|
routine.append(component)
|
|
900
924
|
else:
|
|
925
|
+
routineGoodName = self._getValidRoutineName(routineNode, modifiedNames)
|
|
901
926
|
if routineNode.tag in allRoutines:
|
|
902
927
|
# If not a routine, may be a standalone routine
|
|
903
|
-
routine = allRoutines[routineNode.tag](exp=self, name=
|
|
928
|
+
routine = allRoutines[routineNode.tag](exp=self, name=routineGoodName)
|
|
904
929
|
else:
|
|
905
930
|
# Otherwise treat as unknown
|
|
906
|
-
routine = allRoutines['UnknownRoutine'](exp=self, name=
|
|
931
|
+
routine = allRoutines['UnknownRoutine'](exp=self, name=routineGoodName)
|
|
907
932
|
# Apply all params
|
|
908
933
|
for paramNode in routineNode:
|
|
909
934
|
if paramNode.tag == "Param":
|
|
@@ -10,6 +10,7 @@ import time
|
|
|
10
10
|
import subprocess
|
|
11
11
|
import json
|
|
12
12
|
import signal
|
|
13
|
+
import atexit
|
|
13
14
|
from weakref import proxy
|
|
14
15
|
|
|
15
16
|
import psutil
|
|
@@ -31,6 +32,8 @@ from psychopy import constants
|
|
|
31
32
|
|
|
32
33
|
getTime = Computer.getTime
|
|
33
34
|
|
|
35
|
+
SHUTDOWN_FUNCS = []
|
|
36
|
+
|
|
34
37
|
_currentSessionInfo = None
|
|
35
38
|
|
|
36
39
|
def windowInfoDict(win):
|
|
@@ -1000,6 +1003,9 @@ class ioHubConnection():
|
|
|
1000
1003
|
Computer.iohub_process_id = self._server_process.pid
|
|
1001
1004
|
Computer.iohub_process = psutil.Process(self._server_process.pid)
|
|
1002
1005
|
|
|
1006
|
+
global SHUTDOWN_FUNCS
|
|
1007
|
+
SHUTDOWN_FUNCS.append(self._shutDownServer)
|
|
1008
|
+
|
|
1003
1009
|
# >>>>> Create open UDP port to ioHub Server
|
|
1004
1010
|
server_udp_port = self._iohub_server_config.get('udp_port', 9000)
|
|
1005
1011
|
from ..net import UDPClientConnection
|
|
@@ -1451,6 +1457,17 @@ class ioEvent():
|
|
|
1451
1457
|
self.type,
|
|
1452
1458
|
self.id)
|
|
1453
1459
|
|
|
1460
|
+
|
|
1461
|
+
def shutdownActiveConnections():
|
|
1462
|
+
"""Shutdown any active ioHub connections that are currently running.
|
|
1463
|
+
"""
|
|
1464
|
+
activeConnection = ioHubConnection.getActiveConnection()
|
|
1465
|
+
if activeConnection is not None and hasattr(activeConnection, 'shutdown'):
|
|
1466
|
+
activeConnection.shutdown()
|
|
1467
|
+
|
|
1468
|
+
|
|
1469
|
+
atexit.register(shutdownActiveConnections)
|
|
1470
|
+
|
|
1454
1471
|
_lazyImports = """
|
|
1455
1472
|
from psychopy.iohub.client.connect import launchHubServer
|
|
1456
1473
|
from psychopy.iohub.client import keyboard
|
|
@@ -229,6 +229,11 @@ class Keyboard(ioHubDeviceView):
|
|
|
229
229
|
"""
|
|
230
230
|
kb_state = self.getCurrentDeviceState()
|
|
231
231
|
|
|
232
|
+
# catch anything that is not a dictionary, usually indicates an error
|
|
233
|
+
if type(kb_state) is not dict:
|
|
234
|
+
raise RuntimeError(
|
|
235
|
+
'Keyboard device state request failed, got: %s' % kb_state)
|
|
236
|
+
|
|
232
237
|
events = {int(k): v for k, v in list(kb_state.get('events').items())}
|
|
233
238
|
pressed_keys = {int(k): v for k, v in list(kb_state.get('pressed_keys', {}).items())}
|
|
234
239
|
|
|
@@ -90,6 +90,10 @@ class Mouse(MouseDevice):
|
|
|
90
90
|
logged_time = currentSec()
|
|
91
91
|
event_array = event[0]
|
|
92
92
|
|
|
93
|
+
if self._iohub_server is None or self._iohub_server._psychopy_windows is None:
|
|
94
|
+
# Do not report event if no ioHub server is running or no psychopy window is open
|
|
95
|
+
return True
|
|
96
|
+
|
|
93
97
|
psychowins = self._iohub_server._psychopy_windows.keys()
|
|
94
98
|
report_all = self.getConfiguration().get('report_system_wide_events', True)
|
|
95
99
|
if report_all is False and psychowins and event_array[-1] not in psychowins:
|
|
@@ -178,6 +178,11 @@ class Mouse(MouseDevice):
|
|
|
178
178
|
if self.isReportingEvents():
|
|
179
179
|
logged_time = currentSec()
|
|
180
180
|
report_system_wide_events = self.getConfiguration().get('report_system_wide_events', True)
|
|
181
|
+
|
|
182
|
+
if self._iohub_server is None or self._iohub_server._psychopy_windows is None:
|
|
183
|
+
# Do not report event if no ioHub server is running or no psychopy window is open
|
|
184
|
+
return True
|
|
185
|
+
|
|
181
186
|
pyglet_window_hnds = self._iohub_server._psychopy_windows.keys()
|
|
182
187
|
if event.Window in pyglet_window_hnds:
|
|
183
188
|
pass
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
<?xml version="1.0" ?>
|
|
2
|
+
<PsychoPy2experiment encoding="utf-8" version="2024.3.0">
|
|
3
|
+
<Settings>
|
|
4
|
+
<Param val="ptb" valType="str" updates="None" name="Audio lib"/>
|
|
5
|
+
<Param val="" valType="str" updates="None" name="Completed URL"/>
|
|
6
|
+
<Param val="auto" valType="str" updates="None" name="Data file delimiter"/>
|
|
7
|
+
<Param val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code" updates="None" name="Data filename"/>
|
|
8
|
+
<Param val="True" valType="bool" updates="None" name="Enable Escape"/>
|
|
9
|
+
<Param val="Thank you for your patience." valType="str" updates="None" name="End Message"/>
|
|
10
|
+
<Param val="{'participant':'f"{randint(0, 999999):06.0f}"', 'session':'001'}" valType="code" updates="None" name="Experiment info"/>
|
|
11
|
+
<Param val="True" valType="bool" updates="None" name="Force stereo"/>
|
|
12
|
+
<Param val="True" valType="bool" updates="None" name="Full-screen window"/>
|
|
13
|
+
<Param val="" valType="str" updates="None" name="HTML path"/>
|
|
14
|
+
<Param val="" valType="str" updates="None" name="Incomplete URL"/>
|
|
15
|
+
<Param val="testMonitor" valType="str" updates="None" name="Monitor"/>
|
|
16
|
+
<Param val="[]" valType="list" updates="None" name="Resources"/>
|
|
17
|
+
<Param val="False" valType="bool" updates="None" name="Save csv file"/>
|
|
18
|
+
<Param val="False" valType="bool" updates="None" name="Save excel file"/>
|
|
19
|
+
<Param val="False" valType="bool" updates="None" name="Save hdf5 file"/>
|
|
20
|
+
<Param val="True" valType="bool" updates="None" name="Save log file"/>
|
|
21
|
+
<Param val="True" valType="bool" updates="None" name="Save psydat file"/>
|
|
22
|
+
<Param val="True" valType="bool" updates="None" name="Save wide csv file"/>
|
|
23
|
+
<Param val="1" valType="num" updates="None" name="Screen"/>
|
|
24
|
+
<Param val="True" valType="bool" updates="None" name="Show info dlg"/>
|
|
25
|
+
<Param val="False" valType="bool" updates="None" name="Show mouse"/>
|
|
26
|
+
<Param val="height" valType="str" updates="None" name="Units"/>
|
|
27
|
+
<Param val="" valType="str" updates="None" name="Use version"/>
|
|
28
|
+
<Param val="(1024, 768)" valType="list" updates="None" name="Window size (pixels)"/>
|
|
29
|
+
<Param val="none" valType="str" updates="None" name="backgroundFit"/>
|
|
30
|
+
<Param val="" valType="str" updates="None" name="backgroundImg"/>
|
|
31
|
+
<Param val="avg" valType="str" updates="None" name="blendMode"/>
|
|
32
|
+
<Param val="float" valType="str" updates="None" name="clockFormat"/>
|
|
33
|
+
<Param val="{'thisRow.t': 'priority.CRITICAL', 'expName': 'priority.LOW'}" valType="dict" updates="None" name="colPriority"/>
|
|
34
|
+
<Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
|
|
35
|
+
<Param val="rgb" valType="str" updates="None" name="colorSpace"/>
|
|
36
|
+
<Param val="warning" valType="code" updates="None" name="consoleLoggingLevel"/>
|
|
37
|
+
<Param val="default" valType="str" updates="None" name="ecSampleRate"/>
|
|
38
|
+
<Param val="100.1.1.1" valType="str" updates="None" name="elAddress"/>
|
|
39
|
+
<Param val="FILTER_LEVEL_2" valType="str" updates="None" name="elDataFiltering"/>
|
|
40
|
+
<Param val="FILTER_LEVEL_OFF" valType="str" updates="None" name="elLiveFiltering"/>
|
|
41
|
+
<Param val="EYELINK 1000 DESKTOP" valType="str" updates="None" name="elModel"/>
|
|
42
|
+
<Param val="ELLIPSE_FIT" valType="str" updates="None" name="elPupilAlgorithm"/>
|
|
43
|
+
<Param val="PUPIL_AREA" valType="str" updates="None" name="elPupilMeasure"/>
|
|
44
|
+
<Param val="1000" valType="num" updates="None" name="elSampleRate"/>
|
|
45
|
+
<Param val="False" valType="bool" updates="None" name="elSimMode"/>
|
|
46
|
+
<Param val="RIGHT_EYE" valType="str" updates="None" name="elTrackEyes"/>
|
|
47
|
+
<Param val="PUPIL_CR_TRACKING" valType="str" updates="None" name="elTrackingMode"/>
|
|
48
|
+
<Param val="test_load_counterbalance" valType="str" updates="None" name="expName"/>
|
|
49
|
+
<Param val="" valType="str" updates="None" name="expVersion"/>
|
|
50
|
+
<Param val="on Sync" valType="str" updates="None" name="exportHTML"/>
|
|
51
|
+
<Param val="None" valType="str" updates="None" name="eyetracker"/>
|
|
52
|
+
<Param val="" valType="code" updates="None" name="frameRate"/>
|
|
53
|
+
<Param val="Attempting to measure frame rate of screen, please wait..." valType="str" updates="None" name="frameRateMsg"/>
|
|
54
|
+
<Param val="127.0.0.1" valType="str" updates="None" name="gpAddress"/>
|
|
55
|
+
<Param val="4242" valType="num" updates="None" name="gpPort"/>
|
|
56
|
+
<Param val="ioHub" valType="str" updates="None" name="keyboardBackend"/>
|
|
57
|
+
<Param val="info" valType="code" updates="None" name="logging level"/>
|
|
58
|
+
<Param val="True" valType="bool" updates="None" name="measureFrameRate"/>
|
|
59
|
+
<Param val="MIDDLE_BUTTON" valType="list" updates="None" name="mgBlink"/>
|
|
60
|
+
<Param val="CONTINUOUS" valType="str" updates="None" name="mgMove"/>
|
|
61
|
+
<Param val="0.5" valType="num" updates="None" name="mgSaccade"/>
|
|
62
|
+
<Param val="neon.local" valType="str" updates="None" name="plCompanionAddress"/>
|
|
63
|
+
<Param val="8080" valType="num" updates="None" name="plCompanionPort"/>
|
|
64
|
+
<Param val="0.6" valType="num" updates="None" name="plConfidenceThreshold"/>
|
|
65
|
+
<Param val="" valType="str" updates="None" name="plPupilCaptureRecordingLocation"/>
|
|
66
|
+
<Param val="127.0.0.1" valType="str" updates="None" name="plPupilRemoteAddress"/>
|
|
67
|
+
<Param val="50020" valType="num" updates="None" name="plPupilRemotePort"/>
|
|
68
|
+
<Param val="1000" valType="num" updates="None" name="plPupilRemoteTimeoutMs"/>
|
|
69
|
+
<Param val="False" valType="bool" updates="None" name="plPupillometryOnly"/>
|
|
70
|
+
<Param val="psychopy_iohub_surface" valType="str" updates="None" name="plSurfaceName"/>
|
|
71
|
+
<Param val="0" valType="code" updates="None" name="runMode"/>
|
|
72
|
+
<Param val="False" valType="bool" updates="None" name="rush"/>
|
|
73
|
+
<Param val="time" valType="str" updates="None" name="sortColumns"/>
|
|
74
|
+
<Param val="" valType="str" updates="None" name="tbLicenseFile"/>
|
|
75
|
+
<Param val="" valType="str" updates="None" name="tbModel"/>
|
|
76
|
+
<Param val="60" valType="num" updates="None" name="tbSampleRate"/>
|
|
77
|
+
<Param val="" valType="str" updates="None" name="tbSerialNo"/>
|
|
78
|
+
<Param val="pyglet" valType="str" updates="None" name="winBackend"/>
|
|
79
|
+
</Settings>
|
|
80
|
+
<Routines>
|
|
81
|
+
<Routine name="trial">
|
|
82
|
+
<RoutineSettingsComponent name="trial" plugin="None">
|
|
83
|
+
<Param val="none" valType="str" updates="None" name="backgroundFit"/>
|
|
84
|
+
<Param val="" valType="str" updates="None" name="backgroundImg"/>
|
|
85
|
+
<Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
|
|
86
|
+
<Param val="rgb" valType="str" updates="None" name="colorSpace"/>
|
|
87
|
+
<Param val="" valType="str" updates="constant" name="desc"/>
|
|
88
|
+
<Param val="False" valType="bool" updates="None" name="disabled"/>
|
|
89
|
+
<Param val="" valType="code" updates="None" name="durationEstim"/>
|
|
90
|
+
<Param val="False" valType="code" updates="None" name="forceNonSlip"/>
|
|
91
|
+
<Param val="trial" valType="code" updates="None" name="name"/>
|
|
92
|
+
<Param val="True" valType="bool" updates="None" name="saveStartStop"/>
|
|
93
|
+
<Param val="" valType="code" updates="constant" name="skipIf"/>
|
|
94
|
+
<Param val="duration (s)" valType="str" updates="None" name="stopType"/>
|
|
95
|
+
<Param val="" valType="code" updates="constant" name="stopVal"/>
|
|
96
|
+
<Param val="False" valType="bool" updates="None" name="useWindowParams"/>
|
|
97
|
+
</RoutineSettingsComponent>
|
|
98
|
+
</Routine>
|
|
99
|
+
<CounterbalanceRoutine name="counterbalance">
|
|
100
|
+
<Param name="conditionsFile" updates="None" val="" valType="file"/>
|
|
101
|
+
<Param name="conditionsVariable" updates="None" val="" valType="code"/>
|
|
102
|
+
<Param name="disabled" updates="None" val="False" valType="bool"/>
|
|
103
|
+
<Param name="endExperimentOnDepletion" updates="None" val="ignore" valType="code"/>
|
|
104
|
+
<Param name="nGroups" updates="None" val="2" valType="code"/>
|
|
105
|
+
<Param name="nReps" updates="None" val="1" valType="code"/>
|
|
106
|
+
<Param name="nSlots" updates="None" val="10" valType="code"/>
|
|
107
|
+
<Param name="name" updates="None" val="counterbalance" valType="code"/>
|
|
108
|
+
<Param name="saveData" updates="None" val="True" valType="bool"/>
|
|
109
|
+
<Param name="saveRemaining" updates="None" val="True" valType="bool"/>
|
|
110
|
+
<Param name="specMode" updates="None" val="uniform" valType="str"/>
|
|
111
|
+
</CounterbalanceRoutine>
|
|
112
|
+
<CounterbalanceRoutine name="counterbalance_2">
|
|
113
|
+
<Param name="conditionsFile" updates="None" val="" valType="file"/>
|
|
114
|
+
<Param name="conditionsVariable" updates="None" val="" valType="code"/>
|
|
115
|
+
<Param name="disabled" updates="None" val="False" valType="bool"/>
|
|
116
|
+
<Param name="endExperimentOnDepletion" updates="None" val="ignore" valType="code"/>
|
|
117
|
+
<Param name="nGroups" updates="None" val="2" valType="code"/>
|
|
118
|
+
<Param name="nReps" updates="None" val="1" valType="code"/>
|
|
119
|
+
<Param name="nSlots" updates="None" val="10" valType="code"/>
|
|
120
|
+
<Param name="name" updates="None" val="counterbalance_2" valType="code"/>
|
|
121
|
+
<Param name="saveData" updates="None" val="True" valType="bool"/>
|
|
122
|
+
<Param name="saveRemaining" updates="None" val="True" valType="bool"/>
|
|
123
|
+
<Param name="specMode" updates="None" val="uniform" valType="str"/>
|
|
124
|
+
</CounterbalanceRoutine>
|
|
125
|
+
<CounterbalanceRoutine name="counterbalance_3">
|
|
126
|
+
<Param name="conditionsFile" updates="None" val="" valType="file"/>
|
|
127
|
+
<Param name="conditionsVariable" updates="None" val="" valType="code"/>
|
|
128
|
+
<Param name="disabled" updates="None" val="False" valType="bool"/>
|
|
129
|
+
<Param name="endExperimentOnDepletion" updates="None" val="ignore" valType="code"/>
|
|
130
|
+
<Param name="nGroups" updates="None" val="2" valType="code"/>
|
|
131
|
+
<Param name="nReps" updates="None" val="1" valType="code"/>
|
|
132
|
+
<Param name="nSlots" updates="None" val="10" valType="code"/>
|
|
133
|
+
<Param name="name" updates="None" val="counterbalance_3" valType="code"/>
|
|
134
|
+
<Param name="saveData" updates="None" val="True" valType="bool"/>
|
|
135
|
+
<Param name="saveRemaining" updates="None" val="True" valType="bool"/>
|
|
136
|
+
<Param name="specMode" updates="None" val="uniform" valType="str"/>
|
|
137
|
+
</CounterbalanceRoutine>
|
|
138
|
+
</Routines>
|
|
139
|
+
<Flow>
|
|
140
|
+
<Routine name="trial"/>
|
|
141
|
+
</Flow>
|
|
142
|
+
</PsychoPy2experiment>
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
<?xml version="1.0" ?>
|
|
2
|
+
<PsychoPy2experiment encoding="utf-8" version="2024.3.0">
|
|
3
|
+
<Settings>
|
|
4
|
+
<Param val="ptb" valType="str" updates="None" name="Audio lib"/>
|
|
5
|
+
<Param val="" valType="str" updates="None" name="Completed URL"/>
|
|
6
|
+
<Param val="auto" valType="str" updates="None" name="Data file delimiter"/>
|
|
7
|
+
<Param val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code" updates="None" name="Data filename"/>
|
|
8
|
+
<Param val="True" valType="bool" updates="None" name="Enable Escape"/>
|
|
9
|
+
<Param val="Thank you for your patience." valType="str" updates="None" name="End Message"/>
|
|
10
|
+
<Param val="{'participant':'f"{randint(0, 999999):06.0f}"', 'session':'001'}" valType="code" updates="None" name="Experiment info"/>
|
|
11
|
+
<Param val="True" valType="bool" updates="None" name="Force stereo"/>
|
|
12
|
+
<Param val="True" valType="bool" updates="None" name="Full-screen window"/>
|
|
13
|
+
<Param val="" valType="str" updates="None" name="HTML path"/>
|
|
14
|
+
<Param val="" valType="str" updates="None" name="Incomplete URL"/>
|
|
15
|
+
<Param val="testMonitor" valType="str" updates="None" name="Monitor"/>
|
|
16
|
+
<Param val="[]" valType="list" updates="None" name="Resources"/>
|
|
17
|
+
<Param val="False" valType="bool" updates="None" name="Save csv file"/>
|
|
18
|
+
<Param val="False" valType="bool" updates="None" name="Save excel file"/>
|
|
19
|
+
<Param val="False" valType="bool" updates="None" name="Save hdf5 file"/>
|
|
20
|
+
<Param val="True" valType="bool" updates="None" name="Save log file"/>
|
|
21
|
+
<Param val="True" valType="bool" updates="None" name="Save psydat file"/>
|
|
22
|
+
<Param val="True" valType="bool" updates="None" name="Save wide csv file"/>
|
|
23
|
+
<Param val="1" valType="num" updates="None" name="Screen"/>
|
|
24
|
+
<Param val="True" valType="bool" updates="None" name="Show info dlg"/>
|
|
25
|
+
<Param val="False" valType="bool" updates="None" name="Show mouse"/>
|
|
26
|
+
<Param val="height" valType="str" updates="None" name="Units"/>
|
|
27
|
+
<Param val="" valType="str" updates="None" name="Use version"/>
|
|
28
|
+
<Param val="(1024, 768)" valType="list" updates="None" name="Window size (pixels)"/>
|
|
29
|
+
<Param val="none" valType="str" updates="None" name="backgroundFit"/>
|
|
30
|
+
<Param val="" valType="str" updates="None" name="backgroundImg"/>
|
|
31
|
+
<Param val="avg" valType="str" updates="None" name="blendMode"/>
|
|
32
|
+
<Param val="float" valType="str" updates="None" name="clockFormat"/>
|
|
33
|
+
<Param val="{'thisRow.t': 'priority.CRITICAL', 'expName': 'priority.LOW'}" valType="dict" updates="None" name="colPriority"/>
|
|
34
|
+
<Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
|
|
35
|
+
<Param val="rgb" valType="str" updates="None" name="colorSpace"/>
|
|
36
|
+
<Param val="warning" valType="code" updates="None" name="consoleLoggingLevel"/>
|
|
37
|
+
<Param val="default" valType="str" updates="None" name="ecSampleRate"/>
|
|
38
|
+
<Param val="100.1.1.1" valType="str" updates="None" name="elAddress"/>
|
|
39
|
+
<Param val="FILTER_LEVEL_2" valType="str" updates="None" name="elDataFiltering"/>
|
|
40
|
+
<Param val="FILTER_LEVEL_OFF" valType="str" updates="None" name="elLiveFiltering"/>
|
|
41
|
+
<Param val="EYELINK 1000 DESKTOP" valType="str" updates="None" name="elModel"/>
|
|
42
|
+
<Param val="ELLIPSE_FIT" valType="str" updates="None" name="elPupilAlgorithm"/>
|
|
43
|
+
<Param val="PUPIL_AREA" valType="str" updates="None" name="elPupilMeasure"/>
|
|
44
|
+
<Param val="1000" valType="num" updates="None" name="elSampleRate"/>
|
|
45
|
+
<Param val="False" valType="bool" updates="None" name="elSimMode"/>
|
|
46
|
+
<Param val="RIGHT_EYE" valType="str" updates="None" name="elTrackEyes"/>
|
|
47
|
+
<Param val="PUPIL_CR_TRACKING" valType="str" updates="None" name="elTrackingMode"/>
|
|
48
|
+
<Param val="test_custom_mix" valType="str" updates="None" name="expName"/>
|
|
49
|
+
<Param val="" valType="str" updates="None" name="expVersion"/>
|
|
50
|
+
<Param val="on Sync" valType="str" updates="None" name="exportHTML"/>
|
|
51
|
+
<Param val="None" valType="str" updates="None" name="eyetracker"/>
|
|
52
|
+
<Param val="" valType="code" updates="None" name="frameRate"/>
|
|
53
|
+
<Param val="Attempting to measure frame rate of screen, please wait..." valType="str" updates="None" name="frameRateMsg"/>
|
|
54
|
+
<Param val="127.0.0.1" valType="str" updates="None" name="gpAddress"/>
|
|
55
|
+
<Param val="4242" valType="num" updates="None" name="gpPort"/>
|
|
56
|
+
<Param val="ioHub" valType="str" updates="None" name="keyboardBackend"/>
|
|
57
|
+
<Param val="info" valType="code" updates="None" name="logging level"/>
|
|
58
|
+
<Param val="True" valType="bool" updates="None" name="measureFrameRate"/>
|
|
59
|
+
<Param val="MIDDLE_BUTTON" valType="list" updates="None" name="mgBlink"/>
|
|
60
|
+
<Param val="CONTINUOUS" valType="str" updates="None" name="mgMove"/>
|
|
61
|
+
<Param val="0.5" valType="num" updates="None" name="mgSaccade"/>
|
|
62
|
+
<Param val="neon.local" valType="str" updates="None" name="plCompanionAddress"/>
|
|
63
|
+
<Param val="8080" valType="num" updates="None" name="plCompanionPort"/>
|
|
64
|
+
<Param val="0.6" valType="num" updates="None" name="plConfidenceThreshold"/>
|
|
65
|
+
<Param val="" valType="str" updates="None" name="plPupilCaptureRecordingLocation"/>
|
|
66
|
+
<Param val="127.0.0.1" valType="str" updates="None" name="plPupilRemoteAddress"/>
|
|
67
|
+
<Param val="50020" valType="num" updates="None" name="plPupilRemotePort"/>
|
|
68
|
+
<Param val="1000" valType="num" updates="None" name="plPupilRemoteTimeoutMs"/>
|
|
69
|
+
<Param val="False" valType="bool" updates="None" name="plPupillometryOnly"/>
|
|
70
|
+
<Param val="psychopy_iohub_surface" valType="str" updates="None" name="plSurfaceName"/>
|
|
71
|
+
<Param val="0" valType="code" updates="None" name="runMode"/>
|
|
72
|
+
<Param val="False" valType="bool" updates="None" name="rush"/>
|
|
73
|
+
<Param val="time" valType="str" updates="None" name="sortColumns"/>
|
|
74
|
+
<Param val="" valType="str" updates="None" name="tbLicenseFile"/>
|
|
75
|
+
<Param val="" valType="str" updates="None" name="tbModel"/>
|
|
76
|
+
<Param val="60" valType="num" updates="None" name="tbSampleRate"/>
|
|
77
|
+
<Param val="" valType="str" updates="None" name="tbSerialNo"/>
|
|
78
|
+
<Param val="pyglet" valType="str" updates="None" name="winBackend"/>
|
|
79
|
+
</Settings>
|
|
80
|
+
<Routines>
|
|
81
|
+
<Routine name="trial">
|
|
82
|
+
<RoutineSettingsComponent name="trial" plugin="None">
|
|
83
|
+
<Param val="none" valType="str" updates="None" name="backgroundFit"/>
|
|
84
|
+
<Param val="" valType="str" updates="None" name="backgroundImg"/>
|
|
85
|
+
<Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
|
|
86
|
+
<Param val="rgb" valType="str" updates="None" name="colorSpace"/>
|
|
87
|
+
<Param val="" valType="str" updates="constant" name="desc"/>
|
|
88
|
+
<Param val="False" valType="bool" updates="None" name="disabled"/>
|
|
89
|
+
<Param val="" valType="code" updates="None" name="durationEstim"/>
|
|
90
|
+
<Param val="False" valType="code" updates="None" name="forceNonSlip"/>
|
|
91
|
+
<Param val="trial" valType="code" updates="None" name="name"/>
|
|
92
|
+
<Param val="True" valType="bool" updates="None" name="saveStartStop"/>
|
|
93
|
+
<Param val="" valType="code" updates="constant" name="skipIf"/>
|
|
94
|
+
<Param val="duration (s)" valType="str" updates="None" name="stopType"/>
|
|
95
|
+
<Param val="" valType="code" updates="constant" name="stopVal"/>
|
|
96
|
+
<Param val="False" valType="bool" updates="None" name="useWindowParams"/>
|
|
97
|
+
</RoutineSettingsComponent>
|
|
98
|
+
</Routine>
|
|
99
|
+
<CounterbalanceRoutine name="custom_2">
|
|
100
|
+
<Param name="conditionsFile" updates="None" val="" valType="file"/>
|
|
101
|
+
<Param name="conditionsVariable" updates="None" val="" valType="code"/>
|
|
102
|
+
<Param name="disabled" updates="None" val="False" valType="bool"/>
|
|
103
|
+
<Param name="endExperimentOnDepletion" updates="None" val="True" valType="code"/>
|
|
104
|
+
<Param name="nGroups" updates="None" val="2" valType="code"/>
|
|
105
|
+
<Param name="nReps" updates="None" val="1" valType="code"/>
|
|
106
|
+
<Param name="nSlots" updates="None" val="10" valType="code"/>
|
|
107
|
+
<Param name="name" updates="None" val="custom_2" valType="code"/>
|
|
108
|
+
<Param name="saveData" updates="None" val="True" valType="bool"/>
|
|
109
|
+
<Param name="saveRemaining" updates="None" val="True" valType="bool"/>
|
|
110
|
+
<Param name="specMode" updates="None" val="uniform" valType="str"/>
|
|
111
|
+
</CounterbalanceRoutine>
|
|
112
|
+
<CounterbalanceRoutine name="counterbalance_2">
|
|
113
|
+
<Param name="conditionsFile" updates="None" val="" valType="file"/>
|
|
114
|
+
<Param name="conditionsVariable" updates="None" val="" valType="code"/>
|
|
115
|
+
<Param name="disabled" updates="None" val="False" valType="bool"/>
|
|
116
|
+
<Param name="endExperimentOnDepletion" updates="None" val="ignore" valType="code"/>
|
|
117
|
+
<Param name="nGroups" updates="None" val="2" valType="code"/>
|
|
118
|
+
<Param name="nReps" updates="None" val="1" valType="code"/>
|
|
119
|
+
<Param name="nSlots" updates="None" val="10" valType="code"/>
|
|
120
|
+
<Param name="name" updates="None" val="counterbalance_2" valType="code"/>
|
|
121
|
+
<Param name="saveData" updates="None" val="True" valType="bool"/>
|
|
122
|
+
<Param name="saveRemaining" updates="None" val="True" valType="bool"/>
|
|
123
|
+
<Param name="specMode" updates="None" val="uniform" valType="str"/>
|
|
124
|
+
</CounterbalanceRoutine>
|
|
125
|
+
</Routines>
|
|
126
|
+
<Flow>
|
|
127
|
+
<Routine name="trial"/>
|
|
128
|
+
</Flow>
|
|
129
|
+
</PsychoPy2experiment>
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<?xml version="1.0" ?>
|
|
2
|
+
<PsychoPy2experiment encoding="utf-8" version="2024.3.0">
|
|
3
|
+
<Settings>
|
|
4
|
+
<Param val="ptb" valType="str" updates="None" name="Audio lib"/>
|
|
5
|
+
<Param val="" valType="str" updates="None" name="Completed URL"/>
|
|
6
|
+
<Param val="auto" valType="str" updates="None" name="Data file delimiter"/>
|
|
7
|
+
<Param val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code" updates="None" name="Data filename"/>
|
|
8
|
+
<Param val="True" valType="bool" updates="None" name="Enable Escape"/>
|
|
9
|
+
<Param val="Thank you for your patience." valType="str" updates="None" name="End Message"/>
|
|
10
|
+
<Param val="{'participant':'f"{randint(0, 999999):06.0f}"', 'session':'001'}" valType="code" updates="None" name="Experiment info"/>
|
|
11
|
+
<Param val="True" valType="bool" updates="None" name="Force stereo"/>
|
|
12
|
+
<Param val="True" valType="bool" updates="None" name="Full-screen window"/>
|
|
13
|
+
<Param val="" valType="str" updates="None" name="HTML path"/>
|
|
14
|
+
<Param val="" valType="str" updates="None" name="Incomplete URL"/>
|
|
15
|
+
<Param val="testMonitor" valType="str" updates="None" name="Monitor"/>
|
|
16
|
+
<Param val="[]" valType="list" updates="None" name="Resources"/>
|
|
17
|
+
<Param val="False" valType="bool" updates="None" name="Save csv file"/>
|
|
18
|
+
<Param val="False" valType="bool" updates="None" name="Save excel file"/>
|
|
19
|
+
<Param val="False" valType="bool" updates="None" name="Save hdf5 file"/>
|
|
20
|
+
<Param val="True" valType="bool" updates="None" name="Save log file"/>
|
|
21
|
+
<Param val="True" valType="bool" updates="None" name="Save psydat file"/>
|
|
22
|
+
<Param val="True" valType="bool" updates="None" name="Save wide csv file"/>
|
|
23
|
+
<Param val="1" valType="num" updates="None" name="Screen"/>
|
|
24
|
+
<Param val="True" valType="bool" updates="None" name="Show info dlg"/>
|
|
25
|
+
<Param val="False" valType="bool" updates="None" name="Show mouse"/>
|
|
26
|
+
<Param val="height" valType="str" updates="None" name="Units"/>
|
|
27
|
+
<Param val="" valType="str" updates="None" name="Use version"/>
|
|
28
|
+
<Param val="(1024, 768)" valType="list" updates="None" name="Window size (pixels)"/>
|
|
29
|
+
<Param val="none" valType="str" updates="None" name="backgroundFit"/>
|
|
30
|
+
<Param val="" valType="str" updates="None" name="backgroundImg"/>
|
|
31
|
+
<Param val="avg" valType="str" updates="None" name="blendMode"/>
|
|
32
|
+
<Param val="float" valType="str" updates="None" name="clockFormat"/>
|
|
33
|
+
<Param val="{'thisRow.t': 'priority.CRITICAL', 'expName': 'priority.LOW'}" valType="dict" updates="None" name="colPriority"/>
|
|
34
|
+
<Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
|
|
35
|
+
<Param val="rgb" valType="str" updates="None" name="colorSpace"/>
|
|
36
|
+
<Param val="warning" valType="code" updates="None" name="consoleLoggingLevel"/>
|
|
37
|
+
<Param val="default" valType="str" updates="None" name="ecSampleRate"/>
|
|
38
|
+
<Param val="100.1.1.1" valType="str" updates="None" name="elAddress"/>
|
|
39
|
+
<Param val="FILTER_LEVEL_2" valType="str" updates="None" name="elDataFiltering"/>
|
|
40
|
+
<Param val="FILTER_LEVEL_OFF" valType="str" updates="None" name="elLiveFiltering"/>
|
|
41
|
+
<Param val="EYELINK 1000 DESKTOP" valType="str" updates="None" name="elModel"/>
|
|
42
|
+
<Param val="ELLIPSE_FIT" valType="str" updates="None" name="elPupilAlgorithm"/>
|
|
43
|
+
<Param val="PUPIL_AREA" valType="str" updates="None" name="elPupilMeasure"/>
|
|
44
|
+
<Param val="1000" valType="num" updates="None" name="elSampleRate"/>
|
|
45
|
+
<Param val="False" valType="bool" updates="None" name="elSimMode"/>
|
|
46
|
+
<Param val="RIGHT_EYE" valType="str" updates="None" name="elTrackEyes"/>
|
|
47
|
+
<Param val="PUPIL_CR_TRACKING" valType="str" updates="None" name="elTrackingMode"/>
|
|
48
|
+
<Param val="test_load_missing_counterbalance" valType="str" updates="None" name="expName"/>
|
|
49
|
+
<Param val="" valType="str" updates="None" name="expVersion"/>
|
|
50
|
+
<Param val="on Sync" valType="str" updates="None" name="exportHTML"/>
|
|
51
|
+
<Param val="None" valType="str" updates="None" name="eyetracker"/>
|
|
52
|
+
<Param val="" valType="code" updates="None" name="frameRate"/>
|
|
53
|
+
<Param val="Attempting to measure frame rate of screen, please wait..." valType="str" updates="None" name="frameRateMsg"/>
|
|
54
|
+
<Param val="127.0.0.1" valType="str" updates="None" name="gpAddress"/>
|
|
55
|
+
<Param val="4242" valType="num" updates="None" name="gpPort"/>
|
|
56
|
+
<Param val="ioHub" valType="str" updates="None" name="keyboardBackend"/>
|
|
57
|
+
<Param val="info" valType="code" updates="None" name="logging level"/>
|
|
58
|
+
<Param val="True" valType="bool" updates="None" name="measureFrameRate"/>
|
|
59
|
+
<Param val="MIDDLE_BUTTON" valType="list" updates="None" name="mgBlink"/>
|
|
60
|
+
<Param val="CONTINUOUS" valType="str" updates="None" name="mgMove"/>
|
|
61
|
+
<Param val="0.5" valType="num" updates="None" name="mgSaccade"/>
|
|
62
|
+
<Param val="neon.local" valType="str" updates="None" name="plCompanionAddress"/>
|
|
63
|
+
<Param val="8080" valType="num" updates="None" name="plCompanionPort"/>
|
|
64
|
+
<Param val="0.6" valType="num" updates="None" name="plConfidenceThreshold"/>
|
|
65
|
+
<Param val="" valType="str" updates="None" name="plPupilCaptureRecordingLocation"/>
|
|
66
|
+
<Param val="127.0.0.1" valType="str" updates="None" name="plPupilRemoteAddress"/>
|
|
67
|
+
<Param val="50020" valType="num" updates="None" name="plPupilRemotePort"/>
|
|
68
|
+
<Param val="1000" valType="num" updates="None" name="plPupilRemoteTimeoutMs"/>
|
|
69
|
+
<Param val="False" valType="bool" updates="None" name="plPupillometryOnly"/>
|
|
70
|
+
<Param val="psychopy_iohub_surface" valType="str" updates="None" name="plSurfaceName"/>
|
|
71
|
+
<Param val="0" valType="code" updates="None" name="runMode"/>
|
|
72
|
+
<Param val="False" valType="bool" updates="None" name="rush"/>
|
|
73
|
+
<Param val="time" valType="str" updates="None" name="sortColumns"/>
|
|
74
|
+
<Param val="" valType="str" updates="None" name="tbLicenseFile"/>
|
|
75
|
+
<Param val="" valType="str" updates="None" name="tbModel"/>
|
|
76
|
+
<Param val="60" valType="num" updates="None" name="tbSampleRate"/>
|
|
77
|
+
<Param val="" valType="str" updates="None" name="tbSerialNo"/>
|
|
78
|
+
<Param val="pyglet" valType="str" updates="None" name="winBackend"/>
|
|
79
|
+
</Settings>
|
|
80
|
+
<Routines>
|
|
81
|
+
<Routine name="trial">
|
|
82
|
+
<RoutineSettingsComponent name="trial" plugin="None">
|
|
83
|
+
<Param val="none" valType="str" updates="None" name="backgroundFit"/>
|
|
84
|
+
<Param val="" valType="str" updates="None" name="backgroundImg"/>
|
|
85
|
+
<Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
|
|
86
|
+
<Param val="rgb" valType="str" updates="None" name="colorSpace"/>
|
|
87
|
+
<Param val="" valType="str" updates="constant" name="desc"/>
|
|
88
|
+
<Param val="False" valType="bool" updates="None" name="disabled"/>
|
|
89
|
+
<Param val="" valType="code" updates="None" name="durationEstim"/>
|
|
90
|
+
<Param val="False" valType="code" updates="None" name="forceNonSlip"/>
|
|
91
|
+
<Param val="trial" valType="code" updates="None" name="name"/>
|
|
92
|
+
<Param val="True" valType="bool" updates="None" name="saveStartStop"/>
|
|
93
|
+
<Param val="" valType="code" updates="constant" name="skipIf"/>
|
|
94
|
+
<Param val="duration (s)" valType="str" updates="None" name="stopType"/>
|
|
95
|
+
<Param val="" valType="code" updates="constant" name="stopVal"/>
|
|
96
|
+
<Param val="False" valType="bool" updates="None" name="useWindowParams"/>
|
|
97
|
+
</RoutineSettingsComponent>
|
|
98
|
+
</Routine>
|
|
99
|
+
<CounterbalanceRoutine name="counterbalance_2">
|
|
100
|
+
<Param name="conditionsFile" updates="None" val="" valType="file"/>
|
|
101
|
+
<Param name="conditionsVariable" updates="None" val="" valType="code"/>
|
|
102
|
+
<Param name="disabled" updates="None" val="False" valType="bool"/>
|
|
103
|
+
<Param name="endExperimentOnDepletion" updates="None" val="ignore" valType="code"/>
|
|
104
|
+
<Param name="nGroups" updates="None" val="2" valType="code"/>
|
|
105
|
+
<Param name="nReps" updates="None" val="1" valType="code"/>
|
|
106
|
+
<Param name="nSlots" updates="None" val="10" valType="code"/>
|
|
107
|
+
<Param name="name" updates="None" val="counterbalance_2" valType="code"/>
|
|
108
|
+
<Param name="saveData" updates="None" val="True" valType="bool"/>
|
|
109
|
+
<Param name="saveRemaining" updates="None" val="True" valType="bool"/>
|
|
110
|
+
<Param name="specMode" updates="None" val="uniform" valType="str"/>
|
|
111
|
+
</CounterbalanceRoutine>
|
|
112
|
+
</Routines>
|
|
113
|
+
<Flow>
|
|
114
|
+
<Routine name="trial"/>
|
|
115
|
+
</Flow>
|
|
116
|
+
</PsychoPy2experiment>
|