Analyse alternativer Konzepte zur Realisierung graphischer Anwendungen unter Windows Mobile



Ähnliche Dokumente
Qt-Projekte mit Visual Studio 2005

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

MetaQuotes Empfehlungen zum Gebrauch von

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Netzwerk einrichten unter Windows

Hex Datei mit Atmel Studio 6 erstellen

Übung: Verwendung von Java-Threads

25 Import der Beispiele

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

VB.net Programmierung und Beispielprogramm für GSV

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Bedienungsanleitung für den SecureCourier

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Starten der Software unter Windows XP

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Installation und Inbetriebnahme von Microsoft Visual C Express

Produktschulung WinDachJournal

Installation SQL- Server 2012 Single Node

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Installation älterer Programmversionen unter Windows 7

FTP-Server einrichten mit automatischem Datenupload für

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Urlaubsregel in David

Kapitel 1: Betriebssystem IX. W indows Explorer und der Arbeitsplatz Teil 2

! " # $ " % & Nicki Wruck worldwidewruck

Kurzanleitung zu. von Daniel Jettka

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Installationsanleitungen

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Anleitung zur Webservice Entwicklung unter Eclipse

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Step by Step Webserver unter Windows Server von Christian Bartl

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Firefox: Die Lesezeichen im Griff

Was muss gesichert werden? -Ihre angelegten Listen und Ihre angelegten Schläge.

Aber mancher braucht diese Funktionalität halt, doch wo ist sie unter Windows 8 zu finden?

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Wählen Sie bitte START EINSTELLUNGEN SYSTEMSTEUERUNG VERWALTUNG und Sie erhalten unter Windows 2000 die folgende Darstellung:

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Kommunikations-Management

PDF-Erzeugung mit PDFCreator (nur für Windows, installiert universellen PDF-Druckertreiber) v11/01

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Datei Erweiterungen Anzeigen!

PC-Umzug: So ziehen Sie Ihre Daten von Windows XP nach Windows 8 um

Starten der Software unter Windows 7

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Zugriff Remote Windows Dieses Dokument beschreibt die Konfiguration von Windows für den Zugriff auf

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

TeamSpeak3 Einrichten

Informationen zur Verwendung von Visual Studio und cmake

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

HTW-Aalen. OpenVPN - Anleitung. Eine Installations- und Nutzungsanleitung zu OpenVPN

Datensicherung. Beschreibung der Datensicherung

Sichern der persönlichen Daten auf einem Windows Computer

Anleitung. Einrichtung vom HotSync Manager für den Palm 1550 bis 1800 unter Windows 7. Palm SPT 1500 / 1550 Palm SPT 1700 / Bits & Bytes Seite 1

OUTLOOK-DATEN SICHERN

Rillsoft Project - Installation der Software

Anleitung zur Einrichtung eines Netzwerkes für den Gebrauch von GVService unter Windows 7

Tutorial: Wie kann ich Dokumente verwalten?

Installationsanleitung CLX.PayMaker Home

Anleitungen zum Publizieren Ihrer Homepage

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

QTTabBar Einrichtung, ein Tutorial

WordPress lokal mit Xaamp installieren

Tutorial -

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender FHNW, Services, ICT

Sicherer Datenaustausch mit EurOwiG AG

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Informatik I Tutorial

AdmiCash-Wiederherstellung auf einem neuen PC oder Betriebssystem

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Installationsanleitung. Update ATOSS SES 2.40 für Windows ATOSS Server

Mit jedem Client, der das Exchange Protokoll beherrscht (z.b. Mozilla Thunderbird mit Plug- In ExQulla, Apple Mail, Evolution,...)

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Installationsanleitung CLX.PayMaker Office

Anleitung ftp-zugang Horn Druck & Verlag GmbH Bruchsal

Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server?

Installationsanweisung Aktivierung für RadarOpus für PC s ohne Internetzugang (WINDOWS)

Verknüpfung zum Angebotsassistenten erstellen

Wie benutzt man TortoiseSVN

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

ELO Print&Archive so nutzen Sie es richtig

Windows 10 > Fragen über Fragen

Installation / Aktualisierung von Druckertreibern unter Windows 7

Leitfaden zur Installation von Bitbyters.WinShutdown

Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software

Tutorial Speichern. Jacqueline Roos - Riedstrasse 14, 8908 Hedingen, jroos@hispeed.ch -

Tipps und Tricks zur Installation von Java-basierten Programmen auf Handys

Wibu Hardlock Installation

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox

Anleitung. Für folgende Produkte: BeoSound 5 / BeoSound 5 Encore / DLNA Client Stereoanlagen

