Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-iMX53
touch путает координаты X с Y
popkov
Добавлено 22.08.2013 12:04
0
Сообщение: 1
popkov
5

Пункты: 728
Регистрация: 31.07.2013
ts_calibrate работает, калибрует правильно.
ts_test слушается клика тоже правильно, как в режиме клика, так и в режиме рисования линии. То есть, куда ткнем пальцем, там и крестик появляется.
А при запуске Qt-приложения с использованием frame buffer, курсор мыши появляется не в том месте, куда тыкаем пальцем.
Ощущение, что координаты мыши X и Y меняются местами.
Подскажите, please, где, в каком месте производится конфигурирование курсора мыши touchscreen при работе с frame buffer ?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 22.08.2013 12:21 Сообщение: 2
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Нужно указать QWS чтобы он использовал tslib через переменную окружения

export QWS_MOUSE_PROTO="Tslib:/dev/input/event0"
Спуститься к концу Подняться к началу
Персональная информация
popkov
Добавлено 27.08.2013 08:05 Сообщение: 3
popkov
5

Пункты: 728
Регистрация: 31.07.2013
На SK-iMX53 устройства ввода находятся по пути /dev/event0
и на команду: cat /dev/event0 | hexdump
чувствует касание экрана - выдает hex-коды.
Я попробовал export QWS_MOUSE_PROTO="Tslib:/dev/event0"
рузультат - указатель мыши находится в центре экрана и на касание никак не реагирует. Убираю переменную командой export QWS_MOUSE_PROTO=
начинает реагировать на касание, но неправильно(как будто путает координаты x/y). Аналогично(неправильно) работает с переменной QWS_MOUSE_PROTO="IntelliMouse:/dev/event0"
Что еще можно попробовать, подскажите, пожалуйста.
Спуститься к концу Подняться к началу
Персональная информация
popkov
Добавлено 27.08.2013 08:31 Сообщение: 4
popkov
5

Пункты: 728
Регистрация: 31.07.2013
На SK-iMX53 устройства ввода находятся по пути /dev/event0
и на команду: cat /dev/event0 | hexdump
чувствует касание экрана - выдает hex-коды.
Я попробовал export QWS_MOUSE_PROTO="Tslib:/dev/event0"
рузультат - указатель мыши находится в центре экрана и на касание никак не реагирует. Убираю переменную командой export QWS_MOUSE_PROTO=
начинает реагировать на касание, но неправильно(как будто путает координаты x/y). Аналогично(неправильно) работает с переменной QWS_MOUSE_PROTO="IntelliMouse:/dev/event0"
Что еще можно попробовать, подскажите, пожалуйста.
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 27.08.2013 15:19 Сообщение: 5
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
а куда переменные пишите? printenv перед запуском вашего приложения. приложение запускаете, когда уже залогинились или во время старта ?

напишите загрузочный скритп вашего
пропишите все переменные нормально
в него... пример ниже

Цитата
case "$1" in
start)
echo "Starting rama..."

export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:/dev/input/event0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export POINTERCAL_FILE=/etc/pointercal
export QWS_KEYBOARD=USB:/dev/input/event1
./user_program

;;
stop)
killall user_program
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac

exit $?
Спуститься к концу Подняться к началу
Персональная информация
popkov
Добавлено 04.09.2013 11:42 Сообщение: 6
popkov
5

Пункты: 728
Регистрация: 31.07.2013
Написал скрипт:

#!/bin/sh

case "$1" in
start)
echo "Starting agro..."

export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:/dev/event0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export POINTERCAL_FILE=/etc/pointercal
export QWS_KEYBOARD=USB:/dev/event1
./agro -qws

;;
stop)
killall ./agro
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac

exit $?

После включения питания, подключаюсь по SSH, запускаю скрипт с параметром start, результат тот же, -на касание экрана не реагирует.

Попробовал записать переменные в /etc/profile
Перезагружаюсь, подключаюсь по SSH, делаю printenv

HISTFILESIZE=1000
INPUTRC=/etc/inputrc
TSLIB_TSDEVICE=/dev/event0
USER=root
HOSTNAME=buildroot
OLDPWD=/root
HOME=/root
SSH_TTY=/dev/pts/0
PAGER=/bin/more
PS1=#
TSLIB_PLUGINDIR=/usr/lib/ts
LOGNAME=root
TERM=xterm
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/bin
DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
HISTSIZE=1000
TSLIB_CONFFILE=/etc/ts.conf
SHELL=/bin/sh
PWD=/home/user
SSH_CONNECTION=192.168.0.1 62711 192.168.0.136 22
POINTERCAL_FILE=/etc/pointercal
EDITOR=/bin/vi
QWS_MOUSE_PROTO=tslib:/dev/event0
TSLIB_CALIBFILE=/etc/pointercal

Затем запускаю программу: ./agro -qws
Результат тот же, -на касание экрана не реагирует.

Тут же убираю переменную командой
export QWS_MOUSE_PROTO=
Через printenv убедился, что переменная отменена
Затем запускаю программу: ./agro -qws

Результат: тыкаю в правый нижний угол, курсор появляется в левом верхнем углу. При перемещениии пальца из правого нижнего угла в центр экрана, курсор перемещается из левого верхнего угла в центр. То есть ощущение, что путаются координаты x и y.

ts_test по прежнему работает прекрасно, как в режиме клика, так и в режиме рисования. Проблема только с framebuffer.
Программа написана на QT, запуск с параметром -qws направляет вывод графики через framebuffer.
Может кто-то еще пишет такие программы, должен столкнуться с такой проблемой, или такая проблема только у меня ? Монитор с тачскрином: SK-TFT1024X768(TP)-Plug

Может у кого есть еще идеи, буду рад любому предложению.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.09.2013 11:55 Сообщение: 7
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Проверьте что Qt собран с поддержкой tslib, в корне buildroot

make menuconfig
Package Selection for the target --->
Graphic libraries and applications (graphic/text) --->
[*] Qt --->
Mouse drivers --->
[*] tslib
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 04.09.2013 16:08 Сообщение: 8
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Проблем таких нет. Запускаем qt-приложения со скрипта, координаты не путаются. Проблема действительно скорее в сборке и конфигурировании qt, раз ts_test работает корректно.
Спуститься к концу Подняться к началу
Персональная информация
popkov
Добавлено 15.09.2013 11:50 Сообщение: 9
popkov
5

Пункты: 728
Регистрация: 31.07.2013
Всем большое спасибо за помощь. Touchscreen заработал. Пересобрал Tslib, построенные библиотеки из tslib/lib скопировал в qt-arm-src/lib Qt. И tslib.h скопировал в qt-arm-src/include, затем пересобрал библиотеки Qt, и все заработало.
Спуститься к концу Подняться к началу
Персональная информация
Hoksmur
Добавлено 06.05.2014 08:13 Сообщение: 10
Hoksmur
0

Пункты: 2203
Регистрация: 20.05.2013
Господа, помогите - на сабжевой плате tslib молчит!
Экран SK-ATM0700D4-Plug, при сборке ядра в VM выбран сенсор
ADS7846/TSC2046/AD7873 andAD(S)7843 based
в соответствующем разделе.
Естественно - ядро загружено ( уверенности в корректности пересборки нет ).
Но! cat /dev/event0 | hexdump молчит.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-iMX53