Benutzer-Werkzeuge

Webseiten-Werkzeuge


addon_einbinden

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
addon_einbinden [2014/04/18 19:04] – [Baugruppen-Fähigkeiten (Features)] Michaeladdon_einbinden [2016/07/05 10:52] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 24: Zeile 24:
 **Da es sich "nur" um eine Konvention handelt, ist hier die Disziplin des Einzelnen gefordert!** **Da es sich "nur" um eine Konvention handelt, ist hier die Disziplin des Einzelnen gefordert!**
  
-Sollte in der Basis ein neues Flag verwendet werden, führen wir eine entsprechende Deklaration ein. Eine Doppelbenutzung durch ein AddOn, das der Konvention folgt, deckt der Compiler dann schnell auf.+Sollte in der Basis ein neues Flag verwendet werden, führen wir eine entsprechende Deklaration ein. Eine Doppelbenutzung durch ein AddOn, das der Konvention folgt, deckt der Compiler dann schnell auf. Sollte der Compiler eine Doppelbenutzung aufdecken, so kann man den 'konkurrierenden' Nutzer einfach ausfindig machen, wenn man vor //#error Port conflict A7// temporär ein //#define I_NEED_PORTA7 1234// setzt. Der Compiler zeigt dann die Stelle mit //previous define was here// an. 
 ===== AddOn-Hooks ===== ===== AddOn-Hooks =====
 Die Basissoftware enthält definierte "Hooks", um die Software der AddOns einzubinden. Die Basissoftware enthält definierte "Hooks", um die Software der AddOns einzubinden.
Zeile 76: Zeile 77:
 {{:codehilfe:oc_get_feature_index.jpg| }} Mit Hilfe dieser Funktion erhält man über die in ''bidib_messages.h'' vorgegebenen Features den Index auf die interne Tabelle. Ist das Feature ungültig bzw. steht es nicht in der tabelle, wird -1 geliefert, andererseits der Index. {{:codehilfe:oc_get_feature_index.jpg| }} Mit Hilfe dieser Funktion erhält man über die in ''bidib_messages.h'' vorgegebenen Features den Index auf die interne Tabelle. Ist das Feature ungültig bzw. steht es nicht in der tabelle, wird -1 geliefert, andererseits der Index.
  
-{{:codehilfe:oc_get_feature_index_value.jpg |}} Mit dem oben erhaltenen Index wird mit dieser Funktion der Wert des Features gelesen.+{{:codehilfe:oc_get_feature_index_value.jpg |}} Mit dem oben erhaltenen Index wird mit dieser Funktion der Wert des Features gelesen. Diese Funktion sollte nur aufgerufen werden, wenn der oben erhaltene Index größer oder gleich 0 ist. 
 + 
 + 
 +Wenn ein Host-System eine Nachricht vom Typ: ''MSG_LC_CONFIG_SET'' abschickt, wird die Funktion ''config_sport_addon'' aufgerufen: 
 +{{:codehilfe:oc_config_sport_addon.jpg|}} 
 +Soll die Anfrage unterstützt werden, sind die entsprechenden Informationen des SPORT-Accessorys mit den übergebenen Informationen zu setzen und ''1'' zu liefern. Anderenfalls reicht die Rückgabe einer ''0''.
  
 +Analog wird verfahren, wenn ein Host-System mit der Nachricht: ''MSG_LC_CONFIG_GET'' die SPORT-Eigenschaften anfordert, dann wird die Funktion ''addon_sport_query'' aufgerufen:
 +{{:codehilfe:oc_addon_sport_query.jpg|}}
 +Soll die Anfrage unterstützt werden, sind die angeforderten Angaben mit den entsprechenden Informationen des SPORT-Accessorys auszufüllen und ''1'' zu liefern. Anderenfalls reicht die Rückgabe einer ''0''.
  
 ==== EEPROM (CV-Daten) ==== ==== EEPROM (CV-Daten) ====
Zeile 216: Zeile 225:
     - ''addon_cv_data.h'' Inhalte festlegen     - ''addon_cv_data.h'' Inhalte festlegen
     - ''addon_cv_features.h'' Fähigkeiten festlegen     - ''addon_cv_features.h'' Fähigkeiten festlegen
-  - In ''addon.c/h'' Initialisierung (inkl. Power-Up) und "Shutdown" sowie Neustart veranlassen+  - In ''addon.c'' Initialisierung (inkl. Power-Up) und "Shutdown" sowie Neustart veranlassen 
 +  - In ''addon.c'' Anfragen zu Features verwalten
   - In ''addon_tasklist.h'' Tasks definieren   - In ''addon_tasklist.h'' Tasks definieren
   - In ''addon.c'' "Schlusswort" und Makrofunktionen sowie gfls. Eingangsschalter für Makros initiieren   - In ''addon.c'' "Schlusswort" und Makrofunktionen sowie gfls. Eingangsschalter für Makros initiieren
addon_einbinden.1397840692.txt.gz · Zuletzt geändert: 2016/07/05 10:47 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki