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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Разработка программ (http://pccar.ru/forumdisplay.php?f=27)
-   -   Android + CAN Hacker (http://pccar.ru/showthread.php?t=18909)

iGeophysix 25.03.2013 10:23

Нужна помощь Android + CAN Hacker
 
Добрый день, друзья!

Я открыл в соседней ветке тему про чтение кнопок с CAN шины.
Теперь мне нужна ваша помощь в написании программы-обработчика.

Мое заключительное сообщение:
Цитата:

Привет всем!

Сегодня утром я сделал большой шаг)
Я сосканировал нажатия клавиш.
Единственное - пропустил код отпускания клавиши Display.
Заметил, что второй байт - счетчик. Он сквозной по всем нажатиям. (10,20,...70, 10,...)
Периодически проходят сигналы с большим содержанием FF.
Но попробовал отправить эти сигналы с компа - магнитола управляется!
Энкодеры посылают всегда один и тот же сигнал.
Короче, кто напишет программку для CAN Hacker'а?)))
Или другого адаптера, чтоб работало на андроиде или еще где...

Кстати, нажатия сенсорного экрана тоже по этой шине передаются.
Мне было лень расшифровывать, т.к. я все равно хочу выкинуть этот экран к едрене Фене)

Файл с кодировками: http://yadi.sk/d/n-0a78pB3TcIX
Я использую CAN Hacker.
Устройство передает данные по COM порту.

Спасибо заранее за помощь!

iGeophysix 31.05.2013 18:20

Ребята, я уже исходники нашел.

Есть приложение на JAVA - jd2xx
исходники его есть... ну напишите плиз обработчик!

autowp 01.07.2013 13:25

Эх, интереснейшная для меня тема. Если всё пойдет пучком со сбором девайса, в не самом ближайшем будущем буду делать аналогичные изыскания для себя.

А суть программы какова? Эмулировать нажатия на кнопки? С громкостью, например, это же не достаточно - по уму надо ещё и текущее значение указывать, т.е. не только посылать сигналы, но и получать (а может и запрашивать). Ну или с кнопками переключения режимов (CD/Radio/...) - тоже надо узнавать исходное значение.

Надо бы приобрести этот CAN Hacker, только не могу понять, взлетит ли он у меня на машине (Peugeot 407), поддерживает ли мой протокол.
Вы на G37 пробуетесь? Какой у вас протокол/скорость CAN?

По идее для начала будет достаточно любого root'ованного android'а. Не подскажете, какой там USB-контроллер. Profolic PL-2303?

А где его можно купить в Москве? Что-то не гуглится (

iceman 01.07.2013 19:54

Может кому пригодится http://www.gadgetgangster.com/news/54/556 . Сам хочу заменить штатный телек с печкой на нормальный тач в тоёте.

iGeophysix 18.07.2013 16:16

Цитата:

Сообщение от autowp (Сообщение 262821)
Эх, интереснейшная для меня тема. Если всё пойдет пучком со сбором девайса, в не самом ближайшем будущем буду делать аналогичные изыскания для себя.

ооо))) в нашем полку прибыло)
теперь три воина!

Цитата:

Сообщение от autowp (Сообщение 262821)
А суть программы какова? Эмулировать нажатия на кнопки? С громкостью, например, это же не достаточно - по уму надо ещё и текущее значение указывать, т.е. не только посылать сигналы, но и получать (а может и запрашивать). Ну или с кнопками переключения режимов (CD/Radio/...) - тоже надо узнавать исходное значение.

Суть программы - управление ОС. Я сейчас научился общаться с устройством по Virtual COM port из Питона - работает неплохо) Я сейчас 2 месяца в командировке...Машины нет. Что я хочу - нажал кнопку влево - перешел влево.
Нажал кнопку DISC/AUX он щелкает между аудио и видео.
Нажал MAP - он включил навигатор
и т.д.

Цитата:

Сообщение от autowp (Сообщение 262821)
Надо бы приобрести этот CAN Hacker, только не могу понять, взлетит ли он у меня на машине (Peugeot 407), поддерживает ли мой протокол.
Вы на G37 пробуетесь? Какой у вас протокол/скорость CAN?

У меня 500 Кб/С
я думаю, что все тоже самое у вас...
(кстати. давай на ты?)
Цитата:

Сообщение от autowp (Сообщение 262821)
По идее для начала будет достаточно любого root'ованного android'а. Не подскажете, какой там USB-контроллер. Profolic PL-2303?
А где его можно купить в Москве? Что-то не гуглится (

SJA какой-то...
Я в Новосибирске купил. Доставка быстрая.



Есть навыки программирования для железа?

iGeophysix 18.07.2013 17:51

Цитата:

Сообщение от iceman (Сообщение 262878)
Может кому пригодится http://www.gadgetgangster.com/news/54/556 . Сам хочу заменить штатный телек с печкой на нормальный тач в тоёте.

шикарный проект!

Vic26 18.07.2013 17:57

Цитата:

SJA какой-то...
SJA1000 это CAN-контроллер, а USB в CANHacker FT245R

iGeophysix 18.07.2013 18:11

Цитата:

Сообщение от Vic26 (Сообщение 264615)
SJA1000 это CAN-контроллер, а USB в CANHacker FT245R

Точно! Че-то я затупил)
FTDI драйвера же учился подключать)))

Foblas 26.09.2013 20:01

Вложений: 1
autowp Берите смело, все видит. в 407 несколько шин с разной скоростью,
Can-is - 500кбит (моторник-бси)
can-car -125кбит (всякие парктроники, блоки и т.д.)
can conf - 125кбит (магнитола экран)

Шлюзом между ними и общением на разных скоростях выступает блок BSI (слева под рулем, с разъемами и предохранителями)

Я у себя кое что увидел по кэну и даже смог послать в экран, но из-за нехватки времени как всегда....


Вообщем идея тоже такова, встроить планшет по кэну нормально в авто, т.е видеть на планшете данные БК, магнитолы, информацию с других блоков.

Кэн хакер покупал разведенную плату, паял сам. Немного глюкавит - но работает)

плат кстати накупил с запасом если кому вдруг захочется)

Общая идея такова, android+ arduino+can-bus шильд. В теории оно будет общаться, но надо запрограммить ардуину и написать софтину под андроид. И если что-то собрать и спаять у меня худо бедно получается, то программинг для меня непосильная задача к сожалению

iGeophysix 26.09.2013 20:19

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

Foblas 26.09.2013 20:33

О, пока я рожаю - люди делают) буду ждать результатов, может придаст мне большего стимула сесть за программуху.
А пока можно заняться отслеживанием нужных мне пакетов на целевом автомобиле.

iGeophysix 26.09.2013 20:48

Цитата:

Сообщение от Foblas (Сообщение 271960)
О, пока я рожаю - люди делают) буду ждать результатов, может придаст мне большего стимула сесть за программуху.
А пока можно заняться отслеживанием нужных мне пакетов на целевом автомобиле.