Transkript:

HS-Fulda Analyse alternativer Konzepte zur Realisierung graphischer Anwendungen unter Windows Mobile Hausarbeit im Rahmen der Lehrveranstaltung Grafisch-Interaktive Systeme Tim Kaehler 07.12.2008

Anhang2 INHALTSVERZEICHNIS 1.Einleitung...3 1.1.Windows Mobile... 3 2.Zusammenfassung...4 3.Die Konzepte (Entwicklungsdokumentation)... 5 3.1.DirectX Mobile... 5 3.2.OpenGL ES Immediate-Mode mittels C... 5 3.2.1.BeispielProgramm TouchBox... 6 3.3.OpenGL ES Retained-Mode Mittels Java M3G... 8 3.3.1.Funtionsweise und BeispielProgramm M3G Retained... 9 3.3.2.JBlend... 12 4.Anwendungsdokumentation... 14 4.1.openGL ES BeispielProgramm Touchbox... 14 4.1.1.Kontextmenü... 14 4.1.2.Angezeigtes Model... 15 4.2.Java M3G Retained Mode... 16 5.Quellenverzeichnis...17 6.Anhang...17 6.1.Aufandsschätzung... 17 6.2.Verwendete Hard-/Software... 18 6.3.Datenträgerstruktur... 18 6.4.Einrichtung der Entwicklungsumgebungen... 19 6.4.1.Visual Studio 2008... 19 6.4.2.Eclipse... 23

Anhang3 1. EINLEITUNG Im Zeitalter der Miniaturisierung, in der fast ganze PCs auf die Größe eines Mobiltelefons schrumpfen, spielen Anwendungen für eingebettete Systeme eine immer größere Rolle. Derartige Geräte wollen zwar über annähernd den gleichen Funktionsumfang verfügen, sind dabei aber in ihrer Leistungsfähigkeit aufgrund der Größe noch stark eingeschränkt. An dieser Stelle kommen speziell konzipierte Lösungen für eingebettet Systeme zum Tragen. Nachdem erste Möglichkeiten zur Darstellung dreidimensionaler grafischer Inhalte auf Mobiltelefonen und/oder sogenannten Smartphones entwickelt wurden, tat sich ein Problem deutlich hervor. Jeder Hersteller erstellte diese Lösungen proprietär nur für seine Plattform. So kam es, dass sich mehrere Menschen die an einer standardisierten Lösung interessiert waren einen bereits bestehen Standard namens OpenGL in seiner Funktionalität so reduziert haben, dass ein Standard für eingebettete Systeme entstand mit dem Namen OpenGL ES. Eine weitere Lösung die sich trotz ihrer Plattformabhängigkeit durchsetzen konnte nennt sich DirectX Mobile von Microsoft. Im Rahmen dieser Ausarbeitung möchte ich nun auf verschiedene Konzepte zur Entwicklung von Anwendungen im Bereich der 3D-Grafik unter dem Betriebssystem Windows Mobile eingehen. Der Schwerpunkt liegt hierbei auf dem Standard OpenGL ES. Da es sich um ein Microsoftprodukt handelt, wird auch DirectX Mobile kurz angeschnitten werden, aber als proprietäre Lösung hier keine weitere Rolle spielen. 1.1. WINDOWS MOBILE Mit dem Boom der mobilen Handgeräte entwickelten sich auch deren Betriebssysteme weiter. Zunächst hat jeder Hersteller von Mobiltelefonen sein eigenes Betriebssystem entwickelt, bzw. entwickeln lassen. Das erste Betriebssystem das von mehreren Herstellern genutzt wurde war Symbian OS. Mit wachender Komplexität und Leistungsfähigkeit der mobilen Handgeräte mussten schönere Betriebssysteme her, denn was gut aussieht verkauft sich auch gut. In diesen Markt mischte sich auch Microsoft und entwickelte Windows Mobile. Seit der Version 5.0 basiert dieses Betriebssystem komplett auf dem.net Framework. Hierbei ist zu beachten, dass das Framework für eingebettete Systeme in der kompakteren Version namens.net Compact Framework vorliegt. Die Versionen vor 5.0 bedienten sich sogenannter callback-programmierung im Rahmen C/C++.

