Ero sivun ”Aprx” versioiden välillä

Radioamatööriwikistä
Siirry navigaatioon Siirry hakuun
>Oh2mqk
p (luokittelusäätöä)
>Oh2mqk
p (Aprx:n muistikulutuksesta)
 
(45 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
<div class="floatright">__TOC__</div>
<div class="floatright">__TOC__</div>
'''APRX''' on [[APRS-IS]]-[[igate|Rx-iGate]] käyttöön tarkoitettu ohjelmisto jossa määräävänä suunnitteluperiaattena on ollut ns. "minimi-teknologia".
''There is also english translation of this document: [[Aprx.en]]''
 
'''APRX''' on alunperin [[APRS-IS]]&mdash;[[APRS iGate|Rx-iGate]] käyttöön tarkoitettu ohjelmisto.  Sittemmin siihen on lisätty myös täysi [[APRS Digipiitteri|Digipiitteri]] toiminnallisuus ja [[APRS iGate|Tx-iGate]] toiminta.


Ohjelmisto asennetaan sopivaan UNIX:in kaltaiseen systeemiin ja sen konfiguraatiotiedosto säädetään kohdalleen.
Ohjelmisto asennetaan sopivaan UNIX:in kaltaiseen systeemiin ja sen konfiguraatiotiedosto säädetään kohdalleen.
Sitten se kykenee välittämään radiolta kuultuja APRS paketteja APRS-IS verkkoon.
Sitten se kykenee välittämään radiolta kuultuja APRS paketteja APRS-IS verkkoon.
[[APRS Digipiitteri]] tarkoittaa verkon laitetta, joka tunnistaa paketista että sitä pitäisi jaella pidemmälle ja uudelleenlähettää paketin, mikäili paketin osoitekentässä olevalla jakelumäärittelyllä on vielä hyppyjä jäljellä.
Tässä versiossa tarjolla on myös [[Viskoosinen APRS Digipiitteri]], joka kuuntelee kanavaa pienen hetken ja ja laskee muutaman sekunnin viiveen aikana kuulemansa kopiot toistettavasta kandidaattipaketista. Jos pakettia on kuultu lähettimen kanavalla vain yhden kerran, vain silloin Viskoosinen APRS Digipiitteri toistaa sen kanavalle.


Esimerkkejä sopivista laitteistoista mainitaan artikkelissa [[OH2RDY]], vaikkakin kyseinen systeemi on kaksisuuntainen [[igate|Rx/Tx-iGate]].
Ohjelmistosta on tarjolla valmiit binääripaketit muutamiin Fedora ja Debian ympäristöihin, muuallekin se on käännettävissä helposti lähdekoodista.


'''''Pelkkänä vastaanottimena toimivan Rx-iGate:n rakentaminen ei tarvitse automaattiaseman lupaa, vaan kuka tahansa voi sellaisen laittaa ajoon.'''''
Esimerkkejä sopivista laitteistoista mainitaan artikkeleissa [[OH2RDK]] ja [[OH2RDY]]. Softa pyörii ainakin myös [[OH6NT-5]] ja OH6AC asemilla eBox-2300 "tupakkiaskeissa" Debianilla (ks. OH2RDK yllä).  


'''''Pelkkänä vastaanottimena toimivan Rx-iGate:n rakentaminen ei tarvitse automaattiaseman lupaa, eikä suomessa edes radioamatöörilupia, vaan kuka tahansa voi sellaisen laittaa ajoon.'''''
'''[[APRS Digipiitteri]] ja Tx-iGate vaativat automaattiaseman luvan lukuunottamatta tilapäisesti omistajan valvovan silmän alla esim. kesämökillä hetkittäin käynnissä olevaa asennusta.'''
== Jakelu ==
Ohjelmisto on saatavilla:
::http://ham.zmailer.org/oh2mqk/aprx/
Englanninkielinen käsikirja on saatavilla:
::http://ham.zmailer.org/oh2mqk/aprx/aprx-manual.pdf


== Ominaisuudet ==
== Ominaisuudet ==


Tämä ohjelmisto osaa mm. seuraavat asiat:
Alunperin tämä ohjelma kirjoitettiin tarpeeseen tihentää verkkoa, jolla APRS vastaanottimet syöttävät kuultuja tietoja APRS-IS verkkoon, mistä niitä saa sitten katsella vaikkapa http://aprs.fi/ palvelun kautta.
 
Uusi versio tarjoaa niin yksinään olevan APRS pakettien Digipeater toiminnan, kuin myös yksi ja kaksisuuntaiset iGate toiminnot.
 
Tavoitteena on ollut minimaalinen resurssitarve, eli ohjelmisto ei tarvitse asennusympäristöltä itseään varten mitään sellaisia kirjastoja ja ominaisuuksia mitä standardi POSIX ns. LIBC ei sisällä.
Näin ohjelmiston resurssitarvetta on pienennetty mahdollisimman vähään ja se on helposti asennettavissa kaikkiin POSIX-yhteensopiviin alustoihin ja erityisesti se sopii hyvin pieniin "sulautettuihin" (Linux) koneisiin.
Yleiskäyttöisessä i386 Linux koneessa iGate:ksi+digipeateriksi säädetyn Aprx:n kirjoitettavan käyttömuistin tarve on luokkaa 250 kB.
 
Rx-iGate systeemin minimaalinen konfiguraatio on:
  mycall  '''OH2XYZ'''
  <aprsis>
    server  rotate.aprs.net  14580
  <aprsis>
  <interface>
    serial-device '''/dev/ttyS0  19200'''  8n1    KISS
  </interface>
 
Yksinään olevan APRS Digipeaterin minimaalinen konfiguraatio on:
  mycall  '''OH2XYZ'''
  <interface>
    serial-device '''/dev/ttyS0  19200'''  8n1    KISS
  </interface>
  <digipeater>
    transmitter  $mycall
    <source>
        source    $mycall
    </source>
  </digipeater>
 
Jos kyseessä on Linux systeemi jossa on jo radiomodeemeja kiinni ''kissattach'' komennolla, tarvitaan vielä "ax25-rxport" määrityksiä.  (Tosin ''kissattach'':in konfiguraatio on paljon mutkikkaampaa kuin ''Aprx'':n...)
 
Jotta esim. http://aprs.fi/ palvelu kertoo enemmän tästä yhdyskäytävästä mm. listaten sen kuulemat sanomat, tarvitaan vielä ''beacon'' määritys - joka perinteisesti on kaikkein virheherkintä mitä tässä voi tehdä.
Ensiksi pitää tietää iGate aseman koordinaatit asteina ja minuutteina, esimerkiksi katsomalla ne vaikkapa http://aprs.fi/ palvelusta karttapohjalta.
Sitten määritetään:
::<beacon>
::'''beacon for OH1XYZ-15 symbol "R&amp;" lat "6020.22N" lon "02504.44E"'''
::::''' comment "..."'''
::</beacon>
Koordinaattikenttien koot pitää huomata, longitudissa asteita on 3 numeroa, etunollat mukana!  Minuutit ovat kahdella numerolla ja kahdella desimaalilla, piste on pakollinen ja N/S E/W ovat pakollisia isolla kirjoitettuna.
Yllä annettu symboli "R&amp;" tarkoittaa Rx-iGatea.
Yllä kommentti-parametri on teknisistä syistä kirjoitettu eri riville kuin muut, konfiguraatioon ne laitetaan kaikki samalle riville.
 
Koska tämän ohjelmiston pitää toimia myös äärimmäisen muistirajoitteisissa ympäristöissä, ei ole nähty mieltä tehdä tälle mitään muistisyöppöjä konfiguraatiotyökaluja, vaan asentajan tulee olla sinut tekstitiedostomuotoisen konfiguroinnin säätämisen kanssa.
 
Ohjelmisto sisältää myös ns. "Erlang monitor" mekanismin, joka kerää mittaustietoa radiokanavan käyttöasteesta telemetriana, jota voi katsoa mm. http://aprs.fi/ webistä.
 
=== Käyttöjärjestelmät ===
Toimivaksi kokeillut:
* Linuxit (Fedora, RedHat, SuSE, Debian)
* OpenWrt (pieni sulautettu linux, OpenWrt --with-pthreads,  NSLU2 --with-pthreads)
* Apple OSX
"Pitäisi toimia":
* FreeBSD/NetBSD/OpenBSD
* Solaris / OpenSolaris
* HP-UX
* Windows+CygWin
(tai lyhyemmin: kaikki POSIX yhteensopivat käyttöjärjestelmät)
 
Kaikkiin maailman käyttöjärjestelmiin ei ole valmiita asennuspaketteja, eikä integroituja managerointityökaluja.
Lähdekoodista kuitenkin osaava saanee paketin kääntymään vähällä vaivalla.
 
=== Radiomodeemien liitännät ===
Kuuntelee ns. [[KISS]]-protokollaa puhuvia radiomodeemeja sarjaportissa, tukee myös TNC2 monitorointiformaattia sarjaporttiinsa puhuvia [[APRS digipiitteri|APRS digipiittereitä]]:
* Tukea tarjotaan rajoittamattomalle määrälle sarjaportteja yhdessä koneessa
* Toimii myös USB sarjaporteilla (edellyttäen että TNC myös tajuaa USB-RS232:n tasot!)
* Toimii myös etäpalvelimessa olevalla "TCP STREAM" palvelulla näkyvässä sarjaportissa (esim. Cisco routerien AUX portit.)
Tukee koneessa mahdollisesti olevaa [[AX.25]] verkkoprotokollaa (lähinnä vain Linux:it) ja siihen liitettyjä radiomodeemeja.


* Ei tarvitse koneen sisäistä [[AX.25]] protokollatukea, vaan toimii myös fyysisten sarjaporttien kanssa.
== APRS Rx-iGate ominaisuudet ==
* Kuuntelee ns. KISS-protokollaa puhuvia radiomodeemeja tavallisessa sarjaportissa (perinteisessä ja USB mallisessa, kunhan se on UNIXissa tuettua mallia - lähes kaikki ovat)
* Kytkeytyy yhdellä kutsumerkkiSSID:llä [[APRS-IS]] runkoverkkoon kaikkien radioporttiensa datan välittämiseksi, mutta mahdollistaa myös yksittäisten radioporttien erillisen raportoinnin APRS-IS:ään.
** Tukea tarjotaan 16 sarjaportille yhdessä koneessa, määrä riittää useimmissa tapauksissa..
* Linux-koneessa jossa on sisäinen [[AX.25]] protokollatuki, kykenee kuuntelemaan kaikkien AX.25:een kytkettyjen porttien kautta tulevaa liikennettä
* Tarvitsee minimaalisen apuohjelmistomäärän koneessa jossa sitä ajetaan, ei mitään AX.25 kirjastoja, ei widgettikirjastoja, threadeja, tai edes C++ ajoaikaisia kirjastoja muistitilaa viemässä.
* Kytkeytyy yhdellä kutsumerkkiSSID:llä [[APRS-IS]] runkoverkkoon kaikkien radioporttiensa datan välittämiseksi.
* Tietää että seuraavat tokenit AX.25:n osoitteen VIA-kentissä ovat merkki että pakettia ei pidä välittää APRS-IS verkkoon:
* Tietää että seuraavat tokenit AX.25:n osoitteen VIA-kentissä ovat merkki että pakettia ei pidä välittää APRS-IS verkkoon:
** RFONLY, NOGATE, TCPIP, TCPXX
** RFONLY, NOGATE, TCPIP, TCPXX
Rivi 25: Rivi 100:
** WIDE*, RELAY*, TRACE*, TCPIP, TCPXX, NOCALL, N0CALL
** WIDE*, RELAY*, TRACE*, TCPIP, TCPXX, NOCALL, N0CALL
* On välittämättä kaikki kyselyviestit ("?")
* On välittämättä kaikki kyselyviestit ("?")
* Prosessoi "3rd-party" sanomat katsoen paketin sisään ja analysoiden siellä olevan osoitetiedon ja datan
* Prosessoi "3rd-party" sanomat katsoen paketin sisään ja analysoiden siellä olevan osoitetiedon ja datan mahdolliset välityskiellot
* Sisältää "Erlang monitori" mekanismin, joka kerää tietoa radiokanavan käyttöasteesta.
* Välittää datan [[APRS-IS]] verkkoon kyseisen verkon standardimuodossa


[http://ham.zmailer.org/oh2mqk/aprx/aprx.8.html aprx(8) manuaalisivu] (englanniksi)
== APRS Tx-iGate ominaisuudet ==
APRS Tx-iGate on implementoitu yhtenä datalähteenä (<nowiki><source></nowiki> -lohkona) digipeaterille.
 
APRS Tx-iGate:
* Seuraa perussääntöjä jotka kuvataan dokumentissa http://www.aprs-is.net/IGateDetails.aspx
* Sille voi määritellä lisää suodinsääntöjä jotka tutkivat viestin sisältöä päättääkseen, halutaanko kyseinen paketti välittää APRS-IS:stä radiokanavalle, vai ei.
 
 
APRS Tx-iGate:n lisääminen Aprx:n konfiguraatioon tarvitsee sopivan <nowiki><source></nowiki> lohkon digipeaterin määrityksiin:
 
  <aprsis>
    server  rotate.aprs.net  14580
    '''#filter      b/a0good'''  # Tx-iGate everything always from this call
  </aprsis>
  <digipeater>
    transmitter  $mycall      # radio port
    <source>
        source    $mycall      # radio port
    </source>
    '''<source>'''
        '''source        APRSIS'''
        '''relay-mode    3rd-party'''
        '''viscous-delay 5'''
        '''#filter      b/a0good'''  # Tx-iGate everything always from this call
        '''#filter      -b/aa0bad'''  # Tx-iGate never anything from this call
    '''</source>'''
  </digipeater>
 
== Kompleksiset ominaisuudet ==
Ohjelmistolla kykenee myös kompleksisiin juttuihin joita ei muualta löydy.
 
=== Sarjaportit ===
* Sarjaportit voivat olla fyysisesti kiinni koneessa, kunhan tarjoavat POSIX semantiikkaa (myös USB sarjaportit toimivat tietyin edellytyksin, ks. yllä).
* Sarjaportit voivat olla jossain muualla internetissä, kunhan ovat tavoitettavissa TCP/IP protokollalla.
* Sarjaportteja voi olla periaatteessa rajoittamaton määrä
* Sarjaportit osaavat KISS:iä muutamina variantteina
* Osaa multipleksoida modeemeja KISS linjalla
* Sarjaportit osaavat myös vastaanottaa TNC2 monitoriformaattia
Linux-koneissa systeemi ymmärtää myös koneen sisäiseen AX.25 verkkoon kytketyt radiot
 
=== Mahdollisesti monia kutsumerkkejä ===
Kaikista porteista vastaanotettu APRS liikenne tarjotaan APRS-IS verkkoon vastaanotinkohtaisella kutsumerkillä.
 
=== Radiokanavan varausasteen mittaus ===
APRS radiokanavan varausasteesta oli ennen vuotta 2008 ollut kaikenlaisia huhuja, mutta ei mitään mittausdataa.
Tämän puutteen ratkaisemiseksi Aprx-ohjelmistoon rakennettiin ''Erlang-estimaattori'', joka "arvaa" kanavan varausasteen vastaanotettujen pakettien datamäärän mukaan.
 
Tällainen mittaus aliarvioi kanavan varausasetta, mutta 0.01 Erlangia vs. 0.10 Erlangia on kuitenkin selkeästi erilainen liikennemäärä.
 
=== Varausasteen telemetria radioteitse ===
Internetyhteydettömän digipeaterin telemetrian saa lähtemään myös radioteitse käyttämällä tällaista määritystä:
  <telemetry>
        transmitter  $mycall
        via          TRACE1-1
        source      $mycall
  </telemetry>
Tarkemmat ohjeet ''aprx-manual.pdf'' tiedostossa.
 
=== Monta digipeateria ===
Kun Aprx palvelimella on määriteltynä useampia lähettimiä, jokaiselle jota halutaan käyttämään jonkun asian digipeattaamiseen voi laittaa omat <nowiki><digipeater></nowiki> lohkon jolla on omat erilliset toimintasääntönsä.
 
Tällä tavalla voidaan rakentaa:
* Cross-band / cross-channel digipeatereita
* Digipeatereita joilla on diversiteettivastaanottimia
* Digipeatereita joilla on hajautettu vastaanotinverkosta (yhteydet mielellään jotenkin muuten kuin radiolla)
 
=== Viskoosinen digipeateri ===
Digipeaterilla one erityinen ''jähmeä'' (''viskoosinen'') toimintatila, jossa se laittaa saapuneet APRS paketit lyhyeen viivevarastoon (aikamäärä on säädettävissä 1-9 sekuntiin ja yleensä 5 sekuntia on sopiva.)
Kyseisen viiveen aikana systeemi laskee kuulemansa paketit ja jos se on kuullut kyseisen paketin vain kerran, sitten se paketti syötetään digipeater-toimintoon.
 
Katso ''[[Viscous APRS Digipeater]]'' artikkelia esimerkistä, miten lähetystiheys muuttuu, kun digipeater asetetaan ''viskoosiseen'' tilaan.
 
== Asennus ==
Tuoreimmat valmiit binääripaketit tehdään yleensä Debian Linuxille ja ne toimivat
suunnilleen kaikissa Debian johdannaisissa mm. Ubuntut.
 
  # dpkg -i aprx_1.99.382-1_i386.deb
 
Oletusasennuspaketti vie paikalleen konfiguraatiotiedoston <code>/etc/aprx.conf</code> ja kaikki tarpeelliset käynnistystiedostot jotta ohjelma käynnistyy systeemin käynnistyessä.
Oletusasennuspaketissa kuitenkaan mikään ei toimi, vaan:
* Joudut käsikirjan kanssa muokkaamaan <code>/etc/aprx.conf</code> tiedostoa
* Joudut muokkaamaan <code>/etc/default/aprx</code> tiedostoa.
 
Sitten ohjelma käynnistyy ja pysähtyy komennoilla:
  # /etc/init.d/aprx start
  # /etc/init.d/aprx stop
 
Debianissa uuden ohjelmaversion asennus merkitsee hyvin usein myös kysymystä "saanko ylikirjoittaa konfiguraatiotiedoston?"
Siihen vastataan aina "N", jos ei haluta tehdä kaikkea säätöä uusiksi.


== Konfigurointi ==
== Konfigurointi ==
  #
Katso esimerkkejä aprx-manual.pdf tiedostosta.
#  Sample configuration file for the APRX  -- an Rx-only APRS iGate
#
#
# The  mycall  parameter:
# Station call-id used for relaying APRS frames into APRS-IS.
#
#mycall          N0CALL-1
# APRS-IS server name and portnumber.
# Every reconnect does re-resolve the name to IP address.
# There can be up to 4 system definitions without code modification,
# they are used in round-robin fashion.  Heartbeat and filter
# definitions must follow each server definition.
#
#aprsis-server    finland.aprs2.net 14580
#aprsis-server    rotate.aprs.net  14580
# Some APRS-IS servers tell every about 20 seconds to all contact
# ports that they are there and alive. Others are just silent.
# Enable only if the server you use does present heartbeat.
# Recommended value 3*"heartbeat" + some  -> 120 (seconds)
#
#aprsis-heartbeat-timeout  120
# APRS-IS server may support some filter commands.  Although this
# program does not transmit out to RF, filter rules can be used to
# ensure that there is sufficient dataflow from APRS-IS server to
# this program that it very likely will not timeout within network
# monitoring timeout..
#
#aprsis-filter "some filter specs in quotes"
# AX.25 filters block selected messages matching on selected regular
# expressions.  The expressions are case sensitive, and AX.25 address
# elements are in all uppercase text.  There can be unlimited number
# of patterns, type fields are four: "source", "destination", "via",
# and "data".  These patterns can be used in addition to built-in
# hard-coded reject rules listed in documentation.
#
#ax25-filter source      "^NOCALL"
#ax25-filter destination "^NOCALL"
#ax25-filter via        "^NOGATE"
#ax25-filter data        "^\\?"
# ax25-rxport limits reception on listed AX.25 ports, if system
# happens to use AX.25 ports also for other purposes than APRS.
# If this option is not used, all reception ports are accepted.
# Number of port definitions here is unlimited.
#
#ax25-rxport ax0
#ax25-rxport ax1
# rflog defines a rotatable file into which all RF-received packets
# are logged.
#
#rflog /tmp/aprx-rf.log
# aprxlog defines a rotatable file into which most important
# events on APRS-IS connection are logged, namely connects and
# disconnects.
#
#aprxlog /tmp/aprx.log
# erlangfile defines a mmap():able binary file, which stores
# running sums of interfaces upon which the channel erlang
# estimator runs, and collects data.
# Depending on the system, it may be running on a filesystem
# that actually retains data over reboots, or it may not.
# With this backing store, the system does not loose cumulating
# erlang data over the current period, if the restart is quick,
# and does not stradle any exact minute.
# (Do restarts at 15 seconds over an even minute..)
# This file is around 0.5 MB per each interface talking APRS.
# Things go BADLY WRONG if this file can not be created or
# it is corrupted!
#
# Built-in default value is: /tmp/aprs-erlang.dat
#
erlangfile /tmp/aprx-erlang.dat
# erlang-loglevel is config file edition of the "-l" option
# pushing erlang data to syslog(3).
# Valid values are (possibly) following: NONE, LOG_DAEMON,
# LOG_FTP, LOG_LPR, LOG_MAIL, LOG_NEWS, LOG_USER, LOG_UUCP,
# LOG_LOCAL0, LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4,
# LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7.  If the parameter value is
# not acceptable, list of accepted values are printed at startup.
#
#erlang-loglevel NONE
# erlang-log1min option logs to syslog/file also 1 minute
# interval data from the program. (In addition to 10m and 60m.)
#
#erlang-log1min
# The  serialport  option.  Parameters are:
#  - /dev/ttyUSB1    -- tty device
#  - 19200          -- baud rate, supported ones are:
#                        1200, 2400, 4800, 9600, 19200, 38400
#  - 8n1            -- 8-bits, no parity, one stop-bit,
#                        no other supported modes
#  - KISS/XORSUM/BPQCRC/SMACK/CRC16  -- KISS mode
#
# There can be up to 16 serialport definitions in this file!
#
#serialport  /dev/ttyUSB1  19200 8n1    KISS
# Additional options for the "serialport" line.
#
# "initstring" is of two parts, the keyword, and then a string.
#    initstring "\xC0\xC0\xFF\xC0\r\nMO 0\rKISS $01\r"
#
#  "KISS"                  - plain basic KISS mode
#  "XORSUM" alias "BPQCRC" - KISS with BPQ "CRC" byte
#  "SMACK" alias "CRC16"  - KISS with better CRC
# The  netbeacon  option.
# Parameter string (in quotes) is sent to network (without quotes)
# at varying intervals --  1200-1800 seconds in between restransmits.
# This interval is intentionally randomized.
# Multiple netbeacons are evenly distributed for each time period,
# or at least 3 seconds apart.  First netbeacon is sent to network
# 30 seconds after connection to APRS-IS.
  #
# There can be multiple netbeacon options.
# Symbol  R&  is for "rx-only iGate"
#
#netbeacon  "!6016.35NR02506.36E&aprx - an Rx-only 'iGate'"


== Jakelu ==
Kun olet muokannut konfiguraation sopivammaksi, kokeile mitä ohjelma on siitä mieltä:
Ohjelmisto on saatavilla:
  # aprx -d -f /etc/aprx.conf
* http://ham.zmailer.org/oh2mqk/aprx/
(ohjelma sulkeutuu Control-C näppäilyllä)
 
Jos se ei huutele mitään "ERROR:" tekstejä, se kelpaa ainakin konfiguraation lukukoneistolle.
 
Sammuta mahdollinen aiempi ilmentymä ohjelmaa:
  # /etc/init.d/aprx stop
käynnistä uusi:
  # /etc/init.d/aprx start


[[Category:APRS]]
[[Category:APRS]]

Nykyinen versio 14. kesäkuuta 2010 kello 01.01

There is also english translation of this document: Aprx.en

APRX on alunperin APRS-ISRx-iGate käyttöön tarkoitettu ohjelmisto. Sittemmin siihen on lisätty myös täysi Digipiitteri toiminnallisuus ja Tx-iGate toiminta.

Ohjelmisto asennetaan sopivaan UNIX:in kaltaiseen systeemiin ja sen konfiguraatiotiedosto säädetään kohdalleen. Sitten se kykenee välittämään radiolta kuultuja APRS paketteja APRS-IS verkkoon. APRS Digipiitteri tarkoittaa verkon laitetta, joka tunnistaa paketista että sitä pitäisi jaella pidemmälle ja uudelleenlähettää paketin, mikäili paketin osoitekentässä olevalla jakelumäärittelyllä on vielä hyppyjä jäljellä. Tässä versiossa tarjolla on myös Viskoosinen APRS Digipiitteri, joka kuuntelee kanavaa pienen hetken ja ja laskee muutaman sekunnin viiveen aikana kuulemansa kopiot toistettavasta kandidaattipaketista. Jos pakettia on kuultu lähettimen kanavalla vain yhden kerran, vain silloin Viskoosinen APRS Digipiitteri toistaa sen kanavalle.

Ohjelmistosta on tarjolla valmiit binääripaketit muutamiin Fedora ja Debian ympäristöihin, muuallekin se on käännettävissä helposti lähdekoodista.

Esimerkkejä sopivista laitteistoista mainitaan artikkeleissa OH2RDK ja OH2RDY. Softa pyörii ainakin myös OH6NT-5 ja OH6AC asemilla eBox-2300 "tupakkiaskeissa" Debianilla (ks. OH2RDK yllä).

Pelkkänä vastaanottimena toimivan Rx-iGate:n rakentaminen ei tarvitse automaattiaseman lupaa, eikä suomessa edes radioamatöörilupia, vaan kuka tahansa voi sellaisen laittaa ajoon.

APRS Digipiitteri ja Tx-iGate vaativat automaattiaseman luvan lukuunottamatta tilapäisesti omistajan valvovan silmän alla esim. kesämökillä hetkittäin käynnissä olevaa asennusta.

Jakelu

Ohjelmisto on saatavilla:

http://ham.zmailer.org/oh2mqk/aprx/

Englanninkielinen käsikirja on saatavilla:

http://ham.zmailer.org/oh2mqk/aprx/aprx-manual.pdf

Ominaisuudet

Alunperin tämä ohjelma kirjoitettiin tarpeeseen tihentää verkkoa, jolla APRS vastaanottimet syöttävät kuultuja tietoja APRS-IS verkkoon, mistä niitä saa sitten katsella vaikkapa http://aprs.fi/ palvelun kautta.

Uusi versio tarjoaa niin yksinään olevan APRS pakettien Digipeater toiminnan, kuin myös yksi ja kaksisuuntaiset iGate toiminnot.

Tavoitteena on ollut minimaalinen resurssitarve, eli ohjelmisto ei tarvitse asennusympäristöltä itseään varten mitään sellaisia kirjastoja ja ominaisuuksia mitä standardi POSIX ns. LIBC ei sisällä. Näin ohjelmiston resurssitarvetta on pienennetty mahdollisimman vähään ja se on helposti asennettavissa kaikkiin POSIX-yhteensopiviin alustoihin ja erityisesti se sopii hyvin pieniin "sulautettuihin" (Linux) koneisiin. Yleiskäyttöisessä i386 Linux koneessa iGate:ksi+digipeateriksi säädetyn Aprx:n kirjoitettavan käyttömuistin tarve on luokkaa 250 kB.

Rx-iGate systeemin minimaalinen konfiguraatio on:

 mycall  OH2XYZ
 <aprsis>
    server   rotate.aprs.net  14580
 <aprsis>
 <interface>
    serial-device /dev/ttyS0  19200  8n1    KISS
 </interface>

Yksinään olevan APRS Digipeaterin minimaalinen konfiguraatio on:

 mycall  OH2XYZ
 <interface>
    serial-device /dev/ttyS0  19200  8n1    KISS
 </interface>
 <digipeater>
    transmitter  $mycall
    <source>
       source     $mycall
    </source>
 </digipeater>

Jos kyseessä on Linux systeemi jossa on jo radiomodeemeja kiinni kissattach komennolla, tarvitaan vielä "ax25-rxport" määrityksiä. (Tosin kissattach:in konfiguraatio on paljon mutkikkaampaa kuin Aprx:n...)

Jotta esim. http://aprs.fi/ palvelu kertoo enemmän tästä yhdyskäytävästä mm. listaten sen kuulemat sanomat, tarvitaan vielä beacon määritys - joka perinteisesti on kaikkein virheherkintä mitä tässä voi tehdä. Ensiksi pitää tietää iGate aseman koordinaatit asteina ja minuutteina, esimerkiksi katsomalla ne vaikkapa http://aprs.fi/ palvelusta karttapohjalta. Sitten määritetään:

<beacon>
beacon for OH1XYZ-15 symbol "R&" lat "6020.22N" lon "02504.44E"
comment "..."
</beacon>

Koordinaattikenttien koot pitää huomata, longitudissa asteita on 3 numeroa, etunollat mukana! Minuutit ovat kahdella numerolla ja kahdella desimaalilla, piste on pakollinen ja N/S E/W ovat pakollisia isolla kirjoitettuna. Yllä annettu symboli "R&" tarkoittaa Rx-iGatea. Yllä kommentti-parametri on teknisistä syistä kirjoitettu eri riville kuin muut, konfiguraatioon ne laitetaan kaikki samalle riville.

Koska tämän ohjelmiston pitää toimia myös äärimmäisen muistirajoitteisissa ympäristöissä, ei ole nähty mieltä tehdä tälle mitään muistisyöppöjä konfiguraatiotyökaluja, vaan asentajan tulee olla sinut tekstitiedostomuotoisen konfiguroinnin säätämisen kanssa.

Ohjelmisto sisältää myös ns. "Erlang monitor" mekanismin, joka kerää mittaustietoa radiokanavan käyttöasteesta telemetriana, jota voi katsoa mm. http://aprs.fi/ webistä.

Käyttöjärjestelmät

Toimivaksi kokeillut:

  • Linuxit (Fedora, RedHat, SuSE, Debian)
  • OpenWrt (pieni sulautettu linux, OpenWrt --with-pthreads, NSLU2 --with-pthreads)
  • Apple OSX

"Pitäisi toimia":

  • FreeBSD/NetBSD/OpenBSD
  • Solaris / OpenSolaris
  • HP-UX
  • Windows+CygWin

(tai lyhyemmin: kaikki POSIX yhteensopivat käyttöjärjestelmät)

Kaikkiin maailman käyttöjärjestelmiin ei ole valmiita asennuspaketteja, eikä integroituja managerointityökaluja. Lähdekoodista kuitenkin osaava saanee paketin kääntymään vähällä vaivalla.

Radiomodeemien liitännät

Kuuntelee ns. KISS-protokollaa puhuvia radiomodeemeja sarjaportissa, tukee myös TNC2 monitorointiformaattia sarjaporttiinsa puhuvia APRS digipiittereitä:

  • Tukea tarjotaan rajoittamattomalle määrälle sarjaportteja yhdessä koneessa
  • Toimii myös USB sarjaporteilla (edellyttäen että TNC myös tajuaa USB-RS232:n tasot!)
  • Toimii myös etäpalvelimessa olevalla "TCP STREAM" palvelulla näkyvässä sarjaportissa (esim. Cisco routerien AUX portit.)

Tukee koneessa mahdollisesti olevaa AX.25 verkkoprotokollaa (lähinnä vain Linux:it) ja siihen liitettyjä radiomodeemeja.

APRS Rx-iGate ominaisuudet

  • Kytkeytyy yhdellä kutsumerkkiSSID:llä APRS-IS runkoverkkoon kaikkien radioporttiensa datan välittämiseksi, mutta mahdollistaa myös yksittäisten radioporttien erillisen raportoinnin APRS-IS:ään.
  • Tietää että seuraavat tokenit AX.25:n osoitteen VIA-kentissä ovat merkki että pakettia ei pidä välittää APRS-IS verkkoon:
    • RFONLY, NOGATE, TCPIP, TCPXX
  • Tietää että seuraavat lähdeosoitteet ovat vääriä, eikä niitä saa esiintyä paketeissa, joten pakettia ei välitetä verkkoon:
    • WIDE*, RELAY*, TRACE*, TCPIP, TCPXX, NOCALL, N0CALL
  • On välittämättä kaikki kyselyviestit ("?")
  • Prosessoi "3rd-party" sanomat katsoen paketin sisään ja analysoiden siellä olevan osoitetiedon ja datan mahdolliset välityskiellot
  • Välittää datan APRS-IS verkkoon kyseisen verkon standardimuodossa

APRS Tx-iGate ominaisuudet

APRS Tx-iGate on implementoitu yhtenä datalähteenä (<source> -lohkona) digipeaterille.

APRS Tx-iGate:

  • Seuraa perussääntöjä jotka kuvataan dokumentissa http://www.aprs-is.net/IGateDetails.aspx
  • Sille voi määritellä lisää suodinsääntöjä jotka tutkivat viestin sisältöä päättääkseen, halutaanko kyseinen paketti välittää APRS-IS:stä radiokanavalle, vai ei.


APRS Tx-iGate:n lisääminen Aprx:n konfiguraatioon tarvitsee sopivan <source> lohkon digipeaterin määrityksiin:

 <aprsis>
    server  rotate.aprs.net   14580
    #filter       b/a0good   # Tx-iGate everything always from this call
 </aprsis>
 <digipeater>
    transmitter  $mycall       # radio port
    <source>
       source    $mycall       # radio port
    </source>
    <source>
       source        APRSIS
       relay-mode    3rd-party
       viscous-delay 5
       #filter       b/a0good   # Tx-iGate everything always from this call
       #filter       -b/aa0bad  # Tx-iGate never anything from this call
    </source>
 </digipeater>

Kompleksiset ominaisuudet

Ohjelmistolla kykenee myös kompleksisiin juttuihin joita ei muualta löydy.

Sarjaportit

  • Sarjaportit voivat olla fyysisesti kiinni koneessa, kunhan tarjoavat POSIX semantiikkaa (myös USB sarjaportit toimivat tietyin edellytyksin, ks. yllä).
  • Sarjaportit voivat olla jossain muualla internetissä, kunhan ovat tavoitettavissa TCP/IP protokollalla.
  • Sarjaportteja voi olla periaatteessa rajoittamaton määrä
  • Sarjaportit osaavat KISS:iä muutamina variantteina
  • Osaa multipleksoida modeemeja KISS linjalla
  • Sarjaportit osaavat myös vastaanottaa TNC2 monitoriformaattia

Linux-koneissa systeemi ymmärtää myös koneen sisäiseen AX.25 verkkoon kytketyt radiot

Mahdollisesti monia kutsumerkkejä

Kaikista porteista vastaanotettu APRS liikenne tarjotaan APRS-IS verkkoon vastaanotinkohtaisella kutsumerkillä.

Radiokanavan varausasteen mittaus

APRS radiokanavan varausasteesta oli ennen vuotta 2008 ollut kaikenlaisia huhuja, mutta ei mitään mittausdataa. Tämän puutteen ratkaisemiseksi Aprx-ohjelmistoon rakennettiin Erlang-estimaattori, joka "arvaa" kanavan varausasteen vastaanotettujen pakettien datamäärän mukaan.

Tällainen mittaus aliarvioi kanavan varausasetta, mutta 0.01 Erlangia vs. 0.10 Erlangia on kuitenkin selkeästi erilainen liikennemäärä.

Varausasteen telemetria radioteitse

Internetyhteydettömän digipeaterin telemetrian saa lähtemään myös radioteitse käyttämällä tällaista määritystä:

 <telemetry>
       transmitter  $mycall
       via          TRACE1-1
       source       $mycall
 </telemetry>

Tarkemmat ohjeet aprx-manual.pdf tiedostossa.

Monta digipeateria

Kun Aprx palvelimella on määriteltynä useampia lähettimiä, jokaiselle jota halutaan käyttämään jonkun asian digipeattaamiseen voi laittaa omat <digipeater> lohkon jolla on omat erilliset toimintasääntönsä.

Tällä tavalla voidaan rakentaa:

  • Cross-band / cross-channel digipeatereita
  • Digipeatereita joilla on diversiteettivastaanottimia
  • Digipeatereita joilla on hajautettu vastaanotinverkosta (yhteydet mielellään jotenkin muuten kuin radiolla)

Viskoosinen digipeateri

Digipeaterilla one erityinen jähmeä (viskoosinen) toimintatila, jossa se laittaa saapuneet APRS paketit lyhyeen viivevarastoon (aikamäärä on säädettävissä 1-9 sekuntiin ja yleensä 5 sekuntia on sopiva.) Kyseisen viiveen aikana systeemi laskee kuulemansa paketit ja jos se on kuullut kyseisen paketin vain kerran, sitten se paketti syötetään digipeater-toimintoon.

Katso Viscous APRS Digipeater artikkelia esimerkistä, miten lähetystiheys muuttuu, kun digipeater asetetaan viskoosiseen tilaan.

Asennus

Tuoreimmat valmiit binääripaketit tehdään yleensä Debian Linuxille ja ne toimivat suunnilleen kaikissa Debian johdannaisissa mm. Ubuntut.

 # dpkg -i aprx_1.99.382-1_i386.deb

Oletusasennuspaketti vie paikalleen konfiguraatiotiedoston /etc/aprx.conf ja kaikki tarpeelliset käynnistystiedostot jotta ohjelma käynnistyy systeemin käynnistyessä. Oletusasennuspaketissa kuitenkaan mikään ei toimi, vaan:

  • Joudut käsikirjan kanssa muokkaamaan /etc/aprx.conf tiedostoa
  • Joudut muokkaamaan /etc/default/aprx tiedostoa.

Sitten ohjelma käynnistyy ja pysähtyy komennoilla:

 # /etc/init.d/aprx start
 # /etc/init.d/aprx stop

Debianissa uuden ohjelmaversion asennus merkitsee hyvin usein myös kysymystä "saanko ylikirjoittaa konfiguraatiotiedoston?" Siihen vastataan aina "N", jos ei haluta tehdä kaikkea säätöä uusiksi.

Konfigurointi

Katso esimerkkejä aprx-manual.pdf tiedostosta.

Kun olet muokannut konfiguraation sopivammaksi, kokeile mitä ohjelma on siitä mieltä:

 # aprx -d -f /etc/aprx.conf

(ohjelma sulkeutuu Control-C näppäilyllä)

Jos se ei huutele mitään "ERROR:" tekstejä, se kelpaa ainakin konfiguraation lukukoneistolle.

Sammuta mahdollinen aiempi ilmentymä ohjelmaa:

 # /etc/init.d/aprx stop

käynnistä uusi:

 # /etc/init.d/aprx start