да я уже почти год это делаю.
ни от кого помощи не дождешься :-(
Сколько прошу программистов, железячников - никто даже не ответит.
так что не жди... начинай сканировать шину.
Я не нашел в этом узле инфу по магнитоле
Только напрямую подсоединился к ней и читаю нажатия кнопок.

iGeophysix 30.09.2013 15:54

баааалин... вот плохо работает :-(
то работает - то нет...
при чем не пойму зависимости.
Настроил фильтры (использую библиотеку canduino) теперь. Она мне более понятна.
Так в итоге проходят пара сообщений, которые не соответствуют реалиям.
И опять отхрясывает плата.

Может ток слишком большой для платы? может через резистор подцепить? :-)
На столе со STAND-ALONE читалкой все работает. как только пихаю в машину - все опять зависает.

Foblas 30.09.2013 17:29

а какой ты шильд используешь в ардуине?
Я когда can-hacker вешал по всем правилам вешал 120 резистор на конец шины, и получал мертво висящий адаптер. В случае подключения в имеющуюся шину никаких терминаторов не надо.
Я сейчас пытаюсь подобрать железку, либо покупать готовый can шильд долго, либо делать самому по немногочисленным обрывкам информации в англоязычном инете.

iGeophysix 30.09.2013 17:32

Цитата:

Сообщение от Foblas (Сообщение 272274)
а какой ты шильд используешь в ардуине?
Я когда can-hacker вешал по всем правилам вешал 120 резистор на конец шины, и получал мертво висящий адаптер. В случае подключения в имеющуюся шину никаких терминаторов не надо.
Я сейчас пытаюсь подобрать железку, либо покупать готовый can шильд долго, либо делать самому по немногочисленным обрывкам информации в англоязычном инете.

У меня есть CAN-SPI от mikroElektronika
и CAN BUS Shield от SEEEDSTUDIO


Я настроил фильтр. На столе работает все отлично. Но как только в машину сую - гавно какое-то :-)

Dee63 02.12.2013 23:40

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

iGeophysix 03.12.2013 06:11

Цитата:

Сообщение от Dee63 (Сообщение 279377)
а не проще ли взять контроллер резистивных кнопок и воткнуть в него твои кнопки. контроллер воткнуть в андроид и в нем уже тебе будет нажатия кнопок как на клавиатуре.
и плэй, и выбор источника, и карты-это, по сути, горячие клавиши запуска приложений. эта служба в андроиде может быть написана по мануалам из книжки по обучению програмиированию под андроид. вот моя мысль.

Теперь уже не проще. Я понял, как работает этот кан хакер, и сваял еще два сам. Так что вопрос про программирование под андроид только остался.

Я делаю под винду дальше. для ситигида пишу скрипт. и если все хорошо - монтирую так.

Dee63 03.12.2013 13:33

Цитата:

Сообщение от iGeophysix (Сообщение 279405)
Теперь уже не проще. Я понял, как работает этот кан хакер, и сваял еще два сам. Так что вопрос про программирование под андроид только остался.

Я делаю под винду дальше. для ситигида пишу скрипт. и если все хорошо - монтирую так.

я так понимаю это продолжение темы http://pccar.ru/showthread.php?t=18576&page=10 но уже ваше

iGeophysix 03.12.2013 18:42

да) только немного в свою сторону я гну.
этих продолжений темы уже дофига.
на куче форумов.
никто толком не помог
сейчас пишу на drive2.ru

Gorynch 03.12.2013 20:37

какие требования к программе под андроид?

Dee63 04.12.2013 01:05

Цитата:

Сообщение от iGeophysix (Сообщение 279497)
да) только немного в свою сторону я гну.
этих продолжений темы уже дофига.
на куче форумов.
никто толком не помог
сейчас пишу на drive2.ru

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

iGeophysix 04.12.2013 05:26

требования минимум: открывает кан хакер, читает из него сообщения, выполняет соответствующие команды.
основные - включить навигатор, включить музыку, переключить треки, переключиться на камеру зх
(у меня есть мониторчик с контроллером, в котором при подаче питания включается VGA. Если питание оттуда убрать, то включается предыдущий порт)

Dee63, а что у тебя там такого?) уже прям заинтриговал. решил управление все на андроиде сделать?
Я вот думал, что круто было бы еще управлять сидениями с планшета и т.д.

Dee63 04.12.2013 09:59

Цитата:

Сообщение от iGeophysix (Сообщение 279572)
Dee63, а что у тебя там такого?) уже прям заинтриговал. решил управление все на андроиде сделать?
Я вот думал, что круто было бы еще управлять сидениями с планшета и т.д.

Воплещение мечты в готовый продукт))

