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

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

Ответ
 
Опции темы
Старый 07.04.2015, 02:12   #1
Lexx09
Старший Пользователь
 
Регистрация: 18.04.2009
Город: Краснодар
Регион: 23, 93
Машина: Приора хэтчбек
Сообщений: 869
Lexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant future
По умолчанию iCarDS + ARC Welder + Яндекс.Навигатор

Как я уже писал ранее, в эмуляторе ARC Welder прекрасно запустился Яндекс.Навигатор. Маршруты прокладывает, звук есть. Красота! Громоздкий Bluestacks теперь вроде как и не нужен.

Но есть одно "но". На моих домашних Windows7 и Windows8.1 навигатор, да и браузеры тоже, не видят реальных GPS-координат даже с использованием драйвера виртуального сенсора местоположения (GPSDirect). Тут пишут, что приемники на чипах U-Blox могут работать, как сенсор. Но у меня, да и у большинства, наверное, обычные USB GPS-приемники. Поэтому решил исправить это недоразумение.

В Chrome есть эмуляция местоположения. На изменение этих данных навигатор реагирует. Возникла идея подсунуть туда реальные координаты, получаемые с GpsGate. Для этого пришлось править расширение "App Runtime for Chrome".

Сначала пробовал сделать аналогично инструкции "Внедрение в браузер" из самого GpsGate. Не получилось. Наткнулся на безопасность в расширениях - Content Security Policy запрещает загружать скрипты со сторонних сайтов (коим прикидывается GpsGate), также запрещено выполнение eval. Обойти эти запреты никак не получилось.

Потом сделал по другому. Использовал XHR, а вместо eval использовал парсинг json. Вуаля! Навигатор координаты увидел. Теперь Bluestacks точно не нужен.

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

Записал небольшое "домашнее" видео:
http://www.youtube.com/watch?v=UogU3Qz0YfM

На видео навигатор "мечется", т.к. координаты случайные.

---------------------------------------------------------------------------

Инструкция


Используем 64-битную операционную систему. В моем случае это Windows 7. Для редактирования текстовых, html, js и json файлов используем текстовый редактор Notepad++. Блокнотом лучше не пользоваться.


1. Установка и настройка GpsGate

Устанавливаем GpsGate Splitter последней версии.

Запускаем GPSGate.

На вкладке "Input" в выпадающем списке выбираем COM-порт, на котором "висит" GPS-приемник, нажимаем "Settings..." и указываем скорость обмена данными (Baud rate). Например, для BU-353s4 по умолчанию скорость 4800. Или же подбираем максимальную скорость перебором по наличию валидных данных. При использовании скрипта GPSSetBaudrate указываем скорость такую же, как в параметре command ini-файла.

На этой же вкладке нажимаем кнопку "Open". Картинка должна стать зеленой, и должны появиться надписи "Running OK!" и "GPS data with valid position.".

На вкладке "Output" в выпадающем списке выбираем "GPS in browser" и нажимаем кнопку "Add".

На этой же вкладке в выпадающем списке выбираем "Virtual COM port" и нажимаем кнопку "Add". Выбираем из списка номер свободного COM-порта. Этот номер порта прописываем в настройках iCarDS.

На вкладке "Advanced" нажимаем кнопку "Show more options…".

На вкладке "Input" в выпадающем списке "Retry connection to input" выбираем "On Timeout".

На этой же вкладке нажимаем кнопку "Open", через пару секунд – "Close". Это нужно, чтобы GpsGate запомнила настройки.


2. Установка эмулятора

Устанавливаем последнюю версию браузера Chrome.

В Chrome устанавливаем расширение "ARC Welder". При этом дополнительно автоматически будет скачано и установлено расширение "App Runtime for Chrome".

Идем в расширения Chrome, ставим галку "Режим разработчика". Проверяем, чтобы были установлены и включены оба расширения – "ARC Welder" и "App Runtime for Chrome", т.к. возможны глюки при установке. Если чего-то нет – повторяем установку отсутствующего расширения.

Сюда выложил файл App_Runtime_for_Chrome_47.5021.508.11.crx для переноса в авто через флешку, чтобы не тратить мобильный трафик и время. Устанавливается перетаскиванием в окно Chrome с расширениями. "ARC Welder" так не устанавливается, его необходимо устанавливать через интернет по вышеуказанной ссылке после установки "App Runtime for Chrome".

