Struktur der µGL
Die µGL gliedert sich in verschiedene Schichten. Die Zielstellung dieser Mehrebenenarchitektur ist es, die Wartbarkeit, Flexibilität und Portabilität der Bibliothek sicher zu stellen. Die wichtigsten Trennlinien verlaufen zwischen dem HAL (Hardware Abstraction Layer), den Basispaketen für die Grafikprogrammierung und dem Laufzeitsystem für die Grafische Benutzeroberfläche (GUI).
Im UML Werkzeug SiSy findet sich die oben gezeigte Architektur in den folgenden Paketen wieder.
Dabei wird im Paket PecLcdHAL vor allem ein allgemeines Interface für LCDs und Touchsensorik abstrahiert, auf welchen die eigentlichen µGL-Klassen aufsetzen. Die Anbindung der Interfaces an eine konkrete Hardware wird über Pakete mit Gerätetreibern realisiert. In der obigen Darstellung sind es die Treiberpakete für den weit verbreiteten Grafikchip SSD1289 und speziell für den STM32F429i mit integriertem Grafikcontroller.
PecLcdHAL
PecLcd, portables abstraktes Interface für ein LCD-Display
Shape, portables abstraktes Grafikelement
Bitmap, repräsentiert pixelorientierte Bilddaten, ggf. mehrere Frames (Bildvarianten/Animationen) enthält
Geometrics
Rect, portable Klasse für ein Rechteck, left, top, width, height
Point, portable Klasse für einen Punkt, x, y
Ugl-Pakete
UglEvents
UglEventManager, Basisklasse für die Verwaltung und Auswertung von Events
UglEvent, Basisklasse für ein internes
GUI-Event
UglEventHandler, Basisklasse für einen Event-Empfänger
UglControls
UglControl, Basisklasse für
GUI-Elemente,
ist ein PecAppModul,
ist ein UglEventHandler,
UglTextField
UglCheckbox
UglText
UglButton
UglProgressBar
UglManagement
UglManager, Controller-Klasse für Design, Bildaufbau und Bildwechsel,
ist ein PecAppModule,
ist ein UglEventHandler
realisiert ein Layout
UglContainer, Basisklasse für einen Container (Screen mit
GUI-Elementen)
ist ein PecAppModule,
ist ein UglEventHandler
UglForm, Basis-Template für Containerinhalte
UglNavigator, Template für eine Navigationsleiste, Fußzeile
UglStatusBar, Template für eine Statuszeile, Kopfzeile, Titelzeile
UglPopup, Template für einen modalen Dialog, modalen Frame
UglPopupMsg, Template für eine modale Systemnachricht, MessageBox
UglTouch, Template für eine Touchdisplayabstraktion
uglLayout
uglLayout_3d_blue
uglLayout_3d_green
uglLayout_3d_gray
uglLayout_flat_blue
uglLayout_flat_green
uglLayout_flat_gray
…
UglCommons
Calibration, Standard-UglPopup zur Kalibrierung des TouchScreen
QwertzPad, Standard-UglPopup für eine QWERTZ-Tastatur, Modi:
NumPadStandard-UglPopup für eine Numerik-Tastatur
MsgBox, Standard-UglPopup für einen Systemhinweis
WaitMsg, Standard-UglPopup für unbestimmte Wartevorgänge
WaitProgress, Standard-UglPopup für Vorgänge mit bestimmbarem Fortschritt
Anwendung der µGL
Die Arbeitsweise mit den Bibliotheken wird im folgenden Anwendungsfalldiagramm verdeutlicht.
Der Entwickler benötigt eine Entwicklungsumgebung, in diesem Fall SiSy, evtl. einen FontDesigner und ein BitmapTool. Die fertige Firmware wird auf den Controller übertragen und kann dort getestet bzw. autonom verwendet werden.
Nächstes Thema
aufbau_der_ugl.txt · Zuletzt geändert: 2013/12/11 12:09 von huwi