Benutzer-Werkzeuge

Webseiten-Werkzeuge


softwarebausteine:event-system

Event-System

Die Basis-Firmware enthält ein kleines Event-System, mit der eine lose Kopplung zwischen AddOn und dem BiDiB-Bus zur Versendung von Nachrichten und das Starten bestimmter Makros realisiert werden kann.

Ereignisverwalter

Zentraler Teil ist der Ereignisverwalter mit dem Modul event_handler in der Basis-Firmware. Das Modul wertet das für Events zuständige Fifo: event_fifo aus und agiert entsprechend.

Zum Auslösen eines Ereignisses wird das Fifo: event_fifo lediglich mit dem gewünschten Ereigniscode gefüllt. Per Taskverwaltung wird dann der „Event Handler“ informiert.

Ereignisse können die Werte 0x00 bis 0xFF annehmen.

Makro-Ereignisse

Der Bereich von 0x00 bis 0x7F ist für die interne Makroverwaltung reserviert.

Taster Ereignisse

Der Bereich von 0xF0 bis 0xFF ist für die Taster auf der Basis-Platine reserviert.

Keyboard-Ereignisse

Unter Keyboard-Ereignissen wird das Verstellen von externen Tastern oder anderen Schaltelementen verstanden.

Keyboard-Ereignisse liegen zwischen IN_DOWN0 (ab 0x80) und IN_DOWN15 sowie IN_UP0 und IN_UP15. Die Definition ist in der Definitionsdatei keyboard.h enthalten.

Diese Ereignisse können frei verwendet werden und lösen eine MSG_LC_KEY-Nachricht bei eingeschaltetem „Feature“ FEATURE_CTRL_INPUT_NOTIFY aus.

Zusätzlich wird für die Ereignisse IN_DOWN0 bis IN_DOWN15 das korrespondierende Makro gestartet, wenn das „Feature“ FEATURE_CTRL_MAC_START_MAN aktiviert ist.

Ereignis auslösen

Allein durch das Füllen des FiFos wird das entsprechende Ereignis ausgelöst: Im Beispiel nimmt den größten Teil die Umsetzungstabelle des Port-Bits in den Ereigniscode in Anspruch.

softwarebausteine/event-system.txt · Zuletzt geändert: 2014/09/01 12:34 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki