Revision 1.5 – 29th  Jan 2013

www.touch-base.com\documentation\general

 

                             UPDD mouse emulation

 

 

Emulation Modes

Changing modes

Switching modes

Notes

Click UPDD API

System settings

Contact

 

Most pointer devices emulate the actions of the mouse; pen down, cursor movement, pen up to generate left clicks, right clicks, double clicks etc.  These actions have to be derived from the triggers generated from the pointer device. In the case of a standard single stylus touch screen these triggers are initial touch, movement, stationary touch and last touch - effectively a complete touch sequence. There can also be pressure and dual touch triggers.

Our driver implements a number of different mouse emulation modes to cater for the different ways mouse emulation is likely to be used.
In standard mouse emulation mode the system pointer will jump to the point of touch, generate a pen down, follow the stylus as it moves and then generate a pen up as the stylus leaves the device surface.  There are a number of variations of this standard mode of operation and are referred collectively as the ‘Mouse emulation modes’.  This document describes the modes in greater detail and describes the way in which these modes can be set in various environments and also the system and UPDD settings that can affect mouse emulation.

 

Important note: It is important to note that the driver’s mouse emulation settings are only active if the driver is responsible for mouse emulation via the system’s mouse interface when using single touch. Any alternative touch interface, such as Windows 7 / 8 extended touch or Mac OS X gestures will dictate the single touch mouse emulation performed.

Emulation Modes

With UPDD version 3 we had 15 mouse emulation modes.  Many customers suggested we had too many settings in version 3 and part of the version 4 remit was to simplify the GUI and the settings. As part of this simplification process we reduced the number of listed emulation modes to 4 and renamed them in the process as shown below:

 

UPDD Mouse Click Mode emulation names

Version 3

(UPDD internal setting)

Version 4

(Name seen in UPDD Console)

Touchdown Left

Click then Drag  (The most common, standard usage)

Touchdown Left is left button click (pen) down on first contact, ability to drag cursor with pen down and then left button click (pen) up when the stylus is lifted from the device.

Liftoff Left

Drag then Click

Ability to move cursor and then left button click (pen) down and up at the point of lift off.

Touchdown Left (with motion checkbox unchecked)

Point and Click

Point and Click is left button click (pen) down and then left button click (pen) up when the stylus is lifted from the touch screen. Does not allow for cursor dragging or movement.

Interactive Touch

Interactive Touch

Interactive Touch is similar to Touchdown Left in that it generates a left button click (pen) down on first contact, ability to drag cursor with pen down and then left button click (pen) up when the stylus is lifted from the touch screen.  However, holding the stylus steady whilst touching invokes a right button click (pen) down and up at the point of touch.

N/A

Interactive – latched (UPDD 4.1.8 and above)

As above but the right click pen down is held until the stylus is removed from the screen then the pen up is performed. Useful if some functions require the right click to be held down, such as in a gesture package used by a UPDD user.

None

Not exposed in V4 user control panel

Motion only – no clicks

Liftoff Double Click

Not exposed in V4 user control panel

Time Double Click Left

Not exposed in V4 user control panel

Tap Double Click Left

Not exposed in V4 user control panel

Touchdown Right

Not exposed in V4 user control panel

Touchdown Double Click Right

Not exposed in V4 user control panel

Touchdown Immediate Left

Not exposed in V4 user control panel

Time Left

Not exposed in V4 user control panel

Time/Tap Left

Not exposed in V4 user control panel

Tap Left

Not exposed in V4 user control panel

Time/Time Left

Not exposed in V4 user control panel

Touchdown Double Click Left

Not exposed in V4 user control panel

 

Although the logic remains in the V4 driver to support all the above emulation modes we have only exposed the new names in the UPDD Console program to simplify the end user manual selection:

 

 

The driver can actually hold two emulation modes against each touch device for each Event that can occur on a device; the Primary click mode and an alternative or Secondary click mode that can be switched to as required.  The UPDD Console, Click Mode dialog (shown above) shows the Primary click mode setting for the default event.  UPDD V3 Console did show/allow update of all primary and secondary click modes for all events but it was such a rarely used function we have removed it under version 4 as part of the simplification process.

 

As standard the UPDD driver will be supplied with the primary click mode set to ‘Click then drag’ or ‘Interactive touch’ and the secondary click mode set to ‘Touchdown Right’ but other default modes can be defined if required.

Changing the primary and secondary click modes

There are various ways to change the primary and secondary click modes as follows:

Default settings

The driver can be supplied with the required click modes predefined for all Events.

UPDD User Console

Use the UPDD User Console, Click mode, to change the Primary click mode (for the default event) as required.

UPDD Advanced Console

Under development!

Manually update the UPDD settings files

In cases where the UPDD User or Advanced console is not available or not practical to use, such as embedded systems, the required click mode settings can be manually set in the UPDD configuration files. You can either edit the file or use the command line user interface:

UPDD 4.1.10: tbutils setting sz “event mode 0” [mouse emulation mode]

UPDD 4.1.8: tbcalib "/settingsz:event mode 0=[mouse emulation mode]”.

E.g. In 4.1.10, to set the mouse emulation mode to motion only (no clicks) run the command:

Tbutils setting sz “event mode 0” None

or to set the mouse emulation mode to ‘Click and drag’ run the command:

Tbutils setting sz "event mode 0" "Touchdown Left" (note the V3 emulation name is used)

or

