c++ usb 통신 예제

다음 예제 코드는 WinUSB 인터페이스 핸들에서 지정한 USB 장치에 대한 다양한 설명자입니다. 예제 함수는 지원되는 끝점과 해당 파이프 식별자의 유형을 검색합니다. 이 예제는 나중에 사용할 수 있는 세 개의 PipeId 값을 모두 저장합니다. 이 메서드는 장치가 연결되어 있는 경우 `true`를 반환하지만 어떤 이유로 `깨진`(예: 통신 문제 등)으로 간주됩니다. 이 플래그가 `true`이면 DeviceAttached 메서드는 `false`를 반환합니다. 이렇게 하면 장치에 예기치 않은 일이 발생할 경우 몇 가지 추가 경고 정보를 추가할 수 있습니다. WinUsb_QueryInterfaceSettings를 호출하고 장치의 인터페이스 핸들을 전달하여 해당 인터페이스 설명기를 가져옵니다. WinUSB 인터페이스 핸들은 첫 번째 인터페이스에 해당합니다. OSR Fx2 장치와 같은 일부 USB 장치는 대체 설정 없이 하나의 인터페이스만 지원합니다.

따라서 이러한 장치의 경우 AlternateSetNumber 매개 변수가 0으로 설정되고 함수가 한 번만 호출됩니다. WinUsb_QueryInterfaceSettings는 발신자가 할당한 USB_INTERFACE_DESCRIPTOR 구조(UsbAltInterface설명자 매개 변수에 전달)를 인터페이스에 대한 정보로 채웁니다. 예를 들어 인터페이스의 끝점 수는 USB_INTERFACE_DESCRIPTOR의 bNumEndpoints 멤버에 설정됩니다. 이 메서드를 사용 하 여 다음 send 명령 메서드가 호출 될 때 보낼 출력 버퍼에 바이트를 쓸 수 있습니다. 설정하려는 바이트 수(2-64)(바이트 0과 1는 통신용으로 예약됨)와 바이트 값을 간단히 공급하면 됩니다. 이 메서드는 성공하면 `true`를 반환하고 실패한 경우 `false`를 반환합니다. 안녕하세요, 어떻게 설정 PC->USB2Dynamixel->Zig2Serial->Zig100 및 Zig110->CM510이 클래스를 사용 합니까? 나는 C ++로 안심하지만 통신 시스템은 없습니다 … 환호하고 좋은 일을 계속! 다음 코드 예제에서는 콘솔 응용 프로그램의 주요 기능을 보여 줍니다. 다음 코드 예제는 지정된 USB 장치에 제어 요청을 전송하여 라이트 바의 조명을 제어합니다. 당신은 당신의 자신의 PIC USB 장치를 구축하려고한 경우 (아마도 내 이전 튜토리얼 을 따라 PIC18F USB 장치 구축) 당신은 윈도우 호스트 코드 (마이크로 칩 USB 스택 예제에 따라) 멀리 장치와 통신하는 방법에 대한 명확한 것을 발견 할 것이다. Windows 프로그래밍 및 USB의 복잡성에 익숙하지 않은 사람들을 위해 문제를 쉽게 하기 위해 장치 첨부 파일의 플러그 앤 플레이 측면을 포함한 모든 장치 통신 문제를 처리하는 일반 Visual C++ 클래스를 만들었습니다.

분리 감지. 아래에서 클래스 코드가 포함된 예제 창 응용 프로그램을 찾을 수 있습니다. 이 코드는 PIC18F USB 장치 구축에서 찾을 수있는 간단한 PIC18F 일반 HID 장치와 함께 작동하도록 설계되었습니다. 일반 클래스는 모든 유형의 일반 HID USB 장치(PIC18F 이외의 USB 통신을 지원하는 일반 마이크로 컨트롤러를 기반으로 하는 일반 HID 프로토콜을 사용하는 장치 포함)에 적합합니다. http://www.captain.at/howto-simple-serial-port-test-example.php USB 통신은 RS232보다 20배 더 복잡합니다. 아무도 내가 그것으로 귀찮게 알고있다. 일을 단순화하는 것으로 불리는 pyUSB라는 파이썬 언어모듈이 있습니다. 또한 쉬운 HID.http://www.protongeeks.com/index.php?옵션=com_content&task=view&id=136&Itemid=30 모든 USB 장치에는 인터페이스와 연관된 끝점 외에 기본 끝점이 있습니다. 기본 끝점의 주요 목적은 호스트에게 장치를 구성하는 데 사용할 수 있는 정보를 제공하는 것입니다.