Про сидения- знаешь почему управление ими размещено на сидении?
Просто когда ты к экрану будешь тянуться, то положение удобное будет трудно поймать. Именно по этой причине его не выносили куда-то при дизайне панели и средней части между сидениями. Можно максимум подогрев сделать управляемый, и то...
Ключевой вопрос в дальности размещения панели от водителя-пассажира в свзяке со средней длинной руки.
Ну т.е. может быть так, что сидение придвинуто как надо,а экран-кнопку разместил так, что не дотянуться без доп. движений.

Есть же такая вещь, как требования к безопасности. водителя не должно ничего отвлекать.

iGeophysix 04.12.2013 10:27

Цитата:

Сообщение от Dee63 (Сообщение 279580)
Воплещение мечты в готовый продукт))

Про сидения- знаешь почему управление ими размещено на сидении?
Просто когда ты к экрану будешь тянуться, то положение удобное будет трудно поймать. Именно по этой причине его не выносили куда-то при дизайне панели и средней части между сидениями. Можно максимум подогрев сделать управляемый, и то...
Ключевой вопрос в дальности размещения панели от водителя-пассажира в свзяке со средней длинной руки.
Ну т.е. может быть так, что сидение придвинуто как надо,а экран-кнопку разместил так, что не дотянуться без доп. движений.

Есть же такая вещь, как требования к безопасности. водителя не должно ничего отвлекать.

Мне управление сидением нужно, чтоб маму подвинуть) а не объяснять ей, куда рукой дотянуться.
А так я и не собираюсь никуда в движении двигаться.
я поэтому и до сих пор не воткнул нексус на место экрана - не хочу рукой тянуться, чтоб переключать треки.
Вот есть у меня кнопки - вот пусть и работают.

интересно, о чем ты мечтаешь?)

Dee63 04.12.2013 11:13

Цитата:

Сообщение от iGeophysix (Сообщение 279590)
Мне управление сидением нужно, чтоб маму подвинуть) а не объяснять ей, куда рукой дотянуться.
А так я и не собираюсь никуда в движении двигаться.
я поэтому и до сих пор не воткнул нексус на место экрана - не хочу рукой тянуться, чтоб переключать треки.
Вот есть у меня кнопки - вот пусть и работают.

интересно, о чем ты мечтаешь?)

в настоящий момент о руле от opel astra j с мультимедиа, чтобы протестировать работу всей системы в связке.
но 10тыр за новый жаба душит

Gorynch 04.12.2013 22:46

Кан хакер видится как СОМ порт?
Напиши посылки от него и неободимые действия на них

Попробую что нибудь сообразить

iGeophysix 05.12.2013 06:18

Цитата:

Сообщение от Gorynch (Сообщение 279655)
Кан хакер видится как СОМ порт?
Напиши посылки от него и неободимые действия на них

Попробую что нибудь сообразить

Видится как ком порт.
Исходник программы для винды находится на http://www.mictronics.de/projects/usb-can-bus/
Я использую хакер фиксированно на скорости 500 Кбит/С (т.е. когда выбираю параметр- беру S5)
Дома лежит код на питоне - я приеду и скину его, если надо (сейчас в командировке)

Все кнопки находятся на фотке: http://e.a.d-cd.net/1b4c0c8s-960.jpg
Хотелось бы, чтобы нажал на кнопку MAP - открылся яндекс навигатор
Нажал на DEST - открылся поиск адреса в яндекс навигаторе
Zoom in|out - меняют масштаб
Стрелочки управляют положением и т.д.
Если есть свое видение - всегда рад новому мнению. А то за год подустал я один думать.

Все сообщения лежат в табличке на Лист 3: http://yadi.sk/d/n-0a78pB3TcIX

соответственно, пока нет никаких действий (ни одна кнопка не нажата, посылается IDLE)
как только ты нажал кнопку - появляется одно из сообщений типа
04 10 40 0D 8C FF FF FF (нажатие на кнопку MAP)
второй байт - счетчик. Т.е. ты зажал кнопку MAP
и посылается одно и то же сообщение, только второй байт циклически меняется 10-20-30-40-50-60-70-10-20-...

