C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[61213] Re:빌더로 기계와 USB 통신을 하려고 합니다.
누군가 [] 2159 읽음    2010-05-28 09:05
글쎄요 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% 잘됩니다.

+ -

관련 글 리스트
61210 빌더로 기계와 USB 통신을 하려고 합니다. 김준석 1573 2010/05/27
61213     Re:빌더로 기계와 USB 통신을 하려고 합니다. 누군가 2159 2010/05/28
61214         Re:Re:빌더로 기계와 USB 통신을 하려고 합니다. 김준석 2937 2010/05/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.