gpt4 book ai didi

python - 识别串行/USB 设备 python

转载 作者:太空狗 更新时间:2023-10-30 00:46:06 25 4
gpt4 key购买 nike

这个问题的解决方案可能非常简单,但我是动态连接设备的新手。我正在做的是我正在制作一个 python 可执行代码,因此用户不必在他们的计算机上有空闲或任何类型的 python 解释器,这意味着我不知道设备将插入哪个 USB 端口到。该程序需要能够打开与通过串口转 USB 转换器连接的设备的连接。如何确定哪个连接的设备是打开端口的正确设备?我正在使用 pySerial 与设备进行交互。任何帮助将不胜感激。

最佳答案

无论您如何配置您的设备,在某些时候您可能不得不询问用户端口在哪里,或者轮询所有串行设备以获得已知响应。 (虽然轮询有它的陷阱,所以请继续阅读!)。与 USB 设备不同,当您连接一个普通的串行设备时,操作系统不会知道供应商/设备 ID。

首先您需要找到串口。这是一个可能有帮助的问题:What is the cross-platform method of enumerating serial ports in Python (including virtual ports)? .

获得串口列表后,您可以询问用户是否知道要使用哪个。如果他们这样做,问题就解决了!

如果他们不这样做,您可以使用一些您知道会从您的设备产生特定响应的数据来轮询所有串行设备。请记住,如果用户连接了其他串行设备,您的“hello”字节串实际上可能是其他设备的自毁序列!因此,您应该警告用户轮询可能会干扰其他设备,并在您这样做之前始终提示他们。

在不了解您的代码的更多信息的情况下(例如,您正在使用什么通信框架,如果有的话;您是在控制台中执行此操作还是在使用 GUI 工具包等),就不可能说出最好的方法编码这可能是。在最简单的情况下,您可以遍历所有串行设备,发送问候语并检查响应。 (您也可以并行执行此操作:为问候语循环一次,然后再次循环以检查缓冲区中的内容。如果您想要比这更花哨,请使用适当的库。)


旁注:如果您有一个可以为其设置供应商/设备 ID 的内置转换器,您可能可以解决这个问题,但是转换器仍将被任何现代操作系统自动检测并枚举为串行端口;您无法将其作为 USB 设备直接与其通信。有可能找出哪个端口对应哪个 ID,但我从未尝试过这样做。但是,如果您不是选择转换器的人(例如,如果它是用户提供的电缆),则此方法毫无用处。

关于python - 识别串行/USB 设备 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com