2013-10-29 2 views
2

USB를 통해 컴퓨터에 연결하는 DJ 컨트롤러가 있습니다. 수많은 버튼, 회전식 다이얼 (전위차계처럼 보임), 크로스 페이더 및 물론 긁힘을위한 턴테이블로 구성되어 있습니다. 이 컨트롤러는 인기있는 DJ 프로그램에서 사용할 수 있으며 정상적으로 작동합니다. DJ 프로그램에서 DJ 프로그램의 소프트웨어 기능에 장치의 다른 버튼과 컨트롤을 매핑 할 수 있습니다. 매핑 할 때, 버튼의 이름은 DJ 프로그램 ("FX1"과 같은 이름 - 단순히 키보드 버튼에 매핑되지 않은 이름)에 나타납니다.DJ 컨트롤러 (USB 하드웨어)와 통신하는 방법

USB DJ 컨트롤러에서 입력을받을 수있는 응용 프로그램을 만들고 싶습니다. 그런 어떤 공상 오디오 프로세싱 또는 아무것도, 내가 원하는 모두는 할 수 없습니다 :

  1. 장치에서 사용할 수있는 버튼과 컨트롤의 목록을 가져옵니다 이러한 컨트롤에서 대신 키보드
  2. 받기 값

DJ 컨트롤러에서 이름이 지정된 컨트롤로 버튼, 슬라이더 등이 표시되기 때문에이 정보는 실제로 조이스틱 작동 방식과 비슷한 방식으로 액세스 할 수 있다고 생각됩니다 (실제로는 .NET의 조이스틱).

일반적으로 C#과 같은 USB 장치와 통신하는 방법은 무엇입니까?

답변

0

이 모든 것은 컨트롤러 제조업체에서 사용할 수있게 된 장치와 장치가 열거되는 방식에 따라 다릅니다.

장치가 일반 장치 일 경우 (타사 드라이버가 필요함) 해당 장치의 VID/PID에 자신의 WinUSB 드라이버를 설치할 수 있습니다. 그런 다음 WinUSB API를 통해 장치와 인터페이스 할 수 있습니다. 여기서 문제는 기기의 프로토콜을 알아야한다는 것입니다. 제조업체가 기기를 가져갈 수있는 경우 기기에서 해당 프로토콜을 가져올 수 있습니다. 다른 대안은 정상적인 작동 중에 (Ellisys와 같은 하드웨어 분석기를 사용하여) 버스를 스니핑하는 것입니다.

장치가 HID 장치로 열거되는 경우 일부 HID 표준 (예 : 마우스, 키보드 또는 MIDI 컨트롤러)을 준수해야합니다. 이 경우 사양은 이미 정의되어 있으며 제조업체 외부에서 사용할 수 있습니다. 이 경우 hidapi를 사용하여 DJ 응용 프로그램과 동일한 방식으로 장치를 열고 활용할 수 있습니다.

관련 문제