2013-03-17 78 views
1

我有一個覆盆子pi(我使用linux)和一個測量一些值的設備。pyusb:函數運行良好一次,第二次失敗

我有一個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不太好...)

回答

1

你能否提供其他信息,例如linux發行版和內核編號例如

uname -a 

還有known USB issues。好消息是recent fix可能已經解決了它們。基本上,使用rpi-update它應該更新內核(至少要#389)。

+0

我認爲這可能是我用我的樹莓硬件問題。只要我得到另一個我可以回答你100%肯定......無論如何,你的建議似乎是解決方案,正如之前所說的感謝信息! – iluvatar 2013-03-25 15:44:01

+0

是的,就是這樣。與最後一個Raspbian很好地工作,但不能和我的舊Raspbian一起工​​作。再次感謝!! – iluvatar 2013-03-29 12:56:04

相關問題