与Cedrus Xid设备接口的Python库,例如StimTracker、RB-X40、C-POD和Lumina。

pyxid2的Python项目详细描述


用于与所有cedrus xid设备通信的python库:stimtracker、rb-x40响应板、c-pod、lumina和sv-1。

xid(实验接口设备)设备与superlab、presentation和e-prime等软件一起用于接收输入,作为刺激/反应测试实验的一部分。

这将处理python项目中xid设备的所有低级设备处理。使用此库的开发人员必须轮询连接的设备以获取响应。 下面是一个如何发送TTL信号的示例:

import pyxid
import time

# get a list of all attached XID devices
devices = pyxid.get_xid_devices()

dev = devices[0] # get the first device to use
print(dev)
dev.reset_base_timer()
dev.reset_rt_timer()

if dev.is_response_device():
    while not dev.has_response():
        dev.poll_for_response()

    response = dev.get_next_response()
    print(response)
    dev.clear_response_queue()

dev.set_pulse_duration(300)

sleep_flash = .3
for bm in range(0, 16):
    mask = 2 ** bm
    print("activate_line bitmask: ", mask)
    #dev.activate_line(lines=[1,3,5,7,9,11,13,15])
    dev.activate_line(bitmask=mask)

    time.sleep(sleep_flash)

响应是一个python dict,具有以下键:

pressed: True if the key was pressed, False if it was released
key: Response pad key pressed by the subject
port: Device port the response was from (typically 0)
time: value of the Response Time timer when the key was hit/released

通过库发送ttl脉冲信号可以通过以下方法完成:

set_pulse_duration()
activate_line()
clear_line()

有关如何使用它的文档,请参见activate_line()的docstring。

计时器

每个xid设备都有一个内部计时器。这个计时器可以通过USB命令重置,或者在光线传感器或音频开始时自动重置。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我的int值在SharedReferences中不被记住   java如何编辑Spring可分页对象?   java如何在gradle中单独调用任务   jvm以编程方式设置最大java堆大小   java如果满足多个条件,如何使用If语句计算数字?   如何在java中从json文件中获取特定值   如何在Sphinx4中为Java语音识别添加自定义语法?   java int[]copy=data;//当数据是数组时会发生什么?   java豪猪管理器。停下来。destroy()不起作用   安卓在API级别28中找不到画布变量   基于SOLID的java冗余   用于talend作业的java Liferay和portlet   从java到安卓的视频流   java获取在控件的类定义中添加自定义控件的场景大小   awt Java IndexOutOfBoundsException   java如何使用Spring JmsTemplate更改MQ头   java遍历数组并打印每个对象   java Google Map api v2标记在我旋转手机和地图“刷新”之前不会移动