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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2015, 02:12   #1
Lexx09
Старший Пользователь
 
Регистрация: 18.04.2009
Город: Краснодар
Регион: 23, 93
Машина: Приора хэтчбек
Сообщений: 979
Lexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud of
По умолчанию 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 байт, 654 просмотров)
Тип файла: rar FindFavourites.rar (375.9 Кб, 649 просмотров)
Тип файла: rar getGPS.min.2.rar (785 байт, 616 просмотров)
Тип файла: rar InstallYandexNavigator.rar (776.9 Кб, 665 просмотров)
__________________
Приора хэтчбек
Win7 x64 Pro, Intel Core i3-3240 Ivy Bridge 2x3.4GHz HT, DDR3 2x4Gb, SSD SiliconPower Ace A55 128GB SATAIII, ASRock B75M-ITX, M2-ITX rev.2F, GPS Beitian BN-808, 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,443
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
Возраст: 51
Регион: 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,443
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
Машина: Приора хэтчбек
Сообщений: 979
Lexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud of
По умолчанию

Цитата:
Сообщение от 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 станет не нужен...
__________________
Приора хэтчбек
Win7 x64 Pro, Intel Core i3-3240 Ivy Bridge 2x3.4GHz HT, DDR3 2x4Gb, SSD SiliconPower Ace A55 128GB SATAIII, ASRock B75M-ITX, M2-ITX rev.2F, GPS Beitian BN-808, Logitech Wireless Touch Keyboard K400r, ИК-пульт Prology RCD-350, круиз-контроль...
Lexx09 вне форума   Ответить с цитированием
Старый 07.04.2015, 13:45   #6
prostomiha
Пользователь
 
Регистрация: 28.07.2009
Возраст: 51
Регион: 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
Машина: Приора хэтчбек
Сообщений: 979
Lexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud of
По умолчанию

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

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

__________________
Приора хэтчбек
Win7 x64 Pro, Intel Core i3-3240 Ivy Bridge 2x3.4GHz HT, DDR3 2x4Gb, SSD SiliconPower Ace A55 128GB SATAIII, ASRock B75M-ITX, M2-ITX rev.2F, GPS Beitian BN-808, 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,443
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
Машина: Приора хэтчбек
Сообщений: 979
Lexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud of
По умолчанию

Да погоди! Дай самому разобраться.
__________________
Приора хэтчбек
Win7 x64 Pro, Intel Core i3-3240 Ivy Bridge 2x3.4GHz HT, DDR3 2x4Gb, SSD SiliconPower Ace A55 128GB SATAIII, ASRock B75M-ITX, M2-ITX rev.2F, GPS Beitian BN-808, 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 вне форума   Ответить с цитированием
Ответ


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

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

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



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


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