Стас Корниенко (stkorn) wrote,
Стас Корниенко
stkorn

Category:

Делаем из GPS-навигатора КПК

   Вот как раньше всё правильно было: захотел купить, например, пылесос -
пошёл в магазин и там тебе консультант рассказывает всё про пылесосы....

   А сейчас: захотел купить пылесос - залез в сеть, прочитал всё про
пылесосы вплоть до того каких больше коты боятся, пришёл в магазин и
стоишь объясняешь консультанту про пылесосы, а он стоит и офигевает от
твоих познаний...



   0. Введение

   Все вы уже наверняка сталкивались с GPS-навигаторами. Так вот, прежде чем отважиться на покупку этого девайса - запомните: не все gps-навигаторы одинаковы полезны!

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

   Вот и сейчас с завидным постоянством находятся люди, которые приходят в "Эльдорадо", подзывают продавца, и говорят: "мне нужен gps-навигатор". И выходят они из этого магазина с откровенной хуйнёй, купленной за огромные деньги.

   Например, недавно товарищи таким вот образом купили навороченный Pioneer Avic S2 за 10.000 рублей с функциями:
•  адаптера громкой связи Bluetooth для сотового телефона
•  MP3-плеера
•  мультимедийного просмотра фотографий

   Короче, все функции, кроме одной единственной - навигации. Подумаешь, какая мелочь..

•  Потому что не пришло в голову товарищам при покупке навигатора задать продавцу один единственный вопрос: "А карта нашего города там есть?"

•  Потому что не приходит в голову сраной фирме iGo, что Россия - это не только Москва и Питер - но ещё и дофига разных мелких городов, типа Липецка, Воронежа, Саратова, Орла и Урюпинска, и т.д.

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


   1. Сравнительный анализ навигационных систем

   Между тем, были бы мои товарищи в теме - купили бы Garmin Nuvi 205 за 8.000 руб - для которого есть карты 63 регионов России, все областные центры нанесены минимум - с названиями улиц, а половина - с контурами и нумерацией домов.


   Но нет, полки магазинов у нас завалены всяческими TomTom, Nec, Pioneer, и кучей noname китайских поделок, типа MIO, Orion или Shivaki. Встречаются и вовсе загадочные девайсы с единственной надписью "GPS" на морде.

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



   Вот краткий сравнительный анализ покрытия карт навигации на 01.03.2009:

Навигационная система Производитель карт Количество регионов России с детальным покрытием Количество областных центров с домами
Garmin Навиком 63 38
Навител Навигатор Навител 34 27
iGo 2006 teleAtlas 26 9
Автоспутник teleAtlas 26 9
City Guide Геоцентр-Консалтинг 32 6
JJ-connect +
Автоспутник
JJ-Group
"Мегаполис"
16 -
TomTom TomTom 2 -
iGo 8 карт России нет - -


   Не текущий момент по картографическому покрытию безусловно лидирует Garmin, на втором месте - Навител. Остальные системы навигации подойдут, пожалуй, лишь тем, кто предпочитает не выезжать на своём автомобиле за пределы МКАДа.


   3. Виды GPS-навигаторов

•  Если вам достался навигатор Garmin - радуйтесь: вы можете купить (или скачать ;) свежие карты - и ездить по ним.

•  Если у вас КПК под Windows Mobile или Palm OS, или интеллектуальный телефон под Symbian'ом - тоже не проблема: скачайте Garmin Mobile XT, разлочьте, залейте карты - и получите полноценный Garmin.

