Навигатор windows ce не работает

Анлок старой портативной навигационной системы или случайное знакомство с Windows CE

Обнаружение

Как и все интересные истории всё начинается со случайностей, и моя история не исключение. Началось все с того что в закромах полочного шкафа, был обнаружен непримечательный дивайс, с виду не подававших никаких признаков жизни. Дивайсом является PROLOGY iMAP-527MG, Портативная навигационная система GPS 5″ TFT, когда-то давным давно используемая, пока морально не устарела и не отправилась смиренно терять заряд. С небольшими усилиями по поиску подходящего зарядного устройства, был возвращен к жизни и показывал следующие картины.

При запуске

После запуска показывал геолокацию и карту дорог. Имелась возможность в главное меню, где были найдены настройки (аудио и виде), простой аудио\видео проигрыватель, калькулятор и даже карточная игра, что-то вроде косынки. Сохранить доказательство в тот момент и не думалось, так что поверьте на слово.

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

А именно: Windows Embedded CE 6.0

Windows. Данная надпись смутила меня и погрузила в раздумье, а как оно вообще работает, говоря простым языком. В ходе размышления, пришла мысль что это просто программа, автоматически запускаемая на необычной версии Windows (фантазии, так сказать, оказавшиеся реальностью).

Поиск

Я решил пойти дальше, найти подтверждения моей гипотезе. И как это полагается, обратился в интернет с данным вопросом: Как выйти из приложения ? / как получить доступ к windows в привычном виде ?.

Читайте также:  Как настроить триколор тв по номеру

В ходе исследования ОС Windows SE 6.0, разузнал, что её рабочее окружение похоже на старые версии Windows (по крайней мере оно мне их напоминало), что имеются способы да неё «достучаться».
Здесь должен добавить, что в настройках приложения карт (о которых говорилось выше), можно было выбирать режим подключения: как обычный cьемный накопитель или в режиме функции ActiveSync. По умолчанию стоял режим сьемного накопителя.

Первый способ на который я наткнулся было подключение iMap по USB к компьютеру, создание пустого explorer.exe, перемещение его в корневую папку накопителя навигатора(как там говорилось). С последующем перезапуском навигатора, в результате чего ожидалось увидеть рабочий стол Windows SE. Но этот способ не был бы первым, если бы все удалось с первого раза.

Проделав операцию и не получив результат, я все вернул в исходное состояние и отправился искать решение дальше.

Второй способ. На просторах неприглядных форумов заметил информацию о настройках реестра. Подумав — понял, что программа навигатор запускается сразу же при старте windows. Пойдя в глубь на очередном специализированном форуме была найдено полное описание всего реестра Windows SE, а также советы по его изменению.

Прочитав его, поиски сузились: Ветвь реестра: HKEY_LOCAL_MACHINE\init.

Далее для редактирования реестра, как я узнал, мне понадобилось установка нескольких специализированное программ.

Редактирование реестра, как я понял, требовало непросто подключение навигатора как съемного накопителя, а подключение в режиме синхронизации. Для этого в настройках навигатора выбирается режим ActiveSync. А на пк установлено специальное ПО ActiveSync 4.5 с офф сайта.

Вторая программа была Registery Workshop, непосредственно для редактирования реестра.
И собственно можно было начинать:

Вот он ключ от двери в WinSe

Перейдя в нужную ветку реестра, вычитав что в этом разделе можно добавлять свои ключи для запуска необходимых программ и значение к ним (например Launch=Explorer.exe, чтобы попасть сразу на рабочий стол ), но нельзя добавлять номера Launch до 20 и в промежутке от 20 до 60 включительно.

И все сошлось, как видим значение в ключе Launch70 было GPITGuinder.exe, логично было предположить что и была команда автозапуска программы навигатора.

Решение: изменение значение ключа Launch70 на explorer.exe.

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

Источник

Сообщение отредактировал Pearl — 04.12.14, 11:21

Это понятно, но если фотки внимательно посмотреть, то можно заметить что сам gps модуль отсутствует(хотя возможно на фото не очень видно), так же как и отсутствует карточка с навигацией ( планировалось использовать как раз usb gps ) очень не хочется вскрывать коробку, думал, может кто по оболочке узнал и менял там чего, я её и покупал с целью собственной доработки, но думал, что попасть к windows будет проще.

p.s. там есть два слота microSD , один разъём usb, и кнопка навигации «GPS» при чём при нажатии на неё он выдаёт сообщение «НЕДОПУСТИМЬЙ». Жду ещё варианты, возможно есть те которые я не опробовал ещё . :help:

А можно подробнее что такое «китайское car audio» ? Это просто тупая прошивка железки ? Я что то сомневаюсь что проще разрабатывать на ассемблере или даже чистом си эту прошивку, гораздо проще швырнуть мало требовательную к ресурсам WinCe и стянуть к ней оболочку которых до кучи, или разработать, благо инструментария на сегодняшний день навалом, и разработка займет не более двух суток.

