USB 직렬 장치를 쿼리하고 출력을 캡처하고 종료하는 방법은 무엇입니까?

USB 직렬 장치를 쿼리하고 출력을 캡처하고 종료하는 방법은 무엇입니까?

Linux 상자에 연결된 여러 Arduino 장치가 있습니다. 그들 사이의 유일한 차이점은 연결되었을 때의 반응입니다. lsusb명령으로는 구별 할 수 없습니다 . 출력을 lsusbname 으로 변환하는 방법을 모르지만 ttyUSB?어쨌든 내 장치를 찾을 수 없습니다.

$ lsusb
Bus 002 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 002 Device 006: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
...

하지만 다음을 통해 장치에 연결하면 cu:

$ cu -l /dev/ttyUSB0 -s 9600
Connected.
OK
~.
Disconnected.
$ cu -l /dev/ttyUSB1 -s 9600
Connected.

Relay module awaiting commands
Command 'help' is for help
~.
Disconnected.

cuBash 스크립트나 다른 수단을 통해 이러한 출력을 얻고 장치를 식별할 수 있습니까 ?


직렬 포트를 통해 Arduino를 구별할 수 없습니다.

# udevadm info -a -n /dev/ttyUSB0 | grep '{serial}'
    ATTRS{serial}=="0000:00:1d.0"

# udevadm info -a -n /dev/ttyUSB1 | grep '{serial}'
    ATTRS{serial}=="0000:00:1d.0"

답변1

이것이 내가 하는 방법이다:

devices="/dev/ttyUSB0 /dev/ttyUSB1"

for device in $devices
do

   if timeout 10s cat $device | grep -q OK
   then
     ...

관련 정보