Создаем папку, в которой будут будут храниться установленные apk в виде распакованных расширений. Например, F:\ARC_Welder.

Создаем папку, которая будет являться картой памяти для эмулятора. Например, F:\sdcard.


3. Разрешение эмуляции местоположения в Chrome

Разрешение эмуляции местоположения делается однократно.

Запускаем Chrome. Нажимаем Ctrl+Shift+J ("Инструменты разработчика").

На вкладке "Emulation" в разделе "Sensors" ставим галку "Emulate geolocation coordinates":



Если панель с вкладкой "Emulation" не видна, то нажимаем кнопку "Show/hide drawer":




4. Установка Яндекс.Навигатора

Запускаем "ARC Welder" из панели запуска приложений Chrome, нажимаем кнопку "Choose", выбираем папку F:\ARC_Welder.

В "ARC Welder" нажимаем кнопку "Add your APK", выбираем apk-файл Яндекс.Навигатора v1.61. Версия 1.62 не работает в эмуляторе, поэтому ставим 1.61.

Ориентацию оставляем "Landscape", форм-фактор выбираем "Maximized".

Нажимаем кнопку "Launch App", чтобы произошла установка. Закрываем запустившийся навигатор.

В папке F:\ARC_Welder появится папка вида Яндекс.Навигатор_1.61.apk_export_LqJJJ.


4.1. Правка расширения Яндекс.Навигатор

Заходим в папку F:\ARC_Welder\Яндекс.Навигатор_1.61.apk_export_LqJ JJ и открываем файл manifest.json в текстовом редакторе (Notepad++).

В секции "permissions" исправляем:
{"fileSystem": ["write"]}
на
{"fileSystem": ["write", "retainEntries", "directory"]}

В секции "permission" в конце, после "geolocation", добавляем "http://localhost:*/*" через запятую.

В итоге секция "permissions" должна выглядеть так:



В секции "arc_metadata" исправляем:
"enableExternalDirectory": false
на
"enableExternalDirectory": true

Если при установке APK указали неверную ориентацию и/или форм-фактор, то это можно поправить – в файле manifest.json изменяем параметры:
"formFactor" – прописываем "maximized",
"orientation" – прописываем "landscape"

После правки manifest.json необходимо обновить расширение, нажав "Обновить" в расширениях Chrome:



Далее необходимо указать эмулятору местоположение папки, которая будет являться картой памяти. Запускаем навигатор (из панели запуска приложений Chrome или из расширений Chrome). В появившемся диалоговом окне выбираем папку F:\sdcard. Это диалоговое окно будет показано один раз. Если в дальнейшем необходимо будет сменить папку – то нажимаем на значок папки в левом верхнем углу тулбара навигатора.

Закрываем запустившийся навигатор.


4.2. Перенос кешированных карт

Открываем папку F:\sdcard\Android\data\ru.yandex.yandexnavi\files\ cache. Переименовываем свои файлы кешированных карт так, чтобы они совпадали с теми, что уже есть в папке. Удаляем файлы в папке, копируем туда свои файлы.

Примечание: файлы в папке могут быть такие – icons-ru_-2.00.sqlite, regions-ru_-2.00.sqlite, tiles-ru_-2.00.sqlite, или такие – icons-ru_RU-2.00.sqlite, regions-ru_RU-2.00.sqlite, tiles-ru_RU-2.00.sqlite.


4.3. Перенос избранного

Избранное хранится в одном из файлов в папке расширения. Файл имеет в начале сигнатуру "FGUI". Расположение и имя файла случайное при каждой установке.

Т.е. надо перебрать все файлы в папке File System расширения Yandex.Navigator, найти тот, который начинается с сигнатуры "FGUI", и заменить его своим.

Для облегчения поиска файла написал скрипт FindFavourites.exe.

Запускаем скрипт, вводим ID расширения Yandex.Navigator (смотрим в расширениях Chrome):



Нажимаем кнопку "OK".

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

Файл избранного создается навигатором непонятно в какой момент времени. Если скрипт не нашел файл избранного, то надо еще раз запустить навигатор, зайти в избранное.

