Sie sind auf Seite 1von 101

Abbildung der EXAM-IDL auf die Web-Service

Schnittstelle von ODIS-Engineering

499725969.doc Seite 1 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Abbildung der EXAM-IDL auf die


Web-Service Schnittstelle von
ODIS-Engineering
Änderungsverfolgung

Version Datum Name Abteilung Änderung


0.1 21.07.2010 Bernd T-Systems Ersterstellung
Deterding /
Andreas
Weihs
0.2 06.09.2010 Andreas T-Systems Behandlung Subsysteme bei
Weihs readCodingECU und writeCodingECU
0.3 17.09.2010 Bernd T-Systems Kapitel 2.6 Abbildung von EXAM-
Deterding Systemnamen ergänzt
0.4 28.09.2010 Andreas T-Systems Kleine Korrekturen
Weihs
0.5 30.09.2010 Bernd T-Systems Einarbeitung der Ergebnisse des
Deterding Fragenkataloges vom 24.08.2010
Geänderte Abschnitte:
7.1, 8.5, 8.6, 10.1
0.6 05.10.2010 Bernd T-Systems Abschnitt 4.2: Beschreibung der
Deterding Funktion
callReadParametersOnService
hinzugefügt
Abschnitt 10.2 writeConditioning
Beschreibung des Parameters sType
0.7 02.11.2010 Andreas T-Systems Einarbeitung Ergebnisse des
Weihs Workshops mit Florian Tausch
0.8 07.12.2010 Florian MBtech Zweites technisches Review und
Tausch Group Einarbeitung der Ergebnisse
0.9 13.12.2010 Bernd T-Systems Durchsicht Reviewergebnisse.
Deterding, Referenzen auf WSDL umgesetzt.
Andreas
Weihs 1.3 Behandlung von Exceptions
Konkretisierung

2.5.1 Konkretisierung type

499725969.doc Seite 2 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

2.5.3 StdValue: TableKeys für


Klartextkodierung entfernt, Füllung
errorMessage

2.6 Abbildung der Systemnamen auf


EXAM-Namen: Festlegung in
welchem Prozeß das Mapping
durchgeführt werden soll.

3.2 switchECU Entfernung


Anmerkung

3.5 openDiagnosticConnection
Manueller Modus anstelle
automatischer Modus

3.8 getCurrentConfiguration Neu


hinzugekommen.

4.2 getMemoryInformation IDs nach


Vorgabe Florian Tausch geändert

Konkretisierung 6.1.3
FaultMemoryElement

8.3 readCodingGateway Einarbeitung


Anmerkung FT

8.4 writeCodingGateway Einarbeitung


Anmerkung FT

13.1 checkFlashProgramming
Konkretisierung

18.3 DiagLibResultAllFaultMemories
Änderung Fehlertext.

Korrektur Klassen / Methodennamen


Automatisierungsschnittstelle
0.91 18.03.2011 Bernd T-Systems 7.1 readMeasuredValue
Deterding Korrektur und Konkretisierung des
Verhaltens bei KWP-Steuergeräten.

Aktualisierung des Inhaltsverzeichnis


0.92 18.03.2011 Anastasiya T-Systems
Makhavikova
2.1.0 23.03.2011 Bernd T-Systems Anhebung der Version auf 2.1.0 um
499725969.doc Seite 3 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Deterding den Bezug auf die Version der WSDL


herzustellen

8.1 readCodingECU und 8.2


writeCodingECU
Korrektur bei der Abbildung der Ein-
und Ausgabeparameter. Die kurze
Kodierung bei KWP – Steuergeräten
wird als Integer-Wert übertragen und
nicht mehr als Bytearray.
2.1.1 19.04.2011 Ingo Bruns T-Systems Aktualisierung von
Ergebnisparametern der
Grundeinstellung und
Stellglieddiagnose.
Optionale Parameter für
Initialisierungsroutine hinzugefügt.
2.1.2 27.04.2011 Bernd T-Systems 6.3.2 Art der
Deterding Ereignisspeicherinformation
'diagnosticTroubleCodeTranslated' =>
'displayTroubleCodeTranslated'
2.1.3 28.04.2011 Andreas T-Systems 5.3 IdentService Subsystemnamen
Weihs KWP starten bei 1 und haben den
Prefix sub
2.1.4 29.04.2011 Andreas T-Systems Formatierungen
Weihs
2.1.5 06.05.2011 Bernd T-Systems 4.4 getSupportedFunctions - Liste der
Deterding Rückgabewerte erweitert

10. Anpassung – Beschreibung der


Ein-/Ausgabeparameter angepasst

Verwendung von Plateau-IDL im


Dokumententitel
2.1.6 25.01.2013 Andreas T-Systems Kapitel 6.1.3 FaultMemoryElement.
Weihs BehandlungERROR_TYPE_2 für
UDS
2.1.7 03.04.2013 Andreas T-Systems Kapitel 6.1.6 Dtc.bitValue
Weihs Beschreibung angepasst.
2.1.8 15.04.2013 Bernd T-Systems Kapite 6.1.3 Abbildung des Element
Deterding ‚Level‘ angepasst
3.0.0 09.03.2015 Rolf Hauck T-Systems Multilink-Aufrufe beschrieben.
Kap. 1.3 geändert,
neue Kap. 2.7, 5.5, 6.6, 6.7, 7.3, 8.7,
8.8, 10.5, 10.6
3.0.1 21.04.2015 Rolf Hauck T-Systems Reviewbefunde zur Version 3.0.0
eingearbeitet
3.0.2 27.04.2015 Andreas T-Systems Init Parameter für Multilink
499725969.doc Seite 4 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Weihs Kapitel 3.1 init


3.1.0 12.09.2015 Ingo Bruns T-Systems Aufrufe für Grundeinstellung /
Stellglieddiagnose mit Messwerten
unterschiedlicher Steuergeräte
beschrieben.
3.1.1 08.11.2016 Rolf Hauck T-Systems Neue Aufrufe für Entwickler-
Ereignisspeicher. Erweiterte
Messwerte-Rückgabe für
Stellglieddiagnose und
Grundeinstellung.
3.2.0 20.01.2017 Ingo Bruns T-Systems Neue Aufrufe für die Ermittlung von
DTC Snapshot Records.
4.0.0 24.05.2017 Ingo Bruns T-Systems Rückdokumentation: Entfernung der
Dokumentation zu DTC-Snapshots,
Entwickler-Ereignisspeicher,
Grundeinstellung / Stellglieddiagnose
mit Messwerten unterschiedlicher
Steuergeräte
4.1.0 12.12.2017 Ingo Bruns T-Systems Dokumentation der Funktion
„dataSetDownload“ um
Rückgabeformat und Fehler-IDs
erweitert.
4.2.0 05.11.2018 Andreas T-Systems Kapitel 8.4 writeCodingGateway bzw.
Weihs Kapitel 8.5.1: Information über den
Typ eines Elementes (Busmaster
Eintrag oder Softwarecluster)

Referenzierte Dokumente

Titel, Dateiname Verfasser Version Datum der Kürzel


letzten Änderung
Documentation_d Florian Tausch 0.9.2 26.05.2009 DEXAM
iagnostics_interfa (Berner &
ce_de.pdf Mattner
Systemtechnik
GmbH)
EXAM Diagnose- Florian Tausch, 16.04.2010 EXAM_TA
TA- René Sattler
Schnittstelle_201
00416.chm
TAnf-VAS- B. Osenstätter 8.04 09.12.2008 VAS_DIAG_XML
EGD_DiagXML- (SOFTING.AE.S
V8.20.007.pdf PS.WT)

499725969.doc Seite 5 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Änderungsverfolgung.............................................................................................................. 2
Referenzierte Dokumente.......................................................................................................5
1. Allgemein......................................................................................................................... 8
1.1 Gliederung des Dokumentes...................................................................................9
1.2 Festlegung von Konstanten.....................................................................................9
1.3 Behandlung von Exceptions..................................................................................10
2. Abbildungen der Ein- / Ausgabestrukturen.....................................................................10
2.1 Behandlung der Rückgabe von übersetzten Texten..............................................10
2.2 Schlüssel für Sequenzparameter...........................................................................10
2.3 Vorgehen bei Baumstrukturen...............................................................................11
2.4 Standard Eingabeparameter..................................................................................12
2.5 Standard Ergebniswerte........................................................................................12
2.5.1 Wertemenge für Attribut type.............................................................................12
2.5.2 DiagLibResultPlain............................................................................................12
2.5.3 StdValue............................................................................................................ 13
2.5.4 DiagLibResultStdValueSeq................................................................................14
2.6 Abbildung der Systemnamen auf EXAM-Namen...................................................15
2.6.1 EXAM-Namen für die Identifikation....................................................................15
2.6.2 EXAM-Namen für Ereignisspeichereinträge.......................................................16
2.6.3 EXAM-Namen für den Status eines Stellgliedtests............................................16
2.7 Multilink-Aufrufe.....................................................................................................17
2.7.1 Allgemeines.......................................................................................................17
2.7.2 DiagLibEcuBase................................................................................................17
2.7.3 Behandlung von Exceptions..............................................................................17
2.7.4 DiagLibEcuResults............................................................................................18
3. Verbindungen.................................................................................................................19
3.1 init.......................................................................................................................... 19
3.2 switchECU.............................................................................................................21
3.3 deinit...................................................................................................................... 23
3.4 exit......................................................................................................................... 23
3.5 openDiagnosticConnection....................................................................................23
3.6 closeDiagnosticConnection...................................................................................24
3.7 switchSession........................................................................................................24
3.8 getCurrentConfiguration........................................................................................25
4. Konfiguration..................................................................................................................26
4.1 getPluginInfo..........................................................................................................26
4.2 getMemoryInformation...........................................................................................27
4.3 callReadParametersOnService..............................................................................27
4.4 getSupportedFunctions..........................................................................................30
4.5 getSystemInformation............................................................................................31
5. Identifikation................................................................................................................... 32
5.1 readIdentification...................................................................................................32
5.2 DiagLibResultIdentification....................................................................................33
5.3 IdentService........................................................................................................... 34
5.4 Beispiele................................................................................................................ 36
5.5 readIdentificationMultilink......................................................................................39
499725969.doc Seite 6 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

5.5.1 DiagLibResultIdentifications...............................................................................40
5.5.2 EcuIdentificationItem.........................................................................................41
6. Ereignisspeicher............................................................................................................41
6.1 readFaultMemory..................................................................................................41
6.1.1 DiagLibResultFaultMemory................................................................................42
6.1.2 FaultMemoryElementList...................................................................................42
6.1.3 FaultMemoryElement.........................................................................................43
6.1.4 Art der Ereignisspeicherinformation...................................................................46
6.1.5 Werte für Standardumgebungsbedingungen.....................................................47
6.1.6 Dtc..................................................................................................................... 47
6.2 readListOfActiveFaultEntries.................................................................................48
6.3 readListOfUncheckedFaultPaths...........................................................................48
6.4 resetFaultMemory..................................................................................................49
6.5 readFaultMemoryWithoutEnvironmentData...........................................................49
6.6 readFaultMemoryMultilink......................................................................................50
6.6.1 DiagLibResultFaultMemories.............................................................................51
6.6.2 EcuFaultMemoriesItem......................................................................................51
6.7 resetFaultMemoryMultilink.....................................................................................52
7. Messwerte..................................................................................................................... 52
7.1 readMeasuredValue(String, String).......................................................................52
7.2 DiagLibResultMeasuredValue...............................................................................53
7.3 readMeasuredValueMultilink.................................................................................54
8. Codierung...................................................................................................................... 55
8.1 readCodingECU....................................................................................................55
8.1.1 Beispiele............................................................................................................ 56
8.2 writeCodingECU....................................................................................................56
8.3 readCodingGateway..............................................................................................58
8.4 writeCodingGateway.............................................................................................58
8.5 readGatewayEquipmentList...................................................................................59
8.5.1 StdValue............................................................................................................ 59
8.5.2 Beispiele............................................................................................................ 61
8.6 writeGatewayEquipmentList..................................................................................62
8.7 readCodingMultilink...............................................................................................63
8.7.1 DiagLibResultCodings.......................................................................................64
8.7.2 DiagLibResultEcuCodingItem............................................................................64
8.7.3 DiagLibResultSystemCodingItem......................................................................65
8.8 writeCodingMultilink...............................................................................................66
8.8.1 DiagLibEcuCodingParamValuesItem.................................................................67
8.8.2 DiagLibCodingParamValuesItem.......................................................................67
8.8.3 DiagLibCodingType...........................................................................................68
9. Stellglieddiagnose.......................................................................................................... 68
9.1 actuatorDiagnosis..................................................................................................68
9.2 DiagLibResultActuatorDiagnosis...........................................................................69
9.3 selectiveActuatorDiagnosis....................................................................................71
10. Anpassung................................................................................................................ 73
10.1 readConditioning...................................................................................................73
10.1.1 DiagLibResultConditioning.............................................................................74
499725969.doc Seite 7 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

10.1.2 ConditioningElement......................................................................................74
10.1.3 Beispiele........................................................................................................75
10.2 writeConditioning...................................................................................................77
10.3 readLongConditioning............................................................................................78
10.4 writeLongConditioning...........................................................................................78
10.5 readAdaptionMultilink............................................................................................78
10.5.1 DiagLibEcuFuncParamNamesItem................................................................79
10.5.2 DiagLibResultFuncValues..............................................................................80
10.5.3 DiagLibResultEcuFuncValuesItem.................................................................80
10.5.4 DiagLibResultFuncValuesItem.......................................................................81
10.5.5 StdFuncValue................................................................................................82
10.6 writeAdaptionMultilink............................................................................................83
10.6.1 DiagLibEcuAdaptionParamValuesItem..........................................................83
10.6.2 DiagLibAdaptionParamValuesItem................................................................84
11. Grundeinstellung.......................................................................................................84
11.1 basicSettings.........................................................................................................84
11.2 basicSettingStop Aufruf mit leerer Liste.................................................................86
11.3 basicSettingCheck Aufruf mit leerer Liste..............................................................86
11.4 DiagLibResultBasicSettings...................................................................................87
12. Hex-Service...............................................................................................................89
12.1 sendRawService....................................................................................................89
13. Flashen..................................................................................................................... 89
13.1 checkFlashProgramming.......................................................................................89
13.2 flashProgramming.................................................................................................91
14. Datensatz.................................................................................................................. 91
14.1 dataSetDownload..................................................................................................91
15. Transportmodus........................................................................................................92
15.1 enableTransportMode............................................................................................92
15.2 disableTransportMode...........................................................................................93
16. Versionen.................................................................................................................. 93
16.1 getODXVersions....................................................................................................93
17. Zugriffsberechtigung..................................................................................................94
17.1 logInECU............................................................................................................... 94
18. Sammeldienst Ereignisspeicher................................................................................95
18.1 eraseAllFaultMemories..........................................................................................95
18.2 interrogateAllFaultMemories..................................................................................95
18.3 DiagLibResultAllFaultMemories.............................................................................96
18.4 CollectiveFaultMemoryItem...................................................................................97
18.5 eraseAllOBDFaultMemories..................................................................................98
19. switchSession............................................................................................................98
20. Implementierung nicht erforderlich............................................................................99
21. Vorlage...................................................................................................................... 99

1. Allgemein

499725969.doc Seite 8 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

1.1 Gliederung des Dokumentes


Die IDL-Methoden sind gegliedert nach den Interfaces der Automatisierungsschnittstelle, mit
deren Hilfe die Methoden umgesetzt werden. Werden Methoden aus mehreren Interfaces
verwendet, so erfolgt die Zuordnung nach Gewichtung.

1.2 Festlegung von Konstanten


Bei der Zuordnung von Werten werden die hier definierten Textmarken verwendet, die durch
die angegebenen Werte zu ersetzen sind.

Textmarke Wert
EMPTY_STRING „“
EMPTY_LIST Leere Liste bzw. leeres Array
EMPTY_LIBRESULTBASE public final class
DiagLibResultBase {
public String errorMessage =
EMPTY_STRING;
public String reserved =
EMPTY_STRING;
}
TYPE_BYTEFIELD „bytefield“
MASTER_ECU „master“
TYPE_STRING „string“
TYPE_HEX „hex“
TYPE_FLOAT „float“
TYPE_INT „int“
TYPE_BYTEFIELD „bytefield“
ACTION_START „start“
ACTION_STOP „stop“
ACTION_NEXT „next“
ACTION_CHECK „check“
VALUE_CODED „coded“
VALUE_NOTCODED „notCoded“
STATE_RUNNING „1“
STATE_NOT_RUNNING „-1“
DIAG_SERVICE_ADAPTION „Adaption“
DIAG_SERVICE_BASIC_SETTINGS „BasicSettings“
DIAG_SERVICE_CODING „Coding“
DIAG_SERVICE_FINAL_CONTROL_DIAGNOSTI “FinalControlDiagnosis”
CS
DIAG_SERVICE_IDENTIFICATION “Identification”
DIAG_SERVICE_MEASURED_VALUES “MeasuredValues”
DIAG_SERVICE_SECURITY_ACCESS “SecurityAccess”
DIAG_SERVICE_SUPPORTED_FUNCTIONS “SupportedFunctions”
DIAG_SERVICE_FAULT_MEMORY “FaultMemory”
DIAG_SERVICE_SUPPORTED_FUNCTIONS “SupportedFunctions”
499725969.doc Seite 9 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

DIAG_SERVICE_UPDATE_PROGRAMMING “UpdateProgramming”
DIAG_SERVICE_TRANSPAREN_SERVICE “TransparentService”
DIAG_SERVICE_CODINGEQUIPMENTLIST “CodingEquipmentList”
DIAG_SERVICE_SUPPORTED_SESSIONS “SupportedSessions”

1.3 Behandlung von Exceptions


Im Falle einer DiagException_Exception innerhalb der Automatisierungsschnittstelle wird
diese auf der IDL-Schnittstelle auf eine PluginBaseException umgesetzt. Für den Fehlerfall
wird also nicht z.B. die Rückgabestruktur DiagLibResultBase genutzt. Im positiven Fall
werden die Werte von DiagLibResultBase mit Leerstrings gefüllt (EMPTY_STRING).Für die
Multilink-Funktionen gilt dies nicht. Hier wird analog zu den unten beschriebenen
Teiloperationen für jedes angeforderte Steuergerät ein positives oder Fehler-Ergebnis
zurückgegeben, s. Kap. 2.7.3. Eine Exception gibt es hier nur, wenn ein allgemeines
Problem bei der Ausführung der Methode auftritt.
Des Weiteren wird eine PluginBaseException generiert, wenn die Validierung der
Eingabeparameter fehlschlägt.

Nicht implementierte IDL-Methoden werfen eine PluginBaseException mit dem Grund


"Function not implemented".

Der Integer errorCode der PluginBaseException wird von EXAM ausgewertet. Der Wert 0
bedeutet einen schwerwiegenden Fehler, der den Abbruch der Tests und die Unterstützung
des Supports bedeutet. Bei allen anderen Werten können die verbleibenden Testfälle weiter
durchgeführt werden. Dies ist bei der Vergabe des errorCodes zu beachten.

NRCs die in Teiloperationen einer Anfrage vorkommen, dürfen nicht zu einer Exception
führen, da damit dann alle Ergebnisse der Abfrage verworfen würden. Beispiel
Stellglieddiagnose, Anpassung. In diesen Fällen müssen die NRCs in den jeweils
vorhandenen und zur Teiloperation gehörigen Rückgabeattributen gespeichert werden
(jeweils in sErrorMessage). NRCs die als Exception (Gesamtergebnis) einer Operation der
Web-Service-Schnittstelle geliefert werden, werden auch als PluginBaseException an EXAM
geliefert. Beispiel: Schreiben der Klartextcodierung.

2. Abbildungen der Ein- / Ausgabestrukturen


2.1 Behandlung der Rückgabe von übersetzten Texten

Wenn die Übersetzung nicht verfügbar ist, wird in ODIS-Engineering bei Werten aus dem
ODX eine Long- /Shortname Ersetzung durchgeführt. Es werden dann die Elemente mit
entsprechendem Prefix ausgegeben, [LO]_, [LN]_, [SO]_, [SN]_, [VN]_, [VO]_, [UN]_, [UO]_.

2.2 Schlüssel für Sequenzparameter


sVehicleProje Name des MCD-Projektes. Der Spezialfall „unknown“ aus
ct [DEXAM] wird nicht unterstützt, dies ist allerdings auf CORBA-

499725969.doc Seite 10 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Ebene nicht nötig, da die Behandlung dieses Spezialfall bereits


auf EXAM-Seite geschieht. Ist der Projektname gleich dem
geladenen Projekt, so wird das Projekt nicht erneut geladen. Ein
erneutes Laden kann in diesem Fall nicht erzwungen werden.
sEcuId Steuergerätenummer in hexadezimaler Schreibweise. Führende
Nullen sind erlaubt. Beispiel 01.
Eine Sonderrolle spielt der Wert COLLECTIVE_SERVICES.
Dieser wird beim Ausführen von Sammeldiensten verwendet. In
der ODIS Implementierung bewirkt dieser Parameterwert keinen
Steuergerätewechsel. Das aktuell ausgewählte Steuergerät bleibt
ausgewählt.
Alte Namen wie MOT_01 aus [DEXAM] werden in ODIS nicht
unterstützt, dies ist allerdings auf CORBA-Ebene nicht nötig, da
die Behandlung dieser alternativen ECU-Namen bereits auf
EXAM-Seite geschieht.
sLanguage Sprache / Locale, die für die nachfolgenden Aufrufe verwendet
wird. Erwartet wird immer das Format LANGUAGE-COUNTRY
wie z.B. de-DE oder en-EN.
sTraceLevel Setzen des Umfanges für Logausgaben. Wertevorrat: {„OFF“,
„FATAL“, „ERROR“, „WARN“, „INFO“, „DEBUG“, „ALL“} Default:
ERROR

Ein Tracelevel enthält immer alle untergeordneten Tracelevel.


Wenn also z.B. der Tracelevel auf INFO gesetzt wird, so werden
auch Meldungen im Tracelevel WARN, ERROR und FATAL
geschrieben.
sFlashExpecte Setzen der ExpectedIdents bei UDS-Flashen.
dIdents ‚true’ aktiviert und ‚false’ deaktiviert die ExcpectedIdents.
Default: ‚true’
sFlashVersion Setzen der Überprüfung von SW-Version bei KWP-Flashen.
Check ‚true’ aktiviert und ‚false’ deaktiviert die Überprüfung.
Default: ‚true’
Multilink.Max
NumberOfLogic
alLinks Beschreibung siehe Kapitel 3.1 init
Multilink.Con
siderRestrict Beschreibung siehe Kapitel 3.1 init
ionsOfVRTVPT

2.3 Vorgehen bei Baumstrukturen

Es werden bei Baumstrukturen nur die Blätter in der Ergebnisliste verwendet. Damit wird die
eventuelle Strukturierungsinformation für ODX Werte nicht weiter gegeben.

499725969.doc Seite 11 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

2.4 Standard Eingabeparameter


Funktionen, die mit dem aktuell ausgewählten Steuergerät arbeiten, erwarten als
Eingabeparameter ein Objekt vom Typ IConnectionHandle. Dies ist ein Ergebnis des
Aufrufs connectToEcu und wird bei den einzelnen Funktionsbeschreibungen nicht
aufgeführt.

2.5 Standard Ergebniswerte


Beschreibung und Aufbau und Inhalt von allgemeinen Ergebnisstrukturen.

2.5.1 Wertemenge für Attribut type


Ergebnisstrukturen, die einen Wert aus dem Steuergerät transportieren, besitzen in der
Regel ein Attribut type, für das folgende Werte festgelegt sind. Das Attribut type wird
jedoch nicht in jedem Fall gesetzt, da es in EXAM im Regelfall nicht ausgewertet wird.

type Datentyp des Wertes, folgende Werte sind definiert, für die konkreten
Werte siehe Abschnitt 1.2.
TYPE_STRING für String
TYPE_INT für Integer
TYPE_FLOAT für Float, bzw. Double
TYPE_HEX für Hexedezimal
TYPE_BYTEFIELD für ein Byte-Array

2.5.2 DiagLibResultPlain

Beschreibung
Allgemeine Rückgabestruktur zur Rückgabe eine typisierten Wertes

Verweis IDL
Plateau.DiagLibResultPlain
Java-Signatur
public final class DiagLibResultPlain{
public String value;
public String type;
public String reserved;
public StringsErrorMessage
}
Attribute
value Ausgelesener Wert. Wenn möglich als übersetzter Wert. Dies ist
aber abhängig vom Kontext der ausführenden Funktion.
type Siehe Abschnitt 2.5.1
reserved Reserviertes Feld zur Rückgabe von funktionsspezifischen
Werten. Im Normalfall EMPTY_STRING.
sErrorMessage Fehlermeldung, siehe Abschnitt 1.3

499725969.doc Seite 12 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

2.5.3 StdValue
Beschreibung
Allgemeine Abbildung eines IDiagResultValue auf einen StdValue.

Verweis IDL
Plateau#StdValue
Java-Signatur
public final class StdValue {
public String param;
public String value;
public String unit;
public String text;
public String type;
public String number;
public String reserved;
public String tableKey;
public String tableKeyText;
public String errorMessage;
}
Attribute
param ODX-ShortName des Parameters (falls vorhanden).
value Wert der Parameters als String
unit Einheit falls vorhanden, ansonsten EMPTY_STRING
text Übersetzung zum param falls vorhanden, ansonsten EMPTY_STRING
type Siehe Abschnitt 2.5.1
number EMPTY_STRING
reserved Reserviertes Feld zur Rückgabe von funktionsspezifischen Werten. Im
Normalfall EMPTY_STRING. Gesetzt wird der Wert z.B. in 16.1
getODXVersions
tableKey ODX-ShortName des TableKeys (falls vorhanden).
tableKeyTe Übersetzter Text des TableKeys (falls vorhanden).
xt
errorMessa Feld für Fehlertexte
ge

Verweis Web-Service Schnittstelle


<xs:complexType name="diagResultValueImpl">
Web-Service-Signatur
<xs:complexType name="diagResultValueImpl">
<xs:sequence>
<xs:element name="valid" type="xs:boolean" />
<xs:element name="name" type="xs:string" />
<xs:element name="translatedName" type="xs:string" />
<xs:element name="value" type="xs:string" />
<xs:element name="type" type="tns:valueType" />
<xs:element name="unit" type="xs:string" />
<xs:element name="translatedValue" type="xs:string" />
<xs:element name="children" type="tns:diagResultValueImpl"
maxOccurs="unbounded" />
</xs:sequence>
499725969.doc Seite 13 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

</xs:complexType>

Abbildung Web-Service -> IDL


Vorbedingung: children enhält keine Elemente
diagResultValueImpl.name => stdValue.param
diagResultValueImpl.value => stdValue.value
diagResultValueImpl.unit => stdValue.unit
diagResultValueImpl.translatedNam => stdValue.text
e
diagResultValueImpl.type => stdValue.type
EMPTY_STRING bzw. Bei Messwerten => stdValue.number
Defaultreihenfolge des Tools.
Start ab 1.
EMPTY_STRING => stdValue.reserved
EMPTY_STRING bzw. ODX-ShortName => stdValue.tableKey
und Übersetzung aus => stdValue.tableKeyText
übergeordneter Struktur falls
vorhanden
Im positiven Fall EMTPY_STRING. => stdValue.errorMessage
Ansonsten kann der Fehlertext des
jeweiligen Diagnose-Services
eintegragen werden. Derzeitig
wird dieser jedoch nicht
geliefert.
Ermitteln des TableKeys
TableKeys sind verfügbar, wenn die Diagnosefuntion mit einem MCD-Service
implementiert ist. In ODIS-Engineering ist dies bei folgenden Funktionen der Fall:
Erweiterte Identifikation (Master-Steuergerät)
Messwerte lesen
Anpassung
Grundeinstellung
Stellglieddiagnose

Attributkombination param/text: Wenn es einen Wert gibt, zu dem eine Übersetzung


existiert, so ist in text der übersetzte Wert enthalten und in param der nicht übersetzte. Für
KWP kann dies nicht allgemein definiert werden.

2.5.4 DiagLibResultStdValueSeq
Beschreibung
Beschreibung der Struktur zur Rückgabe einer Liste von StdValue.

Verweis IDL
Plateau#DiagLibResultStdValueSeq
Java-Signatur
public final class DiagLibResultStdValueSeq{
public exam.Plateau.DiagLibResultBase sErrorMessage;
public exam.Plateau.StdValue sAllStdValues[];
}

499725969.doc Seite 14 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Attribute
sErrorMessage Reserviertes Feld für Fehlermeldungen oder negative Antworten vom
Steuergerät.
sAllStdValues Array von StdValues
[]

2.6 Abbildung der Systemnamen auf EXAM-Namen


Zur einheitlichen Weitergabe von Diagnosedaten ist in Dokument [DEXAM] Kapitel 4.2 ein
Mapping von Systemnamen, welche vom Diagnose-Kernel bzw. vom MCD-Server geliefert
werden, auf EXAM-Namen definiert, welche in EXAM tool-übergreifend verwendet werden.
Die Abbildung auf die EXAM-Namen ist in den folgenden Abschnitten beschrieben. Das
Mapping für Identifikationsdaten sollte bereits innerhalb der Automatisierungsschnittstelle
durchgeführt werden. Die anderen Mappings erfolgen im Plateau.

2.6.1 EXAM-Namen für die Identifikation

Die Mappingdatei ODIS-Mapping.xml für die Identifikation liegt in dem Verzeichnis


AutomParamMapping der der ODIS Installation.

EXAM-Namen für Identifkationsdaten des Master Steuergerätes


EXAM-Name ODIS-Name KWP
Param_VWAppliSoftwVersiNumbe IdentResultComposite.node_stand_ident.vw
_application_software_version_number
Param_VWSysteNameOrEnginType IdentResultComposite.node_stand_ident.vw
_system_name_or_engine_type
Param_VWECUHardwNumbe IdentResultComposite.node_stand_ident.vw
_ecu_hardware_number
Param_VWECUHardwVersiNumbe IdentResultComposite.node_stand_ident.vw
_ecu_hardware_version_number
Param_Progr
Param_VWCodinValue IdentResultComposite.node_stand_ident.vw
_coding_value
Param_VWSparePartNumbe IdentResultComposite.node_stand_ident.vw
_spare_part_number
Param_ImporNumbe
Param_WorksNumbe
Param_VWDevicNumbe
Param_VWCodinValue IdentResultComposite.node_stand_ident.vw
_coding_value

EXAM-Namen für Identifkationsdaten eines Slave Steuergerätes


EXAM-Name ODIS-Name KWP
Param_SlaveSysteName IdentResultComposite.vw_slave_system_nam
e
Param_VWSlaveSparePartNumbe IdentResultComposite.vw_slave_sw_number
Param_VWSlaveHardwNumbe IdentResultComposite.vw_slave_hw_number
499725969.doc Seite 15 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Param_VWSlaveSoftwVersiNumbe IdentResultComposite.vw_slave_sw_version
_number
Param_VWSlaveHardwVersiNumbe IdentResultComposite.vw_slave_hw_version
_number
Param_VWSlaveCodinValue IdentResultComposite.vw_slave_coding_val
ue

Es wurden hier nur die Einträge aufgelistet, die auch in der VAS5163-Mapping.xml
vorkommen. Die ODIS-Mapping.xml kann weitere Abbildungen enthalten.

2.6.2 EXAM-Namen für Ereignisspeichereinträge


EXAM-Namen für Ereignisspeichereinträge Siehe 6.1.4 Art der
Ereignisspeicherinformation
EXAM-Name ODIS-Name UDS
diagnosticTroubleCodeTypeState Param_StatuOfDTCBit0
TestFailedThisOperationCycle Param_StatuOfDTCBit1
PendingDTC Param_StatuOfDTCBit2
ConfirmedDTC Param_StatuOfDTCBit3
TestNotCompleteSinceLastClear Param_StatuOfDTCBit4
TestFailedSinceLastClear Param_StatuOfDTCBit5
TestNotCompletedThisOperationC Param_StatuOfDTCBit6
ycle
diagnosticWarningLamp Param_StatuOfDTCBit7
diagnosticTroubleCodeHex
displayTroubleCode

Der ODIS-Name UDS für die Status-Bits wird im Plateau aus der dort definierten Konstante
„Param_StatuOfDTCBit“ und der Bit-Nummer gebildet.

EXAM-Namen für Ereignisspeichereinträge


EXAM-Name ODIS-Name KWP
diagnosticTroubleCodeType
diagnosticTroubleCodeTypeTrans
lated
diagnosticTroubleCodeTypeState
diagnosticTroubleCodeTypeState
Translated
displayTroubleCode
diagnosticTroubleCodeDec
Param_DTCPrior
Param_OccurCount
Param_KmMilea
Param_CentrAgingCount
Fehler nicht gespeichert
Sporadisch
Kurzfristig aufgetretener
Fehler
Statisch, dauerhaft

499725969.doc Seite 16 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

2.6.3 EXAM-Namen für den Status eines Stellgliedtests


EXAM-Namen für den Status eines Stellgliedtests
EXAM-Name ODIS-Name KWP / UDS
-1
1

2.7 Multilink-Aufrufe

2.7.1 Allgemeines
Über Multilink-Aufrufe kann Funktionalität, die bisher schon für einzelne Steuergeräte zur
Verfügung steht, gebündelt für mehrere Steuergeräte parallel genutzt werden. Dabei können
dort, wo es fachlich sinnvoll ist, unterschiedliche Parameter für die verschiedenen
Steuergeräte verwendet werden.
Alle Multilink-Aufrufe erwarten als Aufrufparameter eine Liste, die für jedes angeforderte
Steuergerät einen Eintrag enthält. Die Rückgabe ist ebenfalls eine Liste mit einem
Ergebniseintrag für jedes angeforderte Steuergerät.
Die allgemeinen Multilinkeinstellungen werden in der init-Methode gesetzt (Beschreibung
siehe Kapitel 3.1 init).

2.7.2 DiagLibEcuBase
Beschreibung
Allgemeine Struktur zur Definition eines angeforderten Steuergeräts. Diese Struktur wird als
Eingabe bei jedem Multilink-Aufruf verwendet, ggf. in Verbindung mit weiteren Parametern. In
jeder Rückgabestruktur identifiziert sie das Ergebniselement für ein Steuergerät.

Verweis IDL
Plateau.DiagLibEcuBase
Java-Signatur
public final class DiagLibEcuBase implements
org.omg.CORBA.portable.IDLEntity
{
public String sEcuId = null;
public String sEcuLogicalLink = null;
}
Attribute
sEcuId Steuergeräteadresse als hexadezimaler Wert, ohne Präfix.
Führende Nullen werden akzeptiert.
sEcuLogicalLink Name des Logical Links. Wird in der Eingabe ignoriert, sofern
sEcuId nicht leer ist.

2.7.3 Behandlung von Exceptions


Um zu vermeiden, dass Verarbeitungsfehler für ein einzelnes Steuergerät zum Abbruch
führen und damit vorhandene Ergebnisse für andere Steuergeräte nicht geliefert werden,
werden Exceptions so weit wie möglich in Fehlermeldungen umgewandelt. Diese

499725969.doc Seite 17 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Fehlermeldungen werden dann in den regulären Rückgabestrukturen auf der Ebene


zurückgeliefert, auf der der Fehler aufgetreten ist (z.B. Steuergerät oder Subsystem).
Nur Fehlersituationen, die so allgemein sind, dass gar keine Kommunikation durchgeführt
werden kann, führen zu einer PluginBaseException.

2.7.4 DiagLibEcuResults
Beschreibung
Allgemeine Struktur zur Rückgabe einfacher Ergebnisse mehrerer Steuergeräte. Diese
Struktur wird als Rückgabe bei mehreren Multilink-Aufrufen verwendet.

Verweis IDL
Plateau.DiagLibEcuResults
Java-Signatur
public final class DiagLibEcuResults
{
DiagLibResultBase sErrorMessage = null;
DiagLibEcuResultItem sDiagLibEcuResults[] = null;}
Attribute
sErrorMessage Fehlermeldung (Steuergeräte-übergreifend).
sDiagLibEcuResults Liste der Ergebnisse der einzelnen angeforderten
Steuergeräte.
Nach dem Löschen der Ereignisspeicher enthält diese Liste
genau 1 Eintrag für jedes im Aufruf angeforderte Steuergerät.
Nach dem Schreiben von Codierung oder Anpassung enthält
sie für jedes im Aufruf genannte Subsystem / jeden
Anpassungsnamen einen Eintrag. Struktur s. Kap. 2.7.4.1

2.7.4.1 DiagLibEcuResultItem
Beschreibung
Einzelelement in der allgemeinen Rückgabestruktur. Enthält das Ergebnis für ein einzelnes
Steuergerät bzw. die darunter liegende Ebene (Subsystem / Anpassung)..

Verweis IDL
Plateau.DiagLibEcuResultItem
Java-Signatur
public final class DiagLibEcuResultItem
{
public DiagLibResultBase sErrorMessage = null;
public DiagLibEcuBase sEcuBase = null;
public String sFuncName = null;
}
Attribute
sErrorMessage Fehlermeldung (spezifisch für diesen Eintrag).
sEcuBase Identifiziert das Steuergerät
sFuncName Subsystem / Anpassungsname. Bleibt leer beim Löschen der
Ereignisspeicher.

499725969.doc Seite 18 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

3. Verbindungen
3.1 init

Beschreibung
Initialisierungsroutine mit der Möglichkeit Projekt, Steuergerät und Sprache zu setzen.
Wenn bei einem nachfolgenden Aufruf der init / switchECU Methode nur eine
Untermenge der Parameter anders gesetzt werden, so werden auch nur die
notwendigen Aufrufe in der Web-Service Schnittstelle ausgeführt. Für EXAM muss
dieser Spezialfall nicht betrachtet werden, da aus EXAM heraus immer alle
Initialisierungs-Parameter übergeben werden [DEXAM]. So wird bei Wechsel des
Steuergerätes und Beibehaltung des Projektes das Projekt nicht erneut geladen. Bei
Änderung des Projektes wird das Steuergerät in jedem Fall neu identifiziert. Hier erfolgt
noch kein Verbindungsaufbau auf das konkrete Steuergerät. Dies geschieht im Falle
des impliziten Verbindungsaufbau vor dem nächsten Diagnose-Zugriff bzw. im Falle
des expliziten Verbindungsaufbaus durch den Aufruf der Operation
openDiagnosticConnection.

Verweis IDL
Plateau#init
Java-Signatur
boolean init(keyValue[] seq) throws PluginBaseException
Parameter
seq Sequenz mit Schlüssel / Wert Paaren aus Abschnitt 2.2. Die Reihenfolge der
Parameter ist nicht definiert und trägt keine semantische Bedeutung.

Folgende Schlüssel müssen gesetzt werden:


 sVehicleProject
 sEcuId

Folgende Schlüssel sind optional:


 sLanguage
 sTraceLevel
 sFlashExpectedIdents
 sFlashVersionCheck
 Multilink.MaxNumberOfLogicalLinks
 Multilink.ConsiderRestrictionsOfVRTVPT
Rückgabe
boolea Es wird immer der Wert true geliefert. Im negativen Fall wird eine
n PluginBaseException geworfen.

Verweis Web-Service Schnittstelle


setVehicleProject
setLocale
setTraceLevel
499725969.doc Seite 19 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

configureSetting
Web-Service-Signatur
<message name="setVehicleProject">
<part name="parameters" element="tns:setVehicleProject" />
</message>
<message name="setTraceLevel">
<part name="parameters" element="tns:setTraceLevel" />
</message>
<message name="setLocale">
<part name="parameters" element="tns:setLocale" />
</message>
<message name="configureSetting">
<part name="parameters" element="tns:configureSetting" />
</message>

Abbildung der Eingaben IDL -> Web-Service


Für jedes Element aus seq wird eine Methode des Web-Service aufgerufen. In
Abhängigkeit der angegebenen Schlüssel wird die Funktion ausgewählt. Der Wert des
Eintrags aus seq wird der Methode als Parameter übergeben.

sVehicleProject => setVehicleProject


sLanguage => setLocale
sTraceLevel => setTraceLevel
sFlashExpectedIdents => configureSetting
sFlashVersionCheck => configureSetting
Multilink.MaxNumberOf => configureSetting
LogicalLinks
Multilink.ConsiderRes => configureSetting
trictionsOfVRTVPT

Standardmäßig verwendet das ODIS-Plateau die VRT/VPT-Multilinkeinstellungen, wobei die


Anzahl der parallel geöffneten LogicalLinks auf 1 begrenzt ist. Die VRT-/VPT-Dateien
enthalten abhängig vom ausgewählten Projekt die Protokollausschlusslisten, die
Protokollreizreihenfolge sowie die maximale Anzahl von gleichzeitig verwendeten
LogicalLinks.
Bei aktivierter VRT/VPT-Verwendung wird für die maximale LogicalLink-Anzahl der kleinste
Wert aus VRT/VPT-Einstellung und der separat gesetzten maximalen LogicalLink-Anzahl
verwendet. In Standardfall ist somit die maximale LL-Anzahl auf 1 begrenzt.
Über die EXAM-Schnittstelle können diese beiden Multilink-Einstellungen über den Plateau
Initialisierungsaufruf „init(<Key-Value-Pairs>)“ konfiguriert werden. Hierzu stehen folgende
Werte zur Verfügung:
Key: „Multilink.MaxNumberOfLogicalLinks" Value: <Anzahl>
Key: „Multilink.ConsiderRestrictionsOfVRTVPT" Value: „TRUE” oder „FALSE”

1. Beispiel zum Setzen der Multilink-Einstellungen:

499725969.doc Seite 20 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

„Multilink.MaxNumberOfLogicalLinks" 8
„Multilink.ConsiderRestrictionsOfVRTVPT"  TRUE
Wenn in der VRT/VPT die maximale LL-Anzahl 5 enthalten ist, dann wird in diesem Bsp.
die maximale LL-Anzahl von 5 verwendet
2. Beispiel
„Multilink.MaxNumberOfLogicalLinks" 3
„Multilink.ConsiderRestrictionsOfVRTVPT"  TRUE
Wenn in der VRT/VPT die maximale LL-Anzahl 5 enthalten ist, dann wird in diesem Bsp.
die maximale LL-Anzahl von 3 verwendet
3. Beispiel
„Multilink.MaxNumberOfLogicalLinks"  10
„Multilink.ConsiderRestrictionsOfVRTVPT"  FALSE
Hier wird immer die LL-Anzahl 10 verwendet, weil die VRT/VPT-Einstellung nicht
berücksichtigt wird.

3.2 switchECU

Beschreibung
Initialisierungsroutine mit der Möglichkeit Projekt, Steuergerät und Sprache zu setzen.
Wenn bei einem nachfolgenden Aufruf der init / switchECU Methode nur eine
Untermenge der Parameter anders gesetzt werden, so werden auch nur die
notwendigen Aufrufe in der Web-Service Schnittstelle ausgeführt. Für EXAM muss
dieser Spezialfall nicht betrachtet werden, da aus EXAM heraus immer alle
Initialisierungs-Parameter übergeben werden [DEXAM]. So wird bei Wechsel des
Steuergerätes und Beibehaltung des Projektes das Projekt nicht erneut geladen. Bei
Änderung des Projektes wird das Steuergerät in jedem Fall neu identifiziert. In dieser
Operation erfolgt sowohl ein expliziter Verbindungsaufbau auf das konkrete
Steuergerät als auch ein darauf folgender Verbindungsabbau. Dieser Verbindungsauf-
und –abbau dient dazu, die Eingabeparameter zu prüfen und dem Tester das
Feedback zu geben, ob das Steuergerät mit den übergebenen Daten erreichbar ist. Zur
Einhaltung der Busruhe muss die Diagnoseverbindung wieder geschlossen werden, da
ein Öffnen der Diagnoseverbindung ausschließlich über den expliziten
Verbindungsaufbau mittels openDiagnosticConnection geschieht oder im Rahmen des
impliziten Verbindungsaufbaus beim Aufruf der nächsten Diagnose-Operation.

Verweis IDL
Plateau#init
Java-Signatur
boolean init(keyValue[] seq) throws PluginBaseException
Parameter
seq Sequenz mit Schlüssel / Wert Paaren aus Abschnitt 2.2. Die Reihenfolge der

499725969.doc Seite 21 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Parameter ist nicht definiert und trägt keine semantische Bedeutung.

Folgende Schlüssel müssen gesetzt werden:


 sVehicleProject
 sEcuId

Folgende Schlüssel sind optional:


 sLanguage
 sTraceLevel
 sFlashExpectedIdents
 sFlashVersionCheck
Rückgabe
boolea Es wird immer der Wert true geliefert. Im negativen Fall wird eine
n PluginBaseException geworfen.

Verweis Web-Service Schnittstelle


setVehicleProject
connectToEcu
closeConnection
setLocale
setTraceLevel
configureSetting
Web-Service-Signatur
<message name="setVehicleProject">
<part name="parameters" element="tns:setVehicleProject" />
</message>
<message name="closeConnection">
<part name="parameters" element="tns:closeConnection" />
</message>
<message name="connectToEcu">
<part name="parameters" element="tns:connectToEcu" />
</message>
<message name="setTraceLevel">
<part name="parameters" element="tns:setTraceLevel" />
</message>
<message name="setLocale">
<part name="parameters" element="tns:setLocale" />
</message>
<message name="configureSetting">
<part name="parameters" element="tns:configureSetting" />
</message>

Abbildung der Eingaben IDL -> Web-Service


Für jedes Element aus seq wird eine Methode der Automatisierungsschnittstelle
aufgerufen. In Abhängigkeit der angegebenen Schlüssel wird die Funktion ausgewählt.
Der Wert des Eintrags aus seq wird der Methode als Parameter übergeben.
sVehicleProject => setVehicleProject
sEcuId => connectToEcu
sLanguage => setLocale

499725969.doc Seite 22 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

sTraceLevel => setTraceLevel


sFlashExpectedIdents => configureSetting
sFlashVersionCheck => configureSetting

3.3 deinit

Beschreibung
Freigeben möglicher Ressourcen. Diagnoseverbindung abbauen.

Verweis IDL
Plateau#deinit
Java-Signatur
boolean deinit() throws PluginBaseException
Rückgabe
boolean Es wird immer der Wert true geliefert. Im negativen Fall wird eine
PluginBaseException geworfen.
Verweis Web-Service Schnittstelle
closeConnection
Web-Service-Signatur
<message name="closeConnection">
<part name="parameters" element="tns:closeConnection" />
</message>

3.4 exit

Beschreibung
Beendet die ODIS-Serveranwendung sowie das ODIS-Plateau-Plugin und löscht die
zugehörigen Einträge aus dem CORBA-Nameserver.

Verweis IDL
Plateau#exit
Java-Signatur
void exit() throws PluginBaseException
Verweis Web-Service Schnittstelle
Exit
Web-Service-Signatur
<message name="exit">
<part name="parameters" element="tns:exit" />
</message>

3.5 openDiagnosticConnection

499725969.doc Seite 23 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Beschreibung
Diese Methode stellt (beim nächsten Zugriff) explizit die Verbindung zum Steuergerät
her und setzt den Modus für den Diagnoseverbindungsaufbau und –abbau auf den
manuellen Modus.

