EETI EGTouch Linux Programming Guide v2.5c
EETI EGTouch Linux Programming Guide v2.5c
5c
2012/08/31
TABLE OF CONTENTS
TABLE OF CONTENTS.............................................................................................0
Sec 1: Introduction ................................................................................................1
Sec 2: Before install ..............................................................................................1
2.1 Patch kernel module...............................................................................1
2.2 Patch kernel source code......................................................................2
2.3 check device .............................................................................................3
Sec 3: Install Driver Package .................................................................................4
3-1 Install Process ............................................................................................4
3-2 Tools ..............................................................................................................5
Sec 4: Touch Input Event Sequence .................................................................5
4-1 Two different event sequences............................................................5
4-2 How to read touch event .......................................................................6
Sec 5: eGTouchL.ini Parameter Explanations................................................6
5-1 Parameter Table..........................................................................................6
Sec 6: Annotation....................................................................................................10
6-1 Kernel source patch ................................................................................10
6-2 DetectRotation Note ................................................................................15
6-3 Rotation and Beep for Embedded System ........................................15
6-4 Numerous Devices...................................................................................15
Sec 7: Technical Support ......................................................................................16
7-1 Environment Information .......................................................................16
7-2 Register input devices ............................................................................16
7-3 Driver debug log.......................................................................................16
eGTouch Linux Programming Guide v2.5c
2012/08/31
Sec 1: Introduction
EETI provides all kinds of touch solution. EETI eGTouchD is a touch daemon driver for EETI
touch controller. Only is available for kernel 2.6.24 upward.
Support interfaces:
1. USB
2. RS232
3. PS/2
Having below features:
1. Precise points.
2. Great calibration precision for Resistive controller.
3. Capable for 10+ points report.
4. Following Linux Standard Multitouch-protocol point report.
5. Rightclick, beep sound, constant touch filter, etc.
6. Support multi devices.
7. Available for detecting X-window rotation to do rotating coordinate.
8. Provide manually modify driver’s behavior.
This document would assist you to install eGTouchD.
If you encounter any problem as running eGTouchD driver, please help us follow the
steps described in SEC 7 to collect debug information. Send the information to us and tell
us your problem. With useful information we could help you solve the problem faster.
1
eGTouch Linux Programming Guide v2.5c
2012/08/31
Make menuconifg:
[Device Drivers] / [Input device support] / [Device Drivers] / [Input device support] /
[Event interface] [Miscellaneous devices]
/ [User level driver support]
2
eGTouch Linux Programming Guide v2.5c
2012/08/31
3
eGTouch Linux Programming Guide v2.5c
2012/08/31
We could check event node which was assigned to the virtual device and read/get input
event through this device node, e.g. /dev/input/eventX.
4
eGTouch Linux Programming Guide v2.5c
2012/08/31
3-2 Tools
As you have X-window, these tools are available for use.
Please execute these tools under “root” permission!
eGTouchU The tool eGTouchU is a utility tool which could help you modify
x86 system only driver’s parameter through UI. The detail descriptions please refer to the
document “EETI eGTouch Utility Guide” in driver package.
eCalib The tool eCalib is a calibration tool with command line. Please type
“eCalib -h” to see the usage content.
The eGTouchD daemon sends input event through kernel feature UINPUT so that the
client program can get these events from /dev/input/eventX.
5
eGTouch Linux Programming Guide v2.5c
2012/08/31
The file eGTouchL.ini has a parameter list which would be loaded by driver. Driver’s
behavior could be changed by these parameters. Please DON’T modify the front title as
setting up eGTouchL.ini.
DeviceNums How many devices you want to plug-in to the system. If you want
6
eGTouch Linux Programming Guide v2.5c
2012/08/31
7
eGTouch Linux Programming Guide v2.5c
2012/08/31
8
eGTouch Linux Programming Guide v2.5c
2012/08/31
0 Disable Beep
1 Make a beep sound as ”Touch Down”
2 Make a beep sound as ”Touch Up”
3 Make a beep sound as both two above conditions.
BeepDevice Choose the beep sound device
0 No device
1 Send beep sound by from system buzzer
2 Send beep sound by from sound card ( Only for x86 system )
3 Send beep sound from both devices.
BeepFreq You can modify buzzer beep frequency here.
X (Only for buzzer) The buzzer beep time length (ms). [Default = 200]
9
eGTouch Linux Programming Guide v2.5c
2012/08/31
Sec 6: Annotation
10
eGTouch Linux Programming Guide v2.5c
2012/08/31
11
eGTouch Linux Programming Guide v2.5c
2012/08/31
3. / S o u r c e C o d e / d r i v e r s / i n p u t / j o y d e v . c
static const struct input_device_id joydev_blacklist[] =
{
{
.flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
.evbit = { BIT_MASK(EV_KEY) },
.keybit = { [BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH) },
}, /* Avoid itouchpads and touchscreens */
{
.flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
.evbit = { BIT_MASK(EV_KEY) },
.keybit = { [BIT_WORD(BTN_DIGI)] = BIT_MASK(BTN_DIGI) },
}, /* Avoid tablets, digitisers and similar devices */
{
.flags = INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR,
.bustype = BUS_VIRTUAL,
.vendor = 0x0EEF,
}, /* Added by EETI */
{} /* Terminating entry */
};
12
eGTouch Linux Programming Guide v2.5c
2012/08/31
1. / S o u r c e C o d e / d r i v e r s / i n p u t / e v d e v . c
static bool evdev_match(struct input_handler *handler, struct input_dev *dev)
{
/* Avoid EETI USB touchscreens */
#define VID_EETI 0x0EEF
if ((BUS_USB == dev->id.bustype) && (VID_EETI == dev->id.vendor))
return false;
return true;
}
13
eGTouch Linux Programming Guide v2.5c
2012/08/31
.connect = mousedev_connect,
.disconnect = ousedev_disconnect,
.fops = &mousedev_fops,
.minor = MOUSEDEV_MINOR_BASE,
.name = "mousedev",
.id_table = mousedev_ids,
};
3. / S o u r c e C o d e / d r i v e r s / i n p u t / j o y d e v . c
static bool joydev_match(struct input_handler *handler, struct input_dev *dev)
{
/* Avoid touchpads and touchscreens */
if (test_bit(EV_KEY, dev->evbit) && test_bit(BTN_TOUCH, dev->keybit))
return false;
/* Avoid tablets, digitisers and similar devices */
if (test_bit(EV_KEY, dev->evbit) && test_bit(BTN_DIGI, dev->keybit))
return false;
14
eGTouch Linux Programming Guide v2.5c
2012/08/31
Since the ready time sequence of Xlib is different among diverse startup. We’re sorry that we
couldn’t provide solution correspond to all startup. If there’s any further problem as setting up
please contact us for technical support.
If you are using an embedded system ( ex: ARM CPU), and you need support for rotation
detection. There’s a necessary condition: Xrandr lib support since eGTouch detect rotation
event by Xrandr lib.
And so on. If you are using an embedded system ( ex: ARM CPU), you need support for sound
card beep. There’s a necessary condition: ALSA lib support since eGTouch send beep sound
by ALSA lib.
If you need this support and your system got target library, please contact us for a customized
driver. Thanks.
If you’re going to use numerous devices, please do remember to modify the parameter
“DeviceNums” in the ini file. For example: If you’ve plug two EETI devices on your system,
please modify the parameter as below:
DeviceNums 2
After modifying the parameter, please reboot your system to make it valid.
15
eGTouch Linux Programming Guide v2.5c
2012/08/31
If you encounter any problem as running eGTouchD driver, please help us follow below
steps to collect debug information. Send those information to us and tell us your problem.
With these information we could help you solve the problem faster.
Please provide us below information and the description of the problem you encountered for
us.
7-1 Environment Information
Please fill in this chart as much as you could. These would help us clarify the environment.
If you’re not sure or don’t know about it. You could just keep it blank.
1. CPU type
2. Kernel version
3. Linux Distribution and Version.
4. If having X-window, X version? ( X --version )
5. If no X-window, what’s your GUI system? (QT?)
6. Controller Interface
7. Controller Type (PCAP or Resistive or Else)
8. Controller Model, Version
2. Reboot your system. After rebooting, please touch four corner of the touch panel.
3. The log file would be printed in /tmp/eGTouch_[year]_[date]_[time]
4. You may see numerous logs named eGTouch_[year]_[date]_[time]. Please send us the
Newest one for analyzing. Thanks.
16