Anwendungssoftware und Klassen

Arbeitet das Board zur RGBA-Farbmischung in der zweiten Betriebsart, so wird die gewünschte LED-Farbe aus der Chromatizitäts-Tafel in der Chromatizitätswahl-Anwendung selektiert. Diese Tafel ist sowohl Teil der Desktop-Anwendung für RGBA-Farbmischung wie auch der entsprechenden Android-Anwendung. Die Anwendung berechnet die PWM-Tastverhältnis-Werte für Rot, Blau, Grün und Bernstein. Eine BLE-Verbindung überträgt diese Werte anschließend an das Board. Die Desktop-Anwendung wurde mit Hilfe von Visual Studio C#.NET entwickelt und folgt dem MVC-Prinzip (Model View Controller) mit verschiedenen Klassen.

Die RGBA-View-Controller-Klasse dient als GUI oder View Manager sowie als Controller für die Anwendung. Diese Klasse steht an der Spitze der Hierarchie zur Erstellung neuer Objekte und Klassen und bewirkt eine Dependency-Injektion. Zudem verarbeitet sie alle GUI-Ereignisse und ruft die passenden Methoden auf. Die RGBA-Calculation-Klasse übernimmt die Ermittlung, ob sich der gewählte Punkt innerhalb des RGB- oder des RGA-Dreiecks befindet oder außerhalb dieser Dreiecke, und berechnet für alle LEDs die Tastverhältnis-Werte der jeweiligen Farbkomponenten.

Eck-Daten

Die genaue Steuerung der Intensität von LEDs ist mit einem 16-Bit-PWM möglich. Eine RGBA-Farbmischung von LEDs lässt sich über eine Farbmischer-Platine mit kapazitiven Schieber-Bedienelementen zur Steuerung von Farbon und Helligkeit realisieren. Über ein BLE-4.1-Modul erfolgt die Datenkommunikation, damit Benutzer zur Ausgabe der gewünschten Farbe die PWM-Werte an das Board senden können. Die Farbe können Benutzer über eine Anwendung zur Chromatizitätsauswahl auf einem Windows-Desktop-Rechner oder über ein Android-basierendes Smartphone auswählen.

Die Matrix-3×3-Klasse implementiert alle mathematischen 3×3-Matrizen-Operationen wie Umkehrfunktion, Determinante, Transponierte, Co-Faktor und Multiplikation. Die Vektor-3-Klasse implementiert einen Spalten-Vektor der Größe 3 zum Einsatz in Matrizen-Berechnungen für die Matrix-3×3-Klasse. Ein kundenspezifischer Datentyp zur Speicherung der Tastverhältnis-Werte für alle Farbkomponenten ist die RGBA-Data-Klasse.

In der Wireless-Communications-Wrapper-Klasse umfasst die Schnittstelle sämtliche zur Implementation der RGBA-Farbmischung nötigen Methoden der drahtlosen Datenübertragung. Diese Schnittstelle lässt sich für beliebige drahtlose Datenübertragungsmethoden wie Bluetooth Low Energy und Bluetooth Classic nutzen. Die BLE-Datenübertragung erfolgt über die RN4020-PICtail-Karte als RS232-Datenkommunikation, wobei diese Schnittstelle für das RGBA-Board implementiert wurde.

Programmierer können eine neue Klasse zur Implementierung der drahtlosen Datenübertragung anhand von integrierten BLE-Bibliotheken in Visual Studio anlegen oder dazu Bibliotheken anderer Anbieter nutzen. Diese Schnittstelle entkoppelt die Implementierung der Datenkommunikation vom eigentlichen Controller. Will der Entwickler neue Kommunikationswege implementieren, so können die View-Controller-Klasse und andere Klassen unverändert bleiben.

Die RGBA-BLE-Datenkommunikation lässt sich über die RN4020-Device-Klasse implementieren, welche eine Wireless-Datenkommunikation über die Wrapper-Schnittstelle für BLE-Kommunikation auf dem RGBA-Board nutzt. Diese Aufgabe übernimmt eine PICtail-Karte, die über den UART- oder RS232-Port mit einem PC verbunden ist. So lässt sich eine serielle Datenkommunikation zum Versenden der Befehle für die BLE-Kommunikation aufbauen.

Die Bluetooth-Low-Energy-Information-Klasse speichert die grundlegenden Informationen über den Remote-Connectivity-Baustein: Namen, Adresse und den unterstützten Server-Dienst. Diese Informationen dienen zur Identifizierung und Verbindung mit einem Remote-Baustein. In der Search-Result-Delegate-Klasse verarbeitet der sogenannte Delegate das Ereignis der BLE-Klasse, sobald die Suche nach Geräten beendet ist und die Geräte für den Benutzer als Liste bereitstehen. Die für die Suchoperation erforderliche Zeit beträgt zehn Sekunden. In der Connection-State-Change-Delegate-Klasse verarbeitet der Delegate das Ereignis der BLE-Klasse, um zu bestimmen, ob die als Master dienende PICtail-Karte mit einem Remote-Baustein verbunden ist, und zeigt im positiven Fall den aktuellen Verbindungszustand an.

Die Constraints-Klasse speichert alle für die Anwendung benötigten Konstanten wie etwa die RN4020-Modulbefehle und -antworten, Dienste und charakteristische UUIDs. Auch die Java-Application-Klasse für das Android-Betriebssystem folgt eng dem MVC-Prinzip und nutzt Android-Aktivitätsklassen, die von der Struktur her denen der Desktop-Anwendung ähneln. Allerdings kommt für die Android-Anwendung die integrierte BLE-Hardware des Android-Smartphones zum Einsatz. Das Android-Betriebssystem umfasst alle erforderlichen Bibliotheken für die BLE-Datenkommunikation samt aller erforderlichen Ereignisse und Call Backs. Bis auf die GUI-Steuerelemente, die in einer XML-Datei anstelle einer Klasse definiert sind, ähnelt die RGBA-View-Activity-Klasse der View-Controller-Klasse auf einem Desktop-Rechner.

 

Seite 3 von 3123