Verweis IDL
Plateau#openDiagnosisConnection
Java-Signatur
DiagLibResultBase openDiagnosisConnection() throws PluginBaseException
Rückgabe
DiagLibResultBas Siehe 1.3 Behandlung von Exceptions
e

Verweis Web-Service Schnittstelle


openConnection
Web-Service-Signatur
<message name="openConnection">
<part name="parameters" element="tns:openConnection" />
</message>

3.6 closeDiagnosticConnection

Beschreibung
Die Methode schließt explizit die Verbindung zum Steuergerät und setzt den Modus
für den Diagnoseverbindungsaufbau und –abbau auf den automatischen Modus.

Verweis IDL
Plateau#closeDiagnosisConnection
Java-Signatur
DiagLibResultBase closeDiagnosisConnection() throws
PluginBaseException
Rückgabe
DiagLibResultBas Siehe 1.3 Behandlung von Exceptions
e

Verweis Web-Service Schnittstelle


closeConnection
Web-Service-Signatur
<message name="closeConnection">
<part name="parameters" element="tns:closeConnection" />
</message>

3.7 switchSession

Beschreibung
Wechsel der aktiven Diagnosesession im Steuergerät.
499725969.doc Seite 24 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Verweis IDL
Plateau#switchSession
Java-Signatur
DiagLibResultBase switchSession (String sDiagSession) throws
PluginBaseException;
Parameter
sDiagSession UDS: ODX-Shortname der Diagnosesession
KWP: Nummer der Diagnosesession
00 => VAS505x mode
83 => End of line within volkswagen
84 => End of line within control unit producer
85 => Update programming
86 => Developper mode
89 => Standard selfdiagnostics

Rückgabe
DiagLibResultBase Siehe 1.3 Behandlung von Exceptions

Verweis Web-Service Schnittstelle


switchSession
Web-Service-Signatur
<message name="switchSession">
<part name="parameters" element="tns:switchSession" />
</message>

Abbildung der Eingaben IDL -> Web-Service


sDiagSession <xs:complexType name="switchSession">
<xs:sequence>
<xs:element name="session" type="xs:string" />
</xs:sequence>
</xs:complexType>

Abbildung der Ausgaben Web-Service -> IDL


Aufbau des Rückgabeobjektes
EMPTY_LIBRESULTBASE DiagLibResultBase

3.8 getCurrentConfiguration

Beschreibung
Liefert aktuelle Konfiguration bzgl. Projekt, Steuergerät, Sprache und Protokoll .

Verweis IDL
Plateau#getCurrentConfiguration
Java-Signatur
DiagLibResultConfiguration getCurrentConfiguration () throws
PluginBaseException;
499725969.doc Seite 25 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Rückgabe
DiagLibResultConfigur Siehe 1.3 Behandlung von Exceptions
ation

Verweis Web-Service Schnittstelle


Kein Zugriff auf Web-Schnittstelle.
Web-Service-Signatur
Kein Zugriff auf Web-Schnittstelle.

Abbildung der Ausgaben Web-Service -> IDL


Für StdValue aus DiagLibResultStdValueSeq gilt:

StdValue.type = TYPE_STRING
StdValue.unit = EMPTY_STRING
StdValue.text = EMPTY_STRING
StdValue.number = EMPTY_STRING
StdValue.reserved = EMPTY_STRING
StdValue.tableKey = EMPTY_STRING
StdValue.tableKeyText = EMPTY_STRING
StdValue.errorMessage = EMPTY_STRING
EMPTY_LIBRESULTBASE DiagLibResultConfigurati
on.sErrorMessage
"vehicleProject" StdValue[].param
Aktuelles Project. Falls keins vorhanden StdValue[].value
PluginBaseException
"ecuName" StdValue[].param
Aktuelles Steuergerät. Falls keins StdValue[].value
vorhanden PluginBaseException
"protocol" StdValue[].param
Aktuelles Protokoll. Falls keins StdValue[].value
vorhanden PluginBaseException
"language" StdValue[].param
Aktuelle Sprache. Falls keine vorhanden StdValue[].value
PluginBaseException

4. Konfiguration
4.1 getPluginInfo

Beschreibung
Die Funktion liefert Informationen über die ODIS-Plateau Komponente sowie der
Version der Web-Service-Schnittstelle.

Verweis IDL
Plateau#getPluginInfo
Java-Signatur
PluginInfo getPluginInfo() throws PluginBaseException
Rückgabe
PluginInfo Informationen über die ODIS-Plateau Komponente.
499725969.doc Seite 26 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Verweis Web-Service Schnittstelle


getVersions
Web-Service-Signatur
<message name="getVersions">
<part name="parameters" element="tns:getVersions" />
</message>

Abbildung der Ausgaben -> IDL


diagResultVersionsImpl.automationAPIVer PluginInfo.version
sion
”ODIS” PluginInfo.description
False PluginInfo.multiInstance

4.2 getMemoryInformation

Beschreibung
Liefert den aktuellen Speicherverbrauch des ODIS Plateau-Plugins.

Verweis IDL
Plateau#getMemoryInformation
Java-Signatur
DiagLibResultStdValueSeq getMemoryInformation() throws
PluginBaseException
Rückgabe
DiagLibResultStdValueSeq Momentaner Speicherverbrauch des ODIS Plateau-
Plugins.

Verweis Web-Service Schnittstelle


Kein Aufruf eines Web-Services

Füllung der Rückgabestruktur

Für StdValue aus DiagLibResultStdValueSeq gilt:

StdValue.type = TYPE_STRING
StdValue.unit = EMPTY_STRING
StdValue.text = EMPTY_STRING
StdValue.number = EMPTY_STRING
StdValue.reserved = EMPTY_STRING
StdValue.tableKey = EMPTY_STRING
StdValue.tableKeyText = EMPTY_STRING
StdValue.errorMessage = EMPTY_STRING
EMPTY_LIBRESULTBASE DiagLibResultStdValueSeq
"MaxAllowedMemoryKB" StdValue[].param
Runtime.getRuntime().maxMemory() / 1024 StdValue[].value
"AllocatedMemoryKB" StdValue[].param
(Runtime.getRuntime().maxMemory() – StdValue[].value
Runtime.getRuntime().freeMemory()) /
499725969.doc Seite 27 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

1024

4.3 callReadParametersOnService
Beschreibung
Auslesen der verfügbaren ODX-ShortNames zu einer Diagnosefunktion. Diese
Funktion ist nur für UDS-Steuergeräte definiert. Auf einem KWP-Steuergerät wird eine
PluginBaseException geworfen.

Verweis IDL
Plateau# callReadParametersOnService
Java-Signatur
DiagLibResultListOfParameterValues callReadParametersOnService (String
sService, String sCode) throws PluginBaseException;
Parameter
sService Diagnose-Service, für den die ODX-ShortNames ausgelesen werden
sollen. Folgende Werte sind als Eingabe definiert
 DIAG_SERVICE_ADAPTION
 DIAG_SERVICE_BASIC_SETTINGS
 DIAG_SERVICE_CODING
 DIAG_SERVICE_FINAL_CONTROL_DIAGNOSTICS
 DIAG_SERVICE_IDENTIFICATION
 DIAG_SERVICE_MEASURED_VALUES
 DIAG_SERVICE_SECURITY_ACCESS
sCode ODX-ShortName der Anpassgruppen, der Grundeinstellungen, der
codierbaren Systeme, der Stellglieder, der Identifikationswerte, der
Messwertgruppen, der Zugriffsstufen.
Rückgabe
DiagLibResultLi Struktur zur Rückgabe der Shortnames. PluginBaseException, falls
stOfParameterVa sService nicht in der gültigen Eingabemenge vorhanden ist bzw.
lues wenn die Operation auf einem KWP-Steuergerät aufgerufen wird.

Verweis Web-Service Schnittstelle


getShortNamesOf…
Web-Service-Signatur
<message name="getShortNamesOfIdentificationDatas">
<part name="parameters" element="tns:getShortNamesOfIdentificationDatas"
/>
</message>

<message name="getShortNamesOfSubSystems">
<part name="parameters" element="tns:getShortNamesOfSubSystems" />
</message>

<message name="getShortNamesOfMeasurementsForActuatorDiagnostics">
<part name="parameters"
element="tns:getShortNamesOfMeasurementsForActuatorDiagnostics" />

499725969.doc Seite 28 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

</message>

<message name="getShortNamesOfActuators">
<part name="parameters" element="tns:getShortNamesOfActuators" />
</message>

<message name="getShortNamesOfStartParametersForActuator">
<part name="parameters"
element="tns:getShortNamesOfStartParametersForActuator" />
</message>

<message name="getShortNamesOfAdaptationChannels">
<part name="parameters"
element="tns:getShortNamesOfAdaptationChannels" />
</message>

<message name="getShortNamesOfAdaptationValues">
<part name="parameters" element="tns:getShortNamesOfAdaptationValues" />
</message>

<message name="getShortNamesOfBasicSettings">
<part name="parameters" element="tns:getShortNamesOfBasicSettings" />
</message>

<message name="getShortNamesOfMeasurementsForBasicSettings">
<part name="parameters"
element="tns:getShortNamesOfMeasurementsForBasicSettings" />
</message>

<message name="getShortNamesOfStartParametersForBasicSettings">
<part name="parameters"
element="tns:getShortNamesOfStartParametersForBasicSettings" />
</message>

<message name="getShortNamesOfCodingValues">
<part name="parameters" element="tns:getShortNamesOfCodingValues" />
</message>

<message name="getShortNamesOfMeasurementGroups">
<part name="parameters"
element="tns:getShortNamesOfMeasurementGroups" />
</message>

<message name="getShortNamesOfMeasurements">
<part name="parameters" element="tns:getShortNamesOfMeasurements" />
</message>

<message name="getShortNamesOfAccessModes">
<part name="parameters" element="tns:getShortNamesOfAccessModes" />
</message>

Abbildung der Eingaben IDL -> Web-Service

499725969.doc Seite 29 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

In Abhängigkeit der Parameter sService und sCode wird die entsprechende


getShortNames Funktion aufgerufen. Nachfolgend sind die Werte für den Parameter
sService angegeben.
DIAG_SERVICE_ADAPTION => getShortNamesOfAdaptationChannels
DIAG_SERVICE_ADAPTION => getShortNamesOfAdaptationValues
und sCode ungleich
EMPTY_STRING
DIAG_SERVICE_BASIC_SETTI => getShortNamesOfBasicSettings
NGS
DIAG_SERVICE_BASCIC_SETT =>
INGS und sCode ungleich getShortNamesOfStartParametersForBasicSettings
EMPTY_STRING
DIAG_SERVICE_CODING => getShortNamesOfCodingValues
DIAG_SERVICE_FINAL_CONTR => getShortNamesOfActuators
OL_DIAGNOSTICS
DIAG_SERVICE_FINAL_CONTR => getShortNamesOfStartParametersForActuator
OL_DIAGNOSTICS und sCode
ungleich EMPTY_STRING
DIAG_SERVICE_IDENTIFICAT => getShortNamesOfSubSystems
ION
DIAG_SERVICE_IDENTIFICAT => getShortNamesOfIdentificationDatas
ION und sCode ungleich
EMPTY_STRING
DIAG_SERVICE_MEASURED_VA => getShortNamesOfMeasurementGroups
LUES
DIAG_SERVCIE_MEASURED_VA => getShortNamesOfMeasurements
LUES und sCode ungleich
EMPTY_STRING
DIAG_SERVICE_SECURITY_AC => getShortNamesOfAccessModes
CESS

Abbildung der Ausgaben -> IDL


Für jeden ODX-ShortName wird ein Objekt vom Typ ParameterValues erzeugt und der
Rückgabeliste hinzugefügt Das Objekt wird für einen einzelnen ODX-ShortName wie folgt
befüllt:
ODX-ShortName => ParameterValues.sParam
EMPTY_STRING => ParameterValues.sValue
EMPTY_LIST => ParameterValues.sAllParameterValues
Aufbau des Rückgabeobjektes
EMPTY_LIBRESULTBAS =>DiagLibResultListOfParameterValues.sErrorMessage
E
Liste der aus den =>DiagLibResultListOfParameterValues.sAllParameters
ODX-ShortNames
erstellten
ParameterValues
Objekte

4.4 getSupportedFunctions

499725969.doc Seite 30 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Beschreibung
Liefert alle möglichen Eingabewerte der Funktion callReadParametersOnService zurück.
Verweis IDL
Plateau.DiagnosticsOperations#getSupportedFunctions()
Java-Signatur
DiagLibResultStdValueSeq getSupportedFunctions() throws
PluginBaseException
Rückgabe
DiagLibResultStdValueS
eq

Verweis Web-Service Schnittstelle


Keine Nutzung der Web-Service Schnittstelle.
Web-Service –Signatur
Keine Nutzung der Web-Service Schnittstelle.

Abbildung der Ausgaben -> IDL

Für StdValue aus DiagLibResultStdValueSeq gilt:

StdValue.type = TYPE_STRING
StdValue.value = EMPTY_STRING
StdValue.unit = EMPTY_STRING
StdValue.text = EMPTY_STRING
StdValue.number = EMPTY_STRING
StdValue.reserved = EMPTY_STRING
StdValue.tableKey = EMPTY_STRING
StdValue.tableKeyText = EMPTY_STRING
StdValue.errorMessage = EMPTY_STRING

Für KWP und UDS Steuergeräte werden folgende Einträge zurück gegeben
EMPTY_LIBRESULTBASE DiagLibResultStdValueSeq
DIAG_SERVICE_ADAPTION => StdValue[].param
DIAG_SERVICE_BASIC_SETTINGS => StdValue[].param
DIAG_SERVICE_CODING => StdValue[].param
DIAG_SERVICE_FINAL_CONTROL_DIAGNOSTICS => StdValue[].param
DIAG_SERVICE_IDENTIFICATION => StdValue[].param
DIAG_SERVICE_MEASURED_VALUES => StdValue[].param
DIAG_SERVICE_SECURITY_ACCESS => StdValue[].param
DIAG_SERVICE_SUPPORTED_FUNCTIONS => StdValue[].param
DIAG_SERVICE_UPDATE_PROGRAMMING => StdValue[].param

Zusätzlich wird für KWP Steuergeräte folgender Eintrag zurück geliefert:


DIAG_SERVICE_SUPPORTED_SESSIONS => StdValue[].param

Zusätzlich werden für UDS Steuergeräte folgende Einträge zurück


geliefert:
DIAG_SERVICE_TRANSPAREN_SERVICE => StdValue[].param
DIAG_SERVICE_CODINGEQUIPMENTLIST => StdValue[].param

499725969.doc Seite 31 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

4.5 getSystemInformation

Beschreibung
Liefert Versionsinformationen der eingesetzten Komponenten.
Verweis IDL
Plateau.DiagnosticsOperations#getSystemInformation()
Java-Signatur
DiagLibResultStdValueSeq getSystemInformation() throws
PluginBaseException;
Rückgabe
DiagLibResultStdValueS
eq

Verweis Web-Service Schnittstelle


getVersions
Web-Service-Signatur
<message name="getVersions">
<part name="parameters" element="tns:getVersions" />
</message>

Abbildung der Ausgaben -> IDL

Für StdValue aus DiagLibResultStdValueSeq gilt:

StdValue.type = TYPE_STRING
StdValue.unit = EMPTY_STRING
StdValue.text = EMPTY_STRING
StdValue.number = EMPTY_STRING
StdValue.reserved = EMPTY_STRING
StdValue.tableKey = EMPTY_STRING
StdValue.tableKeyText = EMPTY_STRING
StdValue.errorMessage = EMPTY_STRING
EMPTY_LIBRESULTBASE DiagLibResultStdValueSeq
"ProductVersion" => StdValue[].param
diagResultVersionsImpl.productVersion => StdValue[].value
"AutomationAPIVersion" => StdValue[].param
diagResultVersionsImpl.automationAPIVer => StdValue[].value
sion
"MCDServerVersion" => StdValue[].param
diagResultVersionsImpl.mCDServerVersion => StdValue[].value
"MCDServerAPIVersion" => StdValue[].param
diagResultVersionsImpl.mCDServerAPIVers => StdValue[].value
ion
"PDUAPIVersion" => StdValue[].param
diagResultVersionsImpl.pDUAPIVersion => StdValue[].value
"PDUVersion" => StdValue[].param
diagResultVersionsImpl.pDUVersion => StdValue[].value
"ECFVersion" => StdValue[].param
diagResultVersionsImpl.eCFVersion => StdValue[].value

499725969.doc Seite 32 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

5. Identifikation
5.1 readIdentification

Beschreibung
Die Methode liest die Identifikationsdaten eines Steuergerätes aus und speichert diese
in der Ergebnisstruktur DiagLibResultIdentification ab.
Verweis IDL
Plateau.DiagnosticsOperations#readIdentification()
Java-Signatur
DiagLibResultIdentification readIdentification() throws
PluginBaseException;
Rückgabe
DiagLibResultIdentification

Verweis Web-Service Schnittstelle


readIdentification
Web-Service-Signatur
<message name="readIdentification">
<part name="parameters" element="tns:readIdentification" />
</message>

Abbildung Web-Service -> IDL


1:1 Aufruf der Funktion. Konvertierung der Rückgabestruktur notwendig. Siehe hierzu
Abschnitt 5.2 und 5.3.

5.2 DiagLibResultIdentification
Beschreibung
Ergebnisstruktur der Identifikation.
Verweis IDL
Plateau#DiagLibResultIdentification
Java-Signatur
public final class DiagLibResultIdentification
{
public exam.Plateau.DiagLibResultBase sErrorMessage;
public exam.Plateau.IdentService sAllIdentServiceElements[];
}
Attribute
sErrorMessage Feld für Fehlermeldung.
sAllIdentServiceElements Liste der identifizierten Systeme. Diese beinhaltet das
[] Master-Steuergerät sowie alle Subsysteme des Masters.
Beschreibung eines Systems erfolgt in IdentService.

499725969.doc Seite 33 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Web-Service -> IDL


Es wird genau ein Objekt DiagLibResultIdentification für jeden Aufruf der Funktion
readIdentification erzeugt.
EMPTY_STRING => DiagLibResultIdentification.sErrorMessage

Für jedes Element aus => DiagLibResultIdentification.


diagResultIdentificationI sAllIdentServiceElements[]
mpl wird die
Konvertierung aus
Abschnitt 5.3
durchgeführt und der
Ergebnisliste
sAllIdentServiceElements
[] hinzugefügt.

5.3 IdentService

Beschreibung

Verweis IDL
Plateau#IdentService
Java-Signatur
public final class IdentService{
public String param;
public String text;
public String errorMessage;
public String reserved;
public exam.Plateau.StdValue sAllResultDataElements[];
public exam.Plateau.IdentService sAllIdentServices[];
}
Attribute
param UDS: MASTER_ECU bzw. Shortname des Subsystems
KWP: MASTER_ECU bzw die Durchnummerierung der
Subsysteme sub1, sub2, … ,subN
text Übersetzter Text falls existent. Ansonsten
EMPTY_STRING.
errorMessage Fehlermeldungen
reserved EMPTY_STRING
sAllResultDataElements Ausgelesene Identifikationsdaten
[]
sAllIdentServices[] Hierarchiestufen siehe VAS_DIAG_XML
Verweis Automatisierungsschnittstelle
vaudas.vehiclefunction.automation.types#DiagResultIdentification
Java-Signatur
public interface IDiagResultIdentification{

499725969.doc Seite 34 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

public String getSystemName();


public List<IDiagResultValue> getStandardData();
public List<IDiagResultValue> getExtendedData();
}
Abbildung Automatisierung -> IDL
diagResultIdent.getSystemName( => IdentService.param
)
Enthält den übersetzten Namen => IdentService.text
des Wertes param, falls dieser
existiert (bei EDIABAS z.B.
param: „subSys2“, text:
„Lichtschalter“). Für UDS-
Steuergeräte also die
Übersetzung des in param
angegebenen ODX-ShortNames.
Existiert keine Übersetzung
des Wertes param, so wird text
auf den selben Wert wie param
gesetzt.
Enhält eine lokale => IdentService.errorMessage
Fehlermeldung, falls ein
einzelner untergeordneter
Ident-Service fehlgeschlagen
ist, z.B.
PARAMETER_OUT_OF_RANGE oder
SERVICE ERROR:
"AUTOSAR_standard_application_
software_identification":
NEGATIVE RESPONSE
EMPTY_STRING => IdentService.reserved
Für jedes Element aus => IdentService.sAllResultDataElements[]
getStandardData() und
getExtendedData(), für das
getChildren().size == 0 gilt,
wird die Konvertierung aus
Abschnitt 2.4 durchgeführt
(IDiagResultValue => StdValue)
und der Ergebnisliste
sAllResultDataElements[]
hinzugefügt.
Diese Datenstruktur sorgt für => IdentService.sAllIdentServices[]
die Rekursion der einzelnen
IdentServices. Wenn diese
Struktur keine EMPTY_LIST ist,
so beginnt an dieser Stelle,
die nächste Rekursionsebene.

Das Abstraktionsniveau von ODIS-E wird beibehalten.

Ansonsten gilt, dass die Diagnosedaten so übermittelt werden, wie sie im Tester
angezeigt werden, identStandard, identExtended, identSubSys0, identSubSysn.

499725969.doc Seite 35 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Generell enthält das identService-Objekt auf erster Hierarchie-Ebene die Unterteilung


der Identifikationsdaten nach den verschiedenen vom Steuergerät implementierten
Identifikations-Diensten. Auf der nächsten Hierarchie-Ebene wird unterschieden
zwischen Master-Steuergerät und Slave-Steuergeräten: UDS (identMaster,
identSubsystems, identStandard), KWP (identStandard, identEcuS1A, identEcuS22,
identLifecycleS1A, identLifecycleS22, identDataS22). Auf den weiteren Hierarchie-
Ebenen sind Protokoll-Spezifika zu beachten. Generell ist bei den Identifikationsdaten
der Subsysteme eine Hierarchie-Ebene mehr zu beachten als bei dem Master-
Steuergerät, da hier noch über alle vorhandenen Subsysteme iteriert werden muss.

UDS-Steuergeräte:
1. Hierarchie-Ebene: Identifikations-Dienste
 identService: identMaster, identSubSystems, identStandard
 identData: EMPTY_LIST
2. Hierarchie-Ebene: Subsysteme oder Ident-Daten
a. Falls identSubSystems
 identService: ODX-ShortNames und Übersetzung der einzelnen Subsysteme
 identData: EMPTY_LIST
b. Falls identMaster oder identStandard: Ident-Daten
 identService: EMPTY_LIST
 identData: ODX-ShortNames und Übersetzungen der einzelnen Ident-Daten
3. Hierarchie-Ebene (nur unterhalb von identSubSystems): Ident-Daten
 identService: EMPTY_LIST
 identData: ODX-ShortNames und Übersetzung der einzelnen Ident-Daten

KWP-Steuergeräte:
1. Hierarchie-Ebene: identStandard, identEcuS1A, identEcuS22, identLifecycleS1A,
identLifecycleS22, identDataS22
2. Hierarchie-Ebene: Subsysteme oder Ident-Daten
a. Falls identEcuS1A, identEcuS22, identDataS22
 identService: Daten der einzelnen Diagnose-Services
 identData: EMPTY_LIST
b. Falls identStandard, identLifecycleS1A, identLifecycleS22
 identService: Daten der einzelnen Subsysteme
 identData: EMPTY_LIST
3. Hierarchie-Ebene (nur unterhalb der Subsysteme)
a. für nicht strukturierte Identifikations-Daten
 identService: EMPTY_LIST
 identData: vom Steuergerät gelieferte Ident-Daten
