PDA

View Full Version : touchscreen QTe



damien
5th September 2008, 15:09
hi,

I use a uClinux in a board BF548, I want to use a touchscreen with picture flow application (QT app).
I can calibrate my touch screen with ts_calibrate so i think it working.
I can execute ./pictureflow -qws to show in my LCD screen some picture.
but i can't use the touch screen in the pictureflow app and all the QT app.
do you know how can i use a touchscreen with QTe3.3.5.

I have configure QT with :
./configure -shared -depths 32 -no-cups -no-ipv6 -embedded bfin -little-endian -thread -qt-mouse-tslib -L /home/dam/blackfin-sources/TS/ -I /home/dam/blackfin-sources/TS/

my uClinux is build with TS

my env on my board is :
QWS_MOUSE_PROTO=tslib:/dev/input/event1
TSLIB_TSDEVICE=/dev/input/event1
TSLIB_CALIBFILE=/etc/pointercl
TSLIB_CONFFILE=/etc/ts.conf
TSLIB_CONSOLEDEVICE=none
TSLIB_FBDEVICE=/dev/fb0

could you help me

webquinty
5th September 2008, 16:53
Some questions:

1.- are you patch QT embedded to add TSLIB support??
2.- When I configure QTe, I use the follow options:

export QTDIR=$PWD
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:/opt/tslib/lib
echo yes | ./configure -platform linux-g++ -embedded x86 -big-endian -no-cups -depths 4,8,16,24,32 -qt-gif -qt-libjpeg -qt-libpng -qt-zlib -qt-mouse-linuxtp -qt-mouse-tslib -L /opt/tslib/lib -I /opt/tslib/include -lts

best regards

P.D. Tengo ganas de irme a casa, que ya es hora.............

damien
5th September 2008, 17:53
How can i patch QT with TS Lib please

damien
5th September 2008, 20:23
i need the patch of TSlib for QTembedded 3.3.5 where can i find it?

kugar
9th September 2008, 13:25
Tslib has to be configured properly on your device.
Can you run ts_test?
What is the conent of ts.conf file?

damien
9th September 2008, 14:51
hy kugar,
I can run ts_calibrate but ts_test
root:/> ts_test
ts_test: not found

this is my ts.conf:

# Uncomment if you wish to use the linux input layer event interface
module_raw input

# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
# module_raw collie

# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
# module_raw corgi

# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
# module_raw ucb1x00

# Uncomment if you're using an HP iPaq h3600 or similar
# module_raw h3600

# Uncomment if you're using a Hitachi Webpad
# module_raw mk712

# Uncomment if you're using an IBM Arctic II
# module_raw arctic2

module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

Thank you for your help

kugar
10th September 2008, 10:00
Well,
you should have some Tslib test tools provided by tslib sources. They are very helpful:
ts_test - you can use your touch screen
ts_calibrate - calibrate your ts
ts_finddev - check if device is a ts
ts_print - print coords computed by modules from ts.conf
ts_print_raw -print raw coords
ts_harvest -don't remember ;)
Maybe you should change input module. I use h3600. Default input does not work on my device.

damien
11th September 2008, 14:32
hello
I can run ts_calibrate and “event_test /dev/input/event1" but the other test like ts_test or ts_print are not found, i don't know why?
I think that my touch screen running because i detect the event and i can calibrate it, but i don't found what is the configuration step of QT which isn't working

best regards

damien
11th September 2008, 14:49
I haven't the file qmousetslib_qws.cpp in the qt-embedded/src/embedded/
I think this is the problème I haven't driver for TSlib in QTembedded.
can i had it?

kugar
12th September 2008, 08:03
If you configure Qt with -qt-mouse-tslib option then you must have Tslib driver somewhere. I think that your board has a Sharp's touch screen. Maybe you have to change raw module. By the way, I have got qmousetslib_qws.cpp in Qt/src/gui/embedded folder.

damien
12th September 2008, 16:20
hy,
thanks

I haven't qmousetslib_qws in all the qtembedded file.
can i find it? and is it difficult to configure for my hardware?

I have
TFT LCD Display with Touch Screen: SHARP LQ043T1DG01, 480 X 272, 4.3 inch Touch Screen LCD; AD7877 Touch Screen Controller

best regards

kugar
15th September 2008, 07:56
Hi,
In my case, -qt-mouse-tslib option was enough. You have to configure nothing else. Qt just uses Tslib functions and structures to manage touch screen. That's why you must have tslib configured properly on your device. That is strange that you haven't got qmousetslib_qws.cpp in your Qt sources. Try to download Qt embedded once again. And download and compile Tslib.

damien
16th September 2008, 22:12
Thanks,

I have try
./configure -shared -depths 4,16,24,32 -no-cups -no-ipv6 -embedded bfin -little-endian -thread -qt-mouse-tslib -L /usr/local/lib/ts -I /usr/local/include

make

and I have this error

in/qtextcodecfactory.o .obj/release-shared-mt-emb-bfin/qtextcodecplugin.o .obj/release-shared-mt-emb-bfin/qstylefactory.o .obj/release-shared-mt-emb-bfin/qstyleplugin.o .obj/release-shared-mt-emb-bfin/qcommonstyle.o .obj/release-shared-mt-emb-bfin/qcdestyle.o .obj/release-shared-mt-emb-bfin/qmotifplusstyle.o .obj/release-shared-mt-emb-bfin/qplatinumstyle.o .obj/release-shared-mt-emb-bfin/qsgistyle.o .obj/release-shared-mt-emb-bfin/qwindowsstyle.o .obj/release-shared-mt-emb-bfin/qmotifstyle.o .obj/release-shared-mt-emb-bfin/qgfxdriverplugin_qws.o .obj/release-shared-mt-emb-bfin/qgfxdriverfactory_qws.o .obj/release-shared-mt-emb-bfin/qkbd_qws.o .obj/release-shared-mt-emb-bfin/qkbddriverplugin_qws.o .obj/release-shared-mt-emb-bfin/qkbddriverfactory_qws.o .obj/release-shared-mt-emb-bfin/qmouse_qws.o .obj/release-shared-mt-emb-bfin/qmousedriverplugin_qws.o .obj/release-shared-mt-emb-bfin/qmousedriverfactory_qws.o .obj/release-shared-mt-emb-bfin/qgfxlinuxfb_qws.o .obj/release-shared-mt-emb-bfin/qkbdtty_qws.o .obj/release-shared-mt-emb-bfin/qkbdpc101_qws.o .obj/release-shared-mt-emb-bfin/qmousepc_qws.o .obj/release-shared-mt-emb-bfin/qmousetslib_qws.o .obj/release-shared-mt-emb-bfin/qconfig.o -L/usr/local/lib/ts -lts -ldl -lpthread
/home/dam/blackfin-sources/build/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/../../../../bfin-linux-uclibc/bin/ld: don't found -lts
collect2: ld a return 1 code excution state
make[2]: *** [../lib/libqte-mt.so.3.3.5] Error 1
make[2]: quittant le répertoire « /home/dam/blackfin-sources/qt-embedded-free-3.3.5/src »
make[1]: *** [sub-src] Error 2
make[1]: quittant le répertoire « /home/dam/blackfin-sources/qt-embedded-free-3.3.5 »
make: *** [init] Error 2


if that could help you
i have this file
dam@dam-laptop:~$ ls /usr/local/lib/ts/
arctic2.la collie.la corgi.la dejitter.la h3600.la input.la linear_h2200.la linear.la mk712.la pthres.la ucb1x00.la variance.la
arctic2.so collie.so corgi.so dejitter.so h3600.so input.so linear_h2200.so linear.so mk712.so pthres.so ucb1x00.so variance.so
dam@dam-laptop:~$ ls /usr/local/lib/
libts-0.0.so.0 libts-0.0.so.0.1.1 libts.la libts.so pkgconfig python2.5 ts
dam@dam-laptop:~$ ls /home/dam/blackfin-sources/qt-embedded-free-3.3.5/lib/
fonts libeditor.a libqassistantclient.prl libqte-mt.la libqte.so libqte.so.3.3.5 libqui.so.1 qte-mt.pc
libdesignercore.a libeditor.prl libqnp.prl libqte-mt.prl libqte.so.3 libqui.prl libqui.so.1.0 qte.pc
libdesignercore.prl libqassistantclient.a libqte.la libqte.prl libqte.so.3.3 libqui.so libqui.so.1.0.0 README


if you could help me

QbelcorT
17th September 2008, 06:54
Hi,
Shouldn't matter on the specific touchscreen name. I have done many configs (qtembedded 4.4.1 - commercial) without any problems. Here are the steps I did.

1) make/then make install touchscreen library into directory. My directory was /usr/local/trolltech/QtEmbedded-4.4.1-arm ( take note of static or shared libs. I used shared)
2) configure QT. Here is my config line. Some options don't matter to you.
./configure -embedded arm -prefix-install -little-endian -no-qt3support -I /usr/local/Trolltech/QtEmbedded-4.4.1-arm/include -L /usr/local/Trolltech/QtEmbedded-4.4.1-arm/lib -no-rpath -xplatform qws/linux-arm-g++ -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -no-nis -no-cups -qt-freetype -depths 16,24,32 -qt-mouse-linuxtp -qt-mouse-tslib -plugin-mouse-tslib
3)Make/make install qtopia
4)Make sure these variables are pathed. In my case I am mounting, but you can change the directory "usr/local/Trolltech/QtEmbedded-4.4.1-arm/etc/ts.conf"
export TSLIB_CONFFILE='/mnt/usr/local/Trolltech/QtEmbedded-4.4.1-arm/etc/ts.conf'
export TSLIB_PLUGINDIR='/mnt/usr/local/Trolltech/QtEmbedded-4.4.1-arm/lib/ts'
export TSLIB_TSDEVICE='/dev/input/event0'
5)Make sure that you have at least one RAW module enabled in the ts.conf file. If all _raw files are commented out the mouse will not work.
Here is my ts.conf file.
# Uncomment if you wish to use the linux input layer event interface
module_raw input
# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
# module_raw collie
# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
# module_raw corgi
# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
# module_raw ucb1x00
# Uncomment if you're using an HP iPaq h3600 or similar
# module_raw h3600
# Uncomment if you're using a Hitachi Webpad
# module_raw mk712
# Uncomment if you're using an IBM Arctic II
# module_raw arctic2
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

That's it.
Hope it helps.

damien
17th September 2008, 15:14
Thank you.

When i build QTe3.3.5 with this configuration

./configure -shared -depths 4,16,24,32 -no-cups -no-ipv6 -embedded bfin -little-endian -thread -qt-mouse-tslib -L/usr/local/lib -L/usr/local/lib/ts -I/usr/local/include -qvfb -lts

i have this error
bfin/qkbdpc101_qws.o .obj/release-shared-mt-emb-bfin/qmousepc_qws.o .obj/release-shared-mt-emb-bfin/qmousetslib_qws.o .obj/release-shared-mt-emb-bfin/qconfig.o -L/usr/local/lib -L/usr/local/lib/ts -lts -lts -ldl -lpthread
/home/dam/blackfin-sources/build/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/../../../../bfin-linux-uclibc/bin/ld: escamotage incompatible /usr/local/lib/libts.so lors de la recherche de -lts
/home/dam/blackfin-sources/build/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/../../../../bfin-linux-uclibc/bin/ld: can't find -lts
collect2: ld a retourné 1 code d'état d'exécution
make[2]: *** [../lib/libqte-mt.so.3.3.5] Erreur 1

I think the problem come from my TSlib I have just do this
download tslib1.0
autogen.sh
./configure
make
make install
and build the qt with it

But i have to configure it in FDPIC dynamic loadable shared library...
I have try this
1. Download tslib-1.0 from http://tslib.berlios.de or use the patched lib
in the dist.

2. Patch tslib with bfin_tslib_configure_ac.patch.

3. Intialize the configuration files:
# autogen.sh

4. Patch tslib with bfin_tslib.patch

5. configure:

# ./configure --host=bfin-uclinux --disable-h2200-linear --disable-ucb1x00 --disable-corgi --disable-collie --disable-h3600 --disable-mk712 --disable-arctic2 --prefix=$TS_INSTALL CFLAGS='-mfdpic -DUSE_INPUT_API'

make install

but
mfdpic isn't supported:
make[2]: entrant dans le répertoire « /home/dam/blackfin-sources/tslib-1.0/src »
/bin/bash ../libtool --tag=CC --mode=compile bfin-uclinux-gcc -DHAVE_CONFIG_H -I. -I.. -DPLUGIN_DIR=\"/lib/ts/\" -DTS_CONF=\"/etc/ts.conf\" -DTSLIB_INTERNAL -mfdpic -DUSE_INPUT_API -MT ts_attach.lo -MD -MP -MF .deps/ts_attach.Tpo -c -o ts_attach.lo ts_attach.c
bfin-uclinux-gcc -DHAVE_CONFIG_H -I. -I.. -DPLUGIN_DIR=\"/lib/ts/\" -DTS_CONF=\"/etc/ts.conf\" -DTSLIB_INTERNAL -mfdpic -DUSE_INPUT_API -MT ts_attach.lo -MD -MP -MF .deps/ts_attach.Tpo -c ts_attach.c
ts_attach.c:1: erreur: -mfdpic is not supported, please use a bfin-linux-uclibc target
make[2]: *** [ts_attach.lo] Error 1

how have you configured your tslib in shared

thank you

QbelcorT
18th September 2008, 01:51
Hi.
My configure options are nearly the same, except I did not put any CFLAGS entry. By default the tslib produces a shared lib (.so). I am not sure your reason for this CFLAGS='-mfdpic -DUSE_INPUT_API'. If you leave out the CFLAGS option and configure, then make, is the tslib built? Can you find the .so file in the install directory?
Also, notice my QT configuration options '-qt-mouse-linuxtp -qt-mouse-tslib -plugin-mouse-tslib'

damien
18th September 2008, 16:46
ok my problem was that i have download a TSLib but i have to use the TSLib that i had in my uClinux distribution
./configure -shared -depths 4,16,24,32 -no-cups -no-ipv6 -embedded bfin -little-endian -thread -qt-mouse-tslib -L/home/dam/blackfin-sources/uClinux/staging/usr/lib -I/home/dam/blackfin-sources/uClinux/staging/usr/include -lts -qvfb

that working well now

thank you very mutch for your help