连接USB端口时出现“资源忙”错误
我有一段代码,试图连接一个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在这里提供的代码扫描可用的端口:
我发现只有一个端口可用,它被列为蓝牙端口。而/dev/tty.my-device这个端口在扫描中没有出现。
当心电图设备通过USB插入时,它会立即开始传输数据(不需要调用设备就能开始)。我猜这可能和我上面提到的“资源忙”错误有关。
我对网络编程非常陌生,所以可能漏掉了一些明显的东西。有没有人能给我一些建议?
1 个回答
0
你可以查看哪些程序正在使用那个“文件”(在Unix系统中,所有的串口设备其实都是可以读取的文件)。可以试着用fuser这个命令来列出正在使用你这个文件的程序。
在你的情况下,可以这样使用:
$ fuser /dev/tty.my-device