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.