Внимание! сейчас программа нестабильна. она недостаточно подробно тестирована и документирована.
Внимание! опыт показывает, что связи могут устанавливаться и завершаться до 30 секунд. после установления связей система работает нормально. тестирована конфигурация: Tungsten T с двумя bluetooth-приёмниками, один из которых настроен на NMEA, второй — на SiRF.
Nauta — программа для просмотра, преобразования и записи данных, приходящих на последовательные порты Palmа.
Проект на sourceforge.net
Русская домашняя страница
Это — свободное программное обеспечение; его можно распространять и изменять на условиях Общего общественного соглашения GNU (версия 3 или более поздняя), и так далее.
Оно распространяется с упованием на то, что будет полезным, но безо всякой гарантии, содержит всевозможные (однако же не преднамеренные) ошибки и всё такое прочее.
Точные условия — в COPYING (правда, не по-русски).
Хотя это — свободная (в смысле rms) программа, однако PalmOS — не свободная, и никогда таковой не будет. не знаю, хотят ли нынешние разработчики освободить систему, однако не всё от них зависит, зане основания системы заложены другой компанией. я сознаю это, но пишу программу nauta, чтобы не забыть, как это делается.
Системные требования: PalmOS 3.5 и выше.
Архив содержит nauta 4?15l (изд. испр. первое) (17октябрь), что включает файлы:
nauta.prc | главное приложение |
tiedb.pdb | таблица переходов по нажатиям на клавиши |
asciiparser.prc | поддержка протокола ASCII |
coreform.prc | настройки ядра программы |
gpsform.prc | спутники, состояние измерений |
hexparser.prc | поддержка протокола HEXA |
logform.prc | трассы с комментариями записываются в файл |
menuform.prc | меню |
frmn.pdb | настройки для menuform.prc |
navform.prc | координаты, скорость |
nmeaparser.prc | поддержка протокола NMEA |
prefsform.prc | настройки |
rmlog.prc | программа для удаления накопленных данных |
rtcmparser.prc | простой анализатор для DGPS |
scrollform.prc | прокрутка приходящих данных |
sirfparser.prc | поддержка протокола SiRF |
skyform.prc | то же, что в gpsform.prc, в графическом виде. |
statform.prc | текущие координаты, средние, оценка средних отклонений. |
syncform.prc | Определяет разность времени пальма и ВКВ, подстраивает часы |
sysform.prc | сведения о Пальме |
trackform.prc | рисует пройденные пути |
tsiparser.prc | поддержка протокола TSIP |
$ make utilsтогда утилиты в каталоге bin/utils/ долны появиться.
Главное приложение. у него нет своих окон, кроме вспомогательных. управляет всеми остальными. в tiedb.pdb читает таблицу переходов между окнами по нажатию кнопок. он протоколирует внутренние события в /var/lib/nauta/log. их можно прочесть после преобразования программой db2txt. распространяемая версия не чересчур многословна, однако протокол нужно периодически удалять. я пользуюсь FileZ и своей rmlog.
Входящие данные от источников в анализаторы (..parser) направляются. анализатор данные переводит в сообщения, потом сообщения передаются текущему окну (..form). окно, в свою очередь, отображает сообщения по-свойски. определённые анализаторы могут быть опорными. такой анализатор из своего источника дифференциальные поправки производит и засылает в другие источники.
Канал — это совокупность источника, опоры, анализатора и файла, куда записываются данные. данные могут отображаться или нет, записываться или нет. всё это в окне настроек (prefsform.prc) можно задать. дополнительно есть возможность быстрого выбора всех отображаемых источников сразу, одного или ни одного из них. это реализуется в некоторых формах выпадающим списком в левой верхней части. несколько каналов могут работать одновременно. ныне только trackform.prc различает сообщения, приходящие от разных источников. параллельные каналы можно использовать для записи данных сразу из нескольких источников. разумеется, насколько аппаратная часть позволяет.
Все данные в текстовые сообщения без преобразований пересылает. эти сообщения можно просмотреть в окне Порт (scrollform.prc)
Ядро программы: состояние и настройки.
Состояние измерений, количество и список используемых спутников, направления, в которых они видны, геометрические факторы.
Отличается от asciiparser.prc тем, что данные в шестнадцатеричный вид переводит.
Текущие координаты с примечаниями пользователя записываются в файл. в верхней части текущие измерения и свободная память выводятся. ниже — интервал записи измерений в секундах. дальше примечания, которые можно выбирать из списка, удалять, править и добавлять в список. выбирать примечания из списка можно обычным для PalmOS способом, либо кнопками >Up< и >Down<, или набирая стилем первую букву примечания. в нижней части определяется файл, в который будут записаны примечания и координаты.
Если запись проводится на внешнюю карту памяти, записанный файл можно просто перенести на менее портативную машину. в файле будут строки вроде этих:
@Palm date: 23/6/1976 63230000 200580001 134880002 10200 2 @GPS date: 23/6/1976 63240000 200580003 134880004 10200 3 #кудыкина гора 63257000 200580005 134880006 10200 1 63270000 200580007 134880008 10200 2 #дуб (или ясень?) 63280000 200580009 134880010 10200 2 63290000 200580001 134880003 10200 2 #глубокая лужа 63310000 200580002 134880004 10200 2
Строки, начинающиеся на "#" — это примечания пользователя. "@Palm date:" — дата по времени PalmOS; "@GPS date:" — дата из навигационного приёмника (всемирное координированное время). в остальных строках записаны навигационные определения: в первой колонке время в миллисекундах, во второй — широта в миллисекундах, в третьей — долгота в миллисекундах, в четвёртой — высота в сантиметрах, в пятой — качество измерений (0 - нет измерений, 2 - двумерные, 3 - трёхмерные).
Если файл записан во внутреннюю память, утилита db2txt приведёт её к такому же виду.
В этом окне находятся кнопки для перехода к другим окнам. расположение кнопок записано в frmn.pdb. если этого файла не находит, создаёт новый, в котором размещает ссылки на все имеющиеся окна. к самому этому окну можно перейти кнопкой >Menu<
Время, координаты, скорость крупными буквами.
Анализатор NMEA. может прочесть о структуре сообщений в своей базе данных (dbnmea.pdb), но и без неё знает изрядно сообщений. в настоящий момент dbnmea.pdb в архив не включается, поскольку толку от неё весьма мало.
Настройки каналов.
Анализатор для ввода дифференциальных поправок. без преобразования все входящие данные пересылает в назначенные источники.
Здесь пробегают приходящие данные.
Анализатор SiRF.
Время, координаты и геометрические факторы пишет, отношение сигнал-шум и спутники на небе рисует.
Время, текущие и усреднённые координаты выводятся. оценивается среднеквадратическое отклонение. конечно, это не величина ошибки, а только разброс измерений за время наблюдения.
Время пальма, ВКВ и разница между ними. может подстраивать время пальма.
Параметры КПК: свободная память, время, последовательные порты, серийный номер.
Чертит пройденные пути отдельно для каждого подключенного источника. текущее положение приёмника отмечается номером канала. в левом верхнем углу выводится масштаб.
Анализатор TSIP.
$ db2txt nautadb.pdb nautadb.dat
Результат запишется в nautadb.dat.
Используй их, чтобы создавать или менять положения клавиш у menuform.prc. формат данных пока не описываю, можно посмотреть пример в исходниках.
То же — для таблицы переходов tiedb.pdb.
См. справки в программе и документацию NMEA 0183. Описание TSIP можно нарыть на Trimbleной домашней страничке. Протокол SiRF, кажется, официально не документирован, но найти его можно.
Инеев<ineiev@users.sourceforge.net>, супер V 93