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.
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.
Der Bereich von 0x00 bis 0x7F ist für die interne Makroverwaltung reserviert.
Der Bereich von 0xF0 bis 0xFF ist für die Taster auf der Basis-Platine reserviert.
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.