beautypg.com

1 about hid usages, 1 about reports, 2 about the report descriptor – MagTek DynaPro Mini Programmer's99875629 User Manual

Page 12: About hid usages, About reports, About the report descriptor, 2 - connection types

background image

2 - Connection Types

DynaPro Mini| PIN Encryption Device | Programmer’s Reference (Commands)


Page 12

demonstration software that communicates with the device via this method, and developers can use it to
test the device and to provide a starting point for developing other software. For more information, see
the MagTek web site, or contact your reseller or MagTek Support Services.

These devices are full speed high-powered USB devices that, when connected, draw power from the USB
bus. They identify themselves with vendor ID 0x0801 and product ID 0x3009. The devices will enter
and wake up from Suspend mode when directed to do so by the USB host. They do not support remote
wakeup.

This device has programmable configuration properties stored in non-volatile memory. The properties
are configured via the USB port and can be configured at the factory, by the key loader, or by the end
user. More details can be found in section 3 Command Set in this document, and in a separate document
which provides details about key loading.

2.1.1 About HID Usages

2.1.1.1 About Reports

HID devices send and receive data using reports. Each report can contain several sections, called
usages, each of which has its own unique four-byte identifier. The two most significant bytes of a usage
are called the usage page, and the least two significant bytes are called the usage ID. Vendor-defined
usages must have a usage page in the range 0xFF00 – 0xFFFF, and it is common practice for related
usage IDs to share the same usage page. For these reasons, all usages for these devices use vendor-
defined usage page 0xFF20.

HID reports used by the host can be divided into three types:

Feature Reports (documented in section 3.4 General Feature Reports). Feature reports can be

further divided into Get types and Set types. The host exclusively uses this type of report to send
commands to the device and to receive synchronous responses from the device.

Input Reports (documented in section 3.5 General Input Reports) are used by the device to send

asynchronous responses or notifications to the host when a related feature report completes, or
automatically when the device’s state changes. This is common when a command depends on
cardholder action (for example, Report 0x03 – Request Swipe Card or Report 0x04 – Request PIN
Entry
)
or otherwise takes more time to run.

Output Reports. Output reports are part of the HID standard, but are not used by these devices.


The host uses HID Set Feature Reports to send commands to the device, and HID Get Feature Reports to
retrieve data or responses from the device when synchronous response is appropriate. The general
sequence for using feature reports to send a command and receive a response is as follows:

1) Send the feature report (command), which could be either a Get or Set type.

2) Read Report 0x01 – Response ACK for acknowledgement, which includes the command number

being acknowledged and a one-byte status indicating whether the device accepted the command.

3) For some commands, the host would then call a Get feature report to read the device’s response.

4) For some commands, the host would instead expect the device to send an asynchronous response via

an HID Input Report using a USB Interrupt IN transaction when the command finishes executing.

2.1.1.2 About the Report Descriptor

The list of the device’s available reports and their structure is sent to the host in a report descriptor,
usually just after the device is connected to the USB port. Generally the details of the report descriptor
are abstracted by the developer’s HID API; however, should it become necessary to examine a report