Сенсорный экран и EMC2

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение Serg »

А теперь так:
xinput list-props 9
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
dberegovoy
Мастер
Сообщения: 297
Зарегистрирован: 16 фев 2014, 21:25
Репутация: 144
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение dberegovoy »

UAVpilot писал(а):А теперь так:
xinput list-props 9
Вот.
На всякий случай все запросы,т.к. менял компы местами и т.п. безрезультатные эксперементы

Код: Выделить всё

denis@CNC:~$ uname -a
Linux CNC 4.9.0-5-rt-amd64 #1 SMP PREEMPT RT Debian 4.9.65-3+deb9u2 (2018-01-04) x86_64 GNU/Linux
denis@CNC:~$ lsusb
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 003 Device 002: ID 0596:0001 MicroTouch Systems, Inc. Touchscreen
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
denis@CNC:~$ xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ 3M 3M USB Touchscreen - EX II           	id=9	[slave  pointer  (2)]
⎜   ↳ PixArt USB Optical Mouse                	id=10	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=11	[slave  keyboard (3)]
    ↳ HP WMI hotkeys                          	id=12	[slave  keyboard (3)]
denis@CNC:~$ xinput list-props 9
Device '3M 3M USB Touchscreen - EX II':
	Device Enabled (136):	1
	Coordinate Transformation Matrix (138):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Calibration Matrix (276):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Calibration Matrix Default (277):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Send Events Modes Available (259):	1, 0
	libinput Send Events Mode Enabled (260):	0, 0
	libinput Send Events Mode Enabled Default (261):	0, 0
	Device Node (262):	"/dev/input/event11"
	Device Product ID (263):	1430, 1
denis@CNC:~$ 
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение Serg »

Можно попробовать поэкспериментировать с параметрами
Coordinate Transformation Matrix (138)
Calibration Matrix (276)
Calibration Matrix Default (277)

Делается это примерно так:
xinput set-prop 9 138 '1.1, 0.5, ....'
действовать должно сразу без перезагрузок и перезапусков.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
dberegovoy
Мастер
Сообщения: 297
Зарегистрирован: 16 фев 2014, 21:25
Репутация: 144
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение dberegovoy »

UAVpilot писал(а):Делается это примерно так:
Ругается

Код: Выделить всё

denis@CNC:~$ xinput set-prop 9 138 '1.100000, 0.500000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000'
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Value in failed request:  0x8a
  Serial number of failed request:  19
  Current serial number in output stream:  20
denis@CNC:~$ xinput set-prop 9 138 '0.900000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000'
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Value in failed request:  0x8a
  Serial number of failed request:  19
  Current serial number in output stream:  20
denis@CNC:~$ xinput set-prop 9 276 '0.900000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000'
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Serial number of failed request:  19
  Current serial number in output stream:  20
denis@CNC:~$ xinput set-prop 9 277 '0.900000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000'
X Error of failed request:  BadAccess (attempt to access private resource denied)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Serial number of failed request:  19
  Current serial number in output stream:  20
denis@CNC:~$ 
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение Serg »

Ну на то он и метод научного тыка, чтобы пробовать разные варианты. :)
Видимо для 138 разрешены только целые значения, а 277 только для чтения...
Ну и "напрягает" нечётное количество элемеентов. Вполне возможно, что какие-то из них работают как выреключатели - только 0 или 1. А может это и вообще не про калибровку, которая тебе нужна...

Вот пару ссылок нашёл, но там видимо другая версия драйвера/ядра:
http://blog.rot13.org/2013/12/touch-scr ... input.html
https://www.raspberrypi.org/forums/view ... 5&t=111416

Кстати, а в логах Xserver'а что про него пишут?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
dberegovoy
Мастер
Сообщения: 297
Зарегистрирован: 16 фев 2014, 21:25
Репутация: 144
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение dberegovoy »

UAVpilot писал(а):, а в логах Xserver'а что про него пишут?
Вот часть лог файла

Код: Выделить всё