681 - идентификатор исходящего сообщения. Т.е. адрес, откуда пришел пакет

Спасибо тебе заранее!

Gorynch 05.12.2013 11:35

а какой чип стоит COM-USB в CAN хакере? FTDI, PLxxx или ещё что?
девайс - Minix Neo X5 или Hyundai T7?
просто нужен будет модуль для андроида

iGeophysix 05.12.2013 12:19

Цитата:

Сообщение от Gorynch (Сообщение 279683)
а какой чип стоит COM-USB в CAN хакере? FTDI, PLxxx или ещё что?
девайс - Minix Neo X5 или Hyundai T7?
просто нужен будет модуль для андроида

1) FTDI
2) Hyundai T7 и есть NExus 7 (но на нем нет видео выхода - что не вписывается в мою архитектуру. Будут проблемы с переключением по мониторам)

Я хочу сделать все на планшете. Чтоб батарейка была, чтоб тач был родной.
Может и поменяется планшет и будет другой...

Gorynch 05.12.2013 21:41

значится пока выяснил вот что - я не могу нажимать кнопки в "чужом" приложении или эмулировать их нажатие (в винде и mac os можно если не нажать, то отправить приложению сообщению, что кнопку нужно нажать). В яндекс.навигаторе с физической клавиатуры не смог найти горячих клавиш для масштабирования и перемещения, но нашёл кнопку для вызова поиска. Отправил запрос в яндекс по этому поводу
Upd: ответили - ниаких горячих клавиш в навигаторе нет. Может быть добавят в следующих версиях. Буду думать что можно сделать

FTDI - это хорошо

Конфигурация ком порта? 115200 8N1?
как именно выглядит посылка в ком порт? 681 там присутствует или только байты данных?

iGeophysix 06.12.2013 04:54

Цитата:

Сообщение от Gorynch (Сообщение 279727)
значится пока выяснил вот что - я не могу нажимать кнопки в "чужом" приложении или эмулировать их нажатие (в винде и mac os можно если не нажать, то отправить приложению сообщению, что кнопку нужно нажать). В яндекс.навигаторе с физической клавиатуры не смог найти горячих клавиш для масштабирования и перемещения, но нашёл кнопку для вызова поиска. Отправил запрос в яндекс по этому поводу
Upd: ответили - ниаких горячих клавиш в навигаторе нет. Может быть добавят в следующих версиях. Буду думать что можно сделать

FTDI - это хорошо

Конфигурация ком порта? 115200 8N1?
как именно выглядит посылка в ком порт? 681 там присутствует или только байты данных?

Масштабирование и перенос - CTRL + стрелки и плюс/минус
А какая на кнопку поиска?

А эмулировать нажатия пальцем или мышкой в Андроиде можно?

Я тоже писал в ЯНдекс. Тоже сказали, что нет клавиш.
Конфиг вроде такой. Я завтра утром смогу поиграться. Сегодня я все еще в командировке - нет ниче с собой :-(

Gorynch 06.12.2013 12:56

Цитата:

Сообщение от iGeophysix (Сообщение 279763)
Масштабирование и перенос - CTRL + стрелки и плюс/минус

это где? на андроиде не катит. только поиск, у меня на клаве есть кнопка с лупой - при её нажатии открывается окно ввода пункта назначения
Цитата:

Сообщение от iGeophysix (Сообщение 279763)
А эмулировать нажатия пальцем или мышкой в Андроиде можно?

вроде да, сейчас прорабатываю это направление

iGeophysix 07.12.2013 09:17

Цитата:

Сообщение от Gorynch (Сообщение 279784)
это где? на андроиде не катит. только поиск, у меня на клаве есть кнопка с лупой - при её нажатии открывается окно ввода пункта назначения

Я к андроиду подключаю клавиатуру по USB. И она как раз и выполняет функцию.

Цитата:

Сообщение от Gorynch (Сообщение 279784)
вроде да, сейчас прорабатываю это направление

Я сейчас тоже самое делаю на винде. Прописываю нажатия кнопок и движения мыши. Ну немного колхозно работает...

Gorynch 07.12.2013 10:09

Попробую в Пн подключить USB клаву, до этого беспроводные использовал

Можно эмулировать нажатие на экран и движение по экрану, но для этого приложение должно иметь системные права. В Пт не успел толком во всём этом разобраться, на следующей неделе продолжу

iGeophysix 08.12.2013 09:24

Цитата:

Сообщение от Gorynch (Сообщение 279862)
Попробую в Пн подключить USB клаву, до этого беспроводные использовал

Можно эмулировать нажатие на экран и движение по экрану, но для этого приложение должно иметь системные права. В Пт не успел толком во всём этом разобраться, на следующей неделе продолжу

Ну рут права получить элементарно! уж если полезли делать комп в машину, то рутованный планшет сделаем)

