From b89e2523a4ed90224e34dd87f3591d4e9e1e4277 Mon Sep 17 00:00:00 2001
From: Michael Nachdem die Navigations-App für die Nutzung
mit dem Raspberry Pi bereits einige Jahre erfolgreich im
- Einsatz ist, gibt es jetzt auch eine Version, die direkt (ohne einen
- Raspberry) Geräten mit Android läuft, z.B Tablets oder Handys. Sie erfordert Android ab 4.4 (KitKat).AvNav Android
Die aktuellste Version kann man unter Downloads
herunterladen oder im AppStore.
Ältere Versionen oder "daily builds" findet man über die Installationsbeschreibung.
(neu ab 20210424)
Die App besteht intern aus mehreren Funktionsblöcken .
- Der NMEA Multiplexer verarbeitet NMEA0183 Daten von den verschiedenen - Quellen. Neben dem internen Geräte-GPS können die Daten von Quellen wie TCP - Verbindungen, UDP Ports, USB Geräten oder Bluetooth Verbindungen kommen. +
Der NMEA-Multiplexer verarbeitet NMEA0183-Daten von den verschiedenen + Quellen. Neben dem internen Geräte-GPS können die Daten von Quellen wie TCP-Verbindungen, UDP-Ports, USB-Geräten oder Bluetooth-Verbindungen kommen. Die meisten Quellen unterstützen das gleichzeitige Senden und Empfangen von Daten. Es können jeweils mehrere Quellen des gleichen Typs - konfiguriert werden (in der App-Konfiguration existiert für jede Quelle + konfiguriert werden. In der App-Konfiguration existiert dafür für jede Quelle ein sogenannter "Handler").
| Eine TCP-Verbindung zu einem externen System. AvNav ist dabei ein
TCP-Client und öffnet die Verbindung. Als Adresse kann sowohl eine IP-Adresse, als auch ein Hostname angegeben werden. Auch - ein mDNS-Name wie avnav.local kann benutzt werden. |
+ ein mDNS-Name wie "avnav.local" kann benutzt werden.
|||
| TcpWriter | @@ -73,7 +72,7 @@|||
| NMEA0183 service | -Eine Verbindung zu einem System, das seine NMEA0183 Daten als TCP-Service über mDNS (Bonjour/Avahi) + | Eine Verbindung zu einem System, das seine NMEA0183-Daten als TCP-Service über mDNS (Bonjour/Avahi)
bereit stellt. AvNav öffnet eine TCP-Verbindung zu einem solchen Gerät. |
|
| blacklist | -eine durch Kommas (,) getrennte Liste von Namen. NMEA Daten von diesen + | eine durch Kommas (,) getrennte Liste von Namen. NMEA-Daten von diesen Quellen werden nicht ausgesendet. | |
| posAge | -erlaubtes Alter für die GPS-Position (in sec), nach dieser Zeit wird + | erlaubtes Alter für die GPS-Position in sec, nach dieser Zeit wird der Eintrag gelöscht, wenn keine neuen GPS-Daten empfangen wurden | 10 |
| nmeaAge | -erlaubtes Alter für NMEA-Daten (in sec), die keine Positionsdaten enthalten | +erlaubtes Alter für NMEA-Daten in sec, die keine Positionsdaten enthalten | 600 |
| readTimeout | -Timeout in s für die Anzeige ob valide NMEA Daten empfangen werden | +Timeout in sec für die Anzeige, ob valide NMEA Daten empfangen werden | 10 |
| interval | -Intervall (in sec) für das Schreiben des Tracks als "gpx"-Datei. | +Intervall in sec für das Schreiben des Tracks als "gpx"-Datei. | 300 |
| distance | -Minimaler Abstand (in m) bevor ein neuer Trackpunkt geschrieben wird | +Minimaler Abstand in m, bevor ein neuer Trackpunkt geschrieben wird | 25 |
| minTime | -Minimale Zeit (in sec) bevor ein neuer Trackpunkt geschrieben wird | +Minimale Zeit in sec, bevor ein neuer Trackpunkt geschrieben wird | 10 |
| external | -Wenn aktiv, dann können sich auch andere Geräte verbinden (sonst
- nur auf dem eigenen Gerät). + | Wenn aktiv, dann können sich auch andere Geräte verbinden, ansonsten nur auf dem eigenen Gerät). Hinweis: Dieser Parameter sollte mit Vorsicht und nur in vetrauenswürdigen Netzen aktiviert werden. Innerhalb der App gibt es keinen weiteren Schutz! |
aus | @@ -440,7 +436,7 @@
| mdnsService | -Der Name unter dem die App per "mDNS" erreichbar ist. | +Der Name, unter dem die App per "mDNS" erreichbar ist. | avnav-android |
| ipAddress | Die IP-Adresse oder der Hostname für den Server, der kontaktiert - werden soll. Das kann auch ein mDNS Name wie z.B. avnav.local sein. | + werden soll. Das kann auch ein mDNS-Name wie z.B. avnav.local sein.--- | |
| port | -Der Ip-Port, zu dem eine Verbindung aufgebaut werden soll. | +Der IP-Port, zu dem eine Verbindung aufgebaut werden soll. | --- |
| service | -der Name des Services (Auswahl aus der Liste der gefundenen) | +der Name des Service (Auswahl aus der Liste der gefundenen) | --- |
| readTimeout | -Zeige die Verbindung inaktiv, wenn keine Daten nach der eingestellten Zeit (sec) aufgelaufen sind. | +Markiere die Verbindung als inaktiv, wenn keine Daten nach der eingestellten Zeit (sec) aufgelaufen sind. | 10 |
| writeTimeout | -Schliesse die Verbidung, wenn ein Satz nicht innerhalb der eingestellten Zeit (sec) geschrieben werden konnte | +Schliesse die Verbindung, wenn ein Satz nicht innerhalb der eingestellten Zeit (sec) geschrieben werden konnte | 5 |
| Configure MCS | aus | -Wenn diese Optoin aktiviert ist, wird beim nächsten Bootvorgang die notwendige + | Wenn diese Option aktiviert ist, wird beim nächsten Bootvorgang die notwendige Software für den Marine Control Server von GeDad aktiviert. Die Änderung der Einstellung führt dann zu einem - automatischen Reboot, wenn der Raspberry das erste mal mit dieser - Einstellung startet. | + automatischen Reboot, wenn der Raspberry das erste Mal mit dieser Einstellung startet.
Nach dem Eintragen der Werte kann man durch Klick auf den "download"-Button die "avnav.conf"-Datei herunterladen. Diese muss in die erste Partition der SD-Karte gespeichert werden. Eine eventuell dort vorhandene Beispieldatei muss überschrieben werden! Diese Partition muss dazu natürlich auf - dem Computer sichtbar sein. Unter Windows wird man in der Regel nur die erste - Partition sehen können. [Eventuell muss man dazu nach dem Schreiben des Images die SD-Karte noch einmal enfernen und wieder einstecken.] unklarer Satz, warum muss man das?
-Es empfiehlt sich daher, die "avnav.conf"-Date noch einmal an einem sicheren + dem Computer sichtbar sein. Unter Windows wird man in der Regel nur diese erste + Partition sehen können.
+Es empfiehlt sich daher, die "avnav.conf"-Datei zuvor noch einmal an einem sicheren Platz zu speichern, um sie ggf. beim Erzeugen einer neuen SD-Karte wiederverwenden zu können.
Nun kann man die SD-Karte in den Raspberry stecken und ihn starten. Der @@ -111,45 +110,43 @@
Wenn der Raspberry seine Systemeinrichtung endgültig abgeschlossen hat, kann man sich mit ihm verbinden.
Man kann das WLAN-Netzwerk verwenden, das der Raspberry erzeugt
- hat. Die SSID und das Passwort wurden wie oben beschrieben in der Datei "avnav.conf" definiert. Auch eine
- Verbindung über ein Ethernet-Kabel ist möglich und wird sofort funktionieren.
- Um sich zu verbinden, muss man zuächst die Adresse für den Raspberry
- herausfinden.
+
Entweder verwendet man das WLAN-Netzwerk, das der Raspberry automatisch erzeugt
+ hat, oder man nutzt ein Ethernetkabel für ein kabelgebundenes Netzwerk. Die SSID und das Passwort für das Raspberry-WLAN wurden wie oben beschrieben in der Datei "avnav.conf" bereits definiert.
+ Um sich mit dem Raspberry zu verbinden, muss man zuächst seine Netzwerk-Adresse herausfinden.
Am einfachsten geht das per mDNS, auch als "Bonjour" oder "Avahi" bezeichnet.
Das wird auf allen Desktop-Systemen unterstützt. So kann man einfach in die Adresszeile des
Browsers eingeben:
Das sollte die Hauptseite von AvNav
- laden. Es sollte auch möglich seine, avnav.local zu benutzen, wenn man
+ laden. Es sollte auch möglich sein, "http://avnav.local" zu benutzen, wenn man
sich mit dem Raspberry per SSH verbinden will (z.B. putty
unter Windows).
Wenn man sich per Ethernet-Kabel verbinden möchte, muss man zwei Fälle
unterscheiden:
Im ersten Fall muss man prüfen, ob der eigene Computer automatisch eine
IP-Adresse auf dem Interface erzeugt (Bereich 169....). Das kann
- potentiell 1-2 Minuten dauern, auch auf dem Pi. Danach sollte die
- Verbindung per avnav.local möglich sein.
- Im anderen Fall sollte es schneller gehen, allerdings müssen sich der
+ potenziell 1-2 Minuten dauern, auch auf dem Pi. Danach sollte die
+ Verbindung per "avnav.local" möglich sein.
+ Im zweiten Fall sollte es schneller gehen, allerdings müssen sich der
Raspberry und der sich verbindende Computer im gleichen Netz befinden.
Auf Images, die älter als Version "20210322" sind, muss man eventuell die Portadresse ":8080" an die IP-Adresse im
Browser anfügen.
Eine Einschränkung bleibt: Leider funktioniert avnav.local nicht auf Android-Geräten. Daher empfehle +
Eine Einschränkung bleibt: Leider funktioniert "avnav.local" nicht auf Android-Geräten. Daher empfehle
ich, dort ein Tool zu nutzen, das mDNS nutzen kann - einen
BonjourBrowser . Für IOS gibt es ein vergleichbares
- Tool - auch wenn dort der Eintrag "avnav.local" im Brwoser funktioniert. Man wird seinen
- Raspberry mit dem AvNav-Image in den Browsern unter dem Namen
+ Tool - auch wenn dort der Eintrag "avnav.local" im Browser grundsätzlich funktioniert. Man wird seinen
+ Raspberry mit dem AvNav-Image in den Browsern allerdings unter dem Namen
"avnav-server" finden. Typischerweise wird man noch einen zweiten Eintrag
"avnav" sehen - dahinter verbirgt sich der SignalK-Server
auf dem Raspberry.
Wenn man seinen Raspberry im Bonjour-Browser sehen kann, der Aufruf der
Seite dann aber fehlschlägt, kann es an einer Besonderheit von Android
liegen, wenn zusätzlich z.B. per Mobilfunk eine Internet-Verbindung
- aktiv ist. In diesem Falle sollte man mobile Daten zeitweilig abschalten.
Wenn man ein System hat, das nur mit dem WLAN-Netzwerk des Raspberry verbunden ist, ohne dass eine weitere Internetverbindung aktiv ist, sollte man sich auch per
@@ -162,28 +159,28 @@Wenn man sich per SSH verbindet, ist der Nutzername "pi". - Das Nutzer-Passwort wurde in der Datei "avnav.conf" (hoffentlich) gesetzt. +
Wenn man sich per SSH verbindet, lautet der Nutzername "pi".
+ Das Nutzer-Passwort wurde in der Datei "avnav.conf" (hoffentlich) bereits gesetzt.
.
Wenn das in der Konfiguration gesetzte Passwort nicht funktioniert, kann
man noch einmal das Default-Passwort versuchen. Es lautet "raspberry".
Eventuell wurde die avnav.conf zuvor nicht korrekt gespeichert.
- Eine Root-Shell kann man mit sudo -i erhalten.
Der Raspberry wird ein (oder mehrere) WLAN-Netzwerke aufsetzen, eines mit - dem internen Adapter und weitere mit potentiell gesteckten WLAN-Sticks. + dem internen Adapter und weitere mit potenziell gesteckten WLAN-Sticks. Diese Netzwerke haben die Adressen:192.168.20.0/24, 192.168.30.0/24, 192.168.40.0/24, 192.168.50.0/24. Der Raspberry selbst hat dabei jeweils die Adresse 192.168.x.10.
Auf dem Raspberry wird dazu ein DHCP-Server und ein DNS-Server eingerichtet (dnsmasqd).
Wenn der Raspberry über ein Ethernet-Kabel verbunden wird, versucht er per DHCP eine Adresse aus dem Netzwerk zu erhalten. Er setzt dann eine NAT-Weiterleitung aus - seinem WLAN-Netz zum Ethernet auf. So kann z.B. eine Internetverbindung aufgebaut werden, während man in das WLAN des Raspberry eingewählt ist.
+ seinem WLAN zum Ethernet auf. So kann z.B. eine Internetverbindung aufgebaut werden, während man in das WLAN des Raspberry eingewählt ist.Ein WLAN Stick der wie im Bild angeschlossen ist (auf dem Pi4 die blaue - USB Buchse an der Platinen-Seite) erlaubt es, sich zusätzlich mit anderen - WLAN Netzen zu verbinden (z.B. ein HAfen WLAN oder ein LTE Router). Der +
Ein WLAN Stick, der wie im Bild angeschlossen ist (auf dem Pi4 die blaue + USB-Buchse an der Platinen-Seite) erlaubt es, sich zusätzlich mit anderen + WLAN-Netzen zu verbinden (z.B. zu einem HAfen-WLAN oder zu einem LTE-Router). Der interne Name ist wlan-av1. Man kann die Verbindung zu einem WLAN in der App konfigurieren.
@@ -201,7 +198,7 @@
Für OpenPlotter gibt es @@ -308,7 +305,7 @@
Wieder mal ein paar kleine Modifikationen an den Map-Sources, damit der - Zugriff auf die BSH Server wieder funktioniert.
+Es gibt wieder einmal ein paar kleine Modifikationen an den Map-Sources, damit der + Zugriff auf die BSH-Server wieder funktioniert.
Für den Mobile Atlas Creator
habe ich einige Map-Sources erzeugt, die es erlauben, etwas flexibler per
- xml den Zugriff auf Kartendienste zu definieren. Dazu die Datei avnav-mapsources.zip
+ XML den Zugriff auf Kartendienste zu definieren. Dazu die Datei avnav-mapsources.zip
im Verzeichnis "mapsources" des Mobile Atlas Creator entpacken.
- Dann erhält man u.a. ein "mashUp" aus den BSH-Kartendiensten (siehe auch bsh-viewer)
- und OpenSeaMap ("BSH OpenSeaMap 2014 Extended"). Außerdem noch BSH alleine
+ und OpenSeaMap ("BSH OpenSeaMap 2014 Extended"). Außerdem erhäalt man noch BSH allein
("BSH 2014 Extended") oder OpenSeaMap + OpenStreetMap ("OWS OpenSeaMap
- 2014"). Wenn jemand "spielen" möchte, kann man die .exml entsprechend
- anpassen. Spannend sind insbesondere die Layer für die BSH-Abfrage. Die
- kann man mit meinem
+ 2014"). Wenn jemand "spielen" möchte, kann man die Datei *.exml entsprechend
+ anpassen. Spannend sind insbesondere die Layer für die BSH-Abfrage. Man kann sie mit meinem
bsh-viewer ausprobieren (jeweils rechts in der Quelle editieren).
Außerdem kann man bei Bedarf die Farben noch etwas anpassen - ich habe
- mich bemüht, etwas mehr Kontrast zu erzeugen. Wenn man etwas ändern will -
- eine der Karten z.B. mit paint.net öffnen und dann die Hex-Werte für die
- Farben aussuchen und in der .exml Datei eintragen.
Der Download dauert meist ziemlich lange - oft ist der BSH-Server sehr - langsam oder stürzt auch gerne mal ab. Dann einfach wieder neu versuchen - (dazu im Mobac die cache Einstellungen so setzen, dass er die Karten z.B. - 1 Monat im Cache lässt) - irgendwann sind sie alle heruntergeladen. Als - Format jetzt immer "OsmdroidGEMF" wählen (das kann man übrigens auch in - anderen Programmen nutzen...).
-Wenn man in den exml Dateien ändert (insbesondere bei den Layern) muss - man allerdings unter Tilestore die enstprechenden Caches löschen - sonst + langsam oder stürzt auch gerne mal ab. Dann einfach wieder neu versuchen: + Dazu sollten im Mobac die Cache-Einstellungen so gesetzt werden, dass die Karten z.B. + 1 Monat im Cache bleiben sollen. Irgendwann sind die Karten dann alle heruntergeladen. Als + Format jetzt immer "OsmdroidGEMF" wählen. Das kann man übrigens auch in + anderen Programmen nutzen...
+Wenn man in den *.exml-Dateien ändert (insbesondere bei den Layern) muss + man allerdings unter "Tilestore" die enstprechenden Caches löschen - sonst werden die Änderungen nicht wirksam.
Source files auf github.
Das Ergebnis sieht z.B. so aus (das ist die Einfahrt nach Greifswald):