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
    • ist ein UglContainer
  • 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:
      • Großschreibmodus
      • Kleinschreibmodus
      • Numerik-/Sonderzeichenmodus
    • 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