Monitor identification and binding


A touch screen monitor is two totally independent devices, a video display and a touchscreen, with no known relationship between the devices.

Therefore, when a touch screen monitor is connected to a system two devices will appear in the system - a touch screen and a video display.  The video driver will handle the display and UPDD will handle the touch.

To further complicate matters, under Windows, UPDD also creates a virtual HID touch device  per monitor though which to pass touch data on the HID interface. These virtual  HID interfaces also need to be correctly associated to the internal Windows touch screen\monitor mapping. To cater for this UPDD implements a procedure to install UPDD virtual HID devices, identify the monitor metrics and configure the appropriate internal HID touchscreen / monitor association. This is referred to as the UPDD monitor identification procedure and is triggered at appropriate times, such as driver installation.

When a touch device is initially discovered, and the video display and touchscreen association is unknown, the association will be correct on a single monitor system but there is a good possibility that the association will be incorrect in a multi-monitor system until the desktop association is established using one of the methods described below to make an association between the desktop and the touchscreen.

Most operating systems will assign a unique number to each monitor - 1,2,3,4 etc. The monitor layout is normally shown in the system's display dialog.

This document describes the methods that can be employed to associate the touch device with the correct monitor id.

Default association

Until any of the association methods are used, the touch screen will be associated to monitor 1 as this will always exist and therefore touching the screen will result in some cursor movement.

Manual configuration

You can invoke the Identify procedure to make the correct association.

Defined monitor number

The monitor number can be predefined.

The device setting Monitor_Number can be used to define the monitor number. So, for example, if a touchscreen monitor is to be connected to a system such that it will always be the 2nd monitor, then setting this value to 2 will specify that the touch device is to be associated with monitor 2.

Monitor identification and binding

Modern monitors utilise Extended Display Identification Data (EDID) structures to identify themselves to the OS and this information is read by the video driver and made available to the operating system. This allows the OS to list the name of the monitor in various monitor related dialogs. Where the name is taken from the monitor then the name shown is a specific identifier whereas the name taken from the driver can, in some cases, lead to a generic non-specific name being used, especially in the case where the native video driver is being use, such as 'Generic PnP monitor'. Both examples are shown below as taken from the Windows Display properties:

     

The UPDD status dialog shows the most useful monitor name available in the OS. In cases where the OS holds a unique monitor identifier, this is shown. If the monitor is listed under a non-unique generic name, such is 'Generic PnP monitor' as is the case in some Windows versions then the driver will show the unique manufacturer id as defined in the EDID data, as per this example which is related to the above two monitors:

Here is a MacOS example showing the screen name in the Mac display dialog and the UPDD Status screen:

Really important note: As discussed, the video and the touch device are two separate devices therefore the screen name shown in the UPDD status screen is that of the currently defined monitor. The UPDD device name is that given to the touch device when configured in the driver. Therefore the screen name shown reflects the logically associated monitor which is not necessarily the physically associated monitor (the one the controller is actually connected to). e.g. the touch screen monitor is monitor 2 and when monitor 2 is selected this would reflect the correct association and the touch would be working as expected. Any other association would result in the cursor moving on the wrong desktop when using the touch screen. The status screen merely reflects whatever association has been configured not what is correct!

UPDD binding

In situations where the monitor is listed in the OS with a unique display name, this name can be preset against the touch device such that the driver will automatically associate the touch device with the named monitor.  With version 6.0.277 we have introduced a setting, monitor_bind.display_name, to allow this automatic binding of a touchscreen to a display name such that the association will be made between the touchscreen and the monitor whenever it is discovered on the system.

This is best understood by the MacOS display and UPDD Status screens shown above.  We have a Lenono, ThinkVision LT1423 touch monitor. In UPDD we have configured this device with the same name.  When this device is plugged into a Mac system the monitor is listed in the display properties as LEN LT1423pwC so we have set this name in the monitor bind key setting. Now, when the monitor and touch screen are plugged in to a Mac system the touch device will automatically be associated with the correct monitor/desktop. In the MacOS example screenshots above, the monitor is a secondary monitor, monitor 2, and the touch / desktop association has been correctly made based on the bind key association.

As part of this new feature, we have updated the command line interface functions devices or monitors to list the monitor names.

Note that the monitor_bind.display_name specifies a display (screen) name substring.  If a value is specified, then the device will associate itself with a screen with a name containing that value. The matching is case-insensitive.

e.g. if the value is 'XYZ' and a display named 'XYZ Multi touch' is found, this will be used.

This binding is checked every time there is a setting change notification; so the binding is dynamic, i.e. will track monitor layout changes.

Note that in some cases the name of a monitor as reported by the OS to the driver might differ from that seen in various system tools so you need to set the name as listed by the driver's functions, such as listed in the UPDD Status.

Currently, only supported in Windows and MacOS.

The monitor bind name can be viewed and set in the UPDD Console:

This feature is especially useful when the value is preset in the driver package as delivered to the end user such that the touch / desktop association will be correctly made when the device is connected to the system.

Additional V7 binding features

A new setting for V7, monitor_bind.display_name.v7, has been introduced but is essentially the same as the above but with some additional binding options.

Specifies a display (screen) name substring. If a value is specified, then the device will associate itself with a screen with a name containing that value.

E.g. if the value is XYZ and a display named XYZ Multi touch is found, this will be used.

This binding is checked every time there is a setting change notification; so the binding is dynamic, i.e. will track changes.

The matching is case-insensitive.

Note that in some cases, the name of a monitor as reported by the OS to UPDD might differ from that seen in various system tools.

To see the names as known by updd; use the command

upddutils nodevice get "monitorsetupname*"

Currently, only supported in Windows and Mac

A token can represent a screen resolution in the format widthxheight

E.g. 1024x768

The following special tokens are also available.

disp=primary
disp=secondary

This will bind to a primary or secondary monitor as appropriate.

A primary monitor is defined as that having its origin at 0,0

A secondary monitor is defined as the first not having its origin at 0,0

Muliple tokens separated by ";" or on separate lines can be used e.g.

14T;disp=secondary
DEL;disp=secondary

 All the tokens on a line must match for that line to be considered a match. A complete match on any line is a "complete match".

​If monitor binding is employed and two monitors of the same name are connected, then binding is likely to be incorrect. However, in this situation, using the Identify utility should correctly assign the touch / desktop association.

Search