我有一个raspberry pi(我正在使用linux)和一个测量一些值的设备。在
我有一个python服务器,当客户机发送“我想要值”命令时,我会向设备询问一些值。这是我的设备的功能:
def usbDevice:
dev = usb.core.find(idVendor=0xXXXX, idProduct=0xXXXX)
if dev is None:
return 'Not found'
dev.set_configuration()
dev.write(1, '\x05', 0) # ask for the values
time.sleep(2)
ret = dev.read(0x81,2048 , 0,1200) # endpoint, siz, interf, timeout ->meas. vals
print ret
return ret
当我开始通信时,它总是进行得很好(两种方式,我发送命令,我得到 正确的反应…。然而,第二次我尝试它(无论我是否等待太久)我没有收到来自设备的响应。我知道我可以发送请求(我用打印的“第XX步”查看哪里失败),但我没有得到答复。。。我通常会遇到超时异常,但有时会出现“资源繁忙”异常。在
我应该在第一次使用后关闭usb通信吗?怎样?尽管如此,我总是使用sudo权限进行编译,我创建了一个.rules文件,所以我认为没有问题。在
除此之外,我真的很想知道这种建立USB通信的方式是否有问题,因为我以前用过类似的方法。(而且我不擅长python…)
你能提供更多的信息吗,比如linux发行版和内核号,例如
有known USB issues。好消息是a recent fix可能已经解决了这些问题。基本上,使用rpi-update,它应该更新内核(至少需要#389)。在
相关问题 更多 >
编程相关推荐