В моем случае сигнатура "FGUI" нашлась в файле …\p\03\00000370.

Удаляем этот файл. Копируем в эту папку свой файл избранного (favourites), переименовываем его в 00000370.


5. Правка расширения "App Runtime for Chrome"

Идем в папку %LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions\mfaihdlpglflfgpfjcifdjdjcc kigekc. Можно скопировать эту строку и вставить в проводник, убрав пробел перед kigekc (форум сам их вставляет).

Заходим в подпапку с номером версии.

Копируем в нее файл getGPS.min.js из архива getGPS.min.rar

В этой же папке открываем файл gen_index.min.html в текстовом редакторе (Notepad++).

Сразу после кода:
<script src="gen_index.min.js"></script>
вставляем:
<script src="getGPS.min.js"></script>



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

При первом запуске навигатора появится окно GpsGate с запросом на разрешение доступа веб-страницы к GPS-координатам. В нем необходимо разрешить доступ навсегда, нажав кнопку "Yes, always":




6. Избавление от верхнего тулбара в навигаторе

Идем в папку %LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions\mfaihdlpglflfgpfjcifdjdjcc kigekc. Можно скопировать эту строку и вставить в проводник, убрав пробел перед kigekc (форум сам их вставляет).

Заходим в подпапку с номером версии.

Копируем в нее файл getGPS.min.js из архива getGPS.min.2.rar с перезаписью.

Открываем файл gen_index.min.js в текстовом редакторе (Notepad++).

Сразу после кода:
this.previousZoom_=c;
вставляем:
b+=_TOPBAR_HEIGHT;d.height+=_TOPBAR_HEIGHT;




7. Инсталлятор

Инсталлятор (InstallYandexNavigator.rar) состоит из двух исполняемых файлов - Install.exe и CopyCahe.exe.

Инсталлятор делает то, что прописано в пунктах 4.1, 4.2, 4.3, 5 и 6 данной инструкции.

Install.exe делает следующее:
  • Копирует файл getGPS.min.js
  • Правит файл gen_index.min.html
  • Правит файл gen_index.min.js
  • Правит файл manifest.json расширения Yandex.Navigator
  • Копирует файл избранного, если есть

Рядом с Install.exe обязательно должен быть файл getGPS.min.js.

Если есть избранное, то этот файл должен быть рядом с Install.exe под именем favourites.

Все пути, файлы и идентификаторы будут определены автоматически.

Файл избранного создается навигатором не сразу, а в непонятно какой момент времени. Если после запуска Install.exe файл избранного не скопировался, то надо запустить навигатор, подвигать карту, зайти в избранное, выйти, закрыть навигатор. После этого опять запустить Install.exe. Возможно, придется так сделать несколько раз.



CopyCahe.exe копирует файлы кешированных карт в папку карты памяти. При этом файлы будут автоматически переименованы, чтобы совпадать с теми, что уже есть в папке карты памяти.



Порядок установки
  1. Устанавливаем Яндекс.Навигатор с помощью "ARC Welder" (п. 4 данной инструкции без подпунктов).
  2. Запускаем Install.exe.
  3. После окончания работы инсталлятора и вывода результата - обновляем расширение Yandex.Navigator.
  4. Запускаем Яндекс.Навигатор, выбираем папку, которая будет являться картой памяти. Например, F:\sdcard.
  5. Немного двигаем карту.
  6. Закрываем навигатор.
  7. Копируем свои файлы кешированных карт в папку cache рядом с CopyCahe.exe.
  8. Запускаем CopyCahe.exe.

8. Встраивание в iCarDS
  • Шаблон: FSReal
  • Имя программы: Яндекс.Навигатор
  • Имя окна программы: Yandex.Navigator
  • Путь к файлу программы: C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
  • Параметры командной строки: --profile-directory=Default --app-id=kcggmonbnhhhlpaccnemioakhgnbjfie, где kcggmonbnhhhlpaccnemioakhgnbjfie – это ID приложения Yandex.Navigator
  • Захват: Да
  • Наложение: Да
  • X: 200
  • Y: 0


Есть проблемка – iCarDS не реагирует на закрытие навигатора крестиком в тулбаре самого навигатора. Поэтому закрывать надо с помощью самого iCarDS.

