2016-07-26 5 views
0

私はKivyとPythonを使ってLinuxにGUIを書いています。プログラムはUSBデバイスを検出し、そのデバイスを使用してイメージをターゲットにプログラムする必要があります。ここに私のコードのスニペットがあります:kivy .bindの結果はAssertionError: ''は呼び出し不可能

これらは私がUSBデバイスを検出しようとしているコードです。これはファイル上にあり、A.pyと呼ばせてください。

busses = usb.busses() 

    for bus in busses: 
     devices = bus.devices 
     for dev in devices: 
      if (dev.idVendor == vendor and dev.idProduct == product): 
        obj = ProgJTAG.ProgJTAG(bus.dirname,dev.filename, dev.idVendor, dev.idProduct, dev) 

        break 

私がプログラムを実行すると、ProgJTAGのインスタンスを作成する際にアサーションエラーが発生しました。これは以下のように別々のファイルProgJTAG.pyに定義されている:

class ProgJTAG(BoxLayout): 
    usb_bus = StringProperty('') 
    usb_dev = StringProperty('') 
    usb_vendor = StringProperty('') 
    usb_product = StringProperty('') 

    def __init__(self, _usb_bus, _usb_dev, _usb_vendor, _usb_product, dev): 
      super(ProgJTAG, self).__init__() 

      self.usb_bus = _usb_bus 
      self.usb_dev = _usb_dev 
      self.usb_vendor = str(_usb_vendor) 
      self.usb_product = str(_usb_product) 
      self.bind(usb_bus=self.usb_bus) 
      self.bind(usb_dev=self.usb_bus) 
      self.bind(usb_vendor=self.usb_bus) 
      self.bind(usb_product=self.usb_bus) 

エラー(usb_bus = self.usb_bus)ラインself.bindから生じます。エラーメッセージがファイル "_event.pyx" で、kivy._event.EventDispatcher.bind(kivy/_event.c:5536) てAssertionError: ''

Q1呼び出すことはできません。誰でもアサーションが意味することを助けることができますか?

Q2。 _usb_bus_usb_devは空文字列です。このアサーションは、_usb_bus_usb_devは空の文字列プロパティであり、呼び出し可能ではないという事実によって引き起こされますか?

答えて

0

はい、バインドすると、バインディングは後でそれを呼び出すため、関数を渡す必要があります。

関連する問題