Fahrtenbuch

Startseite
Hardware
Firmware
Software

 

Die Programmierung des BASIC-Tigers

Die Software im BASIC-Tiger kommuniziert auf dem seriellen Port 0 mit dem GPS-Modul und auf dem seriellen Port 1 mit der Aussenwelt über die 9 polige SUB-D Buchse.

Sowohl zum Übertragen der Firmware, als auch zur Kommunikation mit der PC Software verwenden Sie diesen Anschluss. Für die Übertragung der Firmware (das Programm im BASIC-Tiger) muss der Jumper J1 gegen Masse gesteckt werden, siehe Hardware. Laden Sie mit dem Programm "Downloader" die Datei "tourbook-31.tgu" in das Gerät.

Zur Verbindung mit einem PC benötigen Sie ein normales (nicht gekreuztes) Kabel mit Stecker und Buchse. Nach der Übertragung prüfen Sie den Status der Firmware mit dem Downloader und stecken dann den Jumper J1 gegen V2, siehe Hardware. Der Jumper bleibt nun in dieser Position und Sie können das Gerät zuschrauben.

Bevor sich das Fahrtenbuch auf der seriellen Schnittstelle meldet, muss die Betriebsspannung entfernt werden und nach frühestens 5 Sekunden wieder angelegt werden.

Folgende Dateien stehen zum Download bereit:

 TOURBOOK Version 3.1

tourbook-31.tgu

(64 kB)

 Downloader von Wilke

Downloader (DOS, Win9x, NT, 2000)

(1 MB)

 

Das Programm im Betrieb

Da das Gerät als "Black-Box" konzipiert ist und keinerlei Benutzeraktivität erfordert, gibt ein Piezo Summer Auszunft über den Zustand.

1 mal kurz

Das Gerät wurde eingeschaltet und ist betriebsbereit.

2 mal kurz

2 mal kurz

Das Gerät hat die erste gültige Koordinate nach dem Einschalten erhalten (First Fix) und ist bereit für die Datenaufzeichnung.

5 mal kurz

5 mal kurz

Der Flash Speicher ist voll. Es können keine weiteren Fahrten aufgezeichnet werden.

Zirpen

Zirpen

Kein GPS Empfang möglich.

2 mal lang

2 mal lang

Der Datensatz "Fahrtende" wurde gespeichert. Dies Signal erfolgt nach dem Abschalten der Zündung und kennzeichnet die korrekte Arbeitsweise des Gerätes.

Ertönt dieses Signal beim Abschalten nicht, so wurde weniger als 100 Meter Wegstrecke aufgezeichnet oder der Kondensator für die Spannungserhaltung ist nicht eingebaut.

Die Betriebsart

Der Schalter an Pin 10 betimmt die Betriebsart des Gerätes. Es spielt für die Datenaufzeichnung im Fahrzeug keine Rolle in welcher Betriebsart sich das Gerät befindet.

Ist der Schalter geöffnet, so befindet sich das Gerät im NMEA GPS Modus. Dabei wird die Schnittstelle auf 4800 Baud eingestellt und die Datensätze des Empfängers direkt ausgegeben. In diesem Modus kann während der Fahrt z.B. ein Laptop mit dem Fahrtenbuch verbunden sein um die aktuelle Koordinate auf einem Routenplaner anzuzeigen.

Ist der Schalter geschlossen, so befindet sich das Gerät im Kommandomodus. Die Schnittstelle wird auf 19200 Baud eingestellt und gibt keine Datensätze vom Empfänger aus. Stattdessen beantwortet das Gerät Befehle, die über die serielle Schnittstelle gesendet werden. Dies funktioniert auch mit einem zwischengeschalteten Handy mit Datenfunktion, so dass die aktuelle Position eines Fahrzeugen auch online abgefragt werden kann. Um mit dem Fahrtenbuch zu kommunizieren, werden auf Textbasis Sätze (eine Zeichenfolge plus Carrige Return) ausgetauscht.

Das Fahrtenbuch mit selbstgeschriebener Software auslesen

Um eine einfache Befehlsstruktur zu implementieren, wertet das Gerät immer nur das erste Zeichen einer Zeile aus und führt dann die entsprechenden Befehle aus. Alle Antworten für diese Befehle beginnen mit einem Klammeraffen (@), so dass die Auswertesoftware leicht erkennen kann, ob eine Antwort vorliegt.

Bei den Befehlen "?" "=" "." ":" ";" wird am Ende der Antwort ein Stern gefolgt von einer Prüfsumme in Hexadezimalkodierung angehängt. Die Prüfsummenberechnung entspricht dem Verfahren nach NMEA 0183, so dass hier die gleiche Prüfroutine verwendet werden kann. Schlägt eine Prüfung bei den Befehlen "?" oder "=" fehl, so wird die Abfrage einfach wiederholt. Bei den Punkt-Befehlen ("." ":" ";") wird die vorige Abfrage mit dem Befehl ";" wiederholt.