•  Но что делать если у вас уже есть некий аппаратный навигатор с совершенно не устраивающим вас программным обеспечением?


   4. Что такое PNA?

   Глобализация и лень производителей даёт очевидные преимущества. Сейчас на рынке появилось огромное количество устройств PNA (Personal Navigation Assistant) - на базе.. Windows CE! Все Pioneer'ы, MIO, JJ-Connect'ы - это именно такие устройства.

   Краткая теория, чтобы вы понимали о чём речь. Фактически, такое устройство представляет собой миниатюрный компьютер, с миниатюрной виндой, управляемый вместо мышки сенсорным дисплеем. Правда, производитель предпринял все меры, чтобы вы об этом никогда не догадались: вместо виндовой заставки обычно заставка производителя, вместо рабочего стола - специальная программа, ограничивающая пользователя рабочим меню устройства с собственными функциями навигации и настроек системы.

•  ПЛЮС - в том, что обойдя оболочку производителя, и получив доступ к винде - мы можем установить на девайсе кучу нужного и оригинального софта, и вообще использовать его как полноценный КПК. Умельцы сообщают о фактах установки на автомобильные навигаторы различных игр, книгочиталок, видеоплееров и даже офисных приложений.

•  МИНУС - это кпк, и кпк под виндой. А винда, как известно, умеет глючить, и иногда даже сваливаться. Хоть WinCE и заявляется как операционная система с повышенной устойчивостью - неосторожные действия пользователя при общении напрямую с виндой могут превратить ваш pna в безответный бесполезный девайс.


   5. Установочные файлы

   Некоторые умные производители (например Pioneer) ставят на кпк две флешки - рабочую и резервную - всегда доступную только для чтения, и дают возможность производить так называемый "холодный reset" - когда содержимое рабочей флеш картой с установленной виндой и программным обеспечением затирается содержимом резервной флешки. С одной стороны это надёжно - привести такой кпк в нерабочее состояние довольно проблематично. С другой - не очень удобно: весь установленный вами софт может быть уничтожен одним нажатием ручки и заменён на стандартную заводскую систему.

   Выкручиваются из этой ситуации довольно просто: в корень внешней SD-карточки кладётся стандартный файл autorunce.exe, который запускается автоматом после холодного reset'а и обнаружения карточки, и устанавливает весь необходимый софт из файла mnavdce.cab.

   На этом следует остановится подробнее. Cab - это определённый формат установочных пакетов, применяемых на WinCE. Создавать собственные cab-файлы и редактировать существующие можно с помощью замечательно (правда, платной) утилиты Win CE CAB Manager. Лекарство к которой легко ищется в интернете.

   Утилита позволяет формировать установочные пакеты со следующими действиями:
•  Размещение файлов в системных каталогах устройства и на флеш-носителях
•  Создание ярлыков на рабочем столе и в меню Пуск
•  Создание записей в реестре системы

   Да, да, не удивляйтесь: на вашем навигаторе тоже есть реестр. К счастью, существенно меньший, чем на полноценном Windows XP.


   6. Утилиты

   Жизнь была бы не так интересна, если бы под WinCE не было кучи полезных системных утилит от разных производителей:

   Нам понадобятся:

•  regedit - миниатюрный редактор реестра
•  cecmd.exe - Total Commander под WinCE
•  jotkbd.exe - эмулятор клавиатуры
•  movewindow.exe - для сдвига назойливых окон
•  resinfo.exe - для получения информации о системе
•  port splitter.exe - замечательнейшая утилита для расшаривания gps-модулей между несколькими приложениями (о ней мы поговорим позже)
•  MortScript.exe - язык для создания простеньких скриптов под WinCE. Аналог .bat файлов для DOS, только более продвинутый.

   Скачать набор наиболее часто используемых утилит WinCE можно отсюда: utils.zip. Рекомендую скачать и распаковать в отдельный каталог на SD-карте - они нам ещё пригодятся.

   7. Влазим внутрь

   Итак, перед нами лежит выключенный pna со стандартной менюшкой. Обычно там есть команды "Навигация", "Приложения" и "Настройки". При нажатии на кнопку Навигация запускается некая сторонняя софтина, например:

•  Автоспутник на JJ-Connect'е
•  Навител Навигатор на Shivaki
•  iGo на Pioneer'е.

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

