|
글쎄요 HID 드라이버가 어떤구조인지는 모르겠지만.
일단 빌더로도 USB통신프로그램을 만들수 있는건 자명합니다.
첫번째, CreateFile API를 이용해서 USB Device를 Open합니다.
여기서 첫번째 인자가 중요한데.. 그게 USB장치명입니다.
Drvier마다 장치명이 틀리니 HID Driver를 분석하셔서 네이밍을 하셔야 합니다.
두번째, Data 주고 받기 인데..DeviceIoControl API를 이용해서 Read/Write를 합니다
제가 사용하는 구문인데...
bResult = DeviceIoControl (hCommHandle,
IOCTL_EZUSB_BULK_WRITE,
&OutbulkControl,
sizeof(BULK_TRANSFER_CONTROL),
&outBuff[0],//&outBuffer,
packetSize,//4, //Packet Size (4byte*1)
&nBytes,
&Ov);
1. hCommHandle : 당연 CreateFile 에서 얻은 handle이고
2. IOCTL_EZUSB_BULK_WRITE : 요것이 Driver에서 제공하는 예약명령어입니다.(그래서 Driver가 중요합니다)
3. OutbulkControl : USB통신은 pipe통신을 하는데 어떤 Pipe를 이용하는가입니다.
그밖에 통신이 실패하면 무조건 bResult 가 false가 떨어집니다.
요 두가지 API만 잘 분석하시고..Driver, 장비만 잘 갖춰지면 통신은 100% 잘됩니다.
|