델파이 또는 C++로 윈도우 애플리케이션을 만들 때 사용하는 WINSOFT 휴먼 인터페이스 장치(HID, Human interface device) 통신 컴포넌트

– 원문 링크: https://blogs.embarcadero.com/human-interface-devices-communicator-for-delphi-c-builder-on-windows/
– 원문 제목: Human Interface Devices Communicator For Delphi/C++ Builder On Windows
– 원문 작성자: Anbarasan

 

전광판(Alphanumeric display), 바코드 리더, 센서, 해드폰이나 스피커의 볼륨 조정기 등 휴먼 인터페이스 장치(HID, Human interface device)와 연결된 애플리케이션이 점점 더 실생활에서 많이 사용되고 있다. HID와 통신하는 라이브러리를 델파이/C++/라자루스(Lazarus)로 구현하기 위해 점점 더 많은 시간을 들이고 있다면, WINSOFT에서 제공하는 강력한 라이브러리를 고려해보자. 이 라이브러리는 윈도우 표준 HID API를 사용한다.

기능

– HID 디바이스가 추가되거나 제거되면 알림
– 시스템에서 가용할 수 있는 모든 HID 디바이스 정보를 추출
– HID 디바이스용 Feature Report를 GET또는 SET 하기가
– 32비트/64비트 윈도우 지원

지원 버전(2020년 10월 기준)
– 델파이/C++빌더 5부터 10.4와 라자루스 2.0.8

플랫폼
– 윈도우(Windows)

Native HID Library설치 과정

1. Native HID 설치 파일을 다운로드하고 압축 풀기
2. 알맞은 버전 (예: 델파이 10.4) 폴더를 찾아서 열기
3. Readme.txt 파일 열고 기능과 카피라이트 정보 읽기
4. Windows VCL Application을 하나 생성하고, 코드의 uses 구역에서 Hid.pas 유닛 파일을 추가
5. 사용하려는 라이브러리가 들어있는 폴더를 Project->Options->Delphi Compiler->Search Path에서 추가
6. Compile 실행 후 해당 라이브러리를 사용할 수 있는지 확인

NativeHID 설치 과정 데모:

NativeHID의 주요 개념

Report – Report는 디바이스와 그 디바이스와 연결된 소프트웨어 사이에 교환되는 실제 데이터이다.

Input Report – HID 디바이스이 애플리케이션에게 보내는 데이터 (주로 디바이스의 통제 상태가 변경될 때)
Output Report – 애플리케이션이 HID 디바이스에게 보내는 데이터 (예: 키보드에 있는 LED 전구에게 보내는 데이터 등)
Feature Report – 수작업으로 읽기/쓰기할 수 있는 데이터 (주로 디바이스 구성 정보)
Report Descriptor – Report Descriptor는 해당 디바이스에서 지원하는 데이터의 형식과 의미를 설명한다.
UsageTables – Usages 설명이 들어 있는 목록, 특정 항목이 의도하는 의미와 사용에 대한 설명을 Report Descriptor에서 제공 (예: 마우스 왼쪽 버튼의 사용 정의). USB-IF 그룹에서 UsageTables을 공표한다 (USB-IF HID 규격 참고).

Native HID library를 가지고 애플리케이션 만드는 법

1. RAD스튜디오 10.4를 열고 Windows VCL Application 하나 생성하고, 코드의 uses 구역에서 Hid.pas 유닛 파일을 추가
2. 사용하려는 라이브러리가 들어있는 폴더를 Project->Options->Delphi Compiler->Search Path에서 추가
3.

 

* OnDeviceArrival– 시스템에 들어온 DeviceName을 제공. DeviceName은 해당 디바이스를 열고, 디바이스 속성을 표시할 때 사용됨
* OnDeviceRemoved – 시스템에서 제거된 DeviceName을 제공
* Get/SetFeatureReport – 수작업으로 구성 정보를 읽고 쓸 때 사용
* GetInputReport – 해당 Report ID에게 HID 디바이스에서 보낸 데이터 가져오기
* SetOutputReport – 해당 Report ID의 HID 디바이스의 데이터를 설정하기

4.

5. 디바이스 속성 표시


6. DeviceName가져오기

 

7. 각 DeviceName을 돌면서 GetFeatureReport

 

8. 각 DeviceName을 돌면서 GetInputReport

 

9. 각 DeviceName을 돌면서 읽기 전용으로 각 디바이스를 다시 열어서 읽기

 

10.

 

 

Native HID Library ‘코드 작성’ 데모:

결론: 이렇게 쉽게 휴먼 인터페이스 장치(HID, Human interface device)를 애플리케이션에 다룰 수 있다. WINSOFT의 NativeHID Library를 사용하면 윈도우API를 직접 다루는 시간을 줄여줄이고 생산성을 높일 수 있다.

델파이와 C++빌더용 WINSOFT Native HID Libraryt에 대한 전체 안내 페이지를 살펴보자.