Diplomarbeit, 2002
71 Seiten, Note: 1
1 Einleitung
2 ActiveX
2.1 Softwarekomponenten
2.2 Anforderungen an Softwarekomponenten
2.3 COM als Basis
2.4 ActiveX-Steuerelemente
3 Erstellung eines ActiveX-Steuerelementes
3.1 Erstellen eines ActiveX-Steuerelementes mit dem Assistenten
3.2 Testcontainer für ActiveX-Steuerelemente
3.3 Eigenen Programmcode einfügen
3.3.1 Vordefinierte Eigenschaften
3.3.2 Benutzerdefinierte Eigenschaften
3.3.3 Member-Variablen
3.3.4 Member-Funktionen
3.3.5 Ereignisse
3.4 Hinweise zur Implementierung
4 ActiveX-Steuerelement MASTER_Seg7
4.1 Beschreibung
4.2 Implementierung
4.2.1 Entwurf auf dem Papier
4.2.2 Zeichnen des Elementes
4.2.3 Berechnung der Farbe für inaktive Segmente
4.2.4 Berechnung der einzelnen Digits
4.3 Eigenschaften und Methoden
4.3.1 void AboutBox()
4.3.2 short GetAnzahlDigits()
4.3.3 void SetAnzahlDigits(short anzahl)
4.3.4 OLE_COLOR GetBackColor()
4.3.5 void SetBackColor(OLE_COLOR backcolor)
4.3.6 OLE_COLOR GetForeColor()
4.3.7 void SetForeColor(OLE_COLOR forecolor)
4.3.8 double GetValue()
4.3.9 void SetValue(double value)
4.3.10 short GetDarstellung()
4.3.11 void SetDarstellung(short darstellung)
5 ActiveX-Steuerelement MASTER_Map
5.1 Beschreibung
5.2 Implementierung
5.2.1 Zeichnen des Elementes
5.2.2 Karte und zugehörige Koordinaten
5.2.3 Umrechnen der WGS84-Position in Pixelkoordinaten
5.2.4 Richtung des Flugzeugs
5.3 Eigenschaften und Methoden
5.3.1 void AboutBox()
5.3.2 OLE_COLOR GetBackColor()
5.3.3 void SetBackColor(OLE_COLOR backcolor)
5.3.4 OLE_COLOR GetForeColor()
5.3.5 void SetForeColor(OLE_COLOR forecolor)
5.3.6 double GetZoom()
5.3.7 void SetZoom(double zoom)
5.3.8 CString GetFile()
5.3.9 void SetFile(LPCTSTR file)
5.3.10 BOOL GetTrack()
5.3.11 void SetTrack(BOOL track)
5.3.12 BOOL GetCenter()
5.3.13 void SetCenter(BOOL center)
5.3.14 BOOL GetTiming()
5.3.15 void SetTiming(BOOL timing)
5.3.16 long GetMapXScroll()
5.3.17 void SetMapXScroll(long xscroll)
5.3.18 long GetMapYScroll()
5.3.19 void SetMapYScroll(long yscroll)
5.3.20 void PixPosition(long xpos, long ypos)
5.3.21 void WGS84Position(double laenge, double breite, double time)
5.3.22 void ClearTrack()
5.3.23 long GetMapWidth()
5.3.24 long GetMapHeight()
5.3.25 long GetTimingInterval()
5.3.26 SetTimingInterval(long interval)
5.4 Ereignisse
5.4.1 void MousePosition(double laenge, double breite)
5.4.2 void PositionChanged(long xtop, long ytop)
6 ActiveX-Steuerelement MASTER_FlightScala
6.1 Beschreibung
6.2 Implementierung
6.2.1 Zeichnen des Elementes
6.2.2 Skalaeinteilung
6.3 Eigenschaften und Methoden
6.3.1 void AboutBox()
6.3.2 OLE_COLOR GetBackColor()
6.3.3 void SetBackColor(OLE_COLOR backcolor)
6.3.4 OLE_COLOR GetForeColor()
6.3.5 void SetForeColor(OLE_COLOR forecolor)
6.3.6 double GetZoom()
6.3.7 void SetZoom(double zoom)
6.3.8 BOOL GetTrack()
6.3.9 void SetTrack(BOOL track)
6.3.10 BOOL AutoScroll()
6.3.11 void AutoScroll(BOOL scroll)
6.3.12 long GetScrollPosition()
6.3.13 void SetScrollPosition(long scrollpos)
6.3.14 void ClearTrack()
6.3.15 long GetScrollWidth()
6.3.16 BOOL GetTiming()
6.3.17 void SetTiming(BOOL timing)
6.3.18 long GetTimingInterval()
6.3.19 SetTimingInterval(long interval)
6.3.20 void Position(double hoehe, double zeit)
6.3.21 short AnzahlHLinien()
6.3.22 void AnzahlHLinien(short anzahl)
6.4 Ereignisse
6.4.1 void MousePosition(double hoehe)
7 Applikation MASTER_Navigator
7.1 Beschreibung
7.2 Implementierung
7.2.1 ActiveX-Steuerelemente einfügen
7.2.2 Erstellen der Bedienoberfläche
7.2.3 Laden und Speichern der Einstellungen
7.2.4 Laden der Karte
7.2.5 Manuelles Eingeben der Position
7.2.6 Starten und Anhalten der Navigation
7.2.7 Abfragen des Shared Memory und Zurückschreiben der Zeit
8 Zusammenfassung und Ausblick
A Projekt MASTER_Seg7
A.1 Projekt-Dateien
A.2 Arbeitsbereich
B Projekt MASTER_Map
B.1 Projekt-Dateien
B.2 Arbeitsbereich
C Projekt MASTER_FlightScala
C.1 Projekt-Dateien
C.2 Arbeitsbereich
D Projekt MASTER_Navigator
D.1 Projekt-Dateien
D.2 Initialisierungsdatei
E Karten
E.1 Karten
E.2 .ini-Dateien
F Hilfsprogramme
Literaturverzeichnis
Das Hauptziel dieser Arbeit ist die Konzeption und Implementierung eines Navigationsdisplays für den modularen MASTER-Fahrzeugsimulator. Dabei wird das Augenmerk auf die Entwicklung wiederverwendbarer ActiveX-Steuerelemente unter C++ gelegt, um eine flexible und standardisierte Softwarearchitektur für die Anzeige von Flugdaten wie Position, Höhe und Flugspur in Echtzeit zu gewährleisten.
2.1 Softwarekomponenten
Sowohl im Maschinenbau als auch in der Architektur gibt es Standardbauteile und Standardverfahren, um eine Konstruktionsaufgabe durchzuführen. Die Verfahren sind den betreffenden Ingenieuren bzw. Architekten wohlbekannt; für Bauteile gibt es Kataloge, in denen diese verzeichnet sind. In der Softwaretechnik gibt es praktisch keine Standardbauteile. Viele Softwareentwickler haben ihre eigenen Bauteile; mit den gängigen Methoden der Wiederverwendung schaffen sich diese Programmierer im Laufe der Zeit ihre eigenen Bauteillager, sie verwenden also Programmcode wieder. Dies ist ganz im Sinne der Wiederverwendung. Allerdings ist der dabei betrachtete Kontext nicht zufriedenstellend: Jeder Programmierer kann nur seine eigenen Bauteile (oder die seines Teams, seiner Firma) wiederverwenden. Wechselt er zu einer anderen Firma, so muß er plötzlich mit völlig neuen Bauteilen umgehen, da er seine eigenen Bauteile aus rechtlichen Gründen nicht mitnehmen darf, und die neue Firma wahrscheinlich ihre eigenen Bauteile verwendet.
Softwarefirmen leisten sich den Luxus der Exklusivität. In vielen Firmen werden eigene Code- und Klassenbibliotheken sowie Frameworks entwickelt. Der Aufwand dafür ist erheblich. Die Entwicklungszeit pracktisch einsetzbarer Klassenbibliotheken und Frameworks beträgt zumeist mehrere Mannjahre. Trotzdem sind diese „Schrauben“ nur innerhalb des eigenen Entwicklungsteams einsetzbar, außerhalb der Firma möchte keiner diese fremden Bauteile haben; man verwendet lieber die eigenen. Nun kommt diese Verhaltensweise der Softwarefirmen und ihrer Entscheidungsträger nicht von ungefähr. Es gab bisher keinen echten Bauteilemarkt für Software. Es gab und gibt zwar Programmcode- und Klassenbibliotheken zu kaufen, doch sind dies nicht wirklich Softwarebauteile. Ein Bauteil - wie eine Schraube - ist etwas fertiges. Es existiert, ist eindeutig spezifiziert, trägt eine Bezeichnung und hat oft ein klar umrissenes Einsatzgebiet. Man kann es bestellen, auspacken und einbauen.
1 Einleitung: Beschreibt die Entstehung des MASTER-Fahrzeugsimulators und den Anwendungsrahmen dieser Arbeit im Bereich der Lehr- und Forschungssimulation.
2 ActiveX: Erläutert die theoretischen Grundlagen von Softwarekomponenten, das Component Object Model (COM) und die spezifische Funktionsweise von ActiveX-Steuerelementen.
3 Erstellung eines ActiveX-Steuerelementes: Bietet einen praktischen Leitfaden für die Entwicklung und Implementierung von Steuerelementen unter Microsoft Visual C++.
4 ActiveX-Steuerelement MASTER_Seg7: Dokumentiert den Entwurf und die Implementierung einer Sieben-Segment-Anzeige zur numerischen Darstellung von Werten.
5 ActiveX-Steuerelement MASTER_Map: Behandelt die Entwicklung einer kartenbasierten Anzeige für Flugzeugpositionen inklusive der notwendigen Koordinatentransformationen.
6 ActiveX-Steuerelement MASTER_FlightScala: Beschreibt die Implementierung einer Skala zur zeitabhängigen Anzeige von Flugzeughöhen.
7 Applikation MASTER_Navigator: Fasst die Zusammenführung der entwickelten Komponenten zu einer voll funktionsfähigen Anwendung für den Simulator-Leitstand zusammen.
8 Zusammenfassung und Ausblick: Reflektiert die Ergebnisse der Diplomarbeit und gibt Anregungen für zukünftige Erweiterungen des Simulators.
ActiveX, C++, COM, Fahrzeugsimulator, Komponententechnologie, MASTER, Navigationsdisplay, Programmierung, Shared Memory, Softwarearchitektur, Softwarekomponenten, Steuerelemente, Visual C++, Wiederverwendung, WGS84-Koordinaten
Die Arbeit befasst sich mit der Entwicklung von wiederverwendbaren Softwarekomponenten auf Basis der ActiveX-Technologie, um einen modularen Fahrzeugsimulator in der Lehre und Forschung zu unterstützen.
Im Zentrum stehen die objektorientierte Programmierung mit C++, die Anwendung von Microsofts COM-Technologie für Steuerelemente sowie die Visualisierung von Flugdaten für einen Simulator.
Das Ziel ist die Implementierung eines Navigationsdisplays für den "MASTER"-Simulator, das als modularer Baustein verschiedene Flugparameter wie Höhe und Position anzeigt.
Es wird ein softwaretechnischer Ansatz gewählt, bei dem durch Kapselung und definierte Schnittstellen (ActiveX) die Interoperabilität und Wiederverwendbarkeit der Komponenten im Simulator-Umfeld sichergestellt wird.
Der Hauptteil gliedert sich in die theoretische Einführung in ActiveX, die detaillierte Anleitung zur Komponentenerstellung und die spezifische Implementierung der drei Steuerelemente für numerische Daten, Kartenansicht und Höhendiagramme.
Zu den wichtigsten Begriffen zählen ActiveX, C++, Komponentenarchitektur, Fahrzeugsimulator, Shared Memory und grafische Benutzeroberflächen.
Die Applikation MASTER_Navigator nutzt eine Shared Memory-Schnittstelle, über die sie die benötigten Flugdaten aus dem Simulator liest und verarbeitet.
Der Vergleich verdeutlicht das Defizit in der Softwaretechnik: Im Gegensatz zum Maschinenbau gibt es für Software kaum standardisierte, sofort einsetzbare "Bauteile", weshalb ActiveX hier als Lösungsansatz zur Standardisierung dient.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

