 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AndreasDo
Anmeldungsdatum: 15.11.2010 Beiträge: 10 Wohnort: Dortmund
|
Verfasst am: 15.11.2010, 11:38 Titel: Projekt: GPSMonitor (pure FreeBASIC) |
|
|
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 |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 15.11.2010, 13:51 Titel: |
|
|
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. 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. ä.
(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 |
|
 |
AndreasDo
Anmeldungsdatum: 15.11.2010 Beiträge: 10 Wohnort: Dortmund
|
Verfasst am: 15.11.2010, 15:05 Titel: |
|
|
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 ) - 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 ...
Danke für den Tipp zu TCP/IP - das werde ich mal flugs probieren. _________________ Grüße,
Andreas |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 15.11.2010, 19:15 Titel: |
|
|
Hallo du. Willkommen im Forum.
OMG OMG OMG! Das ist ja mal ein nettes Programm. Ich finds toll. Super Arbeit
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  |
|
Nach oben |
|
 |
AndreasDo
Anmeldungsdatum: 15.11.2010 Beiträge: 10 Wohnort: Dortmund
|
Verfasst am: 15.11.2010, 19:32 Titel: |
|
|
Westbeam hat Folgendes geschrieben: | Hallo du. Willkommen im Forum.
OMG OMG OMG! Das ist ja mal ein nettes Programm. Ich finds toll. Super Arbeit
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  |
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 |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 15.11.2010, 19:52 Titel: |
|
|
Habe die Änderungen vorgenommen, jetzt werden mir die Bedienelemente angezeigt. Allerdings schließt sich das Fenster automatische nach ein paar Sekunden ohne Fehlermeldung  |
|
Nach oben |
|
 |
AndreasDo
Anmeldungsdatum: 15.11.2010 Beiträge: 10 Wohnort: Dortmund
|
Verfasst am: 17.11.2010, 09:43 Titel: |
|
|
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  |
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 |
|
 |
Cherry
Anmeldungsdatum: 20.06.2007 Beiträge: 249
|
Verfasst am: 18.11.2010, 22:19 Titel: |
|
|
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 19.11.2010, 15:01 Titel: |
|
|
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  _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
AndreasDo
Anmeldungsdatum: 15.11.2010 Beiträge: 10 Wohnort: Dortmund
|
Verfasst am: 19.11.2010, 15:53 Titel: |
|
|
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 |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 23.11.2010, 14:45 Titel: |
|
|
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.... hoffentlich geht das Boot auch nicht unter
Damit würde ich nicht rausfahren...
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 |
|
 |
OdinX

Anmeldungsdatum: 29.07.2005 Beiträge: 253 Wohnort: SG Schweiz
|
Verfasst am: 24.11.2010, 09:34 Titel: |
|
|
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 |
|
 |
|
|
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.
|
|