В общем ребят, помогите, наверняка есть способ через флешки или карты памяти, я даже уже готов скрыть ее! Должны же здесь быть гуру в этих вопросах!

Добавлено 14.01.2015, 23:01:

Да и к стати не просто же там есть кнопка для навигации которая не работает .

Добавлено 14.01.2015, 23:02:

Надеюсь на вашу компетентность !

Нигде. Продать имеющийся девайс и купить уже с функционалом навигации.
Грубо говоря, сам «блок» — это плата с ARM-процом на ней, микрухой памяти, чипом GPS и двуми-тремя шлейфами из нее выходящими. Нажатие на кнопку NAVI или GPS как-то обрабатывается устройством?

и рождается новый вопрос , как там его тогда использовать? 🙂
Оба блока работают параллельно и независимо друг от друга (блютус и айпод в медиа части недоступен из навигационной, равно как и флешка навигации не видна в медиа половине).
Переключение как раз и происходит нажатием кнопкой NAVI (GPS) на панели устройства и выражается в изменении изображения на экране: нажал — показывается медиа часть, еще нажал — навигационная.

Сообщение отредактировал SSStylish — 16.01.15, 23:19

Start GPS MENU
сохранить все эти файлы на SD Card и это поможет вам

Товарищи , прошу помощи!
Подскажите пожалуйста , что это за чудо? Никак не могу узнать фирму и модель.
Сорь что не туда

Источник

Странно тогда. Моё устройство на базе WinCE 6.0 – автонавигатор GlobusGPS 800. Компилирую под него программу с библиотекой gpsapi, для импорта функции сделал простой вызов GPSOpenDevice(). Так вот после этого программа на навигаторе не запускается. Может быть, что библиотека GPS API не установлена на этом девайсе, хотя в MSDN поддержка заявлена?

Про SDK понял. Выбираю WM5.0. Спасибо 🙂

как так! а какой тогда смысл GPS API? я так понимаю Windows сама подключается к GPS приемнику, а потом раздает гео-данные всем подключившимся ч-з API.

Вообще дело даже не в этом – после линковки gpsapi.lib программа на WinCE 6.0 вообще не запускается! ошибки не выдает.

поискал — такую dll не нашел! 🙁
это у старых выпусков версия 5.0, у меня новая. и сзади наклейка — Windows CE 6.0 Core. Получается сам производитель мог урезать OS?
Блин, для меня не проблема работать напрямую с COM портом и NMEA. НО проблема в монопольном доступе к порту. А всякий доп софт – разветвители COM слетают после первой перезагрузки навигатора (там данные сохраняются только на внешней флешке).
Единственная надежда на YFCommux, через который работает НН. Может это встроенный разветвитель?!

хм. а если самому скопировать gpsapi.dll в windows/. Этого достаточно будет для работы GPS API? или там еще сервис как-нибудь ставится?

PS: получается что и функции API для GPRS соединения скорее всего не встроены.

ну наклеить можно что угодно, нужно смотреть где-то в «Сведениях о системе» в настройках (если такое есть).

попробовать конечно можно, но шансов мало, и желательно то же с WinCE6.0 навигатора, а не WM5.0 коммуникатора.

нету в большинстве навигаторов GPS API. вернее не так. несмотря на заявления, ни в одном из навигаторов не встречал еще GPS api.
поэтому и МЯК под wince работает с портами и NMEA напрямую. И кстати, это даже удобнее.

про ConnectionManager забудьте =) его обещают в Ce 6.0 R3 , но навигаторы на этом ядре еще не делают.
но для поднятие инета по GPRS отлично работают RAS функции

Источник