Сообщения приходят от кан читалки такие:
tiiiLDDDDDDDDDDDDDDDD\n
t - буква - начало сообщения
iii - идентификатор
L - длина сообщения (0-8)
DD - байт данных. (00-FF)
\r - перевод строки

t68180440800D11FFFFFF\r - один поворот энкодера на увеличение громкости (volume +1)

Gorynch 08.12.2013 09:48

Цитата:

Сообщение от iGeophysix (Сообщение 279942)
Ну рут права получить элементарно! уж если полезли делать комп в машину, то рутованный планшет сделаем)

Не совсем правильно выразился - приложение должно быть запущено как системное, а не тоже самое как просто под рутом

iGeophysix 08.12.2013 09:50

Цитата:

Сообщение от Gorynch (Сообщение 279943)
Не совсем правильно выразился - приложение должно быть запущено как системное, а не тоже самое как просто под рутом

ааааа.... как системная служба (демон?)

Gorynch 08.12.2013 09:55

не обязательно демон, но имнно как системное. При таком раскладе приложение может обращаться к некоторым допольнительным функциям

iGeophysix 09.12.2013 08:45

Доброе утро!

Я пока что сделал скриптик на винду.
У меня есть 3 программы: Yandex Navi (Bluestacks), XBMC, DashCommand (первая попавшаяся приборка, которая более менее симпатичная)
Скрипт умеет открывать Я.Нави (саму карту, поиск и избранное), если зажать надолго кнопку - то перезапустит навигатор.
В XBMC умеет включать его и переключать треки в фоновом режиме
DashCommand - просто включает приборку.

Работает неплохо, но иногда глючит.
Первый баг - навигатор всегда глючит, когда уходит в спящий режим. Поэтому я и написал перезагрузку.
Второй баг - иногда autohotkey не отпускает кнопки. Приходится перезапускать скрипт.

Ну а в целом идея уже есть... надо теперь дописать функционал для дополнительных кнопок)

Вопрос на засыпку: а есть ли возможность переделать надписи на кнопках?
я вот хотел бы убрать например DISC/AUX и написать там VIDEO
а вместо FM/AM написать MUSIC
таким образом можно было бы избавиться от основной головы...
Хотя есть второй вариант: оставить голову и разделить функции.
Т.е. если нажата кнопка MAP - включается навигатор на компьютере/планшете
а если FM/AM - включается радио на родной голове.

Тогда вопрос: как включить проигрыватель на компе и как включить CD чейнджер на голове.

Gorynch 12.12.2013 12:09

Подключил к android USB клаву - не работают стрелки и +/-. Т.е. ни перемещения, ни масштабирования нет.
Пока не могу разобраться как эмулировать нажатие на экран. Примеры есть, но у меня не работает. Буду дальше пробовать. Правда за оперативность не обещаю.

Про надписи на кнопках - только если всю кнопку переделывать. В принципе возможно - 3D модель, 3D принтер - готово ;)

Про разделение - отключить голову от CAN шины и самостоятельно ей управлять. Сделать одну кнопку для переключения между посылками в голову и на комп.


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

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