Gps2aprs

Aus DXL-Wiki
Zur Navigation springen Zur Suche springen

Über gps2aprs

  • gps2aprs ist ein Tool zum Auslesen eines seriellen GPS NMEA Datenstroms (z.B. GPS-Mouse).
  • Aus dem NMEA Datenstrom werden APRS-Positionspakete nach Wunsch erzeugt und im AXUDP Format weitergeleitet.
  • Empfänger dieser AXUDP Datenpakete können alle möglichen AXUDP-fähigen Tools sein, wie z.B. udpbox, udpgate4, udpflex, afskmodem, aprsmap usw.
  • An andere APRS Programme wie z.B. Direwolf oder APRX können diese Pakete mit udpflex über eine TCP-KISS Schnittstelle für eine Weiterverarbeitung gesendet werden.

Informationen der Hilfeseite

 
gps2aprs -h


Read serial GPS and make normal/compressed/mic-e Beacon as AXUDP or monitor
 -0 <s>                            standing Beacon Time in Seconds (180)
 -A <cm> <fixmode>                 in Raw-Mode set fixed 2d altitude in cm NN
                                     <fixmode> 1 2D, 2 3D, 4 auto-2D/3D
 -a                                altitude OFF
 -B                                Balloon mode: -g <m> is altitude(m)
                                     -b <s> for below -0 <s> for above
                                     -w <path> is switched on below
 -b <s>                            driving Beacon Time in Seconds (15)
 -c <commentstring>                APRS Comment (max 60 char)
                                     insert time hhmmss  : \\h
                                     insert time ddhhmm  : \\z
                                     insert file         : \\:filename:
                                     insert Clb=<m/s>    : \\c
                                     insert time hh-mm-ss: \\t
                                     insert sats         : \\s
                                     insert fix          : \\f
                                     insert framecounter : \\n
                                     insert \\           : \\\
                                     double all \ to pass thru bash eg. \\\\h
 -C <configstring>                 Send Cfg to GPS, / for $, // for /
                                     /PUBX,41,1,0007,0003,19200,0
 -d <x>                            Destination Call SSID 0..7
 -D                                DAO Extension on for 20cm Resolution
 -f <x>                            format 0=normal 1=compressed 2=mic-e (0)
 -g <km/h>                         min. Speed for driving Beacon Time (4)
 -h                                this
 -I <mycall>                       Mycall with SSID like NOCALL-15
 -i <icon>                         2 Icon chars "/-" (House), "/>" (Car)...(//)
 -k                                Speed/Course OFF (not in mic-e)
 -l <n>                            every n Beacons send one with Comment (5)
 -L <filename>                     Append raw GPS text to this File
 -M <n>                            in Raw-Mode set dynamic model (balloon 1g)
                                     0 portabel, 2 stationary, 3 pedestrian, 4 car,
                                     5 sea, 6 air 1g, 7 air 2g, air 4g
 -m <x.x.x.x:destport>             use Monitor UDP format :port for localhost
 -N <x.x.x.x:destport>             send Position AXUDP every 2s eg. to aprsmap
 -n <s>                            Beacon Time in Seconds to -N destination (2)
 -r <x.x.x.x:destport>             send AXUDP (to kiss-TNC or TCPKISS via udpflex,
                                     to afskmodem or via aprsmap or udpgate to TCP)
 -s                                GPS Checksum check OFF
 -T <us> <us>                      Raw-Mode, Timepulse <[-]periode> <duration> (us)
 -t <tty>:<baud>                   (/dev/ttyS0:4800)
 -U                                switch Ublox>=M6 sV>=7 to Ublox-Raw (get vertical speed)
                                     needs bidirectional connection
 -u                                abort, not retry until open removable USB tty
 -V                                verbous, show sats (GSV-frames)
 -v                                verbous
 -w <viapath>                      via Path like RELAY,WIDE1-1
 -Z <s>                            set system time to GPStime+<s> (will need root)
 -z <s>                            same but do not terminate after time set


Ausführliche Beschreibung der Parameter

Parameter Beschreibung
0 Bakenintervall im Stand (ohne Bewegung) (Standard = 180 Sekunden)
A <cm> <fixmode> RAW-Modus: Setze im 2D Modus eine feste Höhe über NN (in cm) voraus.
Erzwinge Fix bereits im angegebene Fix-Modus <fixmode> 1 = 2D, 2 = 3D, 4 = Automatisch 2D/3D (kann hilfreich sein bei schlechtem Empfang, wird aber ungenauer).
a Höhenangabe (altitude) deaktivieren
B Ballon Modus für Stratosphärenballone
-g wird zur Höhenschwelle in Metern.
-b wird zum zum Bakenintervall in Sekunden unterhalb der Höhenschwelle.
-0 wird zum Bakenintervall in Sekunden oberhalb der Höhenschwelle.
Der APRS-Pfad unter -w wird im Ballonmodus nur unterhalb der Höhenschwelle aktiviert. Dies wurde implementiert, damit der APRS-Pfad nur in geringen Höhen mit ausgesendet wird, wodurch die APRS Pakete durch ggf. in der Nähe befindliche Digipeater nochmals digipeatet werden. Dadurch ist es möglich die Landeposition genauer zu bestimmen. In größeren Höhen ist die Aussendung eines APRS-Pfades nicht notwendig, da man von einer ausreichenden Reichweite des Signals ausgehen kann und bei der derzeitigen Dichte an iGates kein Digipeating erforderlich ist. Dies entlastet auch die APRS QRG enorm, da nicht dutzende/hunderte Digipeater oder iGates das empfangene Signal parallel digipeaten. In großen Höhen ist das Signal in der Regel durch alle Stationen direkt aufnehmbar.
b Bakenintervall in Bewegung (Standard = 15 Sekunden)
c <Kommentartext> APRS Kommentartext, max. 40 Zeichen. Folgende Platzhalter können verwendet werden:
\\h = Zeit einfügen hhmmss
\\z = Zeit einfügen ddhhmm
\\:Dateiame: = Inhalt einer Datei einfügen
\\\ = Füge \\ ein
\\c = Vertikale Geschwindigkeit einfügen (Clb=m/s)
\\t = Zeit einfügen hh-mm-ss
\\s = Anzahl Satelliten einfügen
\\f = Fix einfügen
\\n = Framecounter einfügen (Fortlaufende Framenummer)
Alle \ verdoppeln bei Verwendung der bash, z.B. \\\\h
C <Konfigurationsstring> Sende Konfigurationsstring zum GPS
/ für $ und // für /
Beispiel: -C /PUBX,41,1,0007,0003,19200,0
d <x> SSID des Zielrufzeichens (0...7). Das Zielrufzeichen selbst lautet APLT01 in Normalmodus. Im mic-e wird das Zielrufzeichen automatisch generiert da es Teil des mic-e Datenprotokolls ist. -d bezieht sich ausschließlich auf die "langsamen" Baken mit -r. Bei schnellen -N Baken lautet das Zielrufzeichen NOGATE und hat auch keine SSID.
Beispielausgabe mit -d 7:
MY0CAL-2 to APLT01-7 ctl UI^ pid F0
!5014.07N/01059.01E>001/000/A=001086
D DAO Erweiterung, erhöht Koordinatengenauigkeit auf 20cm. Ist bei komprimiertem Format standardmäßig aktiv.
f <x> APRS Format: 0=Normal, 1=Komprimiert, 2=mic-e (Standard = 0)
g <km/h> Minimale Geschwindigkeit für Bakenintervall in Bewegung (Standard = 4)
h Hilfetext
I <mycall> Eigenes Rufzeichen mit SSID, z.B. NOCALL-15
i <icon> APRS Symbolzeichen "/-" (Haus), "/>" (Auto), "/O" (Ballon) usw.
k Geschwindigkeit und Kurs ausschalten (nicht verfügbar bei mic-e Format)
l <n> Sende alle n Baken eine Bake mit Kommentartext
L <Dateiname> Hänge den GPS RAW Text an die angegebene Datei an
M <n> Im RAW-Modus: Setze UBLOX GPS-Modus (dynamic model): 0 Portabel, 2 Stationär, 3 Fußgänger, 4 Auto, 5 Meer, 6 Luft 1g, 7 Luft 2g, Luft 4g (Ballon = Mode 6 Luft 1G).
m <x.x.x.x:destport> Benutze das Monitor UDP Format (z.B. bei TAPR TNCs), :port kann für localhost abgekürzt werden (ohne IP-Adresse).
N <x.x.x.x:destport> Sendet die Position im AXUDP Format alle 2 Sekunden z.B. zu aprsmap.
Der Parameter N sendet die Pakete automatisch an das Zielrufzeichen "NOGATE", was dazu führt dass diese Pakete nicht in das APRS-IS Netzwerk übermittelt werden können. Dieser Parameter dient nur der schnellen lokalen Darstellung der Position. Für die Übermittlung der Position ins APRS Netwzerk muss Parameter r verwendet werden.
n Bakenintervall in Sekunden für schnelle -N Baken (Standard = 2 Sekunden)
r <x.x.x.x:destport> Sende die Position im AXUDP Format an alle möglichen Ziele. Diese Pakete können an das APRS Netzwerk übermittelt werden.
s GPS Checksummen Check AUS
T <us> <us> RAW-Modus: Timepulse <[-]Periode> <Dauer> (us)
t <tty>:<baud> Schnittstellenbezeichnung an der die NMEA GPS-Daten ausgelesen werden sollen (Standard = /dev/ttyS0:4800)
U Aktiviere UBLOX RAW-Modus bei Ublox >= M6 und Software-Version >= 7 . Damit kann auch die vertikale Geschwindigkeit ausgelesen werden (Clb).
u Bei seriellen USB Verbindungen versucht gps2aprs standardmäßig wieder eine Verbindung zum GPS aufzubauen, sollte die Verbindung getrennt werden (z.B. Wackler am Stecker oder Kabel rausgezogen). Bei nicht-USB-Verbindungen kann dies mit dem Parameter -u verhindert werden. Bei seriellen USB Verbindungen ist dies ausdrücklich nicht zu empfehlen!
V Zeige Informationen in der Bildschirmausgabe und zeige Satelliten (GSV-Frames)
v Zeige Informationen in der Bildschirmausgabe.
w <viapath> Sende Pakete mit dem angegebenen APRS Pfad, z.B. WIDE1-1,WIDE2-1 (immer in Großbuchstaben!)
Beispielausgabe:
MY0CAL-2 to APLT01 via WIDE1-1 WIDE2-1 ctl UI^ pid F0
!5014.07N/01059.01E>001/000/A=001072
Z Aktualisiere die Systemzeit mit der GPS-Zeit. Eine Zeitkorrektur s in Sekunden kann bei Bedarf mit übergeben werden. Diese Funktion benötigt root-Rechte. Der Prozess wird nach dem Zeit setzen wieder beendet.
z Aktualisiere die Systemzeit mit der GPS-Zeit. Eine Zeitkorrektur s in Sekunden kann bei Bedarf mit übergeben werden. Diese Funktion benötigt root-Rechte. Der Prozess wird nach dem Zeit setzen fortgesetzt.

Konfigurationsbeispiele

GPS auslesen und mit Inhalt einer Kommentardatei versehen

gps2aprs -c \\\\:/home/pi/dxlAPRS/aprs/comment.txt: -f 0 -i "/>" -I MYCALL-2 -l 1 -r 127.0.0.1:6000 -N 127.0.0.1:9105 -n 5 -t /dev/ttyAMA0:9600 -0 30 -b 15 -g 10 -D

Die Parameter in der oben beschriebenen Reihenfolge:

  • Der Inhalt der Datei /home/pi/dxlAPRS/aprs/comment.txt wird als APRS Kommentar angehängt. Das Format ist für die bash gedacht, wie sie z.B. auf dem RaspberryPi unter Raspbian verwendet wird.
  • Normales unkomprimiertes APRS Datenformat.
  • Als Symbol wird ein Auto "/>2 gesendet.
  • Als eigenes Rufzeichen wird MYCALL-2 gesendet.
  • Der Kommentartext wird bei JEDEM Paket mitgesendet.
  • "Lansgame" AXUDP Pakete werden an Port 6000 gesendet.
  • "Schnelle" AXUDP Pakete werden an Port 9105 gesendet für die lokale Darstellung in APRSMAP falls notwendig.
  • Die "schnellen" Pakete werden alle 5 Sekunden erzeugt.
  • gps2aprs nutzt die GPS Mouse an /dev/ttyAMA0 mit 9600 Baud zur Positionsbestimmung.
  • Das Bakenintervall im Stand beträgt alle 30 Sekunden.
  • Das Bakenintervall in Bewegung beträgt alle 15 Sekunden.
  • Ab einer Geschwindigkeit von 10 km/h wird das Bakenintervall für "in Bewegung" genutzt.
  • Es wird die auf 20cm genaue DAO Kordinatengenauigkeit aktiviert.

Systemzeit vom GPS setzen

gps2aprs -t /dev/ttyAMA0:9600 -Z 1

gps2aprs nimmt den NMEA Datenstrom unter /dev/ttyAMA0 mit 9600 Baud und wartet solange bis die aktuelle GPS Zeit empfangen wurde. Sobald diese empfangen wurde, wird die Systemzeit des Rechners mit einer Sekunde "Aufschlag" gesetzt. Der Aufschlag dient dazu, die Zeit zu kompensieren, die zum Erfassen der Zeit benötigt wurde (Verarbeitungszeit). Wurde die Zeit gesetzt, wird gps2aprs wieder beendet. Dieser Befehl muss mit root Rechten ausgeführt werden!

Beispielausgabe:

pi@raspberrypi:~/dxlAPRS/aprs $ sudo ./gps2aprs -t /dev/ttyACM0:9600 -Z 1
system time set