1

私はラズベリーパイ(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が苦手です...)

4

1 に答える 1

1

Linuxディストリビューションやカーネル番号などの追加情報を提供できますか?

 uname -a

既知の USB の問題があります。良いニュースは、最近の修正でそれらが解決された可能性があることです。基本的に、rpi-updateを使用すると、カーネルが更新されます (少なくとも #389 が必要です)。

于 2013-03-19T00:59:06.013 に答える