2011-01-05 5 views
3

다양하고 변화하는 USB 장치가 연결된 Linux 장치 용 IO 루틴을 작성합니다. 이 목적을 위해 어느 장치가 어떤 포트에 연결되어 있는지 파악할 수 있어야 올바른 소프트웨어로 열 수 있습니다. 'udevinfo'와 비슷한 점이 이상적 일지 모르지만 필자는 그런 식으로 시작하는 방법을 모릅니다.리눅스/C++에서 열거 형 USB 장치

C++ api에 대한 제안 사항을 읽으시겠습니까?

+0

나는 341008에 동의한다. –

답변

0

나는 chkconfig 파일에서 BASH 솔루션을 사용했다. 나는 모든 ttyUSB 항목을 살펴보고 각각에 대한 드라이버 정보를 살펴 본다.

USB_ID=`egrep -i "mct u232|pl2303|keyspan" -m 1 /proc/tty/driver/usbserial | awk '{ printf("$d", $1)}'` 
if [ -z $USB_ID ] 
then 
    echo $echo_n "No USB serial adapter found."; 
    exit 1 
fi 
2

libudev++을 살펴보십시오. 그것은 당신이 찾고있는 것 같다.

+0

libudev ++는 매우 흥미로 보이지만 내 RHEL5.5 시스템에 설치하고 싶지 않습니다. – ethrbunny

2

libusblibusb_get_device_list, libusb_get_bus_number, libusb_get_device_address을 참조하십시오.

2

GIO이 도움이 될 것입니다. volume-addedvolume-removed 신호에 연결하면 프로그램에 시스템에 추가되거나 제거 된 저장 장치에 경고합니다. GIO에서 제공하는 제어 수준이 필요하지 않은 경우 libudev++을 사용하여 GIO보다 높은 수준의 래퍼를 제공 할 수 있습니다.

0

필요한 정보가 무엇인지 모르겠지만/sys/bus/usb를 통해 갈 수 있습니까?

+0

나를위한 트릭은 어떤 USB 장치가/dev/TTYUSBn의 어느 항목에 해당하는지 알아내는 것입니다. 나는 libusb 나 libudev로 많은 성공을 거두지 못했기 때문에 cmd 행의 관련 dev 경로를 통과하는 스크립팅 된 솔루션에 대해 더 생각하고 있습니다. – ethrbunny