•  1 вариант: замена навигационной программы на другую
•  2 вариант: замена стандартного меню на собственное настраиваемое
•  3 вариант: отмена всех программных оболочек и запуск рабочего стола

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

   Если вы всё же хотите разлочить свой pna до уровня кпк - читайте соответствующие темы на форуме. И прежде чем заниматься этим, особое внимание уделите теме "Как не убить собственный навигатор".

   Особенно это актуально тем, у кого навигатор с одной единственной флешкой, а дырочка "reset" с боку устройства выполняет не полноценное восстановление ОС и всех установленных программ - а всего лишь обычную перезагрузку. Заметьте, таких моделей навигаторов БОЛЬШИНСТВО.

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


   8. Начинаем разлочку

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

   Первый и второй варианты разлочки сводятся обычно к замене exe-шника навигационной программы или стартового меню на нужное приложение (для чайников подробное объяснение здесь).

   Вы-первых, надо понять, как устройство подключается к компьютеру. Внешнюю SD-карточку устройства всегда можно засунуть в карт-ридер, а само устройство обычно подключается usb-шнурком. Тут есть два варианта: либо оно напрямую видится в системе как дисковый накопитель, либо для того, чтобы обмениваться с устройством файлами вам придётся установить Microsoft ActiveSync.

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

   Например:
•  \SDMMC\Navitel\Navitel.exe
•  \SDMMC\MobileNavigator\MobileNavigator.exe

   Первое, что я обычно делаю - переименовываю старый exe-шник - например, дописывая к имени символ "1": MobileNavigator1.exe.  А на его место кладём уже знакомый на cecmd.exe, названный оригинальным именем: MobileNavigator.exe.

   По-человечески отключаем навигатор от компьютера, перегружаем, дожидаемся появления меню, и выбираем пункт "Навигация". Если всё сделано правильно - вместо навигационной программы перед вами появится файловый менеджер Total Commander для WinCE.


   9. Исследуем устройство

   Теперь, когда вы полчили доступ к файловому менеджеру - много становится возможным. Для начала запускаем утилиту resinfo.exe - для того чтобы получше идентифицировать устройство. В открывшемся окне переходим на закладку System. Здесь можно узнать:

•  версию установленной на вашем девайсе операционки - WinCE 5.00.0
•  тип процессора - ARM926T
•  размеры экрана - 320x240 пикселей
•  кодовый идентификатор системы - MALATA_GPS

   Что нам это даёт? Во-первых, можно поискать информацию в сети не только по имени прибора, зачастую яндексу с гуглом неизвестному - но и по кодовому идентификатору системы. Случается что приборы, продаваемые под различными торговыми марками, внутри полностью идентичны.

   Вы-вторых - теперь мы знаем под какую версию ОС, процессор и разрешение экрана следует искать софт.

   Хотите получить из навигатора полноценный кпк? Зайдите в папку \WINDOWS и запустите explorer.exe. Затем воспользуйтесь утилитой TaskbarShow.exe из комплекта Utils.zip. И вот перед вами полноценный КПК, с меню Пуск и Панелью задач.


   10. Знакомимся с Garmin Mobile XT

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

   В нашем более простом случае - это должна быть навигационная система на базе программы Garmin Mobile XT - позволяющей работать с картами Garmin. Основная проблема заключается в том, что официальные версии этой программы выпущены под Windows Mobile, Symbian и Palm - но только не под WinCE.

   Если ещё год лет назад назад эта проблема была неразрешима - то сейчас умельцы выпустили уже несколько пакетов Garmin Mobile XT под WinCE. Это стало возможным вследствии того, что ядра систем WinCE и Windows Mobile во многом идентичны.

   Вот ссылки на эти пакеты:
•  GarminMobXTWinCE.zip
•  GarminMobileXTforWindowsCE_50010w.rar
•  GarminMobileXTforWindowsCE_50020w.7z

   Сложно сказать, какой именно пакет подойдёт к вашей системе. Если у вас версия WinCE 5.00.20 - рекомендую начать с GarminMobileXTforWindowsCE_50020w.7z, если ниже - с GarminMobileXTforWindowsCE_50010w.rar  В сети можно найти также множество других сборок, в том числе и под разлочку конкретных устройств.


   11. Скрипт для запуска Garmin

   Чтобы запустить Garmin Mobile XT на WinCE недостаточно вызвать Que.exe. Сборки хороши тем, что в них уже встроен скрипт на языке MortScript для запуска приложения. Обычно этот скрипт называется Garmin.mscr и содержит следующие действия:

•  1) Проверка: если Garmin Mobile XT уже запущено - то просто активируем её окно:
If(WndExists("Garmin Mobile XT"))
	Show("Garmin Mobile XT")
	Exit
EndIf

•  2) Запускаем explorer.exe (если он до сих пор не запущен). Если ваш GMXT вываливается с ошибкой "Read access violation at data address 0xFFFFFFFC" - значит скорее всего у вас не запущен explorer.exe, а garmin'у он нужен:
If(not ProcExists("explorer.exe"))
	Run("\windows\explorer.exe")
	Sleep(400)
EndIf

•  3) Не смотря на то, что explorer.exe для работы garmin'а нужен, панель задач будет только мешаться и заслонять его окно. Чтобы избавиться от неё воспользуемся утилитой TaskbarHide.exe из того же Utils.zip:
Run(SystemPath("ScriptPath")\"TaskbarHide.exe")
Sleep(500)
Run(SystemPath("ScriptPath")\"TaskbarHide.exe")

•  4) Копируем настройки GMXT с SD-карты на внутреннюю флешку устройства. Если не сохранять настройки на SD-карте - программа будет каждый раз забывать их, запускаясь с настройками по-умолчанию.
XCopy(SystemPath("ScriptPath")\"Settings\*.*", "\Garmin", TRUE)

•  5) Запускаем Garmin Mobile XT и дожидаемся завершения его работы:
RunWait(SystemPath("ScriptPath")\"..\Apps\WM\que.exe")

•  6) После завершения работы приложения - забираем его настройки обратно на SD-карту:
XCopy("\Garmin\*.*", SystemPath("ScriptPath")\"Settings", TRUE)

•  7) Возвращаем панель задач на место. В противном случае при следующем запуске explorer'а её не будет видно:
Run(SystemPath("ScriptPath")\"TaskbarShow.exe")

•  8) Отстреливаем explorer.exe - обычно навигатору он без надобности:
If(ProcExists("explorer.exe"))
	Kill("explorer.exe")
