Python PsychoPy:无法从并行端口读取数据

Python PsychoPy:无法从并行端口读取数据,python,psychopy,parallel-port,Python,Psychopy,Parallel Port,我在Windows7电脑上使用PsychopyV1.82.01(编码器视图)来运行功能磁共振成像实验。我想从并行端口读取data()(用于记录按钮按下和从扫描仪接收触发器以进行同步)。但是,当我使用readData()或readPin()时,所有管脚似乎都保持低位(“0”) 为了进行健全性检查,我尝试从演示文稿中的端口读取数据(检查设备是否工作/地址是否正确等),这可以识别按钮按下。奇怪的是,如果我在PsychoPy shell中(使用readData()和readPin()),并且演示文稿是打

我在Windows7电脑上使用PsychopyV1.82.01(编码器视图)来运行功能磁共振成像实验。我想从并行端口读取data()(用于记录按钮按下和从扫描仪接收触发器以进行同步)。但是,当我使用readData()或readPin()时,所有管脚似乎都保持低位(“0”)

为了进行健全性检查,我尝试从演示文稿中的端口读取数据(检查设备是否工作/地址是否正确等),这可以识别按钮按下。奇怪的是,如果我在PsychoPy shell中(使用readData()和readPin()),并且演示文稿是打开的,并且“端口测试”窗口是打开的,那么它确实可以工作!另外,如果我从演示文稿将数据发送到端口,那么我可以在PsychoPy中阅读此内容(因此我相当有信心我的代码很好)。setData()函数工作正常,只是读取数据有困难

我使用的代码是:

from psychopy import parallel
button = parallel.ParallelPort(0x2010)

while True:
    if button.readPin(5) !=0:
        break

print 'value received'
我对并行端口或并行函数的“幕后”工作不太自信,但似乎在读取端口时存在某种访问问题,在演示文稿访问端口时会被覆盖,但我从PsychoPy使用的函数无法自行管理?这是否可行


如果您有任何关于从何处开始修复此问题的想法,我们将不胜感激

终于成功了!如果其他人有类似问题,在函数“init”的_input32.py文件(/parallel/_input32.py)中有一个命令,用于切换到控制寄存器的零位5。我复制了此命令,并将其包含在setData()函数中,然后在readData()中修改了此命令,使第5位为高位(输入参数为基址+2和32):


可能会造成更多无法预料的问题,但目前看来这似乎是可行的

您使用的是
DLPortIO
还是
input32
驱动程序?这是32位还是64位操作系统?我使用的是32位系统和Input32驱动程序。
self.port.Out32(self.base + 2, 32)