python - 用于检查哪个串行端口已连接的 Bash 脚本

标签 python linux bash serial-port

我有一个通过串口连接的设备。我有一个与之对话的 python 程序。但这必须通过 bash 脚本启动,该脚本将首先检查它连接到哪个串行端口,并提供必要的权限。然后它将启动 python 脚本,它应该有一种机制来了解它连接到哪个端口(就像 bash 脚本传递给它的参数一样)。

目前我的bash脚本是

#script
sudo chmod 666 /dev/ttyUSB0
sudo chmod 666 /dev/ttyUSB1
sudo chmod 666 /dev/ttyUSB2

如果设备连接到 ttyUSB1,第一行会出现错误 chmod: cannot access ‘/dev/ttyUSB0’: No such file or directory。这就是我知道它连接到 USB1 的方式。 python 程序有行 ser=serial.Serial('/dev/ttyUSB1',115200, timeout=1) 一旦我知道哪个是正确的串行端口我手动更改。

如何查看设备连接到哪个端口,并通知python程序?

最佳答案

由于您使用 chmod,您可以使用 $?并包含一个 if 语句以中断脚本并加载 python。

举个例子:

#!bash
sudo chmod 666 /dev/ttyUSB0
if [$? = 0]
   then 
    pythonscript /dev/ttyUSB0

这里的里程可能会有所不同,它很老套。您可能还想只使用

if [ -f /dev/ttyUSB0 ]

假设文件仅在连接设备时存在。我没有这方面的具体经验,所以我不会推测将其作为文件进行轮询的长期可行性。我遇到了未连接设备和/dev/中现有条目的问题,因此请密切注意这一点。

进一步阅读引用:

http://www.tldp.org/LDP/abs/html/exit-status.html

http://www.tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

关于python - 用于检查哪个串行端口已连接的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24330372/

相关文章:

python - np.convolve 与 10**9 有什么问题?

linux - 如何在系统级别将目录添加到 Perl 库路径?

linux -/usr/bin/ld : cannot find -lXMLParser

linux - 根据文件名对文件进行排序

linux - 多字符定界符剪切

python - 在python中向列表中插入一个元素

python - python递归中的链表

Python在类中传递回调函数

windows - 操作系统崩溃的常见原因

linux - 命令在 EC2 中不起作用?