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
[61214] Re:Re:빌더로 기계와 USB 통신을 하려고 합니다.
김준석 [liberto] 2936 읽음    2010-05-28 09:13
답변 감사합니다.
두 개의 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% 잘됩니다.

+ -

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