回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试使用python和pyserial通过串行端口将数据发送到hplc泵。我在linux(gentoo的一个衍生物)下测试了电缆和泵,在那里它工作得很好,尽管是根。现在,我必须在WinXP机器上使用代码,在这里,当我试图打开端口时,总是出现“拒绝访问”错误(我将参数调整为COMxx而不是ttySxx,找到了端口)。
我试过计算机的串行端口,以及USB2Serial适配器。
我听说WinXP在试图用自己编写的代码来处理某个端口时有很大的限制。
有没有比安装linux更简单的解决方法?</p>
<pre><code># -*- coding: utf-8 -*-
import sys
import time
import serial
from threading import Thread
"""
usage: cmdCapture workDirectory pictureTime pressureTime
"""
print 'successful import is successful'
workDir=sys.argv[1]
pressureThresh=float(sys.argv[3])
class doCapture(Thread):
def __init__ (self, workDir, pressureThresh):
Thread.__init__(self)
self.workDir=workDir
self.pressureThresh=pressureThresh
self.pressureTimer=0
</code></pre>
<h2>->;我在这里设置串行端口</h2>
<pre><code> self.ser=serial.Serial(port='\\.\COM1', baudrate=9600, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=1)
</code></pre>
<h2>->;出现错误</h2>
<pre><code> self.ser.open()
def getPressure(self):
self.ser.write('PR')
return self.ser.read(size=8), timer.timer()
def run(self):
self.pressureTimer=time.timer()
while 1:
if self.pressureTimer<=(time.timer()-self.pressureTime):
self.p=getPressure()
print self.p
myCapture=doCapture(workDir, pressureThresh)
myCapture.start()
</code></pre>