OpenSesame
Rapunzel Code Editor
DataMatrix
Support forum
Python Tutorials
MindProbe
Supported by

SR 盒

关于 srbox 插件

串行响应(SR)盒是一个按钮盒,专门为心理实验中的反应收集而设计。原始版本是由心理软件工具公司开发的,具有5个按钮,5个灯,通过串行端口连接到计算机。还有其他制造商的 SR,请见:

使用 Python 内联代码操作 SR 盒

在插件处于虚拟模式时,srbox 对象不存在

实例 srbox

如果在实验开始时插入srbox插件,srbox的实例会自动成为实验对象的一部分, 并且可以在 inline_script 项目中作为 srbox 访问。

重要提示1:

如果你不指定设备,插件将尝试自动检测 SR 盒子端口。然而,在某些系统上这会导致实验冻结,所以最好明确指定一个设备。

重要提示2:

您 需要在调用 [srbox.get_button_press] 之前调用 [srbox.start] 以将 SR 盒子置于发送模式, 以收集按键按下。

示例:

t0 = clock.time()
srbox.start()
button, t1 = srbox.get_button_press(allowed_buttons=[1, 2],
                                    require_state_change=True)
if button == 1:
    response_time = t1 - t0
print(f'按钮 1 在 {response_time} 毫秒内被按下!')
srbox.stop()

get_button_press(allowed_buttons=None, timeout=None, require_state_change=False)

从 SR 盒子收集按键按下。

参数

  • allowed_buttons:接受的按钮列表或 'None' 以接受所有 按钮。有效按钮为 1 至 8 的整数。
  • timeout:以毫秒为单位的超时值或 'None' 表示没有超时。
  • require_state_change 表示是否接受已经按下的按钮: (False),或者 是否只接受从未按下到按下的状态改变(True)。

返回值

  • 一个 (button_list, timestamp) 元组。button_listNone 如果没有 按钮被按下(即发生了超时)。

send(ch)

向 SR 盒子发送一个字符。发送'`'以关闭所有灯,'a'表示灯1开,'b'表示灯2开,'c'表示灯1和2都开等。

参数

  • ch:要发送的字符。如果传递了 str,则使用 utf-8 编码将其编码为 bytes

start(self)

打开发送模式,使 SR 盒子开始发送输出。 当您调用 [srbox.get_button_press] 时,SR 盒子必须处于发送模式中。

stop(self)

关闭发送模式,使 SR 盒子停止输出。

Supported by