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

OpenSesame 脚本

关于 OpenSesame 脚本

OpenSesame 脚本是一种简单的定义实验的语言。它不是一种完整的编程语言,不包括诸如 for 循环等功能。OpenSesame 脚本由 OpenSesame 运行时环境解释。

OpenSesame 脚本与用于 inline_script 项目中的 Python 脚本不同。Python 是一种真正的编程语言,具有所有相关的灵活性和复杂性。相反,OpenSesame 脚本用于以简单、易于理解的方式定义实验。

一般备注

关键词

一些项目(如 form_base 和 sketchpad)接受关键词。关键词的格式为 keyword=value。关键词是可选的,应默认为默认值。

注释

以散列开头的字符串应解释为注释。

示例

# 这是一个注释

引用

除非字符串中包含空格或其他标点符号,否则不需要引用。因此,以下行应解释为相同:

set my_var 'my_value'
set my_var "my_value"
set my_var my_value

然而,以下行并不相同。事实上,第一行是无效的,因为它有一个意外的第三个参数。

set my_var my value
set my_var "my value"

类型

没有类型。字符串、整数等之间没有区别。

特定项目的语法

一些项目有特定的语法。在下面讨论的每个关键词的“应用于”部分中指示此。

路径名解析

TODO

define 语句

开始定义一个项目。在一个 define 语句之后,所有行都有一个制表符缩进。项定义的末尾是第一个不再缩进的字符串。不允许嵌套 define 语句。

应用于

所有项目

格式

define [item name] [item type]
    [item definition]

参数

|item name |项目的名称 | |item type |项目的类型 |

示例

define get_key keyboard_response
    set allowed_responses "a;x"
    set description "收集键盘响应"
    set timeout "infinite"
    set flush "yes"

draw 语句

定义 sketchpad 或 feedback 项目的视觉元素。

应用于

sketchpad, feedback

格式

格式取决于元素。

draw ellipse [left] [top] [width] [height] [keywords]
draw circle [x] [y] [radius] [keywords]
draw line [left] [right] [top] [bottom] [keywords]
draw arrow [left] [right] [top] [bottom] [keywords]
draw textline [x] [y] [text]
draw image [x] [y] [path]
draw gabor [x] [y]
draw noise [x] [y]
draw fixdot [x] [y]

参数

|left |最左边的 x 坐标 | |right |最右边的 x 坐标 | |top |顶部的 y 坐标 | |bottom |底部的 y 坐标 | |x |x坐标 | |y |y坐标 | |text |文本字符串 | |path |图像文件的路径 |

关键词

TODO

示例

draw fixdot 0 0

log 语句

表示变量应写入日志文件。

应用于

logger

格式

log [variable name]

参数

|variable name |变量的名称 |

示例

log response_time

run 语句

表示应运行一个项目。在序列的情况下,运行语句的顺序决定了项目调用的顺序。在 coroutines 插件的情况下,所有项目同时调用。

应用于

sequence

格式

run [item name] [optional: condition] [optional: disabled]

参数

|item name |要运行的项目的名称 | |condition (optional) |条件语句,决定实际调用项目。如果没有提供条件,项目始终被调用。|

示例

run correct_feedback '[correct] = 1'

set 语句

定义单行变量。

应用于

所有项目

格式

set [variable name] [value]

参数

|variable name |变量名 | |value |变量值 |

示例

set timeout 1000

注意事项

多行变量使用__[variable name]__符号定义。这主要适用于需要大量文本的项目。在项目定义中,每行前都有一个制表符,不应将其解释为文本的一部分。__end__表示变量的结束。

例如:

__my_variable__
这是第一行。
这是第二行。
__end__

setcycle 语句

类似于常规的“set”语句,但仅在循环的特定周期内设置变量。这是循环表的脚本等效项。

适用于

循环

格式

setcycle [cycle #] [variable name] [variable value]

参数

|Cycle # |循环次数,其中0为第一个 | |variable name |变量名 | |value |变量值 |

示例

setcycle 0 cue valid

widget 语句

将一个小部件(按钮、标签等)添加到表单中。有效关键词取决于小部件的类型。widget语句并非严格属于OpenSesame核心语法的一部分,而是由form_base插件使用。

适用于

form_base (插件)

格式

widget [column] [row] [column span] [row span] [widget type] [keywords]

参数

|column |窗口部件在表单中的列位置,其中0为最左边 | |row |窗口部件在表单中的行位置,其中0为顶部 | |column span |窗口部件占用的列数 | |row span |窗口部件占用的行数 | |widget type |'button', 'checkbox', 'image', 'image_button', 'label', 'rating_scale', 或 'text_input' |

关键词

待定

示例

widget 0 0 1 1 label text='这是一个标签'
Supported by