Dokumentation zur DFComDLL.dll
(Vers. 04.01.04)
Die DLL "DFComDLL.dll" stellt die grundlegenden Funktionen für die
Kommunikation über RS232 bzw. RS485 sowie TCP / IP zur Verfügung. Sie
wird ab Version 2.0.0 vom DatafoxStudioIV / AESetup zu 100% verwendet. Die vorhandenen AEIII+ Techniken wurden auf die
MasterIV Hardware übertragen, welche durch eine spezielle Initialisierungsroutine angesprochen werden kann.
|
Multithreading ist auf einem Kanalobjekt nicht erlaubt. Pro Kanal nur ein Thread !! |
|
Abbildung 1 |
Die Abb. 1 zeigt einen möglichen Hardwareaufbau mit Datafox - Geräten.
Dieses Beispiel soll der Verdeutlichung der Begriffe Kanal und Busnummer
dienen. Die Kanalnummer (ChannelID) ist vergleichbar mit
einem Straßennamen. Die Busnummer (DeviceID) ist
vergleichbar mit der Hausnummer eines Gebäudes (wird im RS485-Netzwerk
verwendet). Im abgebildeten Beispiel gibt
es insgesamt drei Kanäle (ChannelID's).
Ein Gerät der Abb.1 kann über folgende Wertangaben (Adresse) eindeutig identifiziert werden: |
Für das Gerät A lautet die Adresse: Kanal: 1, Busnummer: 1 |
Für das Gerät C lautet die Adresse: Kanal: 1, Busnummer: 3 |
Für das Gerät D lautet die Adresse: Kanal: 2, Busnummer: 1 |
Für das Gerät F lautet die Adresse: Kanal: 3, Busnummer: 254, IP: 192.168.123.2, Port: 8000 ** |
**(Sonderfall: Busnummer immer 254) |
Um Informationen an die Geräte zu schicken ist es notwendig, dass der jeweilige Kanal (ChannelID) zuvor geöffnet wurde.
In Analogie zum Strassenbeispiel würde dies geöffneten Bahnschranken entsprechen.
Es ist nicht notwendig jedes Mal den verwendeten Kanal (ChannelID) zu schließen, wenn die Kommunikation mit einem
Gerät beendet wurde (eine Bahnschranke wird ebenfalls nicht nach jedem durchgefahrenen Auto geschlossen). Die Kommunikationskanäle
können beim Start des Programms geöffnet werden (siehe 1.2 Exemplarischer Programmaufbau). Ein Schließen der Kommunikationskanäle
(ChannelIDs) ist normalerweise erst bei Programmbeendigung notwendig oder wenn es gewisse Situationen erfordern.
Notwendig ist das Schließen eines Kanals nach der Kommunikationsunterbrechung bei TCP/IP -Verbindungen, Modemverbindungen.
Die Kanalnummer (ChannelID) ist vergleichbar mit einem Strassennamen. Jedes Gerät gehört genau zu einem
Kommunikationskanal. Die Anzahl der möglichen Kanäle ist auf maximal 250 festgelegt (erlaubter Wertebereich: 1-250). Pro Kanal
ist eine Geräteanzahl (siehe Busnummer) von 1..n Einzelgeräten (Endgeräten) möglich.
Die maximale Anzahl n(max. sind 31 Geräte pro Kanal möglich) wird von dem gewählten Verbindungsschema (siehe Abb.1) bestimmt.
Tabelle
1 |
Verbindungsschema |
Verbindungsart |
von - auf |
max.
Anzahl
Geräte
pro
Kanal |
zu verwendende
Busnummern
bei
Funktionsaufrufen |
RS232
RS232  |
direkt |
RS232-RS232 |
n = 1 |
immer mit
254 !! |
RS232
RS485  |
über
Umsetzer |
RS232-RS485 |
n = 31 |
von 1 bis
31 |
TCP/IP
TCP/IP  |
direkt |
TCP/IP-TCP/IP |
n = 1 |
immer mit
254 !! |
TCP/IP
RS485
 |
über COM-Server |
TCP/IP-RS485 |
n = 31 |
von 1 bis
31 |
TCP/IP
RS232  |
über COM-Server |
TCP/IP-RS232 |
n = 1 |
immer mit
254 !! |
Die Busnummer (DeviceID) ist vergleichbar mit der Hausnummer eines Gebäudes. Diese Nummer wird zur Adressierung
eines bestimmten Gerätes benötigt. In RS485 Netzwerken (Bussystemen) benötigt jedes Endgerät eine eindeutige Nummer. Diese Nummer
(Busnummer) wird an jedem Gerät in dessen BIOS eingestellt. Die maximale Anzahl ist auf 31 Geräte begrenzt (erlaubte Busnummern: 1-31 und 254*).
|
Die Busnummer 254 hat eine besondere Bedeutung. Sie darf nicht in RS485 Netzwerken verwendet werden.
Über diese Busnummer ist jedes Gerät im RS232 Modus ansprechbar. Wenn kein RS485 Bus angesprochen
wird ist bei Funktionsaufrufen (wenn nötig) für die Busnummer (DeviceID) immer 254 anzugeben.
|
| Die Einstellung der Busnummer ist ab der Firmware Version 04.00.21 des PZE-MastersIV nur noch möglich: |
|
- wenn das Gerät mit der RS485 Option ausgestattet ist
- wenn im BIOS unter communication / interface die RS485 Kommunikation für das Gerät gewählt wurde.
|
Wird nicht die Kommunikationsart RS485 (ab der Firmware Version 04.00.21 des PZE-MasterIV) gewählt, ist die Busnummer des Gerätes automatisch 254. |

Abbildung 2
|
Das nebenstehende Schema
(Abb.2) zeigt eine mögliche Grundstruktur für ein Programm, für den in Abb.1
gezeigten Hardwareaufbau. Prinzipiell sollte ein
Programmierprojekt wie im nebenstehenden Schema aufgebaut sein.
Nach dem Start des Programms werden alle benötigten Kanäle (ChannelIDs) initialisiert.
Im Normalfall ist es völlig ausreichend wenn bei Beendigung des Programms
die geöffneten Kanäle (ChannelIDs) geschlossen werden. Nach der Initialisierung
der Kanäle können die Endgeräte beliebig oft angesprochen werden.
Eine erneute Initialisierung wäre nur im Falle einer Kommunikations-
unterbrechung notwendig. Hierzu ist der betroffene Kanal erst einmal
explizit mit der Funktion DFComClose zu schließen.
Erst nach dem Schließen des Kanals ist es zulässig mit einer
Initialisierungsfunktion diesen wieder zu öffnen.
Mit der Funktion
DFCGetComPort hat man zum Beispiel die Möglichkeit zu überprüfen
ob eine bestimmte Kanalnummer (ChannelID) bereits geöffnet wurde
(bzw. noch geöffnet ist).
Cpp Beispiel: Überprüfen ob der Kanal 2 geöffnet ist
if (DFCGetComPort( 2 ) != -1) {
printf("Kanal 2 bereits geöffnet.\n");
} else {
printf("Kanal 2 nicht geöffnet.\n");
}
|
|
Datum |
Version |
Änderungen |
08.12.01 |
1.1.0 |
Funktionen für Listen aufgenommen. |
26.01.02 |
1.1.c |
Fehler beim lesen von großen Datenmengen beseitigt. |
12.02.02 |
1.1.e |
Fehler beseitigt wenn im Gerät kein Datensatz.
Neu: Datum/Uhrzeit lesen. |
29.04.02 |
1.1.f |
Funktion DFCComSendInfotext aufgenommen. |
14.06.02 |
1.1.g |
Erzeugung der Log-Datei abgeschaltet. |
04.07.02 |
1.1.h |
Log-Datei kann mit den Funktionen DFCLogOn,
DFCLogOff
ein- / ausgeschaltet werden. |
09.09.02 |
1.1.i |
Datensatzbeschreibung und Listenbeschreibung aus dem Gerät
auslesen. |
09.10.02 |
1.1.j |
Prüfen ob Gerät erreichbar. Lesen der Seriennummer und übertragen
einer Setupdatei. |
Version 2 |
21.02.03 |
02.00.00 |
Kontrollierter Abschluss der ersten
Technik. Einleitung einer neuen Technik, mit Datensatzweisen lesen, Setupdaten aus Gerät lesen und
Rückruffunktion. |
24.02.03 |
02.00.01 |
Entfernen des Fehlers bei Setup
laden unter Win9X und WinMe. |
01.03.03 |
02.00.02 |
Unterstützung von Firmwareständen
unter FW 2.0. Auch alte Datensatztechnik. |
27.03.03 |
02.00.03 |
Abgleichen der Exportschnittstelle
zu Talk. Unterstützung von FW >= 3.0 |
13.05.03 |
02.00.04 |
Setzen und lesen der Globalen
Variablen durch DFCSetGlobVar und DFCGetGlobVar
hinzugefügt. |
20.05.03 |
02.00.05 |
Schließen, Zustandsabfrage und
öffnen des internen und der IOModule - Relais. Importieren und laden der
Listendaten für Zutrittskontrolle. |
11.06.03 |
02.00.06 |
Unterstützung von AESetup unter 02.00.00 |
15.07.03 |
02.00.07 |
Kommunikation mit alter Firmware
(V1.14) gefestigt. |
07.08.03 |
02.00.08 |
DFCComSetTime
überarbeitet. Parameter von Gerät bleiben nach manueller Änderung und
Setupeinspielung erhalten. |
11.08.03 |
02.00.09 |
Geräteparameter "Tastenton"
hinzugefügt, wobei die anderen vom Setupprogramm nicht einstellbaren
Parameter ab Firmwareversion 3.1.2 behalten werden. |
05.09.03 |
02.00.10 |
Die Funktion DFCComOpenIV
zum Ansprechen von MasterIV - Geräten hinzugefügt. |
12.09.03 |
02.00.11 |
Fehlermapping für PZE-MasterIV
überarbeitet. Überarbeitung der Funktion DFCSetupLaden
um die globalen Variablen durch die Setup - Daten mit standardwerten zu
belegen. (ab Setup V03.01.07) |
16.09.03 |
02.00.12 |
Bugfix von DFCSetupLaden
und Einbau von TCP/IP in DFCComOpenIV. |
17.09.03 |
02.00.13 |
Änderung um Firmwaredateien für
PZE-MasterIV über TCP/IP einzuspielen. |
29.09.03 |
02.00.14 |
DLL - Projekt auf Linux (SuSE 7.3)
portiert. |
24.10.03 |
02.00.15 |
Hindergrundloggen aller
Funktionsaufrufe eingeführt. |
08.12.03 |
02.00.16 |
DFCSetGlobVar
und DFCGetGlobVar für AESetup überarbeitet. |
29.01.04 |
02.00.17 |
Überarbeitung der DFCMakeEntranceList
und DFCLoadEntranceList - Funktionen,
da die Personalnummer im Personalstamm von 12 auf 13 Stellen erhöht
wurde. |
24.02.04 |
02.00.17 |
Erweiterung der Dokumentation um die
Funktionen DFCGetComPort und DFCSetComPort. |
29.04.04 |
02.00.18 |
DFCWrite,
DFCRead,
DFCUpload hinzugefügt und bei der Kommunikation mit den PZE-MasterIV -
Geräten die Größe der Datenpakete erhöht.
DFCGetVersionFirmware
hinzugefügt, wird unterstützt ab Firmware 04.00.19 |
20.07.04 |
02.00.19 |
Fehler bei interner Sortierung des
Zutrittspersonalstammes bereinigt.
Die Kanalklassenanzahl ist von 10 auf
250 erhöht worden.
Die Listendaten werden bei PZE-MasterIV ab FW
04.00.21 im Hintergrund geladen. |
08.10.04 |
02.00.20 |
Fehlerbereinigung; bei
unaufgeführten internen Kommunikationsversionsnummern, wurde immer der
Fehler (Gerät antwortet nicht) geliefert, obwohl der Befehl eigentlich
nicht vom Gerät unterstützt wurde.
Abfrage der Firmwareversion mit DFCGetFirmwareVersion
nun auch beim AEIII+ möglich.
DFCComInit
größer COM9 möglich. |
02.02.05 |
02.00.21 |
Die Funktion DFCGetFirmwareVersionFromFile
zum auslesen der Firmwareversion aus einer Gerätedatei hinzugefügt.
Bootloaderversion 2.2 wird unterstützt. |
18.02.05 |
02.00.22 |
Die Listengröße ist auf ca.
256kByte erhöht worden. Die Listendaten können in dieser Größe mit der
Funktion DFCMakeListe importiert werden. Beim
Einspielen der Listendaten mit DFCLoadListen
wird aufgrund der Firmwareversion eventuell der Fehler 13
zurückgeliefert, dann wird die Listengröße von der Firmwareversion
nicht unterstützt.
Die Funktionen DFCListBDatensatz, DFCListBFeld
wurden so überarbeitet, daß auch die Struktur der Zutrittskontrolllisten
Version 1 abgefragt werden kann.
|
02.03.06 |
02.00.23 |
Die Funktionen DFCReadRecord, sowie
DFCQuitRecord wurden nach aussenhin freigelegt. Die Funktionen DFCComCollectData
und DFCComGetDatensatz verwenden diese
intern und können durch diese ersetzt werden.
|
Version 4.1 |
Die Version 3.x und 4.0 wurden nicht
vergeben, damit eine Versionsgleichheit mit der aktuellen Firmware und dem
DatafoxStudioIV entsteht.
Die neuen Funktionen der Version 4.1 werden vom AEIII+ nicht mehr
unterstützt. |
27.06.06 |
04.01.01 |
Funktionen für die
Zutrittskontrolle Version 2 hinzugefügt:
DFCClearEntrance2ListBuffer, DFCMakeEntrance2List,
DFCLoadEntrance2List
Die Funktionen DFCListBDatensatz, DFCListBFeld
wurden so überarbeitet, dass auch die Struktur der Zutrittskontrolllisten
Version 1 / Version 2 abgefragt werden kann.
Die Funktionen DFCOpenTable, DFCCloseTable,
DFCSetFilter, DFCGetFilter,
DFCClearFilter, DFCSkip,
DFCSetField, DFCGetField wurden hinzugefügt um
auf Listenspalten zuzugreifen und deren Werte zu ändern.
|
11.08.06 |
04.01.02 |
Importierbare Listengröße für FW
04.00.xx wurde falsch bestimmt.
Der CallBack - Aufruf bei Verwendung der FW 04.01.xx wurde nicht bei jeder
Kommunikationsfunktion durchgeführt.
Die Listenspeicher für Standard- sowie Zutrittslisten werden dynamisch
verwaltet. Die Standard- sowie Zutrittslisten werden, wenn gefordert, vor
der Übertragung lexikografisch sortiert.
Die Funktion DFCComSendInfotext wurde
für den BDE- /MDE-MasterIV aktiviert.
|
13.12.06 |
04.01.03 |
siehe entsprechende Einträge im
Dokument "MasterIV, SoftwareVersionen Stand xxxx.xx.xx.pdf"
|
10.04.08 |
04.01.04 |
Erweiterung um die Funktionen DFCGetInfo, DFCEntrance2Identification,
DFCOpenComServerMode, DFCCloseComServerMode,
DFCFingerprintAppendRecord, DFCFingerprintGetRecord, DFCFingerprintDeleteRecord,
DFCMakeTimeboyList, DFCLoadTimeboyList, DFCClearTimeboyListBuffer.
Die Funktion DFCUpload zum einspielen der Firmwaredateien, akzeptiert (in Win32) spezielle Zip-Archive. Unter Linux kann ein Verzeichnis angegeben werden.
|
Die DLL ist die Schnittstelle zwischen einer Softwareanwendung und den AEIII+ / MasterIV - Geräten.
Alle die Geräte betreffenden Aufgaben werden von der Softwareanwendung an die DLL übergeben, dort verarbeitet und
gegebenenfalls an das anzusprechende Gerät weitergeleitet.
Behandlung von Datensätzen
Um Datensätze aus den Geräten zu lesen muss zuerst die jeweilige Kommunikationsschnittstelle mit einer der Funktionen
DFCComOpenSerial, DFCComOpenSocket (AEIII+) oder DFCComOpenIV (MasterIV)
erfolgreich initialisiert werden. Danach wird mit der Methode DFCComCollectData das Gerät mit der angegebenen Busnummer bekannt
gegeben und der erste Datensatz (oder alle Daten, je nach Firmwareversion) aus dem Gerät gelesen. Die Funktion DFCComGetDatensatz
bestätigt diesen zuvor durch DFCComCollectData ausgelesenen Datensatz, übergibt die Daten in den zur verfügung zu stellenden Datenpuffer und liest den ggf. nächsten
Datensatz aus dem Gerätespeicher aus. Dieser wird dann bei dem nächsten Aufruf von DFCComGetDatensatz quittiert und in den Datenpuffer übergeben. Auf
diese Weise werden durch folgeaufrufe der Funktion DFCComGetDatensatz einzelne Datensätze aus dem Gerät an die Anwendung übergeben. Nach Ausführung
aller benötigten Kommunikationsbefehle, muss mit der Funktion DFCComClose die Kommunikationsschnittstelle wieder geschlossen werden.
Es kann während der Kommunikation kein Datensatz verloren gehen, bei einer
Störung während der Kommunikation kann es jedoch vorkommen das ein Datensatz
zweimal ausgelesen wird (Aussage gilt für Firmwareversion > 2.0).
Die
Datensätze werden ab der Firmwareversion 03.01.20 beim AEIII+ sowie 04.00.21
beim PZE-MasterIV in der chronologischen Reihenfolge geliefert.
Anmerkung zur Datensatz- und Listenbeschreibung (Tabellendefinitionen)
Es können gleichzeitig mehrere Verbindungen, so genannte Kanäle, unter verwendung verschiedenen Schnittstellen
aufgebaut werden. Für jeden Kanal wird ein eigener interner Speicherbereich verwendet, der jedoch die
Datensatzbeschreibungen und Listenbeschreibungen des zuletzt mit
DFCLoadDatensatzbeschreibungausgelesenen Gerätes ( und DFCLoadListenbeschreibung) vorhält.
D. h., wenn Sie verschiedene Setupkonfigurationen in den Geräten verwenden, ist eine
Aktualisierung der Datensatz- und Listenbeschreibungen erforderlich.
Wenn die Verbindung zwischen der DLL und dem Gerät unterbrochen wurde, dann sollte dieses durch die
Fehlerbehandlung auf folgende Weise abgefangen werden (siehe auch 1.2 Exemplarischer Programmaufbau).
- Prüfen ob alle anzusprechenden Geräte im Kanal einen Fehler bei
"eigentlich" geöffnetem Kanal liefern.
- Die Verbindung des Kanals mit DFCComClose schließen.
- Neuverbindung durch DFCComOpenSerial, DFCComOpenSocket, DFCComOpenIV je nach Gerätetyp und Verbindungsart durchführen.
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.
Speicherverwaltung der Listen
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.
Achtung:
Bitte beachten Sie, daß in den MasterIV-Geräten ein Flashspeicher zum Einsatz kommt.
Laut dem Hersteller kann jeder Speicherblock (512Byte) maximal 100.000 mal beschrieben werden.
Die Firmware der Geräte verteilt die Zugriffslast auf die einzelnen Speicherblöcke und markiert intern defekte Blöcke.
Es ist jedoch trotz dieses Sicherheitsmechanismus von all zu häufiger Übertragung der Listendaten abzuraten.
Die Applikation sollte nur bei Änderungen die Listen neu übertagen und nicht zyklisch permanent.
|
Übertragen von Listen
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.
Achtung:
Zwischen der Übertragung von Listen muss ggf. eine Wartezeit eingehalten werden.
Hierzu siehe Abschnitt: Beschreibung der Übernahme von Listen |
Übertragen einzelner Listen
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.
Achtung:
Das Laden einzelner Listen ist bei der MasterIV - Serie erst ab
Firmwareständen >= 04.01.00 möglich. Beim AEIII+ müssen immer alle Listen übertragen werden,
das Laden einzelner Listen ist nicht möglich. |
Achtung:
Zwischen der Übertragung von Listen muss ggf. eine Wartezeit eingehalten werden.
Hierzu siehe Abschnitt: Beschreibung der Übernahme von Listen |
Löschen von Listen
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 der Übernahme von Listen
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.
Listen für Betriebsmodus "Normal, MDE"
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.
Listen für die Zutrittskontrolle
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.
Listen für Timeboys
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.
Beim AEIII+ sowie MasterIV Firmwareversionen < 04.01.00
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:
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.
Die Datentypen werden meist ohne Vorzeichenbehaftung genutzt ( unsigned ).
Es werden folgende Datentypen verwendet:
Type |
Beschreibung |
int |
Ganze Zahl 4 Byte |
char |
Ein Zeichen entspricht einem Byte |
int* |
Zeiger auf einen int. Umfasst 4 Byte |
char* |
Zeiger auf Zeichen (Array). Umfasst 4
Byte. |
unsigned char* |
Zeiger auf Datenbyte (Array). Umfasst 4
Byte. |
Die meisten Funktionen bieten eine Fehlerauswertung über das Error Argument
nach folgender Tabelle, nachdem sie mit einer "if (DFCxxx == 0)" Abfrage gescheitert sind.
Folgende Fehler können im Error-Parameter auftreten:
Nummer
(in Var. "Error") |
Bedeutung |
0 |
Kein Fehler angegeben. |
1 |
CRC (Prüfsumme) von Daten falsch. |
2 |
Serielle Schnittstelle kann nicht geöffnet werden.
z.B.:
belegt durch anderes Programm oder Kanal. |
3 |
Der Kanal ist für die benötigte
Kommunikation noch nicht geöffnet worden. |
4 |
Allgemeiner Fehler bei Kommunikation mit
AEIII+ / MasterIV. |
5 |
AEIII+ / MasterIV antwortet nicht auf Anfrage. |
6 |
Fehler beim Senden eingetreten. |
7 |
Fehler beim Empfangen eingetreten. |
8 |
Antwort vom falschen Gerät oder im
Kontext nicht sinnvoll. |
9 |
Die verwendete Busnummer ist ungültig.
Wertebereich: (1 - 31, 254) |
10 |
Kanalobjekt nicht vorhanden.
Kanalobjekt nicht herstellbar. Wertebereich: (1 - 250) |
11 |
Öffnen einer Datei gescheitert. Meist
nicht vorhanden. |
12 |
Falsches Format der Setupdaten. Meist
bezieht sich dies auf das Setup. |
13 |
Fehler bei Verarbeitung der
Listendaten. |
14 |
Firmwareversion vom anzusprechenden
Gerät ist nicht Kompatible. |
15 |
Es sind noch Datensätze im Gerät
vorhanden, welche unbrauchbar würden. |
16 |
Befehlsausführung wurde durch Anwender
abgebrochen. |
17 |
Es ist keine Datensatzbeschreibung im
entsprechenden Kanal geladen. |
18 |
Es ist keine Listenbeschreibung im
entsprechenden Kanal geladen. |
19 |
Fehler beim Programmieren des Flash, Firmware. |
20 |
Parameter einer Funktion außerhalb ihres
Gültigkeitsbereiches. |
21 |
Globale Variable nicht definiert. |
22 |
Anfrage obwohl keine Daten. |
23 |
Duplikat von Datensätzen abgefangen. |
24 |
Gerätedatei nicht mit Bootloaderversion
kompatible. |
25 |
Firmwaredatei nicht mit Bootloaderversion kompatible. |
26 |
Wert einer Variablen konnte nicht gesetzt werden. |
27 |
Funktion steht im vorliegenden Fall nicht zur
Verfügung. |
28 |
Fehler in Applikationsschicht bei
Befehlsausführung.
(Der Befehl wurde erfolgreich zwischen dem Gerät und der DLL übertragen,
die geforderte Ausführung konnte jedoch nicht erfolgen. z. B.
unterstützt das Gerät die geforderte Funktion nicht oder ist
augenblicklich nicht bereit die Funktion auszuführen.) |
29 |
Der Gerätetyp ist unbekannt. Update der Software erforderlich. |
30 |
Die angegebene Geraetedatei stimmt nicht mit der vorliegenden Hardware ueberein. Oder aber, es liegt keine passende Gerätedatei für die vorliegende Hardware im Zip-Archiv vor.
Kommt bei DFCUpdate zur Anwendung. |
31 |
Gerätetyp stimmt nicht.
z.B. Versuchtes Einspielen von Setupdatei für PZE-MasterIV in BDE-MasterIV |
32 |
Die vorliegende Dateiendung wird nicht
unterstützt. |
33 |
Der Tabellenname oder Spaltenname ist
undefiniert. |
34 |
Ein angegebener Handle ist nicht gültig. |
35 |
Der anzuwendende Filter würde keine
Datensätze liefert. |
36 |
Sprung führte zum Anfang der Tabelle.
(Base of File) |
37 |
Sprung führte zum Ende der Tabelle.
(End of File) |
38 |
Der angegebene Wert ist Fehlerhaft. |
39 |
Die Zutrittskontrolle ist deaktiviert. |
40 |
Bei einer Datenübertragung ist ein Speicherüberlauf eingetreten. |
In der DLL ist ein Logmechanismus für ein Hintergrundloggen eingebracht, welches alle Funktionsaufrufe
in Dateien (Standard: YYYY_MM_DD_DFComDLL_channelID.log) die in einem angelegten
Ordner (Standard: DFComLog) liegen schreibt. Dieses Hintergrundloggen ist Standardmäßig aktiviert und kann
über die Initialisierungsdatei "DFCom.ini" gesteuert werden. Es werden die letzten fünf
aufeinanderfolgenden Anwendungstage mitgeschnitten und die so gesammelten Daten umfassen im Mittel
ein Datenvolumen von ca. 300MB.
Aufbau der Logeinträge
Durch den Dateinamen ist das Datum und der Kanal bekannt. Die Zeit des Funktionsaufrufes ist die erste Logangabe.
Danach folgt durch Tabstopp getrennt der Funktionsname mit den jeweils übergebenen Parameterwerten. Als Abschluss
wird der Rückgabewert (wenn vorhanden) in Klammern angegeben. Bei Parametern die über Zeiger bekannt gegeben
werden, wie Fehlerobjekt oder Datenbuffer, werden immer die Übergebenen Werte nicht die Adresse mitgeschrieben.
Wenn keine Werte Vorliegen werden trotzdem immer alle Tabstopp ausgegeben und es ist somit möglich die Datei für
eine weitere Verarbeitung zu verwenden. In einer Eckigen Klammer wird nach setzen des Elapse - Schlüssels die
Ausführungsdauer der Funktion angegeben, diese gibt an wie lange die DLL - Funktion für die Abarbeitung des
Befehls benötigte (Stark abhängig von den verwendeten Schnittstellentimeouts).
Beispiel: 2007_02_05_DFComDLL_1.log
11:14:57 DFCComOpenSerial 1 COM1 38400 150 (1) [0.1]
|
Initialisierungsdatei
Der zu Verwendende Dateiname lautet: DFCom.ini
Bedeutung der Werte: 0=Aus, 1=An
Bedeutung der Schlüsselwerte in der Sektion Log:
- Enable: Aktivieren des Hintergrundloggens.
- Path: Gibt das Basisverzeichnis an.
- Folder: Das zu verwendende Unterverzeichnis, dieses wird wenn nicht bereits vorhanden angelegt.
- Erase: Gibt an ob die Logdateien (älter als vier Tage vom aktuellen) automatisch gelöscht werden. Bitte beachten
Sie dass die Dateiverwaltung nach Abschalten manuell übernommen werden muss.
- Elapse: Gibt an ob die Ausführungsdauer der jeweiligen Funktion in eckigen Klammern hinter jedem Logeintrag ausgegeben wird, dabei hat
dieser folgende Aufteilung [Sekunden.Hundertstel].
- List: Gibt an ob die übertragenen Listendaten als Binär und Textdatei vor jedem Übertragen, in das Logverzeichnis exportiert werden.
Die Dateinamen setzen sich aus dem Zeitstempel der Übertragung, den Listennamen und der Kanalnummer zusammen.
Achtung: Die erzeugten Dateien werden nicht automatisch gelöscht. Diese Logoption produziert ggf. viele Dateien und ein großes Datenvolumen
und sollte nur nach Aufforderung zu Analysezwecke aktiviert werden.
Beispiel:
[Log]
Enable=1
Path=.\
Folder=DFComLog
Erase=1
Elapse=0
List=0
|
Die Uhr in den Terminals sollte regelmäßig gestellt werden, um Abweichungen zu vermeiden. Insbesondere, wenn
mehrere Terminals verwendet werden.
Wir empfehlen die Uhr mindestens einmal pro Tag zu stellen. Der ideale Zeitpunkt dafür ist 4:00 Uhr, da hier dann
bei Sommer-/Winterzeit gleich die Uhr richtig gestellt wird.
Die Firmwareversionen unter 04.00.23 haben keine automatische
Sommer-/Winterzeitumstellung. Hierfür ist die Anwendung verantwortlich.
Es ist ggf. die automatische Sommer-/Winterzeitumstellung des Betriebssystems zu aktivieren.
Zum stellen der Uhr verwenden Sie die Funktion DFCComSetTime.
Achtung:
Dieses Feature gilt erst ab MasterIV-Firmwareversion 04.01.04
und nur für TimeboyIII-Geräte. Ebenfalls muss Ihr MasterIV-Gerät mit der Option,
Timeboygeräte anzusprechen ausgestattet sein.
Der Speicherbedarf der Timeboylisten, reduziert den Speicherplatz für die MasterIV-Listen. |
GroupID
Ist eine im Timeboy hinterlegte Nummer. Standardmäßig ist diese 0 und kann über das TbSetup gesetzt werden.
Timeboys können über diese Nummer in Gruppen eingeteilt werden und über die DLL-Funktionen mit separaten Listen Versorgt werden.
Beispiel zur Erklärung:
Problem: Sie haben drei Timeboys mit dem gleichen Setup im Einsatz,
möchten aber auf jedem Timeboy eine eigene Auftragsliste aufspielen.
Lösung: Sie Vergeben jedem Timeboy eine eigene GroupID
und übertragen die Listen, die für alle Geräte gültig sind mit der GroupID 0 und die jeweilige Auftragsliste mit derren GroupID.
Beim PZE-MasterIV zu beachten
Um ein Update von einer Firmwareversion kleiner 04.00.23.769 auf eine
Version >= 04.01.xx durchzuführen, muß zuvor eine Version der Reihe 04.00 >= 04.00.769 eingespielt werden.
Ein Downgrade von der Versionsreihe 04.01 oder höher, auf die Versionsreihe 04.00, ist aufgrund einer möglichen Inkompatibilität zur
eingesetzten Hardware, vorher zu prüfen und ggf. zu vermeiden. |
 |
Das Aufspielen einer Firmwareversion der Reihe 04.00 darf nur auf PZE-MasterIV mit einer Revision 2.0 geschehen.
Die Revision können sie dem Typenschild entnehmen, dabei fehlt die Revisionsangabe hinter der Gerätebezeichnung, wenn sie 2.0 ist.
Im Beispiel links ist die Revision rot umrahmt. |
|
Beim Update über Gerätedateiarchiv (*.dfz) ist folgendes zu beachten.
Folgende Optionen können mitlerweile zusätzlich durch den Anwender eingestellt werden:
- Externe Leserserie (PHG oder Datafox)
- IOModul an Gerät angebunden.
- Timeboy an Gerät angebunden.
- Vorhandenes Setup und Listen nach Fimrwareupdate beibehalten. (Nur Mobil-MasterIV)
Diese Informationen werden (so weit vorhanden) von der Updateroutine herangezogen um die gewünschte Gerätedatei aus dem Gerätedateiarchiv (*.dfz) auszuwählen.
Von folgenden Einstellungen geht die DLL aus, wenn die Optionen im Gerät undefiniert sind.
- Externe Leserserie: Datafox
- IOModul an Gerät angebunden: Nein
- Timeboy an Gerät angebunden: Beim Mobil-MasterIV: Ja, ansonsten Nein.
- Vorhandenes Setup und Listen nach Fimrwareupdate beibehalten. (Nur Mobil-MasterIV): Nein
Beim Update über das DatafoxStudioIV werden Sie automatisch zur Einstellung der Optionen aufgefordert,
wenn diese undefiniert sind. Beim Update über die DLL werden die oben aufgeführten Standardvorgaben verwendet.
Die Umschaltung der Optionen ist über das DatafoxStudioIV möglich.
|
Allgemeine Hinweise zu allen MasterIV-Geräten
Das Wechseln in den Bootloadermodus ist im jeweiligen Handbuch beschrieben. |
Im Bootloadermodus verwendet das Gerät fest die Kommunikationsart RS232. |
Nach Aufspielen einer Firmwareversion über den Bootloadermodus, wird von der aufgespielten Firmwareversion nach Neustart, die vor dem Wechsel in den Bootloadermodus gewählte Kommunikationsart verwendet. |
Ein Downgrade ist generell über den Bootloadermodus durchzuführen. |
Nach Aufspielen einer Firmwareversion über GSM/GPRS, führt das Gerät eine Neueinwahl mit den zuvor verwendeten Einwahldaten durch. Diese gehen durch das Aufspielen einer Firmwareversion nicht verloren. |
Die Setupdatei und Listendaten müssen nach jedem Aufspielen einer Firmwareversion neu übertragen werden. Einzige Ausnahme ist das Mobil-MasterIV mit einer Version >= 04.01.04.53 und gesetzter Option zum Halten der Daten. |
Bekannte Probleme und deren Fehlerbehebung
Nach Übertragung einer Firmwareversion werden bei Geräten mit Anzeige, keine Schriften und Grafiken angezeigt. |
Übertragen Sie die gleiche Fimrwareversion bitte nochmals. |
Angabe einer IP-Adresse in Punktnotation:
IP-Adresse | Beschreibung |
"4.3.2.16" | Dezimale Angabe |
"004.003.002.020" | Oktale Angabe |
"0x4.0x3.0x2.0x10" | Hexadezimale Angabe |
"4.003.002.0x10" | Mix |
Bitte beachten Sie, dass vornullen zur Oktalen Angabe führen!!
Die Angabe von Hostnamen. Z. B.: www.datafox.de
Die nachfolgenden Funktionen werden von der DLL zur Verfügung gestellt.
Grundlegende Funktionen zum Verbindungsaufbau und Kommunikation sowie loggen des Verbindungsablaufs.
Achtung:
Diese Funktion ist ausschließlich für das AEIII+.
Sie ist aufgrund des verwendeten Timeout's für Modemverbindungen nicht einzusetzen. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComInit(int iChannelNum);
|
Exportiert: |
_DFCComInit@4 |
Parameter:
int iChannelNum |
Zu initialisierender Kanal der die Schnittstelle (COM1,
COM2, ...), entsprechend seiner Nummer verwendet. |
Rückgabewert:
Beschreibung:
Initialisiert die serielle Schnittstelle ("COM1" -
"COM4" oder "/dev/ttyS0" - "/dev/ttyS3") mit:
DFCComOpenSerial(iChannelNum, szCom, 38400,
150). Wobei szCom =
"COM1" , usw.. ist.
Die Funktion muss bei Verwendung von RS232 bzw. RS485 erfolgreich aufgerufen
werden, bevor mit den Kommunikationsfunktionen gearbeitet werden
kann.Ab der DLL - Version 04.01.00 wurde der Defaulttimeout
von 150 auf 800 erhöht.
|
Achtung:
Diese Funktion ist ausschließlich für das AEIII+. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComOpenSerial(int iChannelNum, char *szComPort,
int iBaudRate, int iTimeOut);
|
Exportiert: |
_DFCComOpenSerial@16 |
Parameter:
int iChannelNum |
Zu initialisierender Kanal.
Wertebereich: (1 - 250) |
char *szComPort |
Zeichenkette für die Schnittstelle.
"COM1" .. "COM4",
"/dev/ttyS0" .. "/dev/ttyS3" |
int iBaudRate |
Übertragungsrate der Schnittstelle in
Baud. (Standard: 38400bd) |
int iTimeOut |
TimeOut für Lesen von Schnittstelle
in Millisekunden. (Standard: 800ms) Bei Modem min. 1500ms
empfohlen. |
Rückgabewert:
Beschreibung:
Initialisiert den Kanal für die serielle Schnittstelle (COM1 - COM4).
Die Funktion muss bei Verwendung von RS232 bzw. RS485 erfolgreich aufgerufen
werden, bevor mit den Kommunikationsfunktionen gearbeitet werden
kann. |
Achtung:
Diese Funktion ist ausschließlich für das AEIII+.
Nach einem Verbindungsabriss wird keine automatische Neuverbindung durchgeführt. Bitte beachten Sie hierzu die Fehlerbehandlung
und unter Exemplarischer Programmaufbau beschriebene Umsetzungslösung. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComOpen(int iChannelNum, char *szHost);
|
Exportiert: |
_DFCComOpen@8 |
Parameter:
int iChannelNum |
Nummer des Kanals. Wertebereich:
(1 - 250)
Die Kanalnummer dient dazu die TCP/IP-Verbindung
bei weiteren Befehlen zu identifizieren. Wenn auch gleichzeitig
RS232-Verbindungen verwendet werden, darf sich die Nummer nicht mit einer
verwendeten Com - Nummer überschneiden.
Beispiel:
In einem Rechner werden COM1:
und COM2: verwendet.
Dann sollten für TCP/IPVerbindungen die Nummern 3, 4, 5,
... 10 verwendet werden. |
char *szHost |
IP-Adresse ( z.B. "192.168.123.99") oder Hostname. |
Rückgabewert:
Beschreibung:
Initialisiert den Kanal für die Socket (TCP /
IP)
Schnittstelle zum Com - Server. mit:
DFCComOpenSocket(iChannelNum, szHost, 8000,
3000).
Die Funktion muss bei Verwendung von TCP / IP erfolgreich aufgerufen
werden, bevor mit den Kommunikationsfunktionen gearbeitet werden
kann.Ab der DLL - Version 04.01.00 wurde der Defaulttimeout
von 3000 auf 5000 erhöht.
|
Achtung:
Diese Funktion ist ausschließlich für das AEIII+.
Nach einem Verbindungsabriss wird keine automatische Neuverbindung durchgeführt. Bitte beachten Sie hierzu die Fehlerbehandlung
und unter Exemplarischer Programmaufbau beschriebene Umsetzungslösung. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComOpenSocket(int iChannelNum, char *szRemoteIP,
int iPortNum, int iTimeOut);
|
Exportiert: |
_DFCComOpenSocket@16 |
Parameter:
int iChannelNum |
Nummer des Kanals. Wertebereich:
(1 - 250)
Die Kanalnummer dient dazu die TCP/IP-Verbindung
bei weiteren Befehlen zu identifizieren. Wenn auch gleichzeitig
RS232-Verbindungen verwendet werden, darf die Nummer nicht mit einer
verwendeten Com - Nummer identisch sein.
Beispiel:
In einem Rechner werden COM1:
und COM2: verwendet.
Dann sollten für TCP/IPVerbindungen die Nummern 3, 4, 5,
... 10 verwendet werden. |
char *szRemoteIP |
IP-Adresse in Punktnotation oder Hostname. |
int iPortNum |
Portnummer des COM - Server.
W&T-Standard: 8000 |
int iTimeOut |
TimeOut für lesen von Schnittstelle
in Millisekunden. (Standard: 5000ms) |
Rückgabewert:
Beschreibung:
Initialisiert den Kanal für die Socket (TCP /
IP)
Schnittstelle zum Com - Server.
Die Funktion muss bei Verwendung von TCP / IP erfolgreich aufgerufen
werden, bevor mit den Kommunikationsfunktionen gearbeitet werden
kann.
|
Achtung:
Diese Funktion ist ausschließlich für die MasterIV-Serie.
Nach einem Verbindungsabriss wird keine automatische Neuverbindung durchgeführt. Bitte beachten Sie hierzu die Fehlerbehandlung
und unter Exemplarischer Programmaufbau beschriebene Umsetzungslösung.
Die Funktion initialisiert den Kanal zur Verwendung mit einem Multimaster - Protokoll. Sie können dadurch
kein AEIII+ und MasterIV in ein und dem selben RS485 - Netzwerk betreiben, da dass AEIII+ mit einem zum MasterIV nicht kompatiblen Protokoll arbeitet!
|
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComOpenIV(int iChannelNum, int iBusNum, int iType,
char *szComString, int iComValue, int iComTimeOut);
|
Exportiert: |
_DFCComOpenIV@24 |
Parameter:
int iChannelNum |
Zu initialisierender Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die Busnummer
der DLL. Multimasteransatz: Die DLL ist in einem Netzwerk ein
Kommunikationsteilnehmer wie jedes Gerät und kann von diesen direkt
angesprochen werden. Diese Busnummer muss im Netzwerk eindeutig sein und
darf sich nicht mit der eines Geräts decken.
Wertebereich: (1 - 31, 254) |
int iType |
Der zu verwendende Schnittstellentyp.
Wert | Bedeutung |
1 | RS232 direkt oder über Umsetzter (RS232 <-> RS485) |
2 | Funk über den Umsetzer (RS232 <-> BIM2) ohne eigenen Kontroller. |
3 | TCP / IP - Verbindung. |
|
char *szComString |
Je nach Schnittstellentyp:
iType | Bedeutung |
1, 2 | Zeiger auf Zeichenkette für die Schnittstelle. |
3 | Zeiger auf Zeichenkette mit IP - Adresse oder Hostname. |
|
int iComValue |
Je nach Schnittstellentyp:
iType | Bedeutung |
1, 2 | Übertragungsrate der Schnittstelle in Millisekunden. (Standard: 38400bd) |
3 | Portnummer des TCP / IP Anschlusses. (Standard: 8000) |
|
int iComTimeOut |
Je nach Schnittstellentyp:
iType | Bedeutung |
1, 2 | Timeout für Lesen von Schnittstelle in Millisekunden. (Standard: 800ms)
Bei Modem min. 1500ms empfohlen. |
3 | Timeout für Lesen von Socket in Millisekunden. (Standard: 5000ms) |
|
Rückgabewert:
Beschreibung:
Initialisiert den Kanal. Je nach
angegebenem Typ wird ein anderes Initialisierungsverfahren verwendet um
die entsprechend nachfolgenden Funktionsaufrufe der exportierten
Funktionen richtig umzusetzen.
Die Funktion muss aufgerufen
werden, bevor mit den Kommunikationsfunktionen gearbeitet werden
kann.
Achtung: Nach einem Verbindungsabriss (TCP / IP) wird keine
automatische Neuverbindung durchgeführt. Bitte beachten Sie hierzu die Fehlerbehandlung
und unter Exemplarischer Programmaufbau beschriebene
Umsetzungslösung.
|
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCComClose(int iChannelNum);
|
Exportiert: |
_DFCComClose@4 |
Parameter:
int iChannelNum |
Zu schließender Kanal. Wertebereich:
(1 - 250) |
Rückgabewert:
Beschreibung:
Schließt den Kanal der seriellen Schnittstelle bzw.
der
TCP / IP - Verbindung. |
Ruft intern die Funktion DFCCheckDevice auf.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCCheckAE(int iChannelNum, int iBusNum);
|
Exportiert: |
_DFCCheckAE@8 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
Rückgabewert:
Beschreibung:
Prüfen ob Gerät am Bus angeschlossen ist. Diese Funktion
verwendet die DFCCheckDevice - Funktion. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCCheckDevice(int iChannelNum, int iBusNum,
int *piError, int iDevicePollRetry);
|
Exportiert: |
_DFCCheckDevice@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
int iDevicePollRetry |
Wiederholungen zur Erreichbarkeit. |
Rückgabewert:
0 |
Fehler bei Durchführung. Es ist kein
Gerät mit dieser Busnummer erreichbar, dabei behält der Fehlercode
seinen zuvor übergebenen Wert.
(siehe auch Fehlerbehandlung und Exemplarischer Programmaufbau) |
1 |
Die angegebene Busnummer ist erreichbar. |
Beschreibung:
Prüfen ob Gerät am Bus angeschlossen ist. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComSetTime(int iChannelNum, int iBusNum,
unsigned char *pucDateTime);
|
Exportiert: |
_DFCComSetTime@12 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
unsigned char *pucDateTime |
Zeiger auf das Datum - Uhrzeit - Feld
von 7 Byte. Für den genauen Aufbau siehe: Datum und Uhrzeit im ByteArray
Verwenden Sie eine DLL mit Versionsnummer größer 2.0.7 können Sie
hier NULL (Wert: 0) übergeben, wodurch die Routine das aktuelle
Systemdatum und die aktuelle Systemzeit verwendet. |
Rückgabewert:
0 |
Fehler beim setzen der Uhrzeit. |
1 |
Uhrzeit erfolgreich eingestellt. |
Beschreibung:
Stellt das Datum und die Uhrzeit des
Gerätes. |
Beispiel:
27.02.1981 15:30:13 |
0 |
Jahreszahl Hunderter (0..255) |
19 |
1 |
Jahreszahl Einer (0..99) |
81 |
2 |
Monat (0..12) |
2 |
3 |
Tag (1..31) |
27 |
4 |
Stunde (0..23) |
15 |
5 |
Minute (0..59) |
30 |
6 |
Sekunde (0..59) |
13 |
// Die Schnittstelle zum Gerät muss natürlich geöffnet
// worden sein.
unsigned char Buffer[7];
Buffer[0] = 19;
Buffer[1] = 81;
Buffer[2] = 2;
Buffer[3] = 27; // 27.02.1981 Datum
Buffer[4] = 15;
Buffer[5] = 30;
Buffer[6] = 13; // 15:30:13 Uhrzeit
// Auf Fehler wird hier nicht geprüft !!! (siehe Rückgabewert)
// Senden des DatumUhrzeit - Array
// über Kanal 1 an Gerät mit Busnummer 2
DFCComSetTime(1, 2, Buffer);
|
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComGetTime(int iChannelNum, int iBusNum,
unsigned char *pucDateTime);
|
Exportiert: |
_DFCComGetTime@12 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
unsigned char *pucDateTime |
Zeiger auf ein Feld von min. 7 Byte, in
das Datum und Uhrzeit geschrieben wird. Für den genauen Aufbau siehe: Datum und Uhrzeit im ByteArray |
Rückgabewert:
0 |
Fehler beim lesen der Uhrzeit. |
1 |
Uhrzeit erfolgreich gelesen und in Feld "Time" abgelegt. |
Beschreibung:
Liest Datum und Uhrzeit des Geräts. |
Beispiel:
27.2.1981 15:30:13 |
0 |
Jahreszahl Hunderter (0..255) |
19 |
1 |
Jahreszahl
Einer (0..99) |
81 |
2 |
Monat (0..12) |
2 |
3 |
Tag (1..31) |
27 |
4 |
Stunde (0..23) |
15 |
5 |
Minute
(0..59) |
30 |
6 |
Sekunde (0..59) |
13 |
// Die Schnittstelle zum Gerät muss natürlich geöffnet
// worden sein.
unsigned char Buffer[7];
Buffer[0] = 19;
Buffer[1] = 81;
Buffer[2] = 2;
Buffer[3] = 27; // 27.02.1981 Datum
Buffer[4] = 15;
Buffer[5] = 30;
Buffer[6] = 13; // 15:30:13 Uhrzeit
// Aktuelles Datum und Uhrzeit über Kanal 1 von Gerät
// mit Busnummer 2 ermitteln.
// Auf Fehler wird hier nicht geprüft !!! (siehe Rückgabewert)
DFCComGetTime(1, 2, Buffer);
// Daten ausgeben.
printf("Jahr: %02d%02d\n", Buffer[0], Buffer[1]);
printf("Monat: %02d\n", Buffer[2]);
printf("Tag: %02d\n", Buffer[3]);
printf("Stunde: %02d\n", Buffer[4]);
printf("Minute: %02d\n", Buffer[5]);
printf("Sekunde: %02d\n", Buffer[6]);
|
Achtung:
Nachfolgend der Eintrag zu "Freigabe: 12.11.04, Firmwareversion
04.00.22 aus dem Dokument PZE-MasterIV, SoftwareVersionen Stand
2004-12-02.pdf"
- Die SendMessage-Funktion wurde beim Online-Betrieb überarbeitet.
Nach dem "online" abholen vom Server wird auf eine Message
vom Server gewartet. Falls keine Message geschickt werden soll, muß
man eine Dummy-Nachricht mit der Anzeigedauer von 0 Sekunden schicken,
sonst bekommt der Benutzer am Terminal eine Fehlermeldung. SendMessage
ist für Online-Betrieb erst mit dieser Version freigegeben.
|
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComSendMessage(int iChannelNum, int iBusNum,
unsigned char ucDelayTime, unsigned char ucAction,
unsigned char ucAudio, char *szMessage, int iLength);
|
Exportiert: |
_DFCComSendMessage@28 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
unsigned char ucDelayTime |
Dauer in Sekunden, während der die Meldung angezeigt werden soll. Beim
AEIII+ kann durch Übergabe von 255 die Nachricht so lange angezeigt
werden bis ein Bediener diese durch Enter oder ESC bestätigt.
AEIII+ Bereich (1 - 255)
AEIV Bereich (0 - 254) |
unsigned char ucAction |
Wert | Bedeutung |
0 | normal weiter |
|
unsigned char ucAudio |
Wert | Bedeutung |
0 | kein Piepser |
1 | Einfachpiep |
2 | Doppelpiep |
|
char *szMessage |
Zeiger auf die darzustellende Zeichenkette. |
int iLength |
Zeichenlänge der Meldung. Maximal 242.
(PZE-MasterIV, siehe Beschreibung) |
Rückgabewert:
0 |
Fehler beim Senden. |
1 |
Meldung erfolgreich gesendet. |
Beschreibung:
Sendet eine Meldung an das Gerät mit der
angegebenen Busnummer. Die Meldung kann zur optischen Quittierung der
eingegebenen Benutzerdaten im Onlinebetrieb verwendet werden. Da die
Meldung sich in die Bedienung des Gerätes integriert, steht sie maximal
bis zur nächsten Eingabe zur Verfügung.
Nur AEIII+
Das AEIII+ kann pro Zeile maximal 19 Zeichen darstellen, das zwanzigste
ist für die Laufleiste reserviert. Bitte beachten Sie, daß Sonderzeichen
sowie Umlaute durch den vorgegebenen Displayzeichensatz nicht richtig
dargestellt werden können.
Wenn Sie einen Zeilenumbruch erreichen möchten, füllen Sie die
Anzeigezeile mit Leerzeichen auf 19 Zeichen auf, dadurch erfolgt ein
automatischer Umbruch auf die nächste Zeile. Die Anzeige der
Nachricht während sich das Gerät in einer Eingabekette befindet ist erst
ab der Firmware
mit Majorversion >= 2 möglich.
Nur PZE-MasterIV
Zeilenumbrüche müssen mit
dem Zeichen (Dec. 13) eingefügt werden.
Beim PZE-MasterIV ist
durch den proportionalen Zeichensatz die Anzahl der Zeichen pro Zeile vom
Zeileninhalt abhängig und die Zeile wird bei Randüberschreitung
abgeschnitten.
|
Die gesendete Zeichenfolge unterliegt folgender Aufteilung:
Kopfzeile 3\rKopfzeile 4\rBoxenüberschrift\rBoxenzeile
1\rBoxenzeile 2 usw... |
\r muß hierbei durch ein Zeilenumbruch (Dec. 13) ersetzt
werden. Wenn Sie keine Kopfzeilen wünschen, dann müßen Sie für jede
Kopfzeile ein Leerzeichen mit folgendem Zeilenumbruch einfügen, damit die Aufteilung nach obigem
Schema erfolgen kann. Das anzeigen von mehr als fünf Boxzeilen wird in
der Fimrwareversion 04.00.22 noch nicht unterstützt, auch darf in der
Box die Gesamtanzahl der Zeichen 128 (inklusive Nullterminierung)
nicht überschreiten. |
|
Beispiel:
char *Buffer = "HALLO DIES IST EIN TEST !";
DFCComSendMessage(1, 254, 255, 0, 2, Buffer, 26);
|
Wird unterstützt ab Firmwareversion:
02.02.00, 03.01.00, BDE.04.01.02,
MDE.04.01.02 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComSendInfotext(int iChannelNum, int iBusNum,
char *szMessage, int iLength);
|
Exportiert: |
_DFCComSendInfotext@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
char *szMessage |
Zeiger auf die darzustellende Zeichenkette. |
int iLength |
Zeichenlänge der Meldung. Maximal
242. |
Rückgabewert:
0 |
Fehler beim Senden. |
1 |
Meldung erfolgreich gesendet. |
Beschreibung:
Sendet einen Infotext an das Gerät mit der
angegebenen Busnummer. Der Infotext wird im Speicher des Geräts gehalten
und steht so zur ständigen Verfügbarkeit.
Er kann über die linke
Pfeiltaste aus dem Hauptmenü heraus erreicht werden.
Im PZE - Modus ist
durch die Fixierung der Eingabe auf die ersten Einträge im Hauptmenü (F1
/ F2),
das Erreichen des Infobildschirms versperrt. Im PZE - Betrieb ist das
Infobild deswegen nicht allzu sinnvoll anzuwenden.
Das AEIII+ kann pro Zeile maximal 19 Zeichen darstellen, das zwanzigste
ist für die Laufleiste reserviert. Bitte beachten Sie, daß Sonderzeichen
sowie Umlaute durch den vorgegebenen Displayzeichensatz nicht richtig
dargestellt werden können.
Wenn Sie einen Zeilenumbruch erreichen möchten, füllen Sie die
Anzeigezeile mit Leerzeichen auf 19 Zeichen auf, dadurch erfolgt ein
automatischer Umbruch auf die nächste Zeile. |
Beispiel:
char *Buffer = "HALLO DIES IST EIN TEST !";
DFCComSendInfotext(1, 254, Buffer, 26);
|
Wird unterstützt ab Firmwareversion:
02.02.00, 03.01.00, 04.00.00 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCGetSeriennummer(int iChannelNum, int iBusNum,
int *piError, int *piSerialNum);
|
Exportiert: |
_DFCGetSeriennummer@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
int *piSerialNum |
Zeiger auf Variable welche die Seriennummer
erhält. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Liest die Seriennummer des angesprochenen Gerätes. |
Nicht weiter in Verwendung.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCLogOn(char *szFileName);
|
Parameter:
char* szFileName |
Zeichenkette mit Dateinamen der Log-Datei
(inklusive Pfad). |
Rückgabewert:
0 |
Funktion nicht implementiert. |
Beschreibung:
Die Implementierung wurde entfernt!!!
Bitte auf DFCSetLogOn umsetzen. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCSetLogOn(int iChannelNum);
|
Exportiert: |
_DFCSetLogOn@4 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
Rückgabewert:
Beschreibung:
Log-Funktion wird eingeschaltet und Log-Datei wird geöffnet.
Alle aus dem
Gerät gelesenen Daten werden binär abgespeichert. Vor den Datenbyte wird ein
Byte mit der Anzahl der Datenbyte abgespeichert. Dieses Byte wird nicht
mitgezählt.
Beispiel:
Ein Datensatz enthält 20 Byte.
Das vorangestellte Byte
hat den Wert 20.
Die Gesamtzahl der gespeicherten Byte für diesen Datensatz incl. Längenbyte ist 21.
Zuvor müssen Sie mit DFCSetLogFileName
den Name der Datei bekannt geben.
|
Nicht weiter in
Verwendung.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCLogOff(void);
|
Parameter:
Rückgabewert:
Beschreibung:
Implementierung wurde entfernt!!! Bitte
auf DFCSetLogOff umstellen. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCSetLogOff(int iChannelNum);
|
Exportiert: |
_DFCSetLogOff@4 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal. Wertebereich:
(1 - 250) |
Rückgabewert:
Beschreibung:
Log - Funktion wird für angegebenen Kanal
abgeschaltet. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCSetCallBack(int iChannelNum, int (*CBFunction)());
|
Exportiert: |
_DFCSetCallBack@8 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int (*CBFunction)() |
Zeiger auf die aufzurufende Funktion.
Rückgabewert | Bedeutung |
0 | Die Befehlsausführung wird abgebrochen. |
1 | Der Befehl wird weiter abgearbeitet. |
|
Rückgabewert:
Beschreibung:
Unter Zuhilfenahme einer CallBack-Funktion besteht die Möglichkeit eine
Fortschrittsanzeige zu realisieren. Die mit dieser Funktion an die DLL übergebene CallBack-Funktion, wird
bei der Übertragung größerer Datenblöcke zyklisch aufgerufen. Über den zurückgegebenen Wert, kann eine z.B. die Übertragung
einer Setupdatei oder Gerätedatei (Firmware) abgebrochen werden.
Der Aufruf dieser Funktion gibt jedoch keinen Aufschluss über die zu übertragende Datenmenge um mit Prozenten zu rechnen. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCSetLogFileName(int iChannelNum,
const unsigned char *szLogFileName);
|
Exportiert: |
_DFCSetLogFileName@8 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal. Wertebereich:
(1 - 250) |
const unsigned char *szLogFileName |
Datei die zum Loggen
verwendet werden soll. |
Rückgabewert:
Beschreibung:
Setzt die Datei für die
Loggfunktionen im jeweiligen Kanal. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCGetErrorText(int iChannelNum, int iError,
int iLanguage, char *szText, int iLength);
|
Exportiert: |
_DFCGetErrorText@20 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iError |
Fehlercode der durch Parameter von den
meisten anderen zurückgegeben wird. |
int iLanguage |
noch nicht verwendet. Alles Deutsch |
char *szText |
Zeiger auf die verwendbar
Zeichenkette. |
int iLength |
Länge des Reservierten Speichers auf
die Zeichenkette. |
Rückgabewert:
Beschreibung:
Löst die von den verschiedenen Funktionen zurückgegebene Fehlernummer nach Tabelle 1.3.3 auf. |
Wird unterstützt ab Firmwareversion:
02.02.20, 03.01.00, 04.00.00 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCSetGlobVar(int iChannelNum, int iBusNum,
unsigned char *pucVar, int iType, unsigned char *pucValue, int *piError);
|
Exportiert: |
_DFCSetGlobVar@24 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
unsigned char *pucVar |
Name oder Nummer der Variablen. |
int iType |
Wert | Bedeutung |
0 | pucVar zeigt auf Byte welches die
Variablennummer darstellt. Der gültige Bereich liegt zwischen 1 - 8. Im
AESetup auf der Seite für die Globalen Variablen entspricht dies der
Anordnung von oben links nach unten links 1 - 4 und auf der rechten Seite
entsprechend 5 - 8. |
1 | pucVar zeigt auf terminierte Zeichenfolge die den Namen darstellt.
Zwischen Groß- und Kleinschreibung wird unterschieden und er kann maximal
16 ASCII - Zeichen umfassen. |
2 | pucVar zeigt auf terminierte Zeichenfolge die den Namen einer
Systemvariable darstellt. z. B. "_MODEM_MC35i.PHONE". Siehe auch Kapitel Systemvariablen |
|
unsigned char *pucValue |
Zeigt auf terminierte Zeichenfolge
die den Wert darstellt. Bei der unterstützenden FW mit Majornummer 2,
sind maximal 20 ASCII - Zeichen möglich. Bei der unterstützenden FW mit
Majornummer 3, sind maximal 60 ASCII - Zeichen möglich. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Setzen des Wertes einer Globalen Variablen. |
Wird unterstützt ab Firmwareversion:
02.02.20, 03.01.00, 04.00.00 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCGetGlobVar(int iChannelNum, int iBusNum,
unsigned char *pucVar, int iType, unsigned char *pucValue,
int iValueLength, int *piError);
|
Exportiert: |
_DFCGetGlobVar@28 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
unsigned char *pucVar |
Name oder Nummer der Variablen. |
int iType |
Wert | Bedeutung |
0 | pucVar zeigt auf Byte welches die
Variablennummer darstellt. Der gültige Bereich liegt zwischen 1 - 8. Im
AESetup auf der Seite für die Globalen Variablen entspricht dies der
Anordnung von oben links nach unten links 1 - 4 und auf der rechten Seite
entsprechend 5 - 8. |
1 | pucVar zeigt auf terminierte Zeichenfolge die den Namen darstellt.
Zwischen Groß- und Kleinschreibung wird unterschieden und er kann maximal
16 ASCII - Zeichen umfassen. |
2 | pucVar zeigt auf terminierte Zeichenfolge die den Namen einer
Systemvariable darstellt. z. B. "_MODEM_MC35i.PHONE". Siehe auch Kapitel Systemvariablen |
|
unsigned char *pucValue |
Wenn die Ausführung erfolgreich war,
enthält der Buffer auf den dieser Zeiger zeigt die ermittelte
Zeichenfolge für den Wert der Variablen. Bei der unterstützenden FW mit
Majornummer 2, sind maximal 20 ASCII - Zeichen möglich. Bei der
unterstützenden FW mit Majornummer 3, sind maximal 60 ASCII - Zeichen
möglich. |
int iValueLength |
Länge des reservierten
Speicherbereiches auf den mit pucValue verwiesen wird. Bitte beachten Sie
das die NULL - Terminierung in den Wert mit einfliest. d.h. Wenn Sie eine
Längenangabe von 1 machen, bekommen Sie eine Leere Zeichenfolge
zurückgeliefert, da kein ausreichender Bufferbereich für die Daten
reserviert wurde. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Lesen des Wertes einer Globalen Variablen. |
Wird unterstützt ab Firmwareversion:
02.02.20, 03.01.00, 04.00.00 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCCloseRelay(int iChannelNum, int iBusNum, int iNum,
int iTime, int *piError);
|
Exportiert: |
_DFCCloseRelay@20 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int iNum |
Nummer des anzusprechenden Relais.
Mit der Nummer "0" wird der interne Open - Collector - Ausgang
geschaltet. Der Bereich "1 - 8" ist für die jeweils 4 (42V) und
4(230V) Relais des IO - Module. |
int iTime |
Zeitangabe in Sekunden, für die der
Ausgang, (das Relais), geschaltet werden soll. (1 .. 65535) |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Schließen eines Ausgangs oder Relais für
eine bestimmbare Zeit. |
Wird unterstützt ab Firmwareversion:
02.02.20, 03.01.00, 04.00.00 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCGetRelayState(int iChannelNum, int iBusNum, int iNum,
int *piState, int *piTime, int *piError);
|
Exportiert: |
_DFCGetRelayState@24 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int iNum |
Nummer des anzusprechenden Relais.
Mit der Nummer "0" wird der interne Open - Collector - Ausgang
geschaltet. Der Bereich "1 - 8" ist für die jeweils 4 (42V) und
4(230V) Relais des IO - Module. |
int *piState |
Erhält den aktuellen Relaiszustand.
"1" steht für geschlossen. |
int *piTime |
Erhält die verbleibende Zeitangabe in Sekunden, für die der
Ausgang, (das Relais), noch geschaltet werden soll. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Lesen des aktuellen Zustandes eines
Ausgangs oder Relais. |
Wird unterstützt ab Firmwareversion:
02.02.20, 03.01.00, 04.00.00 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCOpenRelay(int iChannelNum, int iBusNum, int iNum,
int *piError);
|
Exportiert: |
_DFCOpenRelay@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int iNum |
Nummer des anzusprechenden Relais.
Mit der Nummer "0" wird der interne Open - Collector - Ausgang
geschaltet. Der Bereich "1 - 8" ist für die jeweils 4 (42V) und
4(230V) Relais des IO - Module. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Öffnen eines Ausgangs oder Relais. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCGetDevicePollRetry(int iChannelNum);
|
Exportiert: |
_DFCGetDevicePollRetry@4 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
Rückgabewert:
Beschreibung:
Bei der Funktion DFCCheckDevice wird ein
Parameter übergeben, welcher die mögliche Anzahl der Versuche angibt.
Diese Funktion liefert die Anzahl der benötigten Anfragen, bis die
Funktion -erfolgreich- zurückmelden konnte, zurück. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
HANDLE __stdcall DFCGetComPort(int iChannelNum);
|
Exportiert: |
_DFCGetComPort@4 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
Rückgabewert:
Handle |
Schnittstellenhandle (seriell) oder Socket der
letzten Kanalinitialisierung. Der Wert ist (-1 = INVALID_HANDLE_VALUE /
INVALID_SOCKET), wenn die Rückgabe scheitert.
Der Typ HANDLE ist in C gleich einem Zeiger auf void. |
Beschreibung:
Verwendung dieser Funktion ist nur bei
einem direkten Zugriff auf die Schnittstelle nötig. Dieses kann bei einer
Modeminitialisierung der Fall sein, wobei die Verbindungsstrecke zuerst
aufgebaut werden muss und danach die anderen Funktionen der DLL wie bisher
verwendet werden können.
Bitte beachten Sie:
Die DLL schließt durch DFCComClose keine zuvor geöffnete Modemverbindung
durch AT-Befehle.
Der zurückgelieferte HANDLE ist nur für die zuvor geöffnete
Schnittstelle und während dessen Bestehen als gültig zu betrachten. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCSetComPort(int iChannelNum, HANDLE hComPort,
int iType, int iComValue, int iTimeOut);
|
Exportiert: |
_DFCSetComPort@20 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
HANDLE hComPort |
Schnittstellenhandle (seriell) oder
Socket der gesetzt werden soll.
Der Typ HANDLE ist in C gleich einem Zeiger auf void. |
int iType |
Der Wert gibt an, welche
Schnittstellenart vorliegt:
|
int iComValue |
Bei seriellen Verbindungen gibt
dieser Parameter die Baudrate an (Standard: 38400bd) und bei TCP/IP die
Portnummer (Standard: 8000). |
int iTimeOut |
Dieser Parameter gibt den zu
verwendenden Schnittstellentimeout in Millisekunden an. Bei serieller Verbindung ist
Standardmäßig 150ms einzustellen, bei TCP/IP Standardmäßig 3000ms. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Die Verwendung dieser Funktion ist in
äußerst wenigen Fällen nötig, z.B. zum Einstellen eines anderen
Schnittstellentimeouts, während die Schnittstelle bereits geöffnet ist
oder um der DLL einen zuvor anderweitig genutzten Handle zu
übergeben. |
Achtung:
Die Funktion sollte nur für Sonderfälle
wie Modeminitialisierung verwendet werden! Durch unsachgemäßen Gebrauch,
können Störungen in der Kommunikation auftreten. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCWrite(int iChannelNum, char *pBuf, int iLength,
int *piWriteLength, int *piError);
|
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
char *pBuf |
Zeiger auf die zu versendenden
Zeichen. |
int iLength |
Anzahl der zu versendenden Zeichen. |
int *piWriteLength |
(Rückgabe) Anzahl der wirklich gesendeten
Zeichen. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Schreibt, je nach verwendeter
Schnittstelle, die übergebenen Daten in den Kanal. |
Achtung:
Die Funktion sollte nur für Sonderfälle
wie Modeminitialisierung verwendet werden! Durch unsachgemäßen Gebrauch,
können Störungen in der Kommunikation auftreten. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCRead(int iChannelNum, char *pBuf, int iLength,
int *piReadLength, int *piError);
|
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
char *pBuf |
Zeiger auf Zeichenpuffer für die zu
empfangenden Zeichen. |
int iLength |
Anzahl der zu lesenden Zeichen. (größe Zeichenpuffer) |
int *piReadLength |
(Rückgabe) Anzahl der wirklich gelesenen
Zeichen. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Liest, je nach verwendeter Schnittstelle,
die anliegenden Daten aus dem Kanal. |
Hinweis:
|
Es ist wichtig, nicht nur den Rückgabeparameter auf
seinen Wert zu überprüfen. Ob ein Fehler vorlag ist nur in Verbindung
mit dem zurückgelieferten Error-Code möglich. Handelt es sich um eine serielle
Verbindung und es waren keine Daten zum lesen verfügbar wird von der
Funktion ein Returnwert von 1 zurückgegeben. Bei einer TCP/IP
Verbindung wird allerdings ein Returnwert von 0 zurückgeliefert,
wenn es keine Daten zu lesen gab. Es empfiehlt sich für eine
Fehlerbehandlung dieser Funktion grundsätzlich den Errorcode zu verwenden
(ist dieser ≠0 lag ein Fehler
vor).
Verbindung |
Returnwert |
ReadLength |
Error |
Status |
Beschreibung |
seriell |
=1 |
=0 |
=0 |
Ok |
es wurde erfolgreich gelesen,
die Anzahl der gelesenen Zeichen war jedoch 0 |
seriell |
=1 |
>0 |
=0 |
OK |
es wurde erfolgreich gelesen,
die Anzahl der gelesenen Zeichen war >=1 |
TCP/IP |
=0 |
=0 |
=0 |
Ok |
es wurde erfolgreich gelesen,
die Anzahl der gelesenen Zeichen war jedoch 0 |
TCP/IP |
=1 |
>0 |
=0 |
Ok |
es wurde erfolgreich gelesen,
die Anzahl der gelesenen Zeichen war >=1 |
seriell
TCP/IP |
=0 |
>=0 |
≠0 |
Error |
es wurde nicht
erfolgreich gelesen, in ReadLength steht die Anzahl und in Buf
die Zeichen die bis zum Auftreten des Fehlers
gelesen werden konnten. |
!!
Wichtig: Die entsprechenden Funktionen der DLL für den Timeboy, haben
genau das entgegengesetzte Verhalten wenn es keine Daten zu lesen gab!
|
|
Achtung:
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCUpload(int iChannelNum, int iBusNum, char *szFileName,
int *piError);
|
Exportiert: |
_DFCUpload@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
char *szFileName |
Dateiname der Gerätedatei, wenn
nötig mit Pfadangabe.
("Firmware" mit Zusatzdaten, Endung: *.hex) Unter Win32 kann ein Gerätedateiarchiv (Endung: *.dfz/*.zip) angegeben werden.
Unter Linux kann ein Verzeichnis mit den enthaltenen Gerätedateien (Endung: *.hex) angegeben werden. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Übertragen der notwendigen Gerätedaten,
die aus Zeichensatz-, Grafik-, Text-, "Firmwaredaten" usw..
bestehen und zusammen in einer Datei mit der Endung (*.hex) geliefert
werden. Die Gerätedateien können auch (unter Win32) in einem Zip-Archiv vorliegen. Die Routine wählt in diesem Fall die für die jeweils
vorliegende Hardware benötigte Gerätedatei aus dem Zip-Archiv aus. Achtung: Unter Linux ist das Zip-Archiv zu entpacken und das Verzeichnis anzugeben.
Mehr Informationen zum Übertragen von Gerätedateien (DFCUpload). |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCGetVersionFirmware(int iChannelNum, int iBusNum,
char *szVersion, int *piError);
|
Exportiert: |
_DFCGetVersionFirmware@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
char *szVersion |
Zeiger auf Zeichenkette für die
Versionsnummer. Mindestens 32 Zeichen. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Lesen der Gerätesoftwareversion im
Textformat. z. B.: 04.00.19 |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCGetVersionFirmwareFromFile(int iChannelNum,
char *szFileName, char *szVersion, int *piError);
|
Exportiert: |
_DFCGetVersionFirmwareFromFile@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
char *szFileName |
Dateiname der Gerätedatei, wenn
nötig mit Pfadangabe.
("Firmware" mit Zusatzdaten, Endung: *.hex) |
char *szVersion |
Zeiger auf Zeichenkette für die
Versionsnummer. Mindestens 32 Zeichen. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3.
Dieser Wert besagt mit der Nummer 1, dass die Prüfsumme des Dateikopfes
oder der enthaltenen Firmwaredaten unstimmig ist. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
>7 |
Anzahl der kopierten Zeichen in den
Puffer "szVersion". |
Beschreibung:
Lesen der Gerätesoftwareversion im
Textformat. z. B.: 04.00.23 direkt aus der Firmwaredatei. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCGetInfo(int channelID, int deviceID, char *name, char *params,
char *info, int *len, int *piError);
|
Exportiert: |
_DFCGetInfo@28 |
Parameter:
int channeID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
char *name |
Name der abzurufenden Information.
(z.B. "ACCESS.MODULE")
Der Name setzt sich aus zwei Bestandteilen zusammen die mit einem Punkt
miteinander verbunden werden.
Der erste Teil gibt den Bereich an und kann folgende Zeichenfolge sein:
Bereich | Beschreibung |
ACCESS | für Zutritt |
der zweite Teil gibt den Namen der anzusprechenden Komponende an, und kann
folgende Zeichenfolgen sein:
Bereich | Komponende | Beschreibung |
ACCESS | MODULE | Zutrittsmodul / -leser |
|
char *params |
Zeiger auf die ggf. anzugebende
Parameterliste als Zeichenfolge. Die einzelnen Parameter müssen durch ein
CR (dezimal 13) voneinander getrennt werden.
Die anzugebende Parameterliste setzt sich für die entsprechenden Namen
folgendermaßen zusammen:
Name | Parameter | Beschreibung |
ACCESS.MODULE | 1 | Türmodulnummer
gemäß der Spalte "TM" der Zutrittsliste
"Reader". Der Wert muss immer 3 Ziffern umfassen. Genauere Angaben hierzu
finden sie im Handbuch im Kapitel "Zutrittskontrolle 2". |
|
char *info |
Zeiger auf Zeichenkette für den
Informationsstring. Die einzelnen Teilangaben sind mit dem Steuerzeichen
CR ('\r') voneinander getrennt.
Der Informationsstring für ACCESS.MODULE gliedert sich wie folgt.
Wert | Position | Beschreibung |
Status | 1 | Gibt
den aktuellen Status des Moduls zurück. Genauere Angaben hierzu
finden sie im Handbuch im Unterkapitel "Statusmeldungen der
Zutrittskontrolle" der Zutrittskontrolle 2. |
Name | 2 | Gibt
die Bezeichnung des angesprochenen Moduls zurück. |
Firmwareversion | 3 | Gibt
die Firmwareversion des angesprochenen Moduls zurück. |
... | ... | ... |
... | n | Zur
Zeit noch nicht definiert, jedoch denkbar. |
|
int *len |
Als Eingabe die Länge des
reservierten Buffers auf den der Zeiger *info verweist, als Ausgabe die
Länge der übergebenen Zeichenkette. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Lesen der Information eines bestimmten
Moduls.
Die zurückgelieferte Information liegt in einer Zeichenfolge vor,
die je nach abgefragtem Modul verschiedene Informationen enthalten kann.
Diese Informationszeichenfolge muss für die weitere Verarbeitung ggf. in
ihre Bestandteile zerlegt werden, wozu alle einzelnen Informationsteile
durch ein CR (dezimal 13) Zeichen voneinander getrennt werden. Bitte
beachten Sie auch, dass sich der Name aus zwei Bestandteilen
zusammensetzt, zum einen aus Bereichsbezeichner wie ACCESS um das
Zutrittsmodul anzusprechen und zum zweiten aus der Bezeichnung der
anzusprechenden "Komponente" in diesem Bereich.
Möchten Sie z. B. die Information zum angeschlossenen Stichleser am
Türmodul mit der Busnummer 2 abrufen, benötigen Sie zum einen den "name"
"ACCESS.MODULE\0" und die zugehörige "params"
Parameterliste "021\0". Nach erfolgreicher Ausführung der
Funktion stehen Ihnen die gelieferten Informationen in der Zeichenkette
auf die "info" verweist zur Verfügung. (Das Zeichen '\0' stellt
die Nullterminierung der Zeichenfolge dar.)
|
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCOpenComServerMode(int channelID, int deviceID, char *comm, int baudRate,
int byteSize, int parity, int stopBits, int flags,int timeoutToClose, int *error);
|
Exportiert: |
_DFCOpenComServerMode@40 |
Parameter:
int channeID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceD |
Gibt die Busnummer an. Muss in der derzeitigen Implementierung immer 254 sein,
da der “Transparentmodus” in einem RS485 - Netzwerk nicht vorgesehen ist. |
char *comm |
Zeiger auf Zeichenkette für den zu öffnenden virtuellen COM-Port.
Zeichenkette | Bedeutung |
COM5 |
Gerät | Schnittstelle |
PZE-MasterIV | Nicht vorhanden. |
ZK-MasterIV | Nicht vorhanden. |
BDE-MasterIV | COM3 (siehe Handbuch) |
Mobil-MasterIV | COM2 (siehe Handbuch) |
MDE-BoxIV | COM2 (siehe Handbuch) |
AE-MasterIV | COM2 (siehe Handbuch) |
|
COM6 |
Gerät | Schnittstelle |
PZE-MasterIV | COM1 (siehe Handbuch) |
ZK-MasterIV | COM1 (siehe Handbuch) |
BDE-MasterIV | COM2 (siehe Handbuch) |
Mobil-MasterIV | COM1 (siehe Handbuch) |
MDE-BoxIV | COM1 (siehe Handbuch) |
AE-MasterIV | COM1 (siehe Handbuch) |
|
|
int baudRate |
Die zu verwendende Baud Rate der Schnittstelle.
Wert | Bedeutung |
9600 | 9600bd |
19200 | 19200bd |
38400 | 38400bd |
|
int byteSize |
Die zu verwendende Anzahl "Bits per Byte" der Schnittstelle.
Wert | Bedeutung |
4 | 4 Bit |
5 | 5 Bit |
6 | 6 Bit |
7 | 7 Bit |
8 | 8 Bit (Standard) |
|
int parity |
Wert | Bedeutung |
0 | Paritätsprüfung nicht durchführen. (Standard) |
1 | Paritätsprüfung durchführen. |
|
int stopBits |
Die zu verwendende Anzahl Stoppbits
Wert | Bedeutung |
0 | 1 Stoppbit (Standard) |
1 | 1,5 Stoppbits |
2 | 2 Stoppbits |
|
int flags |
Zusätzliche Informationen um den Com-Server-Mode zu beeinflussen:
Bit Nr. | Bedeutung |
0 | Bei gesetztem Bit, wird nach einem Pufferüberlauf, die Datenweiterleitung in beide Richtungen abschalten. |
... | Unbenutzt. Bitte immer 0. |
|
int timeoutToClose |
Zeitspanne nachdem der COM-Port geschlossen wird, wenn kein Datentransfer statt findet.
Wert | Bedeutung |
0 | Es wird nicht automatisch geschlossen. |
1..255 | Es wird, wenn für die Angegebene Zeit (in Sekunden) kein Datenfluss vorhanden war, automatisch geschlossen. |
|
int *error |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Aktiviert bei dem angesprochenen Gerät einen “Transparentmodus” zwischen dem aktuell geöffneten Kanal und einem COM-Port des Gerätes.
Nachdem Sie einen COM-Port des Gerätes mit dem Kanal verbunden haben ist es z. B. möglich eine Datei direkt an eine angeschlossene CNC-Maschine zu senden. Es werden sozusagen alle darauffolgenden Daten 1:1 zwischen dem Geräte-COM-Port und dem geöffneten Kanal durchgereicht, lediglich der Befehl zum Aufheben
des “Transparentmodus” (DFCCloseComServerMode) wird abgefangen.
Um Daten direkt in den Kanal zu schreiben steht Ihnen die Funktion DFCWrite zur Verfügung, um ggf. Antwortdaten aus dem Kanal zu lesen, steht Ihnen die Funktion DFCRead zur Verfügung.
Sie könnten z. B. auch über einen Aufruf der Funktion DFCGetComPort, den DLL-eigenen Schnittstellenhandle ermitteln und somit über eigene Schreib-/Leseroutinen arbeiten, ggf. die Timeboy-DLL anbinden.
Bitte beachten Sie, dass der Geräteinterne Puffer für jede Kommunikationsrichtung 512Byte umfasst und bei Verwendung ungleicher Übertragungsraten ein Überlauf stattfinden kann. Wenn Sie z.B. über die TCP/IP Schnittstelle (57600bd) Daten an einen COM-Port mit eingestellten
9600bd übertragen muss der Gesamtdatenstrom immer nach 512 Byte für ca. 400ms unterbrochen werden. Einen eventuell eingetretenen Überlauf bekommen Sie von der Funktion DFCCloseComServerMode gemeldet. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCCloseComServerMode(int channelID, int deviceID, int *error);
|
Exportiert: |
_DFCCloseComServerMode@12 |
Parameter:
int channeID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceD |
Gibt die Busnummer an. Muss in der derzeitigen Implementierung immer 254 sein,
da der “Transparentmodus” in einem RS485 - Netzwerk nicht vorgesehen ist. |
int *error |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Deaktiviert bei dem angesprochenen Gerät einen evntl. zuvor eingestellten “Transparentmodus”.
Siehe Funktion DFCOpenComServerMode zum öffnen der Verbindung. Wenn wärend der Datenübertragung ein
Geräteinterner Speicherüberlauf stattfindet, gibt die Funktion den Fehlercode 40 zurück. |
Konfigurationsdaten mit dem Gerät abgleichen.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCSetupLaden(int iChannelNum, int iBusNum,
char *szFileName, int *piError);
|
Exportiert: |
_DFCSetupLaden@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
char *szFileName |
Dateiname der Setup-Datei (wenn notwendig mit Pfad). |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Setup-Daten aus Datei (*.aes) lesen und in Gerät übertragen. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCDownload(int iChannelNum, int iBusNum,
char *szFileName, int *piError);
|
Exportiert: |
_DFCDownload@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
char *szFileName |
Dateiname der Setup-Datei (wenn notwendig mit Pfad). |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Setup-Daten aus Gerät lesen und in Datei
(*.aes) übertragen. |
Zugriff auf die Listen im Gerät.
Wird unterstützt ab Firmwareversion:
PZE-MasterIV, ZK-MasterIV, MDE-MasterIV: 04.01.01.30 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCOpenTable(int channelID, int deviceID, char *name, int options,
int *handle, char *reserved, int *piError);
|
Exportiert: |
_DFCOpenTable@28 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
char *name |
Der Name der zu öffnenden Tabelle.
Die Gerätetabellen sind in verschiedene Bereiche eingeteilt, welche Sie
über ein Namenspräfix ansprechen.
LIST. -> für Listenbeschreibungen aus dem Setup. (z. B.
LIST.Personalstamm)
ACCESS. -> für Listen der Zutrittskontrolle Version 2 |
int options |
Zur Zeit nicht verwendet. Bitte immer
0 übergeben. |
int *handle |
Handle erhält eine eindeutige
Nummer, die bei allen weiteren Funktionsaufrufen verwendet werden muss. |
char *reserved |
Reserviert. Bitte immer einen
Leerstring übergeben. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Öffnet eine Liste und gibt einen Handle darauf zurück. Alle weiteren
Listenfunktionen unter diesem Kapitel arbeiten mit dem hier zurückgelieferten
Handle.
Die Liste muß um sie öffnen zu können, zuvor mit der Funktion DFCLoadListen in das
Gerät übertragen worden sein.
Um die Liste "Personalstamm" aus dem Setup zu öffnen müssen Sie den
Namen "LIST.Personalstamm" verwenden, um die Liste "Identification"
aus der Zutrittskontrolle zu öffnen, müssen Sie den Namen "ACCESS.Identification"
verwenden.
|
Wird unterstützt ab Firmwareversion:
PZE-MasterIV, ZK-MasterIV, MDE-MasterIV: 04.01.01.30 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCCloseTable(int channelID, int deviceID, int handle, int *piError);
|
Exportiert: |
_DFCCloseTable@16 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int handle |
Der Listenhandle. Handle von
vorherigem Aufruf von DFCOpenTable. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Wird unterstützt ab Firmwareversion:
PZE-MasterIV, ZK-MasterIV, MDE-MasterIV: 04.01.01.30 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCSetFilter(int channelID, int deviceID, int handle,
char *filter, int *piError);
|
Exportiert: |
_DFCSetFilter@20 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int handle |
Der Listenhandle. Handle von
vorherigem Aufruf von DFCOpenTable. |
char *filter |
Filterzeichenfolge nach folgendem
Schema:
Spaltenname = 'Spaltenwert'
Der Spaltenwert kann in einzel- oder Doppelten Anführungszeichen stehen. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Setzt einen Filter auf die angegebene Liste. Nach Aufruf dieser Funktion muss
mit DFCSkip der Datensatzzeiger auf einen gültigen
Datensatz verschoben werden.
|
Wird unterstützt ab Firmwareversion:
PZE-MasterIV, ZK-MasterIV, MDE-MasterIV: 04.01.01.30 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCGetFilter(int channelID, int deviceID, int handle,
char *filter, int *len, int *piError);
|
Exportiert: |
_DFCGetFilter@24 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int handle |
Der Listenhandle. Handle von
vorherigem Aufruf von DFCOpenTable. |
char *filter |
Filter erhält die ermittelte
Zeichenfolge des Filterkriteriums.
Auf nach folgendem Schema: Spaltenname = 'Spaltenwert' |
int *len |
Als Eingabe die Länge des
reservierten Buffers auf den der Zeiger *filter verweist, als Ausgabe die
Länge der übergebenen Zeichenkette. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Ermittelt das aktuell gesetzte Filterkriterium auf der Liste.
|
Wird unterstützt ab Firmwareversion:
PZE-MasterIV, ZK-MasterIV, MDE-MasterIV: 04.01.01.30 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCClearFilter(int channelID, int deviceID, int handle, int *piError);
|
Exportiert: |
_DFCClearFilter@16 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int handle |
Der Listenhandle. Handle von
vorherigem Aufruf von DFCOpenTable. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Entfernt einen gesetzten Filter von der Liste. Nach Aufruf dieser Funktion
muss mit DFCSkip der Datensatzzeiger auf einen gültigen
Datensatz verschoben werden.
|
Wird unterstützt ab Firmwareversion:
PZE-MasterIV, ZK-MasterIV, MDE-MasterIV: 04.01.01.30 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCSkip(int channelID, int deviceID, int handle,
int offset, int origin, int *piError);
|
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int handle |
Der Listenhandle. Handle von
vorherigem Aufruf von DFCOpenTable. |
int offset |
Anzahl zu übergehenden Datensätze.
Der Wert kann auch Negativ sein. |
int origin |
Worauf sich Offset beziehen soll:
Wert | Bedeutung |
0 | vom Beginn der Liste. |
1 | von aktueller Position in Liste. |
2 | vom Ende der Liste. |
|
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Versetzen des Datensatzzeigers einer Liste.
|
Achtung:
Bei Verwendung von sortierten Listen, darf die Sortierspalte
(Schlüsselfel) nicht verändert werden, da keine automatische Umsortierung erfolgt. |
Wird unterstützt ab Firmwareversion:
PZE-MasterIV, ZK-MasterIV, MDE-MasterIV: 04.01.01.30 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCSetField(int channelID, int deviceID,
int handle, char *name, char *value, int *piError);
|
Exportiert: |
_DFCSetField@24 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int handle |
Der Listenhandle. Handle von
vorherigem Aufruf von DFCOpenTable. |
char *name |
Feldname. |
char *value |
Wert der gesetzt werden soll. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Wird unterstützt ab Firmwareversion:
PZE-MasterIV, ZK-MasterIV, MDE-MasterIV: 04.01.01.30 |
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCGetField(int channelID, int deviceID, int handle,
char *name, char *value, int *len, int *piError);
|
Exportiert: |
_DFCGetField@28 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int handle |
Der Listenhandle. Handle von
vorherigem Aufruf von DFCOpenTable. |
char *name |
Feldname. |
char *value |
Value erhält die gelesenen Daten
Feldes. |
int *len |
Als Eingabe die Länge des Buffers
auf den der Zeiger *value verweist, als Ausgabe die übergebene Anzahl
Daten. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Sammeln der anfallenden Daten aus den Geräten und Interpretieren der
gelieferten Informationen durch Abgleich mit Gerätekonfiguration.
Achtung:
Es ist nicht notwendig diese Funktion zu benutzen. Es ist davon sogar abzuraten, da
aktuell eingegebene Daten ungeachtet gelöscht werden könnten. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComClearData(int iChannelNum, int iBusNum);
|
Exportiert: |
_DFCComClearData@8 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
Rückgabewert:
0 |
Bei der Befehlsausführung ist ein Fehler
aufgetreten. |
1 |
Funktion wurde erfolgreich ausgeführt. |
Beschreibung:
Löscht alle Daten im Gerät. Rücksetzten der Schreib und Lesezeiger im Gerät auf Speicheranfang.
|
Ruft intern die Funktion DFCReadRecord auf.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComCollectData(int iChannelNum, int iBusNum,
int *piError);
|
Exportiert: |
_DFCComCollectData@12 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
-1 |
Fehler bei Durchführung. |
0 |
Keine Daten vorhanden |
1 |
Offline Daten
vorhanden |
2 |
Online Daten vorhanden |
Beschreibung:
Liest alle vorhandenen Daten
aus dem Gerät aus und speichert sie im internen DLL-Speicher. Ab der Firmware
mit Majorversion >= 2 wird hier nur ein Datensatz aus dem Gerät
gelesen und die Busnummer für die weiteren Datensatzanfragen mit
DFCComGetDatensatz festgelegt.
Die Datensätze werden zwischen Online und Offline unterschieden.
Online - Daten sind Daten die gerade eingegeben wurden. Ihr Zeitbereich
liegt im definierten Server - Timeout, in diesem wurden sie von der DLL
ausgelesen. Online - Daten können geprüft werden und der Benutzer kann
mittels Mitteilung zu einer Neueingabe aufgefordert werden (siehe DFCComSendMessage). Offline-Daten
wurden nach dem Server - Timeout aufgenommen. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCComGetDatensatz(int iChannelNum, unsigned char *pucBuf,
int *piLength, int *piError);
|
Exportiert: |
_DFCComGetDatensatz@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
unsigned char *pucBuf |
Speicher, in dem die Daten abgelegt
werden sollen. |
int *piLength |
Speicher in dem die Länge der gerade empfangen
Daten gespeichert werden soll. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
-1 |
Fehler bei Durchführung. |
0 |
Keine Daten vorhanden. |
1 |
Weitere Daten vorhanden. |
2 |
Letzter Datensatz. |
Beschreibung:
Gibt genau einen Datensatz an die aufrufende Anwendung zurück.
Ist unter
mehreren Datensätzen ein Online-Datensatz vorhanden, so wird dieser immer als
letzter Datensatz aus der DLL in die Anwendung übertragen (er ist ja auch
derjenige, der zuletzt eingegeben wurde). Die im Datensatz enthaltene
Datenstruktur ist in Kapitel 3 beschrieben.
Ab der Firmwareversion mit Majorversion >= 2 wird hier der zuletzt
gelesene Datensatz übergeben, dann quittiert und der nächste aus dem
Gerät gelesen (wenn vorhanden). Auf diese art werden die Datensätze
satzweiße aus dem Gerät geladen. Wenn mit dem vorherigen Aufruf der
Funktion DFCComCollectData ein Online - Datensatz gemeldet wurde, wird
dieser als erster geliefert. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCLoadDatensatzbeschreibung(int iChannelNum, int iBusNum,
int *piError);
|
Exportiert: |
_DFCLoadDatensatzbeschreibung@12 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer. Wertebereich: (1 - 31, 254) |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Datensatzbeschreibungen aus dem Gerät lesen. Die Datensatzbeschreibungen werden
in der DLL in einen Buffer abgelegt und können mit den Funktionen "DFCDatB..."
ausgewertet werden. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCDatBCnt(int iChannelNum);
|
Exportiert: |
_DFCDatBCnt@4 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
Rückgabewert:
Anzahl |
Anzahl gefundener
Datensatzbeschreibungen im Gerät. |
Beschreibung:
Anzahl der ausgelesenen
Datensatzbeschreibungen (nur gültig wenn vorher die Funktion "DFCLoadDatensatzbeschreibung"
aufgerufen wurde). |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCDatBDatensatz(int iChannelNum,
int iDataNum, unsigned char *szName, int *piFieldCount);
|
Exportiert: |
_DFCDatBDatensatz@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iDataNum |
Nummer der Datensatzbeschreibung aus
Setup.
(wird ab 0 gezählt) |
unsigned char *szName |
Name der Datensatzbeschreibung.
(Speicher für Name muss min. 17 Byte haben) |
int *piFieldCount |
Anzahl Felder der Datensatzbeschreibung. |
Rückgabewert:
0 |
Datensatzbeschreibung im Gerät nicht
vorhanden. |
1 |
Daten wurden übergeben. |
Beschreibung:
Daten einer Datensatzbeschreibung abrufen (nur gültig wenn vorher die Funktion
"DFCLoadDatensatzbeschreibung" aufgerufen wurde). Im Gerät können
Datensätze mit unterschiedlichem Format gespeichert werden. Im Setup-Programm
werden die Datensätze unter dem Punkt "Datensatzbeschreibungen"
festgelegt. Die erste Datensatzbeschreibung im Setup-Baum hat die Nummer 0, die
zweite die Nummer 1 ... |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCDatBFeld(int iChannelNum, int iDataNum,
int iField, unsigned char *szName, int *piType, int *piLength);
|
Exportiert: |
_DFCDatBFeld@24 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iDataNum |
Nummer der Datensatzbeschreibung (wird ab 0 gezählt). |
int iField |
Feld der Datensatzbeschreibung entsprechend Reihenfolge im Setup (wird ab
0 gezählt). |
unsigned char *szName |
Name des Feldes. (Speicher für Name
muss min. 17 Byte
haben) |
int *piType |
Datentyp des Feldes wie im Setup
definiert:
Wert | Bedeutung |
1 | unsigned long 4 Byte |
2 | Date und Time 7 Byte |
3 | wie Typ 4, es sind jedoch nur Ziffern erlaubt |
4 | Alpha-Numerisch ASCII |
5 | Datum 4 Byte Y100,Y,M,D |
6 | Zeit 3 Byte (Stunde, Minute, Sekunde) |
|
int *piLength |
Länge des Feldes in
Byte. Bei Typ 3 und 4 wird die abschließende "0" mitgezählt.
z.B.
ASCII-Feld 15 Zeichen, Len = 15 + 1 = 16 Byte |
Rückgabewert:
0 |
Datensatzbeschreibung oder Feldnummer im
Gerät nicht vorhanden. |
1 |
Daten wurden übergeben. |
Beschreibung:
Daten eines Feldes
einer Datensatzbeschreibung abrufen (nur gültig wenn vorher die Funktion "DFCLoadDatensatzbeschreibung"
aufgerufen wurde). |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCReadRecord(int channelID, int deviceID,
char *buf, int *length, int *err);
|
Exportiert: |
_DFCReadRecord@20 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer. Wertebereich: (1 - 31, 254) |
char *buf |
Speicher, in dem die Daten abgelegt
werden sollen. |
int *length |
Speicher in dem die Länge der gerade empfangen
Daten gespeichert werden soll. |
int *err |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
-1 |
Fehler bei Durchführung. |
0 |
Es liegen keine Datensätze vor. |
1 |
Daten eines Online - Datensatzes
gelesen. |
2 |
Wiederholt die Daten eines Online -
Datensatzes gelesen. |
3 |
Daten eines Offline - Datensatzes
gelesen. |
4 |
Wiederholt die Daten eines Offline -
Datensatzes gelesen. |
Beschreibung:
Lesen der Daten des nächsten anstehenden
Datensatzes. Nachdem der Datensatz gelesen wurde, muss mit DFCQuitRecord
dieser quittiert werden. Erst wenn der Datensatz mit DFCQuitRecord
erfolgreich quittiert wurde, kann mit einem folgenden Aufruf von
DFCReadRecord der nächste anstehende Datensatz gelesen werden. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCQuitRecord(int channelID, int deviceID, int *err);
|
Exportiert: |
_DFCQuitRecord@12 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer. Wertebereich: (1 - 31, 254) |
int *err |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
-1 |
Fehler bei Durchführung. |
0 |
Keine Quittung nötig. |
1 |
Daten eines Online - Datensatzes
quittiert. |
2 |
Wiederholt die Daten eines Online -
Datensatzes quittiert. |
3 |
Daten eines Offline - Datensatzes
quittiert. |
4 |
Wiederholt die Daten eines Offline -
Datensatzes quittiert. |
Beschreibung:
Quittieren (löschen) der Daten des zuvor mit DFCReadRecord
gelesenen Datensatzes. |
Aufbereiten von Listendaten und laden dieser in die Geräte.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCMakeListe(
int iChannelNum, int iListNum, int iLineCount, int iListSize,
unsigned char *pucBuf, int iListMemSizeNum);
|
Exportiert: |
_DFCMakeListe@24 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im Setup.
Die erste Listenbeschreibung im Setup hat die Nummer "0". |
int iLineCount |
Anzahl der Zeilen (Datensätze) der Liste. |
int iListSize |
Gesamtgröße der
Liste in Byte.
Berechnet sich aus "iLineCount" mal Anzahl der Byte pro
Zeile. |
unsigned char *pucBuf |
Zeiger auf die Listendaten. |
int iListMemSizeNum |
Größe des Speichers für Listen.
Muss beim AE III+ immer
"0" sein (ist vom Timeboy übernommen). Es sind (100kByte / (256kByte
- 12kByte Verwaltungsdaten => 244kByte) für Listen
fest eingestellt. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Daten einer Liste in den internen Buffer der DLL schreiben.
Die Listendaten müssen immer exakt mit der Listenbeschreibung im Setup
übereinstimmen. Zeichenketten sind mit NULL (Hexadezimalwert 0x00, nicht
zu verwechseln mit ASCII Zeichen "0", Hexadezimalwert 0x30) auf die im Setup vorgegebene
Feldlänge zu füllen. Zusätzlich ist die abschließende NULL zu beachten.
Wenn im
Setup eine Zeichenkette mit 16 Zeichen angelegt wurde, ist die Feldlänge exakt
17 Byte. Trennzeichen zwischen den Feldern und den Zeilen werden nicht
verwendet.
Beispiel:
Liste mit 2 Feldern:
Personalnummer (nur Ziffern) 4 Byte;
Name Zeichenkette (ASCII - Zeichen) 16 Zeichen.
Eine Zeile besteht dann aus genau 4 + 1 + 16 + 1 = 22
Byte. Wenn 3 Zeilen angelegt werden sind exakt 3*22 = 66 Byte anzulegen. |
Achtung:
Bitte beachten Sie, daß in den MasterIV-Geräten ein Flashspeicher zum Einsatz kommt.
Laut dem Hersteller kann jeder Speicherblock (512Byte) maximal 100.000 mal beschrieben werden.
Die Firmware der Geräte verteilt die Zugriffslast auf die einzelnen Speicherblöcke und markiert intern defekte Blöcke.
Es ist jedoch trotz dieses Sicherheitsmechanismus von all zu häufiger Übertragung der Listendaten abzuraten.
Die Applikation sollte nur bei Änderungen die Listen neu übertagen und nicht zyklisch permanent.
|
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCLoadListen(int iChannelNum, int iBusNum,
int *piError);
|
Exportiert: |
_DFCLoadListen@12 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Listendaten aus internen Buffer
der DLL in das Gerät laden. Upload der zuvor mit DFCMakeListe
erstellten Listendaten. Wenn die Firmwareversion die importierte Menge der
Listendaten nicht unterstützt, wird die Fehlermeldung 13 (siehe Tabelle
1.3.3) zurückgegeben. Die Firmwarestände des AEIII+, sowie
Firmwarestände des PZE-MasterIV bis 04.00.23 unterstützen 100kByte
Listenspeicher, spätere Versionen wie 04.00.23 ca. 256kByte. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCClrListenBuffer(int iChannelNum); |
Exportiert: |
_DFCClrListenBuffer@4 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
Rückgabewert:
Beschreibung:
Die Listendaten im Buffer der DLL werden
gelöscht. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCLoadListenbeschreibung(int iChannelNum, int iBusNum,
int *piError);
|
Exportiert: |
_DFCLoadListenbeschreibung@12 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer. Wertebereich: (1 - 31, 254) |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Listenbeschreibungen aus dem Gerät lesen. Die
Listenbeschreibungen werden in der DLL in einen Buffer abgelegt
und können mit den Funktionen "DFCListB..." ausgewertet werden. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCListBCnt(int iChannelNum);
|
Exportiert: |
_DFCListBCnt@4 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
Rückgabewert:
Anzahl |
Anzahl gefundener
Listenbeschreibungen im Gerät. |
Beschreibung:
Anzahl der ausgelesenen
Listenbeschreibungen (nur gültig wenn vorher die Funktion "DFCLoadListenbeschreibung"
aufgerufen wurde). |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCListBDatensatz(int iChannelNum, int iDataNum,
unsigned char *szName, int *piFieldCount, int *piVar);
|
Exportiert: |
_DFCListBDatensatz@20 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iDataNum |
Nummer der Listenbeschreibung aus
Setup.
(wird ab 0 gezählt).
Ab DLL - Verison 02.00.22 Bereich:
100 - 103 für Zutrittslisten Version 1. (z. B. 102 für Liste
"Personalstamm")
Offsetnummern der Listen siehe DFCMakeEntranceList.
Ab DLL - Version 04.01.00 Bereich:
200 - 206 für Zutrittslisten Version 2. (z. B. 203 für Liste
"Time")
Offsetnummern der Listen siehe DFCMakeEntrance2List.
|
unsigned char *szName |
Name der Listenbeschreibung.
(Speicher für Name muss min. 17 Byte haben). |
int *piFieldCount |
Anzahl Felder der Liste. |
int *piVar |
Ob Variable Liste. Immer 0.
(Ist vorhanden wegen Kompatibilität mit Timeboy). |
Rückgabewert:
0 |
Listenbeschreibung im Gerät nicht
vorhanden. |
1 |
Daten wurden übergeben. |
Beschreibung:
Daten einer
Listenbeschreibung abrufen (nur gültig wenn vorher die Funktion "DFCLoadListenbeschreibung"
aufgerufen wurde, dieses wird bei Zutrittslisten nicht benötigt). Im Gerät können Listen mit unterschiedlichem Format
gespeichert werden. Im Setup - Programm werden die Listen unter dem Punkt
"Listenbeschreibungen" festgelegt. Die erste Listenbeschreibung im
Setup-Baum hat die Nummer 0, die zweite die Nummer 1 ... |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCListBFeld(int iChannelNum, int iDataNum,
int iField, unsigned char *szName, int *piType, int *piLength);
|
Exportiert: |
_DFCListBFeld@24 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iDataNum |
Nummer der Listenbeschreibung aus
Setup.
(wird ab 0 gezählt).
Ab DLL - Verison 02.00.22 Bereich:
100 - 103 für Zutrittslisten Version 1. (z. B. 102 für Liste
"Personalstamm")
Offsetnummern der Listen siehe DFCMakeEntranceList.
Ab DLL - Version 04.01.00 Bereich:
200 - 206 für Zutrittslisten Version 2. (z. B. 203 für Liste
"Time")
Offsetnummern der Listen siehe DFCMakeEntrance2List.
|
int iField |
Feld der Listenbeschreibung entsprechend Reihenfolge im Setup.
(wird ab 0 gezählt). |
unsigned char *szName |
Name des Feldes.
(Speicher für Name muss min. 17 Byte haben) |
int *piType |
Datentyp des Feldes wie im Setup
definiert:
Wert | Bedeutung |
1 | unsigned long 4 Byte |
2 | Date und Time 7 Byte |
3 | wie Typ 4, es sind jedoch nur Ziffern erlaubt. |
4 | Alpha-Numerisch ASCII. |
5 | Datum 4 Byte Y100,Y,M,D. |
6 | Zeit 3 Byte (Stunde, Minute, Sekunde). |
|
int *piLength |
Länge des Feldes in Byte wie im
Setup definiert. Bei Typ 3 und 4 wird die anbschliesende "0"
mitgezählt.
z.B.: ASCII-Feld 15 Zeichen, Len = 15 + 1 = 16 Byte |
Rückgabewert:
0 |
Listenbeschreibung oder Feldnummer im
Gerät nicht vorhanden. |
1 |
Daten wurden übergeben. |
Beschreibung:
Daten eines Feldes einer Listenbeschreibung abrufen (nur gültig wenn vorher
die Funktion "DFCLoadListenbeschreibung" aufgerufen
wurde, dieses wird bei Zutrittslisten nicht benötigt). |
Aufbereiten und laden von Listendaten für die Zutrittskontrolle.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCMakeEntranceList(
int iChannelNum, int iListNum, int iLineCount, int iListSize,
unsigned char *pucBuf, int *piError);
|
Exportiert: |
_DFCMakeEntranceList@24 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im
Setup unter Baumeintrag Zutrittskontrolle.
Die erste Listenbeschreibung unter dem Eintrag hat die Nummer "0". |
int iLineCount |
Anzahl der Zeilen (Datensätze) der Liste. |
int iListSize |
Gesamtgröße der
Liste in Byte.
Berechnet sich aus "iLineCount" mal Anzahl der Byte pro
Zeile. |
unsigned char *pucBuf |
Zeiger auf die Listendaten. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Daten einer Liste in den internen Buffer der DLL schreiben.
Die Listendaten müssen immer exakt mit der Listenbeschreibung im Setup
übereinstimmen. Zeichenketten sind mit NULL (Hexadezimalwert 0x00, nicht
zu verwechseln mit ASCII Zeichen "0", Hexadezimalwert 0x30) auf die im Setup vorgegebene
Feldlänge zu füllen. Zusätzlich ist die abschließende NULL zu beachten.
Wenn im
Setup eine Zeichenkette mit 16 Zeichen angelegt wurde, ist die Feldlänge exakt
17 Byte. Trennzeichen zwischen den Feldern und den Zeilen werden nicht
verwendet.
Beispiel:
Liste mit 2 Feldern:
Personalnummer Zeichenkette (nur Ziffern) 4 Byte;
Name Zeichenkette (ASCII - Zeichen) 16 Zeichen.
Eine Zeile besteht dann aus genau 4 + 1 + 16 + 1 = 22
Byte. Wenn 3 Zeilen angelegt werden sind exakt 3*22 = 66 Byte anzulegen.
Die Listendaten werden in der DLL für das Gerät komprimiert und sortiert
aufbereitet, dadurch kann der Aufruf bei einer Personalliste mit 5120
Einträgen im ungünstigsten Fall bis zu 7 Sekunden dauern.
Bedeutung des Parameters iListNum ist:
0: Zeitzonen (22 Byte) "zu komprimierten (6 Byte) max. 16 DS
möglich"
1: Zeitmodelle (35 Byte) "zu komprimierten (3 Byte) max. 32 DS
möglich"
2: Personalstamm (19 Byte) "zu komprimierten (16 Byte) max. 5120 DS
möglich"
3: Feiertage (16 Byte) "zu komprimierten (6 Byte) max. 64 DS
möglich" |
Achtung:
Bitte beachten Sie, daß in den MasterIV-Geräten ein Flashspeicher zum Einsatz kommt.
Laut dem Hersteller kann jeder Speicherblock (512Byte) maximal 100.000 mal beschrieben werden.
Die Firmware der Geräte verteilt die Zugriffslast auf die einzelnen Speicherblöcke und markiert intern defekte Blöcke.
Es ist jedoch trotz dieses Sicherheitsmechanismus von all zu häufiger Übertragung der Listendaten abzuraten.
Die Applikation sollte nur bei Änderungen die Listen neu übertagen und nicht zyklisch permanent.
|
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCLoadEntranceList(int iChannelNum, int iBusNum,
int iListNum, int *piError);
|
Exportiert: |
_DFCLoadEntranceList@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im
Setup unter Baumeintrag Zutrittskontrolle.
Die erste Listenbeschreibung unter dem Eintrag hat die Nummer "0". Mit
"-1" werden alle Listen angesprochen. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Listendaten aus internen Buffer
der DLL in das Gerät laden. Upload der zuvor erstellten Listendaten. Mit der
Angabe "-1" als Listennummer werden alle Listenbuffer
übertragen, wobei der Import aller Listen abgeschlossen sein sollte. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCClearEntranceListBuffer(int iChannelNum, int iListNum); |
Exportiert: |
_DFCClearEntranceListBuffer@8 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im
Setup unter Baumeintrag Zutrittskontrolle.
Die erste Listenbeschreibung unter dem Eintrag hat die Nummer "0". Mit
"-1" werden alle Listen angesprochen. |
Rückgabewert:
Beschreibung:
Der Buffer für die Listendaten wird
gelöscht. Mit der Angabe "-1" als Listennummer werden alle für die
Zutrittskontrolle zur Verfügung gestellten Buffer gelöscht. |
Aufbereiten und laden von Listendaten für die Zutrittskontrolle.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCMakeEntrance2List(
int iChannelNum, int iListNum, int iLineCount, int iListSize,
unsigned char *pucBuf, int *piError);
|
Exportiert: |
_DFCMakeEntrance2List@24 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im
Setup unter Baumeintrag Zutrittskontrolle.
Die erste Listenbeschreibung unter dem Eintrag hat die Nummer "0". |
int iLineCount |
Anzahl der Zeilen (Datensätze) der Liste. |
int iListSize |
Gesamtgröße der
Liste in Byte.
Berechnet sich aus "iLineCount" mal Anzahl der Byte pro
Zeile. |
unsigned char *pucBuf |
Zeiger auf die Listendaten. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Daten einer Liste in den internen Buffer der DLL schreiben.
Die Listendaten müssen immer exakt mit der Listenbeschreibung im Setup
übereinstimmen. Zeichenketten sind mit NULL (Hexadezimalwert 0x00, nicht
zu verwechseln mit ASCII Zeichen "0", Hexadezimalwert 0x30) auf die im Setup vorgegebene
Feldlänge zu füllen. Zusätzlich ist die abschließende NULL zu beachten.
Wenn im
Setup eine Zeichenkette mit 16 Zeichen angelegt wurde, ist die Feldlänge exakt
17 Byte. Trennzeichen zwischen den Feldern und den Zeilen werden nicht
verwendet.
Beispiel:
Liste mit 2 Feldern:
Personalnummer Zeichenkette (nur Ziffern) 4 Byte;
Name Zeichenkette (ASCII - Zeichen) 16 Zeichen.
Eine Zeile besteht dann aus genau 4 + 1 + 16 + 1 = 22
Byte. Wenn 3 Zeilen angelegt werden sind exakt 3*22 = 66 Byte anzulegen.
Bedeutung des Parameters iListNum ist:
0: Reader (33 Byte)
1: Identification (64 Byte)
2: Location (20 Byte)
3: Time (25 Byte)
4: Holiday (21 Byte)
5: Events (17 Byte)
6: Action (21 Byte) |
Achtung:
Bitte beachten Sie, daß in den MasterIV-Geräten ein Flashspeicher zum Einsatz kommt.
Laut dem Hersteller kann jeder Speicherblock (512Byte) maximal 100.000 mal beschrieben werden.
Die Firmware der Geräte verteilt die Zugriffslast auf die einzelnen Speicherblöcke und markiert intern defekte Blöcke.
Es ist jedoch trotz dieses Sicherheitsmechanismus von all zu häufiger Übertragung der Listendaten abzuraten.
Die Applikation sollte nur bei Änderungen die Listen neu übertagen und nicht zyklisch permanent.
|
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCLoadEntrance2List(int iChannelNum, int iBusNum,
int iListNum, int *piError);
|
Exportiert: |
_DFCLoadEntrance2List@16 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im
Setup unter Baumeintrag Zutrittskontrolle 2.
Die erste Listenbeschreibung unter dem Eintrag hat die Nummer "0". Mit
"-1" werden alle zuvor importierten Listen angesprochen. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Listendaten aus internen Buffer
der DLL in das Gerät laden. Upload der zuvor erstellten Listendaten. Mit der
Angabe "-1" als Listennummer werden alle belegten Listenbuffer
übertragen. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCClearEntrance2ListBuffer(int iChannelNum, int iListNum); |
Exportiert: |
_DFCClearEntrance2ListBuffer@8 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im
Setup unter Baumeintrag Zutrittskontrolle.
Die erste Listenbeschreibung unter dem Eintrag hat die Nummer "0". Mit
"-1" werden alle Listen angesprochen. |
Rückgabewert:
Beschreibung:
Der Buffer für die Listendaten wird
gelöscht. Mit der Angabe "-1" als Listennummer werden alle für die
Zutrittskontrolle zur Verfügung gestellten Buffer gelöscht. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCEntrance2Identification(int channelID, int deviceID,
char *TM, char *Id, char *Pin, char *status, int *len, int *piError); |
Exportiert: |
_DFCEntrance2Identification@32 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
char *TM |
Der Wert der Zeichenfolge auf den
dieser Zeiger verweist, muss dem Format des Feldes "TM" der
"Reader" Liste folgen. Er muss demnach immer 3 Ziffern
umfassen. |
char *Id |
Der Wert der Zeichenfolge auf den
dieser Zeiger verweist, muss dem Format des Feldes "Id" der
"Identification" Liste folgen. Er darf maximal 20 Zeichen lang
sein. |
char *Pin |
Der Wert der Zeichenfolge auf den
dieser Zeiger verweist, muss dem Format des Feldes "Pin" der
"Identification" Liste folgen. Er darf maximal 8 Ziffern
beinhalten. |
char *status |
Zeiger auf Zeichenkette die nach
erfolgreicher Abarbeitung der Funktion den Status der Zutrittsprüfung
erhält. Sie sollten mindestens 5 Zeichen vorsehen. |
int *len |
Als Eingabe die Länge des Buffers
auf den der Zeiger *status verweist, als Ausgabe die übergebene Anzahl
Zeichen. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt |
Beschreibung:
Durch Aufruf dieser Funktion kann eine
Zutrittsbuchung per DLL ausgeführt werden. Die Funktion lässt sich
aus Sicherheitsgründen nur auf Ausweise anwenden die im Feld "ActiveGeneral"
der "Identification" Liste entweder den Wert "2" oder
"9" eingetragen
haben.
Nähere Informationen für die zu übergebenen Feldwerte (TM, Id, Pin)
sowie den zurückgelieferten Status (status) entnehmen Sie bitte dem
jeweiligen Handbuch aus dem Kapitel "Zutrittskontrolle 2" und Unterkapitel "Statusmeldungen der
Zutrittskontrolle".
|
Zugriff auf die Fingertemplates eines evntl. eingebauten Fingerprintmoduls.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCFingerprintAppendRecord(int channelID, int deviceID,
int type, unsigned char *fingertemplate, int size, int *piError);
|
Exportiert: |
_DFCFingerprintAppendRecord@24 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int type |
Templatetype der übergeben wird.
Wert | Bedeutung |
0 | DIN V66400 (161 Byte)
Byte Nr. | Bezeichnung |
1..8 | PID (Es werden Byte 1 bis 4, als 32bit Wert, verwendet.) |
9 | FID |
10 | Quality |
11 | Anzahl Minutiae |
12 | X1 |
13 | Y1 |
14 | W1 |
15 | X2 |
16 | Y2 |
17 | W2 |
.. | ... |
.. | ... |
159 | X50 |
160 | Y50 |
161 | W50 |
|
... | |
|
unsigned char *fingertemplate |
Zeiger auf die Templatedaten. |
int size |
Die Länge des Buffers auf den der Zeiger *fingertemplate verweist. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Anfügen eines Fingertemplates an die Datentabelle des Fingerprints. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCFingerprintGetRecord(int channelID, int deviceID,
int type, int pid, int fid, unsigned char *fingertemplate,int *size int *piError);
|
Exportiert: |
_DFCFingerprintGetRecord@32 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int type |
Templatetype der übergeben wird.
Wert | Bedeutung |
0 | DIN V66400 (161 Byte)
Byte Nr. | Bezeichnung |
1..8 | PID (Es werden Byte 1 bis 4, als 32bit Wert, verwendet.) |
9 | FID |
10 | Quality |
11 | Anzahl Minutiae |
12 | X1 |
13 | Y1 |
14 | W1 |
15 | X2 |
16 | Y2 |
17 | W2 |
.. | ... |
.. | ... |
159 | X50 |
160 | Y50 |
161 | W50 |
|
... | |
|
int pid |
Personal Id des zu lesenden Templates. |
int fid |
Finger Id des zu lesenden Templates. Wertebereich (1 - 10) |
unsigned char *fingertemplate |
Zeiger auf die Templatedaten. |
int *size |
Als Eingabe die Länge des Buffers
auf den der Zeiger *template verweist, als Ausgabe die übergebene Anzahl
Zeichen. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Lesen eines Fingertemplates. Über die eindeutige Kombination aus PID/FID können mit dieser Funktion die entsprechenden Templatedaten ermittelt werden. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCFingerprintDeleteRecord(int channelID, int deviceID,
int pid, int fid, int *piError); |
Exportiert: |
_DFCFingerprintDeleteRecord@20 |
Parameter:
int channelID |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int deviceID |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int pid |
Personal Id des zu löschenden Templates. |
int fid |
Finger Id des zu löschenden Templates. Wertebereich (0, 1 - 10) |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt |
Beschreibung:
Löschen von Fingertemplates. Sie können einzelne Templates durch Angabe des entsprechenden pid,fid Pärchens löschen.
Es ist auch möglich durch Angabe einer pid und einer fid = 0, alle Fingertemplates zu dieser pid zu löschen. Wird eine pid = 0 und fid = 0 angegeben, werden alle Fingertemplates gelöscht. |
Aufbereiten und laden von Listendaten für angebundene Timeboy-Geräte.
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCMakeTimeboyList(int iChannelNum, int iGroupID, int iListNum,
int iLineCount, int iListSize, unsigned char *pucBuf, int flags, int *piError);
|
Exportiert: |
_DFCMakeTimeboyList@32 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iGroupID |
Ist die Timeboy-GruppenID. Bei Verwendung von 0 als GroupID, ist die so übergebene Liste für alle Gruppen gültig.
Über eine GroupID größer 0 kann eine eventuell vorhandene Globale Liste überlagert werden. |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im
Timboysetup unter Baumeintrag Listenbeschreibungen.
Die erste Listenbeschreibung unter dem Eintrag hat die Nummer "0". |
int iLineCount |
Anzahl der Zeilen (Datensätze) der Liste. |
int iListSize |
Gesamtgröße der
Liste in Byte.
Berechnet sich aus "iLineCount" mal Anzahl der Byte pro
Zeile. |
unsigned char *pucBuf |
Zeiger auf die Listendaten. |
int flags |
Bit Nr. | Bedeutung |
0 | Bei gesetztem Bit (Wert 1), wird diese Liste im Mobil-MasterIV gelöscht. Eventuell übergebenen Daten werden ignoriert. |
... | Unbenutzt. Bitte immer 0. |
|
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Daten einer Liste in den internen Buffer der DLL schreiben.
Die Listendaten müssen immer exakt mit der Listenbeschreibung im Setup
übereinstimmen. Zeichenketten sind mit NULL (Hexadezimalwert 0x00, nicht
zu verwechseln mit ASCII Zeichen "0", Hexadezimalwert 0x30) auf die im Setup vorgegebene
Feldlänge zu füllen. Zusätzlich ist die abschließende NULL zu beachten.
Wenn im
Setup eine Zeichenkette mit 16 Zeichen angelegt wurde, ist die Feldlänge exakt
17 Byte. Trennzeichen zwischen den Feldern und den Zeilen werden nicht
verwendet.
Beispiel:
Liste mit 2 Feldern:
Personalnummer Zeichenkette (nur Ziffern) 4 Byte;
Name Zeichenkette (ASCII - Zeichen) 16 Zeichen.
Eine Zeile besteht dann aus genau 4 + 1 + 16 + 1 = 22
Byte. Wenn 3 Zeilen angelegt werden sind exakt 3*22 = 66 Byte anzulegen.
|
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
int __stdcall DFCLoadTimeboyList(int iChannelNum, int iBusNum,
int iGroupID, int iListNum, int reserve, int *piError);
|
Exportiert: |
_DFCLoadTimeboyList@24 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iBusNum |
Die zu verwendende Busnummer.
Wertebereich: (1 - 31, 254) |
int iGroupID |
Ist die Timeboy-GruppenID. Bei Verwendung von 0 als GroupID, ist die so übergebene Liste für alle Gruppen gültig.
Über eine GroupID größer 0 kann eine eventuell vorhandene Globale Liste überlagert werden. |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im
Timeboysetup unter Baumeintrag Listenbeschreibungen.
Die erste Listenbeschreibung unter dem Eintrag hat die Nummer "0". |
int reserve |
Reserviert. Bitte immer eine 0 uebergeben. |
int *piError |
Error erhält eine Fehlernummer nach Tabelle 1.3.3. |
Rückgabewert:
0 |
Fehler bei Durchführung. |
1 |
Erfolgreich durchgeführt. |
Beschreibung:
Listendaten aus internen Buffer
der DLL in das Gerät laden. Upload der zuvor erstellten Listendaten. Mit der
Angabe "-1" als Listennummer werden alle belegten Listenbuffer
übertragen. |
Wird unterstützt ab Firmwareversion:
Deklaration:
extern "C" __declspec(dllexport)
void __stdcall DFCClearTimeboyListBuffer(int iChannelNum,
int iGroupID, int iListNum); |
Exportiert: |
_DFCClearTimeboyListBuffer@12 |
Parameter:
int iChannelNum |
Der zu verwendende Kanal.
Wertebereich: (1 - 250) |
int iGroupID |
Ist die Timeboy-GruppenID. Bei Verwendung von 0 als GroupID, ist die so übergebene Liste für alle Gruppen gültig.
Über eine GroupID größer 0 kann eine eventuell vorhandene Globale Liste überlagert werden. |
int iListNum |
Ist die Nummer der Liste entsprechend der Listenbeschreibung im
Timeboysetup unter Baumeintrag Listenbeschreibungen.
Die erste Listenbeschreibung unter dem Eintrag hat die Nummer "0". |
Rückgabewert:
Beschreibung:
Der Buffer für die Listendaten wird gelöscht.
Mit der Angabe "-1" als GroupID, werden alle Listenpuffer dieser GroupID gelöscht.
Mit der Angabe "-1" als Listennummer werden alle Listenpuffer dieser Listennummer, unter Beachtung der GroupID, gelöscht. |
Die verwendeten Datenstrukturen werden nachfolgend erklärt.
Es wird in jedem Datensatz die zugehörige Datensatzbeschreibung aus dem
Setup mitgeführt.
Ein an die Anwendung überlieferter Datensatz sieht immer wie folgt aus:
Byte - Nummer: |
0 |
1 |
2 |
3... (length-1) |
Byte - Inhalt:
| DataNum |
Daten des Datensatzes. |
Es werden immer alle Felder eines Datensatzes aufeinanderfolgend und in der
im Setup definierten Feldbreite (eventuell plus einem Terminierungszeichen) geliefert.
Bitte beachten Sie, dass alle als ASCII - Feld definierten Felder ein zusätzliches
Terminierungszeichen erhalten, wodurch ein im Setup mit einem Byte definiertes
Feld in den "Daten des Datensatzes" zwei Byte umfasst!
Mit Hilfe der Auswertefunktionen für die Datensatzbeschreibungen und
Listenbeschreibungen können Sie die "Daten des Datensatzes" interpretieren.
Das Terminierungszeichen ist in der Angabe zur Feldbreite des jeweiligen
Datensatzfeldes enthalten.
Das Datum - Uhrzeit Feld in einem Datensatz sieht wie folgt
aus:
Byte - Nummer |
Bedeutung |
Beispiel: 27.02.1981 15:30:13 |
0 |
Jahreszahl Hunderter (0..255) |
19 |
1 |
Jahreszahl Einer (0..99) |
81 |
2 |
Monat (0..12) |
2 |
3 |
Tag (1..31) |
27 |
4 |
Stunde (0..23) |
15 |
5 |
Minute (0..59) |
30 |
6 |
Sekunde (0..59) |
13 |
Die verwendeten Systemvariablen beziehen sich auf verschiedene Softwarebereiche. Jeder Softwarebereich wird über einen entsprechenden Präfix angesprochen,
hinter dem der Name der systemvariablen mit einem Punkt getrennt folgt. Sie können über die beiden DLL-Funktionen DFCSetGlobVar und DFCGetGlobVar ggf. geschrieben und gelesen werden.
Name |
Informationen |
PHONE |
Tel.Nr. für Einwahl. Bereich: bis 23 Zeichen ASCII. Vorgabe: keine |
GPRS oder APN |
Access Point Name. Bereich: bis 49 Zeichen ASCII. Vorgabe: keine |
USER |
Benutzername für Interneteinwahl. Bereich: bis 20 Zeichen ASCII. Vorgabe: keine |
PASSWORD |
Passwort für Interneteinwahl. Bereich: bis 20 Zeichen ASCII. Vorgabe: keine |
HOST |
Ziel-IP oder Hostnamen. Bereich: bis 59 Zeichen ASCII. Vorgabe: keine |
PORT |
Ziel-Port. Bereich: 1 bis 65535 Zahl. Vorgabe: keine |
HTTPSEND |
Ziel-Pfad (Sendepräfix) Bereich: bis 39 Zeichen ASCII. Vorgabe: keine |
ALIVE |
Sekunden zwischen zwei Alive - Datensätzen. Bereich: 0 = aus, 60 bis 65500, Zahl in Sekunden. Vorgabe: keine |
HTTPTIMEOUT |
Wartezeit nach HTTP-Paketversand auf die Serverantwort. Bereich: 5000 bis 65000, Zahl in Millisekunden. Vorgabe: keine |
HTTPTYPE |
Typ des verwendeten HTTP-Protokoll. (1.0, 1.1, off) Bereich: 3 Zeichen [1.0, 1.1, off] ASCII. Vorgabe: keine |
SIMPIN |
Die zu setzende PIN. Dieser Wert ist Temporär. Bereich: 0 = Nicht übertragen, 1 bis 999999999 Zahl. Vorgabe: keine |
SIMPUK |
Die zu setzende PUK. Dieser Wert ist Temporär. Bereich: 0 = Nicht übertragen, 1 bis 999999999 Zahl. Vorgabe: keine |
Name |
Informationen |
DBLINPUT |
Zeit für Buchungswiederholsperre. Bereich: 0 = Deaktiviert, 1 bis 65499, Zahl in Sekunden. Vorgabe: 60 |
DEMANDTIMER |
Timeout zur Tastenumschaltung. Bereich: 5 bis 60, Zahl in Sekunden. Vorgabe: 10 |
Name |
Informationen |
MASTERID |
Die verwendete Id des Masters der Spalte Reader.ZM. Bereich: 1 bis 9999 Zahl. Vorgabe: 1 |
Name |
Informationen |
MODEL |
Name des Bluetoothmoduls. |
VERSION |
Version des Moduls. |
NAME |
Anzeigename des Moduls. |
ADDRESS |
Adresse des Moduls. |
AUTH |
Nummer der Authentifikation. |
MODE |
Modus des Moduls. |
Name |
Informationen |
INPUT.[0-7].Count |
Gibt den Zählerteiler des digitalen Eingangs 0-7 an. Beispiel: IO.INPUT.0.Count für ersten digital Eingang. Bereich: 0 bis 4294967295, Zahl in Impulse. Vorgabe: Aus Setupdaten. |
INPUT.[0-7].Timeout |
Gibt den Timeout des digitalen Eingangs 0-7 an. Beispiel: IO.INPUT.1.Timeout für zweiten digital Eingang. Bereich: 0 bis 65535, Zahl in Sekunden. Vorgabe: Aus Setupdaten. |
INPUT.[0-7].Cycle |
Gibt den Zyklus des digitalen Eingangs 0-7 an. Beispiel: IO.INPUT.2.Cycle für dritten digital Eingang. Bereich: 0 bis 65535, Zahl in Sekunden. Vorgabe: Aus Setupdaten. |
Name |
Informationen |
BATTERY |
Gibt den aktuellen Batteriezustand an. Bereich: ok (=Alles in Ordnung), unknown (=Prüfung steht nicht zur Verfügung), low (=Batterie muß getauscht werden um die korrekte Funktionalität zu gewährleisten.). |
LOW |
Spannungsangabe für den Tiefentladeschutz. Bereich: 0 bis 255, Zahl in Volt, wobei die letze Ziffer für die erste Nachkommastelle steht (45 sind 4.5V, 126 sind 12.6V). Vorgabe: 0. |
VOLTAGE |
Aktuelle Versorgungsspannung. Bereich: 0 bis 36, Kommazahl mit einer Nachkommastellte und Einheitszeichen in Volt. Z.b. 12.6V |