# Appendix B

# Elo Software Development Kit

## Introduction

Elo SDK provides a programmers API for communication with the Elo Serial and USB drivers. The functionality available to users for programming is as follows:

· Get raw and calibrated touch points from the touchscreen.

Gets touch data from the controller. This data can be retrived in raw elo coordinates or translated windows coordinate format. To get data use EloGetTouch. This call may block depending on the flags used for type of data expected. To cancel the blocking call use EloCancel.

· Change touchscreen operation modes

Touchscreen operates in the following modes:

Click On Touch: Click on touch sends immediately upon touch a mouse down/up message at the point of touch on the touchscreen. The user's finger must be removed from the touchscreen before a new touch at any location will be recognized. The cursor or selected objects CANNOT be "dragged" on the screen in this mode.

Click On Release: Click on release sends at the time of release (untouch) a mouse down/up message at the point that the screen was last touched. Dragging across objects on the screen will not highlight or select them unless untouch occurs when the touch is over the object. (Drag and Double-click)

Mouse Emulation: Sends a mouse down message at the point of contact. Selects an object if it was at the initial point of contact. Drags a selected object on the screen. Sends a mouse up message at the point of untouch. Double-clicks on an object when the screen is touched twice in succession at the same location.

These are same as the touch modes in the Elo Control Panel. You may get or change the operation mode using following calls:

· Configure drag delay

Dragdelay allows the drag functionality for touchscreen. This value can be retrieved or modified using:

· Enable or disable touch functionality

Touchscreen can be enabled to report touch data to the windows system or disabled to not report any touch data.

· Configure sound during touch

Every complete touch is indicated by beep from the system. The frequency and time is configurable, alongwith the beep being turned on or off.

· Custom alignment for touchscreen

Elo provides a standard calibration utility for video alignment. The CALIBRATION is used to convert touches from the Elo coordinate system to Windows virtual coordinate system.

The driver uses the following equation to convert a raw touch coordinate point from Elo coordinate system to the Windows screen coordinate system.
Calibration equation is

Xcal = a + m*Xuncal,

where,
Xuncal, is in Elo coordinate system
Xcal, is in Windows coordinate system
m = nScrDx / nEloDx
"a", is the X offset value entry
nScrDx = distance between targets in Windows virtual coordinates
nEloDx = distance between targets in Elo coordinates.

To get the current calibration data from driver use EloGetCalibrationData, for changing the data use EloSetCalibrationData.

· Define touchscreen boundary

Touchscreen boundary defines the bounding rectangle for the touchscreen on windows virtual desktop. This facilitates in prohibiting touch on one monitor from being propagated to the corresponding monitor.

· Swap touchscreen buttons

Use this call to use the touchscreen with swapped button for next couple of touches on the screen.

Swaps the button for the touch monitor for the touch count specified. Once the count is exhausted the SDK notifies the application, by sending WM_RELEASEBUTTON message to application window.

· Configure the touchscreen for left-handed users

For left-handed users of mouse, set the touchscreen mode using EloSetLeftHandedMouse call.

· Retrieve touchscreen diagnostics data

Diagnostic information for touchscreen can be retrieved using EloGetDiagnosticsData.

This information is also displayed in the Elo Control panel>Properties tab.

· Configure touchscreen for gaming specific mode by enabling quick touch

Quick touch is an enhanced mode of the touchscreen, usually used only for gaming purposes. Touches on screen following each other very quickly in “Mouse Emulation” mode, creates a drag box. Using this mode defining the quick touch area, creates two touches.

· Configure Edge acceleration feature

Touching towards the edge of the touchscreen is tough sometimes. This feature can be used to accelerate touch towards the edges.

· Define touchscreen to automatically timeout after constant touch in same location using Untouch timeout feature

For dirt on screen this feature is very handy. If touches are created in the same constant location automatic untouch is generated by the driver based on this timeout.

· Configure right click on hold functionality

This feature allows touchscreen to generate right clicks. A right click is generated when the user continues to touch the screen. This can be configured using:

EloPubIf.lib provides the SDK for communicating with the Elo Serial and USB drivers. In order to, communicate with the either of the drivers add this library to the list of compile time dependencies of your application and use the appropriate interface in your program. Include the header file, EloInterface.h and EloErrorCodes.h in your application.

These files can be found on Program Files\EloTouchsystems folder.

Please refer to the Appendix C, EnableDisable Sample Code for interface usage.