LINUX.ORG.RU

Калибровка тачскринов в Linux

 , , , ,


0

1

Добрый день.

Есть промышленный моноблок с Linux. Ну т.е. Linux туда я поставил. Так то диск с драйверами только под Windows. У него [моноблока] есть тачскин. Я пытаюсь откалибровать (получить парметры калибровки) его с помощью утилиты xinput_calibrator (кликаешь по 4 точками) и вот всякий раз после второго/или третьего/или четвертого клика я получаю ошибку: Mis-click detected, restarting…

Из https://linux.die.net/man/1/xinput_calibrator я вижу:

If you keep getting the message 'Mis-click detected, restarting...', one of the following is happening: 1. you are bad at clicking on crosses, use a stylus or increase the --misclick threshold
2. your device is not properly supported by the kernel, it interprets the clicks wrong
3. your screen has a non-linear deformation, 4-point calibration can not help you

Пункт 1 (increase the –misclick threshold) я пробовал итоговая матрица трансформации получается неточная - получаются большие неточностии в кликах/тапах.

Пункт 2 - ну хз, может и оно конечно, но пока будем думать, что все же нет.

Пункт 3 - вот может быть этот пункт. Тогда вопрос: xinput_calibrator умеет калибровать только по 4 точкам. А как мне (с помощью какой программы / алгоритма расчета) откалибровать не по 4 точкам, а по большему количеству. Например в Windows на этом же моноблоке колибровка происходит с использованием программы, которая идет вместе с драйвером на диске и там можно колибровать по 8/16/24 точкам (может немного напутал количество, но там точно много раз нажимать нужно, и не только по 4 угловым точками, а по промежуточным тоже и после такой колибровки в Windows работает почти идеально точно.

★★★★★

Последнее исправление: rumgot (всего исправлений: 2)

Готовой? Никакой. Напиши ремаппер с использованием evdev/uinput и калибруй себе нелинейно.

Пример работы с evdev/uinput: https://gist.github.com/t184256/f4994037a2a204774ef3b9a2b38736dc

Пример нелинейного калибратора (использовал для трекера взгляда): https://github.com/t184256/ayecaptain/blob/main/ayecaptain/corrector.py

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Пример работы с evdev/uinput: https://gist.github.com/t184256/f4994037a2a204774ef3b9a2b38736dc

А этот метод работает как именно? Перехватываются все события и затем модифицируются и все приложения в системе получают уже исправленные события? Т.е. перехват происходит ДО отправки событий к приложениям?

А что ты думаешь про этот проект? https://github.com/libts/tslib

rumgot ★★★★★
() автор топика
Последнее исправление: rumgot (всего исправлений: 3)
Ответ на: комментарий от rumgot

Перехватываются все события и затем модифицируются и все приложения в системе получают уже исправленные события? Т.е. перехват происходит ДО отправки событий к приложениям?

Все так.

А что ты думаешь про этот проект? https://github.com/libts/tslib

Последний раз я видел его году в 2008ом, во времена КПК еще. Удивлен, что оно живо.

t184256 ★★★★★
()