Работа с GPS в WinCE (C#)

Введение

Всем привет!
В этой статье я хочу рассмотреть вопрос реализации доступа к данным GPS в устройствах на базе WindowsCE. При создании продукта СКАУТ-Навигатор, необходимо было разработать приложение, работающее как в WinСЕ версии 5.0, так и в WinCE версии 6.0, которое умеет получать данные NMEA с навигационного приемника, и записывать их в журнал.

Решение

Для работы с GPS в WinCE как версии 5.0, так и версии 6.0 проще всего использовать работу с COM портом. Найти в устройстве, какой COM-порт предоставляет данные GPS, можно при помощи программы: DeviceManager.

Часто производители прошивок уже позаботились о том, чтобы COM портов GPS было два. Это позволяет развести ПО, которому требуется GPS и навигационное, чтобы они не боролись за доступ к COM-порту. Предположим, что COM порт мы будем использовать в монопольном доступе.
Чтобы получить данные NMEA (http://ru.wikipedia.org/wiki/NMEA_0183), нам нужно всего-то открыть COM порт, прочитать с него данные, потом закрыть COM порт. Что на C# выглядит так:

Несмотря на то, что всё выглядит весьма тривиально, приведенный код часто не работает из-за ошибок доступа к COM-порту. (Например, часто возникает ошибка: «UnauthorizedAccessException: Access to the port is denied»).

Не будем расстраиваться, есть другой подход, который работает.

Замечательные люди из проекта OpenNetCf заботливо предоставляют исходные коды собственного SerialPort.

Добавляем в проект сборку OpenNetCf.IO.Serial

Класс работы с COM-портом GPS будет выглядеть так:

Вметоде SerialPortDataReceived пишем, собственно, парсинг NMEA строк.
Для этого можно:

  1. Написать свой парсер NMEA;
  2. Использовать SharpGps;
  3. Использовать NMEA-0183-2-0-Sentense-parser-builder (Тут статья разработчика на Хабре);
  4. Любой другой парсер.

Sentenseparserbuilder я использовать не пробовал, а вот про SharpGps есть, что рассказать.

Сделаю небольшое отступление от темы. В библиотеке есть забавная ошибка в подсчете контрольной суммы, хотя многие мои коллеги считают, что это не ошибка, а логичное поведение. Но обо всём по порядку:

В протоколе NMEA 0183 (http://www.tronico.fi/OH6NT/docs/NMEA0183.pdf) контрольная сумма описывается как 2-значное 16-ричное число — контрольная XOR-сумма всех байт в строке между «$» и «*».

В SharpGps есть функция проверки корректности контрольной суммы в пакете:

Эта функция великолепно работает, если навигационный приемник передает контрольную сумму в виде двух чисел (0x01, 0x02 и т.д.), как и заявлено в протоколе. Но любой идеальный код разбивается о реальность, в которой навигационные приемники передают пакеты с контрольной суммой, не добавляя ведущий ноль (0x1,0x2).

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

Чтобы всё заработало, последнюю строчку можно переписать, хотя бы так:

С отступлением всё.

Для хранения навигационных данных было решено использовать SqlServer Compact Edition. Его очень просто интегрировать в приложение, и использовать в разработке. Описывать использование SqlServer Compact в данной статье я не планировал, если есть желание увидеть статью по использованию SqlServer Compact в приложениях на WinCe можете его обозначить в комментариях.

Заключение

В данной статье я привел решение проблемы доступа к GPS данным на WinCe устройствах, решение опробовано на навигаторах различных производителей (Prestigio, Texet, Shturmann, Mio) с разными версиями WinCE. Надеюсь что от части граблей подстерегающих вас на пути разработки под WinCE она избавит.
Спасибо за внимание. Жду вопросов и замечаний в комментариях.

Источник

Странно тогда. Моё устройство на базе WinCE 6.0 – автонавигатор GlobusGPS 800. Компилирую под него программу с библиотекой gpsapi, для импорта функции сделал простой вызов GPSOpenDevice(). Так вот после этого программа на навигаторе не запускается. Может быть, что библиотека GPS API не установлена на этом девайсе, хотя в MSDN поддержка заявлена?

Про SDK понял. Выбираю WM5.0. Спасибо 🙂

как так! а какой тогда смысл GPS API? я так понимаю Windows сама подключается к GPS приемнику, а потом раздает гео-данные всем подключившимся ч-з API.

Вообще дело даже не в этом – после линковки gpsapi.lib программа на WinCE 6.0 вообще не запускается! ошибки не выдает.

поискал — такую dll не нашел! 🙁
это у старых выпусков версия 5.0, у меня новая. и сзади наклейка — Windows CE 6.0 Core. Получается сам производитель мог урезать OS?
Блин, для меня не проблема работать напрямую с COM портом и NMEA. НО проблема в монопольном доступе к порту. А всякий доп софт – разветвители COM слетают после первой перезагрузки навигатора (там данные сохраняются только на внешней флешке).
Единственная надежда на YFCommux, через который работает НН. Может это встроенный разветвитель?!

хм. а если самому скопировать gpsapi.dll в windows/. Этого достаточно будет для работы GPS API? или там еще сервис как-нибудь ставится?

PS: получается что и функции API для GPRS соединения скорее всего не встроены.

ну наклеить можно что угодно, нужно смотреть где-то в «Сведениях о системе» в настройках (если такое есть).

попробовать конечно можно, но шансов мало, и желательно то же с WinCE6.0 навигатора, а не WM5.0 коммуникатора.

нету в большинстве навигаторов GPS API. вернее не так. несмотря на заявления, ни в одном из навигаторов не встречал еще GPS api.
поэтому и МЯК под wince работает с портами и NMEA напрямую. И кстати, это даже удобнее.

про ConnectionManager забудьте =) его обещают в Ce 6.0 R3 , но навигаторы на этом ядре еще не делают.
но для поднятие инета по GPRS отлично работают RAS функции

Источник

Оцените статью