-
Bau eines eigenen Loggers
Für die Erstellung eines eigenen Logger benötigt man die Klassen
JLoggerInterface
undJLoggerHeaderInterface
. Davon werden jeweils die eigenen Klassen abgeleitet.class myLogger extends JLoggerInterface
class myLoggerHeader extends JLoggerHeaderInterface
Alle abstrakten Funktionen dieser Interfaces müssen überschrieben und ausprogrammiert werden. Die
Header
-Klasse kümmert sich um die Verwaltung der Konfigurationsdaten des Loggers und das interpretieren der Infobereiche der diversen Datendateiformate. Die eigentliche Logger-Klasse ist für die Verwaltung der Daten zuständig.Informationen zu den einzelnen zu überschreibenden Funktionen finden sich in der Entwicklerdokumentation.
WICHTIG!! Eine Instanz der Header-Klasse muss im Konstruktor des Loggers dem Member
loggerHeader
zugewiesen werden.Der eigene Logger kann in den Vektor
loggerChannels
vorgegebene Sensoren aus demJlogger.jar
oder selbst erstellte einbinden. -
Bau eines Sensors
Zum Erstellen eines eigenen Sensors benötigt man die Klasse
Sensor
. Welche Member im Konstruktor zu initialisieren sind, entnehmen sie bitte der aktuellen Entwicklerdokumentation.Der Sensor kann im eigenen Logger genutzt werden.
-
Überschreiben eines bestehenden Sensors
Zum Überschreiben eines bestehenden Sensors wird von diesem eine Klasse abgeleitet. In dieser werden die zu ändernden Memberfunktion überschrieben.
Name der Sensorklasse Sensorfunktion SAltitudeADC16
Höhensensor SAltitudeADC0
Höhensensor SVario
Variometer SSpeed
Geschwindigkeitssensor SCurrent
Stromstärke SUb
Spannungssensor SAneometer
Windgeschwindigkeit SRpm
RPM-Sensor SBx
Beschleunigungsmesser bx SBy
Beschleunigungsmesser by SRC3
RC3 STemp_int
Interne Temperatur STemp_ext
Externe Temperatur SGPS
GPS-Sensor Wichtig!!!
Für alle Sensoren, die im bestehenden Meissner-Logger einen Sensor überschreiben sollen, ist es nötig die Funktion
public boolean pluginSensor()
so zu überschreiben, dass sietrue
zurück liefert. Ansonsten wird der Sensor für die Überschreibung ignoriert.Es können alle Berechnungsfunktionen eines Sensor überschrieben werden. Die Standardaufrufreihenfolge der Funktionen ist:
public double parameter()
Diese Funktion wird im Programm aufgerufen, um die berechneten Werte des Sensors abzurufen.
Die Funktion ruft zuerstcalculate
und dannextremValue
auf.protected double calculate()
Berechnet zuerst den physikalisch korrekten Wert des Sensors und verrechnet ihn dann mit einer Abbildungsfunktion.
Innerhalb dieser Funktionen können sie beliebige Berechnungsalgorithmen unterbringen. Beispiele können sie der Entwicklerdokumentation für die jeweiligen bestehenden Sensorenklassen entnehmen. Bitte denken sie daran alle benötigten Membervariablen in ihrem Sensor korrekt zu initialisieren, wenn diese von den Vorgaben des zu überschreibenden Sensors abweichen. Zum Beispiel die Anzahl der Bytes, die die Werte des Sensors im Logger belegen.
-
Programmieren mit JLogger
Konzentrieren wir uns auf drei Hauptwege:
- Sie arbeiten mit der Konsole.
Dazu sollten Sie wissen, was Sie tun. - Sie nehmen die Eclipse-Umgebung. Sie ist kostenlos und gut ausgebaut.
- Sie benutzen den JBuilder. Er ist in der "Personal"-Edition kostenfrei und reicht für unsere Zwecke allemal aus.
Zu den beiden Entwicklungsumgebungen erhalten Sie im Folgenden "Klick"-Anleitungen, die Sie befähigen, ohne großes Vorwissen Großes leisten zu können.
- Sie arbeiten mit der Konsole.
-
Schritt für Schrittanleitung zur Sensorerstellung mit Eclipse
Folgend eine bebilderte Anleitung, wie Sie mit Eclipse einen eigenen Sensor erstellen sollten. Als Beispiel dient uns der SRPM-Sensor auf dem JLogger.
- Legen Sie ein neues Projekt an.
- Vergeben Sie einen Namen für das Projekt und nehmen Sie eventuell individuelle Einstellungen vor.
- Binden Sie die zur Verfügung gestellte Bibliothek
JLogger.jar
in Ihr Projekt ein.
- Legen Sie eine neue Klasse für Ihren Sensor an.
- Vergeben Sie einen Namen für Ihren Sensor und stellen Sie individuelle Eigenschaften ein.
- Leiten Sie ihren Sensor von dem zu Überschreibenden ab. Fügen Sie die 2 benötigten Konstruktoren zum Code der Klasse hinzu.
- Überschreiben Sie nun die Berechnungsfunktionen, die Sie ändern wollen. Im Folgenden sind die markierten Stellen abgewandelt vom Original.
- Nachdem Sie Ihren Sensor ausprogrammiert haben, exportieren Sie ihn als JAR-Datei.
- Geben Sie als Exporttyp
JAR file
an.
- Wählen Sie den zu generierenden Inhalt der JAR-Datei aus.
- Legen Sie ein neues Projekt an.
-
Schritt für Schrittanleitung zur Sensorerstellung mit JBuilder
- Legen Sie ein neues Verzeichnis (z.B.
NewSensors
) mit den Unterverzeichnissensrc
sowieplugin
an. - Legen Sie ein neues Projekt an (
Datei → Neu → Erzeugen → Builder für native ausführbare Datei
).
- Vergeben Sie einen Namen für die zu erzeugende JAR-Datei (hier
MySuperSensor
) im Verzeichnisplugin
.
- Entfernen Sie alle Häkchen unter
"ausführbare Dateien"
, dann →Fertig stellen
- Binden Sie die zur Verfügung gestellte Bibliothek
JLogger.jar
in ihr Projekt ein (Projekt → Projekteigenschaften
).
- Fügen Sie Ihre neue Klasse hinzu (
Rechtsklick auf MySuperSensor.jpx → Klassen hinzufügen
)
- Compilieren Sie (
Rechtsklick auf Ihre Sensorklasse → Neu erzeugen
)
- Erzeugen Sie die gewünschte JAR-Datei (
Rechtsklick auf MySuperSensor → Neu erzeugen
)
- Abschließend kopieren Sie das Verzeichnis
plugin
in denplugin
-Ordner des JLoggers.
- Legen Sie ein neues Verzeichnis (z.B.
-
Schritt für Schrittanleitung zur Loggererstellung mit Eclipse
- Legen Sie ein neues Projekt an.
- Vergeben Sie einen Namen für das Projekt und nehmen Sie eventuell individuelle Einstellungen vor.
- Binden Sie die zur Verfügung gestellte Bibliothek
JLogger.jar
in Ihr Projekt ein. Zusätzlich benötigen Sie noch dom4j, jcommon und jfreechart.
Eventuell benötigen Sie weitere Bibliotheken je nachdem was Sie an eigenem Code noch einfügen wollen.
- Legen Sie nun 2 Klassen in Ihrem Projekt an.
- Vergeben Sie einen Namen für die 2 Klassen.
- Leiten Sie die andere Klasse von JLoggerInterface ab und fügen Sie alle zwingend zu überschreibenden Methoden hinzu. Diese Klasse dient zur Verarbeitung und Datenhaltung der Messdaten.
- Leiten Sie eine Klasse von JLoggerHeaderInterface ab und fügen Sie alle zwingend zu überschreibenden Methoden hinzu. Diese Klasse dient vor allem zur Verarbeitung und Datenhaltung
für alle Dinge die in den entsprechenden Köpfen der Datentypen stehen. Also vor allem allgemeine Daten des Loggers.
- Programmieren Sie nun die Funktionen nach ihren Vorstellungen aus. Sie können auch weitere Funktionen der Elternklasse überschreiben.
Sie können auch einen eigenen Logger erstellen den Sie von einem bereits bestehenden statt von den Interfaces ableiten. So können Sie etwa direkt von JLoggerMeissner ableiten und dort nur die Funktionen überschreiben, die sie für eine Änderung als nötig erachten.
Hier ein Beispiel in dem die Reihenfolge der angeschlossenen Sensoren geändert ist. Achten Sie außerdem darauf der Variablen loggerHeader eine Instanz der Headerklasse zuzuweisen.
- Nachdem Sie ihren Logger ausprogrammiert haben, exportieren Sie ihn als JarDatei.
- Wählen Sie den zu generierenden Inhalt der JAR-Datei aus.
- Legen Sie ein neues Projekt an.