to switch from ‘Click and Drag’ to ‘Point and click’

Tbutils setting dw Motion 0   (Point and Click - Touchdown Left with no motion)

UPDD Application Programming Interface

An application can call the TBAPISetSettingsSZ API function to update the required settings. After changing the settings ensure a call to TBAPIApply API function is made to reload the driver which will in turn reread the settings.  During the reload touch will be momentarily disrupted.

Switching between primary and secondary modes

Once the required primary and secondary click modes are defined the user/system can switch between the two click modes as follows:

 

User interface

An Event Selector utility is supplied to allow an end user to switch between click modes.

 

Application Programming Interface

An application can call the TBApiSetEventSelectorState(n) to switch to the primary or secondary modes. n = 0 =  Primary, n = 1 = Secondary as required.

Mouse Emulation Notes

These notes are referenced from within this document and should be read in context with the associated point of reference:

Events

An Event refers to the triggers on a touch device that can be associated with a click mode.  In 99% of cases a touch device has the UPDD default event defined and no others. This is configured in the UPDD controller database for a given controller as follows:

The default event is the touching of the device and has two trigger points. One, when the stylus contacts the touch screen for the first time and the other when it leaves the touch screen for the last time.  This allows for the click modes to be associated with these default event trigger points. E.g. Pen down on contact, pen up on last touch.

However, a touch device may generate a number of events that can be used as triggers for mouse emulation actions.  Take for example a PS/2 touch controller that allows a real PS/2 mouse to piggy back on the touch controller and deliver both touch and mouse packets to the driver.  The driver would also receive the mouse data packets that carry left and right button click data.  In this case the controller would be configured in UPDD for the default touch event but also the Left and Right button events as shown below:

In this example, the controller will send both data packets to the driver; Mouse and Touch. The mouse packet shows where the L (Left button) and R (Right button) are defined in the incoming data stream and when they are set (=1) then the driver will perform the click mode associated with the L binding.  Depending on the event selector setting the Primary or Secondary/Alternative click mode will be performed.

Settings

UPDD settings are held in the system at various places depending on OS and UPDD release as shown:

OS

Version

Setting location

All OS supported

Linux, Mac, Windows desktop

4.1.x

TBUPDD.INI

Linux and Mac OS X

4.0.x

TBUPDD.reg

Windows (desktop)

4.0.x

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TBUPDD\

Windows CE

4.0.x

tbupddce.reg at registry branch location HKLM\Drivers\BuiltIn\TBUPDD\

(these settings are copied to the CE project.reg file as part of the CE image build.  See CE integration guide for further details)

For Windows 4.1.x the click mode settings are held in the .INI file [updd\parameters\N] section

For Windows 4.0.x the click mode settings are held in the registry / registry file at the [updd\parameters\{..}\N] branch

where N = the device handle, normally 1 for the first device, 2 for the second device etc

and are named

event bind n=Bind name

event mode n=Primary Click Mode

event alt mode n=Secondary Click Mode

event name n=Event Name

These set of click mode settings will be present for each device event [1] defined where n = 0 for the first event defined, 1 for the second event defined etc. It is VERY unlikely that the name or bind setting will need to be changed, only the primary and secondary click mode names. Valid names are listed in the “UPDD Mouse Click Mode emulation names table above”. Important: These settings still utilise the UPDD version 3 click mode names.

Example

A device is defined in UPDD with one Event, being the default touch event

This will result is the following settings:

event bind 0=DFLT

event mode 0=Touchdown Left

event alt mode 0=Touchdown Right

event name 0=Default

For UPDD 4.1.x and above only update these settings via the UPDD Advance Console, command line user interface or the TBAPISetSettingsSZ API function call. To manually update the settings via an alternative method, stop the driver (Net Stop tbupddwu), make the change and then either restart the driver to reread the settings (Net Start tbupddwu) or reboot the system.

If changing either mode to Interactive Touch, the right click is generated after the stylus has been held steady for a period of time at dictated by the setting “interactive touch time”, where:

interactive touch time=0x00000001 = fastest (right click almost immediately)

interactive touch time=0x00000064 = Slowest (right click after about 3 or 4 seconds)

TouchDown Right

This setting is effectively ‘Click Down and Drag’ but with the right button down.

Mouse click UPDD API interface

The UPDD API provides callbacks to indicate mouse events (up / down) by registering the appropriate callback type, as follows:

#define _ReadDataTypeEvent 0x0002  // button state changes

TBApiRegisterDataCallback {Parameters}

Related Mouse emulation system and UPDD settings

There are a number of system or UPDD settings that can affect the performance of mouse emulation as follows:

Setting

Description

System - Double click speed

Nearly all OS have an internal double click speed setting and if this is set too fast it is virtually impossible to perform a double click with a stylus.

UPDD – Motion

If disabled (unchecked or set to 0 in the settings) then no pointer motion is performed.

UPDD - Anchor Mouse

At the end of the touch (pen up) the system pointer is returned to its position prior to the touch.

UPDD - Buttondowntime

When the driver requests Windows to move the system pointer and generate a click the sequence of Windows messages will be:

WM_MOUSEMOVE

WM_LBUTTONDOWN

WM_LBUTTONUP

The move and down messages are generated at the same time. However, a user had written an application that was triggered on Mouse Move but did not function correctly unless there was a delay between the move message and the button down message.  This setting defines any delay needed at that point.

Contact

For further information or technical assistance please email the technical support team at technical@touch-base.com