
EloMapping
--------------

Elo standard copyright
Create by: Thai Nguyen

-----------------------------------------------------------------------------------------------------

A Command line interface tool to map all the touch Monitors' USB device to videos displaying. 
This tool will work with all combinations of:
  - Elo and build-in touch drivers
  - Elo and generic touch monitors
This tool is using USB and Video indexes to map between input and output. This way can help user to 
overcome the issue that USB device ids could be changed every time the USB unplug/plug or reboot 
system.  Therefore, user can set it auto-run, and do mapping every time the system reboot (careless 
about USB device ids changed)


System requirements:
- Linux OS with X-window graphical shell


-----------------------------------------------------------------------------------------------------
Version 1.0
10/21/2020

This release supports following:

- The tool will search and display all USB touch inputs, and video outputs for mapping.
- User can do all touch inputs and video outputs mapping at once
- User can only do specific pair(s) of touch input and video output at a time

$ ./EloMapping [option]\n");
    option:\n");
      <none>                                        : will ask for mapping video index to map to touch input index\n");
      <USB-in-index:video-out-index>                : will map only this pair of index\n");
      <in-index:out-index> <in-index:out-index>     : will map only these pairs of index\n");
      <in-index:out-index> <in-index:out-index> <etc:etc>\n");
      -help                                         : tool's usage\n\n");



Tool’s usage:
-------------
$ ./EloMapping -help
Command line interface tool to map all the Elo Monitors' touch USB device to video displayings.
The tool will search and display all USB touch inputs, and video outputs for mapping.
Version 1.0
Usage:
$ ./EloMapping [option]
    option:
      <none>                                        : will ask mapping video index to map to touch input index
      <USB-in-index:video-out-index>                : will map only this pair of index
      <in-index:out-index> <in-index:out-index>     : will map only these pairs of index
      <in-index:out-index> <in-index:out-index> <etc:etc>
      -help                                         : tool's usage




Examples with output
--------------------

$ ./EloMapping
Detected USB information:
  Usb #0     (12) Elo multi-touch digitizer - 0 - 04e7:1080
  Usb #1     (13) Elo multi-touch digitizer - 1 - 03eb:8a6e
  Usb #2     (14) Elo multi-touch digitizer - 2 - 03eb:8a6e
Detected Video information:
  Video #0   VGA-1 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 375mm x 300mm
  Video #1   DVI-I-2-1 connected 800x480+3200+0 (normal left inverted right x axis y axis) 154mm x 86mm
  Video #2   HDMI-1-3 connected 1920x1080+1280+0 (normal left inverted right x axis y axis) 344mm x 194mm
Please enter the Video number the USB will map to
  For USB #0, enter the mapping video #: -> 1
  For USB #1, enter the mapping video #: -> 0
  For USB #2, enter the mapping video #: -> 2
    -> Do mapping USB #0 (12) to Video #1 (DVI-I-2-1)
    -> Do mapping USB #1 (13) to Video #0 (VGA-1)
    -> Do mapping USB #2 (14) to Video #2 (HDMI-1-3)
    Success send command(s) to configure mapping from the USB to Video ports.



$ ./EloMapping 0:1
Detected USB information:
  Usb #0     (12) Elo multi-touch digitizer - 0 - 04e7:1080
  Usb #1     (13) Elo multi-touch digitizer - 1 - 03eb:8a6e
  Usb #2     (14) Elo multi-touch digitizer - 2 - 03eb:8a6e
Detected Video information:
  Video #0   VGA-1 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 375mm x 300mm
  Video #1   DVI-I-2-1 connected 800x480+3200+0 (normal left inverted right x axis y axis) 154mm x 86mm
  Video #2   HDMI-1-3 connected 1920x1080+1280+0 (normal left inverted right x axis y axis) 344mm x 194mm
    -> Do mapping USB #0 (12) to Video #1 (DVI-I-2-1)
    Success send command(s) to configure mapping from the USB to Video ports.



$ ./EloMapping 0:0 1:1
Detected USB information:
  Usb #0     (12) Elo multi-touch digitizer - 0 - 04e7:1080
  Usb #1     (13) Elo multi-touch digitizer - 1 - 03eb:8a6e
  Usb #2     (14) Elo multi-touch digitizer - 2 - 03eb:8a6e
Detected Video information:
  Video #0   VGA-1 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 375mm x 300mm
  Video #1   DVI-I-2-1 connected 800x480+3200+0 (normal left inverted right x axis y axis) 154mm x 86mm
  Video #2   HDMI-1-3 connected 1920x1080+1280+0 (normal left inverted right x axis y axis) 344mm x 194mm
    -> Do mapping USB #0 (12) to Video #0 (VGA-1)
    -> Do mapping USB #1 (13) to Video #1 (DVI-I-2-1)
    Success send command(s) to configure mapping from the USB to Video ports.



