我在Win7 64位操作系统上使用PsychoPy独立v1.81.00发送eeg录制触发器时遇到问题。我按照说明here进行了操作,但没有得到任何(更多)错误。但是,触发器不会显示在录制计算机上(Win7 32bit下的Brainvision录制器)。
我做了什么:
windll.inpout32.Out32(0x378, triggerCode)
触发代码并未显示在Brainvision Recorder中,但在调用print str(windll.inpout32.Inp32(0x378))
时似乎设置正确。
感谢您的每一条建议或想法!
答案 0 :(得分:9)
我设法解决了这个问题。我不完全确定哪个步骤实际上切断了曲线,但我建议如下:
在演示计算机上下载并安装LPT Test Utility。
首先,无论您使用32位还是64位操作系统,此程序都会自动且正确地安装inpout32.dll
。
此外,它还可以帮助您监视和操作并行端口的引脚。如果使用标准地址(LPT1
到LPT3
)不起作用,请选择LPTX
并手动输入您的地址(see here where to get your parallel port address on a 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
祝福,
马里奥