Простая в освоении, логичная, не требовательная к ресурсам программа для Linux, FreeBSD, NetBSD, OpenBSD, Solaris, AppleOSX, HP-UX, OpenWrt. Автор Matti Aarnio, OH2MQK начал писать эту программу в 2007 году и с тех пор, постоянно совершенствует её. APRX предлагается в виде исходников и готового пакета для Linux Debian. Также существуют портированные версии для OpenWRT.
Я взял исходники и скомпилировал программу на старом компьютере (CPU 233mHz, ОЗУ 64mb), под управлением Linux Slackware. В самом компьютере нет сетевой платы, поэтому я использовал PCMCIA-карту с сетевым интерфейсом, на фото ниже её видно, торчит справа от TNC2. Компиляция и установка заняла несколько минут и прошла 'как по маслу'. Дальше читайте небольшой обзор, особенности и впечатления.
Сначала, автор предполагал использовать программу APRX только как приёмный APRS
iGate, отсюда и название, но потом он расширил возможности и теперь APRX может
работать в режимах:
- igate только rx
- igate tx/rx
- aprs ретранслятор (ui-digi)
- multi-interface
- шлюз из dprs сети в aprs
Возможны комбинации режимов. Например из двух портов, один работает только на приём, а другой на приём и передачу или работает igate, а digipeater выключен и тд. Таким образом, программа APRX подходит как для простейшего домашнего ui-digi, так и для мощного моногочастотного aprs-шлюза c КВ,УКВ,NET каналами, способного работать круглосуточно.
Автор подчёркивает, что использование программы в режиме Rx-iGate не требует даже радиолюбительской лицензии и доступно любому заинтересованному человеку, что в полной мере отвечает идеям демократии и свободы.
Главная особенность программы APRX, которая и определяет возможные конфигурации, в том что она не требует поддержки AX.25 в ядре, поэтому пакеты ax25-util, libax25, ax25-tools устанавливать не нужно. Более того, её легко добавить к уже работающим системам. Если на компьютере включена поддержка AX.25 в ядре и созданы порты, то программа может с ними работать, через виртуальное соединение.
APRX поддерживает только TNC в режимах KISS, SMACK, FLEXNET, TNC2, DPRS, XKISS. В режиме TNC2, программа принимает пакеты которые идут из эфира на СОМ-порт контроллера, при этом сам TNC2 находится в обычном терминальном режиме с включенным монитором (команды: in terminal и mon on), правда, этот режим не работает с Kantronics-ами. Программа может работать с любой TNC-железкой, как самодельной, так и фирменной. Поддерживается работа с удалённым COM-портом, через TCP.
Как и многие программы под Linux, APRX не имеет интерфейса (режим демона), все настройки производятся в файле конфигурации aprx.conf это экономит ресурсы. Программа будет работать на очень слабых компьютерах и wi-fi роутерах с OpenWRT и железом: 32мб ОЗУ, 4-8мб ПЗУ, 300-400мГц ЦПУ. Есть пример успешного запуска на wi-fi роутере TP-Link TL-WR741ND и других, ссылки в конце статьи.
Настройка конфигурационного файла aprx.conf простая и сводится к указанию позывного, COM-порта, aprsis сервера. Потом можно добавить фильтры, маяки, обьекты, режим работы digi и тд. В конфиге есть необходимые комментарии, всё просто и понятно.
Запуск производится командой aprx, хотя во время первоначальной настройки может потребоваться вывод на консоль некоторых параметров, тогда делаем aprx -d или aprx -dd чтобы видеть ошибки в конфигурации, чем программа занимается, что передаёт и принимает. Передачу своего маяка (beaconmode) можно настроить через все интерефейсы (both), только на сервер (aprsis) или в радиоканал (radio).
Как и другие программы в linux, aprx может писать логи в файлы, о том что она делает, так что в случае неполадок разобраться будет легко. Все заявленные автором функции и режимы работают 'как часы'. В последнюю версию включена экспериментальная поддержка шлюза из D-STAR, D-PRS сетей в APRS.
В комплекте с aprx есть отдельная утилита aprx-stat. Она показывает статистику по всем используемым портам, количество принятых и переданных пакетов в байтах и фреймах, нагрузку на порт в эрлангах. Информация выводится в табличном виде.
Я проверил работу APRX в режимах: igate только rx, igate rx/tx,
igate rx/tx + digipeater. Впечатления самые положительные. Потребляемые ресурсы
минимальные, параллельно с APRX, старый компьютер легко 'крутит' пакетный BBS
OpenBCM и flexnet-netrom-ampr роутер
XNET.
Мой файл конфигурации aprx.conf с которым я
экспериментировал на компьютере, выглядит примерно так:
mycall UA6HJQ-10
<aprsis>
server russia.aprs2.net 14580
filter "m/300"
</aprsis>
<logging>
pidfile @VARRUN@/aprx.pid
rflog @VARLOG@/aprx-rf.log
aprxlog @VARLOG@/aprx.log
</logging>
<interface>
serial-device /dev/ttyS0 9600 8n1 KISS <--- используется порт COM1
callsign $mycall
tx-ok true
</interface>
<beacon>
beaconmode both
cycle-size 27m
beacon symbol "I&" lat "4502.19N" lon "04158.35E" comment "Rx-Tx-iGate from Stavropol"
</beacon>
APRX может брать данные из файла, например от метеостанции или датчиков и
передавать их в маяке. В раздел <beacon> добавляем ещё одну строку
маяка. Делается это так:
beacon via WIDE1-1 file /tmp/meteo.txt
Чтобы в приёмном Rx-iGate активировать функцию дигипитера для других маяков,
нужно в файл aprx.conf, в соответствующие разделы, добавить строки:
<interface>
tx-ok true <--- добавить строку в действующий интерфейс
</interface>
<digipeater>
transmitter $mycall <--- позывной который был указан в строке mycall
<source>
source $mycall
</source>
</digipeater>
Если вы используете TNC2 в KISS режиме (я использую TNC2W с прошивкой PacComm),
то перед запуском APRX его нужно подготовить, для этого запускаем minicom -o и
набираем команды:
txd 32
kiss on
restart
Выходим из minicom Ctrl+A Q и запускаем APRX. Можно пойти другим путём и
автоматизировать этот процесс, добавив две строки в раздел interface, теперь
полностью он будет выглядеть так:
<interface>
serial-device /dev/ttyS0 9600 8n1 KISS
callsign $mycall
tx-ok true
initstring "TXD 32\x0dKISS ON\x0dRESTART\x0d"
timeout 3s
</interface>
Обратите внимание, что TNC2 переводится в KISS режим автоматически при каждом
запуске APRX, а выходить из KISS нужно в ручном режиме Ctrl+192 Ctrl+255.
Минус работы программы с TNC в отсутствии мониторинга приёма информации из
эфира. Узнать работает ли Rx-iGate можно только косвенно, зайдя на
aprs.fi. Теперь пример для двухпортового TNC типа Kantronics KPC-9612:
<interface>
serial-device /dev/ttyS0 9600 8n1 KISS
initstring "TXD 33\x0dIN KISS\x0dRESET\x0d"
timeout 4s
<kiss-subif 0> <--- порт 1200бод
callsign $mycall
tx-ok true
</kiss-subif>
<kiss-subif 1> <--- порт 9600бод
callsign $mycall
tx-ok true
</kiss-subif>
</interface>
Иногда нужно транслировать маяки из сети в радиоэфир (IS-->RF). Это особенно
актуально для тех кто находится в вашем городе и использует iPhone, наладонники,
телефоны с соответствующим софтом. Они могут кидать маяки в сеть, но не могут в
эфир. Таких пользователей можно ретранслировать из сети в ваш местный эфир.
В файл aprx.conf добавляем следующие строки:
<interface>
tx-ok true
</interface>
<digipeater>
transmitter $mycall <--- позывной который был указан в строке mycall
<source>
source APRSIS
relay-type third-party
viscous-delay 5
via-path WIDE1-1
filter b/UA6HJQ-15 <--- позывной который нужно ретранслировать в эфир
filter -b/RR6 <--- позывные которые запрещено ретранслировать из сети, все RR6*
</source>
</digipeater>
В данном примере UA6HJQ-15 может кидать маяки только в сеть с телефона. Услышав
его маяк в сети (IS) APRX переретранслирует его в эфир (RF) и он появляется на
картах у всех кто слушает эту частоту.
Полезные ссылки:
ham.zmailer.org/oh2mqk/aprx - домашний сайт программы
groups.google.com/group/aprx-software - обсуждения
wiki.ham.fi/Aprx.en - краткое описание
DIXPRS - aprs шлюз
SmallMeteo + роутер в APRS и не только...
hamcmw.qrz.ru/pr/ - раздел о пакетной связи и aprs
переделка DIR-300
переделка DIR-600
переделка TL-WR741
переделка Asus WL-500
Протокол AX.25 в Linux Slackware
Игорь UA6HJQ