b. für strukturierte Identifikations-Daten
 identService: Strukturierungselemente (set0, set1, set2)
 identData: EMPTY_LIST
4. Hierarchie-Ebene (nur für strukturierte Ident-Daten unterhalb der Subsysteme)
a. identService: EMPTY_LIST
identData: vom Steuergeräte gelieferte Ident-Daten
Zu klären durch Reengineering und VAS_DIAG_XML
499725969.doc Seite 36 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Mit welchen Daten wird das IdentService Objekt rekursiv befüllt?


Verständnis: Für UDS-Steuergeräte gibt es nur eine Ebene von IdentService Objekten.
Diese befindet sich direkt unter DiagLibResultIdentification.
Param wird wie folgt befüllt: Mit dem String MASTER_ECU für das Master-Steuergerät.
Für ein Subsystem wird der ODX-ShortName des Subsystems eingetragen.

Wie wird das Attribut „text“ mit dem übersetzten Namen des Systems befüllt?

„errorMessage“ und „reserved“ bleiben zunächst leer.

sAllResultDataElements[]: Enthält die ausgelesenen Identifikationsdaten als flache


Liste.
Zur Konvertierung von IDiagResult zur stdValue siehe Abschnitt 2.4.

5.4 Beispiele

Lesen der Identifikation mit Subsystemen (UDS)


Auslesen der Standard sowie erweiterten Identifikationsdaten für Master und Subsysteme.
Aktion
readIdentification()
Rückgabe
public final class DiagLibResultIdentification
{
public DiagLibResultBase sErrorMessage = EMPTY_LIBRESULTBASE;
public sAllIdentServiceElements[3];
}

// Identifikationsdaten: identSubsystems
sAllIdentServiceElements[0] =
public final class IdentService {
public String param = “identSubsystems”;
public String text = “identSubsystems”;
public String errorMessage = EMPTY_STRING;
public String reserved = EMPTY_STRING;
public StdValue sAllResultDataElements[] = EMPTY_LIST;
public IdentService sAllIdentServices[3];
// Identifikationsdaten: Master-Steuergerät
sAllIdentServices[0] =
public final class IdentService {
public String param = MASTER_ECU;
public String text = MASTER_ECU;
public String errorMessage = EMPTY_STRING;
public String reserved = EMPTY_STRING;
public StdValue sAllResultDataElements[] = EMPTY_LIST;
public IdentService sAllIdentServices[4];
}
// Identifikationsdaten: erstes Slave-Steuergerät
sAllIdentServices[1] = ...
499725969.doc Seite 37 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

}
// Identifikationsdaten: identMaster
sAllIdentServiceElements[1] = ...
// Identifikationsdaten: identStandard
sAllIdentServiceElements[1] =
public final class IdentService {
public String param = “identStandard”;
public String text = “identStandard”;
public String errorMessage = EMPTY_STRING;
public String reserved = EMPTY_STRING;
public StdValue sAllResultDataElements[7];
public IdentService sAllIdentServices[] = EMPTY LIST;
// Erstes Identifikationsdatum
sAllResultDataElements[0] =
public final class StdValue {
public String param = “Param_VWSeriaNumbe”;
public String value = “351JL067530621”;
public String unit = EMPTY_STRING;
public String text = EMPTY_STRING;
public String type = EMPTY_STRING;
public String number = EMPTY_STRING;
public String reserved = EMPTY_STRING;
public String tableKey = EMPTRY_STRING;
public String tableKeyText = EMPTRY_STRING;
public String errorMessage = EMTPRY_STRING;
}
// Zweites Identifikationsdatum
sAllResultDataElements[1] = ...
}
Lesen der Identifikation mit Subsystemen (KWP)
Rückgabe
public final class DiagLibResultIdentification
{
public DiagLibResultBase sErrorMessage = EMPTY_LIBRESULTBASE;
public sAllIdentServiceElements[3];
}

// Identifikationsdaten: identEcuS1A
sAllIdentServiceElements[0] =
public final class IdentService {
public String param = “identEcuS1A”;
public String text = “identEcuS1A”;
public String errorMessage = EMPTY_STRING;
public String reserved = EMPTY_STRING;
public StdValue sAllResultDataElements[] = EMPTY_LIST;
public IdentService sAllIdentServices[3];
// Identifikationsdaten: identSubsystem0
sAllIdentServices[0] =
public final class IdentService {
public String param = “identSubystem0”;
public String text = “identSubsystem0”;
public String errorMessage = EMPTY_STRING;

499725969.doc Seite 38 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

public String reserved = EMPTY_STRING;


public StdValue sAllResultDataElements[] = EMPTY_LIST;
public IdentService sAllIdentServices[4];
}
// Identifikationsdaten: expandedIdent
sAllIdentServices[1] = ...
}
// Identifikationsdaten: identDataS22
sAllIdentServiceElements[1] = ...
// Identifikationsdaten: identStandard
sAllIdentServiceElements[2] =
public final class IdentService {
public String param = “identStandard”;
public String text = “identStandard”;
public String errorMessage = EMPTY_STRING;
public String reserved = EMPTY_STRING;
public StdValue sAllResultDataElements[] = EMPTY_LIST;
public IdentService sAllIdentServices[3];
// Identifikationsdaten: set0
sAllIdentServices[0] =
public final class IdentService {
public String param = “set0”;
public String text = “set0”;
public String errorMessage = EMPTY_STRING;
public String reserved = EMPTY_STRING;
public StdValue sAllResultDataElements[1];
public IdentService sAllIdentServices[] = EMPTY_LIST;
// Erstes Identifikationsdatum
sAllResultDataElements[0] =
public final class StdValue {
public String param = “Herstellernr”;
public String value = “nnnn”;
public String unit = EMPTY_STRING;
public String text = EMPTY_STRING;
public String type = EMPTY_STRING;
public String number = EMPTY_STRING;
public String reserved = EMPTY_STRING;
public String tableKey = EMPTRY_STRING;
public String tableKeyText = EMPTRY_STRING;
public String errorMessage = EMTPRY_STRING;
}
// Zweites Identifikationsdatum
sAllResultDataElements[1] = ...
}
// Identifikationsdaten: expandedIdent
sAllIdentServices[1] = ...
}
}
Aktion
readIdentification()
Rückgabe

499725969.doc Seite 39 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

5.5 readIdentificationMultilink
Beschreibung
Lesen der Identifikationsdaten der angeforderten Steuergeräte.
Verweis IDL
Plateau.DiagnosticsOperations#readIdentificationMultilink()
Java-Signatur
DiagLibResultIdentifications
readIdentificationMultilink(DiagLibEcuBase[] lEcuList,
boolean bWithExtendedIdent,
boolean bWithSubsystems)
throws PluginBaseException
Parameter
lEcuList Liste der Steuergeräte, für die die Identifikation gelesen
werden soll. s. Kap. 2.7.2.
bWithExtendedIdent Erweiterte Identifikationsdaten lesen (true/false)
bWithSubsystems Identifikationsdaten für Subsysteme lesen (true/false)
Rückgabe
DiagLibResultIdentifications Struktur zur Rückgabe der Identifikationsdaten
mehrerer Steuergeräte, s. Kap. 5.5.1.

Verweis Web-Service Schnittstelle


readMultilinkIdentification
Web-Service-Signatur
<message name="readMultilinkIdentification">
<part name="parameters" element="tns:readMultilinkIdentification"/>
</message>

Verweis Automatisierungsschnittstelle
IIdentificationInterface#readMultilinkIdentification
Java-Signatur
List<IDiagResultIdentification> readMultilinkIdentification(
List<IMultilinkEcuHandle> ecuList,
boolean readExtendedIdent,
boolean readSubSystems)
throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


Der Parameter lEcuList wird auf den Parameter ecuList abgebildet.
Der Parameter bWithExtdendedIdent wird auf den Parameter readExtendedIdent
abgebildet.
Der Parameter bWithSubsystems wird auf den Parameter readSubSystems abgebildet.

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt vom Typ DiagLibResultIdentifications erzeugt (s. Kap.5.5.1)
und zurückgegeben.

5.5.1 DiagLibResultIdentifications
Beschreibung
499725969.doc Seite 40 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Ergebnisstruktur der Multilink-Identifikation.


Verweis IDL
Plateau#DiagLibResultIdentifications
Java-Signatur
public final class DiagLibResultIdentifications
{
DiagLibResultBase sErrorMessage = null;
EcuIdentificationItem sEcuIdentifications[] = null;
}
Attribute
sErrorMessage Feld für Fehlermeldung (Steuergeräte-übergreifend).
sEcuIdentifications[] Liste der Identifikationsdaten. Enthält einen Eintrag für
jedes angeforderte Steuergerät.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt DiagLibResultIdentifications für jeden Aufruf der Funktion
readIdentification erzeugt.
EMPTY_STRING => sErrorMessage

Für jedes ErgebnisElement => sEcuIdentifications[]


vom Typ
DiagResultIdentificationI
mpl wird ein
EcuIdentificationItem
erzeugt und der
Ergebnisliste
sEcuIdentifications[]
hinzugefügt.

5.5.2 EcuIdentificationItem
Beschreibung
Einzelergebnis der Multilink-Identifikation für ein einzelnes Steuergerät.
Verweis IDL
Plateau#EcuIdentificationItem
Java-Signatur
public final class EcuIdentificationItem
{
public DiagLibEcuBase sEcuBase = null;
public DiagLibResultIdentification sIdentification = null;
}
Attribute
sEcuBase Identifiziert das Steuergerät, von dem diese
Identifikationsdaten stammen.
sIdentification Die Identifikationsdaten, s. Kap. 5.2

Verweis Web-Service Schnittstelle


499725969.doc Seite 41 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Web-Service -> IDL


Es wird genau ein Objekt EcuIdentificationItem für jedes im Aufruf der Funktion
readIdentification angeforderte Steuergerät erzeugt.
IDiagResultIdentification.getEcuAddress => sEcuBase.sEcuId
IDiagResultIdentification.getEcuLogicalLinkname => sEcuBase.
sEcuLogicalLink
Konvertierung s. Kap. 5.2 => sIdentification

6. Ereignisspeicher
6.1 readFaultMemory
Beschreibung
Lesen der Ereignisspeichereinträge
Verweis IDL
Plateau.DiagnosticsOperations#readFaultMemory()
Java-Signatur
DiagLibResultFaultMemory readFaultMemory() throws PluginBaseException
Rückgabe
DiagLibResultFaultMemo Struktur zur Rückgabe der Ereignisspeichereinträge
ry

Verweis Automatisierungsschnittstelle
IEventMemoryInterface#readEventMemory()
Java-Signatur
IDiagResultEventMemory readEventMemory() throws DiagException;

Abbildung Automatisierung -> IDL


Erstellung des DiagLibResultFaultMemory siehe Abschnitt 6.1.1

6.1.1 DiagLibResultFaultMemory

Beschreibung

Verweis IDL
Plateau# DiagLibResultFaultMemory
Java-Signatur
public final class DiagLibResultFaultMemory
{
public exam.Plateau.DiagLibResultBase sErrorMessage;
public exam.Plateau.FaultMemoryElementList sAllFaultMemoryElements[]
}
Attribute
sErrorMessage Feld für Fehlermeldung.
499725969.doc Seite 42 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

sAllFaultMemoryElements[ Liste der Ereignisspeichereinträge.


]

Verweis Automatisierungsschnittstelle
vehiclefunction.automation.types.IDiagResultEventMemory
Java-Signatur
public interface IDiagResultEventMemory{
public int getEcuId();
public String getErrorMessage();
public List<IDiagResultEventMemoryEntry> getEventMemoryEntries();
}

Abbildung Automatisierung -> IDL


EMPTY_LIBRESULTBASE => DiagLibResultFaultMemory.sErrorMessage
getEventMemoryEntries() => DiagLibResultFaultMemory.
siehe Abschnitt 6.1.2 sAllFaultMemoryElements[]

6.1.2 FaultMemoryElementList
Beschreibung

Verweis IDL
Plateau#FaultMemoryElementList
Java-Signatur
public final class FaultMemoryElementList{
public exam.Plateau.FaultMemoryElement sAllFaultMemoryElements[];
public exam.Plateau.StdValue sAllStdValues[];
public exam.Plateau.StdValue sAllMeasuredValues[];
public exam.Plateau.Dtc sAllDtcs[];
}
Attribute
sAllFaultMemoryElements[ Beschreibung des Ereignisspeichereintrags.
]
sAllStdValues[] Liste der Standardumgebungsbedingungen
sAllMeasuredValues[] Liste der Messwertumgebungsbedingungen
sAllDtcs[] Status Record Byte

Verweis Automatisierungsschnittstelle
IDiagResultEventMemoryEntry
Java-Signatur
public interface IDiagResultEventMemoryEntry{
public List<IDiagResultDtcState> getDtcStates();
public IDiagResultEnvironmentData getEnvironmentData();
public List<IDiagResultValue> getEventInfo();
public String getDevMemorySelection();
}

Abbildung Automatisierung -> IDL


IDiagResultEventMemoryEntry => FaultMemoryElementList.
.getEventInfo(). sAllFaultMemoryElements[]
499725969.doc Seite 43 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Für jedes Element wird die


Abbildung nach Abschnitt 6.1.3
durchgeführt.
IDiagResultEventMemoryEntry => FaultMemoryElementList.
getEnironmentData().getStandar sAllStdValues[];
dData(); Für jedes
Listenelement Abbildung nach
Abschnitt 2.5.3. Die
Wertemenge für StdValue.param
sind in Abschnitt 6.1.5
beschrieben.
IDiagResultEventMemoryEntry => FaultMemoryElementList.
getEnironmentData().getMeasure sAllStdValues[];
dData();Für jedes
Listenelement Abbildung nach
Abschnitt 2.5.3
Für jedes Element aus => FaultMemoryElementList.sAllDtcs[];
IDiagResultEventMemoryEntry.
getDtcStates
Abbildung nach Abschnitt 6.1.6

6.1.3 FaultMemoryElement

Beschreibung
Struktur zur Rückgabe eines Ereignisspeichereintrags. Die Art der Information, die
zurück gegeben wird, wird durch das Attribut param bestimmt.
Verweis IDL
Plateau#FaultMemoryElement
Java-Signatur
public final class FaultMemoryElemen{
public String param;
public String value;
public String type;
public String reserved;
}
Attribute
param Attribut zur Festlegung der Beschreibungsart. Der
Wertebereich ist in Abschnitt 6.1.4 festgelegt.
value Wert des Ereignisspeichereintrags
type Datentyp des Wertes, siehe Abschnitt 2.5.1
reserved Status Record Byte

Verweis Automatisierungsschnittstelle
IDiagResultEventMemoryElement
Java-Signatur
IDiagResultEventMemoryElement extends IDiagResultValue{
public DiagResultEventMemoryElementType getEventType();
}

Enum DiagResultEventMemoryElementType{
499725969.doc Seite 44 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

ERROR_CODE,
ERROR_TYPE_1,
ERROR_TYPE_2,
PCODE
}

Abbildung Automatisierung -> IDL


Die Liste der FaultMemoryElements wird aus den Rückgaben der Funktionen
IDiagResultEventMemoryEntry .getEventInfo() und IDiagResultEventMemoryEntry.
getDtcStates() zusammengestellt.
Konvertierung der Listeneinträge aus getEventInfo() Ein Eintrag der Liste wird hier als
„eventInfo“ bezeichnet (IDiagResultEventInfo)

getEventType == ERROR_CODE
=> param = “diagnosticTroubleCodeHex”
asHex(eme.getValue) => FaultMemoryElemen.value
=> FaultMemoryElemen.type = “hex”

=> param = “diagnosticTroubleCodeDec”


eventInfo.getValue => FaultMemoryElemen.value
=> FaultMemoryElemen.type = “int”

=> param =
“diagnosticTroubleCodeTranslated”
eventInfo.getTranslatedValu => FaulMemoryElement.value
e
=> FaultMemoryElement.type = “string”

getEventType ==
ERROR_TYPE_1
=> param = “diagnosticTroubleCodeType”
EventInfo.getValue => FaulMemoryElement.value
=> FaultMemoryElement.type = “int”

=> param =
“diagnosticTroubleCodeTypeTranslated”
EventInfo.getTranslatedValu => value
e
=> type = “string”

getEventType ==
ERROR_TYPE_2
=> param =
“diagnosticTroubleCodeTypeState”
EventInfo.getValue => value
=> type = “int”

=> param =
“diagnosticTroubleCodeTypeStateTransla
ted”
EventInfo.getTranslatedValu => value
499725969.doc Seite 45 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

e
=> type = “string”

getEventType == PCODE
=> param = “displayTroubleCode”
eventInfo.getValue => value
=> type = ”string”

Für UDS werden für ERROR_TYPE_2 keine FaultMemoryElements angelegt


(“diagnosticTroubleCodeTypeState”, “diagnosticTroubleCodeTypeStateTranslated”). Sie
werden für das DTC StatusBit0 erzeugt.

Konvertierung der Listeneinträge aus getDtcStates()


StatusBit7 => param = „diagnosticWarningLamp“
IDiagResultDtcState.isBitSe => value
t()
=> type = ”string”

StatusBit0 => param = „TestFailed“


IDiagResultDtcState.isBitSe => value
t()
=> type = ”string”

StatusBit1 => param =


„TestFailedThisOperationCycle“
IDiagResultDtcState.isBitSe => value
t()
=> type = ”string”

StatusBit2 => param = “PendingDTC“


IDiagResultDtcState.isBitSe => value
t()
=> type = ”string”

Konvertierung aus den Umgebungsbedingungen


IDiagResultEventMemoryEntry.getEnvironmentData().getStandardData()[i].
getStandardEnvironmentConditionType() == PRIORITY

=> param = „Level“


getStandardData() => value
[i].getValue()
=> type = DiagResultValue.getType()

6.1.4 Art der Ereignisspeicherinformation

Beschreibung
Verwendete Werte für das Attribut FaultMemoryElement.param zur Typisierung einer
Ereignisspeicherinformation. Es werden die Werte aus DEXAM verwenden.
Information

499725969.doc Seite 46 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

'diagnosticTroubleCodeHex' Fehlercode hexedezimal (Datentype: “hex“)

'diagnosticTroubleCodeDec' Fehlercode dezimal (Datentype: “int“)


'diagnosticTroubleCodeType' Fehlerart 1 (Datentype: “int“)
'diagnosticTroubleCodeTypeState' Fehlerart 2 (passiv -> 1, aktiv -> 3)
(Datentype: “int“)
'diagnosticTroubleCodeTypeTranslated’ übersetzter Text von der Fehlerart 1 in der
jeweiligen Sprache (Datentype: “string“)
'diagnosticTroubleCodeTypeStateTranslated' übersetzter Text von der Fehlerart 2 in der
jeweiligen Sprache (Datentype: “string“)
’displayTroubleCodeTranslated' übersetzter Text des Fehlercodes in der
jeweiligen Sprache (Datentype: “string“)
’displayTroubleCode' PCode des Fehlers (Datentype: “string“)
’diagnosticWarningLamp’ Status der Warnlampe (Datentype: “string“)
’TestFailed’ Kennzeichnet, ob im letzten Testzyklus der
durchgeführte Test für den jeweiligen
DTC einen Fehler oder Hinweis erkannt hat
(Datentype: “string“)
’TestFailedThisOperationCycle’ Kennzeichnet, ob im aktuellenTestzyklus der
durchgeführte Test für den jeweiligen DTC
einen Fehler oder Hinweis erkannt hat
(Datentype: “string“)
’PendingDTC’ Kennzeichnet, ob der im aktuellen oder letzten
Überwachungszyklus durchgeführte Test für
den jeweiligen DTC einen Fehler oder Hinweis
erkannt hat (Datentype: “string“)
’Level’ Priorität aus dem ODX-Container (Datentype:
“int”)

6.1.5 Werte für Standardumgebungsbedingungen

Beschreibung
Verwendete Werte für das Attribut StdValue.param zur Typisierung einer
Standardumgebungsbedingung. Es werden die Werte aus DEXAM verwenden.
Information
'Param_DTCPrior' Priorität (Datentype: “int“)
'Param_KmMilea' Kilometerstand (Datentype: “int“)
'Param_OccurCount' Fehlerhäufigkeitszähler (Datentype: “int“)
'Param_CentrAgingCount' Verlernzähler / Fahrzyklus (Datentype: “int“)
'Param_Year’ Jahr (Datentype: “int“)
'Param_Month' Monat (Datentype: “int“)
’Param_Day' Tag (Datentype: “int“)
’Param_Hour' Stunden (Datentype: “int“)
’Param_Minut’ Minuten (Datentype: “int“)
’Param_Secon’ Sekunden (Datentype: “int“)

499725969.doc Seite 47 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

6.1.6 Dtc

Beschreibung
Struktur zur Rückgabe des Statusbytes.
Verweis IDL
Plateau#Dtc
Java-Signatur
public final class Dtc{
String bitNumber;
String bitValue;
String bitText;
String reserved;
;}
Attribute
bitNumber diagnosticTroubleCodeTypeState.
.
.
diagnosticWarningLamp
Siehe 2.6.2 EXAM-Namen für Ereignisspeicher
bitValue Übersetzter Wert des DtcStatus Bits aus
der ODIS GUI Anzeige. Dieser wird falls
vorhanden durch die Mapping-Datei
geändert.
bitText EMPTY_STRING
reserved EMPTY_STRING

Verweis Web-Service Schnittstelle


<xs:complexType name="diagResultDtcStateImpl">
Web-Service-Signatur
<xs:complexType name="diagResultDtcStateImpl">
<xs:sequence>
<xs:element name="bitPosition" type="xs:int" />
<xs:element name="bitPositionText" type="xs:string" />
<xs:element name="bitSet" type="xs:boolean" />
<xs:element name="bitValueText" type="xs:string" />
</xs:sequence>
</xs:complexType>

Abbildung Web-Service -> IDL


diagResultDtcStateImpl.bitPosition => Dtc.bitNumber;
abgebildet auf EXAM-Namen (Siehe 2.6.2
EXAM-Namen für Ereignisspeicher)
diagResultDtcStateImpl.bitValueText => Dtc.bitValue;
EMPTY_STRING => Dtc.bitText;
EMPTY_STRING => Dtc.reserved;

499725969.doc Seite 48 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

6.2 readListOfActiveFaultEntries
Beschreibung
Lesen der aktiven Ereignisspeichereinträge
Verweis IDL
Plateau.DiagnosticsOperations#readListOfActiveFaultEntries()
Java-Signatur
DiagLibResultFaultMemory readListOfActiveFaultEntries() throws
PluginBaseException;
Rückgabe
DiagLibResultFaultMemo Struktur zur Rückgabe der Ereignisspeichereinträge.
ry Exception im Falle eines Aufrufes mit KWP Steuergerät.

Verweis Automatisierungsschnittstelle
IEventMemoryInterface # readListOfActiveFaultEntries()
Java-Signatur
IDiagResultEventMemory readListOfActiveFaultEntries () throws
DiagException;

Abbildung Automatisierung -> IDL


Erstellung des DiagLibResultFaultMemory siehe Abschnitt 6.1.1

6.3 readListOfUncheckedFaultPaths
Beschreibung
Lesen ungeprüfter Ereignisspeichereinträge.
Verweis IDL
Plateau.DiagnosticsOperations#readListOfUncheckedFaultPaths()
Java-Signatur
DiagLibResultFaultMemory readListOfUncheckedFaultPaths() throws
PluginBaseException;
Rückgabe
DiagLibResultFaultMemo Struktur zur Rückgabe der Ereignisspeichereinträge.
ry Exception im Falle eines Aufrufes mit KWP Steuergerät.

