Sie sind auf Seite 1von 107

EDIABAS

IFH Schnittstellenbeschreibung
Version 1.01

SOFTING AG
Richard-Reitzner-Allee 6
D-85540 Haar
Telefon (++49) 89/4 56 56-0
Telefax (++49) 89/4 56 56-399
EDIABAS-IFH Schnittstellenbeschreibung

Inhalt
1 Allgemeines...................................................................................................................................... 5
1.1 Ziel des Dokuments ............................................................................................................... 5
1.2 Referenzen............................................................................................................................. 5
1.3 Änderungshistorie .................................................................................................................. 5
1.4 Abkürzungen .......................................................................................................................... 5
1.5 Allgemeine Konventionen ...................................................................................................... 6
1.6 Konventionen für die IFH-Schnittstellenbeschreibung........................................................... 7
1.7 Konventionen für die DLL-Schnittstellenbeschreibung .......................................................... 8
2 Architektur ........................................................................................................................................ 9
2.1 Allgemein................................................................................................................................ 9
2.2 IFH-Master ............................................................................................................................. 9
2.3 IFH-Slave ............................................................................................................................... 9
2.4 Schnittstellen.......................................................................................................................... 9
3 IFH-Schnittstelle ............................................................................................................................. 11
3.1 Allgemeines.......................................................................................................................... 11
3.1.1 Kontrollfunktionen ............................................................................................................ 11
3.1.2 Kommunikationsfunktionen.............................................................................................. 11
3.2 Spezifische Fehlermeldungen.............................................................................................. 11
3.3 Datentypen ........................................................................................................................... 11
3.3.1 Definitionen ...................................................................................................................... 11
3.3.2 Datentypen....................................................................................................................... 14
3.4 Ablaufsteuerung ................................................................................................................... 16
3.5 Kontrollfunktionen ................................................................................................................ 17
3.5.1 Funktionsübersicht........................................................................................................... 17
3.5.2 ifhStartup.......................................................................................................................... 18
3.5.3 ifhShutdown ..................................................................................................................... 19
3.5.4 ifhInvalidateFiles .............................................................................................................. 20
3.5.5 ifhCheckCompatibility ...................................................................................................... 21
3.5.6 ifhInit ................................................................................................................................ 22
3.5.7 ifhGetVersion ................................................................................................................... 25
3.5.8 ifhBreak............................................................................................................................ 26
3.5.9 ifhEnd............................................................................................................................... 27
3.5.10 ifhGetIfhStatus ................................................................................................................. 28
3.5.11 ifhGetIfhError ................................................................................................................... 29
3.5.12 ifhGetResult ..................................................................................................................... 30
3.5.13 ifhDispatchMessage ........................................................................................................ 31
3.5.14 ifhGetPowerState............................................................................................................. 33
3.5.15 ifhPassSetConfig ............................................................................................................. 35
3.5.16 ifhPassGetConfig............................................................................................................. 37

Version 1.01 Seite 2


EDIABAS-IFH Schnittstellenbeschreibung

3.5.17 ifhNotifyConfig.................................................................................................................. 39
3.6 Kommunikationsfunktionen .................................................................................................. 40
3.6.1 Funktionsübersicht........................................................................................................... 40
3.6.2 ifhConnect........................................................................................................................ 41
3.6.3 ifhDisconnect ................................................................................................................... 43
3.6.4 ifhInterfaceType ............................................................................................................... 44
3.6.5 ifhPowerSupply ................................................................................................................ 46
3.6.6 ifhIgnition.......................................................................................................................... 48
3.6.7 ifhWarmStart .................................................................................................................... 50
3.6.8 ifhReset............................................................................................................................ 51
3.6.9 ifhSetParameter ............................................................................................................... 52
3.6.10 ifhSetTelPreface .............................................................................................................. 54
3.6.11 ifhSendTelegram ............................................................................................................. 56
3.6.12 ifhSendTelegramFreq ...................................................................................................... 58
3.6.13 ifhRequTelegramFreq...................................................................................................... 60
3.6.14 ifhStopFreqTelegram ....................................................................................................... 62
3.6.15 ifhRequestKeyBytes ........................................................................................................ 63
3.6.16 ifhRepeatLastMsg............................................................................................................ 65
3.6.17 ifhRequestState ............................................................................................................... 66
3.6.18 ifhSetPort ......................................................................................................................... 68
3.6.19 ifhGetPort......................................................................................................................... 70
3.6.20 ifhSetProgVoltage............................................................................................................ 72
3.6.21 ifhLoopTest ...................................................................................................................... 74
3.6.22 ifhVersion ......................................................................................................................... 76
3.6.23 ifhDownload ..................................................................................................................... 78
3.6.24 ifhSwitchSiRelais ............................................................................................................. 79
3.6.25 ifhStopTransmission ........................................................................................................ 81
3.6.26 ifhRawMode ..................................................................................................................... 82
3.6.27 ifhSend............................................................................................................................. 84
3.6.28 ifhReceive ........................................................................................................................ 86
3.6.29 ifhSysInfo ......................................................................................................................... 88
3.6.30 IfhSetParameterRaw ....................................................................................................... 90
4 IFH-DLL-Schnittstelle ..................................................................................................................... 91
4.1 Allgemeines.......................................................................................................................... 91
4.2 Funktionsübersicht ............................................................................................................... 91
4.3 dllLockIFH ............................................................................................................................ 92
4.4 dllUnlockIFH......................................................................................................................... 93
4.5 dllStartupIFH ........................................................................................................................ 94
4.6 dllShutdownIFH.................................................................................................................... 95
4.7 dllCheckIFH.......................................................................................................................... 96
4.8 dllExitIFH .............................................................................................................................. 97
Version 1.01 Seite 3
EDIABAS-IFH Schnittstellenbeschreibung

4.9 dllCallIFH.............................................................................................................................. 98
5 Netzwerkübertragung ................................................................................................................... 100
5.1 Allgemeines........................................................................................................................ 100
5.2 Konfiguration ...................................................................................................................... 102
5.2.1 Lokale Konfiguration ...................................................................................................... 102
5.2.2 Remote Konfiguration .................................................................................................... 102
5.3 Kommunikations-Schichten................................................................................................ 102
5.3.1 NETMAN........................................................................................................................ 103
5.3.1.1 Network Abstraction Layer .................................................................................... 103
5.3.1.2 Netman Message Protocol.................................................................................... 103
5.3.2 XREMOTE ..................................................................................................................... 104
5.3.3 IFH-Server ..................................................................................................................... 105
5.4 Netzwerkfehler ................................................................................................................... 107

Version 1.01 Seite 4


EDIABAS-IFH Schnittstellenbeschreibung

1 Allgemeines

1.1 Ziel des Dokuments


Dieses Dokument ist eine Schnittstellenbeschreibung für den Interface-Handler. Es werden alle
Schnittstellenfunktionen und die davon verwendeten Datentypen beschrieben. Auf interne Ablaufe
wird nur soweit eingegangen, wie es dem Verständnis der Schnittstelle dient. Inhalte von
Funktionsparametern, die bestimmte Diagnoseprotokolle betreffen (z.B. Parametrierung von
Diagnoseprotokollen oder Steuergeräte-Telegramme) werden nicht beschrieben.
Die Netzwerkübertragung wird nur allgemein anhand der existierenden Ferndiagnose über eine
TCP/IP-Verbindung beschrieben. Eine Beschreibung einzelner Funktionen erfolgt hier nicht.

1.2 Referenzen
/1/ BEST/2 FUNKTIONREFERENZ
/2/ FEHLERREFERENZ

1.3 Änderungshistorie
Version Autor Beschreibung

1.00 Roland Taubert Ersterstellung

1.01 Roland Taubert Alignment der Strukturen CFGCONTEXT und MESSAGE

1.4 Abkürzungen
IFH Interface Handler
BEST Beschreibungssprache für Steuergeräte
EDIABAS Elektronik Diagnose Basissystem
BIP BEST-Interpreter
SG Steuergerät
SGBD Steuergerätebeschreibungsdatei

Version 1.01 Seite 5


EDIABAS-IFH Schnittstellenbeschreibung

1.5 Allgemeine Konventionen

Beispiel Beschreibung

SAMPLE.B2V Großschrift kennzeichnet Dateinamen

ifhInit(), while Kursivschrift kennzeichnet innerhalb einer Beschreibung feststehende


Begriffe und Namen des Quellcode

hallo="Test"; Courier New kennzeichnet Programmteile, Benutzereingaben,


Programmausgaben und Fehlermeldungen.

while(...) Eine Spalte oder eine Zeile aus drei Punkten kennzeichnet, daß ein Teil
{ eines Beispiels absichtlich weggelassen wurde.
...
}

„BEST/2 Funktionsreferenz“ Normal und in Anführungszeichen kennzeichnet feste Begriffe.

/1/ Eine Zahl in Schrägstrichen kennzeichnet eine Refernez auf ein Dokument.

Version 1.01 Seite 6


EDIABAS-IFH Schnittstellenbeschreibung

1.6 Konventionen für die IFH-Schnittstellenbeschreibung


Jede Funktion wird immer nach dem gleichen Schema beschrieben.

Kurzbeschreibung
Hier steht eine kurze Beschreibung der Funktion.

BEST2 Funktion
Bei Kommunikationsfunktionen steht hier der Prototyp der BEST-Funktion aus der „BEST/2
FUNKTIONREFERENZ“, die die beschriebene Funktion in einer SGBD verwendet.

Prototyp
Hier steht der C-Prototyp der Funktion, wie er in einer Headerdatei steht. Mit „[in]“, „[out]“ und „[in,out]“
wird die Richtung angegeben, in der Daten übergeben werden.
[in] Mit der Variablen werden nur Daten an die Funktion übergeben.
[out] Mit der Variablen werden Daten von der Funktion an den Aufrufer übergeben.
[in,out] Mit der Variablen werden Daten in beiden Richtungen übergeben.
Beispiel:
extern „C“ short Funktion
(
/*[in]*/ short variable1
/*[out]*/ short *variable2
/*[in,out]*/ short *variable3
);

Parameter
Hier werden alle Parameter der Funktion beschrieben.
Beispiel:
variable1
Beschreibung der Variablen 1.
variable2
Beschreibung der Variablen 2.
variable3
Beschreibung der Variablen 3.

Rückgabewert
Hier wird der Rückgabewert der Funktion beschrieben.

Auftragsergebnis
Bei Kommunikationsfunktionen steht hier die Beschreibung des Auftragsergebnisses, das mit der
Funktion ifhGetResult abgeholt werden kann.

Beschreibung
Hier wird die Funktion vollständig beschrieben.

IFH-Message [in]
Beschreibung der Message, die an die IFH-DLL übergeben wird.

IFH-Message [out]
Beschreibung der Message, die von der IFH-DLL zurückgegeben wird.
Version 1.01 Seite 7
EDIABAS-IFH Schnittstellenbeschreibung

1.7 Konventionen für die DLL-Schnittstellenbeschreibung


Jede Funktion wird immer nach dem gleichen Schema beschrieben.

Kurzbeschreibung
Hier steht eine kurze Beschreibung der Funktion.

Prototyp
Hier steht der C-Prototyp der Funktion, wie er in einer Headerdatei steht. Mit „[in]“, „[out]“ und „[in,out]“
wird die Richtung angegeben, in der Daten übergeben werden.
[in] Mit der Variablen werden nur Daten an die Funktion übergeben.
[out] Mit der Variablen werden Daten von der Funktion an den Aufrufer übergeben.
[in,out] Mit der Variablen werden Daten in beiden Richtungen übergeben.
Beispiel:
extern „C“ short Funktion
(
/*[in]*/ short variable1
/*[out]*/ short *variable2
/*[in,out]*/ short *variable3
);

Parameter
Hier werden alle Parameter der Funktion beschrieben.
Beispiel:
variable1
Beschreibung der Variablen 1.
variable2
Beschreibung der Variablen 2.
variable3
Beschreibung der Variablen 3.

Rückgabewert
Hier wird der Rückgabewert der Funktion beschrieben.

Beschreibung
Hier wird die Funktion vollständig beschrieben.

Version 1.01 Seite 8


EDIABAS-IFH Schnittstellenbeschreibung

2 Architektur

2.1 Allgemein
Im Rahmen des EDIABAS sollen verschiedene Interfaces für die Steuergeräte Diagnose verwendet
werden. Dazu wird ein Interface-spezifische Schnittstelle (z.B. EDIC-Schnittstelle) mittels dem IFH auf
eine Interface-übergreifende Schnittstelle (die IFH-Schnittstelle) abgebildet.
Der Interface-Handler ist Teil des Gesamtsystems EDIABAS. Der IFH setzt Interface-unabhängige
Funktionsaufrufe in Interface-spezifische Funktionsaufrufe um und gibt diese an das Interface weiter.
Die Funktionen des IFH werden im EDIABAS auf BEST2-Funktionen abgebildet. Somit kann jede
Funktion des IFH über eine Steuergerätebeschreibungsdatei (SGBD) angesprochen werden. Auf
diese Art wird ein Anwenderprogramm, das über den Interface-Handler auf Interfacefunktionen
zugreift Interface-unabhängig.
Der IFH ist so konzipiert, daß Anforderungen an den IFH im Hintergrund bearbeitet werden. D.h. nach
dem Absetzen eines Auftrags an den IFH kann das Anwenderprogramm sofort weiterarbeiten. Die
Zeit, die vergeht bis eine Antwort vom Interface (Steuergerät) vorliegt kann also aktiv genutzt werden.
Der Anwender schickt nur eine Anforderung (Auftrag) an den IFH und fragt von Zeit zu Zeit nach ob
schon eine Antwort vorliegt. Liegt eine Antwort vor, kann sie abgeholt werden.
Der IFH besteht aus zwei Komponenten
• Dem IFH-Master
• dem IFH-Slave (IFH-DLL)

2.2 IFH-Master
Der IFH-Master bildet die Schnittstelle des IFH zum BEST-Interpreter (BIP). Der Programm-Code des
IFH-Master ist statisch an das EDIABAS gebunden. Im IFH-Master werden alle Interface-
Funktionalitäten auf IFH-Funktionen abgebildet.

2.3 IFH-Slave
Der IFH-Slave übernimmt die Ausführung, der vom Master angeforderten IFH-Funktionalitäten, sowie
deren Umsetzung auf die spezifische Interface-Funktionalität. Dieser Teil ist Interface-abhängig. Für
jedes Interface (EDIC, ADS usw.) existiert ein eigener IFH-Slave. Die Schnittstelle zwischen Master
und Slave ist immer gleich. Auf diese Weise wird durch das Austauschen des IFH-Slave die
Anbindung des EDIABAS an ein anderes Interface ermöglicht. Der Austausch erfolgt über das
dynamische Laden der IFH-DLL.

2.4 Schnittstellen
In diesem Dokument werden die folgenden Schnittstellen näher betrachtet:
• Schnittstelle zwischen dem BEST-Interpreter und dem IFH-Master. Diese Schnittstelle wird im
Dokument als IFH-Schnittstelle bezeichnet.
• Schnittstelle zwischen dem IFH-Master und dem IFH-Slave. Diese Schnittstelle wird im Dokument
als IFH-DLL-Schnittstelle bezeichnet.
Für die Ferndiagnose wird die IFH-DLL-Schnittstelle aufgetrennt und alle Aufrufe dieser Schnittstelle
werden über ein Netzwerk übertragen.

Version 1.01 Seite 9


EDIABAS-IFH Schnittstellenbeschreibung

EDIABAS (EBAS32.DLL)

BEST-Interpreter

IFH-Schnittstelle

IFH-Master

IFH-DLL-Schnittstelle

IFH-Slave (z.B. XEDIC32.DLL)

Version 1.01 Seite 10


EDIABAS-IFH Schnittstellenbeschreibung

3 IFH-Schnittstelle

3.1 Allgemeines
Über die im Folgenden beschriebene funktionale Schnittstelle zum IFH werden Aufträge an den IFH
abgesetzt und Ergebnisse vom IFH abgeholt. Die Funktionen der Schnittstelle sind in zwei Kategorien
aufgeteilt.
• Kontrollfunktionen
• Kommunikationsfunktionen
Die IFH-Schnittstelle liegt innerhalb der EDIABAS-Komponente (DLL). Von Aussen kann auf diese
Schnittstelle nicht zugegriffen werden. Innerhalb von EDIABAS greift der BEST-Interpreter (BIP) auf
sie zu. Jeder Kommunikationsfunktion ist auf BEST-Ebene eine BEST-Funktion zugeordnet.

3.1.1 Kontrollfunktionen
Die Kontrollfunktionen steuern den IFH. Sie initialisieren den IFH, fragen innere Zustände des IFH ab
und tauschen Daten zwischen dem IFH und dem BIP aus. Die Kontrollfunktionen werden sofort
ausgeführt und lösen keine Kommunikation mit dem Interface aus.

3.1.2 Kommunikationsfunktionen
Die Kommunikationsfunktionen setzen Aufträge an den IFH ab. Sie heißen
Kommunikationsfunktionen, da die meisten von ihnen eine Kommunikation zwischen dem Interface
und dem IFH auslösen. Die Ausführung eines Auftrag wird von einer Kommunikationsfunktion nur
angestoßen. Die eigentliche Ausführung wird über die Kontrollfunktionen gesteuert.

3.2 Spezifische Fehlermeldungen


Bei der Bearbeitung von Aufträgen können eine Reihe von Fehlern auftreten. Es gibt grundsätzlich
zwei Arten von Fehlern.
• Fehler, die bereits beim Aufruf einer Funktion auftreten. Z.B. wenn der Anwender zu viele Daten
an den IFH übergibt oder wenn die Netzwerkverbindung gestört ist.
• Fehler, die erst im Laufe einer Auftragsbearbeitung auftreten. Z.B. wenn sich das Steuergerät
nicht meldet.
Die erste Art von Fehlern wird von jeder Funktion als Rückgabewert zurückgeliefert. Die zweite Art
von Fehlern kann mit der Kontrollfunktion ifhGetIfhError abgefragt werden, nachdem sich der IFH im
Zustand IFHERROR befindet. Die Fehler sind im Dokument "EDIABAS Fehlerreferenz" beschrieben.

3.3 Datentypen

3.3.1 Definitionen
IFH-Statusmeldungen
Der IFH kann sich im einem von drei Zustände befinden, die vom BIP über die Kontrollfunktion
ifhGetIfhStatus abgefragt werden können.

Name Wert Beschreibung

IFHREADY 0 Der IFH befindet sich im Ruhezustand. In diesem Zustand befindet sich der
IFH nach der Initialisierung und nach jeder erfolgreich abgeschlossenen (es
ist kein Fehler aufgetreten) Bearbeitung eines Auftrags. Etwaige Ergebnisse
können abgeholt werden und eine neue Kommunikationsfunktion kann
gestartet werden.

Version 1.01 Seite 11


EDIABAS-IFH Schnittstellenbeschreibung

IFHBUSY 1 Der IFH ist gerade mit der Bearbeitung eines Auftrags beschäftigt. Die
gerade laufende Bearbeitung kann jederzeit abgebrochen werden. Der
Abbruch erfolgt entweder mit einer Kontrollfunktion (ifhBreak) oder mit dem
Absetzen eines neuen Auftrags.

IFHERROR 2 Der IFH befindet sich im Fehlerzustand. Tritt bei der Bearbeitung eines
Auftrags ein Fehler auf, wird die Bearbeitung abgebrochen und der IFH
gelangt in den Zustand IFHERROR. Vom IFH kann nun die genaue
Fehlerursache mittels einer Kontrollfunktion (ifhGetIfhError) abgefragt
werden.

Größenfestlegungen
Name Wert Beschreibung

MAXVERSION 81 Maximale Länge des Versionsstrings inklusive des ‚\0‘-Charakters.

Klemmenstati
Name Wert Beschreibung

PS_UNDEF -1 Der Spannungszustand ist undefiniert

PS_OFF 0 Für UbattCurrent und IgnitionCurrent


Die anliegende Spannung liegt über dem definierten Schwellwert

Für UbattHistory und IgnitionHistory


Die Spannungsversorgung wurde nicht unterblochen

PS_ON 1 Für UbattCurrent und IgnitionCurrent


Die anliegende Spannung liegt unter dem definierten Schwellwert

Für UbattHistory und IgnitionHistory


Die Spannungsversorgung wurde unterblochen

Konfiguration
Jedes EDIABAS-Konfigurationselement hat eine definierte ID.

Name Wert Beschreibung


CFGID_UNKNOWN 0 Undefinierte Konfiguration
CFGID_ECUPATH 1 Pfad der Beschreibungsdateien
CFGID_RETRYCOMM 2 Anzahl der Kommunikationswiederholungen im Fehlerfall
CFGID_UBATTHANDLING 3 Klemme 30-Fehlerbehandlung ein (TRUE) oder aus
(FALSE)
CFGID_IGNITIONHANDLING 4 Klemme 15-Fehlerbehandlung ein (TRUE) oder aus
(FALSE)
CFGID_TRACEPATH 5 Pfad der Trace-Dateien
CFGID_SYSTEMTRACESYS 6 System/SYS-Trace-Level (0=aus)
CFGID_SYSTEMTRACEBIP 7 System/BIP-Trace-Level (0=aus)
CFGID_SYSTEMTRACEIFH 8 System/IFH-Trace-Level (0=aus)

Version 1.01 Seite 12


EDIABAS-IFH Schnittstellenbeschreibung

CFGID_APITRACE 9 API-Trace-Level (0=aus)


CFGID_IFHTRACE 10 IFH-Trace-Level (0=aus)
CFGID_SIMULATIONPATH 11 Pfad der Simulationsdateien
CFGID_SIMULATION 12 Simulation ein (TRUE) oder aus (FALSE)
CFGID_BIPDEBUGLEVEL 13 BIP-Debug-Level
CFGID_INTERFACE 14 Interface-Name
CFGID_SYSTEMRESULTS 15 Systemergebnisse erzeugen (TRUE) oder nicht (FALSE)
CFGID_SYSTEMTRACENET 16 System/Netz-Trace-Level (0=aus)
CFGID_NETWORKPROTOCOL 17 Netzwerkprotokoll (z.B. TCP)
CFGID_TASKPRIORITY 18 Task-Priorität
CFGID_CODEMAPPING 19 CodeMapping
CFGID_TRACESIZE 20 Größe der Tracedateien

Jedes EDIABAS-Konfigurationselement hat einen definierten Typ.

Name Wert Beschreibung


CFGTYPE_PATH 0x13 Pfad
CFGTYPE_STRING 0x23 String
CFGTYPE_INT 0x37 short
CFGTYPE_BOOL 0x47 BOOL

Versionen
Die Aufrufschnittstelle der IFH-DLL hat eine Versionsnummer (Kompatibilitätsnummer), die
unabhängig ist von der auslesbaren Versionsnummer des IFH. Diese Nummer wird vom Aufrufer mit
der Funktion dllCheckIFH an den IFH übergeben. Stimmt die Nummer nicht mit der Nummer im IFH
überein, dann wird ein Fehlercode (siehe Funktionsbeschreibung) zurückgegeben. Die Nummer wird
erhöht nach folgenden Änderungen erhöht:
• Die Anzahl der Funktionen ändert sich.
• Der Namen mindestens einer Funktion ändert sich.
• Mindestens ein Parameter mindestens einer Funktion ändert sich.
• Das Verhalten mindestend einer Funktion änder sich.

Name Wert Beschreibung


IFH_COMPATIBILITY_NO 4 Kompatibilitätsnummer für den IFH der EDIABAS Versionen
V6.0.0 bis V6.4.0

Version 1.01 Seite 13


EDIABAS-IFH Schnittstellenbeschreibung

3.3.2 Datentypen
Klemmenstati
Der Zustand der Klemmenstati wird in einer Variablen vom Typ PSCONTEXT an den BIP übergeben.
typedef short POWERSTATE;
typedef struct
{
POWERSTATE UbattCurrent;
POWERSTATE UbattHistory;
POWERSTATE IgnitionCurrent;
POWERSTATE IgnitionHistory;
} PSCONTEXT;

Konfiguration
Die folgende Struktur wird in den Funktionen ifhPassGetConfig und ifhNotifyConfig zur Übergabe von
Konfigurationswerten verwendet.
typedef short CFGID;
typedef struct
{
CFGID id; /* Konfigurations-ID */
CFGTYPE type; /* Konfigurationstyp */
union
{
char *p; /* Pfad-Konfigurationswert */
char *s; /* String-Konfigurationswert */
short i; /* Short-Konfigurationswert */
BOOL b; /* BOOL-Konfigurationswert */
} value;
} CFGDATA;

Pfad- und String-Konfigurationswerte dürfen maximal 256 Zeichen (APIMAXCONFIG) lang sein
(inklusive ‚\0‘).

In der folgenden Struktur werden die Konfigurationsdaten mittels IFH-Message (MESSAGE) zwischen
dem EDIABAS und der IFH-DLL ausgetauscht. Diese Struktur hat ein 2-Byte Alignment (#pragma
pack(2)).
#define MAXCFGNAME 32

#define APIMAXCONFIG 256

typedef struct
{
CHAR name[MAXCFGNAME]; /* Name des Konfigurationselements */
CFGTYPE type; /* Konfigurationstyp */
CFGID id; /* Konfigurations-ID */
union /* Wert des Konfigurationselements */
{
CHAR p[APIMAXCONFIG];
CHAR s[APIMAXCONFIG];
INT16 i;
BOOL b;
} value;
} CFGCONTEXT;

Version 1.01 Seite 14


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message
Über IFH-Messages werden Daten zwischen der EDIABAS-DLL und der IFH-DLL ausgetauscht.
Jeder Aufruf einer IFH-Schnittstellenfunktion wird in eine MESSAGE verpackt und mit der Funktion
dllCallIFH an die IFH-DLL weitergereicht. Diese Struktur hat ein 4-Byte Alignment (#pragma pack(4)).
Eine MESSAGE hat die folgende Struktur.
typedef struct
{
short funcNo; /* Nummer der IFH-Schnittstellenfunktion */
short wParam; /* Frei verfügbar */
unsigned short len; /* Anzahl der Datenbytes */
unsigned char data; /* Datenbytes */
} MESSAGE;

Version 1.01 Seite 15


EDIABAS-IFH Schnittstellenbeschreibung

3.4 Ablaufsteuerung
Beim Ansteuerung des IFH muß eine bestimmte Aufrufreihenfolge der Kontroll- und
Kommunikationsfunktionen eingehalten werden.
1) Initialisierung des IFH (am Programmanfang).
2) Abschicken eines Auftrags. (Aufruf einer Kommunikationsfunktion)
3) Zyklisches Abfragen des Bearbeitungsstatus des Auftrags solange der Auftratg noch nicht
vollständig bearbeitet ist.
4) Abholen des Ergebnisses des Auftrags, bzw. Abfragen der Fehlermeldung, wenn ein Fehler
aufgetreten ist.
5) Deinitialisieren des IFH (am Programmende).
Im folgenden Beispiel wird die Steuerung der Durchführung eines Auftrags an Hand des Sendens
eines Anfragetelegramms an ein Steuergerät und des Empfanges eines Antworttelegramms vom
Steuergerät verdeutlicht.
Beispiel:
/*** Initialisierung ***/

if (ifhInit(...))
/* Fehlerbehandlung */

/*** Auftrag Abschicken ***/

if (ifhSendTelegramm(...))
/* Fehlerbehandlung, falls Fehler bei Aufruf */

/*** Abfragen des Bearbeitungsstatus ***/


do
{
if (ifhGetIfhStatus(&status))
/* Fehlerbehandlung, falls Fehler bei Aufruf */;
/* Warten auf das Ergebnis */;
} while (Status == IFHBUSY)

/*** Ergebnis holen ***/

if (Status == IFHREADY)
{
if (ifhGetResult(...))
/* Fehlerbehandlung, falls Fehler bei Aufruf */;
}
else
if (Status == IFHERROR)
{
if (ifhGetIfhError(...))
/* Fehlerbehandlung, falls Fehler bei Aufruf */;
}

/*** Deinitialisierung ***/

if (ifhEnd())
/* Fehlerbehandlung */

Version 1.01 Seite 16


EDIABAS-IFH Schnittstellenbeschreibung

3.5 Kontrollfunktionen

3.5.1 Funktionsübersicht
Es existieren, die im Anschluß aufgelisteten Kontrollfunktionen:
• ifhStartup
• ifhShutdown
• ifhInvalidateFiles
• ifhCheckCompatibility
• ifhInit
• ifhGetVersion
• ifhBreak
• ifhEnd
• ifhGetIfhStatus
• ifhGetIfhError
• ifhGetResult
• ifhDispatchMessage
• ifhGetPowerState
• ifhPassSetConfig
• ifhPassGetConfig
• ifhNotifyConfig

Version 1.01 Seite 17


EDIABAS-IFH Schnittstellenbeschreibung

3.5.2 ifhStartup
Kurzbeschreibung
Laden und Grundinitialisierung des IFH.

Prototyp
extern „C“ short ifhStartup
(
/*[in]*/ const char *ediabasIniPath,
/*[in]*/ const char *ifhName
);

Parameter
ediabasIniPath
Name mit Pfad der EDIABAS-Konfigurationsdatei (z.B. „C:\EDIABAS\BIN\EDIABAS.INI“)
ifhName
Name des zu ladenden IFHs (z.B. „EDIC“). Der Name der zu ladenden DLL wird nach folgender
Konvention aus dem IFH-Namen gebildet:
X<IFH-Name>32.DLL
Beispiel:
IFH-Name „EDIC“
DLL-Name „XEDIC32.DLL“

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Mit dieser Funktion wird der IFH geladen und grundinitialisiert. Benötigt der IFH
Konfigurationselemente aus der EDIABAS Konfiguration (EDIABAS.INI) bevor die Konfiguration
mittels ifhNotify übergeben wurde, dann kann der IFH diese Elemente direkt aus der EDIABAS.INI
auslesen.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllStartupIFH

IFH-Message [in]
Es wird keine Message übergeben.

IFH-Message [out]
Es wird keine Message übergeben.

Version 1.01 Seite 18


EDIABAS-IFH Schnittstellenbeschreibung

3.5.3 ifhShutdown
Kurzbeschreibung
Grunddeinitialisierung des IFH.

Prototyp
extern „C“ void ifhShutdown
(
/*[in]*/ BOOL areDLLCallsAllowed
);

Parameter
areDLLCallsAllowed
Der Parameter steuert, ob Funktionsaufrufe in die IFH-DLL erfolgen sollen oder nicht.

Wert Beschreibung
TRUE Aufrufe in die IFH-DLL sind erlaubt.
FALSE Aufrufe in die IFH-DLL sind nicht erlaubt.

Rückgabewert
Keiner.

Beschreibung
Diese Funktion deinitialisiert den IFH und entlädt ihn. Vor dem Entladen wird noch ein ifhEnd
aufgerufen.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)
• dllUnlockIFH
• dllShutdownIFH

IFH-Message [in]
Komponente Beschreibung
funcNo 8 (selbe Nummer wie ifhEnd)
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 8
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 19


EDIABAS-IFH Schnittstellenbeschreibung

3.5.4 ifhInvalidateFiles
Kurzbeschreibung
Wird nicht mehr verwendet.

Prototyp
extern „C“ void ifhInvalidateFiles
(
void
);

Parameter
Keine.

Beschreibung
Diese Funktion wird nicht mehr verwendet. Es wird nur noch ein Funktionsrumpf für den Linker
benötigt.

IFH-Message [in]
Keine

IFH-Message [out]
Keine

Version 1.01 Seite 20


EDIABAS-IFH Schnittstellenbeschreibung

3.5.5 ifhCheckCompatibility
Kurzbeschreibung
Prüfung, ob die IFH-Schnittstelle noch kompatibel ist.

Prototyp
extern „C“ short ifhCheckCompatibility
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Diese Funktion prüft, ob die IFH-DLL-Schnittstelle und die zu EDIABAS gebundene Aufrufschicht
kompatibel sind. Diese Funktion wird vom BIP nicht verwendet. Die Kompatibilitätsprüfung findet auch
innerhalb der Funktion ifhInit statt.
Die Funktion liefert den Fehlercode 38 ("IFH-0028: ILLEGAL IFH VERSION"), wenn die DLL-
Schnittstelle nicht kompatibel ist.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllLockIFH
• dllCheckIFH (mit IFH_COMPATIBILITY_NO als Parameter)
• dllUnlockIFH

IFH-Message [in]
Keine

IFH-Message [out]
Keine

Version 1.01 Seite 21


EDIABAS-IFH Schnittstellenbeschreibung

3.5.6 ifhInit
Kurzbeschreibung
Initialisiert den IFH

Prototyp
extern „C“ short ifhInit
(
/*[in]*/ const char unit,
/*[in]*/ const char application
);

Parameter
unit
Bezeichnung des Interfaces. Die Bezeichnung besteht aus einem Buchstaben. Die möglichen Werte
der Bezeichnungen werden vom Interface festgelegt. Sind mehr als ein Interface am Rechner
angeschlossen, dann wird über die unit das Interface ausgewählt, das angesprochen werden soll.
Wird als unit ein NULL-Pointer oder ein Leerstring („“) übergeben, dann wird die unit „_“
angesprochen.
application
Kommunikationsanwendung auf dem Interface. Der Namen einer Anwendung besteht aus maximal 7
Buchstaben. Die Namen der möglichen Anwendungen werden vom Interface festgelegt. Können von
einem Interface aus mehrere Steuergeräte parallel angesprochen werden, dann wird über die
applikation ein bestimmter Kanal zu einem Steuergerät ausgewählt. Wird als applikation ein NULL-
Pointer oder ein Leerstring („“) übergeben, dann legt der IFH selbst fest, welcher Wert für applikation
verwendet wird.

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Diese Funktion initialisiert den IFH. Sie schaltet um zwischen Simulationsmodus und Normalmodus.
Der IFH-Trace wird ein- bzw. ausgeschaltet. Wurde der IFH nicht mit ifhInit initialisiert oder trat bei der
Initialisierung ein Fehler auf, dann wird die Ausführung jeder anderen IFH-Funktion bis auf ifhEnd mit
der Fehlermeldung "IFH-0018: INITIALIZATION ERROR" (28) quittiert.
Innerhalb des Aufrufs der EDIABAS-API Funktion apiInit bzw. apiInitExt wird von EDIABAS auch ifhInit
aufgerufen.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllLockIFH
• dllCheckIFH (mit IFH_COMPATIBILITY_NO als Parameter)
• dllCallIFH (mit Message 1)
• dllCallIFH (mit Message 2)
• dllUnlockIFH (wenn von einer der vorhergehenden Funktionen ein Fehler gemeldet wird)

Version 1.01 Seite 22


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message 1 [in]
Mit dieser Message wird der inhalt von unit übergeben.
Fall 1: unit == NULL

Komponente Beschreibung
funcNo 1
wParam 1
len 0
data NULL

Fall 2: unit != NULL

Komponente Beschreibung
funcNo 1
wParam 1
len Länge von unit plus ‚\0‘-Zeichen (strlen(unit)+1)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS

IFH-Message 1 [out]
Komponente Beschreibung
funcNo 1
wParam 0
len 0
data NULL

IFH-Message 2 [in]
Mit dieser Message wird der inhalt von applikation übergeben.
Fall 1: applikation == NULL

Komponente Beschreibung
funcNo 1
wParam 2
len 0
data NULL

Fall 2: applikation != NULL

Komponente Beschreibung
funcNo 1
wParam 2
len Länge von applikation plus ‚\0‘-Zeichen (strlen(applikation)+1)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS

Version 1.01 Seite 23


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message 2 [out]
Komponente Beschreibung
funcNo 1
wParam 0
len 0
data NULL

Version 1.01 Seite 24


EDIABAS-IFH Schnittstellenbeschreibung

3.5.7 ifhGetVersion
Kurzbeschreibung
Auslesen eines Versionsstrings.

Prototyp
extern „C“ short ifhGetVersion
(
/*[out]*/ char version
);

Parameter
version
Versionstext. Die maximale Länge einschließlich ‚\0‘-Charakter beträgt MAXVERSION Zeichen.

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Mit dieser Funktion wird der Versionsstring des IFH ausgelesen. Diese Funktion wird vom BIP nicht
verwendet. Die IFH-Version kann auch über das Konfigurationselement „IFHVersion“ mit der Funktion
ifhPassGetConfig abgefragt werden.
Beispiel:
„IFH-EDIC Version 6.3.2“
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 2
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 2
wParam 0
len Länge von version plus ‚\0‘-Zeichen (strlen(version)+1)
data Zeiger auf den Übergabe-Datenpuffer in der IFH-DLL
Inhalt von version

Version 1.01 Seite 25


EDIABAS-IFH Schnittstellenbeschreibung

3.5.8 ifhBreak
Kurzbeschreibung
Bricht eine gerade laufende Auftragsbearbeitung ab.

Prototyp
extern „C“ short ifhBreak
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Diese Funktion bricht eine gerade laufende Auftragsbearbeitung ab. Diese Funktion wird vom BIP in
der aktuellen EDIABAS Version (V6.0.0 aufwärts) nicht verwendet.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 7
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 7
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 26


EDIABAS-IFH Schnittstellenbeschreibung

3.5.9 ifhEnd
Kurzbeschreibung
Beendet die Arbeit mit dem IFH

Prototyp
extern „C“ short ifhEnd
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Diese Funktion beendet die Arbeit mit dem Interface und schließt den Kanal zum Interface. Um
Wieder mit dem Interface arbeiten zu können ist ein erneuter Aufruf von ifhInit nötig. Innerhalb des
Aufrufs der EDIABAS-API Funktion apiEnd wird von EDIABAS auch ifhEnd aufgerufen.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)
• dllExitIFH
• dllUnlockIFH

IFH-Message [in]
Komponente Beschreibung
funcNo 8
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 8
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 27


EDIABAS-IFH Schnittstellenbeschreibung

3.5.10 ifhGetIfhStatus
Kurzbeschreibung
Liefert den Zustand in dem sich der Interfacehandler gerade befindet

Prototyp
extern „C“ short ifhGetIfhStatus
(
/*[out]*/ unsigned short *status
);

Parameter
status
Bearbeitungszustand des IFH (siehe auch „IFH-Statusmeldungen“).

Zustand Beschreibung
IFHREADY Der IFH ist im Ruhezustand bzw. die Bearbeitung des letzten Auftrags ist
erfolgreich abgeschlossen.
IFHBUSY Ein Auftrag ist in Bearbeitung.
IFHERROR Bei der Bearbeitung eines Auftrabs ist ein Fehler aufgetreten. Der Fehler kann
mit ifhGetIfhError abgeffragt werden.

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Diese Funktion liefert den Zustand in dem sich der IFH gerade befindet.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 3
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 3
wParam IFH-Statusmeldungen
IFHREADY (0)
IFHBUSY (1)
IFHERROR (2)
len 0
data NULL

Version 1.01 Seite 28


EDIABAS-IFH Schnittstellenbeschreibung

3.5.11 ifhGetIfhError
Kurzbeschreibung
Liefert den Fehlercode eines aufgetretenen Fehlers.

Prototyp
extern „C“ short ifhGetIfhError
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Diese Funktion liefert den Fehlercode des zuletzt aufgetretenen IFH-Fehlers.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 4
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 4
wParam IFH-Fehlercode minus 9
len 0
data NULL

Version 1.01 Seite 29


EDIABAS-IFH Schnittstellenbeschreibung

3.5.12 ifhGetResult
Kurzbeschreibung
Liefert das Ergebnis eines Auftrags.

Prototyp
extern „C“ short ifhGetResult
(
/*[in,out]*/ unsigned short *length,
/*[out]*/ unsigned char *data
);

Parameter
length
Beim Aufruf der Funktion wird hier die maximale Anzahl der Daten übergeben, die der Aufrufer
verarbeiten kann. Der BIP übergibt hier immer 1023.
Zurückgegeben wird die tatsächliche Anzahl der Ergebnisbytes. Die Daten werden auf die zuvor
übergebene Größe gekürzt.
data
Ergebnisbytes. Die Bedeutung des Ergebnisbytes zu den einzelnen Aufträgen wird zusammen mit der
entsprechenden Kommunikationsfunktion unter „Auftragsergebnis“ beschrieben.

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Diese Funktion liefert die Ergebnisdaten eines Auftrags.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 5
wParam 0
len 0
data NULL

IFH-Message [out]
Die Anzahl der Datenbytes (len) und die Daten selbst sind unter „Auftragsergebnis“ in den einzelnen
Kommunikationsfunktionen beschrieben. Wenn unter „Auftragsergebnis“ „Keines“ steht, dann ist die
Anzahl der Datenbytes in der Message 0.

Komponente Beschreibung
funcNo 5
wParam IFHBUSY (1)
len Anzahl der Datenbytes
data Zeiger auf den Übergabe-Datenpuffer in der IFH-DLL

Version 1.01 Seite 30


EDIABAS-IFH Schnittstellenbeschreibung

3.5.13 ifhDispatchMessage
Kurzbeschreibung
Spezialfunktion für die Ferndiagnose.

Prototyp
extern „C“ short ifhDispatchMessage
(
/*[in]*/ MESSAGE *msgIn,
/*[out]*/ MESSAGE *msgOut
);

Parameter
msgIn
Eingangs-Message (siehe Beschreibung der Funktion callIFH)
msgOut
Ausgangs-Message (siehe Beschreibung der Funktion callIFH)

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Diese Funktion wird nur in der Ferndiagnose benötigt. Diese Funktion reicht übers Netz übertragene
IFH-Messages vom IFH-Server direkt an die IFH-DLL durch.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
Pseudocode:
// Sonderbehandlung für die erste Message von ifhInit()

Wenn ((msgIn->fktNo == IFHINIT(1)) && (msgIn->wParam == 1))


{
dllLockIFH();
dllCheckIFH(IFH_COMPATIBILITY_NO)
dllCallIFH(msgIn,msgOut);

Wenn Fehler
dllUnlockIFH();

return;
}

// Behandlung für alle anderen Messages

dllCallIFH(msgIn,msgOut);

// Freigabe der IFH-DLL nach ifhEnd

Wenn (msgOut->fktNo == IFHEND(8))


dllUnlockIFH();

Version 1.01 Seite 31


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Entsprechend msgIn.

IFH-Message [out]
Entsprechend msgOut.

Version 1.01 Seite 32


EDIABAS-IFH Schnittstellenbeschreibung

3.5.14 ifhGetPowerState
Kurzbeschreibung
Liefert die historischen und aktuellen Spannungszustände an Klemme 30 und Klemme 15.

Prototyp
extern „C“ void ifhGetPowerState
(
/*[out]*/ short *UbattCurrent,
/*[out]*/ short *UbattHistory,
/*[out]*/ short *IgnitionCurrent,
/*[out]*/ short *IgnitionHistory
);

Parameter
Die Parameter können die folgenden Werte annehmen:

Konstante Wert Beschreibung


PS_UNDEF -1 Der Spannungszustand ist undefiniert
PS_OFF 0 Für UbattCurrent und IgnitionCurrent
Die anliegende Spannung liegt über dem definierten Schwellwert
Für UbattHistory und IgnitionHistory
Die Spannungsversorgung wurde nicht unterblochen
PS_ON 1 Für UbattCurrent und IgnitionCurrent
Die anliegende Spannung liegt unter dem definierten Schwellwert
Für UbattHistory und IgnitionHistory
Die Spannungsversorgung wurde unterblochen

UbattCurrent
Aktueller Zustand an der Klemme 30.
UbattHistory
Historie Zustand an der Klemme 30.
IgnitionCurrent
Aktueller Zustand an der Klemme 15.
IgnitionHistory
Historie Zustand an der Klemme 15.

Rückgabewert
IFH Fehlercode (siehe /2/)

Beschreibung
Diese Funktion liefert die Werte für die Standard-Ergebnisse "UBATTCURRENT", "UBATTHISTORY",
"IGNITIONCURRENT" und "IGNITIONHISTORY" im EDIABAS-Job-Ergebnissatz 0. Die Funktion wird
vom BIP einmal am Ende einer EDIABAS-Job-Bearbeitung aufgerufen.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 33


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 14
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 14
wParam IFHBUSY (1)
len 8
data Zeiger auf den Übergabe-Datenpuffer in der IFH-DLL.
Im Puffer liegt die Struktur PSCONTEXT

Version 1.01 Seite 34


EDIABAS-IFH Schnittstellenbeschreibung

3.5.15 ifhPassSetConfig
Kurzbeschreibung
Schreibt Konfigurationselemente im IFH.

Prototyp
extern „C“ BOOL ifhPassSetConfig
(
/*[in]*/ const char *name,
/*[in]*/ const char *value
);

Parameter
name
Name eines Konfigurationselements
value
Wert eines Konfigurationselements

Rückgabewert
Wert Beschreibung
TRUE Das Konfigurationselement existiert und der übergebene Wert liegt im definierten
Wertebereich.
FALSE Das Konfigurationselement existiert nicht oder der übergebene Wert liegt nicht im
definierten Wertebereich.

Beschreibung
Diese Funktion schreibt Werte für einzelne Konfigurationselemente in den IFH.
Die Konfiguration wird in der Struktur CFGCONTEXT an die IFH-DLL übergeben. Dabei erfolgt
folgende Zuweisung:
strcpy(cfgContext.name,name);
strcpy(cfgContext.value.s,value);
Die restlichen Komponenten der Struktur CFGCONTEXT sind undefiniert.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 35


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 11
wParam 0
len sizeof(CFGCONTEXT)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Im Puffer liegt eine Struktur vom Typ CFGCONTEXT

IFH-Message [out]
Komponente Beschreibung
funcNo 11
wParam 0 Konfigurationsfehler
1 Das Konfigurationselement wurde konfiguriert
len 0
data NULL

Version 1.01 Seite 36


EDIABAS-IFH Schnittstellenbeschreibung

3.5.16 ifhPassGetConfig
Kurzbeschreibung
Liest Konfigurationselemente im IFH.

Prototyp
extern „C“ BOOL ifhPassGetConfig
(
/*[in]*/ const char *name,
/*[out]*/ CFGDATA *data
);

Parameter
name
Name eines Konfigurationselements.
Maximale Größe: 32 Zeichen (inklusive ‚\0‘)
data
Datenstruktur für ein Konfigurationselement (siehe Datentypen).
Die Konfigurations-ID (data->id) wird vom IFH nicht gesetzt.

Rückgabewert
Wert Beschreibung
TRUE Das Konfigurationselement existiert.
FALSE Das Konfigurationselement existiert nicht

Beschreibung
Diese Funktion liest Werte einzelner Konfigurationselemente aus dem IFH.
EDIABAS => IFH-DLL
Der Name des Konfigurationselements wird in der Struktur CFGCONTEXT an die IFH-DLL
übergeben. Es wird nur die Komponente name der Struktur CFGCONTEXT belegt. Die restlichen
Komponenten sind undefiniert.
IFH-DLL => EDIABAS
Der Wert des Konfigurationselements wird in der Struktur CFGCONTEXT an EDIABAS übergeben. Es
werden nur die Komponenten value und type der Struktur CFGCONTEXT belegt. Die restlichen
Komponenten sind undefiniert. Als Typen wird nur CFGTYPE_STRING und CFGTYPE_INT
verwendet.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 37


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 12
wParam 0
len sizeof(CFGCONTEXT)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Im Puffer liegt eine Struktur vom Typ CFGCONTEXT

IFH-Message [out]
Komponente Beschreibung
funcNo 12
wParam 0 Konfigurationsfehler
1 Das Konfigurationselement wurde ausgelesen
len sizeof(CFGCONTEXT)
data Zeiger auf den Übergabe-Datenpuffer in der IFH-DLL
Im Puffer liegt eine Struktur vom Typ CFGCONTEXT

Version 1.01 Seite 38


EDIABAS-IFH Schnittstellenbeschreibung

3.5.17 ifhNotifyConfig
Kurzbeschreibung
Übergibt alle EDIABAS Konfigurationselemente.

Prototyp
extern „C“ void ifhNotifyConfig
(
/*[in]*/ const char *name,
/*[in]*/ CFGDATA *newdata
);

Parameter
name
Name eines Konfigurationselements
Maximale Größe: 32 Zeichen (inklusive ‚\0‘)
newdata
Datenstruktur für ein Konfigurationselement (siehe Datentypen)

Rückgabewert
Keiner.

Beschreibung
Nach dem ersten Aufruf von ifhInit nach dem Start von EDIABAS liest EDIABAS die
Configurationsdatei EDIABAS.INI und übergibt die gesamte EDIABAS-Konfiguration mittels
ifhNotifyConfig an den IFH.
Der Wert des Konfigurationselements wird in der Struktur CFGCONTEXT an die IFH-DLL übergeben.
Es werden alle Komponenten der Struktur CFGCONTEXT belegt.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 13
wParam 0
len sizeof(CFGCONTEXT)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Im Puffer liegt eine Struktur vom Typ CFGCONTEXT

IFH-Message [out]
Komponente Beschreibung
funcNo 13
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 39


EDIABAS-IFH Schnittstellenbeschreibung

3.6 Kommunikationsfunktionen

3.6.1 Funktionsübersicht
Es existieren, die im Anschluß aufgelisteten Kommunikationsfunktionen:
• ifhConnect
• ifhDisconnect
• ifhInterfaceType
• ifhPowerSupply
• ifhIgnition
• ifhWarmStart
• ifhReset
• ifhSetParameter
• ifhSetTelPreface
• ifhSendTelegram
• ifhSendTelegramFreq
• ifhRequTelegramFreq
• ifhStopFreqTelegram
• ifhRequestKeyBytes
• ifhRepeatLastMsg
• ifhRequestState
• ifhSetPort
• ifhGetPort
• ifhSetProgVoltage
• ifhLoopTest
• ifhVersion
• ifhDownload
• ifhSwitchSiRelais
• ifhStopTransmission
• ifhRawMode
• ifhSend
• ifhReceive
• ifhSysInfo
• IfhSetParameterRaw

Version 1.01 Seite 40


EDIABAS-IFH Schnittstellenbeschreibung

3.6.2 ifhConnect
Kurzbeschreibung
Offnet einen Kanal zum Interface.

BEST2 Funktion
void open_communication
(
void
)

Prototyp
extern „C“ short ifhConnect
(
/*[in]*/ const char SGBDName
);

Parameter
SGBDName
Name der SGBD (z.B. „MOTOR“). Aus dem Name wird in der Simulation der Name der
Simulationsdatei erzeigt (z.B. „MOTOR.SIM“).

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
ID des geladenen IFH. Diese Nummer wird vom BIP nicht verwendet. Die ID steht aber im IFH-Trace.

Kennung Beschreibung
0x01 IDBSS
0x02 EDIC
0x03 PICO
0x04 ADS
0x05 KBUS
0x06 STD

length
Ergebnislänge = 1
data
Ergebnis = *(unsigned char*)data

Beschreibung
Diese Funktion öffnet einen Kanal zum Interface. Ist der Kanal bereits offen, wird keine Aktion mehr
durchgeführt. Diese Funktion muß als erste Funktion vor allen anderen Kommunikationsfunktionen
aufgerufen werden. Kommunikationsfunktionen (Ausnahme ifhDisconnect), die vor ifhConnect
aufgerufen wurden liefern die Fehlermeldung "IFH-0019: DEVICE ACCESS ERROR" (29).
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 41


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 20
wParam 0
len Länge von SGBDName plus ‚\0‘-Zeichen (strlen(SGBDName)+1)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von SGBDName (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 20
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 42


EDIABAS-IFH Schnittstellenbeschreibung

3.6.3 ifhDisconnect
Kurzbeschreibung
Schließt den Kanal zum Interface.

BEST2 Funktion
void close_communication
(
void
)

Prototyp
extern „C“ short ifhDisconnect
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Diese Funktion schließt den, mit ifhConnect geöffneten, Kanal zum Interface. Ist der Kanal bereits
geschlossen, wird keine Aktion mehr durchgeführt. Alle nach dieser Funktion verwendeten
Kommunikationsfunktionen werden mit der Fehlermeldung "IFH-0019: DEVICE ACCESS ERROR"
(29) beantwortet (Ausnahme: ifhConnect).
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 21
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 21
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 43


EDIABAS-IFH Schnittstellenbeschreibung

3.6.4 ifhInterfaceType
Kurzbeschreibung
Liefert den Typ des Interfaces.

BEST2 Funktion
void iftype
(
char type[]
)

Prototyp
extern „C“ short ifhInterfaceType
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Typ des Interfaces, für das der IFH bestimmt ist.
length
Ergebnislänge = strlen(<Interfacetyp>) + 1
data
Characterstring mit ‘\0‘ am Ende (C-Konvention)
Ergebnis = (char *)<Interfacetyp>

Beschreibung
Diese Funktion gibt den Interfacetyp, für den der IFH bestimmt ist als nullterminierten Characterstring
zurück (z.B. „EDIC“).
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 44


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 22
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 22
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 45


EDIABAS-IFH Schnittstellenbeschreibung

3.6.5 ifhPowerSupply
Kurzbeschreibung
Liefert die Spannung an der Klemme 30.

BEST2 Funktion
long get_battery_voltage
(
void
)

Prototyp
extern „C“ short ifhPowerSupply
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Spannungswert in Millivolt.
length
Ergebnislänge = sizeof(unsigned long)
data
Ergebnis = *(unsigned long *)data

Beschreibung
Diese Funktion liefert die Spannung an der Klemme 30 (Batteriespannung) in Millivolt.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 46


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 23
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 23
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 47


EDIABAS-IFH Schnittstellenbeschreibung

3.6.6 ifhIgnition
Kurzbeschreibung
Liefert die Spannung an der Klemme 15.

BEST2 Funktion
long get_ignition_voltage
(
void
)

Prototyp
extern „C“ short ifhIgnition
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Spannungswert in Millivolt.
length
Ergebnislänge = sizeof(unsigned long)
data
Ergebnis = *(unsigned long *)data

Beschreibung
Diese Funktion liefert die Spannung an der Klemme 15 (Zündung) in Millivolt.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 48


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 24
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 24
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 49


EDIABAS-IFH Schnittstellenbeschreibung

3.6.7 ifhWarmStart
Kurzbeschreibung
Neuinitialisierung des Interfaces.

BEST2 Funktion
void ifboot
(
void
)

Prototyp
extern „C“ short ifhWarmStart
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Diese Funktion versetzt das Interface in den Initialisierungszustand. Ggf. wird ein Reboot des
Interfaces durchgeführt.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 25
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 25
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 50


EDIABAS-IFH Schnittstellenbeschreibung

3.6.8 ifhReset
Kurzbeschreibung
Reset des Interfaces.

BEST2 Funktion
void ifreset
(
void
)

Prototyp
extern „C“ short ifhReset
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Diese Funktion bricht die Kommunikation mit einem Steuergerät ab und löscht die, mit
ifhSetParameter gesetzten, Kommunikationsparameter. Ein möglicherweise im Interface
gespeichertes Antworttelegramm vom Steuergerät wird gelöscht.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 26
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 26
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 51


EDIABAS-IFH Schnittstellenbeschreibung

3.6.9 ifhSetParameter
Kurzbeschreibung
Setzen der Kommunikationsparameter.

BEST2 Funktion
void set_communication_pars
(
unsigned int param[]
)

Prototyp
extern „C“ short ifhSetParameter
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
length
Anzahl der Kommunikationsparameter-Bytes
data
Kommunikationsparameter -Bytes

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Mit dieser Funktion werden die für die Kommunikation mit einem Steuergerät erforderlichen
Kommunikationsparameter gesetzt. Die Parameter haben ein interfaceunabhängiges Format (siehe
/1/). Wurden die Parameter mit dieser Funktion gesetzt, muß die Anwendersoftware auf Grund eines
Interfacewechsels nicht geändert werden. Eine Ausnahme bildet das Diagnosekonzept 0x0000FF00.
Dieses Konzept ist eine Kennung für den IFH-EDIC, daß die, der Kennung folgenden, Parameter eins
zu eins an das EDIC durchgereicht werden.
Die Parameter für ein Diagnosekonzept bestehen entweder aus einer Folge von Integer- oder Long-
Werten. Das höherwertige Byte im Konzeptparameter (param[0]) entscheidet darüber, welches
Format die Parameter haben.

Wert Beschreibung
0x01xx Die einzenen Parameter sind Long-Werte
0x00xx Die einzenen Parameter Integer Werte
0x00FF Die Parameter werden ohne interpretation an das EDIC durchgereicht.

Die Anzahl und die Bedeutung der Parameter ist abhängig vom Diagnosekonzept (siehe /1/).
Die Funktion ifhSetParameter muß vor jedem Ansprechen eines neuen Steuergerätes aufgerufen
werden. Zusätzlich zu den Kommunikationsparametern wird im IFH entsprechend dem eingestellten

Version 1.01 Seite 52


EDIABAS-IFH Schnittstellenbeschreibung

Konzept der Telegrammvorspann mit Defaultwerten belegt. Genaueres zum Telegrammvorspann


siehe unter ifhSetTelPreface.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 27
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 27
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 53


EDIABAS-IFH Schnittstellenbeschreibung

3.6.10 ifhSetTelPreface
Kurzbeschreibung
Setzen der Telegrammparameter.

BEST2 Funktion
void set_answer_length
(
int telparam[]
)

Prototyp
extern „C“ short ifhSetTelPreface
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
length
Anzahl der Telegrammparameter -Bytes.
data
Telegrammparameter -Bytes.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Das Interface (speziell das EDIC) benötigt beim Senden eines Telegramms Telegrammparameter. Mit
den Telegrammparametern wird entweder der Verbindungsaufbau zum Steuergerät gesteuert oder es
wird mit ihnen die Information über die erwartete Antwortlänge und den Antwortoffset übergeben.
Während der laufenden Kommunikation mit dem Steuergerät sind die Telegrammparameter meistens
für alle SG-Telegramme gleich. Damit die Telegramm-parameter nicht mit jedem SG-Telegramm
mitgesendet werden müssen, können sie vom Anwender mit der Funktion ifhSetTelPreface gesetzt
werden. Die Telegrammparameter werden beim Senden eines Telegramms immer automatisch, IFH
intern, an den Anfang des Telegramms gesetzt. Werden vom Anwender keine Telegrammparameter
angegeben, so werden die Defaultwerte verwendet, die mit ifhSetParameter beim Setzen der
Kommunikationsparameter belegt wurden. Sollen nur Telegrammparameter an das Interface
übergeben werden müssen diese zuerst mit ifhSetTelPreface gesetzt werden und anschließend mit
ifhSendTelegram an das Interface übergeben werden. Das zu sendende Telegramm ist in diesem Fall
leer.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 54


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 28
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 28
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 55


EDIABAS-IFH Schnittstellenbeschreibung

3.6.11 ifhSendTelegram
Kurzbeschreibung
Senden und Empfangen eines Steuergerätetelegramms.

BEST2 Funktion
void send_and_receive
(
unsigned char response[],
unsigned char request[]
)

Prototyp
extern „C“ short ifhSendTelegram
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
length
Anzahl der Anforderungstelegramm-Bytes
data
Anforderungstelegramm-Bytes

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Antworttelegramm vom Steuergerät.
length
Ergebnislänge = <Anzahl der Antworttelegramm-Bytes>
data
Ergebnis = <Antworttelegramm-Bytes>

Beschreibung
Diese Funktion sendet ein SG-Telegramm an ein Steuergerät und empfängt die Antwort.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 56


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 29
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 29
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 57


EDIABAS-IFH Schnittstellenbeschreibung

3.6.12 ifhSendTelegramFreq
Kurzbeschreibung
Senden und Empfangen eines Steuergerätetelegramms im Frequentmodus.

BEST2 Funktion
void send_frequent
(
unsigned char request[]
)

Prototyp
extern „C“ short ifhSendTelegramFreq
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
length
Anzahl der Anforderungstelegramm-Bytes
data
Anforderungstelegramm-Bytes

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Antworttelegramm vom Steuergerät.
length
Ergebnislänge = <Anzahl der Antworttelegramm-Bytes>
data
Ergebnis = <Antworttelegramm-Bytes>

Beschreibung
Diese Funktion sendet das übergebene Telegramm wiederholt an das Steuergerät (Frequentmodus).
Immer die letzte Steuergeräteantwort wird intern gespeichert und kann mit ifhRequTelegramFreq
abgeholt werden. Dieser Modus ist nicht für alle Diagnosekonzepte implementiert. Der
Frequentmodus wird mit ifhStopFreqTelegram beendet.
Das Auftragsergebnis wird vom BIP nicht verwendet.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 58


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 30
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 30
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 59


EDIABAS-IFH Schnittstellenbeschreibung

3.6.13 ifhRequTelegramFreq
Kurzbeschreibung
Abholen des aktuellen Steuergeräteantworttelegramms im Frequentmodus.

BEST2 Funktion
void recv_frequent
(
unsigned char telegram[]
)

Prototyp
extern „C“ short ifhRequTelegramFreq
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Antworttelegramm vom Steuergerät.
length
Ergebnislänge = <Anzahl der Antworttelegramm-Bytes>
data
Ergebnis = <Antworttelegramm-Bytes>

Beschreibung
Wurde das wiederholte Senden und Empfangen (Frequentmodus) gestartet, so kann die aktuelle
Steuergeräteantwort mit der Funktion ifhRequTelegramFreq vom Interface abgeholt werden.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 60


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 31
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 31
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 61


EDIABAS-IFH Schnittstellenbeschreibung

3.6.14 ifhStopFreqTelegram
Kurzbeschreibung
Beenden des Frequentmodus.

BEST2 Funktion
void stop_frequent
(
void
)

Prototyp
extern „C“ short ifhStopFreqTelegram
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Beschreibung
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 32
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 32
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 62


EDIABAS-IFH Schnittstellenbeschreibung

3.6.15 ifhRequestKeyBytes
Kurzbeschreibung
Abholen der Key-Bytes.

BEST2 Funktion
void recv_keybytes
(
unsigned char keybytes[]
)

Prototyp
extern „C“ short ifhRequestKeyBytes
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Key-Bytes vom Steuergerät.
length
Ergebnislänge = <Anzahl der Key -Bytes>
data
Ergebnis = <Key -Bytes>

Beschreibung
Diese Funktion liefert die Keybytes, die ein Steuergerät nach der Reizung an das Interface sendet. Ob
ein Steuergerät Keybytes sendet ist abhängig vom Diagnosekonzept. Die Keybytes stehen im
Interface solange zur Verfügung, solange die Kommunikationsverbindung zum Steuergerät besteht.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 63


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 33
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 33
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 64


EDIABAS-IFH Schnittstellenbeschreibung

3.6.16 ifhRepeatLastMsg
Kurzbeschreibung
Erneutes Anfordern der letzten Interface-Antwort.

BEST2 Funktion
Nicht implementiert.

Prototyp
extern „C“ short ifhRepeatLastMsg
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Letzte Interface-Antwort
length
Ergebnislänge = <Anzahl der Bytes der letzten Interface-Antwort>
data
Ergebnis = <Letzte Interface-Antwort>

Beschreibung
Diese Funktion fordert die letzte Antwort vom Interface erneut an. Diese Funktion ist Interface-
spezifisch und kann nicht von BEST aus angesprochen werden.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 34
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 34
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 65


EDIABAS-IFH Schnittstellenbeschreibung

3.6.17 ifhRequestState
Kurzbeschreibung
Abfragen des Interface-Status.

BEST2 Funktion
void ifrequeststate
(
unsigned char status[]
)

Prototyp
extern „C“ short ifhRequestState
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Status des Interfaces.
length
Ergebnislänge = <Anzahl der Bytes des Status des Interfaces>
data
Ergebnis = <Status des Interfaces>

Beschreibung
Mit dieser Funktion wird der aktuelle Status des Interfaces abgefragt. Das Auftragsergebnis ist
Interface-spezifisch.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 66


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 35
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 35
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 67


EDIABAS-IFH Schnittstellenbeschreibung

3.6.18 ifhSetPort
Kurzbeschreibung
Schreiben auf Ports.

BEST2 Funktion
void ifsetport
(
long port,
long value
)

Prototyp
extern „C“ short ifhSetPort
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
Nummer des Ports und der Wert, der in den Port geschrieben wird.
length
Die gesamte Länge beträgt 5 Bytes.
length = sizeof(unsigned char) + sizeof(unsigned long)
data
*(unsigned char *)data = Portnummer
*(unsigned long *)(data+1) = Wert

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Mit dieser Funktion können Ports auf dem Interface gesetzt werden. Die Anzahl und die Bedeutung
der Ports ist Interface-spezifisch.
Beispiel EDIC:
Im EDIC kann nur Port 9 (digitale Ausgänge) gesetzt werden.

Portnummer Beschreibung
9 Digitaler Ausgang

Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 68


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 36
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 36
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 69


EDIABAS-IFH Schnittstellenbeschreibung

3.6.19 ifhGetPort
Kurzbeschreibung
Auslesen von Ports.

BEST2 Funktion
long ifgetport
(
long port
)

Prototyp
extern „C“ short ifhGetPort
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
Nummer des Ports auf den geschrieben wird.
length
length = sizeof(unsigned char)
data
*(unsigned char *)data = Portnummer

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Wert, der in vom Port gelesen wird.
length
Ergebnislänge = sizeof(unsigned long)
data
Ergebnis = *(unsigned long *)data

Beschreibung
Diese Funktion liest Werte aus Ports auf dem Interface aus. Die Anzahl und die Bedeutung der Ports
ist Interface-spezifisch.
Beispiel EDIC:
Beim EDIC können neun Ports ausgelesen werden. Die Ports 0 - 7 sind Analogeingänge (Ergebnisse
in Millivolt), das Port 8 gibt den Wert des Jumperfields zurück (jedes Bit entspricht einem Jumper).

Portnummer Beschreibung
0 bis 5 Freie Analogeingänge, Spannung in Millivolt
6 Analogeingang für Klemme 15, Spannung in Millivolt
7 Analogeingang für Klemme 30, Spannung in Millivolt
8 Jumperfeld (Digitalwert)

Version 1.01 Seite 70


EDIABAS-IFH Schnittstellenbeschreibung

Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 37
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 37
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 71


EDIABAS-IFH Schnittstellenbeschreibung

3.6.20 ifhSetProgVoltage
Kurzbeschreibung
Setzen der Programmierspannung.

BEST2 Funktion
void set_program_voltage
(
int voltage
)

Prototyp
extern „C“ short ifhSetProgVoltage
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
Programmierspannung in Millivolt
length
length = sizeof(unsigned short)
data
*(unsigned short *)data = Programmierspannung

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Mit dieser Funktion wird die Programmierspannung ein- bzw. ausgeschaltet. Die Höhe der
Programmierspannung wird in Millivolt festgelegt (Werteberich: 0 - 33000 mV). Spannung = 0 Volt
bedeutet Programmierspannung "aus".
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 72


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 38
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 38
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 73


EDIABAS-IFH Schnittstellenbeschreibung

3.6.21 ifhLoopTest
Kurzbeschreibung
Durchführung eines Leitungstest.

BEST2 Funktion
long ifloopt
(
void
);

Prototyp
extern „C“ short ifhLoopTest
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Testergebnis
0 Der Test war nicht erfolgreich
1 Der Test war erfolgreich
length
Ergebnislänge = sizeof(unsigned short)
data
Ergebnis = *(unsigned short *)data

Beschreibung
Diese Funktion testet die Diagnoseleitung. Für den Test muß die RD- und TD-Leitung
kurzgeschlossen werden.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 74


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 39
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 39
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 75


EDIABAS-IFH Schnittstellenbeschreibung

3.6.22 ifhVersion
Kurzbeschreibung
Auslesen der Interface Versionsnummer.

BEST2 Funktion
long ifvers
(
void
)

Prototyp
extern „C“ short ifhVersion
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Beschreibung
length
Ergebnislänge = <Anzahl der Versions-Bytes>
data
Ergebnis = <Versions-Bytes>

Beschreibung
Diese Funktion liefert die Versionsnummer des Interfaces. Das Rückgabeformat ist Interface-
spezifisch.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 76


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 40
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 40
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 77


EDIABAS-IFH Schnittstellenbeschreibung

3.6.23 ifhDownload
Kurzbeschreibung
Nicht implementiert.

BEST2 Funktion
Nicht implementiert.

Prototyp
extern „C“ short ifhDownload
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
Nicht implementiert.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Nicht implementiert.

Beschreibung
Diese Funktion wurde in der Designphase für einen Daten-Download in das Interface vorgesehen. Es
wurde jedoch bis jetzt keine Funktionalität dahinter implementiert. Diese Funktion kann nicht von
BEST aus angesprochen werden.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 41
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 41
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 78


EDIABAS-IFH Schnittstellenbeschreibung

3.6.24 ifhSwitchSiRelais
Kurzbeschreibung
Schalten des Service-Intervall-Relais.

BEST2 Funktion
void ifsireset
(
long time
)

Prototyp
extern „C“ short ifhSwitchSiRelais
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
length
Beschreibung
data
Beschreibung

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Mit dieser Funktion wird das Service-Intervall-Relais des Interfaces für die angegebene Zeit
eingeschaltet.

Zeitdauer in ms Beschreibung
0 Dauerhaft ausschalten
-1 Dauerhaft einschalten
1 bis 65534 Einschaltdauer in Millisekunden

Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 79


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 42
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 42
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 80


EDIABAS-IFH Schnittstellenbeschreibung

3.6.25 ifhStopTransmission
Kurzbeschreibung
Nicht implementiert.

BEST2 Funktion
Nicht implementiert.

Prototyp
extern „C“ short ifhStopTransmission
(
void
);

Parameter
Keine.

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Diese Funktion ist eine Interface-spezifische Funktion für das Interface PICO. Diese Funktion kann
nicht von BEST aus angesprochen werden.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 43
wParam 0
len 0
data NULL

IFH-Message [out]
Komponente Beschreibung
funcNo 43
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 81


EDIABAS-IFH Schnittstellenbeschreibung

3.6.26 ifhRawMode
Kurzbeschreibung
Senden und Empfangen von Interface-Telegrammen.

BEST2 Funktion
void ifrawmode
(
unsigned char response[],
unsigned char request[]
)

Prototyp
extern „C“ short ifhRawMode
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
length
Anzahl der Bytes des Anforderungstelegramms an das Interface
data
Anforderungstelegramm an das Interface

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Antworttelegramm vom Interface
length
Ergebnislänge = <Anzahl der Bytes des Antworttelegramms vom Interface>
data
Ergebnis = <Antworttelegramm vom Interface>

Beschreibung
Mit dieser Funktion werden die, vom BIP übergebenen, Daten direkt an das Interface durchgereicht.
Die Antwort des Interface wird uninterpretiert zurückgegeben. Die ein- und ausgehenden Daten sind
Interface-spezifisch.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 44
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS

Version 1.01 Seite 82


EDIABAS-IFH Schnittstellenbeschreibung

Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 44
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 83


EDIABAS-IFH Schnittstellenbeschreibung

3.6.27 ifhSend
Kurzbeschreibung
Senden eines Anforderungstelegramms an das Interface.

BEST2 Funktion
void ifsend
(
unsigned char request[]
)

Prototyp
extern „C“ short ifhSend
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
length
Anzahl der Bytes des Anforderungstelegramms an das Interface
data
Anforderungstelegramm an das Interface

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Diese Funktion dient nur zu Debugzwecken. Sie darf nur zur Entwicklung des IFH verwendet werden.
Die Funktionalität ist Interface-spezifisch und kann sich von IFH-Version zu Version ändern.
Die Funktion ist vorgesehen zum Senden von Daten an den IFH.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 84


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 45
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 45
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 85


EDIABAS-IFH Schnittstellenbeschreibung

3.6.28 ifhReceive
Kurzbeschreibung
Empfangen eines Antworttelegramms vom Interface.

BEST2 Funktion
void ifrecv
(
unsigned char response[],
long time
)

Prototyp
extern „C“ short ifhReceive
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
Zeit in Millisekunden, in der auf die Antwort gewartet wird.
length
length = sizeof(unsigned long)
data
*(unsigned long *)data = Wartezeit

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Antworttelegramm vom Interface
length
Ergebnislänge = <Anzahl der Bytes des Antworttelegramms vom Interface>
data
Ergebnis = <Antworttelegramm vom Interface>

Beschreibung
Diese Funktion dient nur zu Debugzwecken. Sie darf nur zur Entwicklung des IFH verwendet werden.
Die Funktionalität ist Interface-spezifisch und kann sich von IFH-Version zu Version ändern.
Die Funktion ist vorgesehen zum Warten der angegebene Zeit auf Daten vom Interface.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 86


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 46
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 46
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 87


EDIABAS-IFH Schnittstellenbeschreibung

3.6.29 ifhSysInfo
Kurzbeschreibung
Zugreifen auf IFH Internas.

BEST2 Funktion
void ifinfo
(
char output[],
char input[]
)
long ifinfoExt
(
long funcID,
char output[],
char input[]
)

Prototyp
extern „C“ short ifhSysInfo
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
Die Parameter sind an die jeweilige Debug-Funktion angepasst.
length
Anzahl der übergebenen Datenbytes
data
Spezifische Datenbytes

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Die Ergebnisse sind an die jeweilige Debug-Funktion angepasst.
length
Anzahl der zurückgelieferten Datenbytes
data
Spezifische Datenbytes

Beschreibung
Diese Funktion dient nur zu Debugzwecken. Sie darf nur zur Entwicklung des IFH verwendet werden.
Die Funktionalität ist Interface-spezifisch und kann sich von IFH-Version zu Version ändern.
Mit dieser Funktion kann bei der Entwicklung des IFH die interne Funtionalität über die
Beschreibungsdatei abgefragt bzw. beeinflußt werden.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

Version 1.01 Seite 88


EDIABAS-IFH Schnittstellenbeschreibung

IFH-Message [in]
Komponente Beschreibung
funcNo 47
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 47
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 89


EDIABAS-IFH Schnittstellenbeschreibung

3.6.30 IfhSetParameterRaw
Kurzbeschreibung
Nicht implementiert.

BEST2 Funktion
Nicht implementiert.

Prototyp
extern „C“ short ifhSetParameterRaw
(
/*[in]*/ unsigned short length,
/*[in]*/ unsigned char *data
);

Parameter
length
Anzahl der Parameter-Bytes
data
Steuergeräte-Parameter

Rückgabewert
IFH Fehlercode (siehe /2/)

Auftragsergebnis
Keines.

Beschreibung
Diese Funktion ist in keiner existierenden IFH-DLL implementiert.
Die folgenden Funktionen der DLL-Schnittstelle werden in der angegebenen Reihenfolge aufgerufen:
• dllCallIFH (mit unten stehender Message)

IFH-Message [in]
Komponente Beschreibung
funcNo 54
wParam 0
len = length (Parameter)
data Zeiger auf den Übergabe-Datenpuffer im EDIABAS
Inhalt von data (Parameter)

IFH-Message [out]
Komponente Beschreibung
funcNo 54
wParam IFHBUSY (1)
len 0
data NULL

Version 1.01 Seite 90


EDIABAS-IFH Schnittstellenbeschreibung

4 IFH-DLL-Schnittstelle

4.1 Allgemeines
Die Kommunikation zwischen IFH-Master und IFH-Slave geschieht über Messages (Datentyp
MESSAGE). Jede Message besteht aus vier Komponente:
• Die ID der IFH-Funktion (alle IFH-Funktionen sind durchnummeriert).
• Ein short-Wert, der zur freien Verfügung steht.
• Ein Zeiger auf einen Datenpuffer.
• Ein short-Wert, der angibt, wieviele Daten im Datenpuffer stehen
Der Ablauf eines Kommunikationszyklus zwischen IFH-Master und IFH-Slave erfolgt beim Aufruf einer
IFH-Funktion immer nach folgendem Schema:
• Eine Eingangsmessage wird mit der Funktions-ID der IFH-Funktion, dem Zeiger auf den
Datenübergabepuffer der Anwendung (EDIABAS) und der Anzahl der Daten im Puffer vorbelegt.
• Die zentrale Funktion dllCallIFH wird aufgerufen. Sie erhält als Parameter einen Zeiger auf die
Eingangsmessage und einen Zeiger auf die Ausgangsmessage.
• dllCallIFH übergibt die Eingangsmessage an den IFH-Slave und kopiert die Daten der Anwendung
in einen Puffer im Slave. Danach wird die, über die ID angegebene Funktionalität ausgeführt und
eine Ausgangsmessage entsprechen dem Ergebnis belegt.
• Diese Ausgangsmessage wird von dllCallIFH zurückgegeben.

4.2 Funktionsübersicht
Es existieren, die im Anschluß aufgelisteten Funktionen:
• dllLockIFH
• dllUnlockIFH
• dllStartupIFH
• dllShutdownIFH
• dllCheckIFH
• dllExitIFH
• dllCallIFH

Version 1.01 Seite 91


EDIABAS-IFH Schnittstellenbeschreibung

4.3 dllLockIFH
Kurzbeschreibung
Sperrt den IFH.

Prototyp
extern „C“ __declspec(dllexport) BOOL WINAPI dllLockIFH
(
void
);

Parameter
Keine.

Rückgabewert
TRUE Die IFH-DLL wird für die aktuelle Instanz von EDIABAS reserviert und damit für alle
anderen Instanzen gesperrt.
FALSE Die IFH-DLL wurde bereits für eine andere Instanz von EDIABAS resierviert und ist für
die aktuelle Instanz gesperrt.

Beschreibung
Diese Funktion sperrt den Zugriff auf den IFH für andere Instanzen von EDIABAS. Diese Funktion
kann dazu verwendet werden den Zugriff mehrerer Instanzen von EDIABAS auf ein Interface über
eine Fehlermeldung ("IFH-0029: ACCESS DENIED" (39)) abzusichern. In den IFHs für das EDIC und
den ADS-Ablegern gibt diese Funktion immer TRUE zurück.
Diese Funktion wird in den folgenden IFH-Schnittstellenfunktionen verwendet:
• ifhCheckCompatibility
• ifhInit

Version 1.01 Seite 92


EDIABAS-IFH Schnittstellenbeschreibung

4.4 dllUnlockIFH
Kurzbeschreibung
Gibt den IFH wieder frei.

Prototyp
extern „C“ __declspec(dllexport) void WINAPI dllUnlockIFH
(
void
);

Parameter
Keine.

Rückgabewert
Keiner.

Beschreibung
Diese Funktion gibt die gesperrte IFH-DLL wieder frei.
Diese Funktion wird in den folgenden IFH-Schnittstellenfunktionen verwendet:
• ifhShutdown
• ifhCheckCompatibility
• ifhInit (Im Fehlerfall)
• ifhEnd

Version 1.01 Seite 93


EDIABAS-IFH Schnittstellenbeschreibung

4.5 dllStartupIFH
Kurzbeschreibung
Initialisiert den IFH.

Prototyp
extern „C“ __declspec(dllexport) short WINAPI dllStartupIFH
(
char *ediabasIniPath,
char *ifhName
);

Parameter
ediabasIniPath
Name mit Pfad der EDIABAS Konfigurationsdatei.
ifhName
Bezeichnung des IFH (z.B. EDIC oder STD:FUNK). Die Bezeichnug kann mit drei verschiedenen
Mechanismen vom Anwender an EDIABAS übergeben werden:
• Mit dem Konfigurationselement „Interface“ in der Sektion „Configuration“ in der EDIABAS-
Konfigurationsdatei.
• Mit dem ersten Parameter im EDIABAS-API-Aufruf apiInitExt.
• Mit dem EDIABAS-API-Aufruf apiSetConfig(„Interface“,<Bezeichnung>).

Rückgabewert
IFH Fehlercode (siehe /2/) minus 9 oder 0, wenn kein Fehler aufgetreten ist.

Beschreibung
Diese Funktion wird einmal aufgerufen, nachdem die IFH-DLL geladen wurde. Hier werden einmalige
Grundinitialisierungen durchgeführt.
Diese Funktion wird in den folgenden IFH-Schnittstellenfunktionen verwendet:
• ifhStartup

Version 1.01 Seite 94


EDIABAS-IFH Schnittstellenbeschreibung

4.6 dllShutdownIFH
Kurzbeschreibung
Deinitialisiert den IFH.

Prototyp
extern „C“ __declspec(dllexport) void WINAPI dllShutdownIFH
(
void
);

Parameter
Keine.

Rückgabewert
Keiner.

Beschreibung
Diese Funktion wird als letzte Funktion aufgerufen, bevor die IFH-DLL entladen wird. Hier werden
Deinitialisierungen durchgeführt. Wenn EDIABAS komplett entladen wird, dann wird diese Funktion
nicht mehr aufgerufen.
Diese Funktion wird in den folgenden IFH-Schnittstellenfunktionen verwendet:
• ifhShutdown

Version 1.01 Seite 95


EDIABAS-IFH Schnittstellenbeschreibung

4.7 dllCheckIFH
Kurzbeschreibung
Prüft, ob die IFH-DLL-Schnittstelle noch kompatibel ist.

Prototyp
extern „C“ __declspec(dllexport) short WINAPI dllCheckIFH
(
short compatibilityNo
);

Parameter
compatibilityNo
Kompatibilitätsnummer.

Rückgabewert
IFH Fehlercode (siehe /2/) minus 9 oder 0, wenn kein Fehler aufgetreten ist.

Beschreibung
Diese Funktion prüft, ob die IFH-DLL-Schnittstelle und die zu EDIABAS gebundene Aufrufschicht
kompatibel sind.
Diese Funktion wird in den folgenden IFH-Schnittstellenfunktionen verwendet:
• ifhCheckCompatibility
• ifhInit

Version 1.01 Seite 96


EDIABAS-IFH Schnittstellenbeschreibung

4.8 dllExitIFH
Kurzbeschreibung
Ende-Funktion.

Prototyp
extern „C“ __declspec(dllexport) void WINAPI dllExitIFH
(
void
);

Parameter
Keine.

Rückgabewert
Keiner.

Beschreibung
Diese Funktion wird in den existierenden IFH-DLLs nicht verwendet.
Diese Funktion wird in den folgenden IFH-Schnittstellenfunktionen verwendet:
• ifhEnd

Version 1.01 Seite 97


EDIABAS-IFH Schnittstellenbeschreibung

4.9 dllCallIFH
Kurzbeschreibung
Zentrale Aufruf-Funktion.

Prototyp
extern „C“ __declspec(dllexport) short WINAPI dllCallIFH
(
MESSAGE *msgIn,
MESSAGE *msgOut
);

Parameter
msgIn
Message an die IFH-DLL.
msgOut
Message von der IFH-DLL.

Rückgabewert
IFH Fehlercode (siehe /2/) minus 9 oder 0, wenn kein Fehler aufgetreten ist.

Beschreibung
Über diese Funktion kommuniziert EDIABAS mit der IFH-DLL. In der Ferndiagnose werden die
Messages über ein Netzwerk weitergeleitet.
Diese Funktion wird in den folgenden IFH-Schnittstellenfunktionen verwendet:
• ifhShutdown
• ifhInit
• ifhGetVersion
• ifhBreak
• ifhEnd
• ifhGetIfhStatus
• ifhGetIfhError
• ifhGetResult
• ifhDispatchMessage
• ifhGetPowerState
• ifhPassSetConfig
• ifhPassGetConfig
• ifhNotifyConfig
• ifhConnect
• ifhDisconnect
• ifhInterfaceType
• ifhPowerSupply
• ifhIgnition
• ifhWarmStart
• ifhReset
• ifhSetParameter
• ifhSetTelPreface

Version 1.01 Seite 98


EDIABAS-IFH Schnittstellenbeschreibung

• ifhSendTelegram
• ifhSendTelegramFreq
• ifhRequTelegramFreq
• ifhStopFreqTelegram
• ifhRequestKeyBytes
• ifhRepeatLastMsg
• ifhRequestState
• ifhSetPort
• ifhGetPort
• ifhSetProgVoltage
• ifhLoopTest
• ifhVersion
• ifhDownload
• ifhSwitchSiRelais
• ifhStopTransmission
• ifhRawMode
• ifhSend
• ifhReceive
• ifhSysInfo
• IfhSetParameterRaw

Version 1.01 Seite 99


EDIABAS-IFH Schnittstellenbeschreibung

5 Netzwerkübertragung

5.1 Allgemeines
Typischerweise werden Diagnose-Interfaces direkt am Diagnose-System angeschlossen und
betrieben (lokaler Diagnose-Interface-Betrieb). Ein IFH-Funktionsaufruf wird hierbei vollständig auf
dem lokalen System ausgeführt, d.h. der Programmcode von EDIABAS und IFH laufen auf dem
gleichen System.
Der Interface Handler kann sich aber auch auf einem entfernten System befinden (Ferndiagnose-
Betrieb), d.h. der Programmcode von EDIABAS und IFH laufen dann auf verschiedenen Systemen.
Der Ferndiagnose-Betrieb basiert auf dem Client/Server-Prinzip, wobei EDIABAS (Client) auf Dienste
des Interface-Handlers (Server) zugreift.
In diesem Kapitel sind die grundlegenden Mechanismen der Ferndiagnose anhand der existierenden
Implementierung für eine TCP/IP Verbindung beschrieben. Ferndiagnose-Komponenten für andere
Verbindungen sind analog zu implementieren.
Auf dem Client-System läuft anstatt dem Interface-Handler eine Kommunikations-Software mit
identischer Schnittstelle (XREMOTE). XREMOTE wandelt alle IFH-Funktionsaufrufe in Datenpakete
um und sendet diese an das Server-System (IFH-Server). Der IFH-Server empfängt die von
XREMOTE gesendeten Datenpakete, analysiert diese und führt die entsprechenden IFH-
Funktionsaufrufe durch. Die Funktionsergebnisse werden vom IFH-Server anschließend wieder an
das Client-System zurückgeschickt, woraufhin XREMOTE die Funktionsergebnisse interpretiert und
entsprechende lokale Funktionsergebnisse liefert.
Für EDIABAS-Anwendungen erfolgen alle IFH-Aufrufe (lokal oder via Netzwerkübertragung) völlig
transparent.

Version 1.01 Seite 100


EDIABAS-IFH Schnittstellenbeschreibung

EDIABAS (EBAS32.DLL)

BEST-Interpreter

IFH-Schnittstelle

IFH-Master

IFH-DLL-Schnittstelle

XREMOTE (XREMOT32.DLL)

Netzwerkübertragung

IFH-Server (

IFH-DLL-Schnittstelle

IFH-Slave (z.B. XEDIC32.DLL)

Version 1.01 Seite 101


EDIABAS-IFH Schnittstellenbeschreibung

5.2 Konfiguration
Für den Ferndiagnose-Betrieb muß sowohl auf dem lokalen System als auch auf dem
fernzusteuerndem System eine angepasste EDIABAS-Konfigurationsdatei EDIABAS.INI vorliegen.

5.2.1 Lokale Konfiguration


Die Konfigurationsdatei EDIABAS.INI des lokalen Systems muß folgende Netzwerkeinstellungen
enthalten:

[Configuration]
Interface = Remote
NetworkProtocol = TCP

[TCP]
RemoteHost = <Name/Adresse des Remote-Systems>
Port = <IFH-Port des Remote-Systems>

Die Einstellung Interface = Remote bewirkt die Verwendung von XREMOTE anstelle dem lokalen
Interface Handler.
Mit der Einstellung NetworkProtocol = TCP wird als Kommunikationsprotokoll eine TCP/IP-
Kommunikation vorgegeben.
Für die TCP/IP-Kommunikation ist die IP-Adresse (RemoteHost) des Remote-Systems und der IP-
Port (Port) des Interface-Handlers zu konfigurieren, wobei der IP-Port mit der entsprechenden
Einstellung auf dem Remote-System übereinstimmen muß.
Bei den EDIABAS-Konfigurationen TracePath und SimulationPath ist zu beachten, daß die lokalen
Einstellungen nicht an das Remote-System übertragen werden.

5.2.2 Remote Konfiguration


Die Konfigurationsdatei EDIABAS.INI des Remote-Systems muß folgende Netzwerkeinstellungen
enthalten:

[Configuration]
NetworkProtocol = TCP

[TCP]
Port = <IFH-Port des Remote-Systems>

Mit der Einstellung „NetworkProtocol = TCP“ wird als Kommunikationsprotokoll eine TCP/IP-
Kommunikation vorgegeben.
Für die TCP/IP-Kommunikation ist der IP-Port (Port) des Interface-Handlers zu konfigurieren, welcher
mit der entsprechenden Einstellung auf dem lokalen System übereinstimmen muß.

5.3 Kommunikations-Schichten
Bei konfiguriertem Ferndiagnose-Betrieb sind zusätzliche Kommunikationsschichten vorhanden,
welche beim Start des Clients (EDIABAS-Anwendung) sowie beim Start des Servers (IFH-Server)
automatisch mit gestartet werden.
Auf dem lokalen System existieren neben EDIABAS noch folgende Kommunikations-Komponenten:
• XREMOTE

Version 1.01 Seite 102


EDIABAS-IFH Schnittstellenbeschreibung

• NETMAN
• Netzwerktreiber

Auf dem Remote-System existieren neben dem Interface-Handler noch folgende Kommunikations-
Komponenten:
• IFH-Server
• NETMAN
• Netzwerktreiber

5.3.1 NETMAN
Die Abwicklung der gesamten TCP/IP-Netzwerkkommunikation erfolgt über die NETMAN-Software,
welche ihrerseits aus folgenden Kommunikationsschichten besteht:
• Network Abstraction Layer
• Netman Message Protocol

5.3.1.1 Network Abstraction Layer


Der Network Abstraction Layer läuft sowohl auf dem lokalen System als auch auf dem Remote
System und führt den direkten Zugriff auf die betriebssystemspezifischen Netzwerkfunktionen durch.
Eigenschaften des Network Abstraction Layers:
• Protokollunabhängige Netzwerkzugriffe
• Behandlung von betriebssystemspezifischen Besonderheiten
• Time-Out-Funktionalität für Verbindungsaufbau und Datenempfang
• Verwaltung mehrerer Verbindungen
• Vereinfachte Fehlerbehandlung
Der Network Abstraction Layer ermöglicht einen protokollunabhängigen Zugriff von XREMOTE und
IFH-Server. Hierzu sind alle Socket-Funktionen/Konfigurationen des jeweiligen Zielsystems über eine
betriebssystemunabhängige Schnittstelle aufrufbar.
Weiterhin kapselt der Network Abstraction Layer alle betriebssystemspezifischen Besonderheiten im
Zusammenhang mit der Netzwerkkommunikation. Dies hat den Vorteil, daß die auf den Network
Abstraction Layer zugreifenden Software-Komponenten bzgl. der Netzwerkkommunikation
plattformunabhängig realisiert werden können.
Der Network Abstraction Layer bietet bei allen Zugriffen mit möglicherweise zeitintensiver
Verarbeitung eine Vorgabe der maximalen Funktionsdauer. So kann der Time-Out bei Aufbau einer
Verbindung oder bei Empfang eines Datenpakets in Millisekunden angegeben werden und ist für den
Aufrufer betriebssystemunabhängig. Ein Time-Out wird ggf. durch einen speziellen Rückgabewert
angezeigt.
Alle via Network Abstraction Layer aufgebauten Verbindungen werden intern verwaltet und lassen
sich mittels einer eindeutigen Verbindungs-ID ansprechen. Bei Beendigung von EDIABAS bzw. bei
Beendigung des IFH-Servers werden alle noch geöffneten Verbindungen automatisch abgebaut.
Bei Netzwerkfehlern führt der Network Abstraction Layer eine Umsetzung auf Socket-unabhängige
Fehler durch. Dies führt zu einer Unabhängigkeit bzgl. plattformunterschiedlicher Socket-
Fehlermeldungen sowie zu einer allgemeinen Protokollunabhängigkeit.

5.3.1.2 Netman Message Protocol


Das Netman Message Protocol (NMP) setzt auf den Network Abstraction Layer auf und stellt ein
zusätzliches Kommunikations- und Sicherungsprotokoll dar. NMP läuft sowohl auf dem lokalen
System als auch auf dem Remote System und stellt das Bindeglied zwischen Network Abstraction
Layer und XREMOTE bzw. IFH-Server dar.
Version 1.01 Seite 103
EDIABAS-IFH Schnittstellenbeschreibung

NMP ist seit EDIABAS Version 6.1.0 verfügbar und zeigt folgende Eigenschaften:
• Message-orientierte Kommunikationsform
• Gesicherte Übertragung vollständiger Messages
• Erkennung fehlender oder redundanter Messages
• Identifikation des Kommunikationspartners
• Automatische Kompatibilitätsprüfung
• Überprüfung auf Erreichbarkeit des Kommunikationspartners

NMP stellt eine objektorientierte Kommunikationsform dar, wobei Client- und Server- Objekte mittels
Messages kommunizieren. Obwohl das zugrundeliegende Netzwerkprotokoll TCP/IP stream-orientiert
ist, garantiert NMP die Übertragung vollständiger Messages. Sollte TCP/IP z.B. nur einen Teil einer
Message übertragen haben, so führt NMP (unter Berücksichtigung der Time-Out-Vorgaben) vor
Weitergabe des Datenpakets automatisch den Empfang aller noch ausstehenden Daten durch.
NMP führt weiterhin eine Kontrolle aller übertragenen Messages durch und erkennt den Verlust einer
oder mehrerer Messages. Sollte hingegen eine Message mehrfach empfangen worden sein, so
verwirft NMP automatisch alle redundanten Messages der jeweiligen Verbindung.
Die erste Message nach Aufbau einer Verbindung enthält zusätzliche Informationen bzgl. des
jeweiligen Client/Server-Objekts sowie Anforderungen bzgl. der geforderten Kompatibilität des
Kommunikationspartners. Sollte der IFH-Server die von XREMOTE vorgegebene Netzwerk-Service-
Version nicht aufweisen können, so erfolgt ein automatischer Abbau der Verbindung durch
XREMOTE.
Die Erreichbarkeit eines Kommunikationspartners kann entweder durch Interpretation der aktuellen
TCP/IP-Statusinformationen beurteilt oder aber auch durch Sendung/Empfang einer gesonderten
Alive-Message ermittelt werden.

5.3.2 XREMOTE
XREMOTE repräsentiert die IFH-Schnittstelle auf dem lokalen System und zeigt folgende
Funktionalität:
• Einlesen der ferndiagnosespezifischen EDIABAS-Konfiguration
• Hochfahren und Herunterfahren der Kommunikations-Software
• Aufbau und Abbau der Verbindung zum IFH-Server
• Erkennung eines ausgefallenen oder eines stellvertretenden IFH-Servers
• Automatischer Verbindungsabbruch bei Netzwerkproblemen
• Übertragung der EDIABAS-Konfiguration
• Übertragung/Umsetzung von IFH-Funktionsaufrufen
• Umsetzung von Netzwerkfehlern auf EDIABAS-Fehler

Der Start von XREMOTE erfolgt durch EDIABAS, wobei in der Hochlaufphase von XREMOTE zuerst
die ferndiagnose-spezifischen Informationen aus EDIABAS.INI eingelesen werden. Entsprechend der
Konfigurationsinformationen lädt XREMOTE dann die NETMAN-Software (Netman Message Protocol
und Network Abstraction Layer).
Aus Performance-Gründen baut XREMOTE nicht bei jedem ifhInit eine neue Verbindung zum IFH-
Server auf (und schließt bei ifhEnd auch keine Verbindung), sondern hält eine Verbindung bis ein
neuer Verbindungsaufbau erforderlich oder XREMOTE beendet wird. Der Wechsel des
fernzusteuernden Systems (d.h. die Adresse des IFH-Servers) ist nur zum Zeitpunkt von ifhInit
möglich, weshalb die Konfigurationsdatei EDIABAS.INI bei jedem ifhInit-Aufruf bezüglich der IFH-
Server-Adresse neu überprüft wird. Sollte sich die Adresse ändern (EDIABAS wünscht einen
Verbindungswechsel), so baut XREMOTE eine ggf. bereits bestehende Verbindung ab und führt einen
neuen Verbindungsaufbau durch. Auch bei unveränderter IFH-Server-Adresse überprüft ifhInit eine

Version 1.01 Seite 104


EDIABAS-IFH Schnittstellenbeschreibung

bereits aufgebaute Verbindung und führt im Falle eines Verbindungsfehlers automatisch eine neue
Verbindung auf (z.B. nach Restart des Remote Systems). Ebenso baut XREMOTE die Verbindung
automatisch ab, falls während der Kommunikation mit dem IFH-Server ein Kommunikationsproblem
auftreten sollte.
Bei jedem neuen Verbindungsaufbau muß von einem Remote System ausgegangen werden, welches
sich in einem noch nicht konfiguriertem Zustand befindet. Aus diesem Grunde überträgt XREMOTE
nach jedem Verbindungsaufbau alle relevanten EDIABAS-Konfigurationen an das Remote System.
Alle IFH-Aufrufe werden via Marshalling von XREMOTE an das Remote System übertragen.
XREMOTE erstellt hierzu jeweils ein Datenpaket mit allen Funktionsparametern sowie einem
speziellen Funktionscode. Nach Absendung des Datenpakets erfolgt eine zyklische Abfrage durch
XREMOTE auf ein Ergebnis bzw. eine Fehlermeldung vom Remote System in Form eines IFH-Server-
Datenpakets. Solange noch keine Antwort des Remote Systems vorliegt gibt XREMOTE bei jeder
EDIABAS-Statusanfrage den Wert IFHBUSY zurück. Jede Antwort des IFH-Servers wird entpackt und
die entsprechenden Funktionsergebnisse zurückgegeben.
Sollte beim Verbindungsaufbau oder während der Kommunikation ein Problem auftreten, so wird von
NETMAN ein entsprechender Fehler gemeldet. XREMOTE interpretiert daraufhin den Fehlercode,
führt eine EDIABAS-Fehlercode-Umsetzung durch und gibt das Ergebnis an EDIABAS zurück.

5.3.3 IFH-Server
Der IFH-Server läuft auf dem Remote System und stellt die IFH-Schnittstelle via Netzwerk zur
Verfügung.
Folgende Funktionen zeigt der IFH-Server:
• Externe Steuerungsmöglichkeit des IFH-Server-Betriebs
• Einlesen der ferndiagnosespezifischen EDIABAS-Konfiguration
• Hochfahren und Herunterfahren der Kommunikations-Software
• Laden des IFH-Services
• Ereignisgesteuerte Netzwerkkommunikation
• Annahme von XREMOTE-Verbindungsanfragen
• Automatische Erkennung eines ausgefallenen XREMOTEs
• IFH-Locking-Mechanismus
• Empfang und Umsetzung von XREMOTE-Funktionsdaten
• Rücksendung von IFH-Funktionsergebnissen an XREMOTE
Das Remote System kann nur dann auf IFH-Anfragen reagieren, wenn der IFH-Server läuft und sich
im aktiven Zustand befindet. Bei Deaktivierung des IFH-Servers werden alle bestehenden
Verbindungen abgebaut und der IFH-Server reagiert fortan nicht mehr auf Verbindungsanfragen.
Beim Hochfahren des IFH-Servers wird automatisch NETMAN und der Interface-Handler als IFH-
Service geladen. Der IFH-Service liest beim Start alle Netzwerk- und Interface-Handler- spezifischen
Konfigurationen aus der Datei EDIABAS.INI ein und führt eine entsprechende Grundinitialisierung
durch.
Die gesamte Kommunikation erfolgt auf Basis eines ereignisorientierten Modells. Der IFH-Server ruft
bei jeder Verbindungsanfrage, bei jedem Verbindungsabbruch und bei jedem empfangenen
Datenpaket eine entsprechende IFH-Service-Rückruffunktion auf. Eine XREMOTE-Verbindung wird
zyklisch vom IFH-Server überprüft, wobei dieser im Falle eines Verbindungsfehlers automatisch den
IFH-Service bzgl. dem damit verbundenen Verbindungsabbruch informiert.
Auf einem Remote System kann immer nur ein Client gleichzeitig bedient werden (IFH-Locking). Sollte
bereits eine Verbindung zu einem Client bestehen, so werden alle Verbindungsanfragen anderer
Clients mit der Fehlermeldung IFH ACCESS DENIED quittiert und der jeweilige XREMOTE führt den
automatischen Abbau der abgewiesenen Verbindung durch. Nach Aufruf der Funktion ifhEnd wird die
Verbindung aus Performance-Gründen zwar nicht sofort abgebaut, jedoch ist ein Verbindungsaufbau
mit einem anderen Client möglich (inklusive einem damit verbundenen Abbau der alten Verbindung).
Version 1.01 Seite 105
EDIABAS-IFH Schnittstellenbeschreibung

Jedes empfangene IFH-Datenpaket wird im IFH-Service entpackt und die entsprechende IFH-
Funktion mitsamt aller Funktionsparameter aufgerufen. Die Funktionsergebnisse werden
anschließend wieder zu einem Datenpaket geschnürt und dem betreffenden XREMOTE via IFH-
Server zurückgeschickt.

Version 1.01 Seite 106


EDIABAS-IFH Schnittstellenbeschreibung

5.4 Netzwerkfehler
Folgende NETMAN-Fehlerwerte können in den Kommunikationsschichten auftreten und ggf. als IFH-
oder EDIABAS- Fehler umgesetzt und weiterverarbeitet werden:

Konstante Beschreibung
NET_OK Kein Fehler
NET_INTERNALERR Interner Netzwerkfehler
NET_UNKNOWNERR Netzwerkkommunikation gestört
NET_ILLEGALVERSION Unzulässige Network Abstraction Layer Version
NET_INITERR Fehlerhafte Network Abstraction Layer Initialisierung
NET_ILLEGALCALL Unzulässiger Netzwerkaufruf
NET_NOSUPPORT Netzwerkaufruf wird (noch nicht) unterstützt
NET_ACCESSDENIED Netzwerkzugriff verweigert
NET_SYSTEMERR Resource-Problem des Systems
NET_NETERR Allgemeines Netzwerkproblem
NET_TIMEOUT Kommunikationspartner reagiert nicht
NET_BUFFEROVERFLOW Unzulässige Datengröße
NET_ALREADYCONNECTED Verbindung zum Kommunikationspartner bereits aufgebaut
NET_NOCONNECTION Fehlende Verbindung zum Kommunikationspartner
NET_CONNECTIONDISTURBED Kommunikation zum Kommunikationspartner gestört
NET_CONNECTIONABORTED Verbindung zum Kommunikationspartner abgebrochen
NET_HOSTNOTFOUND IFH-Server im Netzwerk nicht gefunden
NET_HOSTERR IFH-Server nicht erreichbar
NET_PROTOCOLNOTAVAIL Network Abstraction Layer nicht verfügbar
NET_UNKNOWNPROTOCOL Network Abstraction Layer nicht bekannt
NET_UNKNOWNSERVICE Unbekannter IP-Port
NET_UNKNOWNHOST Unbekannte Netzwerkadresse des IFH-Servers
NMP_INITERR Fehlerhafte Netman Message Protocol Initialisierung
NMP_ILLEGALVERSION Unzulässige Netman Message Protocol Version
NMP_ILLEGALPROTOCOLVERSION Unzulässiges Netman Message Protocol Format
NMP_ILLEGALSERVICEVERSION Unzulässige IFH-Service-Version
NMP_PROTOCOLNOTAVAIL Netman Message Protocol nicht verfügbar

Version 1.01 Seite 107