[    19.046] (II) config/udev: Adding input device 3M 3M USB Touchscreen - EX II (/dev/input/event11)
[    19.046] (**) 3M 3M USB Touchscreen - EX II: Applying InputClass "libinput touchscreen catchall"
[    19.046] (**) 3M 3M USB Touchscreen - EX II: Applying InputClass "calibration"
[    19.046] (**) 3M 3M USB Touchscreen - EX II: Applying InputClass "calibration"
[    19.046] (**) 3M 3M USB Touchscreen - EX II: Applying InputClass "calibration"
[    19.046] (II) Using input driver 'libinput' for '3M 3M USB Touchscreen - EX II'
[    19.046] (**) 3M 3M USB Touchscreen - EX II: always reports core events
[    19.046] (**) Option "Device" "/dev/input/event11"
[    19.046] (**) Option "_source" "server/udev"
[    19.047] (II) input device '3M 3M USB Touchscreen - EX II', /dev/input/event11 is tagged by udev as: Touchscreen
[    19.047] (II) input device '3M 3M USB Touchscreen - EX II', /dev/input/event11 is a touch device
[    19.088] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.1/usb3/3-1/3-1:1.0/input/input13/event11"
[    19.088] (II) XINPUT: Adding extended input device "3M 3M USB Touchscreen - EX II" (type: TOUCHSCREEN, id 9)
[    19.088] (**) Option "AccelerationScheme" "none"
[    19.088] (**) 3M 3M USB Touchscreen - EX II: (accel) selected scheme none/0
[    19.088] (**) 3M 3M USB Touchscreen - EX II: (accel) acceleration factor: 2.000
[    19.088] (**) 3M 3M USB Touchscreen - EX II: (accel) acceleration threshold: 4
[    19.089] (II) input device '3M 3M USB Touchscreen - EX II', /dev/input/event11 is tagged by udev as: Touchscreen
[    19.089] (II) input device '3M 3M USB Touchscreen - EX II', /dev/input/event11 is a touch device
[    19.090] (II) config/udev: Adding input device 3M 3M USB Touchscreen - EX II (/dev/input/mouse0)
[    19.090] (**) 3M 3M USB Touchscreen - EX II: Applying InputClass "calibration"
[    19.090] (**) 3M 3M USB Touchscreen - EX II: Applying InputClass "calibration"
[    19.090] (**) 3M 3M USB Touchscreen - EX II: Applying InputClass "calibration"
[    19.090] (II) No input driver specified, ignoring this device.
[    19.091] (II) This device may have been added with another device file.
Я не шибко в этом волоку, но внимание привлекают последние строки про не тот драйвер, игнорируемое устройство и другой файл...

Гугля по этому поводу бегло изучил (на сколько смог понять) решения, так в основнмом ограничивались размещением файла 99-calibration.conf или секции которую выдает калибратор в каком то файле, но там системы были другие. Отложилось в голове еще такой момент что кто-то решил вопрос используя в качестве калибратора не xinput_calibrator название уже не помню, погуглю снова.

Еще один момент в 3M мануле сказано что родной драйвер предназначен для ядра 2,6,так же можно скачать драйвер 32битный и 64битный. Я их не пробовал применять, руководсвуясь тем что линукс определяет тачь, значит драйвер к нему есть, ну что бы не навредить. Может стоит попробовать :)

Пробовал как в статье на которую Вы дали ссылку по одному параметру подкидывать, нули или единички "щупая" авось "выключатель", тоже ругается

Код: Выделить всё

denis@CNC:~$ xinput set-prop 9 138 '0'
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Value in failed request:  0x8a
  Serial number of failed request:  19
  Current serial number in output stream:  20
denis@CNC:~$ xinput set-prop 9 138 '1'
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Value in failed request:  0x8a
  Serial number of failed request:  19
  Current serial number in output stream:  20
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение Serg »

dberegovoy писал(а):Я не шибко в этом волоку, но внимание привлекают последние строки про не тот драйвер, игнорируемое устройство и другой файл...
Надо evtest'ом попробовать определить на каком устройстве (/dev/input/...) живёт тач. Возможно его придётся насильно указать.
dberegovoy писал(а):в основнмом ограничивались размещением файла 99-calibration.conf
Конфиг Xserver'а может состоять из нескольких файлов для удобства, например каждая секция в своём файле. 99-calibration.conf - один из таких файлов, поэтому важен не файл, а его содержимое.
dberegovoy писал(а):в 3M мануле сказано что родной драйвер предназначен для ядра 2,6,так же можно скачать драйвер 32битный и 64битный.
Там есть и какой-то патч для ядер 3.X, но мне вчера не удалось его скачать и посмотреть, что он делает.
dberegovoy писал(а):Пробовал как в статье на которую Вы дали ссылку по одному параметру подкидывать, нули или единички "щупая" авось "выключатель", тоже ругается
Не, там параметр один, просто он состоит из девяти чисел. :) Нужно указывать их все, а пробовать менять только одно из них за раз.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
nik0
Мастер
Сообщения: 213
Зарегистрирован: 26 мар 2014, 14:48
Репутация: 12
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение nik0 »

Нашел в инете, можно добавить в файл 99-calibration.conf строку - Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1"
Аватара пользователя
nik0
Мастер
Сообщения: 213
Зарегистрирован: 26 мар 2014, 14:48
Репутация: 12
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение nik0 »

Цифры для примера, их необходимо подбирать.
Аватара пользователя
nik0
Мастер
Сообщения: 213
Зарегистрирован: 26 мар 2014, 14:48
Репутация: 12
Контактная информация:

Re: Сенсорный экран и EMC2

Сообщение nik0 »

-> sudo nano /usr/share/X11/xorg.conf.d/10-evdev.conf

Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchProduct "3M 3M USB Touchscreen - EX II"
Option "Calibration" "2936 13496 2840 13659"
Driver "evdev"
Option "SwapAxes" "True"
Option "InvertX" "1"
Option "InvertY" "1"
EndSection



Подправил 10-evdev.conf и все встало на место!!!
(https://www.raspberrypi.org/forums/view ... 5&t=111416)
Ответить

Вернуться в «LinuxCNC»