Для скрытия указателя мыши в навигаторе используем файлы из архива HideCursor2.rar из темы "Очередной скрыватель указателя мышки".
Вложения
Тип файла: rar getGPS.min.rar (690 байт, 145 просмотров)
Тип файла: rar FindFavourites.rar (375.9 Кб, 121 просмотров)
Тип файла: rar getGPS.min.2.rar (785 байт, 124 просмотров)
Тип файла: rar InstallYandexNavigator.rar (776.9 Кб, 142 просмотров)
__________________
Приора хэтчбек
ASRock B75M-ITX, Intel Pentium G640T Sandy Bridge 2x2.4GHz, DDR3 2x2Gb, SSD SmartBuy Ignition 64GB SATAIII, Win7 Ultimate x86, M2-ITX rev.2F, GPS VK-172 10Hz, Logitech Wireless Touch Keyboard K400r, ИК-пульт Prology RCD-350, круиз-контроль...

Последний раз редактировалось Lexx09; 26.12.2015 в 11:46. Причина: Обновил ссылку на App Runtime for Chrome
Lexx09 вне форума   Ответить с цитированием
Старый 07.04.2015, 07:54   #2
sirota
Бывалый писикарщик
 
Аватар для sirota
 
Регистрация: 27.09.2008
Город: Собянинск
Регион: 77, 97, 99, 177
Машина: шкода а5
Сообщений: 5,315
sirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant future
По умолчанию

Молодца..,,ждем с нетерпением инструкцй.
__________________
То win 10х64, то win 8.1x64

Видео регистрация на web. камеру:http://www.youtube.com/watch?v=1hPPLRBBIqc
sirota вне форума   Ответить с цитированием
Старый 07.04.2015, 07:59   #3
prostomiha
Пользователь
 
Регистрация: 28.07.2009
Возраст: 45
Регион: 77, 97, 99, 177
Сообщений: 38
prostomiha is on a distinguished road
По умолчанию

А на сколько у тебя ARC Welder грузит систему ? У меня на i3 до 100 процентов...win 8.1 Пардон, вру-пробовал на домашнем там 7/64
prostomiha вне форума   Ответить с цитированием
Старый 07.04.2015, 09:23   #4
sirota
Бывалый писикарщик
 
Аватар для sirota
 
Регистрация: 27.09.2008
Город: Собянинск
Регион: 77, 97, 99, 177
Машина: шкода а5
Сообщений: 5,315
sirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant future
По умолчанию

Lexx09


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

__________________
То win 10х64, то win 8.1x64

Видео регистрация на web. камеру:http://www.youtube.com/watch?v=1hPPLRBBIqc
sirota вне форума   Ответить с цитированием
Старый 07.04.2015, 12:31   #5
Lexx09
Старший Пользователь
 
Регистрация: 18.04.2009
Город: Краснодар
Регион: 23, 93
Машина: Приора хэтчбек
Сообщений: 869
Lexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant future
По умолчанию

Цитата:
Сообщение от prostomiha Посмотреть сообщение
А на сколько у тебя ARC Welder грузит систему ? У меня на i3 до 100 процентов...win 8.1 Пардон, вру-пробовал на домашнем там 7/64
Вечером дома посмотрю, но вроде все шустро работает.

Цитата:
Сообщение от sirota Посмотреть сообщение
А с помощью GnssDataInterface этой проги, можно будет отправять данные на яд. навигатор по твоей системе через гугл.
Если посмотреть то местополржение пказывает и строчка с какими то данными бежит.
Если в GnssDataInterface нет трансляции в сеть (а, судя по скриншоту, ее нет), то напрямую нельзя. Можно через GpsGate. Вообще, моя идея и реализация аналогична GPSBridge - получение координат по сети от GpsGate и эмуляция местоположения с помощью них.

PS: Почему-то Яндекс.Навигатор v1.62 не работает в эмуляторе. v1.61 - работает.
PPS: Хм, в Chrome можно работать с COM-портами напрямую. Так и GpsGate станет не нужен...
__________________
Приора хэтчбек
ASRock B75M-ITX, Intel Pentium G640T Sandy Bridge 2x2.4GHz, DDR3 2x2Gb, SSD SmartBuy Ignition 64GB SATAIII, Win7 Ultimate x86, M2-ITX rev.2F, GPS VK-172 10Hz, Logitech Wireless Touch Keyboard K400r, ИК-пульт Prology RCD-350, круиз-контроль...
Lexx09 вне форума   Ответить с цитированием
Старый 07.04.2015, 13:45   #6
prostomiha
Пользователь
 
