Нормальную бесплатную навигационную программу для Windows с поддержкой пробок не нашел, поэтому встроил Яндекс.Навигатор через эмулятор Bluestacks.
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" выбираем
"TCP/IP Server" и нажимаем кнопку
"Add". Указываем
Port =
20175, нажимаем кнопку
"ОК". В
GpsGate настраиваем только порт (кнопку
"Network…" не нажимаем и там, соответственно, ничего не меняем).
На этой же вкладке в выпадающем списке выбираем
"Virtual COM port" и нажимаем кнопку
"Add". Выбираем из списка номер свободного COM-порта. Этот номер порта прописываем в настройках
iCarDS. Для работы с GPS-приемником с частотой обновления координат более 1Гц - создаем и настраиваем COM-порт так, как описано
здесь.
На вкладке
"Advanced" нажимаем кнопку
"Show more options…".
На вкладке
"Input" в выпадающем списке
"Retry connection to input" выбираем
"On Error".
На этой же вкладке нажимаем кнопку
"Open", через пару секунд –
"Close". Это нужно, чтобы
GpsGate запомнила настройки.
2. Установка и настройка Bluestacks
- Удаляем библиотеку перехвата горячих клавиш iCarDSHook.dll из папки iCarDS.
- Устанавливаем BlueStacks v0.9.x.x и выше. После установки произойдет ассоциация apk-файлов, и для их установки достаточно два раза щелкнуть по ним.
- Настраиваем через реестр (или твикер) нужное разрешение в Bluestacks:
3.1. Запускаем редактор реестра.
3.2. Открываем ветку HKEY_LOCAL_MACHINE\SOFTWARE\BlueStacks\Guests\Andr oid\FrameBuffer\0
3.3. Прописываем свои настройки для шаблона "FSReal":• Fullscreen = 1 (полноэкранный режим)
• GuestHeight = 480 в десятичном формате
• GuestWidth = 848 в десятичном формате
• Height = 768 в десятичном формате (высота экрана)
• Width = 1024 в десятичном формате (ширина экрана)
3.4. Параметры "GuestHeight" и "GuestWidth" равны соответственно "WindowHeight" и "WindowWidth". Если задать другие размеры, то изображение будет растягиваться/сжиматься до размеров "WindowHeight", "WindowWidth". Например, в моем случае нативное разрешение монитора 848х480 (≈16:9), а разрешение рабочего стола выставлено 1024х768 (4:3, 12:9), поэтому для Bluestacks я задал 848х480 (≈16:9), чтобы круглые элементы выглядели круглыми, а не овальными.
- Устанавливаем ES Проводник. Запускаем, сдвигаем экраны до "Сеть", нажимаем "Scan", запоминаем появившийся IP-адрес (10.0.2.2).
- Устанавливаем GPSBridge или модифицированную GPSBridge. Оригинальная GPSBridge работает только с GPS, с ГЛОНАСС не работает. GPSBridge будет получать данные GPS из сети для эмулятора. В настройках приложений для GPSBridge ставим галку "Планшет". Запускаем GPSBridge, прописываем следующие настройки:
• "TCP/UDP port" - указываем порт из GPSGate, т.е. 20175.
• "TCP address" - указываем IP-адрес, найденный в ES Проводник, т.е. 10.0.2.2.
Если необходимо изменить настройки уже запущенной GPSBridge, то открываем ее из строки уведомлений.
- Устанавливаем Яндекс.Навигатор. Авторизуемся для синхронизации настроек. Если не отображаются кнопки и элементы управления, и/или есть артефакты, то необходимо с помощью твикера (или напрямую в реестре) установить параметр GlRenderMode в 1 (или 0).
- Устанавливаем лаунчер. Лаунчер запускает GPSBridge и программу навигации сразу же после загрузки Bluestacks, а не через секунд 30, как при автозагрузке (через StartupManager). Программы навигации необходимо предварительно выбрать в приложении LauncherSettings. Так же лаунчер позволяет отключить физическую клавиатуру при запуске (равносильно ее отключению в настройках "Язык и ввод"). "Отключенная" физическая клавиатура будет работать даже тогда, когда отображается экранная.
- При желании устанавливаем какую-нибудь программу, которая скрывает строку уведомлений вверху и системный тулбар внизу (с софт-кнопками). Например, Full!screen:
• Включаем сервис full!screen.
• Включаем автозапуск.
- Заморозка/разморозка BlueStacks.
3. Встраивание в iCarDS
Встраивать будем не
Яндекс.Навигатор, а
лаунчер, который сам запустит и
GPSBridge и
Яндекс.Навигатор.
Идем в меню
"Настройки скина → Установка программ", кликаем на пустую ячейку. Настройки:
- Шаблон – FSReal
- Имя программы – Яндекс.Навигатор
- Имя окна программы – BlueStacks App Player
- Путь к файлу программы – C:\Program Files\BlueStacks\HD-RunApp.exe
Для 64-битной ОС - C:\Program Files (x86)\BlueStacks\HD-RunApp.exe
- Параметры командной строки:
1. Открываем папку "Apps", в которой BlueStacks хранит ярлыки для запуска встроенных программ
2. На ярлыке "LauncherStart" жмем ПКМ и выбираем "Свойства"
3. На вкладке "Ярлык" в поле "Объект" копируем параметры командной строки:
-p ru.znalexey.mylauncher -a ru.znalexey.mylauncher.StartActivity
4. Вставляем эти параметры в соответствующую настройку iCarDS
- Захват – Да
- Иконка – выбираем при необходимости
- Наложение - Да
- X = 200, Y = 0 (кнопка iCarDS будет сдвинута вправо)
- Время задержки до перехвата окна – 1 сек
Вместо настройки вручную можно загрузить настройки из файла. Для этого необходимо ini-файл из архива извлечь в папку
Мои документы\iCarDS\skins\Chameleon\ApplicationSettin gs, далее в настройках встроенной программы нажать
"Загрузить настройки из файла" и выбрать файл
Яндекс.Навигатор.ini. Для 64-битной ОС меняем путь к
HD-RunApp.exe.
Для корректной работы iCarDS с 10Гц GPS-приемниками, необходимо сделать
это или
это.
Все работает прекрасно. Навигатор пробки показывает, маршруты прокладывает, тетенька со мной разговаривает. Голосовой поиск в навигаторе работает. Вроде ничего не тормозит, конфиг - в подписи.
Поблагодарить меня.
PS: Форум самостоятельно вставил какие-то непонятные пробелы посередине некоторых слов...