Anhang4 2. ZUSAMMENFASSUNG Diese Ausarbeitung stellt, wie oben genannt, Konzepte zur Realisierung graphischer Anwendungen unter Windows Mobile vor. Das Dokument lässt sich darauf in vier Abschnitte Untergliedern. Der erste Abschnitt beschäftigt sich mit der Vorstellung der Konzepte und der Entwicklung nach diesen Konzepten. Außerdem wird zu jedem vorgestellten Konzept im Anschluss ein Beispielprogramm gezeigt und relevante Stellen erläutert. Auch kontextspezifische Inhalte (JBlend) werden in diesem Abschnitt abgehandelt. Der zweite Abschnitt stellt die Anwenderdokumentation dar. Hier wird erläutert, wie man die erstellten Programme bedient. Den vorletzten Abschnitt bildet das Quellenverzeichnis. Der letzte Abschnitt ist der Anhang, er enthält Informationen zu benutzen Entwicklungsumgebungen, deren Einrichtung und anderen Werkzeugen.

Anhang5 3. DIE KONZEPTE (ENTWICKLUNGSDOKUMENTATION) Im nun folgenden Abschnitt werde ich ausgewählte Konzepte zur Realisierung dreidimensionaler grafischer Anwendungen unter WindowsMobile vorstellen. 3.1. DIRECTX MOBILE Als erstes möchte ich die natürlichste Variante beschreiben 3D-Anwendungen für Windows Mobile zu entwickeln. Natürlichste deshalb, weil alle nötigen Werkzeuge und Bibliotheken perfekt aufeinander abgestimmt sind, da sie alle von Microsoft selbst kommen. Aus diesem Grund ist es relativ einfach 3D-Anwendungen zu programmieren. Der große Nachteil dieses Konzeptes ist, das es nur bedingt plattformunabhängig ist. Prinzipiell ist es überall dahin portabel, wo auch das.net Compact Framework und die DirectX Mobile Bibliothek lauffähig sind, aber das ist im embedded-bereich im Moment nur unter Windows Mobile selbst der Fall. Das ist auch der Grund warum DirectX Mobile im Rahmen dieser Ausarbeitung nicht im Detail analysiert wird. Um also in diesem Umfeld 3D-Grafikanwendungen zu entwickeln ist folgendes nötig: - Visual Studio ab der Version 2005 -.NET Compact Framework ab der Version 2.0, besser 3.5 - Das zur Version von Windows Mobile gehörige SDK (enthält DirectX, ab der Version 5.0) - Empfehlenswert, aber meistens in die IDE integriert sind Emulatoren zum Testen. Sind diese Komponenten installiert kann ohne weitere Hindernisse Software im Rahmen von 3D-Grafikanwendungen programmiert werden. Zu erklären wie genau DirectX zu Programmieren ist macht sich diese Ausarbeitung jedoch nicht zur Aufgabe. 3.2. OPENGL ES IMMEDIATE-MODE MITTELS C In diesem Abschnitt wird das Konzept des Immediatemode von OpenGL ES unter Windows Mobile anhand eines anschaulichen Beispieles vorgestellt. Dabei handelt es sich um die Methode 3D-Grafiken auf Vertex-Ebene zu realisieren. Als Implementierung von OpenGL ES stehen mehrere Möglichkeiten zur Verfügung:

Anhang6 - vincent ES - Hybrid Rasteroid - PowerVR Hybrid Rasteroid wird nicht mehr weiterentwickelt, weshalb diese Implementierung hier nicht vorgestellt wird. PowerVR ist zwar für Bildungszwecke frei, nicht aber für den kommerziellen Gebrauch. Die Wahl fällt also auf die vincent ES Implementierung, welche komplett frei ist und noch immer weiterentwickelt wird. Was nun noch benötigt wird ist eine Entwicklungsumgebung. In diesem Beispiel wird Visual Studio 2008 zum Einsatz kommen. Wie die Bibliotheken eingebunden werden und man die IDE einrichtet wird im Anhang erläutert. Ergänzend zur opengl ES Implementierung wird auch noch eine glut ES Implementierung verwendet, welche die opengl ES Implementierung benutzt um die GLUT des normalen opengl so gut wie möglich, im Bereich der mobilen Handgeräte, zu ersetzen. Der große Vorteil der glut ES ist, dass der Code ähnlich wie für opengl entwickelt werden kann. Im nun folgenden Beispielprogramm wird das deutlicher. 3.2.1. BEISPIELPROGRAMM TOUCHBOX Dieser Abschnitt zeigt nun ein konkretes Beispiel. Es stellt einige, für mobile Handgeräte spezifische, Vorgehensweisen unter OpenGL ES dar. Abbildung 1 In Abbildung 1 sieht man die ersten 4 Zeilen des Beispielprogramms. Die #define-direktive definiert das Macro GLUTES_STATIC. Es zeigt dem Präprozessor an das die statische Bibliothek der glut ES beim Übersetzten genutzt werden soll. Die #include-direktiven sind ohne weiteres so realisierbar, weil der IDE mitgeteilt wurde wo sie danach suchen soll. Die nächste Abbildung 2 zeigt den ersten Spezialfall, diese Funktion wird in der main- Funktion mittels glutspecialfunc(devicekeys) als callback-funktion für Spezialtasten des mobilen Handgerätes registriert. Somit lassen sich alle Tasten des Gerätes ansteuern bzw. abfangen und im callback auswerten. Die zweite Besonderheit ist hier das Simulieren eines Mausklicks. Wie im Kommentar beschrieben, kann man auf dem Touchpanel nur Linksklicks auslösen. Um dennoch die Menüfunktionalität nutzen zu können, simuliert eine Taste den