Verweis Automatisierungsschnittstelle
IEventMemoryInterface#readListOfUncheckedFaultPaths()
Java-Signatur
IDiagResultEventMemory readListOfUncheckedFaultPaths() throws
DiagException;

Abbildung Automatisierung -> IDL


Erstellung des DiagLibResultFaultMemory siehe Abschnitt 6.1.1

6.4 resetFaultMemory

Beschreibung

499725969.doc Seite 49 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Löschen der Ereignisspeichereinträge


Verweis IDL
Plateau.DiagnosticsOperations#resetFaultMemory ()
Java-Signatur
DiagLibResultBase resetFaultMemory () throws PluginBaseException;
Rückgabe
DiagLibResultBase Siehe Abschnitt Behandlung von Exceptions1.3.

Verweis Automatisierungsschnittstelle
IEventMemoryInterface#resetEventMemory ()
Java-Signatur
void resetEventMemory() throws DiagException;

Abbildung Automatisierung -> IDL


EMPTY_LIBRESULTBASE => DiagLibResultBase

6.5 readFaultMemoryWithoutEnvironmentData
Beschreibung
Lesen der Ereignisspeichereinträge ohne Rückgabe der Umgebungsbedingungen
Verweis IDL
Plateau.DiagnosticsOperations#readFaultMemoryWithoutEnvironmentData()
Java-Signatur
DiagLibResultFaultMemory readFaultMemoryWithoutEnvironmentData() throws
PluginBaseException;
Rückgabe
DiagLibResultFaultMemo Struktur zur Rückgabe der Ereignisspeichereinträge
ry

Verweis Automatisierungsschnittstelle
IEventMemoryInterface#readEventMemory()
Java-Signatur
IDiagResultEventMemory readEventMemory() throws DiagException;

Abbildung Automatisierung -> IDL


Erstellung des DiagLibResultFaultMemory siehe Abschnitt 6.1.1. In ODIS wird das
Lesen mit oder ohne Umgebungsbedingung nicht unterschieden, es werden immer die
Umgebungsbedingungen ausgelesen. Somit kann hier einfach die Operation
readFaultMemory aufgerufen werden. Das Weglassen der Umgebungsbedingungen
erfolgt in EXAM, so dass auch in diesem Fall das richtige Ergebnis geliefert würde. In
der Interface-Beschreibung seitens EXAM könnte ergänzt werden, dass diese Operation
für ODIS-E keinen Performance-Gewinn bedeutet.

6.6 readFaultMemoryMultilink
Beschreibung
Lesen der Ereignisspeicher der angeforderten Steuergeräte.
Verweis IDL
Plateau.DiagnosticsOperations#readFaultMemoryMultilink()
499725969.doc Seite 50 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Java-Signatur
DiagLibResultFaultMemories readFaultMemoryMultilink(
DiagLibEcuBase[] lEcuList)
throws PluginBaseException;
Parameter
lEcuList Liste der Steuergeräte, für die die Ereignisspeicher gelesen
werden soll. s. Kap. 2.7.2.
Rückgabe
DiagLibResultFaultMemories Struktur zur Rückgabe der Ereignisspeicher
mehrerer Steuergeräte, s. Kap. 6.6.1

Verweis Web-Service Schnittstelle


readMultilinkEventMemory
Web-Service-Signatur
<message name=" readMultilinkEventMemory">
<part name="parameters" element="tns:readMultilinkEventMemory "/>
</message>

Verweis Automatisierungsschnittstelle
IEventMemoryCompleteInterface#readMultilinkEventMemory
Java-Signatur
List<IDiagResultEventMemory> readMultilinkEventMemory(
List<IMultilinkEcuHandle> ecuList)
throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


Der Parameter lEcuList wird auf den Parameter ecuList abgebildet.

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt vom Typ DiagLibResultFaultMemoriesIdentifications erzeugt
(s. Kap.6.6.1) und zurückgegeben.

6.6.1 DiagLibResultFaultMemories
Beschreibung
Ergebnisstruktur des Lesens der Ereignisspeicher via Multilink.
Verweis IDL
Plateau#DiagLibResultFaultMemories
Java-Signatur
public final class DiagLibResultFaultMemories
{
public DiagLibResultBase sErrorMessage;
public EcuFaultMemoriesItem sEcuFaultMemories[];
}
Attribute
sErrorMessage Feld für Fehlermeldung (Steuergeräte-übergreifend).
sEcuFaultMemories[] Liste der Ereignisspeicher. Enthält einen Eintrag für
jedes angeforderte Steuergerät.

499725969.doc Seite 51 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt DiagLibResultFaultMemories für jeden Aufruf der Funktion
readIdentification erzeugt.
EMPTY_STRING => sErrorMessage

Für jedes ErgebnisElement => sEcuFaultMemories[]


vom Typ
DiagResultEventMemoryImpl
wird ein
EcuFaultMemoriesItem
erzeugt (s. Kap. 6.6.2)
und der Ergebnisliste
sEcuFaultMemories[]
hinzugefügt.

6.6.2 EcuFaultMemoriesItem
Beschreibung
Einzelergebnis des Multilink-Lesens der Ereignisspeicher für ein einzelnes Steuergerät.
Verweis IDL
Plateau#EcuFaultMemoriesItem
Java-Signatur
public final class EcuFaultMemoriesItem
{
public DiagLibEcuBase sEcuBase;
public DiagLibResultFaultMemory sFaultMemory;
}
Attribute
sEcuBase Identifiziert das Steuergerät, von dem diese
Ereignisspeicherdaten stammen.
sFaultMemory Die Ereignisspeicherdaten, s. Kap. 6.1.1

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt EcuFaultMemoriesItem für jedes im Aufruf der Funktion
readIdentification angeforderte Steuergerät erzeugt.
IDiagResultEventMemory.getEcuAddress => sEcuBase.sEcuId
IDiagResultEventMemory.getEcuLogicalLinkname => sEcuBase.
sEcuLogicalLink
Konvertierung s. Kap. 6.1.1 => sFaultMemory

6.7 resetFaultMemoryMultilink

Beschreibung
Löschen der Ereignisspeichereinträge mehrerer Steuergeräte

499725969.doc Seite 52 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Verweis IDL
Plateau.DiagnosticsOperations#resetFaultMemoryMultilink()
Java-Signatur
DiagLibEcuResults resetFaultMemoryMultilink(
DiagLibEcuBase[] lEcuList,
boolean bClearObdEcus)
throws PluginBaseException;
Parameter
lEcuList Liste der Steuergeräte, für die die Ereignisspeicher gelöscht
werden sollen. s. Kap. 2.7.2.
bClearObdEcus Wenn true, werden zusätzlich zu den genannten
Steuergeräten die Ereignisspeicher der OBD-Steuergeräte
mit einem funktionalen Aufruf gelöscht.
Rückgabe
DiagLibEcuResults Struktur zur Rückgabe einfacher Ergebnisse für Multilink-
Aufrufe, s. Kap. 2.7.4.

Verweis Automatisierungsschnittstelle
IEventMemoryCompleteInterface#resetMultilinkEventMemory()
Java-Signatur
List<IDiagResultMulti> resetMultilinkEventMemory(
List<IMultilinkEcuHandle> ecuList,
boolean clearOBD)
throws DiagException;

Abbildung Automatisierung -> IDL

7. Messwerte
7.1 readMeasuredValue(String, String)

Beschreibung
Auslesen eines Messwertes.
Verweis IDL
Plateau.DiagnosticsOperations#readMeasuredValue()
Java-Signatur
DiagLibResultMeasuredValue readMeasuredValue (String sMeasurement,
String sParam) throws PluginBaseException;
Parameter
sMeasureme ODX-ShortName der Messwertgruppe bei UDS Steuergeräten.
nt Bei KWP Steuergeräten wird der auszulesende Messwertblock als
Dezimalwert angegeben, z.B. 80.

sParam Dieser Parameter wird nur bei UDS-Steuergeräten ausgewertet, er


beinhaltet (optional) den ODX-ShortName des untergeordneten
Messwertes. Wobei hier für ODIS-E nur die Ergebnisse gefiltert werden
und nicht die Anfrage an das Steuergerät eingeschränkt wird. Bleibt
dieser Parameter leer, so werden generell alle Messwerte unterhalb der
499725969.doc Seite 53 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

jeweiligen Messwertgruppe ausgelesen und zurückgeliefert.

Rückgabe
DiagLibResultMeasuredVal Struktur zur Rückgabe der Messwerte
ue

Verweis Automatisierungsschnittstelle
ImeasurementInterface#readMeasurement
Java-Signatur
IDiagResultMeasurement readMeasurement
(String measurementGroup,String measurementParam) throws DiagException
Abbildung der Eingaben IDL -> Automatisierung
Der Parameter sMeasurement wird auf den Parameter measurementGroup abgebildet.
Für UDS-Messwerte wird der Parameter sParam auf measurementParam abgebildet
Für KWP-Steuergeräte wird sParam nicht weitergereicht. Falls dieser Parameter mit einem
Wert belegt ist wird eine PluginBaseException geworfen.

Abbildung Automatisierung -> IDL


Aufruf der Automatisierungsschnittstellenfunktion und Konvertierung der Rückgabe laut
Abschnitt 7.2.

7.2 DiagLibResultMeasuredValue
Beschreibung
Struktur zur Rückgabe eines Messwertes-
Verweis IDL
Plateau#DiagLibResultMeasuredValue
Java-Signatur
public final class DiagLibResultMeasuredValue
{
public exam.Plateau.DiagLibResultBase sErrorMessage;
public exam.Plateau.StdValue sAllMeasuredValues[];
}
Attribute
sErrorMessage Attribut für Fehlermeldungen, siehe Abschnitt 1.3
sAllMeasuredValues Liste der Messwerte

Verweis Automatisierungsschnittstelle
IMeasurandInterface#readMeasuredValue()
Java-Signatur
List<IDiagResultValue> readMeasuredValue(String measurementGroup, String
measurementParam) throws DiagException;

Abbildung Automatisierung -> IDL


EMPTY_STRING =>
DiagLibResultMeasuredValue.sErrorMessa
ge
Für jedes Listenelement aus => DiagLibResultMeasuredValue.
readMeasuredValue wird die sAllMeasuredValues
499725969.doc Seite 54 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Konvertierung aus Abschnitt


2.5.3 durchgeführt.

7.3 readMeasuredValueMultilink
Beschreibung
Lesen von Messwerten der angeforderten Steuergeräte.
Verweis IDL
Plateau.DiagnosticsOperations#readMeasuredValueMultilink()
Java-Signatur
DiagLibResultFuncValues readMeasuredValueMultilink (
DiagLibEcuFuncParamNamesItem[] sMeasurementEcuParamNamesList)
throws exam.Plateau.PluginBaseException;
Parameter
sMeasurementEcuParamNamesList Liste der Steuergeräte mit den Messwerten, die
gelesen werden sollen. s. Kap.10.5.1.
Rückgabe
DiagLibResultFuncValues Struktur zur Rückgabe der Messwerte mehrerer
Steuergeräte. s. Kap. 10.5.2.

Verweis Web-Service Schnittstelle


readMultilinkMeasurement
Web-Service-Signatur
<message name="readMultilinkMeasurement">
<part name="parameters" element="tns:readMultilinkMeasurement"/>
</message>

Verweis Automatisierungsschnittstelle
IMeasurementInterface#readMultilinkMeasurement
Java-Signatur
List<IDiagResultMeasurement> readMultilinkMeasurement(
List<IDiagMultiMeasurementDescriptor> measurementDescriptors)
throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


Der Parameter sMeasurementEcuParamNamesList wird auf den Parameter
measurementDescriptors abgebildet. Für jeden Eintrag in
sMeasurementEcuParamNamesList werden so viele Descriptoren erzeugt, wie der Eintrag
Messwertnamen enthält.

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt vom Typ DiagLibResultFuncValues erzeugt (s. Kap.10.5.2)
und zurückgegeben.

8. Codierung
8.1 readCodingECU

499725969.doc Seite 55 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Beschreibung
Lesen der Codierung.

Verweis IDL
Plateau#readCodingECU
Java-Signatur
DiagLibResultPlain readCodingECU(String sSubSystem, String sParam)
throws PluginBaseException
Parameter
sSubSystem Subsystem-Name. Für Mastersteuergeräte MASTER_ECU,
unabhängig, ob UDS oder KWP. Für das Mastersteuergerät
kann bei UDS auch der ODX-ShortName genutzt werden. Für
Subsysteme UDS der ODX-ShortName, für KWP „subSysXY“,
wobei XY für die Nummer des Subsystems steht, beginnend bei
0. Beispiel „subSys0“.
Wird EMPTY_STRING übergeben, so wird dies intern so wie
MASTER_ECU behandelt.
sParam Im Falle eines UDS-Steuergerätes der ODX-ShortName, für den
die Codierung gelesen wird. Für KWP EMPTY_STRING. Falls
für UDS die Binärcodierung gelesen werden soll, wird der Wert
ebenfalls mit EMPTY_STRING gesetzt.
Rückgabe
DiagLibResultPlain Gelesene Codierung, zur Beschreibung der Attribute siehe 2.5.2

Verweis Automatisierungsschnittstelle
ICodingInterface#readCoding()
Java-Signatur
List<IDiagResultCoding> readCoding() throws DiagException

Abbildung der Eingaben IDL -> Automatisierung


Die Eingaben werden nicht an den Aufruf der Automatisierungsschnittstelle weitergereicht. Die
Automatisierungsschnittstelle liest immer die komplette Kodierung eines Steuergerätes aus,
inklusive der Subsysteme. Die Eingabeparameter werden zur Filterung des Rückgabewertes
verwendet.

Abbildung der Ausgaben -> IDL


Aus der Ergebnisliste List<IDiagResultCoding> wird mittels sSubSystem die Kodierung für
das entsprechende System ermittelt. Dies ist der Fall, wenn
IDiagResultCoding.getSystemName() == sSubSystem.

Wenn kein Subsystem angegeben ist wird das IDiagResultCoding für das
Mastersteuergerätes zurück gegeben.
IDiagResultCoding.getSystemName() == MASTER_ECU.

Mit dem ermittelten IDiagResultCoding wird die Ergebnisstruktur DiagLibResultPlain


befüllt
Wenn sParam == EMPTY_STRING dann => DiagLibResultPlain.value
IDiagResultCoding.getByteCoding()

499725969.doc Seite 56 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

sonst
IDiagResultCoding.getTextCoding()
.get(sParam)
IDiagResultCoding.getByteCodingTy => DiagLibResultPlain.type
pe()
EMPTY_STRING => DiagLibResultPlain.reserved
EMPTY_LIBRESULTBASE => DiagLibResultPlain.sErrorMessage

8.1.1 Beispiele
Lesen der Kodierung ohne Parameter (UDS)
Durch Aufruf der Funktion ohne Parameter wird die Binärkodierung des Mastersteuergerätes
ausgelesen

Aktion
readCodingECU(EMPTY_STRING, EMPTY_STRING)
Rückgabe
public final class DiagLibResultPlain{
public String value = „00 01 02 03 04“;
public String type = TYPE_BYTEFIELD;
public String reserved = EMPTY_STRING;
public DiagLibResultBase sErrorMessage = EMPTY_LIBRESULTBASE;
}
Lesen der kurzen Kodierung ohne Parameter (KWP)
Durch Aufruf der Funktion ohne Parameter wird die Binärkodierung des Mastersteuergerätes
ausgelesen

Aktion
readCodingECU(EMPTY_STRING, EMPTY_STRING)
Rückgabe
public final class DiagLibResultPlain{
public String value = „01 77 FC“ Immer als Bytearray zurückliefern
public String type= TYPE_BYTEFIELD;
public String reserved = EMPTY_STRING;
public DiagLibResultBase sErrorMessage = EMPTY_LIBRESULTBASE;
}

8.2 writeCodingECU

Beschreibung
Schreiben der Codierung.

Verweis IDL
Plateau#writeCodingECU
Java-Signatur
DiagLibResultBase writeCodingECU (String sCode, String sSubSystem,
String sParam) throws PluginBaseException;
Parameter
sCode Neuer Wert, der codiert werden soll. Für die kurze Codierung der KWP
499725969.doc Seite 57 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Steuergeräte wird der Wert als TYPE_INT erwartet. Für die lange
Codierung KWP und binärcodierung UDS als TYPE_BYTEFIELD und für
die Klartextcodierung als TYPE_STRING.
sSubSyste Steuergerätemaster oder Subteilnehmer. Wird kein Subsystem angegeben
m (EMPTY_STRING) wird das Mastersteuergerät (MASTER_ECU) kodiert.
Ansonsten wird bei MASTER_ECU das Mastersteuergerät codiert (UDS
und KWP). Subsysteme werden bei KWP mittels „subSysXY“
angesprochen, wobei XY die Nummer des Subsystems, beginnend bei 0,
ist. Für UDS werden für Subsysteme die ODX- ShortNames verwendet.
Der ODX-ShortName kann bei UDS auch für den Master genutzt werden.
sParam ODX-Shortname des Codierparameters (UDS), für KWP-Steuergeräte
EMPTY_STRING
Rückgabe
DiagLibResultBase Fehlermeldungen siehe Abschnitt 1.3

Verweis Automatisierungsschnittstelle
ICodingInterface#writeByteCoding()
ICodingInterface#writeTextCoding()
Java-Signatur
void writeByteCoding(String systemName, String codingValues) throws
DiagException;

void writeTextCoding(String systemName, Map<String, String>


codingValues) throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


In Abhängigkeit von Parameter wird eine entsprechende Kodierungsfunktion aufgerufen.
Wenn sParam == EMPTY_STRING dann erfolgt der Aufruf von writeByteCoding
Ansonsten wird die Funktion writeTextCoding aufgerufen.

Parameter sCode wird auf Parameter codingValues abgebildet

Für writeTextCoding wird eine Map mit einem Eintrag


(key = sParam, value = sCode )
erzeugt und auf den Parameter codingValues abgebildet.

Der Parameter sSubSystem wird auf den Parameter systemName abgebildet.

Abbildung der Ausgaben -> IDL


EMPTY_LIBRESULTBASE DiagLibResultBase

8.3 readCodingGateway

Beschreibung
Liest für KWP die Gatewayverbauliste in hexadezimaler Form aus. Für UDS-Steuergeräte wird
eine PluginBaseException geworfen.

499725969.doc Seite 58 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Eigentlich sollte hier für UDS-Steuergeräte eine PluginBaseException geworfen werden =>
Change Request an EXAM Change Control Board.

Verweis IDL
Plateau#readCodingGateway
Java-Signatur
DiagLibResultPlain readCodingGateway() throws PluginBaseException;
Rückgabe
DiagLibResultPlain Gatewayverbauliste hexadezimal (EDIABAS)

Verweis Web-Service Schnittstelle


readGatewayComponentList

Web-Service-Signatur
<message name="readGatewayComponentList">
<part name="parameters" element="tns:readGatewayComponentList" />
</message>
Abbildung der Ausgaben Web-Service -> IDL
Konvertiertes DiagLibResultPlain.value
diagResultComponentListImpl.byteCodin
g in einen String
TYPE_BYTEFIELD DiagLibResultPlain.type
EMPTY_STRING DiagLibResultPlain.reserved
EMPTY_LIBRESULTBASE DiagLibResultPlain.sErrorMe
ssage

8.4 writeCodingGateway

Beschreibung
Schreibt für KWP die Gatewayverbauliste in hexadezimaler Form aus. Für UDS-Steuergeräte
wird eine PluginBaseException geworfen.
Eigentlich sollte hier für UDS-Steuergeräte eine PluginBaseException geworfen werden =>
Change Request an EXAM Change Control Board.

Verweis IDL
Plateau# writeCodingGateway
Java-Signatur
DiagLibResultBase writeCodingGateway (String sCode) throws
PluginBaseException;
Parameter
sCode Neuer Wert der codiert werden soll
Rückgabe
DiagLibResultBase Siehe 1.3 Behandlung von Exceptions

Verweis Web-Service Schnittstelle

Web-Service-Signatur

499725969.doc Seite 59 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Abbildung der Eingaben IDL -> Web-Service

8.5 readGatewayEquipmentList

Beschreibung
Lesen der Gatewayverbauliste in textueller Form.

Verweis IDL
Plateau# readGatewayEquipmentList
Java-Signatur
DiagLibResultStdValueSeq readGatewayEquipmentList () throws
PluginBaseException;
Rückgabe
DiagLibResultStdValueSeq Liste der Steuergeräte, die im der Gatewayverbauliste
codiert sind.

Verweis Automatisierungsschnittstelle
IGatewayCodingInterface#readGatewayComponentList
Java-Signatur
public IDiagResultComponentList readGatewayComponentList() throws
DiagException;

Abbildung der Ausgaben -> IDL


Verwendung
List<IDiagResultComponentListE
ntry> aus
IDiagResultComponentList
EMPTY_LIBRESULTBASE im positiv DiagLibResultStdValueSeq.sErrorMessage
Fall, bei einer negative
Antwort vom Steuergeräte wird
diese eingetragen.
Für jedes Listenelement aus DiagLibResultStdValueSeq.sAllStdValues[]
List<IDiagResultComponentListE
ntry> wird die Konvertierung
nach Abschnitt 8.5.1
durchgeführt.

8.5.1 StdValue

Beschreibung
Abbildung eines IDiagResultComponentListEntry auf einen StdValue.

Verweis
Zur Beschreibung der StdValue Struktur siehe Abschnitt 2.5.3

Verweis Automatisierungsschnittstelle
499725969.doc Seite 60 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

vehiclefunction.automation.types#IDiagResultComponentListEntry
Java-Signatur
public interface IDiagResultComponentListEntry{
public int getEcuId();
public getEcuIdInformation();
public long getNodeId();
public boolean isNodeIdAvailable();
public IDiagResultValue getNodeIdInformation();
public int getListPosition();
public boolean isCoded();
public IDiagResultValue getCodedState();
public IDiagResultValue getPresentState();
public IDiagResultValue getSleepBit();
public IDiagResultValue getDtcInfo();
public List<IDiagResultValue> getProtocolInformation();
public IDiagResultValue getTPIdentifier();
public IDiagResultValue getBusIdentifier();
public IDiagResultValue getEntryType();
}

Abbildung Automatisierung -> IDL


Konvertierung wird nur durchgeführt wenn gilt:
IDiagResultComponentListEntry.isCoded == true
EMPTY_STRING => stdValue.errorMessage
EMPTY_STRING => stdValue.param
asHexString ( => stdValue.value
IDiagResultComponentListEntry
.getEcuId()
)
EMPTY_STRING => stdValue.unit
IDiagResultComponentListEntry => stdValue.text
.getEcuIdInformation()
.getTranslatedValue();
EMPTY_STRING => stdValue.unit
EMPTY_STRING => stdValue.text
TYPE_STRING => stdValue.type
EMPTY_STRING => stdValue.number
IDiagResultComponentListEntry. => stdValue.reserved
getEntryType();
[“BUSMASTER_COMPONENT_ENTRY”,
“SOFTWARE_CLUSTER_ENTRY”]
EMPTY_STRING => stdValue.tableKey
EMPTY_STRING => stdValue.tableKeyText
EMPTY_STRING => stdValue.errorMessage

8.5.2 Beispiele
Lesen der Busmasterkodierung (UDS und KWP)
Erfolgreiches Auslesen der Verbauliste. Annahme es sind nur die Steuergeräte
Gateway, Motorelektronik und Schalttafeleinsatz verbaut.
Aktion
499725969.doc Seite 61 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

readGatewayEquipmentList
Rückgabe
public final class DiagLibResultStdValueSeq {
public DiagLibResultBase sErrorMessage = EMPTY_LIBRESULTBASE;
public DiagLibResultStdValueSeq sAllStdValues [3];
}