Die Punkt-Befehle ("." ":" ";") geben als letzten Parameter vor der Prüfsumme den Speicherplatz der Daten aus. Wird diese Angabe bei den Befehlen "." oder ":" verwendet, so kann ein Download nach und nach fortgesetzt werden.

Versionsabfrage

?

Abfrage von Version, Anzahl Datensätze, Anzahl Fahrten, Speicheradresse, Gesamtspeicher. Die Lese-Adresse für den Punkt-Befehl ("." oder ":") wird zurückgesetzt.

@3.1,573,7,2219,393216*2E

Die einzelnen Parameter zwischen "@" und "*" sind durch Kommas voneinander abgetrennt. Folgende Parameter werden ausgegeben:

  • Version Firmware
  • Gespeicherte Datensätze
  • Davon gespeicherte Fahrten
  • Benutzter Flash-Speicher in Bytes
  • Gesamtgröße des Flash-Speichers in Bytes

Datensatz lesen

.{Adresse}

Nächsten Datensatz auslesen. Wird hinter dem Punkt eine Zahl angegeben, so wird der Datensatz an dieser Adresse gelesen (optional).

@2,21,91*39

Die einzelnen Parameter zwischen "@" und "*" sind durch Kommas voneinander abgetrennt. Folgende Parameter werden ausgegeben:

  • Fahrer und Datensatztyp
  • weitere Daten, abhängig vom Datensatztyp

Je nach Datensatztyp werden folgende weiteren Daten ausgegeben:

  • 0 (Fahrtende): Breite, Länge, Zeit, Strecke, Fahrtzeit, TTFF
  • 1 (Fahrtbeginn): Breite, Länge, Zeit, TTFF
  • 2 (Zwischenschritt gepackt): Delta Breite + Delta Länge + Delta Fahrtzeit
  • 3 (Zwischenschritt kurz): Delta Breite, Delta Länge, Delta Fahrtzeit
  • 4 (Zwischenschritt lang): Delta Breite, Delta Länge, Delta Fahrtzeit
  • 5 (Zwischenschritt voll): Breite, Länge, Zeit
  • 6 (DEBUG Wert) Beliebiger LONG Zahlenwert

Sind keine weiteren Daten vorhanden, so erfolgt die Ausgabe

@EOD*4E

Datensatz lesen

:{Adresse}

Nächsten Datensatz auslesen. Im Gegensatz zum Befehl "." wird nur der nächste Fahrtbeginn oder das nächste Fahrtende übermittelt. Wird hinter dem Punkt eine Zahl angegeben, so wird der Datensatz an dieser Adresse gelesen (optional).

@0,539414,103073,739738056,184,1370,8,1131*24

Die einzelnen Parameter zwischen "@" und "*" sind durch Kommas voneinander abgetrennt. Folgende Parameter werden ausgegeben:

  • Fahrer und Datensatztyp
  • weitere Daten, abhängig vom Datensatztyp

Je nach Datensatztyp werden folgende weiteren Daten ausgegeben:

  • 0 (Fahrtende): Breite, Länge, Zeit, Strecke, Fahrtzeit, TTFF
  • 1 (Fahrtbeginn): Breite, Länge, Zeit, TTFF

Sind keine weiteren Daten vorhanden, so erfolgt die Ausgabe

@EOD*4E

Abfrage wiederholen

;

Letzten Punkt-Befehl ("." oder ":") wiederholen. Sinnvoll wenn Prüfsumme falsch.

@0,539414,103073,739738056,184,1370,8,1131*24

Datensatz speichern

,

Datensatz speichern. Ein zuvor aufgezeichneter Datensatz kann zurückgeschrieben werden. Dazu wird der Satz, so wie er empfangen wurde (jedoch ohne "@") plus einem vorangestellten und zwei nachgestellten Kommas angegeben.

@Next Flash address: xxxx

Aktuelle Position abfragen

=

Abfrage der momentanen Position. Dieser Befehl macht Sinn wenn eine Verbindung über ein Handy hergestellt wurde.

@0,539414,103073,739738056,184,1370*24

Die einzelnen Parameter zwischen "@" und "*" sind durch Kommas voneinander abgetrennt. Folgende Parameter werden ausgegeben:

  • Fahrer
  • Breite
  • Länge
  • Zeit
  • Strecke
  • Fahrtzeit

An Empfänger

$

NMEA Datensatz an Empfänger. Der Datensatz wird unverändert an den Empfänger weitergegeben.

Speicher löschen

!

Flash Speicher löschen. Es erfolgt für jede gelöschte Speicherbank eine Rückmeldung

Bank0 erased
Bank1 erased
@FLASH ERASED!

Remote-Verbindung trennen

