我有问题,从32位PC机与WindowsXP专业版和精神病V.1.81.03发送触发器到并行端口。
我确信端口地址是378,并且能够用eptime发送触发器,并且能够用软件语句打开和关闭特定的管脚(http://english.eazel.com/lv/group/view/kl35264/Parmon.htm
我试过使用Stéphanie和Nicholas发布的实验(参见精神病谷歌组的这篇文章:https://groups.google.com/forum/#!topic/psychopy-users/PxPhRDkuu2A
我已经验证了pywin32(版本217)和parallel已经安装,并尝试了两者

port = parallel.ParallelPort(address=0x0378)
port = parallel.PParallelInpOut32(address=0x0378)

当使用ParallelPort时,我得到:
回溯(最近一次呼叫时间):
文件“d:\ sebastiankorb\untitled2_lastrun.py”,第65行,in
port=parallel.parallelport(地址=0x0378)attributeRor:“模块”
对象没有属性“parallelPort”
第65行是命令port = parallel.ParallelPort(address=0x0378)
执行(注意,在这之前有一行from psychopy import parallel
当使用pparallelimpout32时,我得到了相同的结果(只是现在的错误是关于'pparallelimpout32')
我还试着运行了《精神病参考手册》(psychopy reference manual)上显示的几行代码:
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
你能告诉我下一步该怎么做吗?

最佳答案

我忽略了事实上是相反的。不赞成直接调用并行端口函数(如下所示)尽管如此,它们仍应发挥作用。所以不妨试试:

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

你应该把别针高一点,或者把最后一行去掉否则,您将无法检测到更改这也是如何在编码器硬件演示“parallelportoutput.py”中完成的。也许先试试这个。
最好的,
阿克塞尔
增加:
塞巴斯蒂安,我现在的预感是港口还没有启动。我认为目前的问题是,只记录了相应的错误消息,但没有抛出信息性错误消息(请检查日志文件)。这意味着,实际上由于某种原因,无法在系统上访问端口驱动程序。
在编码器外壳中键入from psychopy import parallel,然后执行下一步port = parallel.ParallelPort()(无地址)。现在只需键入port并将输出粘贴到此处我的猜测是,您只得到不能使用的基类(ParallelPort),例如<psychopy.parallel.ParallelPort object at 0xe4805b0>在这种情况下,您需要以某种方式修复对驱动程序的访问。

关于python - PsychoPy:通过XP 32位在PC的并行端口上发送触发器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28581854/

10-09 02:49