Anhang7 Mausklick. Dies ist notwendig, da man der glutattachmenu(button) nur Mausknöpfe übergeben kann. Außerdem lassen sich mit der glutsimulatebutton() auch die Position des Abbildung 2 Klicks auf dem Touchpad festlegen. In diesem Beispiel wurde x=0 und y=0 gewählt, somit erscheint das Menü in der linken oberen Ecke. Die letzte spezielle Funktion ist die motion-funktion. Diese gibt es in dem Sinne auch für die normale GLUT, sie wird als callback-funktion mittels glutmotionfunc(motion) in der main- Funktion registriert. Der Unterschied ist, dass in diesem Fall das Touchpanel angesprochen wird. Abbildung 3 zeigt die Funktionalität im Einzelnen.

Anhang8 Abbildung 3 3.3. OPENGL ES RETAINED-MODE MITTELS JAVA M3G Dieser Abschnitt beschäftigt sich mit dem Retained-Mode von OpenGL ES mittels der M3G- Bibliothek von JavaME. Das Besondere an diesem Unterfangen ist, das es von SUN keine offizielle KVM für Windows Mobile gibt. Aber es gibt einige proprietäre Lösungen für spezielle Gerätetypen. Glücklicherweise gibt es auch eine Lösung die mit einem Emulator kompatibel ist und damit auch mit mehreren Windows Mobile Geräten kompatibel sein dürfte. Diese KVM heißt JBlend und kann im Internet heruntergeladen werden (URL: http:// melgurth.ovh.org/files/java/jblend.cab). Es handelt sich um eine cab-datei, sie kann also einfach unter Windows Mobile angeklickt werden um die Installation zu starten. Als Entwicklungsumgebung wird in diesem Fall Eclipse dienen. Weiterhin wird noch ein Plugin für die Programmierung im Bereich JavaME benötigt und das Wireless Toolkit 2.5.2 for CLDC oder höher. Wie dies alles seinen Platz in der IDE findet ist im Anhang beschrieben.

Anhang9 Kern dieses Konzeptes ist es einfache JavaME Programme mit der M3G Erweiterung unter Windows Mobile ausführbar zu machen. Dabei läuft die Programmierung so ab, als würde man für ein Betriebssystem das Java unterstützt, programmieren. Die Ausführbarkeit des Bytecodes gewährleistet dann die KVM, in diesem Falle JBlend, welchen nach dem Beispielprogramm noch einmal kurz erläutert wird. 3.3.1. FUNTIONSWEISE UND BEISPIELPROGRAMM M3G RETAINED Das Besondere bei diesem M3G-Programm ist, dass hier ein Szenegraph zum Einsatz kommt. Es müssen also keine Vertex Arrays mehr angelegt werden, denn das übernimmt M3G. Man arbeitet also auf einer höheren Abstraktionsebene. Diese Szenegraphen können dadurch sehr einfach eingebunden und animiert werden. Besonders geeignet für animierte Inhalte ist die Klasse GameCanvas, auf deren Benutzung ich hier kurz eingehen möchte. Abbildung 4 zeigt einen Codeausschnitt der Anwendung. Mit den wichtigsten Datenfeldern für eine kleine Animation. Der entscheidende Unterschied zur normalen Canvas-Klasse ist, das es erweiterte Möglichkeiten gibt das Drücken von Tasten abzufangen. Außerdem muss hier die paint-methode nicht zwingend überschreiben werden, stattdessen wird das Interface Runnable implementiert und die Routinen zum Zeichnen in die run-methode geschrieben. Um unter Windows Mobile Tastendrücke abzufangen, sollte diese Klasse verwendet werden. Zwar kann es passieren, dass das KeyEventHandling der normalen Canvas-Klasse greift, dies ist aber nicht immer gewährleistet. Deshalb wird es auch im Konstruktor deaktiviert. So kann man auf die erweiterte Funktionalität der GameCanvas- Klasse zurückgreifen. Womit auch garantiert ist, dass die KeyEvents richtig behandelt werden.

Anhang10 Abbildung 4 Den Kommentaren sind die Funktionen der einzelnen Datenfelder zu entnehmen. Ich möchte aber an dieser Stelle genauer auf die Deklaration der Knöpfe eingehen und noch einmal auf den Aufruf super(true) aufmerksam machen, welche das herkömmliche Eventhandling für die Eingabe über Tasten am Handgerät deaktiviert. Die Konstanten LEFT und RIGHT stellen lediglich Indizes dar für das Array key, welches einen Wahrheitswert entspricht, dieser Wert entspricht dem Umstand, ist die Taste gedrückt oder nicht. Abbildung 5 zeigt die Vorgehensweise zur Identifizierung aller gedrückten bzw. nicht gedrückten Knöpfe am Gerät.

Anhang11 Abbildung 5 Erfolgt das KeyEventHandling auf diese Art und Weise, ist gewährleistet, dass die Tasten auch in Windows Mobile Umgebung richtig interpretiert werden. Für die richtige Interpretation ist natürlich nicht Windows Mobil selbst verantwortlich, sondern die KVM. Diese muss dann die Signale vom Gerät richtig an das Programm weitergeben, was auf die eben beschriebene Art sicherer und schneller ist.

Anhang12 3.3.2. JBLEND JBlend stellt in diesem Beispiel eine Schnittstelle zur Verfügung, um die so genannten MIDlets unter Windows Mobile ausführbar zu machen. Dabei stellt JBlend eine Applikation dar, die von der Application Management Software von Windows Mobile verstanden wird und ausgeführt werden kann. Diese Applikation stellt dann die Umgebung dar in der die Java MIDlets lauffähig sind, da sie alle nötigen Bibliotheken und Laufzeitumgebungen enthält um Javaapplikationen auszuführen. Abbildung 6 [APLIX] Abbildung 6 zeigt den eben beschrieben Aufbau sehr schön. Zu erkennen ist auch die Box JSR Extension. Damit zeigt JBlend an, dass zum einen hier der Platz für die vielen Erweiterungen ist, z.b. auch das hier genutzte M3G, zum anderen können immer weitere Erweiterungen aufgenommen werden. JBlend an sich ist nur ein Entwurf, ein Muster nach dem vorgegangen werden kann um Java Anwendungen auf Mobilen Systemen verfügbar zu machen. Die Implementierung erfolgt für

Anhang13 jede Plattform anders. Sowohl die genutzte Programmiersprache als auch die Komplexität des Projekts kann hier variieren Die hier vorgestellte Edition von JBlend ist die micro-edition. Sie ist speziell darauf ausgelegt in fertige Hardware mit fertigem Betriebssystem eingebettet zu werden. Also genau das was auf Mobile Handgeräte mit installiertem WindowsMobile zutrifft.

Anhang14 4. ANWENDUNGSDOKUMENTATION Die Anwendungsdokumentation soll Helfen die Beispielprogramme und vor allem das WindowsMobile Handgerät zu bedienen. In diesem Abschnitt werden noch einmal alle Prinzipien die schon in der Entwicklungsdokumentation vorgestellt wurden für den Endanwender beleuchtet. 4.1. OPENGL ES BEISPIELPROGRAMM TOUCHBOX Kontextmenü Angezeigtes Model Richtungstasten Abbildung 7 4.1.1. KONTEXTMENÜ Über das Kontextmenü kann der Benutzer zum einen über die Schaltfläche Quit das Programm beenden. Zum anderen kann über die Schaltfläche Model ein Untermenü aufgerufen werden, welches dann aufzeigt was für weitere Modelle dargestellt werden können, nämlich:

Anhang15 - Box (Würfel) - Square (Quadrat) - WireSphere (Drahtgitter Kugel) Aufgerufen wird das Kontextmenü durch das betätigen der Richtungstaste nach Oben. Hintergrund ist, dass es bei derartigen Handgeräten keine rechte Maustaste gibt. Das Menü bei einem Linksklick sichtbar zu machen ist auch nicht sinnvoll, denn jede Berührung des Touchsrceens entspricht einem Linksklick. Deshalb wird hier zum öffnen des Kontextmenüs eine Taste benutzt. 4.1.2. ANGEZEIGTES MODEL In der Mitte des Bildschirms wird das Model angezeigt. Dies Stellt sozusagen den Kern der Anwendung dar. Führt man das Beispielprogramm auf einem Emulator aus so wie hier, dann stellt die Maus auf dem Touchscreen mit gedrückter linker Maustaste das gleiche dar, wie auf einem tatsächlichen PockentPC/PDA mit dem dafür vorgesehenen Stift auf dem Touchscreen umherzufahren. Und auf genau diese Weise lässt sich die Kernfunktion des Programms ausführen. So kann man dann nämlich den Würfel in alle Richtungen drehen. Für eine vertikale Drehung muss also entweder der Stift oder die Maus mit gedrückter linker Maustaste auf dem Touchscreen in vertikaler Richtung bewegt werden. Horizontal funktioniert äquivalent.

Anhang16 4.2. JAVA M3G RETAINED MODE Richtungstasten Abbildung 8 logo von [WERDER] Hier sind nur die Richtungstasten von Bedeutung speziell Rechts und Links. Denn hier wird das Problem des Eventhandling für Knöpfe am Handgerät verdeutlicht und gelöst. Beweis dafür ist, dass die Knöpfe genau das machen, was sie sollen. Startet man die Applikation sieht man zunächst was auch in Abbildung 8 zu sehen ist. Mit den Knöpfen Rechts und Links der Richtungstasten kann nun die Richtung bestimmt werden, in welche sich das Objekt drehen soll.

Anhang17 5. QUELLENVERZEICHNIS 1. [APLIX] http://www.aplixcorp.com/en/products/jb_micro/overview.html Übersicht über JBlend Micro + Abbildung 2. [ZEUS] http://www.zeuscmd.com/tutorials/opengles/index.php opengl ES Tutorial mit Vincent Implementierung 3. [GLUTES] http://glutes.sourceforge.net/ GLUT für opengl ES 4. [KHRONOS] http://www.khronos.org/opengles/1_x/ Spezifikation und weitere Informationen zu opengl ES 5. [DEFGUIDE] http://forum.xda-developers.com/showthread.php?t=334134 Hier werden einige auch ältere KVMs für WindowsMobile vorgestellt. 6. [M3G]http://developer.sonyericsson.com/site/global/techsupport/tipstrickscode/mo bilejava3d/p_java3d_tutorial_part1_compliments_redikod.jsp M3G Tutorial mit GameCanvas 7. [VINC] http://www.vincent3d.com/ Homepage der Vincent Implementierung 8. [WERDER] M3G Mobile 3D Graphics API, Eine Ausarbeitung im Rahmen des berufspraktischen Semesters (BPS) von Jeronimo Werder unter der Betreuung von Prof. Dr. Heinzel Dieser Arbeit entnahm ich einige Informationen zu M3G und das modellierte Hochschullogo 6. ANHANG 6.1. AUFANDSSCHÄTZUNG Einarbeitung Recherchen im Internet 5 Durcharbeiten relevanter Tutorials 15 experimentelles Einrichten der IDE VS2008 20 experimentelles Einrichten der IDE Eclipse 2 Lesen und verstehen fertiger Beispielprogramme 5

Anhang18 Programme Touchbox (VS2008) 12 M3G Retained 9 Ausarbeitung Enwicklungsdokumentation 10 Anwenderdokumentation 2 Anhang 10 Präsentation 9 Aufbereitung (Datenträger, Druck ) 2 Gesamtzeitaufwand: ca. 101 Stunden 6.2. VERWENDETE HARD-/SOFTWARE Die Programmierung wurde auf einem DesktopPC AMD X2 5200+ mit Windows Vista durchgeführt. Als Entwicklungsumgebung dienten Visual Studio 2008 und Eclipse. Getestet wurde die Software unter Visual Studio 2008 mit dem Windows Mobile 6.1 Professional Emulator bzw. die M3G Anwendungen vor der Portierung nach Windows Mobile, mit den Emulatoren des WTKs von SUN. Für die Dokumentation an sich wurde MS Word 2007 genutzt, für das Zurechtschneiden der Bilder MS Paint. 6.3. DATENTRÄGERSTRUKTUR cd:\ausarbeitung cd:\ausarbeitung\bilder cd:\programme cd:\programme\java enthält die Ausarbeitung und Folien enthält alle Bilder aus der Ausarbeitung und den Folien enthält die Beispielprogramme M3G Retained Beispielprogramm + Quellcode cd:\programme\java\m3gretained\deployed enthält übersetzte.jar und.jad cd:\programme\c cd:\downloads Touchbox Beispielprogramm + Quellcode Enthält alle heruntergeladenen Dateien die relevant für die Programmierung sind

Anhang19 cd:\quellen enthält Offlineversionen aller genutzter quellen 6.4. EINRICHTUNG DER ENTWICKLUNGSUMGEBUNGEN 6.4.1. VISUAL STUDIO 2008 Die Wahl der IDE fällt auf Visual Studio 2008, aufgrund der Integration von Emulatoren, die das Testen der Software sehr einfach möglich machen. Was im Vorfeld gebraucht wird: (alle notwendigen Dateien sind auch auf dem beigelegten Datenträger zu finden) - Windows Mobile 6 Professional SDK (oder 5, falls für 5.0 Programmiert wird) -.NET Compact Framework 2.0 oder höher - Windows Mobile 6 Professional Images (Emulatoren) - Software zur Datenübertragung zum Emulator oder Device o XP: ActiveSync 4.5 o Vista: Windows Mobile Device Manager Als nächstes müssen die Relevanten Dateien für die vincent ES Implementierung heruntergeladen werden. (URL: http://sourceforge.net/projects/ogl-es/). Relevant ist die Datei ogles-bin-1.0.0.zip. Diese enthält die nötigen header-dateien und Bibliotheken zum Programmieren mit OpenGL ES. Um die Programmierung noch äquivalenter zur Programmierung für den PC und dadurch vor allem einfacher zu machen stelle ich auch eine glut ES und glu ES Implementierung vor. Auch diese müssen zunächst heruntergeladen werden. (URL: http://glutes.sourceforge.net/). Von der glut ES wird das glutes-1.11-bin.zip Archiv benötigt, von der glu ES das glues-0.1.zip Archiv. Es ist empfehlenswert sich folgende Ordnerstruktur aufzubauen, da sich die header-dateien teilweise gegenseitig aufrufen: - res o vincelib kompletter Inhalt des ogles-bin-1.0.0.zip Archivs o glutes include GLES

Anhang20 o glues.c (aus dem glues-0.1.zip Archiv, Ordner Src ) o glues.h (aus dem glues-0.1.zip Archiv, Ordner Inc ) o glues_sin.h (aus dem glues-0.1.zip Archiv, Ordner Src ) o glutes.h (aus dem glutes-1.11-bin.zip Archiv Ordner Inc ) lib glutes_static.lib (aus dem glutes-1.11-bin.zip Archiv Ordner Lib ) Der Ordner res stellt jetzt unseren Ressourcen Ordner dar und wird am besten direkt im, von Visual Studio angelegten, Projektordner abgelegt. Ich habe mich für glutes_static.lib entschieden, da statische Bibliotheken zwar mehr Speicherplatz verbrauchen, aber effizienter in der Ausführung sind. Für welchen Typ von Bibliothek man sich entscheidet (ppcarmv4rel oder sparmv4rel), ist erst entscheidend, wenn man das Programm für ein tatsächliches Smartphone oder PocketPC übersetzen möchte. Für den Emulator ist das zumindest ab Windows Mobile Version 5.0 irrelevant. Da die glu ES-Bibliothek hier nur eine Hilfestellung für die glut ES-Bibliothek darstellt, können sie unbedenklich ins selbe Verzeichnis. Als nächsten Schritt gilt es der IDE zu sagen, wo sie die externen Bibliotheken und header- Dateien findet. Dazu muss zunächst ein neues Projekt erstellt werden. Dies geht über die Menüleiste: File New Project. Im darauf folgenden muss man die in Abbildung 9 sichtbaren Einstellungen vornehmen.

Anhang21 Abbildung 9 Man wählt also ein Win32 Smart Device Project der Sprache Visual C++, gibt einen Namen für das Projekt ein und klickt OK. Im darauf folgenden Dialog klickt man Next. Jetzt muss man das SDK für seine WindowsMobile Version auswählen. In diesem Beispiel wähle ich das Windows Mobile 6 Professional SDK und nehme alles andere aus der Box Selected SDKs heraus. Im nächsten Dialog setzt man das Häkchen bei Empty project setzen und klickt Finish. Nun existiert das Projekt, wie o.g. können wir nun den erstellten res Ordner in das Projektverzeichnis kopieren. Für gewöhnlich wird der in den Eigenen Dateien automatisch erstellt (Siehe Abbildung 9: Location). Jetzt muss in den Projekteinstellungen festgelegt werden, wo sich die einzelnen header- Dateien und Bibliotheken befinden. Dazu öffnen wir den Solution Explorer, sofern dieser noch nicht offen ist über die Menüleiste: View Solution Explorer. Im Solution Explorer muss das Projekt markiert werden (Achtung: Das Projekt, nicht die Solution). Anschließend werden wieder über die Menüleiste die Projekteigenschaften aufgerufen: Project Properties.

Anhang22 Abbildung 10 In Abbildung 10 ist ersichtlich, an welcher Stelle im Dialog nun die header-dateien eingebunden werden können. Hier müssen die beiden Include-Verzeichnisse (vincelib und glutes) aus der oben erstellten Ordner-Hierarchie ausgewählt werden. Jetzt fehlt noch das Einbinden der Bibliotheken. Dazu muss im gleichen Dialog links Linker angewählt werden. Dort gibt es einen Ähnlichen Eintrag namens Additional Library Directories. Hier zum einen der lib Ordner der glut ES angegeben und..\vincelib\bin\arm\debug wieder aus der oben erstellten Ordner-Hierarchie. Um das Programm nun auf dem Emulator laufen lassen zu können, muss jetzt noch eine dll- Datei an den Emulator übertragen werden. Dazu in der Menüleiste: Tools Device Emulator Manager klicken. Im darauf folgenden Dialog müssten alle verfügbaren Emulatoren aufgelistet sein, inklusive der dazu installierten. Es wird Windows Mobile 6 Professional Emulator mit einem Rechtsklick gewählt und im Kontextmenü Connect ausgewählt. Nachdem der Emulator gestartet ist wird nun nochmal mit Rechtsklick ausgewählt und das nun verfügbare Cradle angeklickt. Nun sollte sich das Programm zum Verwalten der Gräte automatisch öffnen. Unter XP wäre das ActiveSync, unter Vista: Windows Mobile Device Manager. Nun muss im jeweiligen Programm der Zugriff auf die Dateiverwaltung erreicht werden. Sobald man in der Lage ist Dateien an den Emulator zu übertragen, muss die Datei libgles_cm.dll aus dem Verzeichnis..\vincelib\bin\arm\Release in den Windows Ordner des Emulators kopiert werden. Damit die Datei nicht immer wieder neu in den Emulator kopiert werden muss, schließt man den Emulator und beantwortet die Frage, ob der Status gesichert werden soll mit ja. Zu

Anhang23 beachten ist, dass diese Datei jetzt nur auf diesem einen Emulator verfügbar ist, für jeden anderen muss die Prozedur wiederholt werden. Nun ist die IDE fertig eingerichtet und es kann programmiert werden. Um zukünftig programmierte Programme dann auszuführen genügt es in der Combobox TargetDevice ganz links, direkt unter der ersten Symbolleiste den präparierten Emulator auszuwählen, wenn er es nicht schon ist und F5 zu drücken. Es ist auch möglich, dass an dieser Stelle nochmal explizit nach dem Emulator gefragt wird. Ist das der Fall wählt man wieder den präparierten Emulator aus und klickt Deploy. 6.4.2. ECLIPSE Als Entwicklungsumgebung dient hier Eclipse, ebenfalls aus dem Internet beziehbar (URL: www.eclipse.org) Weiterhin wird das Sun Java Wireless Toolkit 2.5.2 for CLDC (WTK) oder höher benötigt (URL: http://java.sun.com/javame/downloads/index.jsp). Ist das WTK installiert, muss nur noch ein Plugin in Eclipse eingebunden werden. Dies geht über die Addon/Update/Plugin-Funktion von Eclipse. Einfach http://eclipseme.org/updates als Seite hinzufügen und installieren. Nun muss das Plugin noch richtig eingestellt werden. Über die Menüleiste: Window Preferences kommt man in die Eclipse-Einstellungen. Hier wählt man links J2ME und trägt unter WTK Root das Installationsverzeichnis des WTKs ein. Anschließend wählt man links den Unterpunkt Device Management und klickt rechts auf Import. Und trägt wieder das WTK Installationsverzeichnis ein, danach klickt man auf Refresh und zum Schluss auf Finish. Jetzt ist es Möglich bei neuen Projekten J2ME Midlet Suite auszuwählen, und damit ein solches zu erstellen. Zu beachten ist das die Hauptklasse Midlet erweitert. Um das Midlet zu starten muss noch in den Run Configurations eine neue Konfiguration für den Wireless Toolkit Emulator erstellt werden, wobei man im ersten Reiter bei Midlet den Namen der Klasse angibt die Midlet erweitert. Ich habe diese Anleitung bewusst kurz gehalten. Weil ich an dieser Stelle gerne auf eine sehr ausführliche Anleitung verweisen möchte, falls diese hier unzureichend ist. Und zwar handelt es sich um die Ausarbeitung M3G J2ME Mobile 3D Graphics API von Herrn Jeronimo Werder. Dort ist eine weitere Anleitung ab Seite 16 zu finden, die denselben Zweck erfüllt wie oben aufgeführte Anleitung.