PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Разработка устройств

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2012, 01:36   #11
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

В общем, дописал функцию энкодера... Несложно. Если его пины подключить к двум битам, он выдает последовательность 0 1 3 2. Двойку с тройкой меняем местами, получается 0 1 2 3. Далее, вычитаем, если разность 1 или -3, то вращение в одну сторону, если -1 или 3, -- в другую. Просто Стансон там какую-то целую таблицу забабахал для этого.

Теперь PowerAMP управляется прям четко: ручка-энкодер и она же enter! Мечта!

Собирать все буду теперь...
AngelOfGrief вне форума   Ответить с цитированием
Старый 19.03.2012, 01:49   #12
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

Выкладываю исходник, прошивку .HEX и бутлоадер. Написал там небольшой readme, по идее тому кто знаком с программированием несложно будет переделать эту программу под кнопки другой магнитолы. Кстати, обработка энкодера работает и ее можно использовать с любой магнитолой даже в текущей прошивке.

Долго бился: девайс вис после перезагрузки тукана. Добавил в два места вылет по таймауту, а также отслеживание CONFIG_STATE (т.е. если хост перестал поддерживать USB девайс). Перезапускаем проц с обязательной очисткой регистра USBCON -- теперь все четко! У тукана какая-то проблема с перезагрузкой, после нее перестает работать часть USB девайсов, wifi свисток например. А мой девайс теперь гордо рестартует и работает!
Вложения
Тип файла: rar usb_keyb.rar (788.6 Кб, 572 просмотров)
AngelOfGrief вне форума   Ответить с цитированием
Старый 22.03.2012, 02:29   #13
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

Алгоритм чтения клавы переделал, там оказалась 2-х проводная шина (DATA и STROBE), а я пытался своим гениальным алгоритмом прочитать код кнопки только через DATA.

Вопрос теперь в следующем, как заменить приложения, которые андроид вызывает по умолчанию? Файлы layout доработал как надо (почему то часть функ. клавиш тупо не работает), теперь имею: по нажатию клавиш магнитолы, которые назначены на функ. клавиши у меня запускается: стоковый плеер (music.apk), просмотрщик видео (videoplayer.apk), почта (email.apk), итд. Для них соответственно в файле layout команды MUSIC, VIDEO, EMAIL.

Вопрос такой: как мне вместо этих программ назначить другие? Хочу PowerAMP вместо music.apk, Яндекс.Карты вместо видео плеера итд итп. Обыскал весь инет, везде пишут, что надо зайти в Applications и там изменить Launch by default, но это действует для скачанных программ, а для тех, что по умолчанию как? Где-то должен быть конфиг файл с путями запуска этих приложений, но я не могу найти, подскажите? ....
AngelOfGrief вне форума   Ответить с цитированием
Старый 23.03.2012, 00:57   #14
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

В общем, я сегодня чуть ни весь день потратил, уже голову сломал... Я не могу найти где находятся настройки какое приложение вызывается при нажатии на хард-клавишу, прописанную в keylayout. Например, почему по коду MUSIC он запускает music.apk, а не что-то другое? Даже написал в xda-developers, весь день прошел, тишина...

Вот софтину нашел, вроде меняет именно запускаемые приложения по хард-клавишам, но у меня не работает. Прилагаю, попробуйте, может кому пригодится... DreamKeys называется.

Пробовал чисто на удачу заменить music.apk на apk от PowerAMP, вылетает с ошибкой. Видимо, его надо переименовать прежде чем устанавливать, но это какой-то кривой путь, я так не хочу! Вообще, именно таким образом IconBIT заменили браузер в последней прошивке, он под тем же именем, но размер другой.

Еще выяснил, что некоторые клавиши не работали из-за того, что были дважды назначены в keylayout, а так делать нельзя. Например:

key 67 HOME
...
...
...
key 67 VOLUME_UP

HOME не будет работать.

И еще, смысл этого файла оказывается просто в конвертации кодов клавиатуры. Т.е. 67 - Linux-код клавиши, а VOLUME_UP - код Андроид-клавиши. Т.е. это типа #define' ы.

Скоро я уже дойду до того чтобы самому написать такую программу, но надо чтобы она работала не только когда она активна, а всегда. В винде это называется hook (когда перехватываешь системную процедуру и данные пропускаешь через свою), в Андроиде не знаю как... Может тупо с девайса клавиатуры читать в /dev ??
Вложения
Тип файла: rar dreamKeys.rar (26.5 Кб, 522 просмотров)
AngelOfGrief вне форума   Ответить с цитированием
Старый 23.03.2012, 18:22   #15
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

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

http://learnandroid.blogspot.com/200...m-command.html

Пример строки:

am start -a android.intent.action.MAIN -n com.iftitah.android.contact/com.iftitah.android.contact.Contact

com.iftitah.android.contact - название приложения,
com.iftitah.android.contact.Contact -- как я понял, activity который надо запустить
в данном приложении.
AngelOfGrief вне форума   Ответить с цитированием
Старый 24.03.2012, 03:03   #16
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

Как я отписал в другом топике, приложения запускаются.
Например,

am start -n com.maxmpz.audioplayer/.PlayListActivity

запускает PowerAMP.

Теперь надо найти стандартный /dev клавиатуры и читая оттуда коды кнопок,
запускать нужные приложения при помощи .sh файла -- вот такая идея.

Потому как gcc под андроид готового вроде нету: люди пробовали, говорят тормоза страшные и памяти мало для работы компилятора. Говорят, нативные приложения лучше на компе писать.
AngelOfGrief вне форума   Ответить с цитированием
Старый 24.03.2012, 03:11   #17
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

Хм, получается вроде event2 и event4 - две мои USB клавиатуры, но только cat /dev/input/event4 выдает непонятный мусор... причем по несколько байт на одно нажатие.
AngelOfGrief вне форума   Ответить с цитированием
Старый 24.03.2012, 03:21   #18
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

Нашел, надо использовать утилиту getevent, она при нажатии клавиш клавиатуры выдает разумные коды и даже показывает с какого устр-ва event* они пришли.

Осталось .sh файл сочинить, чем займусь завтра. Придется форумы курить, я в них не силен...
AngelOfGrief вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 06:19.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot