【问题标题】:Detect when new USB device is connected (plug'n'play)检测新 USB 设备何时连接(即插即用)
【发布时间】:2015-03-10 08:43:59
【问题描述】:

使用this answer,我们可以准确查询所有连接的USB设备。

我有一个在 Linux(Debian 或 RaspBian)上运行的 Python 程序,它执行特定任务,但我也希望这个程序在 新 USB 设备已连接时进行侦听 ,并在发生这种情况时触发特定操作。

我正在考虑做一个新的thread:

while True:
  list_USB_devices()   # using https://stackoverflow.com/a/8265634/1422096
  see_if_new_devices_in_this_list()
  time.sleep(2)        # wait 2 seconds

但我觉得这个解决方案不是很优雅。

如果连接了新的 USB 设备,有什么更简洁的解决方案可以在 Python 程序的后台进行检测?

我的程序的应用示例:监听是否连接了新的 USB-MIDI 键盘/设备,如果是,则使用 rtmidi-python 附加它 “即插即用!”

【问题讨论】:

    标签: python linux usb debian


    【解决方案1】:

    查看 gio 库(glib 的一部分)。您可以在创建设备时附加手表并连接回调。这样,您根本不必进行轮询。在设备目录上设置监视,查找文件创建。过滤掉不感兴趣的文件。

    您可能还可以查看“udev”系统本身,并编写一条规则以在新 USB 设备的幻影上执行某些操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多