|
답변 감사합니다.
두 개의 API 만으로도 장치에게 명령을 내리는 게 가능하다는 말씀이시군요.
그럼 이제 본격적으로 하드웨어 만들고 작업을 시작하면 되겠군요.
눈 앞이 환해지는 느낌입니다.
하드웨어 만들어지는 대로 작업에 착수해 보고, 경과를 정리해 보겠습니다.
누군가 님이 쓰신 글 :
: 글쎄요 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% 잘됩니다.
|