Linux에서 USB 장치로 작업하고 있으며이 장치를 제어하는 라이브러리를 작성했습니다.특정 연결된 USB 장치 감지
이 장치는 표준 UART 프로토콜을 사용하지 않으므로 open
과 직렬 연결을 열고 전송 속도, 정지 비트, 패리티 등 관련 매개 변수를 구성해야합니다. , 시작 비트 - 뱅킹 레지스터.
라이브러리는 정상적으로 작동하지만이 장치가/dev/ttyUSB0라고 가정하기 위해 하드 코딩되었습니다. 즉, 이것은 내가 open
에게 전달하는 것입니다. 열리지 않으면 실패합니다.
내가 무엇을하고 싶은지는 /dev/ttyUSB0
, /dev/ttyUSB1
등이 있더라도이 장치가 존재 함을 감지하는 것입니다. 또한 이러한 장치가 여러 개 연결되어 있는지 검색합니다.
일련 번호, 제품 ID 등을 반환하는 장치의 특정 레지스터를 폴링하는 코드를 작성하여 USB의 다른 끝에있는 장치가 실제로 내 장치라는 것을 알아낼 수는 있지만 어떻게 할 수 있습니까? 네이티브 C에서 연결된 USB 장치 목록을 다시 찾을 수 있습니까?
또는 커널 모듈과의 인터페이스와 같은 더 우아한 방법이 있습니까? 실제로 사용하는 USB 드라이버를 제공 할 수는 있지만 코드를 살펴볼 때 손실됩니다.
어떤 통찰력에도 감사드립니다.
나는'리눅스'명령을 알고있다. --->'lsusb' - 코딩은 당신에게 약간의 아이디어를 줄 것이다 !!! –
나는 쉽게 답을 얻을 수는 없지만 Apple과 Spotify가 데몬을 사용하여 미디어 장치의 연결을 감지한다는 사실에 유의할 필요가 없습니다. –
높은 수준의 응용 프로그램에서 내 라이브러리의 함수를 호출하여이를 추적하는 별도의 스레드를 실행하게됩니다. 내 라이브러리에서 이것을 구현하는 방법을 모르겠습니다. – justynnuff