Benutzer-Werkzeuge

Webseiten-Werkzeuge


softwarebausteine:event-system

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
softwarebausteine:event-system [2014/03/09 09:52]
Michael
softwarebausteine:event-system [2014/09/01 12:34] (aktuell)
Zeile 1: Zeile 1:
 +==== 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:
 +{{:​softwarebausteine:​oc_event.jpg|}}
 +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 (Externe Bearbeitung)