I aim to use Qtopia in Linux box with a touchscreen. This later is a GUNZE device with a AHL 61 controler. The Linux kernel module usbtouchscreen provide support for this device.
My problem is I don't understand the relationship between Qtopia, tslib and the driver usbtouchsreen. What peace of software have to support the calibration process.
Can a have explanation on the method for adding touchscreen support calibration.
After a week of painful work, I have found answers for all my questions.
Qtopia uses tslib as a abstraction layer for access to touchscreen. Qtopia defines a generic driver for touchscreen in the file qmousetslib_qws.cpp at qtopia-core-opensource-src-4.3.0//src/gui/embedded directory.
Linux driver for your touchscreen add suppport for reading data from it. Qtopia handles touchscreen events by the mean of tslib.
For adding support of touchschreen on Qtopia, you must done this
***compile and install the linux driver for your touchscrenn(e.g usbtouchscreen.c)
***compile tslib and install it on your target system
tar xzvf tslib.tar.gz
cd tslib-x.x.x
./autogen
./configure
make && make install
***build qtopia with support of tslib
cd qtopia-core-opensource-src-4.3.0/
./configure -qt-mouse-tslib -I includedir -L libdir
make && make install
If you develop any small test routines in Qtopia, I and others would be thankful if you would post one or two for us to play with, and to get our touchscreen running 100%.
U are all right. the usbtotouchscreen are work in system layer. In this layer, the driver provide the communication from hardware to system. QT is in application layer, so QT provide the tslib to encapsulate the details about the communication between the QT and driver. so ,if u want the touchscreen to work under linux, first need to make the driver run ,then the driver and send the data to application layer. the tslib provid the abstraction about the driver(or hardwre ) access methods. if u read the driver code , u can find some implementation like ioctl ,read ,open.etc. In QT, accord to OO mechanism , those
access can assembled in one or more lib. So the touchscreen calibrate could acess conveniently.
Natural abilities are like natural plants that need pruning by study
Hey, I have done with all these needed steps, I use qtopia4.3.0 edtion, too. I think everything should be OK. But after the QT UI shows, I can not move cursor or when I click a button there is no response, when I run ./qpe, the log said: "NoSuchKey: xxDenied: the program ID is xx", I found this is in file "qtransportauth_qws.cpp", does anyone have any idea about this?
In my case I am making integration of qtopia 4.3.0 as a new ltib package for a a new linux mxc development platform.
Since current package configuration is not supporting my platform, qtopia was not correctly configured to use the touchscreen : qtopia homescreen was grayed and a 'busy' clock displayed. Moreover in bash console I could read these qcop related 'NoSuchKey' errors log. I think that occurs at calibration.
To use the touchscreen you should have these option for qtopia :
export EXTRA_QTE_CONFIG=" -qt-mouse-tslib -qt-kbd-usb"
export PKG_QTOPIA_WANT_MOUSE=""
export QWS_KEYBOARD="USB:/dev/input/event0" (adapt to your platform)
export QWS_DISPLAY="LinuxFb:mmWidth=42:mmHeight=56" (adapt to your platform)
export QWS_SIZE="240x320" (adapt to your platform)
export QWS_MOUSE_PROTO="Tslib:/dev/input/event1" (adapt to your platform)
After that you may check in the rootfs that the service is correctly launched (for me the file is /etc/rc.d/init.d/qtopia) with these environment variables, and tslib correctly installed.