EndIf

   Вот такой вот скрипт получился. Запускаем, пробуем. Если при запуске получаем сообщение "'ProcExist' requires toolhelp.dll" - добавляем в каталог со скриптов библиотеку toolhelp.dll из пакета Utils.zip.


   12. Разлочиваем Garmin Mobile XT

     
   При первом запуске GMXT вас обрадует сообщение: мол, дескать - купи меня! Смело отправляем хитрую программу куда подальше с такими идеями - выбирая пункт меню "Соединение с Garmin GPS". Если вы не видите на экране этого пункта, и последняя команда у вас "Ключ продукта" - значит программа неправильно определила размеры экрана устройства.

   Выслушав, что без GPS-приёмника производства Garmin программа работать не будет - выбираем язык и попадаем в основное меню программы. Если вы видите эту картинку - 3/4 вашего тяжкого пути уже пройдено. Заходим в меню "Настройки" -> "О системе", и переписываем на бумажку ID карты памяти (обычно состоящий из 10 цифр).

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

   В строке Unit ID вводим ID карты памяти. В строке Software Product - выбираем Garmin Mobile XT. Нажимаем верхнюю кнопку Generate. Получится серийник для разлочки Garmin Mobile XT под сторонние (не Garmin) GPS-приёмники. На мобильном устройстве, в папке Garmin создаём текстовый файл sw.unl Записываем в него единственную строчку - с получившимся серийным номером - хотя бы с помощью редактора "Блокнот".

   Продолжаем работать с генератором ключей. В строке Map Product указываем . Появится диалоговое окно. Для набора карт "Дороги России версии 5.xx" вводим FID=1280, нажимаем OK. Нажимаем нижнюю кнопку Generate. Получаем серийник для разлочки карт "Дороги России" на данном устройстве. На мобильном устройстве, в папке Garmin создаём текстовый файл gmapsupp.unl   Записываем в него единственную строчку - с получившимся серийным номером - хотя бы с помощью редактора "Блокнот".

   Если всё сделано правильно, программа разлочена.


   13. Устанавливаем карты

   Устанавливаем базовую карту мира для Garmin Mobile XT. Для этого скачиваем с официального сайта garmin файлик GarminMobileXTFreeBasemap_4xxxx.exe. Запускаем установку, программа находит карту памяти в картридере, и сама предлагает установиться туда.

   Если ваша сборка GMXT под WinCE не включала в себя голосовые файлы Garmin Mobile XT (посмотреть их наличие можно в папке Voice) - скачиваем с официального сайта GarminMobileXTSupportFiles_4xxxx.exe. Аналогичным образом запускаем установку, программа находит карту памяти нашего мобильного устройства, и сама предлагает установиться туда.

   Добываем из интернета карту "Дороги России 5.11" Она должна представлять собой .img файл размером около 490 Мб. Если добыить неоткуда - выдираем из официального дистрибутива map_updater_5_11.exe, который пока ещё можно скачать с сайта Garmin совершенно свободно. В процессе установки программа распаковывает во временный каталог файл gmapsupp.img, который можно оттуда забрать - как только появится первое диалоговое окно с просьбой подключить обновляемое устройство к компьютеру. Сразу оговорюсь, что для версий 5.12 и 5.13 такой вариант уже не прокатывает.

   Вытащенный файл gmapsupp.img версии 5.11 кладём в отдельную папку, и запускаем пакет GMapTool, который можно скачать отсюда:
•  В список файлов добавляем наш gmapsupp.img.
•  Переходим на закладку Write ставим галочку Insert unlock code
•  и вводим в поле код из файла gmapsupp.unl.
•  Жмём write all и проверяем, что в логах нет ошибок.
•  Копируем исправленный gmapsupp.img в папку Garmin карты памяти устройства.

   Запускаем map_updater_5_12.exe и обновляем карты до версии 5.12, затем map_updater_5_13.exe - до версии 5.13.

   Процесс установки карт завершён. По-человечески вынимаем флешку из картридера, вставляем в устройство и запускаем Garmin.


   14. Если garmin не видит gps-приёмника

   На многих pna-приборах возможна ситуация, когда правильно разлоченная GMXT уже не предлагает зарегистрироваться - но всё равно упорно не видит GPS-приёмник. Это вызвано тем, что виртуальный COM-порт, через который подключен к WinCE встроенный GPS-приёмник уже занят каким-то другим штатным приложением. Для выхода из подобной ситуации создана программа Port Splitter, о которой говорилось ранее.

   Она предназначена для "расшаривания" одного COM-порт, на котором работает GPS-приёмник между несколькими приложениями - путём трансляции с него данных на виртуальные COM-порты: COM1..COM9. Файл Port Splitter.exe нужно поместить в ту же папку, где лежит скрипт для запуска GMXT - garmin.mscr.

   Существует два варианта работы программы Port Splitter:
