Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Projekt: GPSMonitor (pure FreeBASIC)

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AndreasDo



Anmeldungsdatum: 15.11.2010
Beiträge: 10
Wohnort: Dortmund

BeitragVerfasst am: 15.11.2010, 11:38    Titel: Projekt: GPSMonitor (pure FreeBASIC) Antworten mit Zitat

Hallo,

ich bin neu hier, und wie könnte ich mich besser vorstellen als mit meinem aktuellen Projekt?

Ich bin 36, Dipl.Wirtschaftsinformatiker, halbwegs in der IT tätig, aber nicht hauptberuflich in der Softwareentwicklung. Als Winterprojekt habe ich vor einigen Monaten den "GPSMonitor" begonnen: http://www.gpsmonitor.de

Der Zweck von GPSMonitor war im Kern, GPS-Informationen eines GPS-Empfängers (die in einem Standard - NMEA0183 per serielle Schnittstelle - vorliegen) zu visualisieren. Der Schwerpunkt liegt dabei auf dem Einsatz auf dem Wasser als Bord-PC von Booten.

Inzwischen sind einige Zusatzfunktionen hinzugekommen, beispielsweise eine Ankerwache (die überwacht, dass die aktuelle Position sich nicht zu sehr von der Position des Ankers unterscheidet), eine Mensch-über-Bord-Funktion (die zu der Stelle zurückfindet, an der ein MOB-Alarm ausgelöst wurde), Waypoint- und Routennavigation, GPX-Tracklog zur nachträglichen Betrachtung in Google Earth, Touchscreen-Menü, ...

V1 war ein Proof-of-concept.
V2 steht zum Download bereit, ist ausgereift, und setzt auf ein einfaches Layout.
V3 ist gerade in der Entwicklung und birgt zwei wesentliche Neuerungen:
- Umstellung auf vollgrafische Oberfläche
- Integration eines 1-Wire-Busses mit Temperatursensoren, Spannungssensoren, Durchflusssensoren und Anzeige der Messwerte sowie Berechnung von Verbrauch pro Strecke etc.

GPSMonitor wird streng betriebssystemübergreifend entwickelt und soll unter Windows, DOS und Linux laufen (DOS: keine Unterstützung von Maus/Touchscreen sowie USB-1-Wire-Adaptern). Ziel ist es, dass ein billiges End-of-Life-Notebook (Pentium 2 oder sowas) fest im Boot verbaut wird. Meine Umgebung dafür ist ein Compaq M700 (50 EUR) und ein 8-Zoll-Touchscreen (eBay, 80 EUR). GPS-Empfänger dazu gibts mittlerweile für ca. 25 EUR. Durch die Kompatibilität mit Linux und (Free-)DOS sind auch keine Lizenzkosten erforderlich.

GPSMonitor ist (und wird bleiben) Open Source.

Leider sieht man dem Code an, dass die Anforderungen mit der Zeit gewachsen sind - V3 wird auch eine Code-Bereinigung enthalten.

Zwei zentrale Fragen beschäftigen mich im Moment, die ich an gegebener Stelle hier posten werde:
- Wie spreche ich einen 1-Wire-Bus direkt aus FreeBASIC an?
- Wie kann ich ein HTTP-GET direkt aus FreeBASIC aufrufen? Damit möchte ich die aktuelle Position mit Timestamp an eine Webapplikation senden, die dann einen Online-Tracklog (z.B. für Notfälle) bereitstellen kann.

(Ich hoffe, ich habe alle Regeln einer Projektvorstellung beherzigt.)

Anbei ein paar Screenshots (Preview V3) ...

touchscreen- und mausoptimiertes Menü:


Navigationsmodus:


Tachomodus:


Satellitenansicht:

_________________
Grüße,
Andreas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 15.11.2010, 13:51    Titel: Antworten mit Zitat

Hallo Andreas,

willkommen im Forum und danke für die Vorstellung des Projekts!

Die Software sieht wirklich sehr hochwertig aus - gerade auch die Screenshots von der neuen Version 3. Daumen rauf! Auch die Projektidee finde ich sehr gut. Eine sicherlich sehr nützliche Software mit echtem Einsatzpotenzial - etwas ganz anderes als die x-te DVD-Karteisoftware o. ä. zwinkern
(Ich habe allerdings weder GPS-Maus noch Boot, sodass ich die Software in absehbarer Zeit wohl leider eher nicht produktiv verwenden werde.)

Für die neue Version könntest du ja noch erwägen, Unterstützung für weitere Sprachen hinzuzufügen.

Zitat:
- Wie spreche ich einen 1-Wire-Bus direkt aus FreeBASIC an?

Das hängt natürlich davon ab, die dein Steuer-PC an den 1-Wire-Bus angebunden ist. Wenn du eine Schaltung am COM-Port verwendest (etwa auf Basis des DS2480B von Maxim), funktioniert die Ansteuerung in FreeBASIC über OPEN COM etc.
Auch bei USB-1-Wire-Adaptern, die einen virtuellen COM-Port emulieren (mit einem FT232R oder so), würde es so funktionieren - allerdings wohl nicht unter DOS. Es gibt zwar z. B. DOSUSB, aber ob das in diesem Fall zum Ziel führt?

Zitat:
- Wie kann ich ein HTTP-GET direkt aus FreeBASIC aufrufen? Damit möchte ich die aktuelle Position mit Timestamp an eine Webapplikation senden, die dann einen Online-Tracklog (z.B. für Notfälle) bereitstellen kann.

Dazu gibt es mehrere Möglichkeiten. Am einfachsten und gleichzeitig plattformübergreifend ist die Verwendung der TSNE, einer quelloffenen FreeBASIC-Bibliothek für Netzwerkprogrammierung. Ein HTTP-GET-Beispiel ist sogar "ready-to-use" vorhanden.
Alternativ käme z. B. SDL_NET in Frage, aber meine Wahl wäre eher TSNE.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AndreasDo



Anmeldungsdatum: 15.11.2010
Beiträge: 10
Wohnort: Dortmund

BeitragVerfasst am: 15.11.2010, 15:05    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:

[...]
Für die neue Version könntest du ja noch erwägen, Unterstützung für weitere Sprachen hinzuzufügen.

[...]

Das hängt natürlich davon ab, die dein Steuer-PC an den 1-Wire-Bus angebunden ist. Wenn du eine Schaltung am COM-Port verwendest (etwa auf Basis des DS2480B von Maxim), funktioniert die Ansteuerung in FreeBASIC über OPEN COM etc.
Auch bei USB-1-Wire-Adaptern, die einen virtuellen COM-Port emulieren (mit einem FT232R oder so), würde es so funktionieren - allerdings wohl nicht unter DOS. Es gibt zwar z. B. DOSUSB, aber ob das in diesem Fall zum Ziel führt?


GPSMonitor ist mehrsprachig (vergaß ich zu erwähnen traurig) - alle Texte werden in einer (proprietären) *.lng-Datei gespeichert und beim Start daraus gelesen. Einer der nächsten Schritte wird sein, auch eine englischsprachige Website bereitzustellen.

Zum 1-Wire-Thema habe ich mal einen eigenen Thread aufgemacht:
http://forum.qbasic.at/viewtopic.php?p=94592#94592
Nur soviel - den Adapter mit virtueller COM-Schnittstelle habe ich, und ich kann ihn per OPEN COM auch ansprechen, aber ich weiß nicht, was ich ihm schicken muss ... mit den Augen rollen

Danke für den Tipp zu TCP/IP - das werde ich mal flugs probieren.
_________________
Grüße,
Andreas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 15.11.2010, 15:25    Titel: Antworten mit Zitat

AndreasDo hat Folgendes geschrieben:
GPSMonitor ist mehrsprachig (vergaß ich zu erwähnen traurig) - alle Texte werden in einer (proprietären) *.lng-Datei gespeichert

Oh, entschuldige. Ich hatte nur einen Blick ins Quelltextpaket geworfen. Die LNGs in den Binary-Paketen sind mir nicht aufgefallen, mein Fehler. zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 15.11.2010, 19:15    Titel: Antworten mit Zitat

Hallo du. Willkommen im Forum.

OMG OMG OMG! Das ist ja mal ein nettes Programm. Ich finds toll. Super Arbeit lächeln
Allerdings kann ich den kompilierten Sourcecode unter Linux nicht nutzen, es erscheint die Meldung "No valid NMEA source found. Exiting".
Die .exe lässt sich unter WINE allerdings starten zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndreasDo



Anmeldungsdatum: 15.11.2010
Beiträge: 10
Wohnort: Dortmund

BeitragVerfasst am: 15.11.2010, 19:32    Titel: Antworten mit Zitat

Westbeam hat Folgendes geschrieben:
Hallo du. Willkommen im Forum.

OMG OMG OMG! Das ist ja mal ein nettes Programm. Ich finds toll. Super Arbeit lächeln
Allerdings kann ich den kompilierten Sourcecode unter Linux nicht nutzen, es erscheint die Meldung "No valid NMEA source found. Exiting".
Die .exe lässt sich unter WINE allerdings starten zwinkern


Danke!
Warte mal, bis Du den Quellcode gelesen hast, dann kommt Dir noch das Frühstück hoch - ich bin kein besonders talentierter Entwickler, komme mehr so von der Anforderungsseite.

Zu Linux muss ich gestehen, dass ich davon etwa soviel verstehe wie Goldfische vom Radfahren. Ich habe auf dem Netbook parallel ein Xubuntu up and running, aber schon zum kompilieren bin ich zu blöde. Ich benutze aber vorsätzlich keine Windows- / DOS-Only Befehle, und GPSMON3 final soll Linux-kompilierbar sein und auch kompiliert zum Download bereitgestellt werden. Cross-Compiling unter Windows für Linux beherrsche ich im Übrigen auch nicht, das für DOS war schon eine Doktorarbeit.

Erstmal ist Deine Fehlermeldung eine gute Nachricht, weil die Applikation als solches offenbar funktioniert - denn die Fehlermeldung kommt vom GPSMonitor und nicht vom Compiler, er kann die NMEA-Quelle nicht öffnen.

Teste mal bitte folgendes:
Wenn Du in der INI den INPUTMODE=FILE setzt, verwendet er die mitgelieferte nmea.txt anstelle des GPS-Empfängers. Ist nicht das gleiche, gebe ich zu, aber ist zum Testen und Gucken super. Wenn das läuft, ist der Fehler eingegrenzt auf die serielle Schnittstelle.

Nächster Versuch wäre dann, den Parameter COMPORT in der gpsmon.ini von AUTO auf bspw. COM2:4800 zu setzen. Angeblich ist FreeBASIC dahingehend kompatibel, dass "COM2" auf die entsprechende RS232-Schnittstelle im Linux gemappt wird. Mit dem AUTO-Mode habe ich auch unter Windows immer mal wieder Stress, der ist nicht beliebig zuverlässig.

Das Problem ist offenbar das "OPEN COM" in Zeile 224 in gpsmon2.bas (manueller Modus) bzw. Zeile 167 in gm_io.bi (Automodus).

@Sebastian:
Ich nehme Deinen Hinweis mal zum Anlass, zukünftig die INI, die LNG-Dateien und sonstige "Hilfsdateien" auch beim Quellcode mit in das ZIP zu packen. Sorry dafür.
_________________
Grüße,
Andreas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 15.11.2010, 19:52    Titel: Antworten mit Zitat

Habe die Änderungen vorgenommen, jetzt werden mir die Bedienelemente angezeigt. Allerdings schließt sich das Fenster automatische nach ein paar Sekunden ohne Fehlermeldung verwundert
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndreasDo



Anmeldungsdatum: 15.11.2010
Beiträge: 10
Wohnort: Dortmund

BeitragVerfasst am: 17.11.2010, 09:43    Titel: Antworten mit Zitat

Westbeam hat Folgendes geschrieben:
Habe die Änderungen vorgenommen, jetzt werden mir die Bedienelemente angezeigt. Allerdings schließt sich das Fenster automatische nach ein paar Sekunden ohne Fehlermeldung verwundert

Das ist gut und schlecht.
Gut, weil die Applikation jetzt offenbar auf Basis der nmea.txt arbeitet.
Was meinst Du mit "Bedienelemente angezeigt"? Wird der Tracklogscreen in der Mitte und die Instrumente unten angezeigt, und zeigen sie vernünftige Werte? Dann ist alles gut.
Die mitgelieferte nmea.txt ist sehr klein (um die Datenmenge zu reduzieren, und GPSMonitor schließt am Ende der Datei automatisch.

Verwende mal diese nmea.txt:
http://gpsmonitor.de/index.php/download
(letzter Link im Abschnitt der aktuellen Version)
Die enthält fast eine Stunde Mitschnitt einer Autofahrt (vmax ~135 km/h).

Oder habe ich Dich falsch verstanden?
Benimmt sich die Applikation in etwa so:
http://www.youtube.com/watch?v=EtGCBmmBnUc ?
_________________
Grüße,
Andreas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 18.11.2010, 22:19    Titel: Antworten mit Zitat

Ich finde dein Programm toll, allerdings sollte er bis COM256 suchen, nicht nur bis COM30.

EDIT: Vergiss es. INI-Datei nicht sofort bemerkt. COM46:4800 rein und läuft.
EDIT2: Aber man kann das Fenster nicht mit der X-Schaltfläche schließen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 19.11.2010, 15:01    Titel: Antworten mit Zitat

Hi,
AndreasDo hat Folgendes geschrieben:
Das Problem ist offenbar das "OPEN COM" in Zeile 224 in gpsmon2.bas (manueller Modus) bzw. Zeile 167 in gm_io.bi (Automodus).

Die Baudratenerkennung ist m.E. etwas zu einfach gestrickt
Code:
      IF INSTR(ComInput, "$GP") > 0 THEN
       PRINT "X"
      ReturnValue = "COM" & Show(n, 2, 0, 1) & ":" & MID(Speeds, 1 + m * 4, 4)
     ELSE
       PRINT "-"
     END IF
     CLOSE #1

siehe: http://documentation.renesas.com/eng/products/region/rtas/mpumcu/apn/autobaud.pdf

Es funktioniert nur wenn der erste Test mit 4800 Baud richtig ist.
Eine echte Fehlererkennung hast du da auch nicht drin.

Grüße aus Bergkamen nach Dortmund grinsen
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AndreasDo



Anmeldungsdatum: 15.11.2010
Beiträge: 10
Wohnort: Dortmund

BeitragVerfasst am: 19.11.2010, 15:53    Titel: Antworten mit Zitat

Der AUTO-Mode ist mal irgendwann aus dem Umstand entstanden, dass meine Bluetooth-Maus jedesmal auf einer anderen Schnittstelle erschienen ist (was ich inzwischen abgestellt habe). Er ist weder besonders elegant noch so richtig stabil.

Der Auto-Detect-Algorithmus (den ich nur kurz überflogen habe, werde mich mal im Detail damit beschäftigen) stößt an zwei Grenzen:
- GPS-Empfänger senden permanent NMEA-Daten, auch ohne "gefragt" zu werden. Ich habe also keinen Einfluss darauf, welches Zeichen er als nächstes sendet. Ich müsste also aus dem Bitbrei die entsprechenden Muster für bspw. "$GPRMC" bei unterschiedlichen Geschwindigkeiten identifizieren. Nicht trivial ...
- Insbesondere USB- und Bluetooth-GPS-Mäuse mit virtuellen COM-Schnittstellen unterstützen mehrere Geschwindigkeiten und verfügen selbst über etwas wie "Autosensing" - öffne ich eine solche Schnittstelle nacheinander mit 2400, 4800 und 9600, bekomme ich dreimal nacheinander erfolgreich NMEA-Daten, ohne den GPS-Empfänger dazu umgestellt haben zu müssen. Das könnte auch ein Problem sein.

Ich nehme Deinen Hinweis aber dankbar auf und werde mindestens mal eine Fehlerabfangroutine ergänzen.
_________________
Grüße,
Andreas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 23.11.2010, 14:45    Titel: Antworten mit Zitat

hmmm..,bei mir läuft das Programm auch nicht, es erwartet ein Gps-Gerät oder Datei.

Programm ist nicht sicher mit der Abfrage was da ist oder nicht, sondern geht gleich in den Abgrund.... lächeln hoffentlich geht das Boot auch nicht unter lächeln
Damit würde ich nicht rausfahren... lächeln

Als Spielprogramm ja aber nicht für die ernsthafte Nutzung.
Grafik sieht gut aus,...aber der Inhalt..., ich bleibe bei meinem Segelflugzeug...

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OdinX



Anmeldungsdatum: 29.07.2005
Beiträge: 253
Wohnort: SG Schweiz

BeitragVerfasst am: 24.11.2010, 09:34    Titel: Antworten mit Zitat

Wow, die Screenshots sehen toll aus!

Folgendes würde ich noch einbauen:
- Einstellung der Sprache zur Laufzeit (Mit automatischer Erkennung, welche Sprachdateien vorhanden sind)
- Dass das Programm sich nicht schliesst, wenn keine Datenquelle vorhanden ist, sondern einfach die entsprechenden Steuerelemente deaktiviert (grau) oder ausblendet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz