Multi-touch и дополнительные кнопки на Нуке
Goto page 1, 2, 3  Next
 
View unanswered posts
Post new topic   Reply to topic    The-eBook Forum Index -> Barnes&Noble
 
Author Message

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 27.11.2010 12:11     Quote

Результатом долгих исследований ядра и исходников стал драйвер тачскрина для прошивки 1.5 с поддержкой multi touch и дополнительными клавишами. Клавиши добавлены в активной зоне - области над ЖК экраном, где и распологается кнопка Home.

Возможности
- базовая функциональность (тачскрин, листание клавишами, клавиша Home);
- Андроиду передаются нажатия двух пальцев (больше пока не получится);
- в активной зоне (над ЖК экраном) нажатие в самой левой и самой правой части вызывают события Left и Right (можно переназначить в конфиге);
- жест двумя пальцами в активной зоне выполняет роль клавиши Back (можно переназначить);
- жест листания стал гораздо короче и приятнее, в т.ч. листать можно в верхней зоне;
- долгое нажатие в активной зоне вызывает событие Menu (можно переназначить);

Что не работает, так это "просыпание" от первого касания к тачскрину. Буду еще изучать, как его можно сделать.

Установка
1. synaptics_i2c_rmi.ko записываем в /system/lib/modules:
Code:
adb push synaptics_i2c_rmi.ko /system/lib/modules/

2. synaptics-rmi-touchscreen.kl записываем в /system/usr/keylayout/
Code:
adb push synaptics-rmi-touchscreen.kl /system/usr/keylayout/

3.а. списываем файл /init.rc
Code:
adb pull /init.rc

3.б в списаный файл init.rc после фразы on boot добавляем строку, чтобы выглядело так:
Code:
    on boot
    insmod /system/lib/modules/synaptics_i2c_rmi.ko
# basic network init

3.в записываем файл обратно:
Code:
adb push init.rc /


Если все прошло нормально, то после перезагрузки модуль будет работать. Для проверки достаточно в лаунчере начать прокрутку и не отпуская первого пальца дотронутся вторым. Если изображение двигается, значит были обработаны оба пальца и работает новый драйвер. Если не двигается, значит у вас либо не 1.5 версия, либо что-то было сделано не так.

Для отката на фирменный драйвер надо убрать строку в /init.rc.

Ссылка
http://runserver.net/temp/synaptics_mt.7z

Описание метода замены драйвера
http://blog.runserver.net/2010/11/blog-post.html


Last edited by Nomad1 on 27.11.2010 14:16; edited 2 times in total
 
View user's profile Send private message ^

C0rw1n
Недавний участник форума

Недавний участник форума



Joined: 26 Nov 2010
Posts: 11



PostPosted: 27.11.2010 14:01     Quote

Nomad1
Ты не перестаёшь приятно удивлять! Спасибо тебе за все твои разработки для нука.
 
View user's profile Send private message ^

Антон_М
Продвинутый участник форума

Продвинутый участник форума



Joined: 16 Apr 2008
Posts: 73



PostPosted: 27.11.2010 14:24     Quote

Nomad1 wrote:
Описание метода замены драйвера
http://blog.runserver.net/2010/11/blog-post.html


Спасибо, очень интересно было почитать!
 
View user's profile Send private message ^

supremacy
Искушенный участник форума

Искушенный участник форума



Joined: 02 Nov 2010
Posts: 60



PostPosted: 27.11.2010 15:28     Quote

Отличная работа!
 
View user's profile Send private message ^

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 28.11.2010 12:21     Quote

С программами с поддержкой мультитача не шибко все хорошо. На уровне самого Андроида мультитач сделали только в 2.0 и старших версиях, но у нас эти функции не работают и надо использовать собственные. Ну и есть пара диковатых нюансов, которые описали люди еще во время G1 на 1.0-1.5 андроиде. К примеру, есть некий Snapping, когда координаты по какой-то из осей для двух пальцев довольно близки и зачем-то приравниваются ( http://lukehutch.files.wordpress.com/2009/01/img5.jpg?w=500&h=666 ). Также иногда диагонали ошибочно определяются ( http://lukehutch.files.wordpress.com/2009/01/img41.jpg?w=500&h=666 )
Выложу сегодня тестовую программу и мувик.

Добавлено спустя 6 часов 13 минут 44 секунды:

http://www.youtube.com/watch?v=5_hvjYUCkBE

чуть-чуть изображение растянулось по ширине, да и самого мултитача маловато, в основном новые кнопки показаны.
 
View user's profile Send private message ^

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 29.11.2010 13:46     Quote

Вот программа для тестирования Multi-touch:
http://runserver.net/temp/nookMTTest.apk

Можно запустить и на обычном драйвере, тогда будет сингл-тач.

Визуально больше всего досаждает "проблема диагоналей" - если из двух пальцев один движется вверх или вниз, то есть вероятность, что панель передаст это движение не тому пальцу. Т.е. двигаем "первый" палец, а визуально движется "второй". Что интересно, это вредно только для рисования картинок двумя пальцами или для вращения фотографий (будет не в ту сторону вращать), а вот зум обрабатывается без малейших проблем.

Еще устройство может обрабатывать нажатие 3х пальцев, но тогда передаются координаты только первого. Это можно использовать для каких-нибудь хитрых прокруток или как дополнительную клавишу.
_________________
Twitter: @NomadRunserver
 
View user's profile Send private message ^

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 30.11.2010 15:52     Quote

Новая версия драйвера.
Улучшена ситуация с "просыпанием" LCD экрана, низкой чувствительностью, листанием жестами.
Сами жесты переделаны и стали чуть более адекватными, не вызывают спонтанные клики.

Заодно добавлена еще одна клавиша при нажатии тремя пальцами. По-умолчанию она определена как Space, но это тоже можно изменить в конфиге.

Ссылка на драйвер:
http://runserver.net/temp/synaptics_mt.7z

Программа тестирования:
http://runserver.net/temp/nookMTTest.apk
_________________
Twitter: @NomadRunserver
 
View user's profile Send private message ^

lokicoon
Зрелый участник форума

Зрелый участник форума



Joined: 29 Nov 2010
Posts: 31


Location: Russia

PostPosted: 30.11.2010 23:23     Quote

Единственное замечание: /system/lib/modules/ отсутствовал - пришлось создать Embarassed
 
View user's profile Send private message Skype ICQ ^

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 30.11.2010 23:48     Quote

lokicoon
окей, добавлю в инструкцию.
как вообще по ощущениям - не хуже работает драйвер, чем фирменный в обычных задачах? у меня уже глаз "замылился", я не замечаю отличий..
_________________
Twitter: @NomadRunserver
 
View user's profile Send private message ^

lokicoon
Зрелый участник форума

Зрелый участник форума



Joined: 29 Nov 2010
Posts: 31


Location: Russia

PostPosted: 01.12.2010 06:35     Quote

Вообщем установил-проверил:

замечания следующие:
-гиперчувствительность(срабатывает до нажатия, лишь только подносишь палец)
-экран просыпается лишь при двойном свайпе, при этом выполняются какие то действия сразу после просыпания - ходит по пунктам меню.
-не удалось листать свайпами в читалке (штатная и fbreader), складывается впечатление что одинарные свайпы не отрабатываются вовсе
-в читалке (штатная и fbreader) не работают дополнительные клавиши (ЛВУ и ПВУ), в библиотеке - работают.

Быть может не отработал файл-конфигуратор (я так понимаю synaptics-rmi-touchscreen.kl), как то можно это проверить?
 
View user's profile Send private message Skype ICQ ^

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 01.12.2010 12:09     Quote

lokicoon wrote:
Вообщем установил-проверил:

замечания следующие:
-гиперчувствительность(срабатывает до нажатия, лишь только подносишь палец)

ок, поправим
lokicoon wrote:

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

еще можно дабл тап делать
lokicoon wrote:

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

вот это странно. пробовали свайпить в верхней зоне, рядом с Home? может, свайпы не работают при засыпании экрана?
lokicoon wrote:

-в читалке (штатная и fbreader) не работают дополнительные клавиши (ЛВУ и ПВУ), в библиотеке - работают.

штатная не умеет такие клавиши обрабатывать. а вот fbreader вроде как умеет. проверю позже.
как вариант, можно в конфиге переназначить DPAD_LEFT и DPAD_RIGHT на SWIPE_LEFT и SWIP_RIGHT.
lokicoon wrote:

Быть может не отработал файл-конфигуратор (я так понимаю synaptics-rmi-touchscreen.kl), как то можно это проверить?

если бы он не отработал, то клавиши ЛВУ/ПВУ не работали бы вообще.

огромное спасибо за баг-репорт - самому мне все тяжелее тестить из-за "привыкания" Smile

Добавлено спустя 18 минут 46 секунд:

Выложил обновленную версию. Скорее всего поправилась чувствительность, просыпание и, возможно, листание.
Сам проверить пока не могу - мой нук утром не проснулся, на экране мусор Sad сейчас заряжаю от сети, может поможет.

http://runserver.net/temp/synaptics_mt.7z
 
View user's profile Send private message ^

lokicoon
Зрелый участник форума

Зрелый участник форума



Joined: 29 Nov 2010
Posts: 31


Location: Russia

PostPosted: 01.12.2010 13:54     Quote

Nomad1 wrote:
еще можно дабл тап делать
а вот не получалось, нижний экран будился лишь при двойном свайпе, либо кнопкой питания
Nomad1 wrote:
пробовали свайпить в верхней зоне, рядом с Home?
При отключенном экране свайпы в верхней зоне так же не приводили к листанию.
Nomad1 wrote:
может, свайпы не работают при засыпании экрана?
ну это было бы странно, ведь со штатным драйвером это один из штатных способов листания - пальцем по выключенному нижнему экрану.

Вечером установлю новую версию драйвера - отпишусь как стало работать.
 
View user's profile Send private message Skype ICQ ^

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 01.12.2010 13:56     Quote

lokicoon wrote:
ну это было бы странно, ведь со штатным драйвером это один из штатных способов листания - пальцем по выключенному нижнему экрану.

это не было бы странно, ведь обработку нажатий и жестов я писал заново, изредка поглядывая в код драйвера от прошивки 1.2 (он тоже далек от идеала) Smile
проверяйте с новой версией
_________________
Twitter: @NomadRunserver
 
View user's profile Send private message ^

lokicoon
Зрелый участник форума

Зрелый участник форума



Joined: 29 Nov 2010
Posts: 31


Location: Russia

PostPosted: 01.12.2010 13:58     Quote

Nomad1 wrote:
мой нук утром не проснулся, на экране мусор

А вот это печально! В порядке иннициативы - может стоит объявить сбор средств на девайс для "эксперементов"?
 
View user's profile Send private message Skype ICQ ^

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 01.12.2010 14:15     Quote

lokicoon wrote:
Nomad1 wrote:
мой нук утром не проснулся, на экране мусор

А вот это печально! В порядке иннициативы - может стоит объявить сбор средств на девайс для "эксперементов"?


один раз уже такое было - разрядился в минуса аккумулятор.
Пока писал эти строки, девайс включился и начал работать. Видимо, я вчера что-то не то сделал при экспериментах с рутингом и пошел гипер-разряд.
 
View user's profile Send private message ^

mseJak
Постоянный участник форума

Постоянный участник форума



Joined: 24 Sep 2010
Posts: 151


Location: Edo, Japan

PostPosted: 01.12.2010 14:16     Quote

я согласен кинуть пару рубликов! Rolling Eyes
_________________
все мы живем в зО_опарке...
 
View user's profile Send private message ^

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 01.12.2010 14:33     Quote

mseJak
давайте пока не будем торопиться Smile думаю, я еще успею угробить свое устройство и тогда помощь пригодится

Добавлено спустя 7 минут 56 секунд:

просыпалка не пофиксилась Sad + еще какой-то баг есть. например, прокрутился по менюшке, нажимаю что-то, а менюшка откручивается назад.
буду изучать на досуге.
_________________
Twitter: @NomadRunserver
 
View user's profile Send private message ^

lokicoon
Зрелый участник форума

Зрелый участник форума



Joined: 29 Nov 2010
Posts: 31


Location: Russia

PostPosted: 01.12.2010 21:26     Quote

Nomad1 wrote:
Выложил обновленную версию. Скорее всего поправилась чувствительность, просыпание и, возможно, листание.

Отчитываюсь:
+ чувствительность теперь стала нормальной, требуется касание
+ просыпается по двойному тапу (мне это нравится больше нежели просыпание с одного тапа)
+ листает свайпом по верхней части при включенном/выключенном таче
+ листает свайпом по основной части при выключенном таче

Вообщем мне нравиться, посмотрю как будет дальше

Nomad1 wrote:
например, прокрутился по менюшке, нажимаю что-то, а менюшка откручивается назад.
я так понимаю что небольшой сдвиг пальца при этом воспринимается как свайп = нужно уменьшить чувствительность к свайпу.

Nomad1 wrote:
давайте пока не будем торопиться

Имхо - раньше начнешь раньше нужная сумма наберется Smile

Posted after 3 minutes 41 seconds:

Nomad1 wrote:
Еще устройство может обрабатывать нажатие 3х пальцев

а можно сделать так чтобы тройная распальцовка усыпляла нук? ну и было бы совсем замечательно (при условии что тай никогда не отключается) если бы тот же жест будил спящий нук Embarassed
 
View user's profile Send private message Skype ICQ ^

Nomad1
Developer

Developer



Joined: 13 Sep 2010
Posts: 1721



PostPosted: 01.12.2010 21:37     Quote

lokicoon wrote:
я так понимаю что небольшой сдвиг пальца при этом воспринимается как свайп = нужно уменьшить чувствительность к свайпу.

может быть. посмотрим

lokicoon wrote:
Имхо - раньше начнешь раньше нужная сумма наберется

интереснее тогда на NookColor - там больше пространство для экспериментов Smile)

lokicoon wrote:
а можно сделать так чтобы тройная распальцовка усыпляла нук? ну и было бы совсем замечательно (при условии что тай никогда не отключается) если бы тот же жест будил спящий нук

если такая клавиша в андроиде есть (какой-нить Power), то можешь ее прописать в .kl файле конфига. просыпаться по клавише нереально, но засыпать вполне можно попробовать.

p.s. мой драйвер, кстати, именно усыпляет тачпад, в соответствии с документацией разработчиков. правда, я до сих пор забываю замерить, повлияло ли это на срок жизни устройства.
_________________
Twitter: @NomadRunserver
 
View user's profile Send private message ^

lokicoon
Зрелый участник форума

Зрелый участник форума



Joined: 29 Nov 2010
Posts: 31


Location: Russia

PostPosted: 01.12.2010 21:53     Quote

Nomad1 wrote:
если такая клавиша в андроиде есть (какой-нить Power), то можешь ее прописать в .kl файле конфига.

ну на моем дезайре есть вот такая конструкция:
Code:
key 116   POWER             WAKE

то есть мне нужно прописать:
Code:
key 57   POWER             WAKE

Правильно?

З.Ы. В конфиг, по-моему, закралась ошибка - закрывающая скобка после SPACE

Posted after 4 minutes 19 seconds:

Nomad1 wrote:
интереснее тогда на NookColor

Очень интересно как он с правляется со стандартными приложениями андроид-а
Я ищу себе девайс-планшетник, для интернета и прочей развлекухи без привязки к столу Smile

Posted after 1 minute 38 seconds:

Ну я так понимаю моя конструкция не сработала - не засыпает.
 
View user's profile Send private message Skype ICQ ^
Display posts from previous:   
Post new topic   Reply to topic    The-eBook Forum Index -> Barnes&Noble All times are GMT + 4 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
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 vote in polls in this forum

© The-eBook, 1999-2014. © Design by Prohorenkov
Syndicating News | Powered by phpBB © 2001, 2005 phpBB Group.
Хостинг предоставлен компанией DatForce     Яндекс.Метрика