#

Falls eine Verbindung zum Gerät über ein Handy aufgebaut wurde, kann mit diesem Befehl die Verbindung getrennt werden. Die Meldung

NO CARRIER

erscheint einige Sekunden nach Absenden des Befehls auf dem lokalen Terminal.

Gerätestatus abfragen

-

Mit diesem Befehl kann getestet werden, ob das Gerät angeschlossen ist und sich im Kommandomodus befindet.

@OK

Parameter der Punkt-Befehle

Das erste Parameter des Punkt-Befehls kennzeichnet die Art und den Umfang der folgenden Daten. Die Bits 0 bis 2 kennzeichnen den Datensatzmodus, siehe folgende Tabelle. Die Bits 3 bis 6 dienen der Fahrerkennung (bis zu 16 Fahrer). Das Bit 7 sollte immer Null sein und kennzeichnet gültige Daten.

Als Datenininhalt werden Positionen, Datum/Uhrzeit, Fahrtzeit und Fahrstrecke gespeichert.Eine Position besteht aus 2 LONG die die Latitude (Breite) und die Longitude (Länge) als Dezimalgrad mal 10000 darstellen. Die Angaben enthalten also den Wert in Grad sowie 4 dezimale Nachkommastellen. Datum und Uhrzeit werden in einem LONG als die Sekunden seit dem 1.1.1980 0:00 Uhr dargestellt. Diese Formatierung ist weit verbreitet und bringt bei Berechnungen einige Vorteile. Um diesen Wert in die Microsoft Windows konforme Fließkommazahl für die Zeitdarstellung umzuwandeln, kann folgende Formel verwendet werden: (SEKUNDEN / 86400) + 29221.

Die Fahrtzeit wird als WORD gespeichert und enthält die Sekunden seit Fahrtbeginn. Die Zeit darf also 18 Stunden nicht überschreiten. Die Fahrtstrecke wird in einem WORD gespeichert und enthält die gefahrenen Hektometer (Kilometer * 10). Der Maximalwert liegt also bei 6553 Kilometer pro Fahrt.

Die Datentypen 0 und 1 speichern zusätzlich noch den so genannten TTFF-Wert (Time to first fix) ab. Dieser Wert gibt an, wie lang der Empfang der ersten gültigen Koordinate nach Fahrtbeginn gedauert hat.

Die Datentypen 0,1 und 5 enthalten die Absolutwerte wogegen die Typen 2,3 und 4 Differenzwerte zum vorigen Wert enthalten, um möglichst kurz gespeichert zu werden.

Modus

Beschreibung

Beispiel

0

Zündung "AUS". Es folgen:

Breite, Länge, Zeit, Hektometer, Dauer, TTFF

@0,539463,103077,726348349,185,1200,5

1

Zündung "AN". Es folgen:

Breite, Länge, Zeit, TTFF

@1,539463,103077,726348349,5

2

Differenzdatensatz gepackt.

Es folgt ein Datenbyte (Siehe folgende Tabelle)

@2,192

3

Differenzdatensatz kurz. Es folgen:

Delta Breite (abs), Delta Länge (abs)

Der dritte Wert enthält in den Bits 0-5 die vergangenen Sekunden, im Bit 6 das Vorzeichen "Länge" und im Bit 7 das Vorzeichen "Breite"

@3,15,20,210

4

Differenzdatensatz lang. Es folgen:

Delta Breite + 32767, Delta Länge + 32767, Delta Zeit

@4,32800,32770,2100

5

Differenzdatensatz voll. Es folgen:

Breite, Länge, Zeit

@5,539463,103077,726348349

6

DEBUG Eintrag. Es folgt ein Longint Zahlenwert

@6,12345678

Das Datenbyte im Datensatzmodus 2 setzt folgendermassen zusammen: Bits 0 bis 2 dienen zur Kennzeichnung des Richtungswechsels, siehe folgende Tabelle. Bits 3 bis 7 (0..31) sind die vergangenen Sekunden bis zum Richtungswechsel. Ein Koordinatenwechsel bezieht sich auf die letzte Stelle der Koordinaten.

Koordinatenwechsel

Richtung

0

Nord

1

Nord-Ost

2

Ost

3

Süd-Ost

4

Süd

5

Süd-West

6

West

7

Nord-West

Wenn das Gerät nach dem Einschalten an letzter Speicherposition keinen Datensatzmodus 0 findet, so wird bei Empfang der ersten gültigen Koordinate ein Datensatzmodus 1 abgespeichert. Dieser Datensatz wird also immer als erster Datensatz im Speicher abgelegt und immer dann wenn kein 1F Kondensator zur Spannungserhaltung eingebaut wurde.

(C) 2003, Dynamo Software. Kommerzielle Nutzung verboten! Für Richtigkeit und Brauchbarkeit dieser Software keine Gewähr!