sAllStdValues[0] =
public final class StdValue {
public String param = EMPTY_STRING;
public String value = “19”;
public String unit = EMPTY_STRING;
public String text = “Diagnoseinterface für Datenbus”
public String type = TYPE_STRING;
public String number = EMPTY_STRING;
public String reserved = “BUSMASTER_COMPONENT_ENTRY”;
public String tableKey = EMPTY_STRING;
public String tableKeyText = EMPTY_STRING;
public String errorMessage = EMPTY_STRING;
}
sAllStdValues[1] =
public final class StdValue {
public String param = EMPTY_STRING;
public String value = “01”
public String unit = EMPTY_STRING;
public String text = “Motorelektronik”
public String type = TYPE_STRING;
public String number = EMPTY_STRING;
public String reserved =“BUSMASTER_COMPONENT_ENTRY”;
public String tableKey = EMPTY_STRING;
public String tableKeyText = EMPTY_STRING;
public String errorMessage = EMPTY_STRING;
}
sAllStdValues[2] =
public final class StdValue {
public String param = EMPTY_STRING;
public String value = “17”
public String unit = EMPTY_STRING;
public String text = ”Schalttafeleinsatz”
public String type = TYPE_STRING;
public String number = EMPTY_STRING;
public String reserved = “BUSMASTER_COMPONENT_ENTRY”;
public String tableKey = EMPTY_STRING;
public String tableKeyText = EMPTY_STRING;
public String errorMessage = EMPTY_STRING;
}
}

Lesen der Busmasterkodierung (UDS ) Negative Antwort


Aktion
readGatewayEquipmentList()
Rückgabe
499725969.doc Seite 62 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

public final class DiagLibResultStdValueSeq


{
public DiagLibResultBase sErrorMessage;
public DiagLibResultStdValueSeq sAllStdValues [0] = {};
}

public final class DiagLibResultBase {


public String errorMessage = Jobstatuscode
public String reserved = EMPTY_STRING;
}

8.6 writeGatewayEquipmentList

Beschreibung
Schreiben der Verbauliste

Verweis IDL
Plateau#writeGatewayEquipmentList
Java-Signatur
DiagLibResultBase writeGatewayEquipmentList (DictionaryEntry[]
equipmentList) PluginBaseException;
Parameter
DictionaryEntry Liste von Steuergeräten, die kodiert oder nicht kodiert werden
[] sollen. Alle Steuergeräte, welche nicht in dieser Liste angegeben
werden, behalten ihre derzeitige Codierung innerhalb der
Gatewayverbauliste. Ein Eintrag enthält die folgenden Attribute:
DictionaryEntry {
public String key = Steuergeräteadresse in hex
(ohne 0x als Prefix)
public String value = Steuerung der Kodierung,
es sind die Werte VALUE_CODED und
VALUE_NOTCODEDVALUE_NOTCODED definiert.
}

Rückgabe
DiagLibResultBase Rückgabe von Fehlermeldungen.

Verweis Automatisierungsschnittstelle
IGatewayCodingInterface#writeGatewayComponentListUds
IGatewayCodingInterface#createComponentListEntry
Java-Signatur
public void writeGatewayComponentList(List<IDiagComponentListEntry>
componentList) throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


Für jedes Element aus DictionaryEntry[] wird ein Objekt IDiagComponentListEntry
erzeugt und an die Funktion übergeben.
for (DictionaryEntry dictionaryEntry: DictionaryEntry[]){

499725969.doc Seite 63 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

ecuId = dictionaryeEntry[i].key
codedValue = dictionaryeEntry[i].value
codedState = false;
if (codedValue == VALUE_CODED){
codedState = true;
}
listEntry = createComponentListEntry(ecuId, codedState);
}

componentList.add( listEntry );
writeGatewayComponentList(componentList);

Abbildung der Ausgaben -> IDL


EMPTY_LIBRESULTBASE => DiagLibResultBase

8.7 readCodingMultilink
Beschreibung
Lesen der Codierung der angeforderten Steuergeräte.
Verweis IDL
Plateau.DiagnosticsOperations#readCodingMultilink ()
Java-Signatur
DiagLibResultCodings readCodingMultilink (DiagLibEcuBase[] lEcuList)
throws PluginBaseException;
Parameter
lEcuList Liste der Steuergeräte, für die die Codierung gelesen
werden soll. s. Kap. 2.7.2.
Rückgabe
DiagLibResultCodings Struktur zur Rückgabe der Codierungsdaten
mehrerer Steuergeräte

Verweis Web-Service Schnittstelle


readMultilinkCoding
Web-Service-Signatur
<message name="readMultilinkCoding">
<part name="parameters" element="tns:readMultilinkCoding"/>
</message>

Verweis Automatisierungsschnittstelle
ICodingInterface#readMultilinkCoding
Java-Signatur
List<IDiagResultCoding> readMultilinkCoding(
List<IMultilinkEcuHandle> ecuList,
boolean readSubSystems)
throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


Der Parameter lEcuList wird auf den Parameter ecuList abgebildet.
Der Parameter readSubSystems wird immer auf true gesetzt. Damit werden Codierungen der

499725969.doc Seite 64 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Subsysteme immer gelesen.

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt vom Typ DiagLibResultCodings erzeugt (s. Kap. 8.7.1) und
zurückgegeben.

8.7.1 DiagLibResultCodings
Beschreibung
Ergebnisstruktur des Multilink-Lesens der Codierung.
Verweis IDL
Plateau#DiagLibResultCodings
Java-Signatur
public final class DiagLibResultCodings
{
public DiagLibResultBase sErrorMessage;
public DiagLibResultEcuCodingItem sEcuCodings[];
}
Attribute
sErrorMessage Feld für Fehlermeldung (Steuergeräte-übergreifend).
sEcuCodings[] Liste der Codierungsdaten. Enthält einen Eintrag für
jedes angeforderte Steuergerät.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Web-Service -> IDL


Es wird genau ein Objekt DiagLibResultCodings für jeden Aufruf der Funktion
readIdentificationMultilink erzeugt.
EMPTY_STRING => sErrorMessage

Die ErgebnisElemente vom Typ => sEcuCodings[]


DiagResultCodingImpl werden nach der enthaltenen
ecuAddress zu Gruppen zusammengefasst. Aus jeder
dieser Gruppen wird ein
DiagLibResultEcuCodingItem (s. Kap. 8.7.2)
erzeugt und der Ergebnisliste sEcuCodings[]
hinzugefügt.

8.7.2 DiagLibResultEcuCodingItem
Beschreibung
Einzelergebnis des Multilink-Lesens der Codierung für ein einzelnes Steuergerät.
Verweis IDL
Plateau#DiagLibResultEcuCodingItem
Java-Signatur
public final class DiagLibResultEcuCodingItem
{
public DiagLibResultBase sErrorMessage;
public DiagLibEcuBase sEcuBase;

499725969.doc Seite 65 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

public DiagLibResultSystemCodingItem sSystemCodings[];


}
Attribute
sErrorMessage Feld für Fehlermeldung zu diesem Steuergerät
sEcuBase Identifiziert das Steuergerät, von dem diese
Codierungsdaten stammen.
sSystemCodings Die Codierungsdaten für die einzelnen Subsysteme des
Steuergeräts.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Web-Service -> IDL


Es wird genau ein Objekt DiagLibResultEcuCodingItem für jedes im Aufruf der Funktion
readIdentification angeforderte Steuergerät erzeugt.
IDiagResultCoding.getEcuAddress => sEcuBase.sEcuId
IDiagResultCoding.getEcuLogicalLinkname => sEcuBase.sEcuLogicalLink
Für jedes in der Gruppe enthaltene => sSystemCodings
Element vom Typ DiagResultCodingImpl
wird ein DiagLibResultSystemCodingItem
(s. Kap. 8.7.3) erzeugt und an die Liste
sSystemCodings angehängt.

8.7.3 DiagLibResultSystemCodingItem
Beschreibung
Einzelergebnis des Multilink-Lesens der Codierung für ein einzelnes Subsystem eines
Steuergeräts.
Verweis IDL
Plateau#DiagLibResultSystemCodingItem
Java-Signatur
public final class DiagLibResultSystemCodingItem
{
public DiagLibResultBase sErrorMessage;
public String sSystemName;
public DiagLibCodingType eCodingType;
public DiagLibParamValueItem sTextCodings[];
public String sByteCoding;
}
Attribute
sErrorMessage Feld für Fehlermeldung zu diesem Subsystem
sSystemName Identifiziert das Subsystem, von dem diese
Codierungsdaten stammen.
eCodingType Typ der Codierung, s. Kap. 8.8.3
sTextCodings Liste von Name/Wert-Paaren im Fall der
Klartextcodierung
sByteCoding Bytecoding-String im Fall der Bytecodierung

Verweis Web-Service Schnittstelle


499725969.doc Seite 66 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Web-Service -> IDL


Es wird genau ein Objekt DiagLibResultSystemCodingItem zu jedem erhaltenen
Ergebnis für dieses Steuergerät erzeugt.
IDiagResultCoding.getSystemName => sSystemName
Falls IDiagResultCoding.getTextCoding() => eCodingType
ein nicht-leeres Ergebnis liefert, wird
eCodingType auf CODINGTYPE_TEXT gesetzt.
Sonst wird der Wert von
IDiagResultCoding.getByteCodingType in
den entsprechenden CODINGTYPE_BYTE_*
umgewandelt und in eCodingType
eingetragen.
Im Fall der Klartextcodierung wird aus => sTextCodings
der Ergebnis-Map von getTextCodings eine => sByteCoding
Liste von DiagLibParamValueItem-Objekten
erzeugt (jeweils Name und Wert) und in
sTextCodings zurückgegeben. Dann ist
sByteCoding leer.
Im Fall einer Bytecodierung ist
sTextCodings leer und sByteCoding
enthält den Codierwert als String.

8.8 writeCodingMultilink
Beschreibung
Schreiben der Codierung der angeforderten Steuergeräte.
Verweis IDL
Plateau.DiagnosticsOperations#writeCodingMultilink()
Java-Signatur
DiagLibEcuFuncResults writeCodingMultilink (
DiagLibEcuCodingParamValuesItem[] sCodingEcuParamValuesList,
boolean bEcuReset
) throws PluginBaseException;
Parameter
sCodingEcuParamValuesList Liste der Steuergeräte mit den zu schreibenden
Codierwerten. s. Kap. 8.8.1..
bEcuReset Wenn true, wird nach dem Schreiben ein Reset des
Steuergeräts durchgeführt..
Rückgabe
DiagLibEcuResults Struktur zur Rückgabe einfacher Ergebnisse für
Multilink-Aufrufe, s. Kap. 2.7.4.
Verweis Web-Service Schnittstelle
writeMultilinkCoding
Web-Service-Signatur
<message name="writeMultilinkCoding">
<part name="parameters" element="tns:writeMultilinkCoding"/>
</message>

499725969.doc Seite 67 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Verweis Automatisierungsschnittstelle
ICodingInterface#writeMultilinkCoding
Java-Signatur
List<IDiagResultMulti> writeMultilinkCoding(
List<IDiagMultiCodingValueDescriptor> codingValueDescriptors)
throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


Der Parameter sCodingEcuParamValuesList wird auf den Parameter
codingValueDescriptors abgebildet. Für jeden Eintrag in sCodingEcuParamValuesList
werden so viele Descriptoren erzeugt, wie der Eintrag Subsystemnamen enthält.

Der Parameter bEcuReset wird in jeden Descriptor übernommen.

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt vom Typ DiagLibEcuResults erzeugt (s. Kap. 2.7.4) und
zurückgegeben.

8.8.1 DiagLibEcuCodingParamValuesItem
Beschreibung
Eingabestruktur für das Multilink-Schreiben von Codierwerten. Beschreibt ein einzelnes
Steuergerät und die dafür zu schreibenden Codierwerte.
Verweis IDL
Plateau#DiagLibEcuCodingParamValuesItem
Java-Signatur
public final class DiagLibEcuCodingParamValuesItem
{
public DiagLibEcuBase sEcuBase;
public DiagLibCodingParamValuesItem sFuncs[];
}
Attribute
sEcuBase Angabe des Steuergeräts, s. Kap. 2.7.2.
sFuncs[] Liste der Codierungen für die einzelnen Subsysteme, s.
Kap. 8.8.2.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

8.8.2 DiagLibCodingParamValuesItem
Beschreibung
Eingabestruktur für das Multilink-Schreiben von Codierwerten. Beschreibt ein einzelnes
Subsystem und die dafür zu schreibenden Codierwerte.
Verweis IDL
Plateau#DiagLibCodingParamValuesItem
Java-Signatur

499725969.doc Seite 68 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

public final class DiagLibCodingParamValuesItem


{
public String sSystemName;
public DiagLibCodingType eCodingType;
public DiagLibParamValueItem sParamValues[];
public String sByteCoding;
}
Attribute
sSystemName Subsystem
eCodingType Typ des Codierwerts, s. Kap. 8.8.3
sParamValues[] Liste von Name/Wert-Paaren im Fall der
Klartextcodierung.
Leere Liste bei Bytecodierung
sByteCoding Bytecoding-String im Fall der Bytecodierung, die
Interpretation ist abhängig vom angegebenen
eCodingType

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

8.8.3 DiagLibCodingType
Beschreibung
Enum-Typ zur Angabe des Codierwert-Typs.

Gültige Werte
CODINGTYPE_TEXT Klartextcodierung
CODINGTYPE_BYTE_STRING Bytecodierung, Wert ist als String zu behandeln
CODINGTYPE_BYTE_HEX Bytecodierung, Wert ist als Hex-String zu behandeln
CODINGTYPE_BYTE_FLOAT Bytecodierung, Wert ist als Float zu behandeln
CODINGTYPE_BYTE_INT Bytecodierung, Wert ist als Int zu behandeln
CODINGTYPE_BYTE_BYTEFIELD Bytecodierung, Wert ist als Bytefield zu behandeln
CODINGTYPE_BYTE_DATETIME Bytecodierung, Wert ist als DateTime zu behandeln

9. Stellglieddiagnose
9.1 actuatorDiagnosis

Beschreibung
Ausführen der sequentiellen Stellglieddiagnose für KWP.

Verweis IDL
Plateau#actuatorDiagnosis
Java-Signatur
DiagLibResultActuatorDiagnosis actuatorDiagnosis (String sType) throws
PluginBaseException;

499725969.doc Seite 69 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Parameter
sType Gibt an, welche Aktion der Stellglieddiagnose durchgeführt werden soll.
Es sind folgende Werte definiert:
ACTION_START
ACTION_NEXT
ACTION_STOP
ACTION_CHECK
Rückgabe
DiagLibResultActuatorDiagnos Messwerte und Statusmeldung der
is Stellglieddiagnose. PluginBaseException falls
diese Operation für ein UDS-Steuergerät
aufgerufen wird.

Verweis Automatisierungsschnittstelle
IActuatorDiagnosticInterface#actuatorDiagnosticsInit
IActuatorDiagnosticInterface#actuatorDiagnosticsStart
IActuatorDiagnosticInterface#actuatorDiagnosticsStop
IActuatorDiagnosticInterface#actuatorDiagnosticsNext
IActuatorDiagnosticInterface#actuatorDiagnosticsCheck
Java-Signatur
Void
actuatorDiagnosticsInit(List<IDiagDescriptorWithParametersAndMeasurement
s> actuators, List<String> measuredValues) throws DiagException;
List<IDiagResultStatus> actuatorDiagnosticsStart(List<String> actuators)
throws DiagException;
List<IDiagResultStatus> actuatorDiagnosticsStop(List<String> actuators)
throws DiagException;
List<IDiagResultStatus> actuatorDiagnosticsNext() throws DiagException;
List<IDiagResultStatus> actuatorDiagnosticsCheck(List<String> actuators)
throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


Der Wert des Eingabeparameters sType legt fest, welche Funktion der
Automatisierungsschnittstelle aufgerufen wird. Er wird nicht an die Funktionen weitergereicht.
sType == actuatorDiagnosticsInit(EMPTY_LIST, EMPTY_LIST )
ACTION_START actuatorDiagnosticsStart(EMPTY_LIST)
sType == actuatorDiagnosticsNext(EMPTY_LIST)
ACTION_NEXT
sType == actuatorDiagnosticsStop(EMPTY_LIST)
ACTION_STOP
sType == actuatorDiagnosticsCheck(EMPTY_LIST)
ACTION_CHECK

Abbildung der Ausgaben -> IDL


Die Abbildung des Stellgliedteststatus erfolgt nach Abschnitt 9.2.

9.2 DiagLibResultActuatorDiagnosis

499725969.doc Seite 70 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Beschreibung
Abbildung des Stellgliedteststatus.

Verweis IDL
Plateau#DiagLibResultActuatorDiagnosis
Java-Signatur
public final class DiagLibResultActuatorDiagnosis{
public exam.Plateau.DiagLibResultBase sErrorMessage
public exam.Plateau.StdValue sOneStdValue
public exam.Plateau.StdValue sAllMeasuredValues[]
}

Attribute
sErrorMessage Attribut zur Rückgabe von negativen Antworten vom Steuergerät
sOneStdValue Status des Stellgliedtests und aktuelles Stellglied
sAllMeasuredValu Liste der Messwerte
es
Die Attribute sOneStdValue ist abweichend zu Abschnitt 2.5.3 für die Stellglieddiagnose wie
folgt definiert.
param Nummer des aktuellen Stellgliedes (KWP), bzw. Shortname des
Stellgliedes (UDS)
value Aktueller Status (1 oder -1)
unit Wird nicht verwendet EMPTY_STRING
text Status des Stellgliedes als Text. Im Fall eines UDS-Steuergerätes der
ODX-ShortName vom Gesamtstatus.
type Datentyp des Wertes, für diesen Fall immer TYPE_INT
number Wird nicht verwendet EMPTY_STRING
reserved Wird nicht verwendet EMPTY_STRING
tableKey Wird nicht verwendet EMPTY_STRING
tableKeyTe Wird nicht verwendet EMPTY_STRING
xt
errorMessa Wird nicht verwendet EMPTY_STRING
ge

Verweis Automatisierungsschnittstelle
vehiclefunction.automation.types#IDiagResultStatus
Java-Signatur
public interface IDiagResultStatus{
public String getName();
public String getStatus();
public List<IDiagResultValue> getMeasuredValues();
}

Abbildung Automatisierung -> IDL


Abbildung der Fehlermeldung
s. 1.3 sErrorMessage
Abbildung des Status, zum Aufbau eine StdValues siehe Abschnitt 2.5.3
diagResultValue.getName() => sOneStdValue.param
sOneStdValue.text gemapped über Mapping.xml => sOneStdValue.value

499725969.doc Seite 71 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

EMPTY_STRING => sOneStdValue.unit


UDS Shortname, KWP siehe unten (zu mappen) => sOneStdValue.text
EMPTY_STRING => sOneStdValue.type
EMPTY_STRING => sOneStdValue.number
EMPTY_STRING => sOneStdValue.reserved
EMPTY_STRING => sOneStdValue.tableKey
EMPTY_STRING =>
sOneStdValue.tableKeyText
EMPTY_STRING =>
sOneStdValue.errorMessage
Die Konvertierung der Messwerte wird nach Abschnitt 2.5.3 durchgeführt
IDiagResultStatus. => sOneStdValue.sAllMeasuredValues[]
getMeasuredValues()

Auszug aus EXAM_TA

KWP Wert des Parameters 'StellgliedTestStatus': sOneStdValue.value

Status Beschreibung
Der Stellgliedtest läuft, im Fahrzeugsystem
SGT_LAEUFT
wird das Stellglied angesteuert.
Der Stellgliedtest läuft und kann vom
Anwendungsprogramm nicht unterbrochen
SGT_LAEUFT_NICHTUNTERBRECHBA
werden. Das Fahrzeugsystem wechselt
R
automatisch in den nächsten Zustand des
StellgliedTestStatus.
Der letzte Stellgliedtest wurde vom
Fahrzeugsystem beendet. Das
SGT_LAEUFT_NICHT Fahrzeugsystem wartet auf den Start des
nächsten Stellgliedtests. Auftrag mit
Steuerung = "NAECHSTER".
Die Stellglieddiagnose wurde vom
SGT_ABBRUCH Anwendungsprogramm oder von
Fahrzeugsystem abgebrochen.
Die Stellglieddiagnose wurde vom
SGT_ENDE
Fahrzeugsystem beendet.

9.3 selectiveActuatorDiagnosis

Beschreibung
Ausführen der selektiven Stellglieddiagnose.
499725969.doc Seite 72 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Verweis IDL
Plateau#selectiveActuatorDiagnosis
Java-Signatur
DiagLibResultActuatorDiagnosis selectiveActuatorDiagnosis (String sType,
String sActuatorCode, DictionaryEntry[] sRequestStartParam, String[]
sRequestMeasuredValueList) throws PluginBaseException;
Parameter
sType Gibt an, welche Aktion der Stellglieddiagnose
durchgeführt werden soll. Es sind folgende Werte
definiert:
ACTION_START
ACTION_NEXT
ACTION_STOP
ACTION_CHECK
sActuatorCode Stellgliedcode (KWP) oder Shortname bei UDS
sRequestStartParam Startparameter (UDS)
sRequestMeasuredValueLis Liste von Messwerten die ausgelesen werden (UDS)
t
Rückgabe
DiagLibResultActuatorDiagnos Messwerte und Statusmeldung der
is Stellgliediagnose

Verweis Automatisierungsschnittstelle
IActuatorDiagnosticInterface#actuatorDiagnosticsInit
IActuatorDiagnosticInterface#actuatorDiagnosticsStart
IActuatorDiagnosticInterface#actuatorDiagnosticsStop
IActuatorDiagnosticInterface#actuatorDiagnosticsNext
IActuatorDiagnosticInterface#actuatorDiagnosticsCheck
IActuatorDiagnosticInterface#createDiagActuator
Java-Signatur
Void
actuatorDiagnosticsInit( List<IDiagDescriptorWithParametersAndMeasuremen
ts> actuators, List<String> measuredValues) throws DiagException;
List<IDiagResultStatus> actuatorDiagnosticsStart(List<String> actuators)
throws DiagException;
List<IDiagResultStatus> actuatorDiagnosticsStop(List<String> actuators)
throws DiagException;
List<IDiagResultStatus> actuatorDiagnosticsNext() throws DiagException;
List<IDiagResultStatus> actuatorDiagnosticsCheck(List<String> actuators)
throws DiagException;
IDiagDescriptorWithParametersAndMeasurements createDiagActuator(String
actuatorName, Map<String, String> parameters, List<String>
measurementValues) throws DiagException;;

Abbildung der Eingaben IDL -> Automatisierung


Der Wert des Eingabeparameters sType legt fest, welche Funktion der
Automatisierungsschnittstelle aufgerufen wird. Die Parameter sActuatorCode,
sRequestStartParam wird mittels der Funktion createDiagActuator ein Actuator-Objekt zur
Initialisierung erstellt. Die Liste der Messwerte sRequestMeasuredValueList wird ebenfalls
499725969.doc Seite 73 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

an die Initialisierungsfunktion weitergegeben.


sType == actuator = createDiagActuator(sActuatorCode,
ACTION_START sRequestStartParam )
actuatorDiagnosticsInit(actuator,
sRequestMeasuredValueList )
actuatorDiagnosticsStart(EMPTY_LIST)
sType == actuatorDiagnosticsNext(EMPTY_LIST)
ACTION_NEXT
sType == actuatorDiagnosticsStop(EMPTY_LIST)
ACTION_STOP
sType == actuatorDiagnosticsCheck(EMPTY_LIST)
ACTION_CHECK

Abbildung der Ausgaben -> IDL


Die Abbildung des Stellgliedteststatus erfolgt nach Abschnitt 9.2.

10. Anpassung

10.1 readConditioning

Beschreibung
Auslesen eine Anpasskanals

Verweis IDL
Plateau#readConditioning
Java-Signatur
DiagLibResultConditioning readConditioning (String sAdaptionFunction,
String sAdaptionParam) throws PluginBaseException;
Parameter
sAdaptionFunctio ODX-ShortName der Anpassgruppe (UDS) oder Nummer des
n Anpasskanals (KWP) mit Prefix „value“. value1-value255
sAdaptionParam ODX-ShortName des Anpassparameters (UDS), für KWP nicht
notwendig. Bleibt dieser Parameter für UDS-Steuergeräte leer, so
werden alle Anpasswerte unterhalb der jeweiligen Anpassgruppe
zurückgeliefert.
Rückgabe
DiagLibResultConditioning Der ausgelesene Anpasskanal

Verweis Web-Service Schnittstelle


readAdaptation
Web-Service-Signatur
<message name="readAdaptation">
<part name="parameters" element="tns:readAdaptation" />
</message>

499725969.doc Seite 74 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Abbildung der Eingaben IDL -> Web-Service


Der Parameter sAdaptionFunction wird an die Funktion readAdaptation weitergereicht. Der
zweite Parameter sAdaptionParam wird zur Filterung der Rückgabe verwendet, siehe hierzu
Abbildung der Ausgaben.
Der Prefix „value“ wird beim Parameter sAdaptionFunction entfernt.
sAdaptionFunction => adaptationChannel

Abbildung der Ausgaben Web-Service -> IDL


Siehe 10.1.1DiagLibResultConditioning

10.1.1 DiagLibResultConditioning
Beschreibung
Objekt zur Rückgabe von Anpasswerten

Verweis IDL
Plateau#DiagLibResultConditioning
Java-Signatur
public final class DiagLibResultConditioning
{
public exam.Plateau.DiagLibResultBase sErrorMessage
public exam.Plateau.ConditioningElement sAllConditioningElements[]
}

Attribute
sErrorMessage Fehlermeldung, siehe Abschnitt 1.3
sAllConditioningElements Liste von Anpasswerten

Verweis Web-Service Schnittstelle


<xs:complexType name="diagResultAdaptationImpl">
Web-Service-Signatur
<xs:complexType name="diagResultAdaptationImpl">
<xs:complexContent>
<xs:extension base="tns:diagResultTableImpl">
<xs:sequence>
<xs:element name="adaptationValues"
type="tns:diagResultAdaptationValueImpl" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Abbildung Ausgaben Web-Service -> IDL
EMPTY_LIBRESULTBASE sErrorMessage
<xs:sequence> sAllConditioningElements[]
<xs:element
name="adaptationValues"
type="tns:diagResultAdaptation
ValueImpl"

499725969.doc Seite 75 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

maxOccurs="unbounded" />
</xs:sequence>
Zur Konvertierung des
Listenelments siehe Abschnitt
10.1.2

10.1.2 ConditioningElement
Beschreibung
Objekt zur Rückgabe eines Anpasswertes

Verweis IDL
Plateau#ConditioningElement
Java-Signatur
public final class ConditioningElement{
public exam.Plateau.StdValue sOneStdValue
public exam.Plateau.StdValue sAllMeasuredValues[]
}

Attribute
sOneStdValue Gelesener Anpasswert.
sAllMeasuredValues[] Liste von Messwerten zum Anpasswert

Verweis Web-Service Schnittstelle


<xs:complexType name="diagResultAdaptationValueImpl">
Web-Service-Signatur
<xs:complexType name="diagResultAdaptationValueImpl">
<xs:sequence>
<xs:element name="adaptationValue" type="tns:diagResultValueImpl" />
<xs:element name="measuredValues" type="tns:diagResultValueImpl"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>

Abbildung Web-Service -> IDL


Zur Konvertierung eines diagResultValueImpl in ein StdValue-Objekt siehe Abschnitt
2.5.3.
Zu beachten ist, dass bei KWP sOneStdValue.param den Prefix „value“ in der
Rückgabestruktur enthalten muss. Beispiel sOneStdValue.param = value8
adaptationValue. Die sOneStdValue
Rückgabestruktur von
diagResultAdaptationValueImpl
ist bei UDS Steuergeräten als
Baum organisierrt. Für jedes
Blatt – Element wird ein
ConditioningElement erzeugt
measuredValues sAllMeasuredValues[]
Siehe
7.2DiagLibResultMeasuredValue

499725969.doc Seite 76 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

10.1.3 Beispiele
Lesen aller Anpasswerte eines Anpasskanals (UDS)
Aufruf der Funktion ohne Filterung

Aktion
readConditioning(“ ”, EMPTY_STRING)
Rückgabe
public final class DiagLibResultConditioning
{
public DiagLibResultBase sErrorMessage = EMPTY_LIBRESULTBASE
public sAllConditioningElements[2];
}

sAllConditioningElements[0] =
public final class ConditioningElement{
public final class StdValue {
public String param;
public String value;
public String unit;
public String text;
public String type;
public String number;
public String reserved = “”;
public String tableKey;
public String tableKeyText;
public String errorMessage;
}
public sAllMeasuredValues[] = EMPTY_LIST
}

sAllConditioningElements[1] =
public final class ConditioningElement{
public final class StdValue {
public String param;
public String value;
public String unit;
public String text;
public String type;
public String number;
public String reserved = “”;
public String tableKey;
public String tableKeyText;
public String errorMessage;
}
public sAllMeasuredValues[] = EMPTY_LIST
}

Lesen eines Anpasskanals (KWP)

Aktion
readConditioning( “value1”, EMPTY_STRING)

499725969.doc Seite 77 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Rückgabe
public final class DiagLibResultConditioning
{
public DiagLibResultBase sErrorMessage = EMPTY_LIBRESULTBASE
public sAllConditioningElements[1];
}

sAllConditioningElements[0] =
public final class ConditioningElement{
public final class StdValue {
public String param = “value1”;
public String value;
public String unit;
public String text;
public String type;
public String number;
public String reserved = “”;
public String tableKey;
public String tableKeyText;
public String errorMessage;
}
public sAllMeasuredValues[] = EMPTY_LIST
}

10.2 writeConditioning

Beschreibung
Schreiben eines Anpasswertes (KWP) bzw. mehrerer im Falle UDS. Nach der Durchführung
wird nicht automatisch ein Steuergerätereset durchgeführt.

Verweis IDL
Plateau#writeConditioning
Java-Signatur
DiagLibResultBase writeConditioning (String sAdaptionGroup,
DictionaryEntry[] adaptionParams, String sType) throws
PluginBaseException;
Parameter
sAdaptionGroup ODX-ShortName der Anpassgruppe (UDS). Für KWP wird der
Anpasskanal 1-255 gesetzt.
adaptionParams Dictionary mit zu schreibenden Anpasswerten. Für UDS
Steuergeräte ist der key eines Eintrags mit dem ODX-ShortName
des Anpasswertes zu belegen, value enthält den zu
schreibenden Wert.
KWP: Genau ein Eintrag mit key, value. Der Schlüssel hat die
Nummer des Anpasskanals aus sAdaptionGroup im Bereich 1-
255. value enthält den zu schreibenden Wert.
sType Typ des zu schreibenden Anpasswertes im Falle der Langen

499725969.doc Seite 78 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Anpassung (KWP). Für UDS nicht relevant.

Per Default wird der Anpasswert im Klartext übertragen ('string').


Je nach Steuergerät kann es darüber hinaus notwendig sein, den
Anpasswert als Hex-Wert ('bytefield') zu übertragen.

Wird nicht behandelt, da die Angabe des Typs für KWP


Steuergeräte in ODIS-E nicht benötigt wird.

UDS: Parameter wird nicht benutzt und als leer erwartet.


Rückgabe
DiagLibResultBase Fehlerbehandlung siehe Abschnitt 1.3.

Verweis Web-Service Schnittstelle


writeAdaptation
Web-Service-Signatur
<message name="writeAdaptation">
<part name="parameters" element="tns:writeAdaptation" />
</message>

Abbildung der Eingaben IDL -> Web-Service


Die Eingaben sAdaptionGroup und adaptionParams werden an den Web-Service
weitergereicht.
sAdaptionGroup => adaptationChannel
adaptionParams => adaptationValues

Abbildung der Ausgaben Web-Service -> IDL


EMPTY_LIBRESULTBASE DiagLibResultBase

10.3 readLongConditioning

Beschreibung
Lesen der langen Anpassung, nur für KWP Steuergeräte relevant. Wird diese Operation für
UDS-Steuergeräte aufgerufen, so wird eine PluginBaseException geworfen.

Verweis IDL
Plateau#readLongConditioning
Java-Signatur
DiagLibResultConditioning readLongConditioning (String sAdaptionParam)
throws PluginBaseException;
Parameter
sAdaptionParam Nummer des Anpasskanals (KWP). Für KWP können die Werte
value1 bis value255 angegeben werden.
Rückgabe
DiagLibResultConditioning Ausgelesener Anpasskanal

499725969.doc Seite 79 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Abbildung Web-Service Schnittstelle


Keine seperate Methode im Webservice. Es wird im Plateau readConditioning aufgerufen.

10.4 writeLongConditioning

Keine seperate Methode im Webservice. Es wird analog readLongConditioning im


writeConditioning innerhalb des Plateaus aufgerufen.

10.5 readAdaptionMultilink
Beschreibung
Lesen der Anpassung der angeforderten Steuergeräte.
Verweis IDL
Plateau.DiagnosticsOperations#readAdaptionMultilink()
Java-Signatur
DiagLibResultFuncValues readAdaptionMultilink (
DiagLibEcuFuncParamNamesItem[] sAdaptionEcuParamNamesList)
throws PluginBaseException;;
Parameter
sAdaptionEcuParamNamesList Liste der Steuergeräte mit den Anpassungsnamen,
die gelesen werden sollen. s. Kap.10.5.1.
Rückgabe
DiagLibResultFuncValues Struktur zur Rückgabe der Anpassungsdaten
mehrerer Steuergeräte

Verweis Web-Service Schnittstelle


readMultilinkAdaptation
Web-Service-Signatur
<message name="readMultilinkAdaptation">
<part name="parameters" element="tns:readMultilinkAdaptation"/>
</message>

Verweis Automatisierungsschnittstelle
IAdaptationInterface#readMultilinkAdaptation
Java-Signatur
List<IDiagResultAdaptation> readMultilinkAdaptation(
List<IDiagMultiAdaptionDescriptor> adaptionDescriptors)
throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


Der Parameter sAdaptionEcuParamNamesList wird auf den Parameter
adaptionDescriptors abgebildet. Für jeden Eintrag in sAdaptionEcuParamNamesList
werden so viele Descriptoren erzeugt, wie der Eintrag Anpassungsnamen enthält.

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt vom Typ DiagLibResultFuncValues erzeugt (s. Kap.10.5.2)
und zurückgegeben.
499725969.doc Seite 80 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

10.5.1 DiagLibEcuFuncParamNamesItem
Beschreibung
Eingabestruktur für das Multilink-Lesen von Messwerten oder Anpassung. Beschreibt
ein einzelnes Steuergerät und die dafür zu lesenden Messwert- bzw.
Anpassungsnamen.
Verweis IDL
Plateau# DiagLibEcuFuncParamNamesItem
Java-Signatur
public final class DiagLibEcuFuncParamNamesItem
{
public DiagLibEcuBase sEcuBase;
public String sFuncParamNames[];
}
Attribute
sEcuBase Angabe des Steuergeräts, s. Kap. 2.7.2.
sFuncParamNames[] Liste der Messwert- bzw. Anpassungsnamen.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

10.5.2 DiagLibResultFuncValues
Beschreibung
Ergebnisstruktur des Multilink-Lesens von Messwerten bzw. Anpassung.
Verweis IDL
Plateau#DiagLibResultFuncValues
Java-Signatur
public final class DiagLibResultFuncValues
{
public exam.Plateau.DiagLibResultBase sErrorMessage;
public exam.Plateau.DiagLibResultEcuFuncValuesItem sEcuFuncValues[]; }
Attribute
sErrorMessage Feld für Fehlermeldung (Steuergeräte-übergreifend).
sEcuFuncValues[] Liste der Messwert- bzw. Anpassungsdaten. Enthält
einen Eintrag für jedes angeforderte Steuergerät.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Web-Service -> IDL


Es wird genau ein Objekt DiagLibResultFuncValues für jeden Aufruf der Funktionen
readMeasuredValueMultilink bzw. readAdaptionMultilink erzeugt.
EMPTY_STRING => sErrorMessage

Die Ergebniselemente vom Typ => sEcuFuncValues[]


DiagResultMeasurementImpl bzw.
DiagResultAdaptationImpl werden nach der
enthaltenen ecuAddress zu Gruppen

499725969.doc Seite 81 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

zusammengefasst. Aus jeder dieser Gruppen wird


ein DiagLibResultEcuFuncValuesItem (s. Kap.
10.5.3) erzeugt und der Ergebnisliste
sEcuFuncValues[] hinzugefügt.

10.5.3 DiagLibResultEcuFuncValuesItem
Beschreibung
Ergebnis des Multilink-Lesens von Messwerten bzw. Anpassung für ein einzelnes
Steuergerät.
Verweis IDL
Plateau#DiagLibResultEcuFuncValuesItem
Java-Signatur
public final class DiagLibResultEcuFuncValuesItem
{
public DiagLibEcuBase sEcuBase;
public DiagLibResultBase sErrorMessage;
public DiagLibResultFuncValuesItem sFuncs[];
}
Attribute
sErrorMessage Feld für Fehlermeldung zu diesem Steuergerät
sEcuBase Identifiziert das Steuergerät, von dem diese Messwerte
bzw. Anpassungsdaten stammen.
sFuncs Die angeforderten Messwerte bzw. Anpassungsdaten
des Steuergeräts.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt DiagLibResultEcuFuncValuesItem für jedes angeforderte
Steuergerät erzeugt.
Ecu-Adresse und -Linkname aus => sEcuBase
IDiagResultMeasuement bzw. IDiagResultAdaptation
Errormessage aus IDiagResultMeasuement bzw. => sErrorMessage
IDiagResultAdaptation
Für jedes in der Gruppe enthaltene Element vom => sFuncs
Typ DiagResultMeasurementImpl bzw.
DiagResultAdaptationImpl wird ein
DiagLibResultFuncValuesItem erzeugt (s. Kap.
10.5.4) und an die Liste sFuncs angehängt.

10.5.4 DiagLibResultFuncValuesItem
Beschreibung
Einzelergebnis des Multilink-Lesens von Messwerten oder Anpassung eines
Steuergeräts. Enthält die Daten für eine einzelne Messwertegruppe bzw. einen
Anpassungsnamen.
Verweis IDL

499725969.doc Seite 82 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Plateau#DiagLibResultFuncValuesItem
Java-Signatur
public final class DiagLibResultFuncValuesItem
{
public exam.Plateau.DiagLibResultBase sErrorMessage;
public String sFuncName;
public exam.Plateau.StdFuncValue sStdFuncValues[];
}
Attribute
sErrorMessage Feld für Fehlermeldung zu dieser Messwertegruppe bzw.
diesem Anpassungsnamen.
sFuncName Messwertegruppe bzw. Anpassungsname.
sStdFuncValues Messwerte bzw. Anpassungswerte.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt DiagLibResultFuncValuesItem zu jedem erhaltenen Ergebnis
für dieses Steuergerät erzeugt.
IDiagResult[Measurement| => sErrorMessage
Adaptation].getErrorMessage
IDiagResultMeasurement.getMeasurementGroup => sFuncName
Bzw.
IDiagResultAdaptation.getTableKeyText
Aus jedem IDiagResult wird ein Objekt vom Typ => sStdFuncValues
StdFuncValue erzeugt und an sStdFuncValues
angehängt.

10.5.5 StdFuncValue
Beschreibung
Erweiterte Fassung des Typs StdValue (s. Kap. 2.5.3) zur Abbildung eines
IDiagResultValues. Der StdFuncValue enthält neben allen Attributen des StdValue
zusätzlich noch ein Attribut paramOdxPath. Da die IDL keine Vererbungsmöglichkeit für
Strukturen unterstützt, wurde StdFuncValue als erweiterte Kopie von StdValue
implementiert.
Verweis IDL
Plateau#StdFuncValue
Java-Signatur
public final class StdFuncValue
{
public String paramOdxPath;
public String param;
public String value;
public String unit;
public String text;
public String type;
public String number;
public String reserved;

499725969.doc Seite 83 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

public String tableKey;


public String tableKeyText;
public String errorMessage;
}
Attribute
paramOdxPath ODX-Pfad zur eindeutigen Identifizierung eines Werts.
ecuId Zugehörige Steuergeräteadresse
Alle anderen Attribute s. Typ StdValue (Kap. 2.5.3)

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Automatisierung -> IDL


Die Befüllung der Attribute, die auch im Typ StdValue verwendet werden, ist dort
beschrieben. Während der Analyse der Baumstruktur des IDiagResultValue wird der
Pfad zum Blattknoten ermittelt und im Attribut paramOdxPath eingetragen.

10.6 writeAdaptionMultilink
Beschreibung
Schreiben der Anpassung der angeforderten Steuergeräte.
Verweis IDL
Plateau.DiagnosticsOperations#writeAdaptionMultilink()
Java-Signatur
DiagLibEcuFuncResults writeAdaptionMultilink (
DiagLibEcuAdaptionParamValuesItem[] sAdaptionEcuParamValuesList)
throws PluginBaseException;
Parameter
sAdaptionEcuParamValuesList Liste der Steuergeräte mit den zu schreibenden
Anpasswerten. s. Kap.10.6.1.
Rückgabe
DiagLibEcuResults Struktur zur Rückgabe einfacher Ergebnisse für
Multilink-Aufrufe, s. Kap. 2.7.4.
Verweis Web-Service Schnittstelle
writeMultilinkAdaptation
Web-Service-Signatur
<message name="writeMultilinkAdaptation">
<part name="parameters" element="tns:writeMultilinkAdaptation"/>
</message>
Verweis Automatisierungsschnittstelle
IAdaptationInterface# writeMultilinkAdaptation
Java-Signatur
List<IDiagResultMulti> writeMultilinkAdaptation(
List<IDiagMultiAdaptionValueDescriptor> adaptationValueDescriptors)
throws DiagException;

Abbildung der Eingaben IDL -> Automatisierung


Der Parameter sAdaptionEcuParamValuesList wird auf den Parameter

499725969.doc Seite 84 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

adaptationValueDescriptors abgebildet. Für jeden Eintrag in


sAdaptionEcuParamValuesList werden so viele Descriptoren erzeugt, wie der Eintrag
Anpassungsnamen enthält.

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt vom Typ DiagLibEcuResults erzeugt (s. Kap. 2.7.4) und
zurückgegeben.

10.6.1 DiagLibEcuAdaptionParamValuesItem
Beschreibung
Eingabestruktur für das Multilink-Schreiben von Anpassungen. Beschreibt ein einzelnes
Steuergerät und die dafür zu schreibenden Anpassungen.
Verweis IDL
Plateau#DiagLibEcuAdaptionParamValuesItem
Java-Signatur
public final class DiagLibEcuAdaptionParamValuesItem
{
public DiagLibEcuBase sEcuBase;
public DiagLibAdaptionParamValuesItem sFuncs[];
}
Attribute
sEcuBase Angabe des Steuergeräts, s. Kap. 2.7.2.
sFuncs[] Liste der Anpassungen für die einzelnen Subsysteme, s.
Kap.10.6.2.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

10.6.2 DiagLibAdaptionParamValuesItem
Beschreibung
Eingabestruktur für das Multilink-Schreiben von Anpassungen. Beschreibt eine einzelne
Anpassung und die dafür zu schreibenden Anpasswerte.
Verweis IDL
Plateau#DiagLibCodingParamValuesItem
Java-Signatur
public final class DiagLibAdaptionParamValuesItem
{
public String sAdaptionName;
DiagLibParamValueItem sParamValues[];
}
Attribute
sAdaptionName Name der Anpassung
sParamValues[] Die Anpasswerte als Liste von Name/Wert-Paaren.

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden.

499725969.doc Seite 85 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

11. Grundeinstellung
11.1 basicSettings

Beschreibung
Durchführen der Grundeinstellung

Verweis IDL
Plateau#basicSettings
Java-Signatur
DiagLibResultBasicSettings basicSettings(String sType, String sParam,
DictionaryEntry[] sRequestStartParam, String[]
sRequestMeasuredValueList) throws PluginBaseException

DiagLibResultBasicSettings2 basicSettings2(String sType, String sParam,


DictionaryEntry[] sRequestStartParam, RequestedMeasurementValue[]
sRequestMeasuredValueList) throws PluginBaseException

Parameter
sType Gibt an, welche Aktion der Grundeinstellung
durchgeführt werden soll. Es sind folgende Werte
definiert:
ACTION_START
ACTION_STOP
ACTION_NEXT
ACTION_CHECK
sParam ODX-ShortName (UDS) oder Nummer (KWP) der
Grundeinstellung. Für KWP sind die Nummern 1 – 255
definiert. Der Parameter ist nur relevant, wenn
sType == ACTION_START.
sRequestStartParam Schlüssel / Wert Paare der Startparameter, nur bei UDS
relevant und nur wenn sType == ACTION_START.
sRequestMeasuredValueLis Liste der Messwerte, die in der Rückgabestruktur
t geliefert werden sollen. Nur für UDS relevant und nur
wenn sType == ACTION_START.
Rückgabe
DiagLibResultBasicSettin Status der Grundeinstellung und gelesene Messwerte
gs
DiagLibResultBasicSettin Status der Grundeinstellung und gelesene Messwerte
gs2
(Messwerte enthalten zusätzlich SG-Adresse u. ODX-
Pfad)

Verweis Web-Service Schnittstelle


basicSettingInit
basicSetting2Init
basicSettingStart

499725969.doc Seite 86 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

basicSettingNext
basicSettingStop
basicSettingCheck
basicSettingAbort
Web-Service-Signatur
<message name="basicSettingInit">
<part name="parameters" element="tns:basicSettingInit" />
</message>

<message name="basicSetting2Init">
<part name="parameters" element="tns:basicSettingInit" />
</message>

<message name="basicSettingStart">
<part name="parameters" element="tns:basicSettingStart" />
</message>

<message name="basicSettingNext">
<part name="parameters" element="tns:basicSettingNext" />
</message>

<message name="basicSettingStop">
<part name="parameters" element="tns:basicSettingStop" />
</message>

<message name="basicSettingCheck">
<part name="parameters" element="tns:basicSettingCheck" />
</message>

<message name="basicSettingAbort">
<part name="parameters" element="tns:basicSettingAbort" />
</message>

Abbildung der Eingaben IDL -> Web-Service Schnittstelle


Der Wert des Eingabeparameters sType legt fest, welche Funktion der
Automatisierungsschnittstelle aufgerufen wird. Er wird nicht an die Funktionen weitergereicht.
Die Parameter sParam, sRequestStartParam und sRequestMeasuredValueList werden an
die Funktion basicSettingInit weitergegeben.
sType == <xs:element name="basicSettingInit"
ACTION_START type="tns:basicSettingInit" />

<xs:complexType name="basicSettingInit">
<xs:sequence>
<xs:element name="basicSettings"
type="tns:diagDescriptorWithParametersAndMeasureme
ntsImpl" maxOccurs="unbounded" />
<xs:element name="measurements" type="xs:string"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>

499725969.doc Seite 87 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

diagDescriptorWithParametersAndMeasurementsImpl
wird gefüllt mit sParam, sRequestStartParam und
einer leeren Messwertliste.

Measurements enthält sRequestMeasuredValueList