Регистрация: 28.07.2009
Возраст: 45
Регион: 77, 97, 99, 177
Сообщений: 38
prostomiha is on a distinguished road
По умолчанию

А откуда в этом эмуляторе программы будут кеш карт брать?На 4pda че-то ветка совсем короткая и тоже вопрос про игры с кешем.В описании говорится про указании временной папки... т.е.только онлайн,без предварительно загруженных катрт?Тогда трафик будет огого...
prostomiha вне форума   Ответить с цитированием
Старый 07.04.2015, 22:18   #7
Lexx09
Старший Пользователь
 
Регистрация: 18.04.2009
Город: Краснодар
Регион: 23, 93
Машина: Приора хэтчбек
Сообщений: 869
Lexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant future
По умолчанию

Цитата:
Сообщение от prostomiha Посмотреть сообщение
А на сколько у тебя ARC Welder грузит систему ? У меня на i3 до 100 процентов...win 8.1 Пардон, вру-пробовал на домашнем там 7/64
У меня на Window7 x64 процесс nacl64.exe грузит i5-3570 максимум на 48%.

Цитата:
Сообщение от prostomiha Посмотреть сообщение
А откуда в этом эмуляторе программы будут кеш карт брать?На 4pda че-то ветка совсем короткая и тоже вопрос про игры с кешем.В описании говорится про указании временной папки... т.е.только онлайн,без предварительно загруженных катрт?Тогда трафик будет огого...
С этим проблем вроде как нет. Разрешаем ExternalDirectory, выбираем папку Windows - она и будет являться sdcard.

__________________
Приора хэтчбек
ASRock B75M-ITX, Intel Pentium G640T Sandy Bridge 2x2.4GHz, DDR3 2x2Gb, SSD SmartBuy Ignition 64GB SATAIII, Win7 Ultimate x86, M2-ITX rev.2F, GPS VK-172 10Hz, Logitech Wireless Touch Keyboard K400r, ИК-пульт Prology RCD-350, круиз-контроль...
Lexx09 вне форума   Ответить с цитированием
Старый 07.04.2015, 22:23   #8
sirota
Бывалый писикарщик
 
Аватар для sirota
 
Регистрация: 27.09.2008
Город: Собянинск
Регион: 77, 97, 99, 177
Машина: шкода а5
Сообщений: 5,315
sirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant futuresirota has a brilliant future
По умолчанию

Lexx09

Давай инструкцию и файлы....пора уже тэстить.
__________________
То win 10х64, то win 8.1x64

Видео регистрация на web. камеру:http://www.youtube.com/watch?v=1hPPLRBBIqc
sirota вне форума   Ответить с цитированием
Старый 07.04.2015, 22:44   #9
Lexx09
Старший Пользователь
 
Регистрация: 18.04.2009
Город: Краснодар
Регион: 23, 93
Машина: Приора хэтчбек
Сообщений: 869
Lexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant futureLexx09 has a brilliant future
По умолчанию

Да погоди! Дай самому разобраться.
__________________
Приора хэтчбек
ASRock B75M-ITX, Intel Pentium G640T Sandy Bridge 2x2.4GHz, DDR3 2x2Gb, SSD SmartBuy Ignition 64GB SATAIII, Win7 Ultimate x86, M2-ITX rev.2F, GPS VK-172 10Hz, Logitech Wireless Touch Keyboard K400r, ИК-пульт Prology RCD-350, круиз-контроль...
Lexx09 вне форума   Ответить с цитированием
Старый 07.04.2015, 22:51   #10
VintXP
Старший Пользователь
 
Регистрация: 05.08.2012
Город: Екатеринбург
Регион: 66, 96
Машина: Nissan Almera N16 LUX
Сообщений: 148
VintXP will become famous soon enough
По умолчанию

Navitel не пробовали на этом эмуляторе?
VintXP вне форума   Ответить с цитированием
Ответ


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

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

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



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


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