Diplomarbeit

Werbung
JAVA-gestützte Messsoftware für Spektrometer unter Verwendung von
Embedded Device Servern
Diplomarbeit
vorgelegt am: 21.07.05
Studienbereich: Ingenieurwissenschaften
Studienrichtung: praktische Informatik / Multimedia
Kurs: PI02
von: Constanze Michaelis
Stauffenbergstraße 16
07747 Jena
Matrikelnummer: G020169PI
Ausbildungsstätte: JETI Technische Instrumente GmbH
Wildenbruchstraße 15
07745 Jena
Gutachter: Dipl.-Ing. Thomas Morgenstern (JETI GmbH)
Dr. Karsten Henke (TU Ilmenau)
Inhaltsverzeichnis
1 Einleitung
1.1
1.2
1
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Vorbetrachtungen
2.1
2.2
1
2
3
Vorgehensweise und Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . .
Thematische Abgrenzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4
3 Ethernet-Spektrometer-System
3.1 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
6
3.1.1
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1.1 IEEE 802.3 bzw 802.3af - Interface . . . . . . . . . . . . . .
6
6
Embedded Device Server Digi Connect METM . . . . . . . .
RS232-Interface . . . . . . . . . . . . . . . . . . . . . . . .
Spektrometereinheit . . . . . . . . . . . . . . . . . . . . . .
7
7
8
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2.1 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
3.1.2.2 Firmware des Embedded Device Servers . . . . . . . . . . .
3.1.2.3 Firmware der Spektrometereinheit . . . . . . . . . . . . . .
Kommunikation der Systemkomponenten . . . . . . . . . . . . . . . .
12
12
13
3.1.3.1
3.1.3.2
TCP/IP Stack . . . . . . . . . . . . . . . . . . . . . . . . .
IP-Adresse . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
16
3.1.3.3 Portnummer . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3.4 Socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zusammenwirken der Komponenten . . . . . . . . . . . . . . . . . . . . . . .
16
16
18
3.1.1.2
3.1.1.3
3.1.1.4
3.1.2
3.1.3
3.2
4 Entwicklungsumgebung
19
4.1
4.2
Digi Connect METM Integration Kit . . . . . . . . . . . . . . . . . . . . . . .
Spektrometer specbos3000 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
22
4.3
Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
I
5 JETI Measurement Applet
5.1
5.2
23
Programmablaufplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Einzelne Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 NetSpec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
28
29
5.2.2
5.2.3
Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bottom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
33
5.2.4
5.2.5
5.2.6
RightPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
JetiMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DeviceInfoDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
36
36
5.2.7
5.2.8
DiagramOptionsDialog . . . . . . . . . . . . . . . . . . . . . . . . . .
PasswordDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
38
5.2.9 FirmwareUpdateDialog . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.10 SaveOptionDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.11 PrintDiagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
39
39
5.2.12 JetiHelp - deprecated . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.13 AboutDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.14 JetiSliderUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
40
41
5.2.15 AppIcon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.16 Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
42
5.2.17 Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.18 CSVFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.19 CSVFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
44
45
5.2.20 Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.21 Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
46
5.2.22 LineInterpol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
6 Implementierung
6.1 Laden auf Embedded Device Server . . . . . . . . . . . . . . . . . . . . . . .
6.2 Ausführen des Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
48
48
6.3
6.4
Einbindung in das Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Test im Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
50
6.4.1
6.4.2
50
50
Browser unter Microsoft Windows . . . . . . . . . . . . . . . . . . . .
Browser unter Linux . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 Fazit
51
A Dokumentation
A.1 Klassendiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
55
A.2 CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
II
Abbildungsverzeichnis
1.1
möglicher Einsatz von Ethernet-Spektrometern . . . . . . . . . . . . . . . . .
2
3.1
schematischer Aufbau des Systems . . . . . . . . . . . . . . . . . . . . . . . .
5
3.2
3.3
3.4
Signaldefinition der RS232-Schnittstelle . . . . . . . . . . . . . . . . . . . . .
Zusammenhang JVM und Java Code . . . . . . . . . . . . . . . . . . . . . . .
Beziehungen zwischen den wichtigen Protokollen . . . . . . . . . . . . . . .
7
9
13
3.5
Erstellen einer Socketverbindung . . . . . . . . . . . . . . . . . . . . . . . . .
17
4.1
Hardware der Entwicklungsumgebung . . . . . . . . . . . . . . . . . . . . . .
19
4.2
4.3
4.4
Konfiguration der IP-Adresse, Netzmaske und Gateway . . . . . . . . . . . . .
Konfiguration der seriellen Eigenschaften des TCP-Ports . . . . . . . . . . . .
Datei-Upload des Embedded Device Servers . . . . . . . . . . . . . . . . . . .
20
21
21
5.1
5.2
Measurement Applet, Referenzspektrum, Spline Interpolation . . . . . . . . .
Übersicht Programmablaufplan . . . . . . . . . . . . . . . . . . . . . . . . . .
23
25
5.3
5.4
5.5
Programmablauf: Verbindungsaufbau . . . . . . . . . . . . . . . . . . . . . .
Programmablauf: Messung auslösen . . . . . . . . . . . . . . . . . . . . . . .
Programmablauf: Diagramm anzeigen . . . . . . . . . . . . . . . . . . . . . .
26
26
27
5.6
5.7
Vereinfachtes Klassendiagramm . . . . . . . . . . . . . . . . . . . . . . . . .
Komponente Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
29
5.8 UI des Bottom Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.9 UI des RightPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.10 Menüleiste des Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
34
36
5.11 DeviceInfoDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.12 DiagramOptionsDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
37
5.13 PasswortDialog mit Meldung bei Falsch-Eingabe . . . . . . . . . . . . . . . .
5.14 Dialog für das Firmware Update . . . . . . . . . . . . . . . . . . . . . . . . .
5.15 Dialog für das Speichern der Spektren . . . . . . . . . . . . . . . . . . . . . .
38
38
39
5.16 Hilfe mit JavaHelp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.17 Oberfläche des Schalters . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
41
6.1
49
Dialog zum Bestätigen des Zertifikats . . . . . . . . . . . . . . . . . . . . . .
III
Abkürzungsverzeichnis
ADC
Analog to Digital Converter
API
Application Programming Interface
COM
Communication Port
CSMA/CD
Carrier Sense Multiple Access/Collision Detection
CSV
Comma Separated Value
DHCP
Dynamic Host Configuration Protocol
DNS
Domain Name Service
EDS
Embedded Device Server
FTP
File Transfer Protocol
HTML
Hypertext Markup Language
HTTP
Hypertext Transmission Protocol
ICMP
Internet Control Message Protocol
IEEE
Institution of Electrical and Electronical Engineers
IP
Internet Protocol
JDK
Java Development Kit
JRE
Java Runtime Environment
JVM
Java Virtual Machine
PD
Powered Device
PoE
Power over Ethernet
PSE
Power Sourcing Equipment
IV
SMTP
Simple Mail Transfer Protocol
TCP
Transmission Control Protocol
UDP
User Datagram Protocol
URL
Uniform Ressource Locator
XML
Extensible Markup Language
V
Kapitel 1
Einleitung
1.1 Motivation
Spektrometer sind Messgeräte, die Intensitäten von Licht und dessen Verhalten an den Proben
wiedergeben. Bisher sind mit JETI Spektrometern der specbos und spectraval Serie nur Messungen am Standort des Messobjektes mit einem angeschlossenen PC oder Pocket PC möglich.
In beiden Fällen kann Fernwartung und Fernmessung nur mit zusätzlicher Hard- und Software erfolgen. Um Fernmessung zu ermöglichen, ist die Anbindung an ein Netzwerk unumgehbar.
Bis vor zwei Jahren musste für embedded Geräte eine Ethernet-Schnittstelle entwickelt
werden. Diese wurde mit einem Ethernet Controller ausgestattet, der die Netzwerkpakete an
den Mikrocontroller im embedded Gerät weiterleitet. Der Mikrocontroller musste einen TCP/IP
Stack implementieren, um in dem Netzwerk kommunizieren zu können. Die Entwicklung der
Ethernet-Schnittstelle wird mit dem Einsatz eines Embedded Device Servers ersetzt.
Durch den Einsatz von Embedded Device Servern wird es möglich, Spektrometer direkt
in das Netzwerk einzubinden. Die Spektrometer müssen angesteuert und die Messdaten
ausgewertet werden. Da im Netzwerk Rechner mit unterschiedlichen Betriebssystemen, wie
UNIX, Linux und Microsoft Windows vertreten sind, soll die Software zum Steuern der
Messgeräte unabhängig von der Plattform sein.
1
1.2 Zielsetzung
Das Ziel der Arbeit besteht darin, eine plattformunabhängige Software zu schreiben, die
spektroskopische Messungen durchführen und die Daten für den Benutzer aufbereiten soll. Die
Messdaten werden sowohl grafisch, in einem Diagramm, als auch numerisch, in Textfeldern,
ausgegeben. Die Steuerung und Auswertung erfolgt mit Hilfe eines Java Applets. Die Daten
sollen in CSV-Dateien (CSV - Comma Separated Value) auf dem Rechner, der das Applet
aufruft, abgespeichert werden. Verwendet werden soll dieses Format, um die Messdatenauswertung mit Kalkulationsprogrammen, wie OpenOffice Calc oder Microsoft Excel, zu ermöglichen.
Abbildung 1.1: möglicher Einsatz von Ethernet-Spektrometern
2
Kapitel 2
Vorbetrachtungen
2.1 Vorgehensweise und Aufbau der Arbeit
Die Forderung nach einer plattformunabhängigen Anwendung lässt auf die Verwendung der
Programmiersprache Java schließen. Das Messgerät soll in einem Netzwerk betrieben werden.
Die Protokolle zur Kommunikation im Netzwerk sind im TCP/IP Protokollstapel enthalten. Die
Kommunikation im Netzwerk ist nicht echtzeitfähig, daher können Daten verloren gehen. Dieses Problem soll in Zukunft in der Firmware der Spektrometereinheit gelöst werden, indem alle
Berechnungen für die Spektren in der Firmware durchgeführt werden.
Im Internet werden Webseiten, die auf Servern abgelegt sind, mit Browsern abgerufen. Hierfür
bietet Java die Möglichkeit eine Anwendung in eine Webseite einzubinden. Diese Anwendungen nennt man Applets. Da Java Applets vom Server herunter geladen und auf dem Client
ausgeführt werden, sind sie als sicherheitskritisch eingestuft. Das bedeutet, dass sie nicht auf
Systemfunktionen, wie zum Beispiel das Lesen oder Schreiben von Dateien, zugreifen dürfen.
Um auf diese Funktionen nicht zu verzichten, wird das Applet signiert1.
Zunächst muss die Benutzeroberfläche geschaffen werden, die an die Fenstertechnik der einzelnen Betriebssysteme angepasst ist. Dazu gibt es in Java eine Bibliothek, die die verschiedenen
Buttons, Textfelder und Menüs bereitstellt.
Die Verbindung zum Gerät wird hergestellt, um die Geräteparameter auszulesen und Messungen auszulösen. Nach der Abfrage der Messdaten muss die Pixel-Wellenlängen-Zuordnung erfolgen. Somit erhält man die x-Koordinaten für das Diagramm. Da die Werte in 5nm Schritten
vom Gerät gemessen werden, muss interpoliert werden, um einen genauen Graphen zu zeichnen.
1
siehe Kapitel 3.1.2.1, Seite 10
3
Im dritten Kapitel wird das System bezüglich seiner Hard- und Softwarekomponenten und deren Zusammenwirken erläutert. In einem weiteren Kapitel wird die Entwicklungsumgebung
vorgestellt. Im fünften Kapitel werden die Klassen anhand eines Klassendiagramms erläutert.
Die Implementierung des Applets beinhaltet das sechste Kapitel. Dabei wird die Software auf
unterschiedlichen Betriebssystemen mit verschiedenen Browsern getestet. Im abschließenden
Kapitel wird ein Fazit gegeben.
2.2 Thematische Abgrenzung
Die Arbeit befasst sich mit der Realisierung der Software und stellt die Hardware des EthernetSpektrometers vor. Die Funktionalität der Software wird beschrieben und dabei die Programmierumsetzung erläutert. In der Implementierungsphase soll gezeigt werden, dass Messungen
über das interne Firmennetzwerk möglich sind. Dabei wird nicht der Versuch unternommen, von
außerhalb, also vom Internet, die Verbindung zum Gerät aufzunehmen, da spezielle Verfahren
notwendig sind, um aus einem öffentlichen auf ein privates bzw. firmeninternes Netz zuzugreifen. Für die Einbindung der Messgeräte in das Internet werden Möglichkeiten zur Umsetzung
aufgezeigt.
4
Kapitel 3
Ethernet-Spektrometer-System
Das System des Ethernet-Spektrometers wird in diesem Kapitel anhand der Abbildung 3.1 beschrieben. Zunächst werden die einzelnen Komponenten vorgestellt. Im zweiten Teil dieses
Kapitels wird auf das Zusammenwirken der Komponenten eingegangen.
Abbildung 3.1: schematischer Aufbau des Systems
5
3.1 Komponenten
Die Komponenten des Systems bestehen aus einem PC, einem Embedded Device Server (EDS)
und einer Spektrometereinheit. Diese wiederum lassen sich in ihre Hard- und Softwarebestandteile und deren Kommunikation untereinander zerlegen.
3.1.1 Hardware
Die Hardware der Komponenten umfasst den PC, den EDS und die Spektrometereinheit. Dazu
gehört ebenfalls die serielle Schnittstelle und die Ethernet-Schnittstelle für die Kommunikation.
Die Hardware des Computers wird nicht aufgeführt, da jeder PC mit einer Ethernet-Schnittstelle
verwendet werden kann.
3.1.1.1 IEEE 802.3 bzw 802.3af - Interface
Der Netzwerkstandard IEEE 802.3 basiert auf dem Carrier Sense Multiple Access / Collision
Detection (CSMA/CD) Verfahren. Dieses Zugriffsverfahren wird durch Trägerempfindlichkeit,
Mehrfachzugriff und Kollisionserkennung gekennzeichnet. Trägerempfindlich bedeutet zum
einen, dass das Netzwerk aktiv ist, wenn Trägersignale vorhanden sind. Zum zweiten kann
ein Knoten nicht senden, wenn er Daten empfängt. Der Knoten kann nur dann senden, wenn
keine Trägersignale mehr präsent sind. Da immer nur einer der Knoten senden kann, kommt
es zur Datenkollision, wenn ein weiterer Knoten sendet. Um diese Kollisionen zu unterbinden,
wird die Kollisionserkennung eingesetzt. Das heißt, dass die Übertragung bei einer Kollision
abgebrochen wird und nach einer zufällig langen Wartezeit das Datenpaket erneut verschickt
wird. Als Protokollstapel verwendet IEEE 802.3 den TCP/IP Stack1 .
Mit dem IEEE 802.3af wurde der IEEE 802.3 Standard auf die Stromversorgung via Netzwerk
erweitert. Dieser „Power over Ethernet (PoE)“ Standard bietet den Vorteil, nur ein Kabel zum
Gerät führen zu müssen. Dabei wird ein Power Sourcing Equipment (PSE) und ein Powered
Device (PD) benötigt. Das PSE liefert den Strom, den das PD verbraucht. Für die Verkabelung
wird die bestehende Netzwerkverkabelung genutzt. Das PSE liefert die Versorgungsspannung
im Bereich von 44V bis 57V mit einem Strom von 350mA bis 400mA an das PD.
Das PSE arbeitet in drei Modi. Im Detektionsmodus werden vom PSE zwei Spannungen im Bereich von 1, 4V bis 10, 1V an das Netzwerkgerät anlegt. Dabei wird die Strommessung vom PSE
an zwei Punkten aufgezeichnet. Entspricht der errechnete Signaturwiderstand dem im Standard
mit 25, 5kΩ angegebenen, wird in den Klassifikationsmodus übergegangen. In diesem Modus
wird das PD anhand des Stromverbrauchs klassifiziert. Es gibt fünf Klassen, die jeweils über
den Klassifikationswiderstand erkannt werden. Ist das PD einer Klasse zugeordnet, schaltet das
PSE in den Power Modus2.
1
2
siehe Kapitel 3.1.3.1, Seite 13
vgl. [Mic04], Seite 15
6
Der EDS verfügt sowohl über das Interface, das im IEEE 802.3 Standard definiert ist, kann aber
auch als PD, nach 802.3af, arbeiten.
3.1.1.2 Embedded Device Server Digi Connect METM
Der Digi Connect METM ist ein vom Unternehmen Digi International entwickelter Embedded
Device Server (EDS). Der Server verfügt über eine 10/100Base-T Ethernet Schnittstelle und eine PoE Schnittstelle3. 10/100Base-T bedeutet, dass es sich um eine Netzwerkschnittstelle nach
IEEE 802.3 handelt, die mit 10MBit bzw 100MBit betrieben werden kann. Weiterhin beinhaltet
der EDS eine serielle Schnittstelle, deren Spezifikation im RS232 Standard4 fest gehalten ist.
Dieses Interface wird für die Kommunikation mit Einheiten, wie beispielsweise die Spektrometereinheit, benötigt.
3.1.1.3 RS232-Interface
Der Kommunikationsstandard RS232 beschreibt die serielle Schnittstelle an Computern. Dem
elektrischen Standard liegt die negative bipolare Logik zugrunde. Das bedeutet, dass die logische „1“ von Spannungen zwischen −25V und −3V und die logische „0“ von Spannungen
zwischen +3V und +25V repräsentiert wird. Dem Standard entsprechend gibt es ein Start-, ein
Stopp- und ein Prüfbit.5
Signal
Erläuterung
GND (Ground)
TXD (Transmit Data)
RXD (Receive Data)
Masseleitung
Signalleitung um Daten vom Host zum Gerät zu senden
Signalleitung um Daten vom Host zu empfangen
RTS (Request To Send)
Signal ist aktiv, wenn das Gerät für das Empfangen von Daten vorbereitet wird
CTS (Clear To Send)
Signal ist aktiv, wenn das Gerät den Host informiert, dass
es an ihn Daten sendet. RTS und CTS sind HandshakeSignale, die den Datenfluss des Geräts steuern.
DSR (DCE Ready)
DCE ist das Gerät (Modem), Signal ist aktiv, wenn das Modem mit einer aktiven Telefonleitung verbunden ist
DTR (DTE Ready)
CD (Carrier Detect)
DTE ist der Host, Signal ist aktiv, wenn der Kommunikationskanal geöffnet werden soll
nur relevant, wenn Gerät = Modem
RI (Ring Indicator)
nur relevant, wenn Gerät = Modem
Abbildung 3.2: Signaldefinition der RS232-Schnittstelle
Quelle: vgl. [Mic03], Seite 13
3
siehe Absatz 3.1.1.1
siehe Absatz 3.1.1.3
5
vgl. [Mic03], Seite 12
4
7
Auf den Embedded Device Server kann auch über einen RealPort Treiber zugegriffen werden.
Dieser virtuelle COM-Port greift auf den COM-Port Treiber des Betriebssystems zu und setzt
das Protokoll des COM-Ports in TCP/IP Pakete um.
3.1.1.4 Spektrometereinheit
Die Spektrometereinheit besteht aus dem Spektrometer und dem Mikrokontroller, der das Spektrometer steuert. Ein Spektrometer ist ein Messgerät zur Darstellung eines Spektrums im optischen Spektralbereich. Ein Spektrum ist die Darstellung einer physikalischen Größe als Funktion einer Wellenlänge bzw. Frequenz.
Das klassische Spektrometer besteht aus einem Eingangsspalt, einem Prisma oder Gitter, einem
Ausgangsspalt und einem Detektor. Diese Anordnung erlaubt die Aufspaltung der Strahlung in
die enthaltenen Spektraleinheiten.
Der Mikrocontroller implementiert eine Firmware, die das Spektrometer steuert.
8
3.1.2 Software
Die Software der Komponenten umfasst bei dem PC in erster Linie die Java Virtual Machine
(JVM). Auf das Betriebssystem wird nicht eingegangen, da das Applet, aufgrund der JVM von
diesem unabhängig arbeitet. Weiterhin werden die Spezifikationen der Firmware des EDS und
der Firmware der Spektrometereinheit kurz erläutert.
3.1.2.1 Java
Java ist eine plattformunabhängige Programmiersprache. Das heißt, sie ist unabhängig vom Betriebssystem. Um Java Programme ausführen zu können, muss ein Java Runtime Environment
(JRE) auf dem PC installiert sein. Das JRE enthält die JVM, die den kompilierten Java Bytecode des Applets für das Betriebssystem interpretiert. Sie ist Schnittstelle zum Betriebssystem
und zum Java Programm, wie in Abbildung 3.3 dargestellt.
Abbildung 3.3: Zusammenhang JVM und Java Code
Objektorientierte Programmierung Die objektorientierte Programmierung baut nicht, wie
die prozedurale Programmierung auf Prozeduren und Daten, sondern auf Zuständen, Aktivitäten und Kommunikation auf. In der Objektorientierung gibt es nur Objekte, die sich nach außen
einheitlich verhalten und gleichberechtigt sind. Objekte haben Attribute und Methoden. Attribute beschreiben die Eigenschaften des Objektes. Methoden sind die Operationen, die von den
Objekten ausgeführt werden. Objekte werden durch die Klassen beschrieben, von denen sie erzeugt werden. Eine Klasse ist eine Schablone, die Objekte gleicher Art beschreibt. In den Klassen können Klassenmethoden und Klassenattribute definiert werden. Klassenmethoden müssen
wie Klassenattribute auch, mit dem static-Identifier deklariert werden. Klassenmethoden
und -attribute werden auf die Klasse angewendet. Demgegenüber stehen die Objektmethoden
und -attribute, die auf die Objekte angewendet werden und keinem zusätzlichen Identifier bedürfen.
9
Ein weiterer Aspekt der Objektorientierung ist die Vererbung. Vererbung heißt, dass die Unterklasse alle Eigenschaften, also Methoden und Attribute, der Oberklasse übernimmt und weitere
eigene Eigenschaften deklariert. In Java ist nur die Einfachvererbung möglich, d.h. eine Unterklasse kann nur eine Oberklasse, aber die Oberklasse kann mehrere Unterklassen haben.
Die Mehrfachvererbung könnte dazu führen, dass die Methodenaufrufe unter Umständen nicht
mehr eindeutig sind. Um trotzdem von mehreren Klassen erben zu können, wurden die Interfaces deklariert. Interfaces entsprechen abstrakten Klassen, außer das in ihnen keine Methoden
oder Attribute vordefiniert sein dürfen. Abstrakte Klassen können keine Objekte erzeugen, sie
werden als Schablone definiert. Die abstrakten Methoden der Interfaces werden implementiert,
während die abstrakten Methoden abstrakter Klassen überschrieben werden.
Applets Java Applets sind Applikationen, die mittels Browser aufgerufen werden. Sie werden mittels Applet Tag in eine HTML-Seite eingebunden und laufen in Sandboxes ab. Dieser
„Sandkasten“ besteht aus dem Class Loader und dem Java Security Manager. Der Class Loader
lädt die Klassen und der Security Manager überwacht den Class Loader. Da Java Applets aus
dem Internet geladen werden, werden sie als unsichere Software eingestuft.
Java Security Da Java Applets als unsicher eingestuft werden, dürfen sie nicht auf Dateien,
Drucker oder andere Peripheriegeräte zugreifen. Um trotzdem Daten abzuspeichern, zu lesen
oder zu drucken, muss das Applet signiert werden. Dazu wird ein Zertifikat von einem Trustcenter verwendet. Das Signieren ist vergleichbar mit dem Unterschreiben des Geschäftsführers
eines Unternehmens. Das Zertifikat stellt dabei die digitale Unterschrift dar. Ein Trustcenter ist
eine Zertifizierungsstelle, der von der Öffentlichkeit vertraut wird. Zu Testzwecken kann mit
dem keytool, das im Java Development Kit enthalten ist, ein Testzertifikat erstellt werden.
Um das Applet zu signieren, müssen die Klassen in ein Jar-Archiv gepackt werden. Dieses Archiv wird dann mittels Zertifikat mit dem jarsigner, der ebenfalls im JDK enthalten ist,
signiert. Beim Aufruf des Applets wird der Nutzer gefragt, ob er das signierte Applet starten
will und es werden Informationen zu dem Zertifikat ausgegeben, wie beispielsweise die Gültigkeit.
Keytool ist ein Programm zum Generieren und Verwalten von Zertifikaten. Beim Aufruf von
keytool -genkey -alias JetiTest2005
in der Kommandozeile wird ein neues Zertifikat mit dem Namen JetiTest2005 generiert.
Vor der Generierung des Zertifikats werden die Daten zur erstellenden Person, der Organisation
und dem Sitz der Organisation eingetragen und das Passwort festgelegt. Das Passwort wird
zum Signieren benötigt.
10
Ein Jar-Archiv ist ein Java-spezifisches, ausführbares Archiv zur Archivierung und Komprimierung von Dateien. Dabei liegt die Kompression bei ca. 50%. Das Jar-Archiv wird mit dem
Befehl
jar -cvf file.jar classfiles
erstellt. Nach der Erstellung des Jar-Archivs kann dieses mittels jarsigner signiert werden.
Der Jarsigner ist das Programm zum Signieren von Jar-Archiven. Signiert wird das Archiv mit
dem Aufruf von
jarsigner file.jar JetiTest2005
Nach Abfrage des Passwortes ist das Jar-Archiv und damit das Applet signiert und kann ausgeführt werden.
JavaHelp Das JavaHelp System basiert auf Swing, der ligthweight Komponenten Bibliothek
für Java Benutzeroberflächen. Ligthweight bedeutet, dass ohne die betriebssystemabhängigen
Funktionen gearbeitet wird. JavaHelp ist ein System, das Entwicklern von Applikationen in
Java die Einbindung einer Online Hilfe erleichtert. Für die Online Hilfe sind Zusatzinformationen aus Dateien notwendig. Die Hilfethemen werden mit HTML erstellt und in HTML-Dateien
abgelegt, für die eine HelpSet-Datei benötigt wird. In dieser Datei wird mit XML-Syntax festgelegt, in welcher Datei die zu mappenden HTML-Dateien, wo die Scripte für das Inhaltsverzeichnis, den Index und die Suchfunktion liegen. Die Map-Datei ist ebenfalls ein Script in
XML. Hier werden die Verknüpfungen zu den in HTML verfassten Hilfethemen hinterlegt. In
der XML-Datei für das Inhaltsverzeichnis werden die Links zu den einzelnen Hilfethemen abgelegt. Im Script für den Index werden die Links zu den einzelnen Indexeinträgen festgehalten.
Bei der Bereitstellung der Hilfe mit JavaHelp treten Schwierigkeiten auf, da das JavaHelp System nicht im JDK bzw. JRE enthalten ist und daher extra bereitgestellt werden muss. Für Applets gibt es zwei Möglichkeiten. Entweder der Anwender installiert das Paket selbst und setzt
den Classpath oder das JavaHelp System wird auf dem Server bereitgestellt. Da das Setzen des
Classpaths sich nur für erfahrene Nutzer empfiehlt, aber der Server nicht ausreichend Speicherkapazität aufweist, muss nach weiteren Lösungen gesucht werden.
Da die Hilfethemen bereits für das Hilfesystem in HTML geschrieben wurden, bietet es sich an,
die Hilfe in einem HTML-Framework bereit zu stellen. Der Versuch das Framework in einen
Java-Dialog einzubinden, um die Seiten per Menüaufruf zu starten, war nicht umsetzbar, da
Java keine Komponente bereitstellt, die das Aufrufen von Links zu HTML-Dateien unterstützt.
Daher wird ein Link auf der Seite, in die das Applet eingebunden ist, zum Öffnen der Hilfe zur
Verfügung gestellt.
11
Hypertext Markup Language
Die Hypertext Markup Language (HTML) ist eine Beschrei-
bungssprache für Dokumente im World Wide Web. Jede Anfrage eines Browsers an den Server
für ein Dokument erfordert eine neue Verbindung mit dem Server. Das HTTP6 dient der Adressierung von Objekten mittels eines uniform resource locators (URL). Die URL wickelt die
Interaktion zwischen Client und Server ab und passt die Formate zwischen Client und Server
an.
HTML wird für das Einbinden des Applets in eine Webseite und für die Hilfe benötigt.
Extensible Markup Language Die Extensible Markup Language (XML) ist eine Standardsprache zur Definition von individuellen Markup-Sprachen. Es handelt sich hierbei um eine
verknüpfungsorientierte Sprache. Ihre allgemeine Syntax erlaubt die Beschreibung hierarchisch
strukturierter Daten und ist sowohl vom Menschen lesbar, als auch vom Computer interpretierbar.
XML wird im JavaHelp System für die Erstellung der Steuerdateien des Hilfesystems benötigt.
3.1.2.2 Firmware des Embedded Device Servers
Die Firmware des EDS ist mit einem on Board TCP/IP Stack7 mit integriertem Webserver ausgestattet. Sie unterstützt die universelle IP-Adress-Verwaltung mittels statischer IP-Adresse8
oder einer vom DHCP-Server zugeordneten IP-Adresse. Des Weiteren ist die Firmware webbasierend mittels Browser konfigurierbar und hat vordefinierte Profile für die Einstellungen9 . In
der Firmware des Servers ist ebenfalls eine Webschnittstellen-Option mit Java Applet Unterstützung integriert. Diese Option ist mit einem Dateisystem von 512kByte Speicherkapazität
ausgestattet, wobei für den Applet 400kByte zur Verfügung stehen. Der Server kann, sofern
es eingestellt ist, bei Ereignissen eine Mail versenden. Mittels RealPort Treiber kann die Kommunikation mit dem Server auf einen virtuellen COM Port umgeleitet werden. Laut Hersteller
läuft diese Umleitung neben Windows auch unter UNIX und Linux.
3.1.2.3 Firmware der Spektrometereinheit
Die Firmware der Spektrometereinheit steuert das Spektrometer. Sie liest die Rohdaten aus der
Zeile des Spektrometers aus und ist mit definierten seriellen Kommandos ansprechbar. Sie speichert die Geräteparameter ab und überträgt die Daten an eine Auswertesoftware. Die Latenzen
im Netzwerk können zu Verzögerungen in der Auswertesoftware führen. Das heißt, neue Daten
kommen an, während die Anzeige der vorherigen Daten noch nicht fertig gestellt ist. Daher soll
in Zukunft die Auswertung der Daten in die Firmware verlegt werden.
6
siehe Absatz 3.1.3.1, Seite 15
siehe Absatz 3.1.3.1, Seite 13
8
siehe Absatz 3.1.3.2, Seite 16
9
siehe Kapitel 4.1, Seite 20
7
12
3.1.3 Kommunikation der Systemkomponenten
Damit der PC mit dem EDS kommunizieren kann, müssen beide den TCP/IP Stack implementieren und über eine IP-Adresse ansprechbar sein. Darauf aufbauend kann ein Socket erzeugt
werden, das die IP-Adresse und die Portnummer für den Aufbau der Verbindung benötigt.
3.1.3.1 TCP/IP Stack
Der TCP/IP Stack ist ein Protokollstapel zur Kommunikation in Netzwerken. Dieser beinhaltet
eine Reihe von Protokollen, die aufeinander aufbauen. Der Stapel ist die Implementation des im
Abschnitt 3.1.1.1 auf Seite 6 erläuterten CSMA/CD. Dazu gehören als wichtigste Protokolle das
Internet Protocol (IP) und das Transmission Control Protocol (TCP), die dem Protokollstapel
den Namen gaben.
Abbildung 3.4: Beziehungen zwischen den wichtigen Protokollen
Quelle: vgl. [Gol03]
Internet Protocol Das IP ist das Basisprotokoll des TCP/IP Stacks. Es ist ein verbindungsloses Protokoll. Verbindungslos bedeutet, dass zwischen der Quelle und der Senke keine virtuelle
Verbindung aufgebaut wird. Die Daten werden in Datagramme gepackt. Datagramme sind Pakete mit einer abgeschlossenen Datenmenge. Bei den versendeten Datagrammen wird nicht
sichergestellt, ob sie in der Senke ankommen. Aus diesem Grund handelt es sich bei dem IP um
ein unsicheres Protokoll.
Die wesentliche Eigenschaft des IP ist das Routing. Das heißt, dass das IP möglichst den optimalen Übertragungsweg für das Datagramm bestimmt. Dabei muss es entscheiden, ob das
Datagramm im lokalen Netzwerk oder netzübergreifend seinen Bestimmungsort hat.
13
Das Internet Control Message Protocol (ICMP) ist dem IP beigeordnet und stellt ein Hilfsprotokoll dar. Auch das ICMP ist verbindungslos und unsicher. Es hat im wesentlichen die Aufgabe
Fehler-, Diagnose-, und Steuernachrichten zu versenden.
Die zu versendenen Daten werden in IP-Datagramme gepackt und zwischen dem PC und dem
EDS übertragen.
Transmission Control Protocol Das TCP ist ein verbindungsorientiertes, sicheres Protokoll,
dass auf das IP aufsetzt. Vor dem Datenaustausch muss eine virtuelle Verbindung aufgebaut
werden. Diese erfolgt nach dem Client-/Server- Modell. Der Server wartet auf Verbindungsanfragen, die der Client stellt. Sobald die Verbindung aufgebaut wurde, können die Daten versendet werden. Nach dem Datenaustausch muss die virtuelle Verbindung wieder geschlossen
werden.
Die gesendeten Daten kommen in der Senke fehlerfrei an. Dies wird dadurch garantiert, dass die
Daten an das TCP übergeben und vom TCP in Segmente zerlegt werden. Die Segmente werden
mit Zusatzinformationen, Sequenznummern, bestückt und mit dem IP in Datagrammen übertragen. Der Empfänger bestätigt alle empfangenen IP-Datagramme. Folglich weiß der Sender,
ob die Datagramme angekommen sind. Erhält er keine Bestätigung, sendet er das Datagramm
erneut. Aufgrund der Zusatzinformation kann der Empfänger die ursprünglichen Daten wieder
herstellen, auch wenn die Reihenfolge geändert wurde oder Pakete doppelt gesendet wurden.
Um die Daten, die zwischen dem EDS und dem PC transferiert werden sollen, nicht zu verlieren, werden sie in TCP-Pakete gepackt. Die TCP-Pakete werden dann in IP-Datagrammen
übertragen.
User Datagram Protocol Das User Datagram Protocol (UDP) ist ein verbindungsloses, unsicheres Protokoll, dass auf das IP aufsetzt. Das UDP erlaubt Anwendungsprozessen Datagramme
direkt zu versenden und somit die Anforderungen an den transaktionsorientierten Verkehr zu erfüllen. Im Gegensatz zum TCP wird beim UDP keine virtuelle Verbindung aufgebaut, deshalb
ist es verbindungslos. Der minimale Protokollmechanismus des UDP garantiert weder das Ankommen der Pakete in der Senke, noch gibt es Sicherheitsmechanismen, die vor Duplizierung
von Paketen oder der Veränderung der Reihenfolge schützen. Das UDP ist auf den Transport
der Datagramme, das Multiplexen von Verbindungen und die Fehlerbehandlung beschränkt.
Beim Transport ist die korrekte Datenübermittlung nicht gewährleistet, da ohne Bestätigungsmechanismus gearbeitet wird. Deshalb können verlorene Datenpakete nicht erneut übermittelt
werden.
14
Da beim UDP nicht garantiert werden kann, dass die Daten fehlerfrei in der Senke ankommen,
wird es nicht für den Transfer der Messdaten und der Kommunikation verwendet. Es dient
lediglich zum Austausch der Server des Domain Name Service (DNS) (siehe folgender Absatz)
untereinander.
Domain Name Service
Der DNS setzt auf das TCP auf und ist für die Zuordnung der Rech-
nerbezeichnung zur IP-Adresse zuständig. Anfragen an den DNS werden über das UDP abgehandelt, die Kommunikation der DNS-Server erfolgt über das TCP.
Dem EDS kann ein Name zugewiesen werden. Um diesen auf die IP-Adresse umsetzen zu können, bedarf es des DNS. Verwendet man den DNS im Netzwerk, so kann anstelle der IP-Adresse
der Name des Messgerätes verwendet werden.
Dynamic Host Configuration Protocol Das Dynamic Host Configuration Protocol (DHCP)
ist ein sicheres Client-Server Protokoll. Es vereinfacht die Vergabe von IP-Adressen und sonstiger Parameter. Mit Hilfe dieses Protokolls hat der Netzwerkadministrator die Möglichkeit alle
TCP/IP-Parameter zentral zu verwalten. Das DHCP ermöglicht die dynamische und automatische Konfiguration von Endgeräten im Netzwerk.
Vom DHCP-Client, dem EDS, wird mittels DHCP-Request eine IP-Adresse vom DHCP-Server
angefordert. Dieser schickt ein DHCP-Reply an die MAC-Adresse des EDS mit einer Adresse
aus dem Adresspool des Servers. Die MAC-Adresse stellt die physikalische Adresse des EDS
dar. Die Zuweisung der IP-Adresse erfolgt dann automatisch, dynamisch oder manuell.
Hypertext Transfer Protocol Das Hypertext Transfer Protocol (HTTP) ist ein allgemeines,
statusloses, objektorientiertes Protokoll zur Datenübertragung. Es setzt auf das TCP auf. Es
deklariert einen definierten Satz von Nachrichten und Antworten des Client und des Servers
während einer HTML-Sitzung. Das HTTP überträgt die vom EDS herunter zu ladende Webseite.
Weitere Protokolle Der TCP/IP Stack beinhaltet noch weitere Protokolle, wie zum Beispiel
das File Transfer Protocol (FTP) und das Simple Mail Transfer Protocol (SMTP). Da diese
Protokolle für dieses Thema nicht von Bedeutung sind werden sie an dieser Stelle nicht erläutert.
15
3.1.3.2 IP-Adresse
Eine IP-Adresse ist eine 32Bit Adresse, mit der eine eindeutige Identifizierung von Rechnern
möglich ist. Sie wird durch die Netzmaske in einen Netzwerk- und einen Benutzerteil unterteilt.
Der Netzwerkteil besteht immer aus den ersten Bit der definierten Adressklasse. Somit kann das
Netzwerk identifiziert werden. Der Benutzerteil dient der Benutzeridentifikation.
Private IP-Adressen sind Adressen, die für jeden Zweck von jedem benutzt werden können.
Allerdings werden diese nicht in das Internet geroutet. Im Regelfall nutzen kleine und mittelständige Unternehmen private IP-Adressen. Um den Zugriff auf das Internet zu ermöglichen
müssen die Adressen umgesetzt werden.
IP-Adressen werden zum Verbindungsaufbau zwischen dem EDS und PC über Sockets benötigt10.
3.1.3.3 Portnummer
Die Portnummer ist eine 2Byte Zahl im Header des Transmission Control Protocols. Portnummern dienen dazu, Datenströme zu identifizieren. Über die Portnummern wird der gesamte
Datenaustausch zwischen dem TCP und den Anwendungsprozessen abgewickelt.
Die Portnummern identifizieren den Datenstrom, der bei der Verbindung über Sockets11 zwischen dem EDS und dem PC erzeugt wird.
3.1.3.4 Socket
Ein Socket ist eine Software-Struktur in einem Kommunikationsendpunkt. Es stellt den logischen Endpunkt einer Verbindung dar. Ein Socket setzt sich aus der IP-Adresse und der Portnummer zusammen. Die Programmierschnittstelle ermöglicht die verteilte Programmierung
über das Netz. Sockets bauen auf dem Client-/Server- Modell auf. Daher gibt es Client-Sockets
und Server-Sockets. Das Server-Socket wartet auf Anfragen der Clients. Das Client-Socket wird
erzeugt und sendet eine Anfrage auf Verbindung zum Server. Der Server nimmt die Anfrage an
und die Daten werden transferiert. Nachdem die Daten übertragen wurden, wird die Verbindung
wieder abgebaut, indem das Client-Socket wieder geschlossen wird.
10
11
siehe Absatz 3.1.3.4
vgl. Ebenda
16
Abbildung 3.5: Erstellen einer Socketverbindung
Auf dem EDS läuft ein Server-Socket, das mit der Portnummer 2101 identifiziert wird und
auf Anfragen wartet. Das Applet vom PC versucht ein Client-Socket mit der IP-Adresse des
Servers und der Portnummer 2101 zum Server aufzubauen. Bestätigt der EDS die Anfrage,
so können Daten transferiert werden. Die Verbindung kann sowohl vom Applet als auch vom
Server beendet werden.
17
3.2 Zusammenwirken der Komponenten
Das Betriebssystem des Computers steuert die Hardware des PCs und regelt die Kommunikation zwischen der Hardware und den Anwendungen. Die JVM interpretiert den Java
Bytecode des Applets und kommuniziert mit dem Betriebssystem. Das Applet stellt die
Schnittstelle zum Benutzer dar. Das Betriebssystem implementiert den TCP/IP Stack, packt die
Netzwerkpakete und überträgt diese über das Netzwerk. Der PC wird weiterhin als Speicherort
für die Messdaten genutzt.
Der EDS dient als Schnittstelle zwischen dem PC und der Spektrometereinheit. Ebenso bietet
er in dem Messsystem den Speicherort für das Applet. Die Firmware des EDS steuert die
Hardware des Servers und implementiert einen TCP/IP Stack, um über das Netzwerk kommunizieren zu können. Sie setzt die entpackten Daten auf das serielle Kommunikationssignal um
und überträgt dieses mittels serieller Schnittstelle.
Die Spektrometereinheit nimmt die Messdaten von den Proben auf und gibt die Daten über
den EDS an die auswertende Messsoftware. Die Firmware der Spektrometereinheit steuert
das Spektrometer an und regelt die Kommunikation zwischen dem EDS und dem Spektrometer.
Das Applet wird gestartet und das Socket wird mittels IP-Adresse (z.B. 192.168.115.102) und
der Portnummer 2101 zwischen dem Applet und dem TCP-Port des EDS aufgebaut. Ist der Port
frei, so kommt eine Verbindung zustande. Wurde die Verbindung aufgebaut, können serielle
Kommandos vom Applet für die Spektrometereinheit an die JVM übergeben werden. Die JVM
gibt die zu sendenden Daten an das Betriebssystem weiter, das diese in TCP/IP-Pakete packt.
Diese Pakete werden über die Netzwerkarchitektur übertragen.
Der EDS empfängt die ankommenden Pakete und extrahiert die darin enthaltenen seriellen
Kommandos. Diese wandelt er in einen 8Bit Datenstrom um, den er über die serielle Schnittstelle mit 38400bd an die Spektrometereinheit sendet.
Die Spektrometereinheit empfängt den Datenstrom und deren Firmware interpretiert die seriellen Kommandos. Ist das Kommando ein „A“, werden die Geräteparameter zurückgegeben.
Wurde ein Kommando für eine Messung mit den entsprechenden Argumentenempfangen,
werden die jeweiligen Rohdaten aus dem Spektrometer ausgelesen und zurück gegeben. Die
erhaltenen Daten werden in einem 8Bit Datenstrom mit 38400bd über die serielle Schnittstelle
an den EDS gesendet.
Der EDS packt die ankommenden Daten in TCP/IP-Pakete und überträgt die IP-Datagramme
über die Socketverbindung an den PC. Im PC werden die Daten vom Betriebssystem aus
den Paketen extrahiert und an die JVM übergeben. Die JVM stellt die Daten dem Applet zur
Verfügung, das sie dem Nutzer aufbereitet anzeigt.
18
Kapitel 4
Entwicklungsumgebung
Die Entwicklungsumgebung umfasst das Digi Connect METM Integration Kit, das Spektrometer
specbos3000 und die Java IDE Eclipse. Die Anordnung der Hardware ist in der Abbildung 4.1
dargestellt.
Abbildung 4.1: Hardware der Entwicklungsumgebung
19
4.1 Digi Connect METM Integration Kit
Das Integration Kit des EDS beinhaltet ein Evaluation Board, ein Digi Connect METM, Netzwerkkabel und die Stromversorgung. Das Evaluation Board hat eine RS232 Schnittstelle zum
Anschluss externer Geräte, die über den EDS angesteuert werden. RS232 ist der SchnittstellenStandard für die serielle Übertragung mittels COM-Port1 . Der EDS muss auf das Evaluation
Board gesteckt werden. Nach Aufbau der Entwicklungsumgebung wird dem Server eine IPAdresse durch einen DHCP Server zugewiesen. Nach der Zuweisung der IP-Adresse kann auf
den Server zugegriffen und die notwendigen Einstellungen vorgenommen werden. Für die Entwicklung mit dem Server ist es sinnvoll die Vergabe der IP-Adresse von der DHCP Vergabe
auf die statische IP-Adresse umzustellen, da für den Socketaufbau die IP-Adresse angegeben
werden muss.
Web Interface
Das Web Interface ist die Benutzeroberfläche zur Konfiguration des EDS. Nachdem dieser mittels „Discovery“-Tool gefunden wurde, kann das Web Interface gestartet werden. Dieses Werkzeug dient dazu, den EDS ohne IP-Adresse zu finden, denn dieser ist werksseitig auf IP-Vergabe
via DHCP geschaltet. Um ihn anhand der MAC-Adresse ausfindig zu machen, wird von Digi
International dieses Werkzeug angeboten. Die MAC-Adresse stellt die physikalische Adresse
des Servers dar.
Abbildung 4.2: Konfiguration der IP-Adresse, Netzmaske und Gateway
1
siehe Kapitel 3.1.1.3 Seite 7
20
Unter dem Link „Network“ des Web Interfaces findet man die Seite zur Konfiguration der Netzwerkparameter2 . Hier werden die IP-Adresse, die Subnetzmaske und das Gateway für die statische IP-Vergabe eingetragen. Weiterhin kann der EDS auf die IP-Vergabe via DHCP oder
Auto-IP umgestellt werden.
Abbildung 4.3: Konfiguration der seriellen Eigenschaften des TCP-Ports
Mit einem Klick auf „Serial Ports“ erscheint die in Abbildung 4.3 gezeigte Seite. Konfiguriert wird an dieser Stelle die serielle Schnittstelle, mit der das Signal vom EDS an das Gerät
weitergegeben werden soll. In diesem Fall wurde der TCP Port mit der Portnummer 2101 mit
38400bd, 8 Datenbits und einem Stoppbit konfiguriert.
Abbildung 4.4: Datei-Upload des Embedded Device Servers
2
siehe Abbildung 4.2
21
Um Dateien, wie beispielweise ein Applet, auf den Server laden zu können, bzw. veraltete Versionen zu löschen, dient der Link „File Management“. Dazu wird die in Abbildung 4.4 auf Seite
21 dargestellte Webseite gestartet. Das Klicken auf den Button „Durchsuchen...“ öffnet einen
Dateibrowser, der zur Auswahl der Datei dient. Danach wird der Button „Upload“ gedrückt,
um die ausgewählte Datei hochzuladen. Um sicherzugehen, dass die Dateien erfolgreich auf
dem Server gespeichert wurden, muss ein Neustart des Servers erfolgen. Dies geschieht durch
Anklicken des Links „Reboot“.
Das Web Interface bietet noch weitere Möglichkeiten. Zum Beispiel kann die Firmware des
Servers aktualisiert und der RealPort konfiguriert werden.
4.2 Spektrometer specbos3000
Das Spektrometer specbos3000 des Unternehmens JETI ist ein Transmissionsspektrometer für
den sichtbaren Wellenlängenbereich. Es eignet sich für Proben mit einem Lichtweg von bis zu
10mm und für glatte Oberflächen, wie zum Beispiel optische Filter.
Hier handelt es sich um eine RS232 Version, sodass das Spektrometer aufgrund der Schnittstelle
mit dem Evaluation Board verbunden werden kann. Neben dem RS232 Anschluss benötigt es
für den Betrieb eine externe Stromversorgung.
4.3 Eclipse
Als Programmierumgebung wird im Rahmen dieser Arbeit Eclipse in der Version 3.0.0 verwendet. Diese Plattform kann als integrierte Entwicklungsumgebung (IDE) für verschiedene
Programmiersprachen, wie zum Beispiel Java, C, C++, mit den entsprechenden Plugins verwendet werden. Meistens wird es für die Java-Programmierung genutzt, daher ist dieses Plugin
bei der Installation enthalten. Getestet und debuggt wird unter Eclipse mit der Debugumgebung.
Dafür wird beim Ausführen des programmierten Applets der Menüpunkt „Debug as Applet“ gewählt. Tritt nun ein Fehler auf oder wurde ein Breakpoint gesetzt, schaltet Eclipse vom Java- in
den Debug-Modus. Kommt das Programm bei dem Breakpoint an, so kann es ab dieser Stelle
schrittweise ausgeführt werden.
22
Kapitel 5
JETI Measurement Applet
Das Applet dient der Auswertung der Messdaten aus dem Spektrometer. Es hat eine grafische
Benutzeroberfläche, die in Abbildung 5.1 dargestellt ist. Diese besteht aus einem Menü, einem
Diagramm, einem rechten Panel und einem unteren Panel.
Abbildung 5.1: Measurement Applet, Referenzspektrum, Spline Interpolation
23
Das Applet soll sich mit dem EDS verbinden und die Messdaten abfragen. Es kann die Messwerte mit zwei verschiedenen Interpolationsverfahren interpolieren, um einen genauen Graphen
zeichnen zu können. Die Messwerte können in einer CSV-Datei gespeichert werden. Eine CSVDatei ist eine programmunabhängige Textdatei, die in Datensätze und Felder strukturiert ist. Dabei werden Felder durch Kommata und Datensätze durch Zeilenumbrüche getrennt. Verwendet
wird dieses Format, um die Messdatenauswertung mit Tabellenkalkulationsprogrammen, wie
beispielsweise Microsoft Excel oder OpenOffice Calc, zu ermöglichen. Das Applet soll diese
Dateien lesen, um die darin abgespeicherten Daten im Diagramm anzeigen zu können. Die Ansicht des Graphen soll zoombar sein, das heißt, dass der Anwender die Start- und Endwerte der
Abszisse setzen kann. Weiterhin soll die Ansicht des Diagramms von der Wellenlängen- auf die
Pixelanzeige der Abszisse und bei der Ordinate von den ADC Counts auf die Prozentualanzeige
umschaltbar sein. Die Verbindung zum EDS soll nach abgeschlossener Messung vom Nutzer
geschlossen werden können.
5.1 Programmablaufplan
Der Programmablauf des Applets ist in den folgenden Abbildungen dargestellt. Dabei handelt
es sich bei Abbildung 5.2 auf Seite 25 um den übergeordneteten Programmablauf. In dieser
Abbildung sind die untergeordneten Programmabläufe mit Dokumentsymbolen versehen, da
diese in den darauf folgenden Abbildungen erscheinen.
24
Abbildung 5.2: Übersicht Programmablaufplan
25
Abbildung 5.3: Programmablauf: Verbindungsaufbau
Abbildung 5.4: Programmablauf: Messung auslösen
26
Abbildung 5.5: Programmablauf: Diagramm anzeigen
27
5.2 Einzelne Klassen
Klassen sind im Sinne der objektorientierten Programmierung Schablonen, die Objekte erzeugen1 . Die Klassen des Applets befinden sich in dem Package com.jeti.spec. Die Klasse
NetSpec initialisiert das Applet. Dabei werden Objekte der Klassen Diagram, Bottom, JetiMenu und RightPanel erzeugt, wie in dem vereinfachten Klassendiagramm2 dargestellt ist. Das
vollständige Klassendiagramm befindet sich aufgrund der Komplexität im Anhang A.
Für Aktionen, die der Nutzer ausführen kann, werden Objekte der Dialog-Klassen erzeugt, wie
beispielsweise ein Objekt der Klasse DiagramOptionsDialog. Um die Verbindung zum Gerät
aufzubauen, gibt es die Klasse Communication. Sie liest ebenfalls die Rohdaten aus dem Spektrometer aus. Für die Berechnung der Messdaten ist die Klasse Measurement verantwortlich.
Die Interpolationsverfahren werden von den Klassen Spline und LineInterpol bereitgestellt. Die
Klasse CSVFile stellt Methoden zum Lesen und Schreiben der CSV-Dateien zur Verfügung. Um
das Diagramm zu drucken, gibt es die Klasse PrintDiagram.
Abbildung 5.6: Vereinfachtes Klassendiagramm
1
2
siehe Kapitel 3.1.2.1, Seite 9
Abbildung 5.6
28
5.2.1 NetSpec
Die Klasse NetSpec erbt von JApplet und initialisiert das Applet. Dazu wird die initMethode der Klasse JApplet überschrieben. In dieser Methode werden die einzelnen Objekte
der Panels erzeugt, die für den Start des Applets notwendig sind, das Diagram-, das Bottom-,
das RightPanel- und das JetiMenü- Objekt. Weiterhin wird ein JFrame-Objekt erstellt, in das
die genannten Objekte eingebunden werden.
5.2.2 Diagram
Die Klasse Diagram ist für die Erstellung und das Anzeigen des Diagramms verantwortlich. Sie erbt von der Klasse JPanel und implementiert den MouseListener und den
ActionListener. Der MouseListener „lauscht“ auf Eingaben von der Maus und der
ActionListener bearbeitet Ereignisse, die durch den Benutzer erzeugt wurden.
Abbildung 5.7: Komponente Diagram
29
Im Konstruktor Diagram(JFrame frame) wird mittels Superklassenkonstruktor das Panel erzeugt, auf dem der Graph gezeichnet wird, und die Variablen der Klasse werden initiiert.
Außerdem wird das Objekt Diagram bei dem MouseListener registriert. Die EntfernenTaste wird beim ActionListener registriert, um den Graphen bei der Einstellung „immediate“ durch das Drücken dieser Taste zu löschen. Die Pfeiltasten nach rechts und links
werden ebenfalls bei dem ActionListener registriert. Als Parameter wird der Frame des
Applets übergeben. Der Frame des Applets wird übergeben, um das Diagramm mittels der Methode repaint neu zeichnen zu können. In der Klasse Diagram wird hierzu die Methode
repaintDiagram genutzt, in der die repaint-Methode auf den Frame angewendet wird.
Diagramm zeichnen In der Methode paintComponent wird der Graph gezeichnet. Diese
überlagert die paintComponent-Methode von JPanel. Zunächst wird ein weißes Rechteck
mit grauen Hilfslinien gezeichnet. Dieses Erscheinungsbild wird beibehalten, solange kein Button, der eine Messung auslöst, gedrückt wurde. Wurde ein Button für eine Messung gedrückt,
wird die entsprechende Variable auf true gesetzt und die Methoden für das Umsetzten der
Werte für die Bildschirmausgabe werden aufgerufen. Für das Anpassen der Werte an die gesetzten Attribute, wie Wellenlängenanzeige, Pixelanzeige, Prozentualanzeige und Interpolation, ist
die Methode display verantwortlich. Dort werden die Vector-Objekte mit den Koordinaten
gefüllt, die für das Zeichnen des Graphen nötig sind.
Wellenlängenanzeige Für die Wellenlängenanzeige stehen die Interpolationen zur Verfügung. Soll nicht interpoliert werden, werden die Vector-Objekte für die Anzeige nur mit
den Koordinaten, die zwischen der Start- und Endwellenlänge liegen, gefüllt. Bei der linearen Interpolation3 wird die Methode Line aufgerufen. Diese erzeugt ein Objekt der Klasse
LineInterpol und passt die Objekte vom Typ Vector mit den Koordinaten an die Attribute
Start- und Endwellenlänge an. Soll die Spline Interpolation4 durchgeführt werden, wird die Methode Spline aufgerufen. Hier wird ein Objekt der Klasse Spline generiert und die Werte
der Spline Interpolation berechnet. Der Vector wird dann wie bei der Linearen Interpolation an
die Attribute Start- und Endwellenlänge angepasst.
Pixeldarstellung Die Berechnung für die Darstellung der x-Werte als Pixel erfolgt, wenn die
Variable abszisse = false gesetzt ist. Dazu werden die x-Koordinaten der Point-Objekte
im Vector-Objekt mit der Pixelnummer und die y-Koordinaten der Point-Objekte im VectorObjekt mit dem dazugehörigem y-Wert gefüllt.
3
4
siehe Seite 47
siehe Seite 46
30
Prozentualanzeige
Um die Transmission prozentual anzuzeigen, muss die Variable für die
y-Achse ordinate = false gesetzt sein. Tritt dieser Fall auf, so wird innerhalb von
display die Methode calcPercent aufgerufen, die die Transmissionswerte mittels folgender Gleichung auf die Prozentwerte umsetzt:
τ = τ ∗ 100
(5.1)
Die berechneten Werte werden in einem Vector-Objekt zurückgegeben und können auf dem
Bildschirm dargestellt werden.
Graphen zeichnen In der Methode drawGraph wird der Graph gezeichnet. Dabei wird
mittels der Methode scaleY die Skalierung der Ordinate errechnet, nachdem der maximale
y-Wert der Messung ermittelt wurde. Der maximale Wert der Ordinate ist immer das 1.2-fache
des maximalen Messwertes. Die Skalierung der Abszisse hängt davon ab, ob der Nutzer die
Wellenlängen- oder die Pixeldarstellung gewählt hat. Bei der Abszisse wird der Bereich zwischen Start- und Endwert immer auf die Pixel des Rechtecks umgesetzt. Da sich der Koordinatenursprung bei Java immer in der linken oberen Ecke des Bildschirmes befindet, müssen
die Werte transformiert werden. Um dies zu erleichtern, kann der Ursprung mit der Methode translate, angewendet auf das Graphics-Objekt, verschoben werden. Hier wird die linke untere Ecke des Rechtecks als Koordinatenursprung gewählt. Damit werden die y-Werte
skaliert und mit −1 multipliziert, um an der richtigen Stelle im Diagramm sichtbar zu werden. Die x-Werte werden auf die Bildschirmpixel umgerechnet. Dann kann mit der Methode
drawPolyline, angewendet auf das Graphics-Objekt der Graph gezeichnet werden.
Im Menü stehen dem Anwender die Optionen zur Verfügung, den Graphen nach jeder Messung
(always), unmittelbar (immediate), also bei Benutzereingabe, oder nicht (never) zu löschen.
Um dies umzusetzen, wird ein Vector-Objekt erzeugt, in das je nach Einstellung die Werte
geschrieben werden. Dabei wird ein Zähler inkrementiert, um die zusammengehörigen Daten
für das Zeichnen der Graphen extrahieren zu können. Vor dem oben genannten Aufruf von
drawPolyline werden die Daten mittels innerer und äußerer Schleife voneinander getrennt
und der Graph wird in der äußeren Schleife gezeichnet.
Die Attribute für das Zeichnen des Graphen werden über Setter-Methoden, wie beispielsweise
setDark, setRef und setTrans, gesetzt. Weitere Methoden zum Abfragen bzw. Schreiben von Variablen, wie zum Beispiel die Messwerte, werden mit Setter- bzw. Getter-Methoden
definiert.
31
Achsenbeschriftung
Wegen der Positionierung der Achsenbeschriftung wird diese beim
Zeichnen der Hilfslinien berechnet und mit g.drawString auf dem Bildschirm dargestellt.
Die Bezeichnung der Achsen wird dann je nach Spektrum und Darstellung der Abszisse in den
Methoden nameOrd und nameAbsz gezeichnet, wobei für die Ordinate das Graphics-Objekt
auf ein Graphics2D-Objekt gecastet wird, damit die Schrift rotiert werden kann.
Numerische Ausgabe Das Interface MouseListener übernimmt die Aufgabe, Eingaben
von der Maus entgegenzunehmen. Dazu muss dieser in der Klasse Diagram über den Befehl
implements MouseListener in der Klassendeklaration implementiert werden. Listener
sind immer Interfaces, das heißt sie entsprechen abstrakten Klassen5 . Um nach dem Klick
auf den Graphen die entsprechenden Koordinaten anzeigen zu können, muss die Methode
mousePressed überschrieben werden. Nach Erhalt der Koordinaten des Mauszeigers wird
geprüft, ob die Koordinaten innerhalb des Diagramms liegen. Danach wird das Koordinatenpaar
auf die Messwerte zurück gerechnet und die Variable mouse vom Typ boolean auf true gesetzt. Ein Aufruf von repaint erzwingt ein Neuzeichnen des Diagramms, wobei die Methode
clickAndShow aufgerufen wird. Diese zeichnet um den Graphen an der gefundenen Stelle
einen Cursor, bestehend aus einem Kreis und zwei orthogonal zueinander stehenden Geraden.
Außerdem werden in dieser Methode die umgerechneten Koordinaten an die unter dem Diagramm liegenden Textfelder übergeben und so dem Benutzer angezeigt.
In der vom ActionListener implementierten Methode actionPerformed wird ausgewertet, welchen ActionKey der Nutzer gedrückt hat. Wurde die Entfernen-Taste gedrückt und
vorher für das Löschen des Graphen „immediate“ gewählt, so wird der Inhalt des Vectors, der
die Daten speichert, gelöscht. Hat der Nutzer den Pfeil nach rechts oder nach links gedrückt,
wandert der von clickAndShow erzeugte Cursor entweder eins weiter nach rechts oder nach
links. Dies wird realisiert, indem der Vector mit den Messwerten bis zu der Stelle, an der der
Cursor steht, durchlaufen wird. Wurde der Pfeil nach rechts gedrückt wird der Nachfolgewert,
bei Pfeil nach links der Vorgängerwert, gewählt und der Cursor an dieser Stelle neu gezeichnet.
5
siehe Kapitel 3.1.2.1, Seite 9
32
5.2.3 Bottom
Die Klasse Bottom erbt von JPanel und ist für die Erzeugung des unteren Panels zuständig.
Um auf Aktionen des Nutzers zu reagieren wird der ItemListener implementiert.
Abbildung 5.8: UI des Bottom Panels
Im Konstruktor werden Textfelder zum Anzeigen der gemessenen Werte, Spinner zum Einstellen der Start- und Endwerte des anzuzeigenden Spektrums und ein Textfeld zur Statusanzeige
des Applets erzeugt. Die Spinner werden hier zum ItemListener als Ereignisquelle hinzugefügt.
In der Methode enableToolTips werden die Tooltips, eine Kurzinformation zu den Schaltflächen, aktiviert wenn true oder deaktiviert wenn false übergeben wurde.
Die Methode setPixel stellt die Spinner und die entsprechenden Label auf die Pixelanzeige
um. Das Ändern auf die Wellenlängenanzeige erfolgt durch den Aufruf der Methode setWave.
Des Weiteren gibt es in dieser Klasse Methoden um den Wert der Spinner neu zu setzen und
den Wert im Spinner abzufragen, den Text im Status-Textfeld neu zu setzen und die Koordinaten der Messwerte in die entsprechenden Textfelder einzutragen und zu löschen. In der zu
überschreibenden Methode des ItemListeners erfolgt ein Neuzeichnen des Diagramms.
33
5.2.4 RightPanel
Die Klasse RightPanel erbt von der Klasse JPanel und implementiert die Interfaces ActionListener und ItemListener.
Abbildung 5.9: UI des RightPanel
Im Konstruktor wird der Klasse die URL des Applets übergeben, da sie für den Verbindungsaufbau notwendig ist. Denn die IP-Adresse kann mittels Methode getHost der Klasse
java.net.URL aus der URL extrahiert werden. Weiterhin ist die URL für die Anzeige des
Unternehmenslogos notwendig, da die Klasse wissen muss, an welcher Stelle das Bild abgespeichert ist. Dazu wird die URL an die Klasse AppIcon6 übergeben und das Logo in ein
Label geladen. Das Label wird danach auf dem Panel platziert.
Die Buttons zum Auslösen der Messungen werden initialisiert und beim ActionListener
registriert. Ebenfalls gibt es einen Slider, der zum Umschalten für die Darstellung der gespeicherten Daten vorgesehen ist, sofern eine Datei geladen wurde. Unter den Messbuttons sind
zwei Spinner, die die Integrationszeit und den Mittelwert anzeigen bzw. einstellen lassen. Diese
Spinner werden beim ItemListener registriert. Da man beim Messen zwischen einer fortlaufenden Messung und einer Einzelmessung wählen kann, wird ein Slider mit der Oberfläche
6
siehe Absatz 5.2.15, Seite 41
34
vom Typ JetiSliderUI7 erzeugt. Mit diesem Knopf kann zwischen den beiden Modi umgeschaltet werden. Das Abtastintervall wird in einem dritten Spinner angezeigt. Dieser ist allerdings
nicht aktiv, da dem Nutzer das Intervall angezeigt wird und es nicht von ihm einstellbar ist. Das
Abtastintervall berechnet sich aus der Integrationszeit tint und dem Mittelwert scanaver wie
folgt:
scanInterval = 200 + tint ∗ scanaver
(5.2)
Darüber hinaus werden die Buttons zum Auf- und Abbau der Verbindung erzeugt und unterhalb des Spinners angeordnet. Diese werden beim ActionListener registriert. Die Slider
erzeugen ItemEvents und werden daher beim ItemListener registriert.
Die Tooltips werden auch in dieser Klasse über die Methode enableToolTips aktiviert
bzw. deaktiviert.
In der zu überschreibenden Methode des ActionListeners werden die einzelnen
Messungen ausgelöst. Zuvor muss jedoch ein Socket, also eine Verbindung zum Gerät
aufgebaut werden. Ohne Verbindung sind die Messbuttons deaktiviert. Sobald eine Verbindung
aufgebaut wurde, kann die Dunkelmessung erfolgen. Daher wird der dazugehörige Button
aktiv. Nach der Dunkelmessung wird der Button für die Referenzmessung aktiv. Ist diese
erfolgt, werden die Buttons für die Transmission und die Absorption aktiviert. Ist der Button
für die fortlaufende Messung gedrückt und ein Messbutton wird angeklickt, so startet ein
Timer. Nach einer Sekunde wird eine Messung ausgelöst, bis der Nutzer den Timer stoppt.
Nach jedem Ereignis wird ein Neuzeichnen des Diagramms erzwungen.
Die Methode, die den ItemListener überlädt, beinhaltet die Berechnung des Abtastintervalls sobald der Nutzer auf einen der beiden Spinner drückt. Dabei werden die Messbuttons,
bis auf den Button für die Dunkelmessung deaktiviert, da diese Parameter für die Ermittlung
der Daten für die Messungen gleich sein müssen. Auch hier erfolgt ein Neuzeichnen des
Diagramms. Weiterhin werden die Positionen der Slider erfasst. Wird der Slider für die Scan
Modi auf „continuous“ gestellt, werden die Variable für die fortlaufende Messung auf true
gesetzt und die Spinner zum Einstellen der Integrationszeit und der Abtastrate deaktiviert.
Beim Zurückstellen auf „single“ wird die Variable auf false gesetzt, der laufende Timer
gestoppt und die Spinner aktiviert. Ist eine Datei geöffnet, können die Werte aus der Datei
mittels Schieberegler angezeigt werden.
7
siehe Absatz 5.2.14, Seite 41
35
5.2.5 JetiMenu
Die Klasse JetiMenu erbt von JMenuBar und implementiert sowohl den
ActionListener, als auch den ItemListener. Sie stellt das Menü mit all seinen
Funktionen zur Verfügung.
Abbildung 5.10: Menüleiste des Applet
Im Konstruktor werden die einzelnen Menüeinträge erzeugt und zu der Menüleiste hinzugefügt8 . Die Menüeinträge werden bei den Listenern registriert.
Vom ActionListener muss die Methode actionPerformed implementiert werden. Je
nach dem von welchem Menüeintrag das Ereignis ausging, wird eine Routine gestartet, wie
zum Beispiel das Öffnen oder Speichern von Dateien.
Die Methode itemStageChanged gehört zum ItemListener und wird ebenfalls überschrieben. Objekte der Klasse CheckBoxMenuItem erzeugen solche ItemEvents. Hier
werden die Parameter für die einzelnen Interpolationen an das Diagram übergeben.
5.2.6 DeviceInfoDialog
Die Klasse DeviceInfoDialog erbt von JDialog und erstellt einen Dialog, der die Parameter des Messgeräts anzeigt. Zu den Parametern gehören der Name, die Version der Firmware, die
voreingestellte Integrationszeit, die Fitparameter, die Lampenvorheizzeit, die Größe der Zeile
und die Anzahl der Kanäle.
Im Konstruktor wird der Dialog, die Textfelder für die Parameter und die Label für die Textfelder erzeugt9 .
Die Geräteparameter werden in den Setter-Methoden in die Textfelder geschrieben. Dafür werden die entsprechenden Geräteparameter übergeben.
8
9
siehe Abbildung 5.10
siehe Abbildung 5.11
36
Abbildung 5.11: DeviceInfoDialog
5.2.7 DiagramOptionsDialog
Die Klasse DiagramOptionsDialog erbt von JDialog und erzeugt einen Dialog zum
Umschalten der Diagrammoptionen. Da die Klasse von Benutzereingaben abhängt, wird der
ActionListener implementiert.
Abbildung 5.12: DiagramOptionsDialog
Im Konstruktor wird der Dialog mittels Aufruf des Superkonstruktors erzeugt. Anschließend
werden die Radiobuttons zum Umschalten zwischen der Wellenlängen- und Pixelanzeige und
zum Umstellen von der Prozentualanzeige auf die Anzeige der ADC Counts und ein OKButton erstellt. Ebenfalls werden noch zwei Spinner für die Prozentualanzeige generiert und
auf dem Dialog angezeigt. Der OK-Button und die Radiobuttons für die Ordinate werden bei
dem ActionListener eingetragen. Die Anordnung der einzelnen Komponenten erscheint
wie in Abbildung 5.12.
In der Methode actionPerformed werden die Spinner aktiviert, wenn der Radiobutton für
die Prozentualanzeige gedrückt ist und deaktiviert wenn der Button für die Counts Anzeige
geklickt wurde. Wurde der OK-Button betätigt, wird der Status der Radiobuttons eingelesen
und die entsprechenden Attribute des Diagramms für einen repaint-Aufruf gesetzt.
37
5.2.8 PasswordDialog
Die Klasse PasswordDialog erbt von JDialog und erzeugt einen Dialog zur Abfrage eines
Passwortes. Dazu muss der ActionListener implementiert werden.
Abbildung 5.13: PasswortDialog mit Meldung bei Falsch-Eingabe
Im Konstruktor wird der Superklassenkonstruktor aufgerufen, ein PasswordField und ein OKButton zum Dialog hinzugefügt. Der OK-Button wird beim ActionListener registriert.
In der Methode isPasswordCorrect wird die Eingabe im Passwortfeld auf ihre Richtigkeit
geprüft. Ist das Passwort richtig wird true, ist es falsch wird false zurückgegeben.
Bei jedem Aufruf von actionPerformed wird ein Zähler dekrementiert. Bei falscher Eingabe des Passwortes wird ein Message-Dialog mit der Angabe, wie viele Versuche der Nutzer noch
hat, angezeigt10 . Bei erfolgreicher Eingabe des Passwortes, wird der Dialog geschlossen und ein
FirmwareUpdateDialog erzeugt. Steht der Zähler auf „0“ wird ein Message-Dialog mit
dem Text: „No tries left!“ erzeugt.
5.2.9 FirmwareUpdateDialog
Die Klasse FirmwareUpdateDialog erbt von JDialog, implementiert den
ActionListener und erstellt einen Dialog zum Ausführen des Firmware Updates für
das Gerät.
Abbildung 5.14: Dialog für das Firmware Update
Im Konstruktor wird der Superklassenkonstruktor von JDialog aufgerufen, und ein Panel mit
zwei Buttons dem Dialog hinzugefügt. Die zwei Buttons werden beim ActionListener
registriert und dienen dem Laden der Firmware-Datei und dem Schreiben der Firmware in die
Spektrometereinheit.
10
siehe Abbildung 5.13
38
Wird der Button zum Laden der Datei aktiviert, öffnet sich ein Dateibrowser zum Auswählen und Öffnen der Datei. Wenn der Button zum Schreiben der Firmware gedrückt wird, soll
eine Klasse die Datei in das Gerät schreiben. Allerdings ist diese Klasse noch nicht implementiert, da die Hardwarestruktur und das Zusammenspiel der Hardware mit der Firmware für das
Spektrometer noch entwickelt werden. Deshalb erscheint an dieser Stelle ein Dialog mit der
Information, dass diese Funktion erst zu einem späteren Zeitpunkt implementiert wird11 .
5.2.10 SaveOptionDialog
Die Klasse SaveOptionDialog erbt von JDialog und erzeugt einen Dialog zum Auswählen
der Messdaten, die abgespeichert werden sollen. Um auf Eingaben reagieren zu können wird
das Interface ActionListener implementiert.
Abbildung 5.15: Dialog für das Speichern der Spektren
Im Konstruktor wird mittels Aufruf des Superklassenkonstruktors ein Dialog generiert12 . In
diesem erscheinen nach dem Erstellen vier Checkboxen zum Auswählen der zu speichernden
Spektren. Zusätzlich werden zwei Buttons für das Speichern und das Abbrechen hinzugefügt.
Diese werden dann beim ActionListener eingetragen.
Wurde der Button zum Speichern gewählt, wird in der Methode actionPerformed ein
SaveDialog aus der Klasse JFileChooser erzeugt. Wurde bei diesem der Save-Button
gedrückt, wird der Status der Checkboxes abgefragt und die Spektren in eine CSV-Datei geschrieben, nachdem ein CSVFile-Objekt erzeugt wurde. Wurde der Button zum Abbrechen
gedrückt, wird der Dialog geschlossen.
5.2.11 PrintDiagram
Die Klasse PrintDiagram implementiert das Interface Printable. Sie stellt die Methoden
zum Drucken des Diagrams bereit.
Im Konstruktor wird das Diagram-Objekt übergeben, die Bezeichnung des aktuellen Spektrums
ausgelesen und die Methode print aufgerufen.
11
12
siehe Abbildung 5.14, Seite 38
siehe Abbildung 5.15
39
In dieser Methode wird ein Objekt der Klasse PrinterJob erzeugt und dieses führt nach dem
Erzeugen des Druck-Dialoges die von Printable implementierte print-Methode aus. In
dieser Methode wird das Seitenformat auf A4 und Querformat eingestellt und die Komponente
gedruckt.
5.2.12 JetiHelp - deprecated
In der Klasse JetiHelp wird die Hilfe erzeugt und an die Benutzeroberfläche angepasst.
Abbildung 5.16: Hilfe mit JavaHelp
Im Konstruktor wird ein HelpViewer-Objekt erzeugt. Diesem Objekt wird das Helpset übergeben und anhand der Daten in den im Abschnitt 3.1.2.1 auf Seite 11 genannten Dateien wird die
Hilfe generiert. Wie auch in dem genannten Abschnitt erläutert, ist diese Klasse nicht nutzbar,
da das entsprechende Jar-Archiv nicht auf dem Embedded Device Server bereitgestellt werden
kann. Deshalb wird die Klasse mit dem Hinweis deprecated (abgelehnt) gekennzeichnet.
5.2.13 AboutDialog
Die Klasse AboutDialog erbt von der Klasse JDialog und erzeugt einen Dialog. Im AboutDialog werden Informationen zur Software-Version und die Kontaktdaten des Unternehmens
angezeigt.
Im Konstruktor wird mittels super der Konstruktor des JDialogs aufgerufen. Dann wird eine
JTextPane erzeugt, deren Text zentriert dargestellt werden soll. Dazu sind Objekte der Klassen SimpleAttributeSet und StyledDocument nötig. Es werden zwei Objekte von
SimpleAttributeSet erstellt, eines für die Charakter Attribute und eines für die Paragraph Attribute des Objekts von StyledDocument. Hier bestimmt das Charakter-Attribut
die Farben und das Paragraph-Attribut, dass der Text zentriert sein soll.
40
5.2.14 JetiSliderUI
Die Klasse JetiSliderUI dient der Erstellung einer neuen Oberfläche für eine Schaltfläche. Sie erbt von BasicSliderUI und überschreibt deren Methoden paintThumb und
paintTrack.
Abbildung 5.17: Oberfläche des Schalters
Im Konstruktor wird ein Objekt der Schaltfläche vom Typ JSlider übergeben und mittels Superklassenkonstruktor ein Objekt erzeugt.
Die Methode paintThumb zeichnet den Quader der Schaltfläche neu, der beim Umschalten
bewegt wird.
In der Methode paintTrack wird das Rechteck, das die Schaltfläche bei Bewegung führt,
neu konstruiert.
5.2.15 AppIcon
Die Klasse AppIcon zeichnet ein Bild in ein ImageIcon. Dieses Bild wird von einer angegebenen URL geladen.
Im Konstruktor wird das Bild von der URL in ein Image-Objekt geladen. Danach wird ein
ImageIcon erzeugt, wobei das Image-Objekt in den Konstruktor von ImageIcon übergeben wird.
Die Methode paint zeichnet das Bild, wenn das Image-Objekt erzeugt werden kann.
41
5.2.16 Communication
Die Klasse Communication stellt die Schablone für die Kommunikation mit dem Messgerät
bereit. Sie baut die Verbindung zum Gerät auf, fragt die Parameter ab, löst die Messungen aus
und liest die Messergebnisse aus dem Gerät. Sie erbt von der Klasse java.net.Socket
Im Konstruktor wird mittels Superkonstruktor ein Objekt der Klasse Socket erzeugt. Dafür
muss die IP-Adresse als String übergeben werden. Als Port ist ein Default-Wert eingetragen.
Dieser Wert entspricht der Portnummer 2101, die den TCP-Port des Embedded Device Servers
repräsentiert.
In der Methode ask wird der Ask Befehl an das Gerät gesendet, nachdem ein Objekt der
Klasse OutputStream erzeugt wurde. Der Ask-Befehl ist das Senden eines „A“ mit Carriage
Return. Das Gerät antwortet mit den Geräteparametern. Um diese Antwort auslesen zu können
wird ein InputStream-Objekt erzeugt, das mit der Objektmethode readLine ausgelesen wird.
Um die Daten aus dem String zu extrahieren, wird ein StringTokenizer-Objekt erzeugt, das
den String „zerhackt“. Die erhaltenen Daten werden in die entsprechenden Objektattribute
geschrieben.
In der Methode disconnect wird die Verbindung zu dem Gerät beendet. Das Objekt wird
mit close geschlossen.
Die Methode getMeasuredData liest die vom Messgerät empfangenen Messdaten aus dem
InputStream-Objekt aus und gibt diese in einem Feld vom Typ float zurück.
In der Methode send wird ein Objekt der Klasse OutputStream erzeugt. Mit der Methode
write des OutputStream-Objektes wird ein Kommando an das Messgerät geschickt. Dies
erfolgt ebenfalls in der Methode sendArg. Im Unterschied zur send-Methode werden
neben dem Kommando noch die Argumente Integrationszeit und die Mittelung an das Gerät
übertragen.
Die Methode getLineArraySize gibt die Anzahl der Pixel von der Zeile zurück. Die
Methoden getFit0, getFit1, getFit2, getFit3 und getFit4 geben die jeweiligen
Fitparameter als float-Wert zurück.
42
5.2.17 Measurement
Die Klasse Measurement ordnet die Pixel den Wellenlängen zu und berechnet die einzelnen
Spektren.
Fitpolynom Der Analog-Digital-Converter (ADC) des Spektrometers liefert das Spektrum
in Counts für jedes Pixel. Die Pixel sind nummeriert und werden über ein Polynom vierter
Ordnung in die korrespondierende Wellenlänge umgerechnet. Für die Berechnung werden die
Fitparameter des Messgeräts benötigt. Der jeweilige Wert der Wellenlänge berechnet sich daher
wie folgt:
λ(x) = f it0 + f it1 · x + f it2 · x2 + f it3 · x3 + f it4 · x4
(5.3)
Die Variable x repräsentiert die Pixelnummer.
In der Methode fitWave werden die Fitparameter eingelesen und das Feld der λ-Werte wie
oben angegeben berechnet. Dieses float-Array wird zurückgegeben.
Dunkelspektrum Das Dunkelspektrum stellt die ADC-Werte aller Pixel ohne einfallendes
Licht dar. Die Vergleichbarkeit der einzelnen Spektren hängt von den Parametern Integrationszeit und der Mittelung ab. Daher müssen die Spektren mit gleicher Integrationszeit und Mittelung gemessen werden.
Die Methode darkRef liest das Dunkelspektrum aus, dass für die Berechnung der weiteren
Spektren bekannt sein muss. Sie gibt das Feld mit den Dunkelwerten vom Typ float zurück.
Referenzspektrum Das Referenzspektrum ist die Differenz zwischen dem mit einfallendem
Licht gemessenen Spektrum Ibel und dem Dunkelspektrum Idark . Daher berechnet sich das Referenzspektrum wie folgt:
Iref (λ) = Ibel (λ) − Idark (λ)
(5.4)
In der Methode referenceSpektrum wird, nach dem Auslesen des aktuellen Spektrums aus
demCommunication-Objekt, das Referenzspektrum ermittelt. Das Referenzspektrum wird
in einem float-Feld zurückgegeben.
43
Transmissionsspektrum
Das Transmissionsspektrum gibt den Anteil des einfallenden Lichts
an, der von der Probe hindurch gelassen wird. Berechnet wird die Transmission τ , indem das
Dunkelspektrum Idark vom aktuell gemessenen Spektrum Ibel abgezogen und die entstandene
Differenz durch das Referenzspektrum Iref dividiert wird.
τ (λ) =
Ibel (λ) − Idark (λ
[·100%]
Iref (λ)
(5.5)
Die Methode transSpectrum bestimmt anhand des aktuellen Spektrums aus dem Objekt
der Klasse Communication das Transmissionsspektrum. Die Transmissionswerte werden in
einem Feld vom Typ float zurückgegeben.
Absorptionsspektrum Das Absorptionsspektrum gibt den Anteil des einfallenden Lichts an,
der von der Probe absorbiert wird. Um das Absorptionsspektrum A zu erhalten, wird das Referenzspektrum Iref durch die Differenz zwischen aktivem Spektrum Iref und Dunkelspektrum
Idark dividiert und von dem Resultat der dekadische Logarithmus gebildet.
Ir ef (λ)
A(λ) = log
Ibel (λ) − Idark (λ)
!
(5.6)
In der Methode absSpectrum wird das Absorptionsspektrum als float-Array zurückgegeben, nachdem das aktuelle Spektrum aus dem Communication-Objekt ausgelesen und
anhand der oben beschriebenen Gleichung berechnet wurde.
Die Methoden calcMaxWav und calcMinWav geben die maximale bzw. minimale Wellenlänge als int-Wert zurück.
5.2.18 CSVFile
Die Klasse CSVFile öffnet eine CSV-Datei zum Lesen oder zum Schreiben von Messdaten.
Der Konstruktor erzeugt ein Objekt von der Klasse RandomAccessFile und initiiert die
Objekt-Attribute mit den übergebenen Werten.
In der Methode writeCSV werden in die geöffnete CSV-Datei die zu speichernden Daten
geschrieben. Dazu wird pro Zeile der CSV-Datei ein String erzeugt, der mit der Methode
writeBytes an das Objekt der Klasse RandomAccessFile übergeben wird. In der ersten
Zeile der Datei befinden sich in dem String die Überschriften der einzelnen Spalten, die durch
Kommata getrennt sind. Ab der zweiten Zeile stehen in dem String die in den Datentyp String
umgewandelten Messwerte, ebenfalls durch Kommata getrennt. Nach erfolgreichem Schreiben
wird die Datei geschlossen, indem auf das RandomAccessFile-Objekt die Methode close
angewendet wird.
44
Die Methode readCSV liest die gespeicherten Daten aus der geöffneten Datei aus. Dazu wird
die Datei mittels Methode readLine zeilenweise ausgelesen. Da diese Methode einen String
zurückliefert, muss dieser mittels eines Objektes der Klasse StringTokenizer „zerhackt“
werden. Nach dem Auslesen und „Zerhacken“ der ersten Zeile, werden die einzelnen Elemente mit den Konstanten verglichen und die entsprechenden boolean-Attribute auf true gesetzt. Dann werden alle weiteren Zeilen ausgelesen, an das StringTokenizer-Objekt übergeben
und in die entsprechenden Felder geschrieben. Am Ende der Methode wird die Datei wie in
writeCSV geschlossen.
5.2.19 CSVFilter
Die Klasse CSVFilter erbt von der Klasse FileFilter und überlagert deren Methoden accept
und getDescription .
In der ersten Methode wird true zurückgegeben, wenn die Datei mit .csv endet. Hat die
Datei eine andere Endung, wird false zurückgegeben.
Bei der zweiten Methode wird der String „CSV File“ zurückgegeben, um diesen im JFileChooser anzuzeigen.
5.2.20 Point
Die Klasse Point dient der Erzeugung von Punkten mit zwei Koordinaten für ein zweidimensionales Koordinatensystem.
Im ersten Konstruktor wird ein Objekt mit den übergebenen x- und y-Koordinaten erzeugt. Im
zweiten Konstruktor, bei dem keine Parameter übergeben werden, wird der erste Konstruktor
aufgerufen und die beiden Koordinaten werden „0“ gesetzt.
Die Methode toString gibt die Koordinaten des Punktes als String zurück.
Somit erhält man bei dem Aufruf von
System.out.println("P"+new Point());
folgende Ausgabe in einer Konsole: P(0/0)
45
5.2.21 Spline
Die Klasse Spline stellt die Spline Interpolation zur Verfügung, um die Werte zwischen den
Rohdaten der Messung mit einer hohen Genauigkeit zu erhalten.
Spline Interpolation Die Spline Interpolation beruht auf der Interpolation von kubischen
Splines. Kubische Splines sind stückweise Polynome dritter Ordnung, die in der ersten und
zweiten Ableitung stetig sind. Zur Berechnung der Interpolationsfunktion ist die zweite Ableitung notwendig. Da es sich hier um eine Funktion handelt, die in Form einer Wertetabelle
vorliegt, wird die zweite Ableitung mittels Differenzenquotient gebildet.
f 0 (x) =
f (x + ∆x) − f (x)
∆x
(5.7)
Dann wird die Wertetabelle für die interpolierten Werte berechnet. Die dazugehörige Interpolationsfunktion lautet:
S(x) = A · f (x) + B · f (x + ∆x) + C · f 00 (x) + D · f 00 (x + ∆x)
(5.8)
Dabei sind die Parameter A, B, C und D wie folgt zu berechnen:
A=
x − xval
∆x
(5.9)
B = 1−A
(5.10)
C=
(A3 − A) · (∆x)2
6
(5.11)
D=
(B 3 − B) · (∆x)2
6
(5.12)
In der Methode splineInterpol wird die Spline Interpolation durchgeführt. Dazu
wird das übergebene Vector-Objekt an die Methode differentiate übergeben, die die
erste Ableitung in einem Vector-Objekt zurückgibt. Dann wird diese Methode erneut aufgerufen und der Vector mit den Werten der ersten Ableitung übergeben. Somit erhält man die
zweite Ableitung. Das Array vom Typ float beinhaltet die x-Werte über denen interpoliert
werden soll. Es werden die Parameter A, B, C und D berechnet und das jeweilige interpolierte
Point-Objekt, das an das Vector-Objekt übergeben wird, berechnet. Das Vector-Objekt wird
mit den interpolierten Werten zurückgegeben.
46
5.2.22 LineInterpol
Die Klasse LineInterpol stellt die Lineare Interpolation zur Verfügung.
Lineare Interpolation Die Lineare Interpolation benutzt lineare Funktionen für die Approximation zwischen den Stützstellen. Liegt x bzw. λ im Intervall [x0 , x1 ] und beschreiben
y0 = f (x0 ) und y1 = f (x1 ) die Werte x0 und x1 , so ergibt sich folgende Interpolationsfunktion:
L(x) = y0 ·
y1 − y0
· (x − x0 )
x1 − x0
(5.13)
Die interpolierten Werte werden in der Methode lineInterpol nach der Interpolationsfunktion berechnet und in einem Vector-Objekt zurückgegeben. Die Übergabeparameter sind die
Schrittweite, die vorhandenen y-Werte, der Start- und Endwert der Interpolation, der maximale
x-Wert und ein Feld in dem die vorhandenen x-Werte stehen.
47
Kapitel 6
Implementierung
6.1 Laden auf Embedded Device Server
Um das Applet vom EDS aufrufen zu können, muss es auf dem Server abgespeichert werden.
Dafür werden die Klassen in eine Jar-Datei gepackt. Da das Applet mit dem Zugriff auf Dateien
sicherheitskritische Aktionen ausführt, muss die Jar-Datei mit einem Zertifikat signiert werden1 .
Um die signierte Jar-Datei mittels Browser aufrufen zu können, muss eine HTML-Datei erstellt
werden. Diese beinhaltet das Applet-Tag mit dem das Applet aufgerufen wird.
<applet code=com.jeti.spec.NetSpec.class archive=NetSpec.jar>
</applet>
Um nun diese beiden Dateien auf den Server zu laden wird der Browser geöffnet und die Administrationsseite des EDS2 aufgerufen. Dort gibt es einen Link File Management. Über einen
Dateibrowser werden die Dateien einzeln angewählt und auf den Server geladen. Nach dem
Upload muss ein Neustart des Servers erfolgen, damit er die Einstellungen übernehmen kann.
6.2 Ausführen des Applets
Um das Applet zu starten, muss der Browser gestartet werden. In der Adressleiste des Browsers
wird die IP-Adresse eingegeben und die Eingabetaste gedrückt. Daraufhin wird die HTMLSeite, in die das Applet eingebunden ist, aufgerufen und das Applet wird nach der Bestätigung
des Zertifikates ausgeführt. Der Dialog zum Bestätigen des Zertifikats ist in der Abbildung 6.1
auf der Seite 49 dargestellt.
1
2
siehe Absatz 3.1.2.1, Seite 10
siehe Abschnitt 4.1 Seite 20
48
Abbildung 6.1: Dialog zum Bestätigen des Zertifikats
6.3 Einbindung in das Internet
Für die Einbindung in das Internet wird ein Server und eine Standleitung benötigt. Der Server
ist notwendig, um dem EDS eine IP-Adresse zu geben und um die Netzwerkparameter, wie
IP-Adresse und Portnummer des EDS für das Internet umzusetzen. Die Standleitung sei für den
Zugriff auf das Gerät zu jeder beliebigen Tageszeit. Die Umsetzung der Netzwerkparameter ist
nötig, da in den meisten Fällen IP-Adressen aus dem privaten Bereich, wie in Kapitel 3.1.3.2
auf Seite 16 erläutert, verwendet werden. Diese werden nicht in das Internet geroutet. Somit
kann nicht von außen, also vom Internet aus, auf die Geräte zugegriffen werden.
Möglichkeiten der Umsetzung der IP-Adresse
Grundsätzlich gibt es zwei Möglichkeiten für den Server die IP-Adresse des Gerätes umzusetzen. Eine dieser Möglichkeiten ist die Portweiterleitung. Diese wird auf dem Router eingerichtet, wobei der Router das Internet mit dem Netzwerk des Unternehmens verbindet. Der Rechner
außerhalb des Unternehmens verbindet sich mit dem Router über dessen IP-Adresse und einem
festgelegten Port. Dieser Port leitet dann die Verbindung direkt an das Messgerät weiter und der
Rechner aus dem Internet ist mit dem Messgerät verbunden.
Die zweite Möglichkeit besteht im Tunneln. Dabei verbindet sich der Rechner vom Internet mit
dem Router und muss sich authentifizieren. Durch die Authentifizierung wird eine verschlüsselte Verbindung möglich. Sobald die Verbindung aufgebaut wurde, kann der Router die Verbindung zum Messgerät aufbauen. Das Tunneln erlaubt somit die voneinander unabhängigen
Verbindungen zwischen dem externen Host und dem Router und zwischen Router und Messgerät miteinander zu verbinden.
Die Portweiterleitung ist sicherheitskritisch, da auf diese Art und Weise Firewalls umgangen
werden können. Damit kann dem Unternehmen ein erheblicher Schaden zugefügt werden, beispielsweise durch Datenspionage. Die Konfiguration hingegen ist gegenüber anderen Verfahren
einfach. Die zweite Variante verlangt die Einrichtung eines Accounts im Netzwerk des Unternehmens, der auch für den Zugriff von außen konfiguriert werden muss. Damit kann nur ein
bestimmter Nutzer mit Kenntnis der Logindaten auf das Messgerät zugreifen.
49
6.4 Test im Browser
Das Applet hat den Anspruch vom Betriebssystem unabhängig zu sein, da im Netzwerk unterschiedliche Maschinen mit verschiedenen Betriebssystemen vorhanden sind. Um sicherzustellen, dass das Applet dem Anspruch gerecht wird, müssen Tests durchgeführt werden. Im
Rahmen dieser Arbeit erfolgen die Tests unter Microsoft Windows und Linux. Als Voraussetzung sei gesagt, dass auf beiden Betriebssystemen das Java Runtime Environment (JRE) in der
Version 1.5 vorhanden sein muss, da dies die JVM zur Verfügung stellt.
Es werden je Betriebssystem nur zwei Browser getestet. Es kann vorausgesetzt werden, dass das
Applet unter allen javafähigen Browsern eingesetzt werden kann, da die JVM auf den Betriebssystemkern aufsetzt und die API (Application Programmers Interface) zur Verfügung stellt, die
zur Ausführung des Applets notwendig sind3.
6.4.1 Browser unter Microsoft Windows
Als Testsystem dient hier Microsoft Windows 2000 Professional. Als Testbrowser werden der
Internet Explorer und der Mozilla Firefox ausgewählt. Nach der Installation des JRE und der
Bestätigung des Zertifikats kann das Applet mit beiden Browsern gestartet werden. Auch die
Verbindung zum Gerät kann problemlos hergestellt werden. Das Applet kann mit vollem Funktionsumfang, sowohl im Internet Explorer als auch im Firefox ausgeführt werden.
6.4.2 Browser unter Linux
Als Testsystem dient hier die Linux-Distribution Ubuntu. Ubuntu baut auf einem Debian-Kernel
auf und nutzt den Window-Manager GNOME. Als Browser werden der Mozilla Firefox, der
urprünglich für Linux entwickelt wurde, und Epiphany, ein Browser für GNOME, genutzt. Nach
der Installation des JRE kann im Ephiphany das Applet aufgerufen werden. Für den Firefox
musste erst noch ein Link gesetzt werden, damit er den Pfad zum JRE identidizieren kann.
Nach der Bestätigung des Zertifikats kann das Applet in beiden Browsern mit allen Funktionen
eingesetzt werden.
3
siehe Abbildung 3.3Seite 9
50
Kapitel 7
Fazit
Im Fazit werden die Vor- und Nachteile des Ethernet-Spektrometers herausgestellt und mögliche, zukünftige Entwicklungen aufgezeigt.
Betrachtet man die wirtschaftlichen Aspekte von Embedded Device Servern, so kommt man zu
dem Schluss, dass sie die Entwicklungszeit eines Ethernet-Spektrometers deutlich verringern.
Damit sinken auch die Kosten für die Entwicklung, da der EDS nur integriert werden muss. Die
Portabilität des Programmcodes spart für weitere Entwicklungen Zeit und Geld.
Das Applet des Ethernet-Spektrometers liefert dem Benutzer aufbereitete Messdaten. Es ist unabhängig von der zugrunde liegenden PC-Architektur, sodass der Nutzer nicht an ein bestimmtes Betriebssystem gebunden ist. Der Anwender muss die Auswertesoftware nicht installieren,
da er sie mittels Browser vom Messgerät herunter lädt. Weiterhin kann die Stromversorgung
über PoE erfolgen, weshalb nur ein Kabel zum Messgerät geführt werden muss. Er braucht
keine zusätzliche PC-Technik, um mit dem Messgerät kommunizieren zu können.
Es werden allerdings Kenntnisse über die Zuweisung der IP-Adresse benötigt, das durch die
Vergabe dieser Adressen von einem DHCP-Server erleichtert werden kann. Das setzt wiederum
voraus, dass ein solcher Server vorhanden ist. Weiterhin erfordert PoE einen PSE in der Infrastruktur des Netzwerkes. Da der Bytecode des Applet von der JVM interpretiert wird, muss
diese installiert werden. Bei mehreren Geräten mit unterschiedlichen Java-Versionen kann es
zu Versionskonflikten kommen, da Java weder auf- noch abwärtskompatibel ist. Darüber hinaus verfügt der EDS über nicht genügend Speicher für ein Java spezifisches Hilfesystem oder
aufwendige Applikationen. Ferner treten im Netzwerk Latenzen auf, die die Performance des
Applets verlangsamen. Diese können in Zukunft durch das Verlagern der Algorithmik in die
Firmware der Spektrometereinheit ausgeglichen werden.
51
Durch den Einsatz von Embedded Device Servern können redundante Rechner an Produktionsstrassen wegfallen. Denn die Messgeräte werden durch den EDS befähigt, die aufbereiteten
Daten an eine zentrale Überwachungs- oder Datenerfassungsstelle zu übermitteln. So könnte in
Zukunft eine Fernwartung erfolgen. Ebenso wird es möglich sein, messgerätespezifische Software mit geringem Entwicklungsaufwand zu schaffen. Die Kompatibilität der Produkte von
Digi International führt dazu, dass es möglich ist, ohne weiteren Aufwand die Messgeräte für
die drahtlose Datenübertragung weiter zu entwickeln.
52
Literaturverzeichnis
[Bar01] Bartsch, H.-J.: „Taschenbuch Mathematischer Formeln“, 19. Auflage, Verlag: Carl
Hanser Verlag, Fachbuchverlag Leipzig, 2001
[Dal05] Dallheimer, M. K.: „LATEX - kurz und gut“, 2. Auflage, Verlag: O’Reilly, Köln, 2005
[Dig05] Digi International: „Digi Connect Family Users Guide“, Minnetonka, 2005,
http://ftp1.digi.com/support/documentation/90000565_E.pdf, Abruf: 2005.05.01
[Dig05] Digi International: „RealPort Installation“, Minnetonka, 2005,
http://ftp1.digi.com/support/documentation/90000630_D.pdf, Abruf: 2005.05.01
[Fla02] Flanagan, D.: „Java in a Nutshell“, 4. Auflage, Verlag O’Reilly, USA, 2002
[Gol03] Gollup, L.: „Messen, Steuern und Regeln mit TCP/IP“, Verlag: Franzis’ Verlag GmbH,
Poing, 2003
[Hol04] Holzner, S.: „Eclipse“, Verlag: O’Reilly, Köln, 2004
[LSW01] Licher V., Strackenbrock B., Weiß J.: „Duden Informatik“, 3. Auflage, Verlag: Dudenverlag, Mannheim, Leipzig, Wien, Zürich, 2001
[Lip02] Lipinski, K. (Hrsg.) : „Lexikon der Datenkommunikation“, mitp-Verlag, Bonn, 2002
[Mic03] Michaelis, C.: „Entwicklung eines Interfaces für den Spektrenprozessor SDC-VIS,
wahlweise mit USB oder RS232 Interface“, 1. Praxisarbeit, JETI Technische Instrumente
GmbH, Jena, April 2003
[Mic04] Michaelis, C.: „Einbindung von Spektralmessgräten in Ethernet-Netzwerke“, 3. Praxisarbeit, JETI Technische Instrumente GmbH, Jena, April 2004
[Mic04] Michaelis, C.: „Konzeption einer browsergestützten Anwendersoftware für EthernetSpektrometer mittels Java- Applets“, Studienarbeit, JETI Technische Instrumente GmbH,
Jena, Oktober 2004
[Per93] Perkampus, H.: „Lexikon Spektroskopie“, Verlag: VCH Verlagsggesellschaft mbH,
Weinheim, 1993
53
[Ste01] Stein, E.: „Taschenbuch Rechnernetze und Internet“, Verlag: Carl Hanser Verlag,
Fachbuchverlag-Leipzig, München, Wien, 2001
[Tan96] Tanenbaum, A.S.: „Computer Networks“, 3.Auflage, Verlag: Prentice-Hall Inc., New
Jersey, 1996
[ZCC01] Zwicky, E., Cooper, S., Chapman, D.: „Einrichten von Internet-Firewalls“, 2.Auflage,
Verlag: O’Reilly, Köln, 2001
54
Anhang A
Dokumentation
A.1 Klassendiagramm
A.2 CD
Auf der CD befindet sich eine Datei „index.html“. Diese enthält alle Links, sowohl zum Applet
als auch zur Programmdokumentation.
• Applet
JETI Measurement Applet
Dokumentation
Programmablaufplan
Klassendiagramm
• Diplomarbeit
Autorreferat zur Diplomarbeit
Thesenpapier zur Diplomarbeit
Diplomarbeit
Online-Quellen
Digi Connect Family Users Guide
RealPort Installation
55
Ehrenwörtliche Erklärung
Ich erkläre hiermit ehrenwörtlich,
1. dass ich meine Diplomarbeit mit dem Thema
„JAVA-gestützte Messsoftware für Spektrometer unter Verwendung von Embedded
Device Servern“
ohne fremde Hilfe angefertigt habe,
2. dass ich die Übernahme wörtlicher Zitate aus der Literatur sowie die Verwendung
der Gedanken anderer Autoren an den entsprechenden Stellen innerhalb der Arbeit
gekennzeichnet habe und
3. dass ich die Diplomarbeit bei keiner anderen Prüfung vorgelegt habe.
Ich bin mir bewusst, dass eine falsche Erklärung rechtliche Folgen haben wird.
Ort, Datum
Unterschrift (Vor- und Nachname)
56
Herunterladen