Dokumentation zur DFComDLL.dll
(Vers. 04.01.01)
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 AESetup zu 100% verwendet. Die vorhandenen AEIII+ Techniken
wurden auf die PZE Master IV 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 (ChannelIDs).
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 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-31und 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 Busnumme ist ab
der Firmware Version 04.00.21 des PZE Masters IV 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 Master
IV) 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 "PZE Master IV" - Geräten hinzugefügt. |
12.09.03 |
02.00.11 |
Fehlermapping für PZE Master IV
ü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
Master IV ü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 Master IV - 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 Master IV 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 |
Es gibt weder Version 3.x noch 4.0, es wurde
aufgrund der Versionsgleichheit mit Firmware / AESetup darauf
verzichtet. |
beta |
04.01.01 |
Funktionen für die Zutrittskontrolle
Version 2 hinzugefügt: DFCClearEntrance2ListBuffer,
DFCMakeEntrance2List,
DFCLoadEntrance2List
Die Funktionen DFCListBDatensatz,
DFCListBFeld
wurden so überarbeitet, daß auch die Struktur der Zutrittskontrolllisten
Version 1 / Version 2 abgefragt werden kann.
Vorbereitende Maßnahmen für BDE Master IV. |
Die DLL ist als Schnittstelle zwischen einer Anwendung und dem AEIII+ / PZE
Master IV zu sehen. Alle Befehle werden von der Anwendung an die DLL gerichtet
(AESetup ab Version 02.00.00), dort verarbeitet und gegebenenfalls an das
anzusprechende Gerät weitergeleitet.
Behandlung von Datensätzen
Zunächst muss die Schnittstelle mit einer der
Funktionen DFCComOpenSerial
oder DFCComOpenSocket
sowie DFCComOpenIV
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 dann den letzten gelesenen Datensatz und liefert den nächsten
anstehenden, so werden einzelne Datensätze aus dem Gerät an die Anwendung
zurückgegeben.
Online Datensätze werden vorrangig behandelt, wobei der
nächste Datensatzzustand nur von der DFCComCollectData - Funktion als
Rückgabewert bekannt gegeben wird. 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 Master IV in der chronologischen Reihenfolge geliefert. Die
Onlinedatensätze werden nicht mehr während dem abholen von offline Datensätzen
zwischengeschoben.
Anmerkung zur Datensatz- und Listenbeschreibung
(Tabellendefinitionen)
Es können gleichzeitig mehrere Verbindungen, so
genante Kanäle, zu verschiedenen Schnittstellen aufgebaut werden. Für
jeden Kanal wird ein eigener interner Speicherbereich benutzt, der jedoch die
Datensatzbeschreibungen und Listenbeschreibungen des zuletzt ausgelesenen
Gerätes (mit DFCLoadDatensatzbeschreibung
und DFCLoadListenbeschreibung)
vorhält. Wenn Sie demnach verschiedene Setupkonfigurationen in den Geräten
verwenden, ist eine Aktualisierung der Datensatz- und Listenbeschreibungen
erforderlich.
Bei offen gehaltenen Kanälen ist folgendes
zusätzlich zu beachten.
Wenn die Verbindung zwischen der DLL und ihrem
Verbindungspartner unterbrochen wird, dann sollte dieses durch die
Fehlerbehandlung auf folgende Weise abgefangen werden (siehe auch 1.2 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.
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.
Für die Listen ist in der DLL pro Kanal ein Puffer vorhanden. Mit der
Funktion DFCClrListenBuffer
wird der DLL - Puffer im entsprechenden Kanal gelöscht. Es ist nicht möglich
einzelne Listen zu löschen. Es ist auch nicht möglich eine einzelne Liste
"Nachzuladen".
Die Verarbeitung erfolgt in zwei Schritten. Zuerst wird der DLL interne
Puffer 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 Puffer der DLL übertragen
werden. Durch Übertragung der Listendaten mit DFCLoadListen werden immer
alle Listen auf einmal übertragen und alle alten Listen im Gerät automatisch
gelöscht.
Wenn eine Liste geändert werden soll, müssen alle Listen im Puffer gelöscht
und neu erzeugt 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:
- "DllListenTest.exe" Einfaches Testprogramm um eine Liste in ein Gerät zu
laden.
- "DllListenTest.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 |
Serielle Schnittstelle nicht
geöffnet. |
4 |
Allgemeiner Fehler bei
Kommunikation mit AEIII+ / PZE Master IV. |
5 |
AEIII+ / PZE Master IV 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 |
Bei Geräteupdate stimmt der Gerätetyp
nicht mit dem der Gerätedatei überein. Kommt bei DFCUpdate
zur Anwendung. |
31 |
Gerätetyp stimmt nicht. z.B.
Versuchtes Einspielen von Setupdatei für PZE - Master IV in BDE - Master
IV |
32 |
Die vorliegende Dateiendung wird nicht
unterstützt. |
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: DFCom031023.log
11:14:57 DFCComOpenSerial 1 COM1 38400 150 (1) [0.1] |
Initialisierungsdatei
Der zu Verwendende Dateiname lautet:
DFCom.ini
Unter dem Sektionsnamen "Log" ist zum einen der Wert "Enable" zum
gesamten aktivieren des Hintergrundloggens angebbar. Der Wert für "Path" gibt
das Grundlegende Verzeichnis an und "Folder" das zu verwendende
Unterverzeichnis, dieses wird wenn nicht bereits vorhanden angelegt. Der Wert
für "Erase" gibt an ob die Veralteten Dateien (älter als vier Tage vom
aktuellen) automatisch gelöscht werden. Bitte beachten Sie dass die
Dateiverwaltung nach Abschalten manuell übernommen werden muss. Der Wert
"Elapse" gibt an ob die Ausführungsdauer der Funktionen in eckigen Klammern
hinter jedem Logeintrag ausgegeben wird, dabei hat dieser folgende Bedeutung
[Sekunden.Hundertstel].
Bedeutung der Werte: 0=Aus, 1=An
Beispiel:
[Log]
Enable=1
Path=.\
Folder=DFComLog
Erase=1
Elapse=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.
Das Terminal hat
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.
Die nachfolgenden Funktionen werden von der DLL zur Verfügung gestellt.
Grundlegende Funktionen zum Verbindungsaufbau und Kommunikation sowie loggen
des Verbindungsablaufs.
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 aufgrund des verwendeten
Timeout's für Modemverbindungen nicht
einzusetzen. |
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. |
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: Nach einem Verbindungsabriss wird keine automatische
Neuverbindung durchgeführt. Bitte beachten Sie hierzu die Fehlerbehandlung
und unter 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 ( z.B. "192.168.123.99")
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: Nach einem Verbindungsabriss wird keine automatische
Neuverbindung durchgeführt. Bitte beachten Sie hierzu die Fehlerbehandlung
und unter Programmaufbau
beschriebene Umsetzungslösung. |
Achtung:
Die Funktion initialisiert den Kanal zur
Verwendung mit einem Multimaster - Protokoll. Sie können dadurch kein
AEIII+ und PZE Master IV in ein und dem selben RS485 - Netzwerk betreiben,
da dass AEIII+ mit einem zum PZE Master IV 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 zu verwendende Busnummer
der DLL. (Multimasteransatz) Wertebereich: (1 - 31, 254) |
int iType |
Der zu verwendende
Schnittstellentyp. 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: 1,2
-> Zeiger auf Zeichenkette für die Schnittstelle. 3 -> Zeiger auf
Zeichenkette mit IP - Adresse oder Hostname. |
int iComValue |
Je nach Schnittstellentyp: 1,2
-> Übertragungsrate der Schnittstelle in
Millisekunden.
(Standard: 38400bd) 3 -> Portnummer des TCP / IP Anschlusses. |
int iComTimeOut |
Je nach Schnittstellentyp: 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 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:
0 |
Fehler bei Durchführung. Es ist kein
Gerät mit dieser Busnummer erreichbar. (siehe auch Fehlerbehandlung
und Programmaufbau) |
1 |
Die angegebene Busnummer ist
erreichbar. |
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 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. 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. |
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]); |
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 |
0 - normal weiter. |
unsigned char ucAudio |
0 - kein Piepser, 1 -
Einfachpiep, 2 - Doppelpiep. |
char *szMessage |
Zeiger auf die darzustellende
Zeichenkette. |
int iLength |
Zeichenlänge der Meldung. Maximal
242. (PZE Master IV, 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 Master IV Zeilenumbrüche müssen mit dem
Zeichen (Dec. 13) eingefügt werden. Beim PZE Master 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. |
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.
|
Beispiel:
char *Buffer = "HALLO DIES IST EIN TEST !";
DFCComSendMessage(1, 254, 255, 0, 2, Buffer, 26); |
Wird unterstützt ab Firmwareversion:
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 !";
DFCComInfotext(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:
Seriennummer aus AE III+
auslesen. |
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:
0 |
Die Befehlsausführung wird
abgebrochen. |
1 |
Der Befehl wird weiter
abgearbeitet. |
Beschreibung:
Diese Funktionalität wird z.B. für eine
Fortschrittsanzeige verwendet. Sie 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:
Gibt einen Fehlertext zum Fehlercode
zurück. |
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 |
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" |
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 |
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" |
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: 0: DFCComOpenSerial,
DFComInit 1:
DFCComOpenSocket,
DFCComOpen 2:
DFCComOpenIV
für serielle Verbindung. 3: DFCComOpenIV
für TCP/IP Verbindung. |
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! |
|
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) |
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. |
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, daß 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. |
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 |
Dateinahme 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
AE III+ ü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 |
Dateinahme 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 Getät lesen und in Datei
(*.aes) übertragen. |
Sammeln der anfallenden Daten aus den Geräten und Interpretieren der
gelieferten Informationen durch Abgleich mit Gerätekonfiguration.
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.
ACHTUNG: Es ist nicht notwendig diese
Funktion zu benutzen. Es ist davon sogar abzuraten, da aktuell eingegebene
Daten ungeachtet gelöscht werden könnten. |
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: 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
Nullen auf die im Setup vorgegebene Feldlänge zu füllen. Zusätzlich ist
die abschließende 0 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. |
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
- Master IV 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: 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 Nullen auf die im Setup vorgegebene Feldlänge zu füllen. Zusätzlich
ist die abschließende 0 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" |
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 Nullen auf die im Setup vorgegebene Feldlänge zu füllen. Zusätzlich
ist die abschließende 0 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) |
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. |
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 |