Про планшет: Trust TB-5300 USB

Drivers for periphery equipment
  • SoUrcerer wrote:Подробности нужны?
    Ну, естественно скилл телепатии у всех людей в сообществе плохо прокачан, так что да нужны, но обещать я естественно ничего не могу.
  • Выделил эту тему из "Ночные" сборки KolibriOS
    SoUrcerer wrote:как на новой ubuntu без модуля wizardpen, потому что на старой ubuntu и в xp планшет легко работает как HID... На настоящей машине с ядром из автосборки планшет просто мигает, курсор не движется. С USB-ядром выводит сообщение о том, что устройство не поддерживается, или вроде того.
    Что-то мне подсказывает, что драйвер HID очень не прост и написан очень хитро.
  • Есть устройства hid с абсолютным позиционированием курсора, такие как планшеты и тачскрины.Они передают данные как-то иначе %)
  • Любопытно, характер данных, которые возвращает чтение /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: Select all

     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);
    
    Плюс есть отдельное событие на передачу абсолютных координат. По идее, добавление вот такой хрени позволит работать в Колибри практически со всеми планшетами.
  • Ага, похоже, планшет возвращает координаты в режиме Intellimouse Extension.
    http://www.computer-engineering.org/ps2mouse/
    Возможно, с ним пытаются общаться как с обычной мышкой, и в итоге данные от него будут восприниматься совершенно неправильно. Более того, это определенно приведет к тому, что в 3м бите каждого третьего байта, который по стандарту PS/2 всегда должен быть 1, время от времени будет не 1 - это может быть воспринято как поломанная мышка.
  • Повесил вывод отладочных данных с планшета. При обычном перемещении мышь дает
    08 01 01 - сдвиг на 1 пиксель по обоим осям
    Планшет при небольшом перемещении генерирует
    08 7F 7F
    То есть курсор прыгает сразу на 79 пикселов. А планшет передает только 7F и 81 - видимо, сдвиг в меньшую или в большую стороны на 1 пиксель. Причем событий сдвига на 1 пиксель генерируется сразу море.

    Можно попробовать добавить в драйвер ps2mouse обработку таких событий, и посмотреть, что из этого выйдет. А выйти может драйвер для планшетов и тач-скринов (у которых такая же фигня с координатами).
  • Вы, конечно, не поверите, но банальные заглушки (ломающие работоспособность обычной мышки) сработали. Теперь курсором можно управлять, хотя он движется очень быстро. Но это и понятно - разрешение у планшета 2450 lpi: сдвинул перо на полдюйма - проскакал весь экран. Попробую задать отрицательное ускорение, и потом буду думать, как отличать планшет от обычной мышки. Я так подозреваю, что эта фигня творится на всех планшетах, потому что я щупал Genius и Wacom - они даже драйвера одни и те же используют.
  • Ды, ты брат - хакер! :mrgreen:
  • SoUrcerer wrote:как отличать планшет от обычной мышки
    докопайся до ID mouse, см.:
    viewtopic.php?f=30&t=55&hilit=mouse
    http://www.win.tue.nl/~aeb/linux/kbd/sc ... tml#ss13.3
    http://www.win.tue.nl/~aeb/linux/kbd/sc ... html#toc12
  • О, спасибо! Офигенная мысль. Может быть даже пойму, как работать в absolute mode.
  • В USB-режиме каждое HID-устройство рассказывает подробности о себе, если попросить. Технически это называется Report Descriptor, линуксовый lsusb -vvv его умеет распечатывать в более-менее читабельном виде, если предварительно сделать финт ушами.
    Сделаем мир лучше!
  • Тут новый драйвер HID появился, с ним как планшет взаимодействует?
    Сделаем мир лучше!
  • Who is online

    Users browsing this forum: No registered users and 4 guests