繁体   English   中英

PsychoPy在64位操作系统上发送触发器

[英]PsychoPy sending triggers on 64bit OS

我在Win7 64位操作系统上使用PsychoPy独立v1.81.00发送eeg录制触发器时遇到问题。 我按照这里的描述,不会得到任何(更多)错误。 但是,触发器不会显示在录制计算机上(Win7 32bit下的Brainvision录制器)。

我做了什么:

  1. 通过InpOutBinaries_1500 \\ Win32 \\ InstallDriver.exe下载并安装InpOutBinaries_1500
  2. 将其他文件(inpout32.dll,.h和.lib以及vssver2.scc)复制到我脚本的工作目录
  3. 尝试使用windll.inpout32.Out32(0x378, triggerCode)发送触发器代码

触发器代码没有显示在Brainvision Recorder中,但在调用print str(windll.inpout32.Inp32(0x378))时似乎设置正确。

感谢您的每一条建议或想法!

我设法解决了这个问题。 我不完全确定哪个步骤实际上切断了曲线,但我建议如下:

在演示计算机上下载并安装LPT Test Utility

首先,无论您使用32位还是64位操作系统,此程序都会自动且正确地安装inpout32.dll 此外,它还可以帮助您监视和操作并行端口的引脚。 如果使用标准地址( LPT1LPT3 )不起作用,请选择LPTX并手动输入您的地址( 请参阅此处在Windows PC上获取并行端口地址的位置 )。 如果使用此程序未在您的录制计算机上显示触发器,则您遇到与PsychoPy无关的问题。

如果失败 ,(重新)安装并行端口驱动程序。 使用Windows 7这不是必要的,但实际上解决了我的一个主要问题。 如果仍然失败,可能是硬件组件(并行端口插头/卡,电缆,同步盒)损坏。

如果触发器使用“LPT测试实用程序”程序但不使用PsychoPy ,则需要根据您的代码进行单独的故障排除。 当然,您需要在PsychoPy代码中插入使用“LPT Test Utility”的端口地址。

from psychopy import core
from ctypes import windll

windll.inpout32.Out32(portaddress, triggerCode) #sends the trigger with triggerCode being an integer between 0 and 255
core.wait(0.05) #wait 50ms
windll.inpout32.Out32(portaddress, 0) #deletes the trigger i.e. resets the pins

最好的祝愿,

马里奥

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM