Eigene Anpassungen des User-Plug-ins

<< Click to Display Table of Contents >>

Navigation:  Plug-ins > User-Plug-ins > User-Plug-in erstellen >

Eigene Anpassungen des User-Plug-ins

 

Für die Anpassung des neu erstellten Plug-ins stehen verschiedene Dateien zur Verfügung. Einige davon sind die Folgenden:

 

Datei

Beschreibung

MeinPluginDll.def

Auflistung aller Export-Funktionen

MeinPluginDll.h und MeinPluginDll.cpp

Implementierung der Plug-in-Funktionalität

MeinPluginDlg.h und MeinPluginDlg.cpp

Implementierung des Plug-in-Fensters (Dialog)

 

 

Erläuterung der Dateiinhalte

 

MeinPluginDll.def:
In dieser sogenannten Moduldefinitionsdatei müssen die Bezeichnungen aller notwendigen und optionalen Export-Funktionen aufgelistet sein. Näheres zu notwendigen und optionalen Export-Funktionen ist im folgenden Kapitel „Export-Funktionen“ verzeichnet.

MeinPluginDll.h und MeinPluginDll.cpp:
In diesen Dateien ist die Klasse CMeinPluginApp definiert. Sie kapselt die Applikationsklasse des Plug-ins, von der es nur eine einzige Instanz gibt. Implementierung der gewünschten Plug-in-Funktionalität vorgesehen. Sie erzeugt ein Objekt der Dialogklasse CMeinPluginDlg und zeigt es an. Durch diese Instanz kann von hier aus auf das Fenster zugegriffen und dieses zur Anzeige gebracht werden.

Des Weiteren müssen in MeinPluginDll.cpp (unabhängig von der Klasse CMeinPluginApp) die Export-Funktionen implementiert sein.

MeinPluginDlg.h und MeinPluginDlg.cpp:

In diesen Dateien ist die Dialog-Klasse CMeinPluginDlg definiert. Sie repräsentiert das Dialog-Fenster und beinhaltet somit alle in diesem Fenster enthaltenen Steuerelemente und die zugehörige Funktionalität.

 

Export-Funktionen

Die folgenden Tabellen enthalten alle Export-Funktionen. Notwendige Export-Funktionen sind unabdingbar für User-Plug-ins. Ohne diese kann das Plug-in nicht von CanEasy geladen werden. Optionale Export-Funktionen können, sofern der Plug-in-Entwickler keine Verwendung dafür findet, weggelassen werden.

 

notwendige Export-Funktionen

Bezeichnung

Beschreibung

DLL_dwGetAPIVersion

Dient der CanDll zur Überprüfung der Kompatibilität. Der Inhalt dieser Funktion darf nicht verändert werden. Der Aufruf erfolgt einmalig vor dem Aufruf der Funktion DLL_vInit.

DLL_vInit

Wird nach dem Laden des Plug-ins aufgerufen. Hier können Initialisierungen des Plug-ins vorgenommen werden.

DLL_vDeInit

Wird vor dem Entladen des Plug-ins aufgerufen. Hier können Deinitialisierungen vorgenommen werden, z.B. Freigabe von allokierten Speicher.

DLL_vStart

Wird bei jedem Start der Simulation aufgerufen. In dieser Funktion können z.B. Werte auf ihren Initialzustand zurückgesetzt werden.

DLL_vStop

Bei Stoppen der Simulation wird diese Funktion aufgerufen. Hier können z.B. Aktualisierungstimer wieder angehalten werden.

 

 

optionale Export-Funktionen

Bezeichnung

Beschreibung

DLL_iPreTranslateMessage

Filtert Meldungen, bevor diese an TranslateMessage und DispatchMessage gesendet werden. Kann z. B. für die Verarbeitung von Tooltips verwendet werden.

DLL_vOnIdle

Zur Ausführung von Aktionen in der Leerlaufzeit (d.h. wenn keine Fenster-Nachrichten zu verarbeiten sind).

DLL_iOnEvent

Zur Reaktion auf Ereignisse. Ein Ereignis ist beispielsweise ein Mausklick auf den Eintrag des Plug-ins im Baum. Auch die Behandlung eines eigenen Kontextmenüs kann hierüber gesteuert werden.

DLL_iOnSave

Kann zum Speichern von Einstellungen im Arbeitsbereich genutzt werden. Die Funktion wird aufgerufen, wenn der Benutzer „Speichern“ oder „Speichern unter…“ in CanEasy aufruft.

DLL_iOnLoad

Wird aufgerufen, wenn der Benutzer einen Arbeitsbereich lädt. (z.B. beim Start von CanEasy oder beim manuellen Laden eines Arbeitsbereichs)
 

Achtung: Hier muss auf jeden Fall die Versionsnummer ausgewertet werden, die der Funktion als Parameter übergeben wird. Nur so kann ein User-Plug-in sicherstellen, dass die Kompatibilität zu anderen Arbeitsbereichen immer gewährleistet bleibt.

Es muss darauf geachtet werden, dass die gleiche Datenmenge ausgelesen wird, wie zuvor gespeichert wurde!

 
 

CAND-Schnittstellen

Zur Kommunikation zwischen Plug-in und CanEasy werden dem Plug-in-Entwickler einige Funktionen (die sogenannten CAND-Schnittstellen) zur Verfügung gestellt. Zur Nutzung dieser Funktionen muss die Header-Datei CandUserApi.h im Plug-in-Projekt eingebunden werden. Die Schnittstellen sind in ANSI-C geschrieben und können so mit vielen Software-Produkten verwendet werden.