basicSettingStart Aufruf mit leerer Liste


sType ==
ACTION_STOP 1.1 basicSettingStop Aufruf mit leerer Liste
sType ==
ACTION_CHECK 1.2 basicSettingCheck Aufruf mit leerer Liste
sType == basicSettingNext
ACTION_NEXT

Abbildung der Ausgaben Web-Service -> IDL


Der Returnwert DiagLibResultBasicSettings(2) des Aufrufs von basicSettings(2) wird
aus der Automatisierungsmethode List<IDiagResultStatus> basicSettingStart()
erzeugt. Die Funktion gibt in Abhängigkeit vom Steuergerät unterschiedliche Ergebnisse
zurück.

UDS:
Die Liste enthält immer zwei Elemente. Das erste Element enthält den Gesamtstatus der
Grundeinstellung, sowie die Ergebnisse der Messwerte aus sRequestMeasuredValueList.
Das zweite Element bezieht sich auf sParam und liefert den Einzelstatus der Grundeinstellung.

KWP:
Die Liste enthält genau ein Element, welches auf ein DiagLibResultBasicSettings
abgebildet wird

Für UDS und KWP gelten unterschiedliche Abbildungsvorschriften bedingt durch die Anzahl
der Rückgabeelemente. In Abschnitt 11.2 ist die Abbildung auf das
DiagLibResultBasicSettings unter Berücksichtigung der Listenelemente beschrieben.

11.2 DiagLibResultBasicSettings

Beschreibung
Objekt zur Rückgabe von Status und Messwerten der Grundeinstellung

Verweis IDL
Plateau#DiagLibResultBasicSettings
Java-Signatur
public final class DiagLibResultBasicSettings{
public DiagLibResultBase sErrorMessage;
public StdValue sOneStdValue;
public StdValue sAllMeasuredValues[];
}
499725969.doc Seite 88 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Attribute
sErrorMessage Rückgabe einer negativen Antwort vom Steuergerät
sOneStdValue Statuswert der Grundeinstellung
sAllMeasuredValues[] Liste von Messwerten zur Grundeinstellung
Abweichen zu Abschnitt 2.5.3 sind für das Attribut sOneStdValue folgende Felder definiert.
sOneStdValue.param ODX-ShortName (UDS) oder Nummer (KWP) der
Grundeinstellung 1-255 ohne Prefix.
sOneStdValue.value Aktueller (Gesamt-)Status der Grundeinstellung. Keine
Abbildung auf die Werte -1 / 1.
Im Fall eines UDS-Steuergerätes der ODX-ShortName
vom Gesamtstatus.
sOneStdValue.unit EMPTY_STRING
sOneStdValue.text Im Fall eines UDS-Steuergerätes der ODX-ShortName
vom Gesamtstatus, ansonsten leer.
sOneStdValue.type TYPE_STRING (wird aber nicht ausgewertet)
sOneStdValue.number EMPTY_STRING
sOneStdValue.reserved EMPTY_STRING
sOneStdValue.tableKey EMPTY_STRING Table key der Grundeinstellung
(UDS)
sOneStdValue.tableKeyTex EMPTY_STRING Übersetzung des Table keys (UDS)
t
sOneStdValue.errorMessag EMPTY_STRING
e

Verweis Automatisierungsschnittstelle
vehiclefunction.automation.types#IDiagResultStatus
Java-Signatur
public interface IDiagResultStatus{
public String getName();
public String getStatus();
public List<IDiagResultValue> getMeasuredValues();
}

Abbildung Automatisierung -> IDL


KWP:
IDiagResultStatus.getName sOneStdValue.param
Mapping von sOneStdValue.value
IDiagResultStatus.getStatus
(siehe unten)
EMPTY_STRING sOneStdValue.text
EMPTY_STRING sOneStdValue.type
IDiagResultStatus.getMeasuredV sAllMeasuredValues[]
alues()
Zur Konvertierung siehe 2.5.3
UDS: Die Angaben in eckigen Klammer [ ] bezeichnen das jeweilige Listenelement
siehe auch Abschnitt 11.1 Punkt Abbildung der Ausgaben
IDiagResultStatus[1].getName sOneStdValue.param
IDiagResultStatus[0].getStatus sOneStdValue.value

499725969.doc Seite 89 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

EMPTY_STRING sOneStdValue.text
EMPTY_STRING sOneStdValue.type
IDiagResultStatus[0].getMeasur sAllMeasuredValues[]
edValues()
Zur Konvertierung siehe 2.5.3

Auszug aus EXAM_TA

KWP Wert des Parameters 'Status': sOneStdValue.value

Status Beschreibung
ECU_InGE Das Fahrzeugsystem befindet sich in der Grundeinstellung.
ECU_InGE_Weite Das Fahrzeugsystem befindet sich in der Grundeinstellung. Der Tester
r muss die Gruppennummer um eins erhöhen.
ECU_NichtInGE Das Fahrzeugsystem befindet sich nicht in der Grundeinstellung.
ECU_Abgebroche
Die Grundeinstellung wurde vom Fahrzeugsystem abgebrochen.
n

12. Hex-Service
12.1 sendRawService

Beschreibung
Sendet Rohdaten an das Steuergerät.

Verweis IDL
Plateau#sendRawService
Java-Signatur
DiagLibResultPlain sendRawService(String sServiceID, String
sRdIdentifier, String sValue) throws PluginBaseException
Parameter
sServiceID Service Id des Diagnosedienstes
sRdIdentifie Routine Identifier zu dem Service
r
sValue Zusätzlicher Hex-Wert, Parameter des Hex-Services
Rückgabe
DiagLibResultPla Rückgabe der Antwort, zum Aufbau siehe Abschnitt 2.5.2
in

Verweis Web-Service Schnittstelle


sendRawService
Web-Service-Signatur
<message name="sendRawService">
<part name="parameters" element="tns:sendRawService" />

499725969.doc Seite 90 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

</message>

Abbildung der Eingaben IDL -> Web-Service


Die Parameter sServiceID, sRdIdentifier und sValue werden zusammengefügt und
an die Funktion der Automatisierungsschnittstelle weitergegeben.
sServiceID + “ “ + => requestPduString
sRdIdentifier + “ “ + sValue

Abbildung der Ausgaben Web-Service -> IDL


Rückgabe von sendRawService als String => DiagLibResultPlain.value
TYPE_BYTEFIELD => DiagLibResultPlain.type
EMPTY_STRING => DiagLibResultPlain.reserved
EMPTY_LIBRESULTBASE => DiagLibResultPlain.sErrorMessage

13. Flashen
13.1 checkFlashProgramming
Beschreibung
Prüfung, ob der angegebene Flashcontainer flashbar ist.

Verweis IDL
Plateau#checkFlashProgramming
Java-Signatur
public DiagLibResultPlain checkFlashProgramming(final String sLabelPath,
final String sContainerPath, final String sSession) throws
PluginBaseException
Parameter
sLabelPath Wird nicht ausgewertet (VAS5163-spezifischer Parameter).
sContainerPat Voll qualifizierter Dateiname.
h
sSession KWP: EMPTY_STRING
UDS: ODX-ShortName der Flash-Session

Wird als Wert ein Leerstring angegeben, so wird dies so interpretiert


als wenn keine Session übergeben wurde.
Rückgabe
DiagLibResultPla Rückgabe der Antwort, zum Aufbau siehe Abschnitt 2.5.2
in String value: Wert „1“ falls Methode der
Automatisierungsschnittstelle true liefert, ansonsten „-1“
String type: „int“ In jedem Fall.
String reserved: EMPTY_STRING In jedem Fall.
String sErrorMessage.errorMessage: Beschreibende Meldung im
Falle, dass die Automatisierungsschnittstelle false liefert.
String sErrorMessage.reserved: EMPTY_STRING In jedem Fall.

Verweis Web-Service Schnittstelle


checkFlashProgrammingWithFlashContainer
Web-Service-Signatur
499725969.doc Seite 91 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

<message name="checkFlashProgramming">
<part name="parameters" element="tns:checkFlashProgramming" />
</message>

Abbildung der Eingaben IDL -> Web-Service


Der Parameter wird sLabelPath ignoriert
sContainerPath => containerFileName
sSession => sessionName

Abbildung Web-Service -> IDL

Wert „1“ falls Methode der => DiagLibResultPlain.value


Automatisierungsschnittstelle true liefert,
ansonsten „-1“
TYPE_INT => DiagLibResultPlain.type
EMPTY_STRING => DiagLibResultPlain.reserved
EMPTY_LIBRESULTBASE => DiagLibResultPlain.sErrorMessage
Beschreibende Meldung im Falle, dass die
Automatisierungsschnittstelle false liefert

13.2 flashProgramming
Beschreibung
Flashen eines Flashcontainers.

Verweis IDL
Plateau#flashProgramming
Java-Signatur
DiagLibResultBase flashProgramming(final String sLabelPath, final String
sContainerPath, final String sSession) throws PluginBaseException
Parameter
sLabelPath Wird nicht ausgewertet (VAS5163-spezifischer Parameter).
sContainerPa Voll qualifizierter Dateiname.
th
sSession KWP: EMPTY_STRING
UDS: ODX-ShortName der Session

Wird als Wert ein Leerstring angegeben, so wird dies so interpretiert als
wenn keine Session übergeben wurde.
Rückgabe
DiagLibResultBa Rückgabe von Fehlermeldungen siehe Abschnitt 1.3
se

Verweis Web-Service Schnittstelle


IFlashingInterface#flashProgramming
Web-Service-Signatur
<message name="checkFlashProgramming">
<part name="parameters" element="tns:checkFlashProgramming" />
499725969.doc Seite 92 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

</message>

Abbildung der Eingaben IDL -> Web-Service


Der Parameter wird sLabelPath ignoriert
sContainerPath => containerFileName
sSession => sessionName

Abbildung Web-Service -> IDL


EMPTY_LIBRESULTBASE => DiagLibResultBase

14. Datensatz
14.1 dataSetDownload
Beschreibung
Die Methode schreibt einen Datensatz in Form einer XML-Datei oder Zip-Archives auf
das Steuergerät.

Verweis IDL
Plateau#dataSetDownload
Java-Signatur
DiagLibResultBase dataSetDownload(String sDataSetFile) throws
PluginBaseException
Parameter
sDataSetFile Absolute Pfadangabe zur XML-Datei
Rückgabe
DiagLibResultBa Rückgabe von Fehlermeldungen siehe Abschnitt 1.3
se
Dabei enthält DiagLibResultBase.errorMessage den evtl. aufgetretenen Fehler im
Format: <Error-ID> - <Fehlertext>

Die folgenden Error-IDs können dabei zurückgeliefert werden:


ODS3001E: Datensatz-Datei wurde nicht gefunden
ODS3006E: Falsches Format der Datensatz-Datei
ODS3014E: Fehler beim Entpacken der Datei
ODS3015E: Datensatz-Datei enthält keine Steuerungsdatei
ODS3021E: Fehlender Flash-Container
ODS3022E: Fehler beim Laden eines Flash-Containers
ODS6922E: Negatives Ergebnis bei Konsistenzprüfung
ODS6923E: Aktuelle Steuergeräteadresse nicht in Steuerungsdatei enthalten
ODS6999E: Fehler bei Ausführung des MCD-Jobs
Verweis Web-Service Schnittstelle
IWriteDatasetInterface#dataSetDownload
Web-Service-Signatur
<message name="dataSetDownload">
<part name="parameters" element="tns:dataSetDownload" />
</message>

499725969.doc Seite 93 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Abbildung der Eingaben IDL -> Web-Service


sDataSetFile => xmlFilePath

Abbildung der Ausgaben Web-Service -> IDL


EMPTY_LIBRESULTBASE => DiagLibResultBase

15. Transportmodus
15.1 enableTransportMode
Beschreibung
Die Methode aktiviert den Transportmodus.

Verweis IDL
Plateau#enableTransportMode
Java-Signatur
DiagLibResultBase enableTransportMode() throws PluginBaseException
Rückgabe
DiagLibResultBa Rückgabe von Fehlermeldungen siehe Abschnitt 1.3
se

Verweis Web-Service Schnittstelle


enableTransportMode
Web-Service-Signatur
<message name="enableTransportMode">
<part name="parameters" element="tns:enableTransportMode" />
</message>

Abbildung der Ausgaben Web-Service -> IDL


EMPTY_LIBRESULTBASE => DiagLibResultBase

15.2 disableTransportMode
Beschreibung
Die Methode deaktiviert den Transportmodus.

Verweis IDL
Plateau#disableTransportMode
Java-Signatur
DiagLibResultBase disableTransportMode() throws PluginBaseException
Rückgabe
DiagLibResultBas Rückgabe von Fehlermeldungen siehe Abschnitt 1.3
e

Verweis Web-Service Schnittstelle


disableTransportMode
Web-Service-Signatur
<message name="disableTransportMode">

499725969.doc Seite 94 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

<part name="parameters" element="tns:disableTransportMode" />


</message>

Abbildung der Ausgaben Web-Service -> IDL


EMPTY_LIBRESULTBASE => DiagLibResultBase

16. Versionen
16.1 getODXVersions
Beschreibung
Liefert eine Liste von verfügbaren Projekten mit zugehörigen Versions-Informationen

Verweis IDL
Plateau#getODXVersions
Java-Signatur
DiagLibResultStdValueSeq getODXVersions() throws PluginBaseException
Rückgabe
DiagLibResultStdValueS Liste der verfügbaren Projekte. Zur Beschreibung siehe
eq des Typs siehe Abschnitt 2.5.4
Abweichend zu Abschnitt 2.5.3 wird ein StdValue wie folgt befüllt:
param Name des Projektes
value Version des Projektes
unit EMPTY_STRING
text Datum des Projektes
type Hier immer TYPE_STRING
number EMPTY_STRING
reserved Zustand des Projektes z.B. RELEASE
tableKey EMPTY_STRING
tableKeyTe EMPTY_STRING
xt
errorMessa Fehlermeldung
ge

Verweis Web-Service Schnittstelle


getODXVersions
Web-Service-Signatur
<message name="getODXVersions">
<part name="parameters" element="tns:getODXVersions" />
</message>

Abbildung der Ausgaben Web-Service -> IDL


EMPTY_LIBRESULTBASE => DiagLibResultStdValueSeq.
sErrorMessage
Für jedes Listenelement wird ein StdValue Objekt erzeugt. Abbildung wie folgt:
IDiagResultODXVersion.getName() => stdValue.param
IDiagResultODXVersion.getRevision() => stdValue.value
EMPTY_STRING => stdValue.unit
IDiagResultODXVersion.getDate() => stdValue.text
499725969.doc Seite 95 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

TYPE_STRING => stdValue.type


EMPTY_STRING => stdValue.number
IDiagResultODXVersion.getState() => stdValue.reserved
EMPTY_STRING => stdValue.tableKey
EMPTY_STRING => stdValue.tableKeyText
IDiagResultODXVersion.getErrorFlag() => stdValue.errorMessage

17. Zugriffsberechtigung
17.1 logInECU

Beschreibung
Führt Zugriffsberechtigung durch.

Verweis IDL
Plateau#logInECU
Java-Signatur
DiagLibResultBase logInECU(String sLoginCode, String sAccessMode) throws
PluginBaseException
Parameter
sLoginCode Integer Logincode als String
sAccessMode Zugriffsstufe. Folgende Werte sind definiert:
UDS: { „Login“, „System Specific“}
Für UDS-Steuergeräte wird der ODX-ShortName der jeweiligen
Zugriffsmethode verwendet:
{ DiagnServi_SecurAccesRequeSeedLogin,
DiagnServi_SecurAccesRequeSeedSysteSpeci }
KWP: { „automatic“, „level34“, „level56“, „coding2“ }
Rückgabe
DiagLibResultBas Siehe 1.3 Behandlung von Exceptions (z.B. bei ungültigem
e sAccessMode)

Verweis Web-Service Schnittstelle


securityAccess
Web-Service-Signatur
<message name="securityAccess">
<part name="parameters" element="tns:securityAccess" />
</message>

Abbildung der Eingaben IDL -> Automatisierung


Beim Aufruf der Automatisierungsmethode werden die Parameter weiter durchgereicht.

499725969.doc Seite 96 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

18. Sammeldienst Ereignisspeicher


18.1 eraseAllFaultMemories
Beschreibung
Löscht alle Ereignisspeichereinträge.

Verweis IDL
Plateau#eraseAllFaultMemories
Java-Signatur
DiagLibResultBase eraseAllFaultMemories() throws PluginBaseException
Rückgabe
DiagLibResultBa Siehe 1.3 Behandlung von Exceptions
se

Verweis Web-Service Schnittstelle


resetAllEventMemories
Web-Service-Signatur
<message name="resetAllEventMemories">
<part name="parameters" element="tns:resetAllEventMemories" />
</message>

18.2 interrogateAllFaultMemories
Beschreibung
Lesen aller Ereignisspeichereinträge

Verweis IDL
Plateau#interrogateAllFaultMemories
Java-Signatur
DiagLibResultAllFaultMemories interrogateAllFaultMemories() throws
PluginBaseException
Rückgabe
DiagLibResultAllFaultMemorie Siehe 18.3 DiagLibResultAllFaultMemories
s

Verweis Web-Service Schnittstelle


readAllEventMemories
Web-Service-Signatur
<message name="readAllEventMemories">
<part name="parameters" element="tns:readAllEventMemories" />
</message>

Abbildung Ausgaben Web-Service -> IDL


Siehe 18.3 DiagLibResultAllFaultMemories

499725969.doc Seite 97 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

18.3 DiagLibResultAllFaultMemories

Beschreibung
Ergebnisstruktur zum Lesen aller Ereignisspeichereinträge
Verweis IDL
Plateau#DiagLibResultAllFaultMemories
Java-Signatur
public final class DiagLibResultAllFaultMemories
{
public exam.Plateau.DiagLibResultBase sErrorMessage;
public exam.Plateau.CollectiveFaultMemoryItem sAllFaultMemories[];
}
Attribute
sErrorMessage Feld für Fehlermeldung.
sAllFaultMemories[] Liste der Ereignisspeichereinträge

Verweis Web-Service Schnittstelle


Keine Entsprechung in der Web-Service Schnittstelle vorhanden

Abbildung Automatisierung -> IDL


Es wird genau ein Objekt DiagLibResultAllFaultMemories für jeden Aufruf der Funktion
interrogateAllFaultMemories erzeugt. Die Attribute werden wie folgt gefüllt.
Liste der Steuergeräte => DiagLibResultAllFaultMemories.sErrorMessage
bei denen Fehler
aufgetreten sind.
Folge von [EcuId=XY]

Für jedes => DiagLibResultAllFaultMemories.


Ergebniselement aus sAllFaultMemories[]
readAllEventMemories
wird die Konvertierung
aus Abschnitt 18.4
durchgeführt und der
Ergebnisliste
sAllFaultMemories[]
hinzugefügt.

18.4 CollectiveFaultMemoryItem
Beschreibung
Ergebnisstruktur für einen Ereignisspeichereintrag des Sammeldienstes
Verweis IDL
Plateau#CollectiveFaultMemoryItem
Java-Signatur
public final class CollectiveFaultMemoryItem
{
public String ecuId;
public String ecuName;
public String subSystem;
499725969.doc Seite 98 von 101
Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

public String protocol;


public String variant;
public String baseVariant;
public exam.Plateau.DiagLibResultFaultMemory faultMemory;
}
Attribute
ecuId Steuergeräteadresse
ecuName Bezeichnung des Steuergerätes, wie er vom Tester angezeigt
wird. Z.B.: „01 Motorsteuergerät“ (sprachabhängig)
subSystem EMPTY_STRING
protocol EMPTY_STRING
variant EMPTY_STRING
baseVariant EMPTY_STRING
faultMemory Liste der Ereignisspeichereinträge

Verweis Web-Service Schnittstelle


<xs:complexType name="diagResultEventMemoryImpl">

Web-Service-Signatur
<xs:complexType name="diagResultEventMemoryImpl">
<xs:sequence>
<xs:element name="ecuId" type="xs:int" />
<xs:element name="errorMessage" type="xs:string" />
<xs:element name="eventMemoryEntries"
type="tns:diagResultEventMemoryEntryImpl" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>

Abbildung Web-Service -> IDL


diagResultEventMemoryImpl.ecuI => CollectiveFaultMemoryItem.ecuId
d
diagResultEventMemoryImpl.ecuN => CollectiveFaultMemoryItem.ecuName
ame
EMPTY_STRING => CollectiveFaultMemoryItem.subSystem
EMPTY_STRING => CollectiveFaultMemoryItem.protocol
EMPTY_STRING => CollectiveFaultMemoryItem.variant
EMPTY_STRING => CollectiveFaultMemoryItem.baseVariant
Für jedes Element aus => CollectiveFaultMemoryItem.faultMemory
diagResultEventMemoryEntryImpl
Konvertierung nach Abschnitt
6.1.1.

18.5 eraseAllOBDFaultMemories

Beschreibung
Löschten aller OBD Ereignisspeichereinträge.

499725969.doc Seite 99 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

Verweis IDL
Plateau#eraseAllOBDFaultMemories
Java-Signatur
DiagLibResultBase eraseAllOBDFaultMemories () throws PluginBaseException
Rückgabe
DiagLibResultBa Siehe 1.3 Behandlung von Exceptions
se

Verweis Web-Service Schnittstelle


resetAllOBDFaultMemories
Web-Service-Signatur
<message name="resetAllOBDFaultMemories">
<part name="parameters" element="tns:resetAllOBDFaultMemories" />
</message>

19. switchSession

Beschreibung
Sitzungswechsel.

Verweis IDL
Plateau#switchSession
Java-Signatur
public DiagLibResultBase switchSession(String sDiagSession) throws
PluginBaseException
Parameter
sDiagSess In die zu wechselnde Session.
ion
Rückgabe
DiagLibResultBase Siehe 1.3 Behandlung von Exceptions

Verweis Web-Service Schnittstelle


switchSession
Web-Service-Signatur
<message name="switchSession">
<part name="parameters" element="tns:switchSession" />
</message>
Abbildung der Eingaben IDL -> Web-Service
Der Parameter wird ohne Änderungen an die Web-Schnittstelle
weitergereicht.

20. Implementierung nicht erforderlich


Für die hier aufgelisteten Funktionen wird keine Implementierung angeboten. Der Aufruf
einer Funktion wirft eine PluginBaseException mit dem Grund "Function not implemented".

createReporting(String[], boolean)

499725969.doc Seite 100 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit
Abbildung der EXAM-IDL auf die Web-Service
Schnittstelle von ODIS-Engineering

sendCommand(Plateau.keyValue[])
Any getData () throws PluginBaseException
byte[] fetchFile (String sFileName) throws PluginBaseException
DiagLibResultStdValueSeq getSGBDVersions() throws PluginBaseException
DiagLibResultStdValueSeq callFunctionOnService(String sService, String
sFunction) throws PluginBaseException
DiagLibResultDataSetSeq getConfiguration() throws PluginBaseException
DiagLibResultStdValueSeq getEcusInVehicleProject(String
sVehicleProject) throws PluginBaseException
String[] getVehicleProjects() throws PluginBaseException
DiagLibResultDataSetSeq transparentService (String sDiagService,
String sDiagServiceParam) PluginBaseException

21. Vorlage

Beschreibung

Verweis IDL
Plateau#
Java-Signatur

Parameter
Param1
Rückgabe
void

Verweis Automatisierungsschnittstelle
IConnectionInterface#
Java-Signatur
void setVehicleProject(final String projectName) throws DiagException

Abbildung der Eingaben IDL -> Automatisierung

Param1 => param1

Abbildung der Ausgaben -> IDL

499725969.doc Seite 101 von 101


Version 4.2.0 Stand: 05.11.2018 Status: in Arbeit