Главная | Форум | Регистрация | Вход
[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Ремонт GPS навигаторов » Service » Что надо знать о навигаторах (PNA/ПНА) (новичкам)
Что надо знать о навигаторах (PNA/ПНА)
VampiДата: Среда, 25.11.2009, 14:03 | Сообщение # 1
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
Что надо знать о навигаторах (PNA/ПНА)

Термины и определения

PPC (КПК) — карманные ПК с сенсорными экранами, работающие под управлением операционной системы Windows Mobile.

ББ - большой брат, настольный ПК

PNA (ПНА) - портативный навигационный аппарат. Микропроцессорный гаджет на основе спутниковой навигации.

Windows CE - это 32-битная операционная система для создания различных устройств с низкими требованиями к аппаратной платформе. Поставляется в компонентной форме вместе со средствами разработки Platform Builder и предоставляет ОЕМ производителям возможность адаптировать систему под функциональные требования встраиваемой системы. Windows Embedded Compact поддерживает 4 типа процессоров: x86, ARM, MIPS и SuperH.
Это, по сути дела, набор исполнимых файлов и библиотек (конструктор) из которых делаются различные операционные системы, типа Windows Mobile для КПК и смартфонов.
Windows встроенная в ПНА, также называется Windows CE. По большому счету это неверно. Ее следовало бы назвать Windows PNA. Но что выросло - то выросло, не буду вносить путанницу.
Память, оперативная и энергонезависимая, встраиваемая в ПНА - дорогой ресурс, даже по современным меркам. Она намного дороже той, которая применяется на ББ. Поэтому создатели PNA комплектуют свои девайсы только нужными библиотеками. Это приводит к тому, что не все программы, написанные для КПК идут на ПНА. Это касается и навигационных программ. Для ПНА пишутся специальные программы. Они напоминают программы под DOS. Все необходимые драйверы и библиотеки зашиты в исполнимый файл.

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

Отличие КПК и ПНА

КПК очень похож на своего большого брата. Операционная система грузится с флэш-драйва (аналог винчестера) в ОЗУ. Данные, рожденные при работе, сбрасываются сначала в память, потом на диск, по мере необходимости.

В ПНА все упрощено до предела. Идет гонка за дешивизну. "Винчестер" работает только на чтение. Некуда сохранять данные, кроме как в ОЗУ, и все они исчезают при выключении питания. Все это происходит потому, что энергонезависимая память с многократными циклами записи стоит чертовски дорого. Не следует путать ее с дешевой флэш памятью. У последней количество циклов на несколько порядков ниже. Поэтому в ПНА возникает проблема сохранения настроек и треков.

У ПНА нет рабочего стола (эксплорера). Вместо него грузится простенькая оболочка. Она как правило не настраивается и рассчитана на запуск одной или нескольких программ, предусмотренных производителем. Эти программы должны быть размещены в определенных папках и иметь определенные названия. Положение усложняется тем, что каждый производитель называет папки и программы по своему.

Тем не менее, умельцы научились обходить ограничения WinCE и запускать КПК программы на ПНА. В большинстве случаев достаточно положить в папку программы недостающие библиотеки.
Программа ищет нужную библиотеку в следующем порядке:

1. Память
2. Папка программы
3. Windows

Как видим, если положить библиотеку в папку программы, то она найдет ее. Более того, эта библиотека будет иметь приоритет перед Виндовской. Этим иногда тоже пользуются, когда виндосовские библиотеки несовместимы с программой.
Но здесь есть подводный камень. В WinCE "весовой" единицей является не библиотека, а, так называемый lib. Это часть библиотеки описывающая отдельную функцию. Экономят и здесь. В библиотеку WinCE закладывают только необходимые либы. Это приводит к тому, что для одной и той же ОСи существует море одноименных библиотек. Например, Augshell.dll я насчитал в сети около 20 шт.

Расширение возможностей ПНА

ПНА построен на основе тех же кирпичей, что и старший брат КПК. Приложив некоторые усилия, можно значительно расширить возможности ПНА. Если учесть, что ПНА стоит в 3-5 раза дешевле, то это очень заманчиво.

Для начала нужно выбраться на рабочий стол. Это сильно расширит возможности ПНА, поскольку собственная оболочка, не позволяет делать ничего, кроме запуска 2-3 програм. Одна из них программа навигации. Еще ПНА может проигрывать мультимедиа.

Такая операция называется разлочкой (или разлючкой, как вам нравится). Существует море способов разлочки. Я остановлюсь только на самых простых и безопасных.

Способ N1. Разлочка через файл-фейк. Фейк, в простонародье - фальшивка.

Народные умельцы обнаружили, что если положить в корень флешки файл с определенным именем, то вместо оболочки загрузится Explorer. Видимо программисты оставили такую лазейку для собственных нужд.
Explorer существует в двух проявлениях: рабочий стол и файловый броузер - проводник. Это зависит от ключей, с которыми он запускается. Если без ключей, то первый запуск - рабочий стол, второй запуск - проводник.
На некоторых китайских дивайсах это файл YFGo2CE.bld. Содержание может быть любым. Но он не должен быть пустым. Напишите туда свое имя. Если поместить такой файл на флешку и включить дивайс, то запустится рабочий стол, как в КПК. Это самый простой и безопасный способ. Если удалить этот файл, все вернется на свои места.
Это очень красивый вариант. Explorer при запуске обрабатывает файлы, находящиеся в папке StartUp. Можно сделать так, что при включении прибора сразу запускалась программа навигации. Этого не позволяет делать даже родная оболочка. Очень удобно, Все-таки навигация - основное назначение прибора. Включил и поехал. Недостаток этого способа - он не универсален.

Способ разлочки N2

Разлочка запуском эксплорера.

Не буду рассматривать запуск Эксплорера через правку реестра. Этот метод чрезвычайно опасен. Дрогнет рука при написании команды и зверек помер. Будем запускать через стандартное меню. В меню ПНА программа запускается при нажатии на кнопку Навигация. При этом запускается exe файл расположенный в определенной папке. Если на это место положить программу Мортскрипт, а ланчер Морта и скрипт назвать по имени навигационной программы, то кнопка навигации запустит на исполнение скрипт, а там мы можем прописать запуск нужных программ.
Допустим, что кнопка навигации запускает на вашем РНА программу навигации
\?\mobilenavigator\mobilenavigator.exe.
Под знаком ? подразумевается имя флешки. Оно нам в данном случае не важно.
Создаем на флешке папку mobilenavigator, кладем туда mortscript.exe и ланчер морта под именем mobilenavigator.exe. Создаем здесь же файл mobilenavigator.mscr и пишем в него:
Run ("\windows\explorer.exe")
В таком виде скрипт можно уже использовать. Вставьте флешку в прибор и запустите навигацию. Если вы сделали все правильно, то увидете рабочий стол WindowsCE. Он очень похож на рабочий стол ББ. На нем Вы увидете только корзину и проводник. Запускайте проводник и изучайте WindowsCE. Его нужно еще заполнять пиктограммами. Но об этом позже.
Вы потеряете возможность запуска Навигационной программы через кнопку Навигация. Не отчаивайтесь, это можно сделать через рабочий стол.
Скорее всего Вам будет мешать основное меню Вашего ПНА. Оно, как правило, сильно агрессивно и лезет на передний план. Это можно исправить командой Kill. Но об этом тоже позже. Пора прерваться и проветрить мозги.

Способ разлочки N2, продолжение.

Как я уже говорил, ваша родная оболочка может вам помешать. Ее следует выгрузить. Сделать это можно командой морта Kill. Но нужно сначала определить, что убивать. Здесь может помочь утилита Softbutton:
http://3ppc.net/forum/showpost.php?p...7&postcount=26
Запустите его из проводника. Она покажет Вам все программы загруженные в память. Найдите Вашу оболочку и срисуйте ее имя. Переключитесь на нее, если сомневаетесь в выборе.
Добавьте в скрипт запуска Эксплорера строку

Kill ("Имя Вашей оболочки")
Например:
Kill ("YfShell.exe")

Все, у вас почти КПК. Пора заняться благоустройством рабочего стола. Ярлыки программ хранятся в папке \Windows\Desktop. Если создать ярлык и положить его сюда, то он сразу же проявится на рабочем столе.
Есть одна заковыка. Эта папка эмулируется в памяти. Содержимое ее стирается при обеcточивании. Поэтому создайте в папке, где лежит ваш скрипт подпапку Desktop, и скопируйте созданные ярлыки сюда, а в скрипт добавьте строчки:

folder = SystemPath("ScriptPath")
XCopy (folder \"Desktop\*.*","\Windows\Desktop",True,True)

Теперь, при запуске скрипта, ярлыки скопируются с флешки в системную папку ПНА и проявятся на рабочем столе.
Есть в WiCE еще одна хитрая папка \Windows\StartUp. Если сюда положить ярлык на программу, то она исполнится при запуске Эксплорера. Но, опять-таки она гибнет при выключении. Делаем в папке скрипта подпапку StartUp и кладем сюда ярлык пограммы.

Скрипт дополняем строкой:

XCopy (folder \"StartUp\*.*","\Windows\StartUp",True,True)

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

Итоговый скрипт:

folder = SystemPath("ScriptPath")
Kill ("Имя Вашей оболочки")
XCopy (folder \"Desktop\*.*","\Windows\Desktop",True,True)
XCopy (folder \"StartUp\*.*","\Windows\StartUp",True,True)
Run ("\windows\explorer.exe")

Для любителей адреналина. Папки Desktop и StartUp, можно навечно переместить на флешку.

http://3ppc.net/forum/showpost.php?p...8&postcount=12
Тогда строки с XCopy не нужны.

Как создавать ярлыки программ.

1. Через эксплорер Activesync на ББ. Кликаем по файлу правой кнопкой мыши и выбираем Создать ярлык. Ярлык создается рядом. Переносим ярлык в нужную папку.

2. Через эксплорер WinCE. Кладем курсор на файл. Далее File - Send To - Desktop as Shortcut. Ярлык будет создан на рабочем столе. Переносим его при необходимости в другую папку.

3. Через тотал коммандер WinCE. Файл - Создать ярлык. При однооконном режиме ярлык создается рядом. При двухоконном - в соседнем окне.

4. Вручную. Создаем текстовой файл с расширением lnk и записываем в него дорожку к файлу, например:
\sdmms\mobilenavigator\mobilenavigator.exe

Считаем количество символов в строке. В данном случае 42. Ставим эту цифру впереди паровоза и разделяем решеткой:
42#\sdmms\mobilenavigator\mobilenavigator.exe.

Ярлык готов. Кладем в нужную папку.[color=orange]


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
VampiДата: Среда, 25.11.2009, 14:06 | Сообщение # 2
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
Наиболее популярные команды Морта.

В windows CE отсутствует такое понятие как пакетный файл. Провести серию команд внутренними средствами невозможно. Положение исправляет программа mortscript.
Комплект морт скрипт состоит из трех файлов: интерпретатора скрипта Mortscript.exe, ланчера и скрипта. Ланчер - это exe файл, единственное назначение которого запустить интерпретатор Морта и сообщить ему имя скрипта, который следует обработать. Морт определяет имя скрипта по имени ланчера, который его вызвал. Поэтому скрипт и ланчер должны иметь одно имя.
Скрипт, это файл с расширением mscr, который содержит текстовые команды. Это нечто вроде bat файла в среде DOS. Только bat файл интерпретируется операционной системой, а мортскрипт - интерпретатором Mortscript.exe.

folder = SystemPath("ScriptPath")

В среде WinCE командная строка обязательно должна содержать полный путь, исчисляемый от корневой папки прибора. Здесь нет понятия относительный путь, или текущая папка. Это порождает ряд проблем. Например, флешка выглядит в winCE как папка, лежащая в корневой папке. Стандарт на имя флеши есть только для КПК. Это - Storage Card. В ПНА каждый изощряется как может: SDMMC, Storage Card, StorageCard, итп.

Если прога лежит на флешке, то команда должна начинаться с ее имени. Разнобой в названии затрудняет написание универсального срипта. Здесь на помощь приходит указанная команда Она определяет путь к папке, где лежит скрипт Морта. А если скрипт лежит в папке программы, то и к программе. Дальше по тексту скриптов, вместо слова folder будет подставляться путь к программе.

Run ( folder \ "prog.exe")
или
RunWait ( folder \ "prog.exe")

Запускается программа с именем prog.exe.

Отличие команд заключается в том, что после команды Run сразу исполняется следующая команда скрипта, а в случае с RunWait, следующая команда исполнится только по завершении работы prog.exe.
Теперь рассмотрим как развернется первая команда. Допустим, что папка где лежит скрипт называется Navitel. Prog.exe =

Navitel.exe и все это - на флешке sdmmc.
Переменная folder раскроется как
\sdmmc\Navitel\
а команда запуска будет выглядеть \sdmmc\Navitel\Navitel.exe

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

Sleep (1200)
Пауза в исполнении скрипта равная 1200 мсек. Цифра может быть любая. Это, свого рода таймер.

XCopy ("\My Documents\GPS Tracks and Waypoints\*.*",folder \"storage\GPS Tracks and Waypoints",True,True)
Копирование всех файлов (шаблон *.*) из папки \My Documents\GPS Tracks and Waypoints\ в папку \sdmmc\Navitel\storage\GPS Tracks and Waypoints

Команда простая: откуда копировать - запятая - куда копировать - запятая - True - запятая - True
True - означает говорить да на вопросы, которые может задавать команда копироания. Напимер: перезаписать существующие файлы? Если прописано True - то да. Вместо True можно написать False, тогда ответ будет нет и существующие файлы не будут перезаписаны.
Привыкайте дорожки заключать в кавычки, иначе GPS Tracks and Waypoints морт раскроет как GPSTracksandWaypoints - уберет все пробелы.

Kill ("Program")
Завершает программу или процесс с именем Program.
Например
Kill ("Explorer.exe")

Убивает Explorer

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


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
VampiДата: Среда, 25.11.2009, 14:08 | Сообщение # 3
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
Как подключить внешние устройства к ПНА через USB

Порт USB, в классической реализации, мог работать в одном из двух режимах Host или Device. Ведущее устройства - Host. Ведомое - Device . Соединение возможно только в паре Host - Device. Соединения Host-Host и Device-Device невозможны. B большинстве ПНА порт работает в режиме Device и подключить к нему можно только Host (компьютер).
В настоящее время на арену выходит новая спецификация - USB OTG. Устройство удовлетворяющее спецификации USB OTG может переключаться между режимами Host и Device.
В некоторых современных процессорах функция USB OTG встроена в процессор, но в ПНА эта функция, к сожалению, заблокирована. Это связано с тем, что Host должен обеспечивать Device питанием, а это требует дополнительных аппаратных затрат.
Народные умельцы научились разблокировывать Host режим, путем небольшой правки реестра и переделки источника питания. С такой переделой, к ПНА можно подключать дополнительную внешнюю флешку или устройство эмулирующее ее (фотоаппарат, плеер, сотовый телефон). Я, например, частенько заправляю от ПНА свой плеер. Можно подключить к ПНА USB блютуз адаптер. Реальной становится возможность выхода в интернет через модем сотового телефона. Навител пробки становятся возможными и в ПНА. Как это сделать - в следующей публикации.

Как правильно копировать файлы на флешку через картридер.

Хотя в WinCE и отсутствует кеширование файлов на диск, как это делается на ББ, но вот таблица размещения файлов (FAT) кешируется. Это нужно учитывать при копировании файлов на флешку через картридер ББ.
Если усыпить ПНА, извлечь флешку, скопировать на флешку файлы и опять вставить ее в спящий дивайс, то ПНА (впрочем, и КПК тоже) при пробуждении не будет даже и подозревать о пополнении файлов. Например, вы пополнили атлас, а прибор новые карты не видит. Происходит это потому, что при пробуждении дивайс не обновляет кеш FAT. На это уходит значительное время. Надо прибору намекнуть, что на содержимое флешки изменилось. Нужно просто включить его перед вставлением флешки. Не обнаружив при включении флешки, прибор обнуляет кеш, а при вставлении флешки, обновляет содержимое кеша.
При копировании через USB шнурок такой проблемы нет. Там ОСь отслеживает пополнение файлов и обновляет содержимое кеша.

Какого размера флешки следует выбирать для навигации.

Если хотите, чтобы у вас не было проблем с навигацией, не стремитесь применять флешки большого размера. Время инициализации флешки, при прочих равных условиях, пропорционально ее размеру. Слишком большое время может стать причиной разного рода глюков.
Например, фрагментированная 8-ми гигабайтная флешка, "по уши" забитая мелкими файлами инициализируется около 30 сек. При завершении скрипта, морт пишет на флешку файлы. Это может происходить долго, и если не дождаться окончания и выключить прибор, то данные будут потеряны.
Бывают еще проблемы, когда программа навигации, обращаясь за картами на флешку, не дождавшись запрошенных файлов, выкидывает сообщение об ошибке. Это часто бывает, когда сама программа находится в основной памяти.
При постоянных записях - перезаписях флешка фрагментируется и это еще усугубляет проблему. В определенный момент, программа, прекрасно работающая до этого, вдруг взбрыкивает и начинает засорять экран сообщениями об ошибках.
Для большинства программ навигации достаточно 1 гиг флешки. С таким объемом практически не бывает проблем. Не бывает проблем и с 2 гиг флешками. А вот большего размера флешки применять следует с осторожностью.
Строго говоря, время инициализации зависит не от размера флешки, а от количества записанных на ней файлов. Поэтому, если у вас навигационных файлов не более 1 гиг, а остальное пространство занимает десяток фильмов, то ничего страшного не будет и с флешкой большого размера.


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
VampiДата: Среда, 25.11.2009, 14:09 | Сообщение # 4
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
Что нужно знать о COM портах

Константин Галичский

Всё, что вы хотели знать о COM-портах, но стеснялись спросить

GPS-приёмники – хоть уже и массовый продукт, но на рынке продукт пока ещё довольно новый, и потому обладающий рядом «детских болезней». К сожалению, сложившаяся на сегодняшний день инфраструктура взаимодействия разнообразного программного обеспечения с GPS-приёмниками порой превращает процесс самостоятельной настройки ПО пользователем в очень непростое занятие, требующее достаточно глубоких знаний совершенно неочевидных фактов.
Хотя программа Навител Навигатор и рассчитана на максимально автоматическую настройку работы с GPS-приёмниками, в ряде случаев может потребоваться ручная настройка, либо оптимизация настроек для более быстрой и удобной работы.
Что такое COM-порт

Прежде всего, для более глубокого понимания процесса настроек соединения с GPS-приёмником, необходимо уделить пару слов такому нелепому «отголоску прошлого», как COM-порты.
Ещё лет 15 тому назад, распространённый способ подключения самого разнообразного внешнего оборудования к компьютеру – это последовательный порт, то есть специальный стандартный разъём, как правило, расположенный на задней панели системного блока, а также специальный кабель – так называемый сериальный (последовательный) кабель RS-232. Этот способ обладал рядом существенных недостатков. По современным меркам, скорость передачи данных по такому кабелю крайне низкий – примерно до сотни килобит в секунду. Кроме того, на время физического соединения разъёмов необходимо было выключать оборудование, а сами эти стандартные разъёмы крепились друг у другу винтами для надёжности и имели довольно громоздкие размеры.
На тогдашних компьютерах обычно имелись один или два таких аппаратных порта для подключения внешнего оборудования к компьютеру, которые традиционно назывались COM1 и COM2. Иногда устанавливались дополнительные COM3, COM4 и т.д. При настройке программного обеспечения пользователю необходимо было не перепутать и самостоятельно выбрать именно тот порт, к которому подключено нужное оборудование, правильно настроить скорость передачи данных, а также ряд других загадочных параметров, глубокий смысл которых всегда понятен лишь узким специалистам. Для успешного подключения аппаратуры все эти параметры надо было откуда-то узнать либо подобрать экспериментально, поскольку никакого автоматического конфигурирования (plug and play, «подключи и играй») тогда ещё фактически не существовало. Более того, эта схема подключения допускала подключение любого ПО к любому внешнему оборудованию, даже абсолютно несовместимому, что и создавало почву для самых разнообразных ошибок в процессе настроек.

В настоящее время этот архаичный способ соединения, изначально рассчитанный скорее на специалиста, практически полностью вытеснен современным стандартом USB, который лишён всех вышеупомянутых недостатков. Но к сожалению, современные стандарты совместимости соединения разнообразного GPS-оборудования и не менее разнообразного программного обеспечения исторически сформировались вокруг концепции теперь уже архаичных COM-портов.
Дело в том, что изначально GPS-оборудование было только внешнее, и соединялось оно с компьютером, как и было описано выше – через сериальный кабель, подключённый к одному из аппаратных COM-портов. Соответственно от пользователя при настройке ПО требовалось правильно выбрать номер компорта и настроить скорость передачи данных. Основной стандарт передачи информации от GPS-приёмника к программе, который возник в то время, и который до сих пор широко применяется, называется NMEA-0183. Это стандарт фактически и предписывает разработчикам даже самой современной аппаратуры и ПО до сих пор обмениваться данными через COM-порты – несмотря на то, что на современных компьютерах, а тем более на КПК, давно уже царит стандарт USB. Более того, в последнее время гораздо чаще GPS-приёмник устанавливается прямо внутри корпуса КПК, то есть между ним и КПК, собственно говоря, никакого внешнего соединительного кабеля нет вовсе!

Виртуальные компорты

Компьютерная индустрия нашла выход из положения – были выдуманы «виртуальные» COM-порты. То есть внутреннее устройство КПК, такое как встроенный GPS-приёмник, чисто программно имитируется как COM-порт, не являясь таковым в аппаратном плане. Но программе, рассчитанной на работу с COM-портами, собтвенно и нет никакой разницы, с каким COM-портом она вынуждена работать – с аппаратным или его виртуальной имитацией. Этим самым и обеспечивается совместимость старых GPS-программ с новым GPS-оборудованием.
Однако, сложность конфигурирования от этого существенно не меняется: от пользователя по-старинке всё так же требуется чуть ли не вручную настраивать COM-порты, хоть и ставшие уже совершенно виртуальными сущностями, никак уже не связанными со старинными громоздкими разъёмами на задней панели системного блока. Дело в том, что с точки зрения ПО, что прежние аппаратные коммуникационные порты, что виртуальные, как и прежде, выглядят совершенно безлико, различаясь лишь условными номерами, которые назначаются производителями КПК на какой-то совершенно случайной основе. Например, ASUS обычно размещает приёмник на COM5, а у PocketLOOX 560 приёмник виден под именем COM8. Соответственно программа, желающая получать данные от GPS-приёмника, изначально не имеет никакой достоверной информации о том, под каким условным номером фигурирует COM-порт, соответствующий приёмнику, на данном КПК.

Хотя автоматический поиск приёмника среди всех имеющихся COM-портов и принципмально возможен, но процедура опроса всех этих портов громоздкая и потенциально ненадёжнуя. Ведь поскольку устройства, видимые в системе как СOM-порты, могут быть самыми разнообразными устройствами, к GPS отношения совершенно не имеющие, их реакция на подобный опрос может оказаться совершенно непредсказуемой. Например, на КПК могут быть COM-порты, связанные с внутренним сотовым модемом (на коммуникаторах), с ИК-портом, с USB (используемым программой ActiveSync) и так далее. К сожалению, обращение к этим портам со стороны программы, рассчитанной на взаимодействие с совсем другим видом аппаратуры – с GPS-приёмником, чревато потенциальными перебоями в работе вышеуказанных устройств, а в конечном итоге и сбоями самой процедуры опроса, и даже вплоть до зависания КПК. Именно по этой причине автоматический поиск COM-порта на некотоых моделях КПК может не дать результата, а также приводить к неожиданным побочным эффектам: например, к включению ИК-порта или BlueTooth.
Для подобных случаев в программе Навител Навигатор предусмотрена возможность пользователю вручную настраивать набор COM-портов, по которым допускается осуществлять поиск GPS-приёмника. К сожалению, для успешной ручной настройки требуется знание ряда тонких моментов, обзору которых и посвящается оставшаяся часть этой статьи.

Автоматический поиск

Включение соединения с GPS-приёмником в программе Навител Навигатор сперва запускает процедуру автоматического опроса COM-портов. Во время поиска приёмника в статусной строке на странице «Спутники» показываются соответствующие надписи. Сигналом успешного окончания поиска является смена статуса на “NMEA-0183 на COMx” (где x – это номер определившегося порта).
В случае работы со встроенным GPS-приёмником, с подключением через внешний кабель, через разъём CompactFlash или SD/MMC, при «правильных» настройках время автоматического поиска обычно занимает не более секунды. Соединение через BlueTooth (оно описывается ниже) может занять чуть большее время. Существенные задержки появления вышеуказанной надписи свидетельствует о том, что автоматическая процедура требует ручного вмешательства.

Захват спутников

Для успешного получения координат необходимо не только успешно открыть правильный порт с правильными настройками, но и выполнить вторую фазу соединения – дать приёмнику «захватить спутники», то есть принять сигнал и полностью расшифровать его. Эта фаза может занять от нескольких секунд но десятка минут в зависимости от состояния приёмника и условий приёма.
Итак, с момента успешного определения «правильного» COM-порта начинается работа самого GPS-приёмника – захват спутников. Данная статья не рассматривает тех тонких ньюансов, которыми изобилует и этот загадочный и труднопредсказуемый процесс, отсылая читателя к другим статьям соответствующей тематики. Здесь же необходимо заострить внимание только на одном важнейшем моменте: за процедуру захвата спутников отвечает исключительно сам GPS-приёмник, а не программа. GPS-приёмник – это источник готовых, уже полностью обработанных данных (самих координат, либо информации о том, что координаты не определены), а программа только лишь отображает их.
В процессе захвата на странице «Спутники» можно видеть отображение промежуточных результатов работы по захвату спутников: предполагаемое распределение спутников на небосводе, уровень принимаемого сигнала от каждого из них. Круги красного цвета на небосводе обозначают спутники, сигнал которых ещё не может быть использован приёмником для вычисления координат, зелёные – сигнал которых уже расшифрован и пригоден для вычисления. Координаты начнут определяться, как только «позеленеют» как минимум четыре спутника.
Если столбики, отмечающие уровень приёма, очень низкие или отсутствуют вовсе, необходимо выйти на максимально открытое место, иначе захват будет длиться бесконечно. Как правило, в помещениях GPS-приёмники вообще не способны определять координаты, особенно при самом первом включении (так называемом «холодном старте»).
Итак, самое первое включение GPS-приёмника должно производиться вне помещений, на максимально открытом месте. В некоторых случаях длительность холодного старта может занимать до 10-20 минут. Последующие захваты спутников будут занимать намного меньшее время – обычно десятки секунд.
Если же приёмник оказывается не способен произвести захват спутников даже на открытом месте более 20 минут, то это свидетельствует о его неисправности, или о его неправильной внутренней настройке. В этом случае необходима помощь специалиста, например, из сервисного центра.

А теперь давайте вернёмся от особенностей работы самой GPS-аппаратуры к программе Навител Навигатор и тем её настройкам, которые отвечают за поиск COM-порта.
Выбор портов
После того, как номер COM-порта становится известным, рекомендуется в настройках программы отключить опрос всех остальных портов. Это снизит и время подключения, и вероятность потенциальных сбоев при обращении к другим портам.
Если же на данном КПК возможно попеременное подключение разных приёмников через разные порты (например, по сериальному кабелю, через BlueTooth, через разъём CompactFash или SD/MMC), то имеет смысл в списке опрашиваемых портов оставить все эти соответствующие порты выбранными.

Блокировка портов

Как уже отмечалось, исторически механизм COM-портов был рассчитан исключительно на те самые аппаратные порты для подключения внешних устройтв к компьютеру, которые описывались выше.
Нескоординированное взаимодействие сразу двух и более программ с одним внешним устройством по последовательному кабелю практически невозможно, поскольку поступающие данные как бы перемешиваются друг с другом в случайном порядке, нарушая работу как устройства, так и программ. Поэтому в идеологии СOM-портов утвердилось такое правило: с конкретным COM-портом может работать только одна программа одновременно. Пока эта программа не освободит (не закроет) открытый ею COM-порт, ни одна другая программа не сможет его открыть – этому будет препятствовать сама операционная система.
В применении к GPS-приёмникам это приводит к следующему эффекту: если какое-то стороннее приложение уже работает с приёмником, то есть открыло соответствующий COM-порт, Навител Навигатор не сможет открыть этот же самый порт, и соответственно получать от приёмника координаты. В этом случае процедура автоматического опроса будет длиться бесконечно долго, пока стороннее приложение не освободит порт или не будет само закрыто.
Итак, Навител Навигатор не должен запускаться одновременно с другими GPS-программами. Поскольку посторонние приложения могут оставаться в памяти в «свёрнутом» состоянии, рекомендуется специально убедиться, что эти приложения именно закрыты, а не «свёрнуты». Самое надёжное, хоть и радикальное средство – это софт-ресет КПК.
Исключением из данного правила «один порт – одно приложение» является так называемый «программный порт» GPS API, выбираемый в настройках операционной системы. Этот порт допускает одновременную работу с ним любого числа приложений. Подробнее о GPS API будет рассказано в конце статьи.

Побочные эффекты опроса

По умолчанию, Навител Навигатор настроен на опрос всех портов от COM0 до COM19, за исключением тех портов, которые опознаются как связанные:
- с сотовым модемом,
- с ИК-портом,
- с исходящим и входящим портами BlueTooth
Включение опроса первых двух устройств, как уже отмечалось выше, может привести к потенциальным побочным эффектам, поэтому крайне не рекомендуется выбирать их в списке вручную.

BlueTooth

Что касается подключения через BlueTooth, то нужно включать только исходящий порт BT – при условии, что действительно используется соединение с внешним GPS-приёмником по BlueTooth. В противном случае и входящий, и исходящий порты следует оставлять исключёнными из списка опроса.
Следует иметь в виду, что на различных моделях КПК могут оказаться установленными самые различные версии стека (программного обеспечения) BlueTooth – от WIDCOMM/Broadcom или от Microsoft – отличающиеся поведением. При открытии портов BlueTooth, в зависимости от этих версий, возможны самые различные нежелательные побочные эффекты, включая как неожиданное появления окна BT Manager (на очень старых версиях стека от WIDCOMM/Broadcom – вплоть до зависания КПК), так и несанкционированное пользователем включение BlueTooth, сопровождающееся более быстрым разрядом аккумулятора, а также потенциальными проблемами с безопасностью данных.
Если же GPS-приёмник действительно соединяется по BlueTooth, то опрос исходящего порта должен быть, несомненно, включён. Кроме того, настройка «Включать BlueTooth перед соединением» будет дополнительно гарантировать, что опрос COM-портов будет начинаться только после включения BT-передатчика на КПК вне зависимости от особенностей версии стека WIDCOMM/Broadcom или Microsoft.

Скорость передачи данных

Изначально стандарт NMEA-0183 предписывает единственную скорость передачи данных – 4800 кбит/c. Однако в ряде случаев этой скорости бывает недостаточно, чтобы за стандартный секундный интервал успеть прокачать все данные. По этой причине зачастую производители GPS-приёмников настраивают их на более высокие скорости передачи данных.
Если программа настроена при этом на какую-то другую скорость, то данные, поступающие от GPS-приёмника, могут читаться c повреждениями. К счастью, в большинстве случаев драйвера виртуальных COM-портов, используемых производителями КПК, устроены так, что скорость передачи рассматривается ими как совершенно формальный параметр, ни на что реально не влияющий. То есть при любых настройках данные читаются без повреждений и задержек.
Тем не менее, иногда наблюдаются «рецедивы», особенно на устаревших моделях КПК. В этом случае скорость требуется выставлять «правильно». К сожалению, автоматически её определить невозможно, то есть правильное значение нужно откуда-то узнать или подобрать.

Агрессивный и пассивный

В программе Навител Навигатор имеется настройка «способ чтения данных» – агрессивный и пассивный.
Пассивный метод создаёт меньшую нагрузку на процессор КПК (а это означает несколько меньшее энергопотребление), но не способен работать с некоторыми драйверами виртуальных COM-портов, программный интерфейс которых реализован не полностью, либо с грубыми ошибками.
Агрессивный способен работать с любыми известными драйверами. Именно поэтому он и выбран по умолчанию.

NMEA-0183

Протокол NMEA-0183 в настоящее время является основным индустриальным стандартом для взаимодействия ПО с GPS-приёмником, поэтому практически все современные приёмники поддерживают его.
Вот несколько фактов, которые полезно знать о NMEA-0183, поскольку это может помочь в диагностике возможных технических проблем.


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
VampiДата: Среда, 25.11.2009, 14:09 | Сообщение # 5
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
продолжение;

1. Этот протокол по существу «односторонний», то есть данные передаются только в направлении от приёмника к программе. В принципе, программа может посылать запросы и в обратном направлении – к приёмнику – например, для настройки и переключения режимов работы, но это практикуется крайне редко и, как правило, выходит за рамки самого стандарта NMEA. (Навител Навигатор – не практикует.) Этот факт даёт возможность двум и более программам безопасно, совершенно не мешая друг другу, считывать данные из приёмника. Но, как уже выше упоминалось, такое разрешено далеко не на всяком COM-порте, а только на «программном порте» GPS API.

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

3. Поступающие данные выглядят как обычные текстовые строки, разделённые друг от друга стандартными символами перевода строк – как в обычных текстовых файлах. Эти строки называются «сообщениями» (NMEA sentences). Каждое сообщение начинается с символа “$”, затем несколько заглавных латинских букв, идентифицирующих тип сообщения, за которыми следуют информационные поля, разделённые запятыми. В самом конце – контрольная сумма всего сообщения.

4. Стандарт NMEA-0183 описывает огромное количество видов сообщений, и лишь относительно малая их часть относится к GPS-приёмникам. Остальная часть стандарта относится к другим видам морских навигационных сенсоров – атомным часам, эхолоту, радару, магнитному компасу, датчикам силы и направления ветра, температуры воды, приёмнику сводки погоды и т.д.

5. GPS-приёмники обычно передают только сообщения, соответствующие GPS-приёмникам, то есть сообщающие время, широту-долготу, высоту над уровнем моря, горизонтальную скорость, направление, информацию об используемых спутниках и т.д. Есть и исключения: например, некоторые приёмники Garmin, снабжённые встроенными электронными магнитными компасами, выдают также и сообщения, характерные для корабельного магнитного компаса.

6. Идентификаторы сообщений, относящихся к GPS, начинаются на буквы “GP”, то есть их текстовые строки начинаются на “$GP”.

Пример такого сообщения:

"$GPRMC,181212,A,5548.4647,N,03730.3748,E,0.0,0.0,280403,9.5,E,A*11\r\n" – здесь в информационных полях указано текущее время 28/04/03 18:12:12, широта N 55 48.4647’ и долгота E 037 30.3748’.

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

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

СтандартNMEAимеет морское происхождение: он описывает всю инфраструктуру сетеобразного соединения всех судовых электронных сенсоров с единым устройством отображения всех данных на капитанском мостике. Индустрия, сложившаяся вокруг GPS, использует лишь малую часть этого стандарта – просто за неимением своего собственного более специализированного отраслевого стандарта.

Однако NMEA-0183 из-за своих морских корней имеет ряд ограничений, не удовлетворяющих GPS-индустрию. В частности, в этом протоколе не предусмотрено способа сообщения информации о вертикальной скорости, крайне необходимой, например, в авиационных применениях. Эта проблема решается с помощью применения специальных протоколов, не являющихся общеиндустриальными стандартами, а специфичными для конкретных производителей – например, Garmin, Trimble, SiRF, u-Blox и др.

Другие протоколы

Помимо протокола NMEA-0183 программа Навител Навигатор поддерживает и протоколы, специфичные для приёмников Garmin и SiRF binary. Эти приёмники могут работать в NMEA-0183, но могут быть и переключены специальными средствами в свои «фирменные» протоколы.
Если приёмник работает в одном из этих протоколов, а Навител Навигатор настроен по умолчанию в NMEA-0183, то соединение просто не установится. В этом случае необходимо в настройках программы включить сканирование соответствующих протоколов.
Следует отметить, что Навител Навигатор сам по себе не имеет функции переключения протокола, используемого GPS-приёмником для передачи данных. Такое переключение может осуществляться только специальными средствами, рассчитанными на конкретные типы приёмников. Навител Навигатор лишь способен автоматически диагностировать (если это разрешено в настройках), что приёмник по какой-то причине переключён на тот или иной протокол, отличный от NMEA, и сразу работать с этим протоколом, не вынуждая пользователя специально переключать приёмник обратно в NMEA-0183.
И Garmin, и SiRF binary кардинально отличаются от NMEA-0183 тем, что они основаны на обмене не текстовыми, а чисто двоичными данными, а также тем, что они двусторонние, то есть в них программа посылает явным образом запросы в приёмник и получает от него ответные пакеты. Это означает, что сканирование COM-портов с такими протоколами потенциально более опасно, чем для одностороннего NMEA-0183: программа посылает явным образом запросы в сканируемые COM-порты и затем ожидает характерный ответ. Отправка запроса в некоторые из сканируемых COM-портов может спровоцировать нежелательные побочные эффекты, уже обсуждавшиеся выше.

Поэтому, если известно, что приёмник работает в NMEA-0183 (а это подавляющее большинство случаев), то сканирование других протоколов рекомендуется не включать. Помимо повышенного риска сбоев, сканирование неиспользуемых протоколов ещё и увеличивает время сканирования.
Довольно распространено поверье, что переключение чипсета SiRF III в протокол SiRF binary ускоряет время захвата спутников. Очевидно, это не так, поскольку время захвата определяется совершенно иными факторами, в число которых конкретный транспорт доставки уже определённых координат не входит. Тем не менее, использование двоичных протоколов вместо громоздкого текстового NMEA-0183 действительно способно немного (эффект практически не заметен) уменьшить время доставки данных, но это касается только уже определённых координат.

Проблемы с протоколом, провоцируемые сторонними приложениями

Известно, что одна из бета-версий iGO/MioMap грешила активным переключением режимов приёмников SiRF III. В результате, после её запуска все иные GPS-приложения, рассчитанные на работу через NMEA-0183 перестают работать с GPS-приёмником. Способы решения:
- восстановление настроек чипсета SiRF с помощью сторонних программ (типа SirfTech),
- возврат к заводским настройкам путём удаления аккумулятора КПК на сутки (при этом сбрасывается состояние всего КПК – теряются все настройки, пользовательские файлы, установленные программы и т.д.)
Во избежание повторения проблемы требуется ручная настройка iGO. А именно, в файле SYS.TXT, лежащий в папке iGo/MioMap, в раздел [gps] необходимо добавить строчку «set_messages=0». Если такого файла нет, его необходимо создать.

Запись в журнал

Прямым инструментом для диагностики всех вышеперечисленных проблем соединения программы с GPS-приёмником является запись в журнал. Включение соответствующей настройки программы приводит к тому, что все действия программы над COM-портами достаточно подробно протоколируются, включая информацию о данных, считываемых из COM-портов.
Журнал представляет собой текстовый файл gps_log.txt, хранящийся в корне файловой системы КПК. В процессе работы в этот файл в конец добавляется очередная порция информации, то есть старая информация никогда не пропадает даже после перезапуска программы.
Обязательно выключайте запись в журнал после решения проблемы, иначе он будет постоянно расти в размерах, пока не займёт всю свободную память! Ненужный файл можно просто удалить.
Содержимое файла вполне доступно для самостоятельного анализа, особенно после изучения данной статьи. Тем не менее, если Вы испытывете сложности с решением проблемы установления соединения, а анализ журнала не даёт искомой подсказки, просто свяжитесь со службой технической поддержки (support@navitel.su) приложив к электронному письму записанный журнал.
COM-порты в GPS API

Выше в этой статье подробно рассматривались проблемы, связанные со стихийно сложившимся в GPS-индустрии стандартом взаимодействия на основе такого анахронизма, как COM-порты.
Однако, начиная с MS Windows Mobile 5, в операционной системе наконец-то появилась встроенная поддержка GPS, что является безусловно позитивным шагом по приведению стихии в цивилизованное русло. Однако, вместе с тем возросло и количество факторов, которые необходимо понимать для успешной диагностики проблем.
Для начала рассмотрим в общих чертах архитектуру этой новой подсистемы Windows Mobile. GPS API является по своей сути очередным системным «арбитром», выступающим в роли промежуточного слоя, абстрагирующего программы, желающими работать с приёмником, от самого GPS-приёмника.

Центральный модуль GPS API– это «ядро», получающее данные от так называемых GPS-драйверов, либо от архаичных COM-портов, которые теперь называются в терминологии GPS API «аппаратными». К сожалению, производители GPS-оборудования пока не спешат принимать новую инициативу Microsoft, предполагающую поставку GPS-драйверов вместо реализации виртуальных COM-портов. Но на этот случай GPS API умеет самостоятельно получать GPS-данные от традиционного COM-порта GPS-приёмника.
Ядро GPS API принимает и разбирает данные NMEA-0183 и затем транслирует их всем заинтересованным приложениям через программный интерфейс (API). Поскольку большинство существующих приложений пока ещё не готово к работе с этим интерфейсом, GPS API эмулирует для них свой COM-порт, который называется «программным». Получающаяся структура на первый взгляд получается как бы «меняю шило на мыло» - то есть данные из одного порта просто ретранслируются в другой порт. Но это не совсем так.
Во-первых, «программный» порт выгодно отличается от «аппаратного» тем, что он может открываться любым количеством приложений одновременно (то есть GPS API выступает в роли своеобразного «GPS-splitter»). Во-вторых, в системном реестре стандартизован ключ, сообщающий приложениям номер программного COM-порта. То есть пользователю теперь не нужно настраивать каждое из GPS-приложений по отдельности, а достаточно выбрать «правильные» номера COM-портов только в одном месте – в настройках Windows Mobile.

Более того, если GPS-приёмник встроен в КПК, то производитель обычно делает так, что «аппаратный» порт изначально правильно указан в реестре.
Всё это позволяет эффективно решать проблемы совместимости, равно как безболезненное соединение с приёмником без головной боли «какой порт открыть», так и проблему одновременного доступа к одному приёмнику из нескольких программ. Более того, эта технология позволяет приложениям получать координаты через стандартизованный и гораздо более удобный программный интерфейс (application programming interface, API), а не через архаичные и разношёрстные COM-порты, а разработчикам GPS-оборудования – постепенно перейти к более прогрессивной технологии специализированных GPS-драйверов. В конечном итоге решается и проблема разномастных GPS-протоколов: в них вообще исчезает всякая потребность.
Навител Навигатор поддерживает работу как через программный интерфейс GPS API, так и «традиционную» работу через COM-порты.

В случае работы через COM-порты следует учитывать следующие моменты:

1. В настройках Windows Mobile «аппаратный» COM-порт всегда должен соответствовать реальному устройству. Если приёмник встроенный, то эту настройку вообще трогать не надо – производитель КПК изначально её прошивает правильно. Если это, например, BT-приёмник, то «аппаратным» COM-портом будет исходящий порт BlueTooth.

2. В настройках Windows Mobile «программный» COM-порт можно выбирать по сути произвольно, лишь бы этот номер был ещё не занят каким-то другим устройством.

3. «Аппаратный» COM-порт не может быть открыт более чем одним приложением одновременно. Одним из таких приложений выступает и GPS API. То есть если возникает конфликт из-за этого порта между Навител Навигатор и GPS API, «повезет» только одному из них. Если порт первым захватит Навител, то GPS API и соответственно все сторонние приложения, прямо или косвенно использующие его, работать не смогут.

4. По этой же причине, в идеале, «аппаратный» порт должен быть занят либо GPS API, либо просто временно не занят. А все приложения должны обращаться только в «программный» порт.

5. Что будет, если оба порта, и «программный», и «аппаратный» в Навител Навигатор одновременно включены в список сканирования? В этой ситуации исход случаен. Допустим, первым окажется открыт «программный» порт, что вынудит GPS API в свою очередь открыть «аппаратный» порт. Тогда попытка открыть «аппаратный» не удастся, и программа будет работать через «программный» порт. В противном случае, опережающее открытие «аппаратного» порта не даст GPS API работать, и не откроется «программный». Но и в этом случае программа получает доступ к GPS-приёмнику. То есть Навител Навигатор будет работать в любом случае, а вот GPS API и все приложения, привязанные к «программному» порту – как повезёт. Впрочем, не исключена и ситуация, когда оба порта окажутся неработоспособными из-за взаимной блокировки. Поэтому, опять-таки, рекомендуется в списке сканируемых портов оставлять только что-то одно.

Как бы то ни было, прямой доступ Навител Навигатор к аппаратному порту тоже имеет смысл:

1. Если приёмник работает в протоколе Garmin или SiRF binary. GPS API не поддерживает этих протоколов.

2. Приёмник может поддерживать сообщения NMEA, которые не подерживаются GPS API, но поддерживаются Навител Навигатор. К их числу относятся сообщения DGPS (дифференциальные поправки), магнитного компаса и эхолота.
Выбор – за пользователем. Информация с сайта 3ppc.net


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
VampiДата: Среда, 25.11.2009, 14:19 | Сообщение # 6
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
Установка программ на ПНА

Для того, чтобы установить прогу на ПНА, нужно просто скопировать программу и ее окружение в определенную папку на флешку и назвать ее определенным именем. Во многих китайских девайсах дорожка запуска выглядит так:
\sdmmc\mobilenavigator\mobilenavigator.exe.

Для каждого ПНА у компании Навител есть своя программа. Устанавливается она на флешке сразу в нужную папку и с нужным именем. Программа полностью привязана к флешке (к серийному номеру) и ничего не пишет на девайс. Вставляешь такую флешку в девайс и она сразу готова к работе. Никаких инсталляций.
На сегодняшний день, из сотни модификаций Навитела, для ПНА не имеем ни одной отравленной.

Для того, чтобы подружить версию КПК с ПНА нужно:

- создать на флешке папку с нужным именем
- скопировать в эту папку все файлы программы
- назвать программу нужным именем
- добавить в папку программы недостающие библиотеки

Если все сделано правильно, то при нажатии на кнопку навигации программа запустится и будет работать с настройками по умолчанию. Но этого обычно мало. Программа для КПК пишет настройки в реестр. Кроме того, она пишет треки и путевые точки в папку My documents в корне девайса. Эти атрибуты у ПНА тоже есть, но вот все это расположено в озу и пропадает при выключении девайса.

Для того, чтобы сохранять настройки программы и данные (например, треки), можно делать так:
- при выходе из программы найти в ОЗУ записи в реестре и записать их на флешку. То же самое нужно сделать с папкой My documents.
- перед запуском программы проделать обратные операции.

Все это делается с помощью программы mortscript.

Комплект mortscript состоит из трех файлов: интерпретатора скрипта Mortscript.exe, ланчера и скрипта.
Ланчер - это exe файл, единственное назначение которого запустить интерпретатор Морта и сообщить ему имя скрипта, который следует обработать. Морт определяет имя скрипта по имени ланчера, который его вызвал. Поэтому скрипт и ланчер должны иметь одно имя. Обычно ланчер имеет имя Navigator.exe, а скрипт - Navigator.mscr. Запускается скрипт через Navigator.exe. Для того, чтобы приспособить скрипт под свой девайс нужноо переименовать оба файла в имя принятое в нашем приборе (например, mobilenavigator.exe и mobilenavigator.mscr)

Скрипт морта это текстовой файл, с расширением mscr в котором прописаны команды запуска специальных утилит, которые способствуют сохранению настроек и данных Навитела.

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

Как это работает.

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

1. Вместо предусмотренной производителем программы запускается расположенный по такому же адресу и имеющий то же название Лончер.
2. Лончер запускает интерпретатор Морт и сообщает ему необходимые параметры скрипта.
3. Морт производит загрузку в ОЗУ ранее сохраненных данных - в реестр и папку My Documents.
4. Морт запускает саму программу (Навител)
5. При работе навитела, возможно, изменяются настройки программы (ну, к примеру, прокладывать маршрут быстрый или короткий). также, возможно, записываются треки и маршрутные точки. До выхода из программы все это хранится в ОЗУ.
6. После выхода из программы МОРТ, в соответствии с параметрами, указанными в скрипте, сохраняет настройки и данные на флеш-карту.

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


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
VampiДата: Среда, 25.11.2009, 14:23 | Сообщение # 7
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
Библиотеки WinCE важные для Навитела

coredll.dll - базовая библиотека ОС. Это, своего рода бригадир библиотек . C ней слинкованы ВСЕ приложения exe и dll. Эта библиотека должна знать о всех библиотеках, входящих в коплект WinCE. В состав WinCE входит в обязательном порядке, иногда в очень ущербленном виде. Это приводит к большим проблемам с запуском нави программ. Поскольку в память она грузится с ОСью, подбрасывать ее в папку с программой бесполезно. Программа обязана применять ту, что в памяти. В старых версиях навитела была возможность подбрасывания переименованной библиотеки coredll.dll (например в coredl3.dll) в папку с программой. В теле программы делались соответствующие изменения. В версии 3594 сделан контроль целостности программы. Этот прием стал невозможен.

aygshell.dll - содержит функции рисования меню, панелей. Большинство приложений связано с этой библиотекой. Почему-то в WinCE она отсутствует и это вызывает кучу проблем с навигационными прогами ( и не только). Эту библиотеку часто используют трейные утилиты, типа языковых переключателей или индикаторов разряда батарей. Эти утилиты некоторые продавцы закладывают в оболочку (вместе с aygshell). Это может послужить причиной незапуска навигационной программы. Эта библиотека держит первое место по числу неприятностей, связанных с навителом. Начинать решение проблемы нужно с нее. В папку навитела добавлять обязательно

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

bthutil.dll - Содержит функции для управления режимами Bluetooth. Справедливо все написанное для cellcore.dll.
В папку навитела добавлять обязательно

commctrl.dll - интерфейс панелей инструментов. В состав WinCE входит. Тесно связана с aygshell.dll. Если закладываете в папку с прогой aygshell.dll, то желательно класть и совместимую с ней commctrl.dll. Закладка может стать бесполезной, если прибор разлочен до рабочего стола. К моменту запуска программы Explorer уже загружает эту библиотеку из папки Windows.

wininet.dll - используется для интеграции сетевых способностей в любое приложение. Иногда в состав WinCE не входит. Необходимо добавлять в папку программы.
В архиве собраны недостающие библиотеки для Навитела
DLL Win CE.rar


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
VampiДата: Среда, 25.11.2009, 14:33 | Сообщение # 8
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
Как сделать полезными системные папки

Системные папки, такие как Desktop, Programs, StartUp, My Documents, на ПНА совершенно безполезны, так как находятся в ОЗУ и пропадают при выключении питания. На ПНА, умеющих сохранять системный реестр, их можно утилизовать, если подправить веточку реестра

Для WinCE5 HKLM\System\Explorer\Shell Folders
Для WinCE4 HKLM\Explorer\Shell Folders

Если строку My Documents изменить с \My Documents на \sdmmc\My Documents, то указанная папка успешно переедет на флешку. Треки, которые Навител пишет в папку My Documents, не будут пропадать при выключении питания. Навител можно будет запускать напрямую без скриптов. Такой финт можно делать только на дивайсах, умеющих сохранять реестр.
То же самое можно сделать и с другими папками. Но это имеет смысл когда прибор разлочен до рабочего стола.
Очень полезна папка StartUp на флешке (замена в реестре \Windows\StartUp на \sdmmc\StartUp). Если в нее положить линк на запуск Навитела, то при включении прибора сразу запустится Навител. Это очень удобно - просто поверул тумблер питания, и в путь. Такое не сделаешь никакой менюшкой.

Учтите, что на разных дивайсах флешка именуется по разному. Вместо sdmmc нужно ставить свое имя.
Если перенести на флешку папку Desktop, то на рабочий стол можно будет класть ярлыки.

Если вы потеряли или сломали стилус.

Если вы потеряли или сломали стилус. Не отчаиваятесь. Его вполне можно заменить зубочисткой. Прикусите слегка один конец. Им можно водить по экрану. Скольжение легкое, без скрипов. Мне такой стилус нравится даже больше пластмассового. У меня всегда в бардачке лежит упаковка зубочисток. Родного стилуса нет и не было, а иногда он очень полелен.
Второй конец, можно не тупить и использовать по назначению.

Как сделать простое меню на основе Мортскрипта.

Это не сложно и понятно из скрипта:

SetChoiceEntryFormat(25,20,"Tahoma")
ChoiceDefault("Navigation","Выберите программу и нажмите ОК",3,10,"Navitel","Autosputnik","Garmin","Igo","Ozi","Explorer")

Case (1)
Run("SDMMC\Navitel\Navitel.exe")

Case (2)
Run("\SDMMC\Autosputnik\Autosputnik.exe")

Case (3)
XCopy("\SDMMC\Garmin\Garmin\*.*","\Garmin",True,True)
Run("\Windows\Explorer.exe")
Sleep (500)
Runwait("\SDMMC\Garmin\Apps\WM\Que.exe")
XCopy("\Garmin\*.*","\SDMMC\Garmin\Garmin",True,True)
Kill ("explorer.exe")

Case (4)
Run("\SDMMC\Ozi\Ozi.exe")

Case (5)
Run("\SDMMC\Igo8\Igo.exe")

Case (6)
Run("explorer.exe")
EndChoice

Строка:
SetChoiceEntryFormat(25,20,"Tahoma")

- определяет высоту клавиши меню (в пунктах), размер шрифта и имя шрифта
ChoiceDefault("Navigation","Выберите программу и нажмите ОК",1,5,"Navitel","Autosputnik","Garmin","Igo","Ozi","Explorer")

определяет структуру меню

"Navigation", - название меню
"Выберите программу и нажмите ОК", - задает строку,которая появляется на экране
1, - задает номер строки Case, которая будет исполняться по умолчанию (в данном случае Case (1) - Navitel
5, - время ожидания в секундах, после чего будет исполнена строка по умолчанию (в данном случае 5 сек)
"Navitel","Autosputnik","Garmin","Igo","Ozi","Explorer" - через запятую, названия пунктов меню прописанных в Case (1) - Case (6)
Case (1)... Case (6) Метки пунктов меню, после которых прописываются команды
EndChoice - конец меню
На картинке

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

Как пользоваться.

Кладем меню в папку Навигации для вашего прибора, например Mobilenavigator. Обзываем скрипт и ланчер по имени файла навигации, например Mobilenavigator.exe и Mobilenavigator.mscr. Принажатии на кнопку навигации, запустится меню. У Вас будет 5 сек, чтобы принять рещение. Иначе запустится Навител. Не забудте в скрипте проставить имя своей флешки, если она не SDMMC.
В приложении: Mobilenavigator.rar - меню с папкой Mobilenavigator.


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
VampiДата: Среда, 25.11.2009, 14:48 | Сообщение # 9
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
СОВЕТЫ, КАК НЕ УБИТЬ НАВИГАТОР

1. ПУНТКТ ПЕРВЫЙ И САМЫЙ ВАЖНЫЙ:
На данный момент и я думаю в ближайщем будущем, не существует ни одной универсальной разлочки (способной работать абсолютно на всех навигаторах). Выводы делайте сами.

2. Пользуйтесь только теми разлочками в которых описано, что она разлачивает и для каких девайсов предназначена.
3. Никогда не выполняйте unlock, предназначенный для другого девайса если не знаете что он меняет в реестре.
4. Особенно надо быть осторожным при подмене запускающего файла главного меню на лончер или альтернативное меню. Некоторые производители ставят программный сканер, который сверяет версию родного меню и в случае несовпадения блокирует девайс.
5. Не спешите сразу ставить unlock, даже если написано что он предназначен для вашего девайса. Воспользуйтесь поиском и узнайте отзывы тех, кто уже его ставил.
6. Если unlock делается перепрошивкой девайса, имейте ввиду, что батарея должна быть полностью заряжена, девайс подключен к питанию. Во время прошивки не нажимайте никакие кнопки. Дождитесь информации, что процесс завершен. Подождите еще страховoчную минуту.
7. Всегда для страховки делайте Backup того что собираетесь менять или удалять.
Если что-то из "родных" файлов навигатора собираетесь удалить, убедитесь что у Вас имеются копии этих файлов.
8. Не судите об идентичности девайсов по фото, ''близнецы-братья'' могут оказаться от разных ''отцов'' и иметь ''разный набор генов'' (ключи в реестре).
9. Если никогда не работали с реестром, не рискуйте, попросите того кто разбирается, и сделайте копию.
Никогда не меняйте эти ключи в реестре:

[HKEY_LOCAL_MACHINE\Init]
"Launch20" = "device.exe"
"Depend30" = hex:01,00
"Launch30" = "gwes.exe"
"Depend30" = hex:14,00
"Launch60" = "services.exe"
"Depend60" = hex:14,00

10. Особое напоминание тем пользователям, которые умудряются поставить пароль на вход в Windows CE, а потом, после перезагрузки устройства не могут его ввести, т.к. нет виртуальной клавиатуры. Для вас 3 варианта:
1. не ставить никогда пароль,
2. Попробовать подключиться клавиатурой через переходник на миниUSB и ввести ПИН (маловероятно).
3. перепрошить устройство.

11. Кто хочет положить свой девайс на полку или выбросить, шейте первыми попавшимися под руку прошивками. Для каждой модели идет свой и только свой загрузчик, который проверяет прошивку на размер и версию. Никаких универсальных прошивок не бывает.
Если прошивка не от вашего навика, убъете навсегда. (Почти что!)
12. Никогда не пытайтесь записать на ResidentFlash (My Flash Disk, NandFlash...) файлы большего размера чем сама Flash. А также не прерывайте запись на пол-пути. Непреодолимое желание Установить на ResidentFlash побольше всего, чтоб мегабайты не простаивали, в итоге частой записи в не слишком стабильную и надёжную файловую систему FAT16 получаем много потерянных кластеров и перекрёстные ссылки в файлах, приведет в один прекрасный момент к отказу в доступе к коробочке.

13.Для отладки пользуйтесь эмулятором
Навигатор на WinCE (PNA) (Пост #2245774)

14. Продолжение следует...
igolas © - добавлено в связи с появлением текстов на других сайтах.


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
VampiДата: Среда, 25.11.2009, 14:55 | Сообщение # 10
Администратор
Группа: Администраторы
Сообщений: 6377
Награды: 256
Статус: Offline
FAQ для новичков, что такое разлочка, принцип ее работы и зачем она нужна.
(что бы избежать повторения вопросов)

1) ЧТО ТАКОЕ РАЗЛОЧКА: UNLOCK в переводе на русский - программа, блокирующая при включении девайса, автоматическую загрузку стандартных (оригинальных) программ навигатора (ПНА) - оригинальной оболочки.
И выводящая на дисплей альтернативное меню управления программами, как правило содержит в своем составе дополнительный пакет программ,
может также называться альтернативной оболочкой навигатора.

2) ПРИНЦИП ЕЕ РАБОТЫ: Для ее создания как правило используются специальные программные инструменты (скрипты), либо другие специальные программы, которые подменяют два основных файла.ехе навигатора (он же ПНА, девайс - в переводе с английского "устройство").:
1. Файл.ехе, стандартной программы запуска оригинальной (родной) оболочки навигатора, который носит как правило схожее название у всей линейки (модельного ряда) производителя Вашего навигатора.
2. Файл.ехе, который запускает родное меню навигатора, из которого вы выходите в программы навигатора (Оригинальная навигационнаяя программа, просмотрщик изображений, аудио или видео плеер и т.д. и т.п.). Находится он в папке Windows. Если Вам известно, как войти в Windows Вашего навигатора: можете попробовать, тапнуть (кликнуть) два раза стилусом или чем вы пользуетесь, по иконкам расположенным там. Как правило ехе файлы имеют вид какойто иконки - картинки, изображения. Когда после тапа запустится меню навигатора, которые Вы привыкли видеть при включении навигатора, значит это и есть тот самый экзешник.
2.1. Возможен альтернативный вариант первоначального запуска навигационной программы. В таком случае блокируется файл.ехе стандартной навигационной программы.

3) ЗАЧЕМ ОНА НУЖНА: Она позволяет устанавливать на Ваш навигатор (PNA, ПНА, девайс) с помощью ПК (компьютера, ББ - Большой Брат) и не только - различные программы:
- навигационные программы,
- плееры (аудио, видео),
- программы для чтения электронных книг,
- просмотрщики офисных приложений и документов, изображений (фото и т.д.),
- различные редакторы,
- игры и т.д. и т.п.

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

Приведенная здесь информация, вполне доступна для понимания для начинающих пользователей


Вашей благодарности нет предела
В яндекс денежке 41001354690355
 
Форум » Ремонт GPS навигаторов » Service » Что надо знать о навигаторах (PNA/ПНА) (новичкам)
  • Страница 1 из 1
  • 1
Поиск:

Gallasy © 2020 Сайт создан в системе uCoz