Подключение и калибровка тачскрина

Автор Lergus, 09 июля 2015, 09:43:39

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Lergus

Добрый день!

Столкнулся с проблемой калибровки сенсорных панелей на нескольких мониторах подключенных к 1 ПК.

Есть 9 сенсорных мониторов (1 ZaagTech (рамка) и 8 elo), надо заставить их сенсорные панели работать правильно.
драйвера ZaagTech в комплекте поставки позволяют откалибровать монитор только на всю рабочую область (то-есть крайние точки рамки привязаны к крайним точкам объедененного Xscreenа)
Еловские дрова для linux вообще не поддерживают более 1 монитора (ставить не пробовал).

решил что можно откалибровать мониторы через xinput но и он калибрует  тачскрин на все рабочее пространство, можно ли указать xinput в пределах какого xscreen происходит калибровка?
В xinput можно скормить любые данные по калибровке, но я слабо представляю откуда он берет координаты
например для 4к монитора с разрешением 4096 x 2160 корректно работают координаты 38 38852 -150 38652 (получил через xinput_calibrator при отключении всех остальных мониторов), я так понимаю это координаты чисто для рамки не привязанные к рабочему пространству но почему от до 0-40000?

Вопрос
можно ли xinput_calibrator конкретно указывать для какого xscreen происходит калибровка ?
как формируются кординаты x y при использовании нескольких рамок? где точка отсчета?

В никсах к сожалению мало чего понимаю, в мануале по xinput_calibrator не нашел указания по привязке к рабочей области
Спасибо за помощь
наверняка можно при помощи ручн


ihammers

Могу ошибаться, так как с такой задачей не сталкивался. Из man следует, что вам нужно сначала определить список устройств, а после чего запустить калибровку для одного из устройств:
Цитата: http://manpages.ubuntu.com/manpages/saucy/man1/xinput_calibrator.1.html--list  List the calibratable input devices.

--device device_name_or_id
     Select a specific device to calibrate; use --list to  list  the
     calibratable input devices.
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64,
LXQt/KDE/OpenBox AMD Phenon X4 / 16Gb RAM / ATI HD7750 Silent
_______________________________
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64, LXQt/KDE/OpenBox
Acer Aspire One 722 AMD C60 / 4Gb RAM / ATI HD6290

Lergus

Все верно
насколько я понял xinput дает всем устройствам ввода свой id, и при помощи него можно с ними общаться.
общаться получается, но вот заставить правильно калиброваться может только параметр geometry
В нем задается разрешение и два параметра +0+0 - смещение наверное
но у меня изменение данных параметров ничего не меняет
может я слабо понимаю синтаксис

vladimir_ar

Возможно, Ваши панели нужно организовать отдельными экранами и через xorg приязать к ним свои тачскрины и тогда они будут иметь свои координаты, и, соответственно, свои калибровки?
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M

Lergus

#4
Цитата: vladimir_ar от 10 июля 2015, 17:12:09и через xorg привязать к ним свои тачскрины

яб с радостью, но как это сделать
для работы с рабочем пространством в xorg используется --geometry hXl+x+y (это то что я нашел в интернете) то-есть размер области калибровки, и смещение по x y, у меня в man по xinput_calibration нету упоминания про +x+y
и что бы я туда не вводил, область не смещается.

Может быть что у меня какой-то не такой xinput?)
xinput 1.6.1-1
xinput_calibrator 0.7.5+git20140201-1xinput-cali

Товарищи, можете проверить у себя (с ключем --fake будет эмулироватсья тестовое устройство, так что можно и без тача) сдигается ли у вас область калибровки при --geometry 640X480+0+100 например.
и если сдвигается, то какой у Вас calibrator
Спасибо


ihammers

А пробовали ли по отдельности проводить калибровку мониторов? Если я правильно помню, то после калибровки вам выдается несколько строк, которые нужно добавить в xorg.conf. У каждого монитора свой индификатор, и своя секция.
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64,
LXQt/KDE/OpenBox AMD Phenon X4 / 16Gb RAM / ATI HD7750 Silent
_______________________________
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64, LXQt/KDE/OpenBox
Acer Aspire One 722 AMD C60 / 4Gb RAM / ATI HD6290

Lergus

#6
Цитата: ihammers от 14 июля 2015, 05:45:12А пробовали ли по отдельности проводить калибровку мониторов?

в том то и проблема, что я не знаю как это сделать
при вызове xinput-calibrator - область калибровки - все рабочее пространство (а это 10 мониторов)
если я отключаю лишние мониторы то 1 конкретный монитор калибруется правильно, но эта колибровка привязана к рабочему пространству, и при добавлении остальных мониторов требуется перекалибровка

сейчас у меня настройки калибровки хранятся в
/etc/X11/xorg.conf.d/99-calibration.conf   

Открыть содержимое (спойлер)
Section "InputClass"
    Identifier  "calibration"
    MatchProduct        "zaagMT"
    Option      "Calibration"   "14 32500 -16500 91000"
    Option      "SwapAxes"      "0"
EndSection

#Section "InputClass"
#       Identifier      "calibration"
  #      MatchProduct    "elo"
   #     Option  "Inversion"   "1 0"
     #   Option  "Calibration"   "0 3585 0 4000"
       # Option  "SwapAxes"      "1"
#EndSection
[свернуть]

для остальных мониторов настройки задаются камандами в xinput т.к имена у них одинаковые и серийники по 0, а как привязать настроки к id я не понял

С такими параметрами у меня рамка корректно отрабатывает мышку на перемешенные, но я не могу сделать не одиночный не двойной клик (может с параметрами чуствительности что-то напутал)

вот параметры рамки из xinput
Открыть содержимое (спойлер)
Device 'zaagMT':
    Device Enabled (151):       1
    Coordinate Transformation Matrix (153):     1.000000, 0.000000, 0.000000, 0.000000
, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (279): 0
    Device Accel Constant Deceleration (280):   1.000000
    Device Accel Adaptive Deceleration (281):   1.000000
    Device Accel Velocity Scaling (282):        10.000000
    Device Product ID (271):    43756, 45264
    Device Node (272):  "/dev/input/event31"
    Evdev Axis Inversion (283): 0, 0
    Evdev Axis Calibration (284):       14, 32500, -16500, 91000
    Evdev Axes Swap (285):      0
    Axis Labels (286):  "Abs MT Position X" (277), "Abs MT Position Y" (278), "Abs MT
Touch Major" (482), "None" (0), "None" (0)
    Button Labels (287):        "Button Unknown" (274), "Button Unknown" (274), "Butto
n Unknown" (274), "Button Wheel Up" (157), "Button Wheel Down" (158)
    Evdev Scrolling Distance (288):     0, 0, 0
    Evdev Middle Button Emulation (289):        0
    Evdev Middle Button Timeout (290):  50
    Evdev Third Button Emulation (291): 0
    Evdev Third Button Emulation Timeout (292): 1000
    Evdev Third Button Emulation Button (293):  3
    Evdev Third Button Emulation Threshold (294):       20
    Evdev Wheel Emulation (295):        0
    Evdev Wheel Emulation Axes (296):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (297):        10
    Evdev Wheel Emulation Timeout (298):        200
    Evdev Wheel Emulation Button (299): 4
    Evdev Drag Lock Buttons (300):      0
[свернуть]