•  включительно по версию 1.20 программа хранит свои настройки в реестре
•  версия 1.30 сохраняет настройки в файле settings.dat (который почему-то всегда датирован 01.01.2007)

   Рекомендуется использовать наиболее свежую версию программы. Старая 1.20, работавшая на Voxtel'е на Shivaki почему-то не видела ни одного COM-порта.

   Запускаем Port Splitter - должно появиться окно программы. Выбираем входящий порт, на котором висит встроенный GPS-приёмник устройства. Обычно это COM7. Устанавливаем скорость обмена данными - обычно это 9600 бод. Скорость и номер вашего COM-порта можно узнать, запустив старую навигационную программу и заглянув в её настройки.

  Добавляем в список исходящих портов хотя бы один порт, на который будем раздавать сигналы с устройства. Допустим, это будет COM0. Обязательно устанавливаем галочку "Автозапуск". Нажимаем "Старт", затем "ОК" в заголовке окна. Окно должно исчезнуть.

   Запускаем GMXT и убеждаемся, что GPS-приёмник найден. Если вы находитесь в помещении - не ждите, что будут найдены спутники. Но приёмник программа должна распознать, и начать процесс поиска спутников.

   Снова запускаем Port Splitter.exe. Нажимаем "Стоп", затем "Exit". Внимательно смотрим в каталог, где располагалась программа - там должен появиться файл Settings.dat. Копируем его под именем Settings.bak. Это делается для того, чтобы если по какой-то причине настройки порт-сплиттера слетят - при следующем запуске восстановить их из резервного файла.

   Для того, чтобы автоматизировать этот процесс - добавляем в garmin.mscr между 3) и 4) пунктами - следующие строки:
Copy(SystemPath("ScriptPath")\"Settings.bak", SystemPath("ScriptPath")\"Settings.dat", TRUE)
If(not ProcExists("Port Splitter.exe"))
	Run(SystemPath("ScriptPath")\"Port Splitter.exe")
	Sleep(500)
EndIf


   15. Последние штрихи

   Проверяем, что при запуске скрипта garmin.mscr - запускается GMXT, которая видит спутники, определяет текущие координаты (на открытом воздухе) и нормально показывает детальные карты.

   Для этого заходим в меню "Куда" -> "Адрес" -> Липецк (или любой другой областной центр), ул.Ленина, д.1. После того, как программа нашла наш дом, или по крайней предложила дома с похожими номерами - нажимаем кнопку "На карте". Максимально приближаемся, и убеждаемся что контуры домов видны.

   Теперь нужно сделать так, чтобы по кнопке "Навигации" у нас запускался не cecmd.exe - а GMXT. Воспользуемся пакетом runme.zip, состоящим из трёх файлов:
•  runme.mscr - произвольного скрипта на языке MortScript
•  MortScript.exe - интерпретатора языка MortScript
•  runme.exe - программы, единственная задача которой - запустить скрипт, имя которого совпадает с именем .exe-файла.

   Ищем, как называется и где находится exe-файл, который отвечает за систему навигации (его мы подменяли в разделе 8). Например, если он называется Navitel.exe и лежит в папке Navitel SD-карты - переименовываем runme.exe и runme.mscr в Navitel.exe и Navitel.mscr соответственно, и кладём их в ту же папку на карте.

   Редактируем Navitel.mscr:
Errorlevel("warn")
RunWait(SystemPath("ScriptPath")\"..\Garmin\RunGMXT\Garmin.mscr")

   Ставим флешку обратно в устройство, перегружаем, и пробуем: при нажатии кнопки "Навигация" должен запуститься GMXT.


   16. Заключение

   Не получилось? Внимательно выполняем по шагам всё сначала. Курим форум до чувства полного просветления. Аффтар уже ставил GMXT на Pioneer, на Voxtel и на Shivaki - и со всей ответственностью заявляет: универсальных способов разлочки, которые бы без единого изменения изменения подходили к каждому девайсу - НЕ СУЩЕСТВУЕТ!

   Получилось? Говорим Спасибо аффтару :)

   В качестве примера - пакет для разлочки навигатора Shivaki (естественно, без карт) - можно скачать здесь (43 Мб).

   С нетерпением жду, когда наконец я смогу поставить Garmin Mobile XT на свой пылесос и подключить к "живому журналу" свою микроволновку..
 
Tags: Навигация Garmin
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 82 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →