我的代码试图连接到USB ECG传感器设备以进行连续数据流传输:
import serial
s = serial.Serial()
s.port = "/dev/tty.my-device"
s.open()
当我运行此代码时,我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "create_port.py", line 7, in <module>
s.open()
File "/Users/dimachy/anaconda/lib/python2.7/site-packages/serial/serialposix.py", line 289, in open
self.fd = os.open(self.portstr, os.O_RDWR|os.O_NOCTTY|os.O_NONBLOCK)
OSError: [Errno 16] Resource busy: '/dev/tty.my-device'
我尝试使用sudo运行上面的代码但没有成功。我已经尝试在我的计算机上的网络偏好设置中使USB服务处于非活动状态,这也没有改变上述错误。
当我使用Thomas的答案扫描可用端口时,请点击此处:
Listing available com ports with Python
我发现只有一个端口可用,它被列为蓝牙端口。 /dev/tty.my-device端口未出现在此扫描中。
当通过USB插入ECG设备时,它立即开始传输数据(无需调用设备即可启动它)。我猜这可能与&#34;资源忙碌有关&#34;错误我超越了。
我对网络编程很陌生,所以我可能会遗漏一些明显的东西。有人有什么建议吗?
答案 0 :(得分:0)
您可以尝试查看正在使用该文件的进程&#34;(在unix系统中,所有串行设备都只是要读取的文件)。尝试使用fuser列出使用您的文件的进程。 http://en.wikipedia.org/wiki/Fuser_(Unix)
在你的情况下是这样的: $ fuser /dev/tty.my-device