Board.KolibriOS.org

Official KolibriOS board
It is currently Sun May 19, 2019 8:25 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Sat Sep 17, 2011 12:48 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
А еще (с жиру бешусь, да-да) в Колибри из qemu у меня не работает планшет. Курсор прыгает в левый верхний угол экрана (как на новой ubuntu без модуля wizardpen, потому что на старой ubuntu и в xp планшет легко работает как HID), а при попытке переместить курсор резко прыгает в правый верхний угол. На настоящей машине с ядром из автосборки планшет просто мигает, курсор не движется. С USB-ядром выводит сообщение о том, что устройство не поддерживается, или вроде того. Подробности нужны?

UPDATE by moderator Mario
Подробности про планшет: Trust TB-5300
(Bus 007 Device 002: ID 5543:0004 UC-Logic Technology Corp. Genius MousePen 5x4 Tablet)
USB-ядро пишет в qemu: connect status changed, 0183/0181. И всё.


Top
   
PostPosted: Sat Sep 17, 2011 1:10 pm 
SoUrcerer wrote:
Подробности нужны?

Ну, естественно скилл телепатии у всех людей в сообществе плохо прокачан, так что да нужны, но обещать я естественно ничего не могу.


Top
   
PostPosted: Sun Sep 18, 2011 11:41 pm 
Выделил эту тему из "Ночные" сборки KolibriOS

SoUrcerer wrote:
как на новой ubuntu без модуля wizardpen, потому что на старой ubuntu и в xp планшет легко работает как HID... На настоящей машине с ядром из автосборки планшет просто мигает, курсор не движется. С USB-ядром выводит сообщение о том, что устройство не поддерживается, или вроде того.

Что-то мне подсказывает, что драйвер HID очень не прост и написан очень хитро.


Top
   
PostPosted: Mon Sep 19, 2011 6:58 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Есть устройства hid с абсолютным позиционированием курсора, такие как планшеты и тачскрины.Они передают данные как-то иначе %)


Top
   
PostPosted: Fri Mar 02, 2012 12:09 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Любопытно, характер данных, которые возвращает чтение /dev/input/, для мышки и планшета отличается. То есть в общем и целом вывод похож, но разница имеется. При перемещении мышки встречаются длинные блоки данных, иногда по 50-100 байт (каждый блок, видимо, заканчивается EF BF BD):
28 0A 20 20 20 20 20 20 20 20 EF BF BD
От планшета таких данных нет:
6A 02 38 EF BF BD EF BF BD 18 EF BF BD EF BF BD 38 EF BF BD
В основном при перемещении пера я получал 1-2 байта (изредка до 5-7) и затем EF BF BD, но зато блоков было много. При перемещении мыши я получал мало блоков, но они были длинные.

В коде драйвера можно найти, что планшеты точно так же, как и мышки, возвращают ускорение перемещения, но делают это как-то по странному:
Code:
 switch (event->code) {
                    case REL_X:
                        xaccel = 1;
                        if(priv->mouseAccel) {
                            if(abs(event->value) > 2) {
                                xaccel = 2;
                            } else if(abs(event->value) > 4) {
                                xaccel = 3;
                            } else if(abs(event->value) > 6) {
                                xaccel = 4;
                            }
                        }
                        x = x + (xaccel * priv->mouseSpeed * event->value);

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


Top
   
PostPosted: Fri Mar 02, 2012 12:19 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Ага, похоже, планшет возвращает координаты в режиме Intellimouse Extension.
http://www.computer-engineering.org/ps2mouse/
Возможно, с ним пытаются общаться как с обычной мышкой, и в итоге данные от него будут восприниматься совершенно неправильно. Более того, это определенно приведет к тому, что в 3м бите каждого третьего байта, который по стандарту PS/2 всегда должен быть 1, время от времени будет не 1 - это может быть воспринято как поломанная мышка.


Top
   
PostPosted: Fri Mar 02, 2012 1:30 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Повесил вывод отладочных данных с планшета. При обычном перемещении мышь дает
08 01 01 - сдвиг на 1 пиксель по обоим осям
Планшет при небольшом перемещении генерирует
08 7F 7F
То есть курсор прыгает сразу на 79 пикселов. А планшет передает только 7F и 81 - видимо, сдвиг в меньшую или в большую стороны на 1 пиксель. Причем событий сдвига на 1 пиксель генерируется сразу море.

Можно попробовать добавить в драйвер ps2mouse обработку таких событий, и посмотреть, что из этого выйдет. А выйти может драйвер для планшетов и тач-скринов (у которых такая же фигня с координатами).


Top
   
PostPosted: Fri Mar 02, 2012 7:28 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Вы, конечно, не поверите, но банальные заглушки (ломающие работоспособность обычной мышки) сработали. Теперь курсором можно управлять, хотя он движется очень быстро. Но это и понятно - разрешение у планшета 2450 lpi: сдвинул перо на полдюйма - проскакал весь экран. Попробую задать отрицательное ускорение, и потом буду думать, как отличать планшет от обычной мышки. Я так подозреваю, что эта фигня творится на всех планшетах, потому что я щупал Genius и Wacom - они даже драйвера одни и те же используют.


Top
   
PostPosted: Sat Mar 03, 2012 10:50 am 
Ды, ты брат - хакер! :mrgreen:


Top
   
PostPosted: Sun Mar 04, 2012 7:53 pm 
Offline
Just Flooding
User avatar

Joined: Wed May 18, 2005 10:27 am
Posts: 430
SoUrcerer wrote:
как отличать планшет от обычной мышки
докопайся до ID mouse, см.:
http://board.kolibrios.org/viewtopic.php?f=30&t=55&hilit=mouse
http://www.win.tue.nl/~aeb/linux/kbd/scancodes-13.html#ss13.3
http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html#toc12


Top
   
PostPosted: Sun Mar 04, 2012 8:09 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
О, спасибо! Офигенная мысль. Может быть даже пойму, как работать в absolute mode.


Top
   
PostPosted: Mon Mar 05, 2012 3:25 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
В USB-режиме каждое HID-устройство рассказывает подробности о себе, если попросить. Технически это называется Report Descriptor, линуксовый lsusb -vvv его умеет распечатывать в более-менее читабельном виде, если предварительно сделать финт ушами.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Thu Jul 04, 2013 6:33 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
Тут новый драйвер HID появился, с ним как планшет взаимодействует?

_________________
Сделаем мир лучше!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 13 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited