IGate Empfang anzeigen: Unterschied zwischen den Versionen
Dl1nux (Diskussion | Beiträge) |
Dl1nux (Diskussion | Beiträge) |
||
| (15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
== Wie kann ich sehen, was mein dxlAPRS APRS iGate alles empfängt? == | == Wie kann ich sehen, was mein dxlAPRS APRS iGate alles empfängt? == | ||
Hierzu gibt es mehrere Möglichkeiten. Die einfachste ist, sich in das iGate per TCP Protokoll einzuwählen, so wie man es mit anderen APRS Servern macht. | Hierzu gibt es mehrere Möglichkeiten. Die einfachste ist, sich in das iGate per TCP Protokoll einzuwählen, so wie man es mit anderen APRS Servern macht. dxlAPRS, bzw. udpgate4, bietet einen TCP Port zum connecten an. Der verhält sich genauso wie bei jedem anderen APRS Server. | ||
<nowiki> | |||
udpgate4: | |||
<nowiki>-t <localport> local igate tcp port for in connects | -t <localport> local igate tcp port for in connects | ||
-t 14580</nowiki> | -t 14580</nowiki> | ||
| Zeile 21: | Zeile 21: | ||
Diese Liste ist nicht abschließend. In jedem dieser Programme könnt ihr euch mit einem APRS-Server Verbinden. Sei es einer der großen Server im Internet, oder auch ein kleiner lokaler an eurem persönlichen Standort. Die Programme zeigen euch dann die APRS Pakete des verbundenen Servers auf einer Karte grafisch an, mit Symbol und Rufzeichen bzw. Beschreibung. | Diese Liste ist nicht abschließend. In jedem dieser Programme könnt ihr euch mit einem APRS-Server Verbinden. Sei es einer der großen Server im Internet, oder auch ein kleiner lokaler an eurem persönlichen Standort. Die Programme zeigen euch dann die APRS Pakete des verbundenen Servers auf einer Karte grafisch an, mit Symbol und Rufzeichen bzw. Beschreibung. | ||
Wenn ihr euch also mit eurem eigenen dxlAPRS iGate verbindet, könnt ihr auf diese Weise live den Empfang eures iGates beobachten. Dazu benötigt ihr nur die DNS-Adresse | Wenn ihr euch also mit eurem eigenen dxlAPRS iGate verbindet, könnt ihr auf diese Weise live den Empfang eures iGates beobachten. Dazu benötigt ihr nur die DNS-Adresse oder die IP-Adresse eures iGates, und den Port, auf dem das iGate euch connecten lässt (Standard 14580). | ||
== Empfang des iGates darstellen mit APRSMAP == | |||
Am Beispiel von APRSMAP möchte ich das hier einmal darstellen. | Am Beispiel von APRSMAP möchte ich das hier einmal darstellen. | ||
Übrigens, APRSMAP ist Bestandteil von dxlAPRS und befindet sich in einer Standardinstallation im Ordner /dxlAPRS/aprsmap/. APRSMAP gibt es | Übrigens, APRSMAP ist Bestandteil von dxlAPRS und befindet sich in einer Standardinstallation im Ordner /dxlAPRS/aprsmap/. APRSMAP gibt es auch für Windows und kann [http://oe5dxl.hamspirit.at:8025/aprs/windoof/aprsmap/aprsmap-all.zip hier] als ZIP-Archiv heruntergeladen werden. Einfach in einen beliebigen Ordner herunterladen und die Datei aprsmap.exe unter Windows starten. | ||
Um euch mit eurem iGate zu verbinden, müsst ihr folgendes einstellen: | Um euch mit eurem iGate zu verbinden, müsst ihr folgendes einstellen: | ||
| Zeile 39: | Zeile 39: | ||
z.B. | z.B. | ||
* db0nu.hamnet.radio:14580 | * db0nu.hamnet.radio:14580 | ||
* 44.149.25.4: | * 44.149.25.4:14580 | ||
==== 2. Eigene Informationen hinterlegen (notwendig für die Verbindung) ==== | ==== 2. Eigene Informationen hinterlegen (notwendig für die Verbindung) ==== | ||
Damit man eine Verbindung aufbauen kann und Informationen übermittelt bekommt, muss man vorab noch einige Einstellungen vornehmen. | |||
<nowiki>Menü > Online > MyCAll</nowiki> | <nowiki>Menü > Online > MyCAll</nowiki> | ||
| Zeile 53: | Zeile 55: | ||
Beispiel: 12345 | Beispiel: 12345 | ||
Im Prinzip kann man sich nun auch schon verbinden, jedoch erhält man so noch keine Daten übermittelt. Das liegt daran, das APRS Server erwarten, das man erst einen Filter übermittelt. Sie können (oder wollen) | Im Prinzip kann man sich nun auch schon verbinden, jedoch erhält man so noch keine Daten übermittelt. Das liegt daran, das APRS Server erwarten, das man erst einen Filter übermittelt. Sie können (oder wollen) nicht immer alles übertragen, denn das kann grundsätzlich auch wirklich SEHR viel sein. Also wird ein Filter zur Begrenzung des Datenstroms erwartet, vorher bekommt man nichts. | ||
Weitere Informationen zu den APRS Server Filtern, findet man [https://www.aprs-is.net/javAPRSFilter.aspx hier]. | Weitere Informationen zu den APRS Server Filtern, findet man [https://www.aprs-is.net/javAPRSFilter.aspx hier]. | ||
Da wir uns in unser eigenes iGate einwählen, und dort keine Massen an Daten zu erwarten sind, kann man einen recht einfachen Filter setzen, der | Da wir uns in unser eigenes iGate einwählen, und dort keine Massen an Daten zu erwarten sind, kann man einen recht einfachen Filter setzen, der beispielsweise alles im Umkreis von 1000 Km übermittelt. Man kann natürlich auch einen größeren Umkreis definieren. | ||
<nowiki>Menü > Online > Serverfilter</nowiki> | <nowiki>Menü > Online > Serverfilter</nowiki> | ||
| Zeile 63: | Zeile 65: | ||
Beispiel: m/1000 | Beispiel: m/1000 | ||
Damit dieser Filter funktionieren kann, muss noch eine Position festgelegt werden, auf welche sich der Umkreisfilter bezieht. Das kann eure Position sein, die des iGates oder eine andere beliebige. | |||
<nowiki>Menü > Online > My Position</nowiki> | <nowiki>Menü > Online > My Position</nowiki> | ||
| Zeile 89: | Zeile 91: | ||
== Anzeige der empfangenen APRS Pakete an der Linux-Konsole == | == Anzeige der empfangenen APRS Pakete an der Linux-Konsole == | ||
Die Ansicht in APRSMAP ist zwar schön, zeigt aber nicht alles an. Denn dort kann nur das angezeigt werden, was eine Position enthält. Es gibt auch viele Pakettypen ohne Position, z.B. Telemetrie oder APRS-Nachrichten. Es ist möglich sich die Rohdaten relativ einfach anzeigen zu lassen. Diese Rohdaten in Form von APRS Frames muss man dann allerdings selbständig | Die Ansicht in APRSMAP ist zwar schön, zeigt aber nicht alles an. Denn dort kann nur das angezeigt werden, was eine Position enthält. Es gibt auch viele Pakettypen ohne Position, z.B. Telemetrie oder APRS-Nachrichten. Es ist möglich sich die Rohdaten relativ einfach anzeigen zu lassen. Diese Rohdaten in Form von APRS Frames muss man dann allerdings selbständig interpretieren. Wie die Pakete aufgebaut sind, findet man in der offiziellen APRS Dokumentation [https://github.com/wb2osz/aprsspec/raw/main/Understanding-APRS-Packets.pdf hier]. | ||
Beispiel: | Beispiel: | ||
<nowiki>DL1NUX-2>APNL01,DB0NU-10*:!5014.08N/01059.02EyAttila B37 QRV FM DB0NU 438,675 (FM-Funknetz TG 96126) & DB0UC 145,700 MHz</nowiki> | <nowiki>DL1NUX-2>APNL01,DB0NU-10*:!5014.08N/01059.02EyAttila B37 QRV FM DB0NU 438,675 (FM-Funknetz TG 96126) & DB0UC 145,700 MHz</nowiki> | ||
=== Umleiten der Daten für die Anzeige an der Konsole === | |||
Wenn man die Beispielskripte von DL1NUX nutzt, werden die empfangenen Daten bereits auf den Port 9999 in AXUDP weitergeleitet und man kann mit dem nächsten Abschnitt fortfahren. | |||
Nutzt man eine eigene Installation von dxlAPRS mit eigenen Skripten, muss man zunächst die empfangenen Pakete "umleiten", damit man sie wie im nächsten Kapitel beschrieben anzeigen kann. | |||
Hierzu nutzt man das tool [[udpbox]]. udpbox ist sehr vielseitig und kann nicht nur als Digi eingesetzt werden, sondern auch zum vervielfältigen von AXUDP Datenströmen. Ein AXUDP Datenstrom wird auf einem Port empfangen und auf beliebig vielen anderen Ports weiterverteilt. Hier ein Beispiel: | |||
<nowiki> | |||
afskmodem -f 16000 -o /home/pi/dxlAPRS/aprs/aprspipe -c 1 -M 0 -c 0 -L 127.0.0.1:9001:0 | |||
udpbox -R 127.0.0.1:9001 -l 127.0.0.1:10001 -l 127.0.0.1:9999 | |||
udpgate4 -s MYCALL-2 -R 127.0.0.1:0:10001 -n 30:netbeacon.txt -g rotate.aprs2.net:14580 -p 12345 -t 14580 -w 14501 -D /home/pi/dxlAPRS/aprs/www/</nowiki> | |||
* Im genannten Beispiel dekodiert afskmodem APRS-Signale und schickt diese im AXUDP Format über Port 9001 an udpbox. | |||
* udpbox empfängt den AXUDP Datemstrom auf Port 9001 und verteilt diesen an die Ports 10001 und 9999. | |||
* Das iGate udpgate4 empfäng wiederrum die Daten auf Port 10001 von udpbox kommend und schickt diese dann an den APRS-Server. | |||
* Der AXUDP Datenstrom wird aber ebenfalls an Port 9999 gesendet und kann dort von einem anderen Tool anbgegriffen werden, z.B. von udpflex, wie im nächsten Abschnitt beschrieben. | |||
'''Folgendes ist wichtig zu wissen:''' | |||
* Jeder AXUDP Datenstrom kann an einem Port nur von einer Anwendung verarbeitet werden. Es ist also nicht möglich, dass sich (z.B.) udpflex und udpgate4 gleichzeitig am Port 10001 "bedienen". Deswegen wird dies auch auf zwei Ports verteilt. | |||
* Andererseits ist es problemlos möglich, dass zwei Anwendungen ihre Daten an den gleichen Port raussenden. z.B. mehrere Instanzen von afskmodem, ra02, udpbox, können die empfangenen an ein und denselben Port weiterleiten. Am anderen Ende lässt sich dann allerdings nicht mehr "feststellen", von welcher Quelle ein Paket kam, sie sind dort alle vermischt in einem Pool. In meinen Beispielskripten mache ich das so und sende alle empfangenen Daten von allen Wegen zusätzlich an Port 9999, damit man den Port bei Bedarf "anzapfen" kann, z.B. mit udpflex. | |||
* udpbox kann einen Datenstrom an beliebig viele Ziele vervielfältigen. Es funktioniert z.B. auch "udpbox -R 127.0.0.1:9001 -l 127.0.0.1:10001 -l 127.0.0.1:10002 -l 127.0.0.1:10002 -l 127.0.0.1:10002 -l 127.0.0.1:10002 -l 127.0.0.1:10002 -l 127.0.0.1:9999", wenn es für euch einen Nutzen hat. | |||
* In manchen Skripten befindet sich anstatt dem Parameter -l auch -r für eine Weiterleitung. Hierbei handelt es sich um ein AXUDP Version 1 Format, welches manche älteren Anwendungen noch benötigen. Da alle dxlAPRS Tools allerdings bereits AXUDP Version 2 unterstützen, kann man beruhigt für jede Weiterleitung -l benutzen. | |||
Hat man einmal den Datenstrom an einen Port weitergeleitet, kann man diesen Port mit udpflex "anzapfen" und die Daten am Bildschirm sichtbar machen. | |||
=== Anzeige der Daten mit udpflex === | |||
Die einzelnen Tools der dxlAPRS Toolchain tauschen ihre Daten im AXUDP Format aus. Diese kann man mit [[udpflex]] in Klartext anzeigen lassen. In den Beispielskripten von DL1NUX ist hierzu auch die Skriptdatei monitor.sh enthalten. Sie enthält folgendes Kommando: | |||
<nowiki>udpflex -U :0:9999 -V</nowiki> | |||
* Der Parameter -U :0:9999 hört auf Port 9999 UDP | |||
* Der Parameter -V (verbose) zeigt die Verarbeitung in stdout (Bildschrimausgabe) an | |||
Das bedeutet: Alles was an Port 9999 in AXUDP ankommt, wird verarbeitet und angezeigt. In diesem Fall werden die Pakete nur empfangen und dargestellt, jedoch nicht weiter verarbeitet. Für unseren Zweck also genau das richtige. | |||
Beispielausgabe: | |||
<nowiki> | |||
pi@dxlAPRS:~/dxlAPRS/aprs $ ./udpflex -U :0:9999 -V | |||
send init to tnc | |||
UDP0:fm DL2MK-9 to TY4RW5 via DG1NGA WIDE1 DB0SWR-10 WIDE2* ctl UIv pid F0 - 10.01.26 17:52:18 | |||
`.++o@|>/`"5w}_1 | |||
UDP0:fm DB0VOX to APRS ctl UIv1 pid F0 - 10.01.26 17:52:21 | |||
}DB0NPR-10>APRX29,TCPIP,DB0VOX*::BLN1WXWWX:DWD WARNUNG vor GLAETTE - WESTERWALDKREIS bis 11.01. 10:00 | |||
UDP0:fm DB0VOX to APRS ctl UIv1 pid F0 - 10.01.26 17:52:21 | |||
}KX4NC-4>BEACON,TCPIP,DB0VOX*:: ;146.835NC*111111z3553.98N/07620.86WrT131 R60m Net Wd9pm | |||
UDP0:fm DB0REI-10 to APMI0A via DB0FUL DB0WZ WIDE1* ctl UIv1 pid F0 - 10.01.26 17:52:25 | |||
!5037.42N/00854.09ErAPRS DB0REI U=12.0V Digi Sysop DB4ZZ/DL9GX | |||
UDP0:fm DB0SWR-10 to APMI06 via DB0FTS-10* WIDE2-1 ctl UIv1 pid F0 - 10.01.26 17:52:29 | |||
@101752z4941.25N/00928.19E&APRS WIDE-Digi + I-Gate Wertheim/Main U=12.8V,T=24.8C Sysop: DG9FFM | |||
UDP0:fm DB0SWR-10 to APMI06 via DB0FTS-10 DB0IK WIDE2* ctl UIv1 pid F0 - 10.01.26 17:52:30 | |||
@101752z4941.25N/00928.19E&APRS WIDE-Digi + I-Gate Wertheim/Main U=12.8V,T=24.8C Sysop: DG9FFM | |||
UDP0:fm DH1JH-9 to TYSQ90 via DB0VOX* WIDE2-1 ctl UIv pid F0 - 10.01.26 17:52:34 | |||
`'a?l#,>/`"8=}_) | |||
UDP0:fm DH1JH-9 to TYSQ90 via DB0VOX DB0WZ WIDE2* ctl UIv pid F0 - 10.01.26 17:52:35 | |||
`'a?l#,>/`"8=}_) | |||
UDP0:fm DB0VOX to APRS ctl UIv1 pid F0 - 10.01.26 17:52:44 | |||
}TA3TX-10>APBK20,TCPIP,DB0VOX*::BLN0 :TA3TX iZMiR 05324548766 | |||
UDP0:fm DB0OHA-10 to APMI06 via DB0WIZ-15 DB0WZ WIDE2* ctl UIv1 pid F0 - 10.01.26 17:52:45 | |||
:DB0OHA-10:UNIT.Volt,Pkt,Pkt,Pcnt,None,On,On,On,On,Hi,Hi,Hi,Hi | |||
UDP0:fm DB0OHA-10 to APMI06 via DB0WIZ-15 DB0WZ WIDE2* ctl UIv1 pid F0 - 10.01.26 17:52:46 | |||
:DB0OHA-10:EQNS.0,0.075,0,0,10,0,0,10,0,0,1,0,0,0,0 | |||
UDP0:fm DB0OHA-10 to APMI06 via DB0WIZ-15 DB0WZ WIDE2* ctl UIv1 pid F0 - 10.01.26 17:52:46 | |||
:DB0OHA-10:BITS.11111111,WX3in1Plus2.0 Telemetry | |||
</nowiki> | |||
Die Anzeige eines empfangenen Pakets beginnt immer mit "UDP0: fm". Danach folgt der Header des Pakets (Absender, Ziel-Rufzeichen, Pfad), ein paar Informationen zum AX25 Pakettyp (für uns irrelevant) und das Systemdatum und die Systemzeit des Empfangszeitpunkts (diese Information wird von udpflex in der Bildschirmausgabe angereichert und ist nicht Teil des APRS-Pakets). | |||
In der zweiten Zeile sieht man dann die Payload, also die übertragene Information innerhalb des APRS Pakets. Das erste Symbol bezeichnet immer den Typ des APRS Pakets (Positionspaket, Wetter, Telemetrie usw), der Rest die Informationen gemäß APRS Spezifikationen. | |||
Aktuelle Version vom 14. Januar 2026, 21:22 Uhr
Wie kann ich sehen, was mein dxlAPRS APRS iGate alles empfängt?
Hierzu gibt es mehrere Möglichkeiten. Die einfachste ist, sich in das iGate per TCP Protokoll einzuwählen, so wie man es mit anderen APRS Servern macht. dxlAPRS, bzw. udpgate4, bietet einen TCP Port zum connecten an. Der verhält sich genauso wie bei jedem anderen APRS Server.
udpgate4: -t <localport> local igate tcp port for in connects -t 14580
Mit dem Aufrufparameter -t gibt man eine Portnummer an, an der das iGate connected werden kann. Normalerweise ist dieser Port auch in allen Beispielskripten für dxlAPRS hinterlegt mit dem Standardport 14580. Also wenn ihr den Parameter nicht gelöscht habt, sollte das iGate hierüber erreichbar sein. Falls ihr einen anderen Port nutzt, müsst ihr in eurer Anwendung natürlich euren individuellen Port angeben.
Ihr könnt alle Anwendungen nutzen, die sich mit einem APRS Server verbinden kann, z.B.
- APRSMAP (in dxlAPRS enthalten)
- APRSISCE/32
- Pin Point
- APRSdroid
- UI-VIEW
- XASTIR
- X-APRS
Diese Liste ist nicht abschließend. In jedem dieser Programme könnt ihr euch mit einem APRS-Server Verbinden. Sei es einer der großen Server im Internet, oder auch ein kleiner lokaler an eurem persönlichen Standort. Die Programme zeigen euch dann die APRS Pakete des verbundenen Servers auf einer Karte grafisch an, mit Symbol und Rufzeichen bzw. Beschreibung.
Wenn ihr euch also mit eurem eigenen dxlAPRS iGate verbindet, könnt ihr auf diese Weise live den Empfang eures iGates beobachten. Dazu benötigt ihr nur die DNS-Adresse oder die IP-Adresse eures iGates, und den Port, auf dem das iGate euch connecten lässt (Standard 14580).
Empfang des iGates darstellen mit APRSMAP
Am Beispiel von APRSMAP möchte ich das hier einmal darstellen.
Übrigens, APRSMAP ist Bestandteil von dxlAPRS und befindet sich in einer Standardinstallation im Ordner /dxlAPRS/aprsmap/. APRSMAP gibt es auch für Windows und kann hier als ZIP-Archiv heruntergeladen werden. Einfach in einen beliebigen Ordner herunterladen und die Datei aprsmap.exe unter Windows starten.
Um euch mit eurem iGate zu verbinden, müsst ihr folgendes einstellen:
1. Servereinstellungen konfigurieren
Menü > Config > Online > Server URL
In der oberen Zeile (Server URL) nun die Adresse oder IP-Adresse gefolgt vom Port eintragen, und dann auf "Add" klicken.
z.B.
- db0nu.hamnet.radio:14580
- 44.149.25.4:14580
2. Eigene Informationen hinterlegen (notwendig für die Verbindung)
Damit man eine Verbindung aufbauen kann und Informationen übermittelt bekommt, muss man vorab noch einige Einstellungen vornehmen.
Menü > Online > MyCAll
Eigenes Rufzeichen mit SSID hinterlegen. z.B. DL0ABC, DL0ABC-1 ... DL0ABC-15
Menü > Online > Passcode
Hier muss der APRS Passcode für das eigene Rufzeichen rein. Wenn nicht bekannt oder nicht zu Hand, kann dieser hier generiert werden. Bitte das Call immer ohne SSID angeben!
Beispiel: 12345
Im Prinzip kann man sich nun auch schon verbinden, jedoch erhält man so noch keine Daten übermittelt. Das liegt daran, das APRS Server erwarten, das man erst einen Filter übermittelt. Sie können (oder wollen) nicht immer alles übertragen, denn das kann grundsätzlich auch wirklich SEHR viel sein. Also wird ein Filter zur Begrenzung des Datenstroms erwartet, vorher bekommt man nichts.
Weitere Informationen zu den APRS Server Filtern, findet man hier.
Da wir uns in unser eigenes iGate einwählen, und dort keine Massen an Daten zu erwarten sind, kann man einen recht einfachen Filter setzen, der beispielsweise alles im Umkreis von 1000 Km übermittelt. Man kann natürlich auch einen größeren Umkreis definieren.
Menü > Online > Serverfilter
Beispiel: m/1000
Damit dieser Filter funktionieren kann, muss noch eine Position festgelegt werden, auf welche sich der Umkreisfilter bezieht. Das kann eure Position sein, die des iGates oder eine andere beliebige.
Menü > Online > My Position
Dort kann man diese entweder händisch im bekannten APRS Format eingeben (WGS84 in Grad, Minuten, Dezimalminuten). Einfacher ist es mit der Maus auf der Karte auf seinen Standort zu zeigen und bei gedrücker Shift-Taste (Hochstelltaste) mit der linken Maustaste zu klicken. Dann wird die aktuelle Mauscursorposition auf der Karte in das Eingabefeld übernommen.
Beispiel: 5014.519N/01100.731E
3. Verbindung aktivieren
Menü > Online > Connect Server
Wenn die Verbindung steht, sieht man vor dem Menütext (Connect Server) einen leuchtend grünen Kreis. Nun sollte man sehen, wie sich die Karte langsam befüllt. Alle APRS-Pakete mit Positionsangaben, erscheinen nun auf der Karte. All das was nun auf der Karte erscheint, sind Pakete, die das eigene iGate gerade empfängt.
Mit anderen APRS-Programmen läuft das genauso.
- Serververbindung zu dxlAPRS iGate konfigurieren
- Rufzeichen, Passcode, Position und Filter hinterlegen
- Serververbindung aufbauen
Beispielansicht
Anzeige der empfangenen APRS Pakete an der Linux-Konsole
Die Ansicht in APRSMAP ist zwar schön, zeigt aber nicht alles an. Denn dort kann nur das angezeigt werden, was eine Position enthält. Es gibt auch viele Pakettypen ohne Position, z.B. Telemetrie oder APRS-Nachrichten. Es ist möglich sich die Rohdaten relativ einfach anzeigen zu lassen. Diese Rohdaten in Form von APRS Frames muss man dann allerdings selbständig interpretieren. Wie die Pakete aufgebaut sind, findet man in der offiziellen APRS Dokumentation hier.
Beispiel:
DL1NUX-2>APNL01,DB0NU-10*:!5014.08N/01059.02EyAttila B37 QRV FM DB0NU 438,675 (FM-Funknetz TG 96126) & DB0UC 145,700 MHz
Umleiten der Daten für die Anzeige an der Konsole
Wenn man die Beispielskripte von DL1NUX nutzt, werden die empfangenen Daten bereits auf den Port 9999 in AXUDP weitergeleitet und man kann mit dem nächsten Abschnitt fortfahren.
Nutzt man eine eigene Installation von dxlAPRS mit eigenen Skripten, muss man zunächst die empfangenen Pakete "umleiten", damit man sie wie im nächsten Kapitel beschrieben anzeigen kann.
Hierzu nutzt man das tool udpbox. udpbox ist sehr vielseitig und kann nicht nur als Digi eingesetzt werden, sondern auch zum vervielfältigen von AXUDP Datenströmen. Ein AXUDP Datenstrom wird auf einem Port empfangen und auf beliebig vielen anderen Ports weiterverteilt. Hier ein Beispiel:
afskmodem -f 16000 -o /home/pi/dxlAPRS/aprs/aprspipe -c 1 -M 0 -c 0 -L 127.0.0.1:9001:0 udpbox -R 127.0.0.1:9001 -l 127.0.0.1:10001 -l 127.0.0.1:9999 udpgate4 -s MYCALL-2 -R 127.0.0.1:0:10001 -n 30:netbeacon.txt -g rotate.aprs2.net:14580 -p 12345 -t 14580 -w 14501 -D /home/pi/dxlAPRS/aprs/www/
- Im genannten Beispiel dekodiert afskmodem APRS-Signale und schickt diese im AXUDP Format über Port 9001 an udpbox.
- udpbox empfängt den AXUDP Datemstrom auf Port 9001 und verteilt diesen an die Ports 10001 und 9999.
- Das iGate udpgate4 empfäng wiederrum die Daten auf Port 10001 von udpbox kommend und schickt diese dann an den APRS-Server.
- Der AXUDP Datenstrom wird aber ebenfalls an Port 9999 gesendet und kann dort von einem anderen Tool anbgegriffen werden, z.B. von udpflex, wie im nächsten Abschnitt beschrieben.
Folgendes ist wichtig zu wissen:
- Jeder AXUDP Datenstrom kann an einem Port nur von einer Anwendung verarbeitet werden. Es ist also nicht möglich, dass sich (z.B.) udpflex und udpgate4 gleichzeitig am Port 10001 "bedienen". Deswegen wird dies auch auf zwei Ports verteilt.
- Andererseits ist es problemlos möglich, dass zwei Anwendungen ihre Daten an den gleichen Port raussenden. z.B. mehrere Instanzen von afskmodem, ra02, udpbox, können die empfangenen an ein und denselben Port weiterleiten. Am anderen Ende lässt sich dann allerdings nicht mehr "feststellen", von welcher Quelle ein Paket kam, sie sind dort alle vermischt in einem Pool. In meinen Beispielskripten mache ich das so und sende alle empfangenen Daten von allen Wegen zusätzlich an Port 9999, damit man den Port bei Bedarf "anzapfen" kann, z.B. mit udpflex.
- udpbox kann einen Datenstrom an beliebig viele Ziele vervielfältigen. Es funktioniert z.B. auch "udpbox -R 127.0.0.1:9001 -l 127.0.0.1:10001 -l 127.0.0.1:10002 -l 127.0.0.1:10002 -l 127.0.0.1:10002 -l 127.0.0.1:10002 -l 127.0.0.1:10002 -l 127.0.0.1:9999", wenn es für euch einen Nutzen hat.
- In manchen Skripten befindet sich anstatt dem Parameter -l auch -r für eine Weiterleitung. Hierbei handelt es sich um ein AXUDP Version 1 Format, welches manche älteren Anwendungen noch benötigen. Da alle dxlAPRS Tools allerdings bereits AXUDP Version 2 unterstützen, kann man beruhigt für jede Weiterleitung -l benutzen.
Hat man einmal den Datenstrom an einen Port weitergeleitet, kann man diesen Port mit udpflex "anzapfen" und die Daten am Bildschirm sichtbar machen.
Anzeige der Daten mit udpflex
Die einzelnen Tools der dxlAPRS Toolchain tauschen ihre Daten im AXUDP Format aus. Diese kann man mit udpflex in Klartext anzeigen lassen. In den Beispielskripten von DL1NUX ist hierzu auch die Skriptdatei monitor.sh enthalten. Sie enthält folgendes Kommando:
udpflex -U :0:9999 -V
- Der Parameter -U :0:9999 hört auf Port 9999 UDP
- Der Parameter -V (verbose) zeigt die Verarbeitung in stdout (Bildschrimausgabe) an
Das bedeutet: Alles was an Port 9999 in AXUDP ankommt, wird verarbeitet und angezeigt. In diesem Fall werden die Pakete nur empfangen und dargestellt, jedoch nicht weiter verarbeitet. Für unseren Zweck also genau das richtige.
Beispielausgabe:
pi@dxlAPRS:~/dxlAPRS/aprs $ ./udpflex -U :0:9999 -V send init to tnc UDP0:fm DL2MK-9 to TY4RW5 via DG1NGA WIDE1 DB0SWR-10 WIDE2* ctl UIv pid F0 - 10.01.26 17:52:18 `.++o@|>/`"5w}_1 UDP0:fm DB0VOX to APRS ctl UIv1 pid F0 - 10.01.26 17:52:21 }DB0NPR-10>APRX29,TCPIP,DB0VOX*::BLN1WXWWX:DWD WARNUNG vor GLAETTE - WESTERWALDKREIS bis 11.01. 10:00 UDP0:fm DB0VOX to APRS ctl UIv1 pid F0 - 10.01.26 17:52:21 }KX4NC-4>BEACON,TCPIP,DB0VOX*:: ;146.835NC*111111z3553.98N/07620.86WrT131 R60m Net Wd9pm UDP0:fm DB0REI-10 to APMI0A via DB0FUL DB0WZ WIDE1* ctl UIv1 pid F0 - 10.01.26 17:52:25 !5037.42N/00854.09ErAPRS DB0REI U=12.0V Digi Sysop DB4ZZ/DL9GX UDP0:fm DB0SWR-10 to APMI06 via DB0FTS-10* WIDE2-1 ctl UIv1 pid F0 - 10.01.26 17:52:29 @101752z4941.25N/00928.19E&APRS WIDE-Digi + I-Gate Wertheim/Main U=12.8V,T=24.8C Sysop: DG9FFM UDP0:fm DB0SWR-10 to APMI06 via DB0FTS-10 DB0IK WIDE2* ctl UIv1 pid F0 - 10.01.26 17:52:30 @101752z4941.25N/00928.19E&APRS WIDE-Digi + I-Gate Wertheim/Main U=12.8V,T=24.8C Sysop: DG9FFM UDP0:fm DH1JH-9 to TYSQ90 via DB0VOX* WIDE2-1 ctl UIv pid F0 - 10.01.26 17:52:34 `'a?l#,>/`"8=}_) UDP0:fm DH1JH-9 to TYSQ90 via DB0VOX DB0WZ WIDE2* ctl UIv pid F0 - 10.01.26 17:52:35 `'a?l#,>/`"8=}_) UDP0:fm DB0VOX to APRS ctl UIv1 pid F0 - 10.01.26 17:52:44 }TA3TX-10>APBK20,TCPIP,DB0VOX*::BLN0 :TA3TX iZMiR 05324548766 UDP0:fm DB0OHA-10 to APMI06 via DB0WIZ-15 DB0WZ WIDE2* ctl UIv1 pid F0 - 10.01.26 17:52:45 :DB0OHA-10:UNIT.Volt,Pkt,Pkt,Pcnt,None,On,On,On,On,Hi,Hi,Hi,Hi UDP0:fm DB0OHA-10 to APMI06 via DB0WIZ-15 DB0WZ WIDE2* ctl UIv1 pid F0 - 10.01.26 17:52:46 :DB0OHA-10:EQNS.0,0.075,0,0,10,0,0,10,0,0,1,0,0,0,0 UDP0:fm DB0OHA-10 to APMI06 via DB0WIZ-15 DB0WZ WIDE2* ctl UIv1 pid F0 - 10.01.26 17:52:46 :DB0OHA-10:BITS.11111111,WX3in1Plus2.0 Telemetry
Die Anzeige eines empfangenen Pakets beginnt immer mit "UDP0: fm". Danach folgt der Header des Pakets (Absender, Ziel-Rufzeichen, Pfad), ein paar Informationen zum AX25 Pakettyp (für uns irrelevant) und das Systemdatum und die Systemzeit des Empfangszeitpunkts (diese Information wird von udpflex in der Bildschirmausgabe angereichert und ist nicht Teil des APRS-Pakets). In der zweiten Zeile sieht man dann die Payload, also die übertragene Information innerhalb des APRS Pakets. Das erste Symbol bezeichnet immer den Typ des APRS Pakets (Positionspaket, Wetter, Telemetrie usw), der Rest die Informationen gemäß APRS Spezifikationen.