我遇到从使用Windows XP Professional和Psychopy v.1.81.03的32位PC向并行端口发送触发器的问题。
我很肯定端口地址是378,并且能够使用Eprime发送触发器,并且我可以使用软件parmon(http://english.eazel.com/lv/group/view/kl35264/Parmon.htm)打开和关闭特定引脚
我尝试过使用Stéphanie和Nicholas发布的实验(请参阅心理学谷歌小组中的这篇文章:https://groups.google.com/forum/#!topic/psychopy-users/PxPhRDkuu2A)
我已经验证安装了pywin32(版本217)和并行,并尝试了两者
port = parallel.ParallelPort(address=0x0378)
port = parallel.PParallelInpOut32(address=0x0378)
使用ParallelPort时,我得到:
追踪(最近一次呼叫最后一次):
文件“D:\ SebastianKorb \ untitled2_lastrun.py”,第65行,
port = parallel.ParallelPort(address = 0x0378)AttributeError:'module'
对象没有属性'ParallelPort'
第65行是命令port = parallel.ParallelPort(address=0x0378)
的位置
执行(请注意,之前有行from psychopy import parallel
)
当使用PParallelInpOut32时,我得到相同的结果(现在错误是关于'PParallelInpOut32')
我还尝试运行心理参考手册(http://www.psychopy.org/api/parallel.html)中显示的几行代码:
from psychopy import parallel
port = parallel.ParallelPort(address=0x0378)
port.setData(4)
port.readPin(2)
port.setPin(2, 1)
但同样,我得到了同样的错误。
我应该提一下,我还验证了我拥有文件C:\Windows\system32\drivers\parport.sys
你能告诉我下一步应该尝试什么吗?
答案 0 :(得分:5)
我忽略了它实际上是另一种方式。不推荐直接调用并行端口函数(如下所示)。尽管如此,他们仍然应该工作。所以也许试一试:
from psychopy import parallel
parallel.setPortAddress(0x378) #address for parallel port on many machines
parallel.setData(0) #sets all pins low
parallel.setPin(2,1) # set a certain pin high
parallel.setData(0) #sets all pins low
您应该将引脚保持高电平一段时间或将最后一行留下。否则,您将无法检测到更改。这也是在Coder硬件演示“parallelPortOutput.py”中完成的。也许先试试这个。
最佳,
阿克塞尔
增加:
塞巴斯蒂安,我此刻的预感是港口甚至没有启动。我认为目前的问题是只记录了相应的错误消息,但没有抛出信息性错误消息(检查日志文件)。这意味着实际上某种程度上由于某种原因无法在您的系统上访问端口驱动程序。
在Coder Shell中键入from psychopy import parallel
,然后执行下一个port = parallel.ParallelPort()
(无地址)。现在只需输入port
并将输出粘贴到此处。我的猜测是你只得到你不能做任何事情的基类(ParallelPort),比如像<psychopy.parallel.ParallelPort object at 0xe4805b0>
这样的东西。在这种情况下,您需要以某种方式修复对驱动程序的访问。
答案 1 :(得分:1)
我要支持阿克塞尔的“预感”。我认为你很可能没有安装并行端口驱动程序或者它没有工作。尝试从此处安装InpOut32驱动程序,重新启动计算机,看看是否修复了它:
http://www.highrez.co.uk/Downloads/InpOut32/
欢呼声, 乔恩