我有一台仪器通过 USB 连接到 OpenSuse (11.1 32) 计算机。按照供应商的说明,我向 udev 添加了一条规则:
ATTR{idVendor}=="0e0d", ATTR{idProduct}=="0003", MODE="0666"
Run Code Online (Sandbox Code Playgroud)
有时,USB 会从 USB 2.0 更改为 1.1,但我不知道如何诊断问题。
将仪器插入带有标签“usb1”的端口后,我可以读到:
$ lsusb -t
1-1:1.0: No such file or directory
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M
|__ Port 1: Dev 109, If 0, Class=vend., Driver=, 480M
Run Code Online (Sandbox Code Playgroud)
此时仪器控制正常启动,我们可以用它来采集和处理数据。
但突然通讯中断,但 USB 高速不可用。重复最后一个命令,我得到:
2-1:1.0: No such file or directory
/: Bus 03.Port …
Run Code Online (Sandbox Code Playgroud) 试图编写一些嵌套循环,但我不知道如何编写它。也许我看错了方向,但我想写的是:
declare -a bar=("alpha" "bravo" "charlie")
declare -a foo=("delta" "echo" "foxtrot" "golf")
declare -a subgroups=("bar" "foo")
Run Code Online (Sandbox Code Playgroud)
那么我想迭代子组(将来会出现更多bar和foo),并在它们内部迭代它们,因为它们可以具有不同数量的元素。
所需的输出类似于:
group name: bar with group members: alpha bravo charlie
working on alpha of the bar group
working on bravo of the bar group
working on charlie of the bar group
group name: foo with group members: delta echo foxtrot golf
working on delta of the foo group
working on echo of the foo group
working on foxtrot of …
Run Code Online (Sandbox Code Playgroud)