![]() |
Dokumentation zur DFComDLL.dll / DFCom_x64.dll
04.03.05.00
|
Der C-Compiler dekoriert die in den Funktionsprototypen angegebenen Namen. Vor den Namen wird das Zeichen "_" gesetzt und an den Namen wird die Anzahl der übergebenen Parameter in Längen - Byte durch "@" getrennt angehängt. Zusätzlich zum Funktionsprototyp werden daher auch die dekorierten Namen angegeben. Sie werden z.B. bei Verwendung von Visual Basic oder Delphi zum Import benötigt.
Beim Arbeiten mit der DLL ist es unter Umständen hilfreich, das Tool "Depends" oder "Dependency Walker" einzusetzen. So können alle in der DLL vorhandenen Funktionen und die erwarteten Parameterbytes angezeigt werden. Dieses Tool ist im Umfang von Visual Studio 6.0 enthalten. Dieser Export ist weiter unten bei jeder Funktion angegeben.
Die Datei DFComDll.lib muss in den Projekteinstellungen bei den Optionen "Link" in Visual C++ Projekten bei den Objekt / Bibliothek-Modulen eingetragen sein und beim Kompilieren des Projektes im Projektverzeichnis liegen (oder in dem in den Einstellungen eingestellten Pfad). Bei der Programmierung in C++ kann die Headerdatei aus dem Beispielcode verwendet werden. Auch für Visual Basic ist ein Modul mit den notwendigen Exportangaben vorhanden.
Jeder Kanal verwaltet seinen eigenen Speicher für die 20 möglichen Listen. Für jede zu importierende Liste wird entsprechend ihrer Größe ein dynamischer Speicher reserviert. Mit der Funktion DFCClrListenBuffer werden alle reservierten Speicher im entsprechenden Kanal freigegeben.
Die Verarbeitung erfolgt in zwei Schritten. Zuerst wird der DLL interne Speicher durch einen Aufruf der Funktion DFCMakeListe für jede Liste mit Listendaten gefüllt. Danach werden die Listendaten durch Aufruf der Funktion DFCLoadListen in das Gerät übertragen. Zu beachten ist, dass alle im Setup definierten Listen nacheinander mit der Funktion DFCMakeListe in den Speicher der DLL übertragen werden. Durch Aufruf der Funktion DFCLoadListen werden dann alle zuvor importieren Listen auf einmal übertragen und alle entsprechend alten Listen im Gerät automatisch gelöscht.
Um eine einzelne Liste zu übertragen importieren Sie diese mit DFCMakeListe und übertragen sie dann mit DFCLoadListen. Die Funktion DFCLoadListen überträgt immer alle zuvor importierten Listen, egal ob eine oder mehrere.
Es ist nicht möglich einzelne Listen komplett zu entfernen. Dies geschieht lediglich nach Übertragung einer Setupdatei. Durch Aufruf der Funktion DFCMakeListe mit der Datensatzanzahl 0 wird die Liste in der DLL als Leere Liste importiert und durch Aufruf der Funktion DFCLoadListen wird diese dann übertragen.
Beschreibung wie die Listenübernahme der Firmware arbeitet. Die Listenübernahme des Setups ist je nach gewähltem Betriebsmodus "Normal, MDE" oder "PZE Modus 1, 2" leicht verschieden.
Nach übertragen einer oder mehrerer Listen, werden diese in folgenden Situationen übernommen:
Ein begonnener Menüeintrag (ob im Hauptmenü oder Untermenü) wird abgeschlossen, Das Gerät befindet sich im Menü (ob im Hauptmenü oder Untermenü) selbst. Listen für den Betriebsmodus "PZE Modus 1, 2" Zusätzlich zu den Situationen des Betriebsmodus "Normal, MDE", die hier auch gelten, kommt noch der einstellbare Tastentimeout dazu. Erfolgt keine Bedienung des Geräts für den eingestellten Tastentimeout, durchläuft das Gerät zwangsläufig das Hauptmenü und die Listendaten werden dadurch übernommen.
Nach übertragen einer oder mehrerer Zutrittslisten wird die Zutrittskontrolle gestoppt und die Listendaten in das System übernommen. Danach nimmt die Zutrittskontrolle ihren Betrieb wieder auf.
Nach übertragen einer oder mehrerer Listen für Timeboys, werden diese sofort übernommen, sofern nicht gerade eine Übertragung der bereits vorliegenden Listen in einen Timeboy aktiv ist. Dann wird die aktuelle Übertragung zuerst abgeschlossen bevor die neuen Listendaten übernommen werden.
Hier müssen immer alle definierten Listen des Setups importiert und übertragen werden.
Der DLL interne Puffer wird für jede "ComNum" getrennt geführt. Die Listendaten müssen daher auch für jede verwendete "ComNum" getrennt aufgebaut werden.
Wenn an einer "ComNum" mehrere Geräte angeschlossen sind, die unterschiedliche Listen benötigen, müssen die Listendaten vor der Übertragung zu der entsprechenden Busnummer, deren Gerät eine unterschiedene Listenstruktur hat, neu in den Puffer der DLL geladen werden.
Ablauf des Listenladen:
Alte Listen im Buffer mit "DFCClrListenBuffer" löschen. Neue Listen durch ein oder mehrfachen Aufruf von "DFCMakeListe" anlegen. Listen mit "DFCLoadListen" in das Gerät mit der entsprechenden Busnummer laden.
Testsoftware für die Listen liegt in folgenden Dateien bei:
"DllTest.exe" Einfaches Testprogramm um eine Liste in ein Gerät zu laden. "DllTestSource.zip" Quelldateien für das Testprogramm (Visual C++ 6.0). "AepTSetup.aes" Setupdatei für das Testprogramm (muss vor dem Test in das Gerät geladen werden!).
Die Testliste besteht aus den 3 Namen: Mueller, Maier und Schmidt mit den Personalnummern: 101, 102 und 103.