Location of TSLIB(libts.so) and QT PLUGIN(libqtslibplugin.so)



  • Hi All,
    I have generated the library from tslib source.
    After that i included it in the QT configure command by giving -tslib switch.

    Now my question is where i need to place the libts.so and QT plugin: libqtslibplugin.so
    so that they can be called?

    I created a simple QT program containing Main Window with QPushButton. When i deploy it to my embedded system then nothing happens when i press the QPushbotton.

    Even this qDebug statement is also not getting called:

    @QTsLibMouseHandler::QTsLibMouseHandler(const QString &key,
    const QString &specification)
    : m_notify(0), m_x(0), m_y(0), m_pressed(0), m_rawMode(false)
    {
    qDebug() << "QTsLibMouseHandler" << key << specification;
    @

    The above code is located in qtbase/src/plugins/generic/tslib/qtslib.cpp

    So where should i place the TSLIB library and libqtslibplugin.so so that it can be used by my simple QUI application.

    Kindly help


  • Lifetime Qt Champion

    Hi,

    IIRC, libqtslibplugin.so should be in /path/to/your/target/Qt/plugins/generic/ and tslib.so itself must be in a known path like /usr/local/lib/



  • Dear SGaist,

    Thanks a lot for reply, i was desperately looking for the answer. I tried but it didn't work. I am now telling my setup, then you tell me where i am wrong:

    My Simple Button Application is kept inside:
    /home/Sid

    LinuxFB plugin is inside:
    @/home/Sid/platforms/libqlinuxfb.so@

    QT's plugin for touch support is inside:
    @/home/Sid/plugins/generic/libqtslibplugin.so@

    QT plugins and libts.so [that i built from source code] are inside:
    @/home/Sid@

    And /home/Sid is added to LD_LIBRARY_PATH so i am able to see the application with a single button. But when i press, i can't see any change in button state like getting pressed. It remains as it is. Also qDebug statement
    @qDebug() << "QTsLibMouseHandler" << key << specification;@
    is also not getting called.

    Other environment settings that i am doing is also given below:

    @
    export QT_QPA_PLATFORM=linuxfb
    export QT_PLUGIN_PATH=/home/Sid/plugins/generic
    export QT_QPA_GENERIC_PLUGINS=tslib
    export QT_QPA_FONTDIR=/home/Sid/fonts
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/Sid
    export TSLIB_FBDEVICE=/dev/fb0
    @

    Kindly tell me what i am missing.

    Thanks


  • Lifetime Qt Champion

    Did you configure tslib on your target ?



  • yes i generated both QT libraries and TSLIB libraries for target: power pc.
    Also when i do

    @ file libts.so@

    I get following:

    @libts.so: ELF 32-bit MSB shared object, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked, with unknown capability 0x41000000 = 0x13676e75, with unknown capability 0x10000 = 0xb0401, not stripped
    @

    so both QT libraries and TSLIB are in same format.


  • Lifetime Qt Champion

    I mean, properly setup TSLIB, initialized it ?



  • I checked that TSLIB has some inbuilt tools that also got generated while compiling the src code, like ts_test, ts_calibrate.

    i am not getting what you mean by "initialized it", do you mean to test the functionality using these tools or there is some another way of initializing it. Kindly explain how to proceed.

    I also found that there is touch screen connected to the embedded board but there is no input folder/node inside the device folder.

    Generally all the touchscreen/input related devices are listed inside:
    @/dev/input/something_here@

    But there is no input node in my system.
    Is there any other way to interact with the LCD touch screen?


  • Lifetime Qt Champion

    Not knowing anything about your LCD screen, I can't tell how it should show up or whether it's connected correctly on your system.

    The tslib tools are there to help you set the various environment variable needed by the library to work properly



  • Dear SGaist, thanks for your reply. It seems it is a serial device. Is it possible to get the x,y coordinates from the screen and then map it to the QT Screen so that i can know what button is clicked? I have done serial programming in QT for GPS devices, but i have no idea of mapping to the Framebuffer to know what widget is getting touch.

    Just give me some pointers so that i can think in that direction.
    Thanks :)


  • Lifetime Qt Champion

    Didn't you succeed configuring tslib ?



  • no because there is no dedicated driver, it is a serial device :(


  • Lifetime Qt Champion

    How does the system see it ? /dev/ttyS0 or something like that ?



  • yes you are correct, also i found that when i do
    @cat ttyS1@

    then some junk characters are printed on putty terminal whenever i touch the lcd.
    But i am not able to see x,y coordinates. I think some baud rate mismatch is there.


  • Lifetime Qt Champion

    hexdump will give you a cleaner output.

    Well, AFAIK, setting TSLIB_TSDEVICE to /dev/ttyS1 should get you started, no ?



  • I tried setting the same:

    @
    export QT_QPA_PLATFORM=linuxfb
    export QT_PLUGIN_PATH=/home/Sid/plugins/generic
    export QT_QPA_GENERIC_PLUGINS=tslib
    export QT_QPA_FONTDIR=/home/Sid/fonts
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/Sid
    export TSLIB_FBDEVICE=/dev/fb0
    export TSLIB_TSDEVICE=/dev/ttyS1 -------->>SEE THIS
    export TSLIB_PLUGINDIR=/home/Sid/tslib_plugins
    export TSLIB_CONFFILE=/home/Sid/ts.conf

    @

    But when i run ./ts_test, i get no output :(
    The program keeps running without any output unit i give Ctrl+C


  • Lifetime Qt Champion

    Did you run ts_calibrate first ?



  • Yes, no output from ts_calibrate also..



  • and if i do

    @./ts_print@

    i get following output:

    selected device is not a touchscreen I understand


  • Lifetime Qt Champion

    Which module are you using ?



  • Sorry i did not get you. Module??


  • Lifetime Qt Champion

    Sorry I meant tslib plugin



  • I downloaded TSLIB (tslib-1.0) from sourceforgenet. And then crosscompiled it for powerpc. and then modified qmake.conf to include soure and libs. Also test lib test was successful.

    I copied libqtslibplugin.so to plugins/generic folder.


  • Lifetime Qt Champion

    Not the Qt tslib plugin, the plugin from tslib itself



  • unfortunately I followed this conversation but there is no fruitful outcome that any one can follow:



  • unfortunately I followed this conversation but there is no fruitful outcome that any one can follow:


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.