Внимание! сейчас программа нестабильна. она недостаточно подробно тестирована и документирована.
Внимание! опыт показывает, что связи могут устанавливаться и завершаться до 30 секунд. после установления связей система работает нормально. тестирована конфигурация: Tungsten T с двумя bluetooth-приёмниками, один из которых настроен на NMEA, второй — на SiRF.

nauta 4?15l (изд. испр. первое) (17октябрь)

Что это

Nauta — программа для просмотра, преобразования и записи данных, приходящих на последовательные порты Palmа.

Где это

Проект на sourceforge.net
Русская домашняя страница

Распространение

Это — свободное программное обеспечение; его можно распространять и изменять на условиях Общего общественного соглашения GNU (версия 3 или более поздняя), и так далее.

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

Точные условия — в COPYING (правда, не по-русски).

Хотя это — свободная (в смысле rms) программа, однако PalmOS — не свободная, и никогда таковой не будет. не знаю, хотят ли нынешние разработчики освободить систему, однако не всё от них зависит, зане основания системы заложены другой компанией. я сознаю это, но пишу программу nauta, чтобы не забыть, как это делается.

Что нового

Главные особенности

Системные требования: PalmOS 3.5 и выше.

Содержимое дистрибутива

Архив содержит nauta 4?15l (изд. испр. первое) (17октябрь), что включает файлы:

Установка

  1. Удалить предыдущую версию программы, если установлена.
  2. Установить нужный вариант файлов. обязательно установить nauta.prc. остальные необязательны; но если установить только nauta.prc, ничего отображаться не будет. считается, что все комбинации файлов одинаково стабильны (однако следует помнить об условиях распространения). если menuform.prc не находит frmn.pdb или nauta.prc — tiedb.pdb, эти базы данных автоматически генерируются.
  3. Утилиты для преобразования данных в двоичном виде не включены в архив, потому что они зело переносимы, и было бы слишком утомительно транслировать их под все возможные системы. их можно собрать, если есть GNU make, bash gcc и sed (например, под *nix, в том числе cygwin). достаточно набрать
    $ make utils
    тогда утилиты в каталоге bin/utils/ долны появиться.

Описания модулей

nauta.prc

Главное приложение. у него нет своих окон, кроме вспомогательных. управляет всеми остальными. в tiedb.pdb читает таблицу переходов между окнами по нажатию кнопок. он протоколирует внутренние события в /var/lib/nauta/log. их можно прочесть после преобразования программой db2txt. распространяемая версия не чересчур многословна, однако протокол нужно периодически удалять. я пользуюсь FileZ и своей rmlog.

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

Канал — это совокупность источника, опоры, анализатора и файла, куда записываются данные. данные могут отображаться или нет, записываться или нет. всё это в окне настроек (prefsform.prc) можно задать. дополнительно есть возможность быстрого выбора всех отображаемых источников сразу, одного или ни одного из них. это реализуется в некоторых формах выпадающим списком в левой верхней части. несколько каналов могут работать одновременно. ныне только trackform.prc различает сообщения, приходящие от разных источников. параллельные каналы можно использовать для записи данных сразу из нескольких источников. разумеется, насколько аппаратная часть позволяет.

asciiparser.prc

Все данные в текстовые сообщения без преобразований пересылает. эти сообщения можно просмотреть в окне Порт (scrollform.prc)

coreform.prc

Ядро программы: состояние и настройки.

gpsform.prc

Состояние измерений, количество и список используемых спутников, направления, в которых они видны, геометрические факторы.

hexparser.prc

Отличается от asciiparser.prc тем, что данные в шестнадцатеричный вид переводит.

logform.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 приведёт её к такому же виду.

menuform.prc

В этом окне находятся кнопки для перехода к другим окнам. расположение кнопок записано в frmn.pdb. если этого файла не находит, создаёт новый, в котором размещает ссылки на все имеющиеся окна. к самому этому окну можно перейти кнопкой >Menu<

navform.prc

Время, координаты, скорость крупными буквами.

nmeaparser.prc

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

prefsform.prc

Настройки каналов.

rtcmparser.prc

Анализатор для ввода дифференциальных поправок. без преобразования все входящие данные пересылает в назначенные источники.

scrollform.prc

Здесь пробегают приходящие данные.

sirfparser.prc

Анализатор SiRF.

skyform.prc

Время, координаты и геометрические факторы пишет, отношение сигнал-шум и спутники на небе рисует.

statform.prc

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

syncform.prc

Время пальма, ВКВ и разница между ними. может подстраивать время пальма.

sysform.prc

Параметры КПК: свободная память, время, последовательные порты, серийный номер.

trackform.prc

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

tsiparser.prc

Анализатор TSIP.

Утилиты

db2txt

Извлекает данные из файлов, которые nauta в памяти создаёт, напр., /var/lib/nauta/log, /var/lib/nauta/0. вызывается так:
$ db2txt nautadb.pdb nautadb.dat

Результат запишется в nautadb.dat.

mndb2txt и txt2mndb

Используй их, чтобы создавать или менять положения клавиш у menuform.prc. формат данных пока не описываю, можно посмотреть пример в исходниках.

tiedb2txt и txt2tiedb

То же — для таблицы переходов tiedb.pdb.

Дополнительные сведения

См. справки в программе и документацию NMEA 0183. Описание TSIP можно нарыть на Trimbleной домашней страничке. Протокол SiRF, кажется, официально не документирован, но найти его можно.

Автор

Инеев<ineiev@users.sourceforge.net>, супер V 93