Unterstützte Dateiformate¶
Momentan unterstützt trace.check die folgenden Dateiformate für die Traceanalyse:
Format |
Dateiendung |
Version |
Hersteller |
Softwareprodukte (Auswahl) |
|---|---|---|---|---|
.astrace |
||||
.as3trace |
||||
.asc |
||||
.wav, .flac, .mp3, .ogg |
||||
.blf |
||||
.erg, .erg.info |
||||
.csv |
||||
.dlt |
||||
.hdf5 |
5.0, 5.1 |
|||
keine |
3, 4 |
Datenlogger der GL-Familie |
||
.mat |
Level 5 MAT-File Format |
|||
.mat |
||||
.mat |
||||
.dat |
2.0, 3.0, 3.1, 3.2, 3.3 |
|||
.dat |
||||
.dat |
||||
.mdf |
||||
.mdf |
||||
.mdf |
||||
.mf4 |
4.0, 4.1, 4.2 |
|||
.mf4 |
||||
.osi, .osi.info .txt, .txt.info |
3.5.0 |
|||
.parquet, .pqt |
||||
.pcap, .pcapng |
||||
.zip |
4, 5, 6, 7, 8, 9 |
|||
.rdb |
||||
.sti, .stz- |
2.0.1 |
|||
.tdms |
||||
.ttl |
||||
.avi, .mp4, .mkv, .mts, .wmv |
Generische Unterstützung durch OpenCV |
Folgend sind nähere Informationen zu den Formaten aufgeführt. Der Punkt Parametrierung des Parsers beschreibt für jedes Format die Bedeutung des Gerätebezeichners und der Formatdetails.
ASC, BLF
- Unterstützte Feldbussysteme
trace.check unterstützt die Bussysteme CAN, FlexRay sowie eingeschränkt CAN FD und LIN und Ethernet (nur BLF).
Außerdem wird die Extraktion und Interpretation von Diagnose-Botschaften (aktuell nur CAN (FD)) mittels DIAG-SERVICE-Größen unterstützt. Siehe Diagnostics related objects of trace analysis für den Aufbau der Werte.
- Ausgelesene Frames
Bei CAN werden die in der Formatspezifikation definierten Ereignisse CAN (Extended) Message Event und CAN Error Frame ausgelesen, alle anderen Frames werden nicht betrachtet.
Bei ASC und BLF mit FlexRay wird das sogenannte FlexRay Message Event sowohl im „alten“, als auch im „neuen“ Format (in CANoe/CANalyzer ab Version 5.2.26) unterstützt. Null-Frames werden im MessageEvent-Signal und den veralteten Frame-Signalen grundsätzlich berücksichtigt.
Analog zu CAN können CAN-FD-Nachrichten analysiert werden. Die in der Formatspezifikation definierten Ereignisse CAN FD (Extended) Message Event, CAN FD Error Frame für ASC und CAN FD Message 64 für BLF werden ausgelesen, alle anderen Frames werden nicht betrachtet.
Es können LIN-Nachrichten analysiert werden. Die in der Formatspezifikation definierten Ereignisse LIN Message Event, LIN Sleep Mode Event, LIN Wakeup Frame und LIN Unexpected Wakeup werden ausgelesen, alle anderen Frames werden nicht betrachtet. Zu beachten ist, dass für BLF veraltete LIN-Loggings von CANoe/CANalyzer bis Version 6.0 nicht unterstützt werden.
- Nur BLF
Aus BLF-Traces können Ethernet-Nachrichten ausgelesen werden. Das in der Formatspezifikation definierte Ereignis Ethernet Packet wird unterstützt. Wie im PCAP-Format kann auf Größen der service-basierten Kommunikation zugegriffen werden.
- Multiplexing
Das Multiplexing von Frames wird sowohl bei CAN als auch bei FlexRay unterstützt. Das heißt, dass abhängig von der Multiplex-ID (diese befindet sich an einer definierten Stelle innerhalb des FramePayloads und wird nicht als Pseudosignal bereitgestellt) andere Signale in verschiedenen Frames derselben FrameID stehen. Welche Signale solch einem Multiplexing unterliegen, findet trace.check selbstständig anhand der angegebenen Signaldatenbank heraus.
- Pseudosignale
Bei den Dateiformaten ASC und BLF werden durch trace.check – neben den eigentlichen Bussignalen – auch sog. Pseudosignale zur Analyse bereitgestellt (im Reiter Tracedateien in der jeweiligen Datei unter Signale). Pseudosignale erlauben den Zugriff auf Rohdaten der Datei, ohne dass eine Signaldatenbanken geladen sein muss. Ist diese geladen, kann trace.check anhand der im Reiter BUS gelisteten Einträge konkrete Signale aus den Rohdaten extrahieren und in der Analyse bereit stellen.
Info
Die Pseudosignale sind an die Formatspezifikationen für ASC und BLF angelehnt und stellen Inhalte bereit, welche sich unmittelbar aus den Rohdaten ergeben. Es findet keine weitere Interpretation der Daten statt (d.h. keine Berechnung der Busstatistik durch trace.check).
Info
Die Ethernet Pseudosignale unter BLF unterstützen analog zu PCAP den Zugriff auf höhere Layerschichten. Für Details, siehe PCAP Pseudosignale.
Je nach auszulesenden Medium stehen unterschiedliche Pseudosignale zur Verfügung:
Signal
Beschreibung
CAN
CANFD
FlexRay
LIN
Ethernet
Datentyp
MessageEvent
Alle Arten von Frames (z.B. auch Error- und CAN-Remote-Frames).
+
+
+
+
-
ErrorEvent
Nur ASC. Fehlereinträge durch Bushardware
+
+
+
-
-
BusStatisticsEvent
Nur ASC. Statistik der Frames und Buslast
+
+
-
-
-
OverloadFrameEvent
Nur ASC. Überlastung eines Busteilnehmers
+
+
-
-
-
StartCycleEvent
Nur ASC. Start eines FlexRay-Zyklus
-
-
+
-
-
StatusEvent
Nur ASC. FlexRay-Statuseintrag
-
-
+
-
-
SleepModeEvent
Initialer Zustand oder Änderung des Sleep-Mode
-
-
-
+
-
WakeupFrame
Anfrage Wakeup
-
-
-
+
-
UnexpectedWakeup
Von CANoe/CANalyzer erkannter Fehlerzustand, wenn ein unerwartetes Byte in der Bus-Idle-Phase des aktiven Bus ein Wakeup-Frame sein könnte.
-
-
-
+
-
J1939Message
Benötigt ecu.test diagnostics. J1939-Nachricht
+
-
-
-
-
J1939DTCList
Benötigt ecu.test diagnostics. Liste von J1939-Fehlerspeichereinträgen
+
-
-
-
-
UdsMessage
Benötigt ecu.test diagnostics. Unified Diagnostics Services (UDS) Nachrichten
+
+
-
-
-
FrameID
Veraltet. Wird bei FlexRay-Error-Frame auch ausgegeben
+
+
+
+
-
Integer
FramePayload
Veraltet. Wird bei FlexRay-Error-Frame auch ausgegeben
+
+
+
+
-
String
FrameLength
Veraltet. Wird bei FlexRay-Error-Frame auch ausgegeben
+
+
+
+
-
Integer
FrameCycle
Veraltet. Wird bei FlexRay-Error-Frame auch ausgegeben
-
-
+
-
-
Integer
ErrorFrame
Veraltet. Erzeugt genau dann ein Sample mit Wert 1, wenn ein Error-Frame vorliegt.
+
+
+
-
-
Integer
ErrorFrameECC
Veraltet. Analog zu „ErrorFrame“. Wert entspricht dem ECC-Register, falls vorhanden, sonst 0.
+
+
+
-
-
Integer
PacketEthernet
Nur BLF. Jeder beliebige Ethernet-Frame in der Aufnahme
-
-
-
-
+
PacketIp
Nur BLF. Ethernet-Frame mit dem Protokolltyp IP, keine automatische Erkennung von IP-Fragmenten
-
-
-
-
+
PacketIcmp
Nur BLF. IP-Paket mit dem Protokolltyp ICMP
-
-
-
-
+
PacketTcp
Nur BLF. IP-Paket mit dem Protokolltyp TCP, keine Unterstützung von TCP-Reassembling
-
-
-
-
+
PacketUdp
Nur BLF. IP-Paket mit dem Protokolltyp UDP
-
-
-
-
+
PacketSomeIp
Nur BLF. TCP oder UDP-Paket mit dem Quell- oder Ziel-Port 30490 wird als SOME/IP-Paket interpretiert
-
-
-
-
+
PacketSomeIpSd
Nur BLF. SOME/IP-Paket mit der Message-Id 0xFFFF8100
-
-
-
-
+
PTP/PacketPtpSync
Nur BLF. Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Sync
-
-
-
-
+
PTP/PacketPtpFollowUp
Nur BLF. Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Follow_Up
-
-
-
-
+
PTP/PacketPdelayReq
Nur BLF. Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Pdelay_Req
-
-
-
-
+
PTP/PacketPdelayResp
Nur BLF. Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Pdelay_Resp
-
-
-
-
+
PTP/PacketPdelayRespFollowUp
Nur BLF. Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Pdelay_Resp_Follow_UP
-
-
-
-
+
Info
Besonderheit bei Verwendung von ErrorFrame: Standardmäßig werden für FrameID, FramePayload, FrameLength und FrameCycle nur gültige Botschaften betrachtet. Liest man jedoch auch ErrorFrame ein, werden die als Error-Frame markierten Botschaften beachtet und FrameID, FramePayload, FrameLength und FrameCycle um Samples angereichert. Innerhalb der Traceanalyse muss man ggf. selbst darauf achten, dass nur die Samples von gültige Botschaften analysiert werden (Prüfung auf ErrorFrame hinzufügen).
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Die Formatdetails dienen als Filter, um nur bestimmte Frames aus dem Trace zu lesen.
- Aufbau:
%Medium%_%Kanal%_%Richtung%[_%OptionaleParameter%](ASC) bzw.%Medium%_%Kanal%_%Richtung%_%Port%[_%OptionaleParameter%](BLF)- Medium
Der Bus, der gefiltert werden soll.
Mögliche Werte:
AUTO .. Das erste Frame im ASC wird ausgewertet und der entsprechende BUS als Medium gesetzt. (Falls das erste Frame vom Typ „CANFD“ ist, wird „CAN“ als Medium gesetzt, um gemischte Aufnahmen zu unterstützen.)
CAN ..
BLF-Format: Es werden Frames sowohl von CAN als auch CAN FD gelesen.
ASC-Format: Wird für Kanal der Wert ALL angegeben, werden Botschaften sowohl von CAN als auch CAN FD gelesen. Andernfalls wird automatisch bestimmt, ob auf dem angegebenen Kanal ein CAN oder ein CAN FD aufgezeichnet wurde. Nur passende Einträge werden gelesen.
CANFD .. Es werden nur Frames vom CAN FD gelesen (nur ASC-Format).
FlexRay .. Es werden nur Frames von FlexRay gelesen.
LIN .. Es werden nur Frames von LIN gelesen.
Ethernet .. Es werden nur Ethernet-Frames gelesen (nur BLF-Format).
- Kanal
Es werden nur Frames von diesem Kanal gelesen.
Mögliche Werte:
%Zahl% .. Die Nummer des Kanals. Gültige Werte für CAN sind 1-99; für LIN 1-64.
ALL .. Liest die Frames aller Kanäle und behandelt sie als einen einzigen Trace. Sollte nur verwendet werden, wenn mit Sicherheit davon ausgegangen werden kann, dass nur ein Kanal im ASC vorhanden ist.
- Richtung
Es werden nur Frames gelesen, die in eine bestimmte Richtung gesendet wurden.
Mögliche Werte:
Rx .. Es werden nur empfangene Frames gelesen.
Tx .. Es werden nur gesendete Frames gelesen.
RxTx .. Es werden empfangene und gesendete Frames gelesen.
- Port
UDP Port auf dem SOME/IP Service-Discovery Kontrollflussdaten versendet werden. Zum einen wird der Event-Absender anhand der in der Service-Datenbank (Fibex) hinterlegten IP-Adresse, des Transportprotokolls und des Ports gefiltert. Dabei wird der hier angegebene Port nicht betrachtet. Zum anderen wird durch Analyse der Kontrollflussdaten (SOME/IP Service-Discovery) ermittelt, von welchem Absender ein Event gesendet wird. Dabei wird der hier angegebene Port berücksichtigt.
- Optionale Parameter
Liste optionaler Parameter (die eckige Klammern stehen für „optional“ und werden nicht mit eingegeben). Parameter müssen durch
_voneinader getrennt sein.Mögliche Parameter:
idMask=%HexadezimaleZahl% .. Maske für CAN-IDs durch welche bestimmte Bits der CAN-IDs ignoriert werden können.
j1939mode .. Falls dieses Flag gesetzt ist und
idMasknicht explizit gesetzt ist, wirdidMask=0x3ffffffangewandt.
- Standard:
AUTO_ALL_RxTx(ASC) bzw.AUTO_ALL_RxTx_30490(BLF)
ASTRACE
- Dateiarten:
Der Parser unterstützt alle Arten von ASTRACE-Dateien, d.h.
solche, die durch eine Traceanalyse zur Anbindung des trace.xplorers erzeugt wurden
solche, die mit dem auto.spy analyzer aufgenommen wurden
- Signalarten:
Der Parser unterstützt alle Arten von Signalen, die in einer ASTRACE-Datei gespeichert werden können, einschließlich Videosignale.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
AS3TRACE
- Dateiarten:
Der Parser unterstützt alle Arten von AS3TRACE-Dateien, d.h.
solche, die durch eine Traceanalyse zur Anbindung des trace.xplorers erzeugt wurden
solche, die in ecu.test mit dem Tool FEP aufgezeichnet wurden
solche, die mit dem auto.spy analyzer aufgenommen wurden
- Signalarten:
Der Parser unterstützt alle Arten von Signalen, die in einer AS3TRACE-Datei gespeichert werden können, einschließlich Videosignale.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
CSV
- Signalarten
Folgende Signalarten werden unterstützt:
Interpretiert (Zahl)
Signalwerte werden in Fließkommawerte konvertiert
Eine fehlerhafte Konvertierung führt zu einem Error
Rohwert
Signalwerte werden in Unicode konvertiert
Interpretiert (Text)
Signalwerte werden in Unicode konvertiert
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Die Formatdetails enthalten Informationen über den Aufbau der CSV. Der Parser benötigt diese, um die Datei korrekt einlesen zu können.
- Aufbau:
Die Zeichenkette setzt sich aus einem oder mehreren Schlüsselwort-Wert-Paaren zusammen, wobei die Reihenfolge keine Rolle spielt. Ein Schlüsselwort-Wert-Paar wird folgendermaßen angegeben:
%Schlüsselwort%: '%Wert%'Vorsicht: Der Wert steht dabei immer in einfachen Anführungszeichen, unabhängig davon, ob der Wert ein Zeichen, eine Zeichenkette oder eine Zahl darstellt. Mehrere dieser Paare werden durch ein Komma getrennt. Folgende Schlüsselwörter können angegeben werden:
- columnSeparator
Das Zeichen, das die einzelnen Spalten voneinander trennt. Um den Tabulator als Trennzeichen anzugeben, verwenden sie als Wert
-->.Standardbelegung:
;- decimalSeparator
Das Zeichen, das die Vor- und Nachkommastellen einer Fließkommazahl voneinander trennt.
Standardbelegung:
.- thousandSeparator
Das Zeichen für die Zifferngruppierung.
Standardbelegung:
,- headLineNumber
Die Zeilennummer, in der die Spaltenüberschriften stehen (Zählung beginnt bei 0).
Wird als Wert eine -1 angegeben, so existieren keine Überschriften. Somit ist die erste Zeile in der Datei schon eine Datenzeile.
Wird ein Wert größer 0 angegeben, werden die Zeilen 0 bis headLineNumber - 1 ignoriert.
Standardbelegung:
0- timeColumn
Die Spalte, in der die Zeitstempel der Aufnahme stehen.
Handelt es sich bei dem Wert um eine Zahl, so repräsentiert sie die Spaltennummer (Zählung beginnt bei 0).
Ist der Wert eine Zeichenkette, repräsentiert er die Überschrift der Spalte.
Standardbelegung:
0
- Standard:
columnSeparator: ';', decimalSeparator: '.', thousandSeparator: ',', headLineNumber: '0', timeColumn: '0'
DLT
- Allgemein
DLT (AUTOSAR-Standard „Diagnostic Log and Trace“)-Dateien (.dlt) enthalten aufgezeichnete DLT-Botschaften. Bei DLT wird zwischen verbose und non-verbose Botschaften unterschieden.
Verbose Botschaften enthalten alle notwendigen Informationen, um deren Inhalt interpretieren zu können. Sie enthalten sogenannte Argumente, welche entweder über einen Namen oder ihren Index addressiert werden. Um den Inhalt von non-verbose Botschaften zu interpretieren, ist eine externe Datenbank notwendig - ähnlich zur Buskommunikation.
Zum Lesen von DLT ist das Erstellen eines Steuergeräts in der Testkonfiguration notwendig. Insbesondere der Bereich „Logging“ muss befüllt werden. Weitergehende Beschreibungen der einzelnen Felder kann man ihren Tooltips entnehmen.
- Non-verbose DLT
Zum Lesen von non-verbose DLT wird eine DLT-FIBEX-Datenbank benötigt. Deren Aufbau weicht jedoch von einer regulären FIBEX ab. Siehe auch AUTOSAR Log and Trace Protocol Specification, Release 1.5.1, Seite 27. Der Dateipfad zur Datenbank muss in der Testkonfiguration hinterlegt werden.
Ist die Konfiguration gestartet, werden zur Verfügung stehende Signale im Reiter Logging aufgeführt und können per Drag-and-Drop in den Signalaufnahmen-Reiter für die Traceanalyse verfügbar gemacht werden.
- Verbose DLT
Zum Lesen von verbose DLT wird eine DLT-Filterdatei (.dlf) benötigt. Der Pfad zur Filterdatei muss in der Testkonfiguration hinterlegt werden. Derzeit ist es notwendig, diese über den DLT Viewer (GitHub) anzulegen.
Ist die Konfiguration gestartet, stehen basierend auf den Filtern in der Filterdatei, sogenannte „gefilterte Loggingbotschaften“ zur Verfügung, welche wie Signale gelesen werden können. Die gelesenen Werte sind vom Typ DltMessage.
Aktuell unterstützt ecu.test den DLT-Standard in der Version 1. Um bestmögliche Kompatibilität mit dem DLT Viewer und dessen Filtermechanismus zu gewährleisten, wird zusätzlich das Feld Type Format (TYFM) aus dem DLT-Standard Version 2 unterstützt.
- Pseudosignale
Zum allgemeinen Zugriff auf DLT-Botschaften wird ein Signal namens DltMessage bereitgestellt. Analog zu verbose DLT sind für dieses Signal die Werte vom Typ DltMessage. Es ist jedoch zu beachten, dass die Botschaften ungefiltert eingelesen werden. Somit werden verbose und non-verbose Botschaften gleichzeitig eingelesen. Eine Unterscheidung der Botschaften muss in der Traceanalyse von Hand unternommen werden. Für die Unterscheidung zwischen verbose/non-verbose kann man zum Beispiel auf das Attribut .verbose prüfen.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
- Zeitstempelsortierung
Für Aufzeichnungen, die keine streng monotone Zeitachse aufweisen, kann folgende Workspace-Einstellung genutzt werden: ETHERNET, DLT: Zeitstempel über gleitendes Fenster sortieren
ECAL
- Allgemein
eCAL-Aufnahmen werden im HDF5-Format gespeichert und besitzen als Einträge beliebige Datenstrukturen, welche durch Protobuf serialisiert sind. ecu.test zerlegt diese teils verschachtelten Datenstrukturen in ihre Grundbestandteile und bietet sie zur Analyse an. Zum Parsen wird ein installiertes eCAL-Framework in mindestens Version 5.0 benötigt. Da sich die Verfügbarkeit der Signale zeitlich verändern kann, wird bei der ersten Verwendung die Aufnahme vollständig geparst und alle vorkommenden Signale extrahiert. Je nach Aufnahmegröße kann dieser Prozess einige Zeit in Anspruch nehmen. Die so gewonnenen Metadaten werden anschließend in eine daneben liegende, gleichnamige .info-Datei geschrieben, welche bei nachfolgenden Analysen ausgelesen wird.
- Signalarten
Folgende Signalarten werden unterstützt:
Interpretiert (Zahl)
Es werden alle gängigen, primitiven Datentypen von Protobuf unterstützt. Dazu zählen Integer, Floating-Point und Long.
Zusätzlich können auch Boolean-Werte nativ verwendet werden.
Interpretiert (String)
Signale können entsprechend ihrer Protobuf-Definition als Unicode oder Bytestring ausgelesen werden.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
ERG
Für die Traceanalyse werden zwei Dateien benötigt. Die *.ERG Datei enthält die Aufnahmedaten, die *.erg.info enthält
die Signalbeschreibungen. Beide Dateien müssen den gleichen Namensanfang haben. Die Aufzeichnung muss das Signal (Quantity) „Time“ beinhalten.
- Signalarten
Folgende Signalarten werden unterstützt:
Rohwert
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
GIN
- Allgemein
trace.check unterstützt das unmittelbar erzeugte Rohdatenformat der G.i.N. Datenlogger. Der Hauptordner mit den Datenordnern (z.B. !D1FX) der einzelnen Ringpuffer und zusätzlichen Ethernet-Loggern (parametriert als „Logger“) wird als einzelne GIN-Aufnahme angeboten. Der Hauptordner muss die Konfigurationsdateien ml_rt.ini und ml_rt2.ini beinhalten, um als einzelne GIN-Aufnahme erkannt zu werden.
Es werden sowohl die Rohdaten klassischer Busse als auch .gjf-Dateien mit Ethernet-Datenverkehr unterstützt.
Vorsicht
.clf-Dateien werden aus den Rohdateien mit dem Logger RAW File Decoder erzeugt, werden aber nicht unterstützt!
- Unterstützte Feldbussysteme
trace.check unterstützt die Bussysteme CAN (FD), LIN, FlexRay und Ethernet. Analog zu anderen Formaten, wie PCAP wird die Extraktion diverser Protokolle unterstützt.
Außerdem wird die Extraktion und Interpretation von Diagnose-Botschaften (aktuell nur CAN (FD)) mittels DIAG-SERVICE-Größen unterstützt. Siehe Diagnostics related objects of trace analysis für den Aufbau der Werte.
Vorsicht
Je nachdem wie die Diagnose-Datenbank aufgebaut ist, kann es passieren, dass das Signal zusätzliche Samples mit Botschaften, die eigentlich nicht zu dem ausgewählten Dienst gehören, enthält. In solchen Fällen wird eine zusätzliche Filterung in der Traceanalyse anhand der Rohdaten empfohlen.
- Pseudosignale
Über sogenannte Pseudosignale wird der Zugriff auf Rohdaten auf Protokollebene realisiert. So ist es möglich auf Bus-Botschaften zuzugreifen, ohne dass eine Busdatenbank benötigt wird.
Signal
Beschreibung
CAN (FD)
FlexRay
LIN
Datentyp
MessageEvent
Alle Arten von Frames (z.B. auch Error- und CAN-Remote-Frames).
+
+
+
UdsMessage
Benötigt ecu.test diagnostics. Unified Diagnostics Services (UDS) Nachrichten
+
-
-
FrameID
Veraltet. Wird bei Error-Frame auch ausgegeben
+
+
+
Integer
FramePayload
Veraltet. Wird bei Error-Frame auch ausgegeben
+
+
+
String
FrameLength
Veraltet. Wird bei Error-Frame auch ausgegeben
+
+
+
Integer
FrameCycle
Veraltet. Wird bei Error-Frame auch ausgegeben
-
+
-
Integer
ErrorFrame
Veraltet. Erzeugt genau dann ein Sample mit Wert 1, wenn ein Error-Frame vorliegt.
+
+
-
Integer
PacketEthernet
weitere Ethernet-Pseudosignale siehe PCAP Pseudosignale
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Die Formatdetails dienen als Filter, um nur bestimmte Frames aus dem Trace zu lesen.
- Aufbau:
%Medium%_%Logger%:%Kanal%_%Richtung%- Medium
Der Bus, der gefiltert werden soll.
Mögliche Werte:
CAN .. Es werden Frames sowohl von CAN als auch CAN FD gelesen.
LIN .. Es werden nur Frames von LIN gelesen.
FlexRay .. Es werden nur Frames von FlexRay gelesen.
Ethernet .. Es werden nur Ethernet-Frames gelesen.
- Logger
Der Logger, von welchem die Daten gelesen werden sollen. Dieser wird anhand des Index m in den Datei- und Verzeichnisnamen dargestellt, z.B. ‚!D*m*FX‘.
Mögliche Werte:
%String% .. Der Logger 0 (Fahrtenschreiber), 1, 2, 3, E1, E2 oder E3
- Kanal
Es werden nur Frames von diesem logischen Kanal gelesen. Der logische Kanal wird dann zum internen konvertiert unter Berücksichtigung der Konfiguration in ml_rt2.ini (z.B. CAN-Mapping).
Mögliche Werte:
%String% .. Die Nummer des Kanals. 1A, 1B, 2A oder 2B für FlexRay .
- Richtung
Es werden nur Frames gelesen, die in eine bestimmte Richtung gesendet wurden.
Mögliche Werte:
Rx .. Es werden nur empfangene Frames gelesen.
Tx .. Es werden nur gesendete Frames gelesen.
RxTx .. Es werden empfangene und gesendete Frames gelesen.
- Standard:
CAN_1:1_RxTx
MDF (Version 2.x, 3.x)
- Ausgelesene Blöcke
Beim MDF-Format werden die in der Formatspezifikation definierten Blöcke IDBLOCK, HDBLOCK, TXBLOCK, DGBLOCK, CGBLOCK, CNBLOCK, CCBLOCK, CDBLOCK und CEBLOCK durch trace.check ausgelesen.
- Interpretierte Werte
Der CCBLOCK (Channel Conversion Block) spezifiziert verschiedene Umrechnungsformeln zur Umwandlung von ausgelesenen Rohwerten in physikalische Werte. Momentan werden folgende Umrechnungsformeln der Formatspezifikation unterstützt:
Parametrisch, linear
Tabellarisch mit Interpolation
Tabellarisch
Polynomfunktion mit 6 Parametern
Exponentialfunktion
Logarithmusfunktion
Rationale Umrechnungsformel
Textuelle Umrechnungsformel (wie ASAM MCD-2 MC V1.6.0 Textformel)
Tabellarisch (Textuell)
Tabellarisch (Range)
1:1-Konvertierung
- Nicht unterstützte Signaltypen
Signale vom Typ Curve und Map werden für von INCA-MDF-Dateien (Dateiendung .dat) nicht unterstützt.
- Besonderheiten bei Kalibriergrößen in INCA-Aufnahmen
Beim Aufzeichnen von MDF3-Dateien mit INCA, werden Mess- und Kalibriergrößen standardmäßig unter dem gleichen Gerät gespeichert. Während Messgrößen in einem bestimmten Raster abgetastet werden, werden Kalibriergrößen eventbasiert aufgezeichnet: Nur wenn sich der Wert der Kalibriergröße ändert (bzw. zusätzlich zu Aufnahmebeginn und Aufnahmeende), wird ein Datenpunkt in die Aufnahmedatei geschrieben.
Wurde jedoch mit der Option „Kalibriergrößen als Messgrößen aufzeichnen“ aufgezeichnet, werden die Kalibriergrößen analog zu Messgrößen in einem bestimmten Raster abgetastet. Die als Messgrößen aufgezeichneten Kalibriergrößen befinden sich in der Aufnahme jedoch nicht mehr unter dem gleichen Gerät wie die Messgrößen: Werden die Messgrößen bspw. unter dem Gerät „CCP:1“ abgelegt, dann werden die als Messgrößen aufgezeichneten Kalibriergrößen unter dem Gerät „CCP:1#MeasureCal“ abgelegt. Eine Aufnahme kann sogar ein und dieselbe Kalibriergröße unter beiden Geräten enthalten (einmal eventbasiert und einmal abgetastet aufgezeichnet).
Trotz der unterschiedlichen Geräte ist beim Hinzufügen von INCA-MDF3-Aufnahmen in Packages nur eine Signal- bzw. Aufnahmegruppe notwendig. Es sollte nie das MeasureCal-Gerät verwendet werden, da trace.check unabhängig von der Angabe des Gerätes immer auf die Kalibriergrößen unter dem MeasureCal-Gerät zugreift, bei Angabe dieses Gerätes jedoch Messgrößen nicht mehr aufgelöst werden können.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Pflicht. Dient zur Auswahl eines in der Datei enthaltenen Gerätes. Signale werden entsprechend gefiltert bereitgestellt. Möchte man ein weiteres Gerät auslesen, muss die Aufnahme unter Angabe des anderen Geräts in einer zweiten Aufnahmegruppe eingefügt werden.
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nur für Multiprozessor-Aufnahmen von ControlDesk bei Angabe des speziellen Gerätebezeichners „multiprocessor“: Zuordnung der Gerätebezeichner innerhalb der Datei zu den Gerätebezeichnern in der Testkonfiguration.
- Aufbau:
Plattform-Gerät-Paare der Form
%Plattform1%=%Gerät1%##%Plattform2%=%Gerät2%...- Beispiel:
Platform=Master##Platform_2=Slave
MDF4
- Grundlegende Features
MDF-Spezifikation: 4.2.0
Grundsätzlich unterstützt werden Signale aus den Reitern „Tracedateien“, „Buszugriff“, „Messung“, „Kalibrierung“, „Modell“ oder „Service“
Auslesen von Signalnamen und Signalquellennamen aus der Datei (nicht unterstützte Signale (siehe unten) werden von trace.check nicht angezeigt)
Auslesen von Signalwerten als Rohwerte oder als interpretierte Werte (siehe unten)
Lesen von komprimierten Signalwerten
Lesen von sortierten und unsortierten Dateien möglich
Lesen von Daten aus Buslogging-Traces und die Extraktion von Signalwerten anhand einer Busdatenbank
Invalidation-Bits: Signalwerte werden bei gesetztem Bit übersprungen
„Event“-Blöcke werden zur Bildung von Pseudosignalen verwendet (siehe unten)
- Teilweise unterstützt
Neue Features von MDF 4.2.0 werden noch nicht vollständig unterstützt. Ausstehende relevante Features:
Datentyp „complex number“
Erweiterung von Event-Blöcken um „event signals“
Konvertierungsvorschrift „bitfield text table“
Arrays (nach MDF4-Spezifikation „CN template“):
Einfache Arrays ohne Achsen:
Arrays mit Achsen:
Nicht unterstützt:
Arrays mit mehr als 2 Dimensionen
Arrays mit „komplexen Achsen“ (Achsen mit Achsen) -> führt zu Laufzeitfehler
Maps/Curves mit sich ändernden Achsen, aber fehlendem Zeitstempel -> führt zu Laufzeitfehler
„Nested Compositions“-Signale (Verschachtelung von Kompositionen - Structures/Arrays)
Blattelemente lassen sich regulär einlesen.
Es ist möglich den obersten Strukturknoten einzulesen. Dabei wird ein strukturiertes Signal eingelesen. Auf Unterelemente kann innerhalb der Traceanalyse mithilfe von Attributen zugegriffen werden. Zum Beispiel in einem Berechnungsschritt: MyStructuredSignal.subSignal > 5
- Nicht unterstützt
Signale ohne Zeitachse
Arrays nach MDF4-Spezifikation „CG-Template“ sowie „DG-Template“
Signale aus Attachments (MDF4-Spezifikation: „synchronization channel“)
Signale der Datentypen „MIME sample/stream“
- Nicht verwendete Dateiinhalte
trace.check ignoriert folgende MDF-Datei-Inhalte:
Meta-Daten des Header-Block
„Channel Hierarchy“-Block
„Attachment“-Block
„Sample Reduction“-Block und „Reduction Data“-Block
„Input/output/comparison channels“ von CA-Blöcken
- Pseudosignale
Für MDF4-Dateien stehen aktuellen zwei unterschiedliche Arten von Pseudosignalen bereit.
Diese erste Art von Pseudosignal ordnet sich direkt auf Dateiebene ein und leitet seine Werte von sog. Event-Blöcken der MDF4-Datei ab:
Pseudosignal Events.isRecording
Aus „Event“-Blöcken zur Aufnahmesteuerung (Aufnahme starten/pausieren) wird ein Pseudosignal „isRecording“ gebildet, das den Wert 1 hat, wenn die Aufnahme aktiv ist und den Wert 0 hat, wenn die Aufnahme pausiert. Prüfungen in der Traceanalyse können somit mithilfe eines Triggerblockes auf Bereiche, in denen die Aufnahme aktiv war, eingeschränkt werden.
Selbst wenn keine „Event“-Blöcke zur Aufnahmesteuerung vorhanden sind, wird versucht, das Signal „isRecording“ mit Wert 1 zum ersten Zeitstempel anhand von Metadaten zu bilden.
Die meisten Tools erzeugen bei der Verwendung des „Start/Stop Trace“-Testschrittes mehrere Aufnahmedateien. Eine Traceanalyse wird einmal je erzeugter Aufnahmedatei ausgeführt. Einen Sonderfall stellt die Aufzeichnung mit INCA dar. Wird im Format MDF3 aufgezeichnet, entstehen mehrere Aufnahmen innerhalb einer Datei. Es werden somit mehrere Traceanalysen ausgeführt. Mit MDF4 ändert sich dies. Es gibt nur noch eine Aufnahme mit Aufnahmepausen.
Info
Um Aufnahmepausen von INCA zu filtern, ist es ratsam das Signal „isRecording“ zu verwenden.
Pseudosignal Events.Marker
Je Zeitpunkt ein Objekt, welches entweder einen Punkt, den Start eines Bereichs oder das Ende eines Bereichs markiert. Zur Unterscheidung stehen die Eigenschaften isPoint, isRangeStart, isRangeStop zur Verfügung.
Genauere Informationen erhält man über die Attribute name und comment. Falls ein Marker über XIL-API gesetzt wurde, kann das Attribut xilId verwendet werden.
Es ist möglich einzelne Attribute direkt als Signal zu addressieren, z.B. „Marker.name“.
Die zweite Art sind die Pseudosignale für Bus-Logging, welche Zugriff auf Botschaften bestimmter Protokollebenen erlauben. Für Ethernet werden Pseudosignale angeboten, die den Zugriff auf übergeordnete Protokollschichten, z.B. PacketSomeIp.udp.srcPort erlauben. Weitere Details zu den einzelnen Signalen und Protokollschichten können dem Abschnitt des PCAP-Formats entnommen werden. Für CAN stehen die Pseudosignale J1939Message und J1939DTCList für das Diagnoseprotokoll J1939 zur Verfügung.
Info
Für J1939 ist die Lizenzoption ecu.test diagnostics erforderlich!
- Bus-Logging
Der MDF4-Standard erlaubt es, dass auch uninterpretierte Botschaften der Buskommunikation gespeichert werden können. trace.check ist in der Lage sowohl diese Botschaften zu lesen als auch Signalwerte anhand einer Busdatenbank zu extrahieren.
Unterstützt: CAN(-FD), FlexRay, LIN, Ethernet
Der MDF-Standard sieht drei Varianten für die Ablage von Buslogging-Daten vor: <NONE> ungefiltert, <BUS> strukturiert nach Bus-Channel sowie <ID> ID-basiert (nach Botschaft). Unterstützt werden die Modi <BUS> und <NONE>, wobei im Modus <NONE> die Gerätezuordnung um konkrete Busse mit Kanal-Nummer wie z.B. „CAN2“ (statt „CAN“) angereichert werden muss.
Für Ethernet-Busloggings, die - entgegen dem Standard - keine streng monotone Zeitachse aufweisen, kann folgende Workspace-Einstellung genutzt werden: ETHERNET: Zeitstempel über gleitendes Fenster sortieren
Im Ethernet-Bus-Logging werden die folgenden Protokolle unterstützt:
SOME/IP
DLT Verbose und Non-Verbose (Angabe des Gerätebezeichners in den Formatdetails zwingend notwendig)
SocketAdaptor Frames mit MACsec
- Besonderheiten bei Kalibriergrößen in INCA-Aufnahmen
Beim Aufzeichnen von MDF4-Dateien mit INCA, werden Kalibriergrößen standardmäßig unter dem Gerät „EtasCalibrationRecordingDevice“ abgelegt (Messgrößen dagegen unter dem vom Nutzer gewählten Gerät). Während Messgrößen in einem bestimmten Raster abgetastet werden, werden Kalibriergrößen eventbasiert aufgezeichnet: Nur wenn sich der Wert der Kalibriergröße ändert (bzw. zusätzlich zu Aufnahmebeginn und Aufnahmeende), wird ein Datenpunkt in die Aufnahmedatei geschrieben.
Wurde jedoch mit der Option „Kalibriergrößen als Messgrößen aufzeichnen“ aufgezeichnet, werden die Kalibriergrößen analog zu Messgrößen in einem bestimmten Raster abgetastet. Die als Messgrößen aufgezeichneten Kalibriergrößen befinden sich in der Aufnahme jedoch nicht mehr unter dem Gerät „EtasCalibrationRecordingDevice“: Werden die Messgrößen bspw. unter dem Gerät „CCP:1“ abgelegt, dann werden die als Messgrößen aufgezeichneten Kalibriergrößen unter dem Gerät „CCP:1#MeasureCal“ abgelegt. Eine Aufnahme kann sogar ein und dieselbe Kalibriergröße unter beiden Geräten enthalten (einmal eventbasiert und einmal abgetastet aufgezeichnet).
Trotz der unterschiedlichen Geräte ist beim Hinzufügen von INCA-MDF4-Aufnahmen in Packages in der Regel nur eine Signal- bzw. Aufnahmegruppe notwendig. Für diese sollte in den FormatDetails auf das Gerät der Messgrößen verwiesen werden, da trace.check Kalibriergrößen dann bevorzugt unter dem MeasureCal-Gerät sucht, wenn sie dort nicht vorkommen auch unter dem „EtasCalibrationRecordingDevice“.
Mit der Angabe des Gerätes „EtasCalibrationRecordingDevice“ in den FormatDetails kann jedoch auch explizit auf die eventbasierte Aufzeichnung einer Kalibriergröße zugegriffen werden, selbst wenn sich zusätzlich eine abgetastete Aufzeichnung der Kalibriergröße in der Datei befindet. In diesem Fall muss jedoch beachtet werden, dass sich Messgrößen und Kalibriergrößen dann in separaten Signal- bzw. Aufnahmegruppen befinden müssen.
- Besonderheiten bei Busgrößen aus ControlDesk-Aufnahmen
Über den Bus-Port kann man mit Hilfe von ecu.test auch Busgrößen aufzeichnen, die im Modell abgebildet sind. Zur Auflösung des korrekten Modellpfads sind einige Parameter des Bus-Ports notwendig.
Um später aus der erzeugten Aufnahme Busgrößen lesen zu können, erzeugt ecu.test eine sog. Sidecar-Datei (.recsf). Diese enthält die aufgelöste Zuordnung von Buspfad zu Modellpfad des Signals. Ist diese Datei nicht vorhanden, ist es somit auch nicht möglich, eine Busgröße aus der Aufnahme zu lesen.
- Busgrößen über AUTOSAR Socket Adaptor
Siehe PCAP Socket Adaptor
Info
Bei mehreren Systembezeichnern ist es notwendig, jeweils eine eigene Aufnahmegruppe anzulegen.
Info
Aktuell gibt es folgende Einschränkungen:
Es werden nur über IPv6 per UDP versendete Botschaften unterstützt.
IP Fragmentierung wird nicht unterstützt.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Optional. Dient zur expliziten Auswahl eines in der Datei enthaltenen Gerätes. Signale werden entsprechend gefiltert bereitgestellt. I.d.R. reicht die Angabe der Formatdetails, so dass die Gerätebezeichner in der Datei zu denen der Testkonfiguration korrekt zugeordnet werden können.
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Zuordnung der Gerätebezeichner innerhalb der Datei (so wie das Tool diese nennt) zu den Gerätebezeichnern in der Testkonfiguration (so wie trace.check diese nennt).
- Aufbau:
Gerät-Gerät-Paare der Form
%Gerät1 in Datei%=%Gerät1%##%Gerät2 in Datei%=%Gerät2%...- Beispiel:
CAN-Monitoring:1=A-CAN##XCP:1=DME1_DDE1- Beispiel:
Platform=Master##Platform_2=Slave
MAT
- Aufbau
Dateien erzeugt durch MATLAB/Simulink, ecu.test bzw. trace.check weisen folgende Struktur auf:
MAT-File Format 5
Struct.Header.time = [0]
Struct.Header.signal = [1]
Struct.Data = [timeDataVector; signalDataVector]
Der Aufbau von MAT-Dateien aus ControlDesk / ControlDesk ist der entsprechenden Hilfe zu entnehmen.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Optional, nur bei MAT-Dateien von ControlDesk. Dient zur Auswahl eines in der Datei enthaltenen Gerätes. Signale werden entsprechend gefiltert bereitgestellt. Möchte man ein weiteres Gerät auslesen, muss die Aufnahme unter Angabe des anderen Geräts in einer zweiten Aufnahmegruppe eingefügt werden.
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nur für Multiprozessor-Aufnahmen von ControlDesk bei Angabe des speziellen Gerätebezeichners „multiprocessor“: Zuordnung der Gerätebezeichner innerhalb der Datei zu den Gerätebezeichnern in der Testkonfiguration.
- Aufbau:
Plattform-Gerät-Paare der Form
%Plattform1%=%Gerät1%##%Plattform2%=%Gerät2%...- Beispiel:
Platform=Master##Platform_2=Slave
OSI
Für die Traceanalyse werden zwei Dateien benötigt. Die *.osi bzw. *.txt Datei enthält die Aufnahmedaten,
die *.osi.info bzw. *.txt.info Datei enthält zugehörige Metadaten um den Typ der OSI-Aufnahme zu bestimmen.
Beide Dateien müssen den gleichen Namensanfang haben.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
PARQUET
- Allgemein
Apache Parquet ist ein quelloffenes, spaltenorientiertes Dateiformat, welches vor allem im Bereich Big Data verwendet wird. Standardmäßig werden die enthaltenen Spalten als Signale angeboten.
trace.check bietet einige Optionen, mithilfe derer sich auch komplexere Usecases auf Basis des Parquet-Formats realisieren lassen.
Partitionierte Parquets, bei denen konstante Spaltenwerte in einer Ordnerstruktur modeliert sind, werden nicht unterstützt.
- Zeitachse
Die für die Zeitachse zu verwendende Spalte kann konfiguriert werden. Zusätzlich ist es möglich die Einheit anzugeben, in der die Zeitstempel vorliegen. Beim Einlesen werden Zeitstempel automatisch in Sekunden umgerechnet, damit die Zeitachse kompatibel mit Signalverläufen anderer Formate ist. Zusätzlich lassen sich Zeitstempel optional normalisieren. Dabei werden relative Zeitstempel, beginnend mit 0.0, gebildet.
- Gesplittete Parquet-Dateien
Gesplittete Parquet-Dateien, die entlang der Zeitachse in einzelne Part-Dateien getrennt sind, werden unterstützt. Dabei reicht das Hinzufügen eines Parts zu den Signalaufnahmen. Alle restlichen Parquet-Dateien in demselben Ordner, die gemäß dem nachfolgenden Namensschema benannt sind, werden zu einem Datensatz zusammengesetzt:
part-<number>-<basename>.<file extention>Es wird erwartet, dass number bei Null beginnt und über alle Dateinamen die gleiche Anzahl an Ziffern besitzt.- Beispiel:
part-000-myfile.parquet
part-001-myfile.parquet
- Eventlog-Modus
Regulär ist eine Parquet-Datei tabellarisch aufgebaut. Jede Spalte steht für ein Signal, jede Zeile für einen Zeitpunkt. Davon abweichend geht der Eventlog-Modus davon aus, dass sich alle Signale eine einzige Wertespalte teilen. Durch ein oder mehrere Schlüsselspalten wird zu jedem Zeitpunkt der Signalbezeichner bestimmt, der zu dem aktuellen Wert in der Wertespalte gehört. Die in trace.check angebotenen Signale werden anhand der Schlüsselspalten gebildet, indem die Spaltenwerte mit einem
/verknüpft werden.Bei gesplitteten Parquet-Dateien wird nur die als Stellvertreter verwendete Datei zur Ermittlung der verfügbaren Signale berücksichtigt.
Folgendes Beispiel zeigt mit
"keyColumns":["ecu", "name"]und"valueColumn":"value"die SignaleECU1/Sig1(Werte 42, 45) undECU2/Sig1(Wert -13):Rohdaten aus Parquet-Datei¶ time
ecu
name
value
0.0
ECU1
Sig1
42
1.0
ECU2
Sig1
-13
2.0
ECU1
Sig1
45
Interpretiert via Eventlog-Modus¶ time
ECU1/Sig1
ECU2/Sig1
0.0
42
1.0
-13
2.0
45
- JSON-Strukturen
Parquet unterstützt regulär keine komplexen Datentypen. Es ist jedoch möglich, strukturierte Signalwerte als JSON zu hinterlegen. Wählt man ein Signal dafür aus, es als Struktur einzulesen, wird statt einem einfachen Signal ein strukturiertes Signal eingelesen.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Die Formatdetails beeinflussen, wie Inhalte der Datei verarbeitet werden.
- Aufbau:
JSON-String mit einem Dictionary folgenden Aufbaus:
- timeColumn:
[str] Name der Zeitspalte. Falls nicht gesetzt, automatisch bestimmt.
- timeUnit:
[str] Einheit der Zeitachse:
ns,µs,ms,s. Default:s.- normalizeTime:
[bool] Zeitachse normalisieren:
true|false. Default:false.- mode:
[str]
simple|eventlog. Default:simple.- keyColumns:
[list[str], nur falls
"mode":"eventlog"] Liste von Schlüsselspalten- valueColumn:
[str, nur falls
"mode":"eventlog"] Wertespalte
- Beispiel:
{"timeColumn":"time", "timeUnit":"ns", "mode":"eventlog", "keyColumns":["ecu", "name"], "valueColumn":"value"}
PCAP
- Allgemein
PCAP ist ein Format für Netzwerkdatenaufzeichnungen.
- Pseudosignale
Für die Analyse dieses Datenformats werden sog. Pseudosignale bereitgestellt. Mit ihnen ist man in der Lage den entsprechenden Einstiegspunkt in den hierarchisch aufgebauten Netzwerkschichten festzulegen. Jedes dieser Pseudosignale wird beim Auftreten als Python-Datenstrukturen (siehe Ethernet API Dokumentation) zurückgeliefert. Zu beachten ist, dass als Signalart stets Rohwert anzugeben ist, da eine nähere Interpretation des Signals nicht möglich ist.
Die oben genannten Python-Datenstrukturen bieten zusätzlich die Möglichkeit, über .parent das direkt darüberliegende Protokoll oder mit FindParent(protocolName) ein spezifisches Protokoll zurückzugeben. Außerdem ist auch der direkte Attributszugriff möglich, z.B. PacketSomeIp.ip4.src. Im Gegensatz zu den „nativen“ Datentypen enthalten die Protocol-Typen aus Performancegründen nur Headerfields des jeweiligen Protokolls und keine Payloaddaten. Die vollständige API Dokumentation ist hier verfügbar: Ethernet.
Nachfolgend sind alle Pseudosignale und deren Beschreibung aufgeführt:
Signal
Beschreibung
Datentyp
Äquivalenter Protocol Typ
PacketEthernet
Jeder beliebige Ethernet-Frame in der Aufnahme
PacketMka
Ethernet-Frame mit dem Protokolltyp MKA
Nicht unterstützt
PacketIp
Ethernet-Frame mit dem Protokolltyp IP
PacketIcmp
IP-Paket mit dem Protokolltyp ICMP
Nicht unterstützt
PacketTcp
IP-Paket mit dem Protokolltyp TCP, keine Unterstützung von TCP-Reassembling
PacketUdp
IP-Paket mit dem Protokolltyp UDP
PacketIke
UDP-Paket mit dem Protokolltyp IKEv2. Per Default werden UDP-Pakete mit dem Quell- und Zielport 500 als IKEv2-Pakete interpretiert.
Nicht unterstützt
PacketSomeIp
TCP- oder UDP-Paket mit dem Protokolltyp SOME/IP. Per Default werden TCP- oder UDP-Pakete mit dem Quell- oder Ziel-Port 30490 als SOME/IP-Paket interpretiert.
PacketSomeIpSd
SOME/IP-Paket mit der Message-Id 0xFFFF8100
Nicht unterstützt
PTP
Ethernet-Frame mit dem Protokolltyp PTP
Nicht unterstützt
PTP/PacketPtpSync
Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Sync
Nicht unterstützt
PTP/PacketPtpFollowUp
Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Follow_Up
Nicht unterstützt
PTP/PacketPdelayReq
Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Pdelay_Req
Nicht unterstützt
PTP/PacketPdelayResp
Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Pdelay_Resp
Nicht unterstützt
PTP/PacketPdelayRespFollowUp
Ethernet-Frame mit dem Protokolltyp PTP und dem PTP-Nachrichtentyp Pdelay_Resp_Follow_UP
Nicht unterstützt
Info
Im Fall von IP-Fragmentierung wird ein PacketTcp bzw. PacketUdp zum Zeitpunkt des letzten Fragments erzeugt. Die einzelnen Fragmente stehen weiterhin per PacketEthernet und PacketIp zur Verfügung.
- Service-basierte Kommunikation
Neben der Unterstützung zur Protokollanalyse können aus PCAP- und PCAPNG-Aufnahmen auch sogenannte Events und Methoden gelesen werden. Für die Analyse zur Verfügung stehen dabei Größen aus dem Reiter Service. Verwendet werden können die Event- bzw. Methoden-Signale sowie deren Blattknoten.
- Logging-Signale
Des Weiteren können Logging-Botschaften des Protokolls „Diagnostic Log and Trace“ (DLT) eingelesen werden. Die Funktionsweise ist analog zum DLT-Format. Damit die ECU korrekt identifiziert werden kann, ist es jedoch zusätzlich notwendig IP und Port in der Testkonfiguration anzugeben.
Derzeit wird nur das Auslesen von Logging-Botschaften in UDP-Paketen unterstützt.
- PLP (Probe Logger Protocol) / TECMP
Unterstützt werden auch Aufzeichnungen im PLP/TECMP-Format, die Nachrichten vom Typ „Ethernet“ enthalten. Die im PLP/TECMP enthaltenen Ethernet-Frames werden transparent entpackt und weiterverarbeitet. Die Filterung nach ProbeID/DeviceID und BusSpecID/InterfaceID ist nicht möglich. Andere Nachrichttypen als „Ethernet“ werden nicht unterstützt. Anstelle der äußeren PCAP-Zeitstempel werden die präziseren inneren Zeitstempel der PLP/TECMP Data Frames für die Zeitachsen der generischen Signale verwendet.
- DTLS (Datagram Transport Layer Security)
Es können mit DTLS 1.2 verschlüsselte SOME-IP Botschaften als PacketSomeIp eingelesen werden. Dafür ist es notwendig, dass eine Key-Log-Datei mit Dateiendung „.keys“ neben der gleichnamigen PCAP/PCAPNG-Datei liegt. Die Key-Log-Datei muss für jede zu entschlüsselnde Session einen passenden CLIENT_RANDOM-Eintrag enthalten. Key-Log-Dateien können mithilfe von Wireshark erzeugt werden.
Info
Bei der Verwendung einer NULL-Encryption ist die Key-Log-Datei optional. In diesem Fall werden die SOME-IP Botschaften ebenfalls eingelesen, können jedoch nicht auf Authentizität geprüft werden.
- Busgrößen über AUTOSAR Socket Adaptor
Es ist möglich CAN-Botschaften einzulesen, die über das Socket Adaptor Modul versendet werden. Dafür ist es nötig, in der Testkonfiguration im Buszugriff-Reiter einen Datenbank mit einem SOCKET-ADAPTOR Kanal zu hinterlegen. Anschließend können die benötigten Bussignale aus dem Reiter Buszugriff im Aktionsfenster benutzt werden.
Es wird das Auslesen von CAN-Botschaften sowohl aus UDP als auch TCP unterstützt.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Die Formatdetails dienen als Filter für Event-Signale und SOME/IP-Pseudosignale. Für die restlichen Pseudosignale sind diese Einstellungen nicht von Bedeutung.
- Aufbau:
%Port%- Port
UDP Port auf dem SOME/IP Service-Discovery Kontrollflussdaten versendet werden. Zum einen wird der Event-Absender anhand der in der Service-Datenbank (Fibex) hinterlegten IP-Adresse, des Transportprotokolls und des Ports gefiltert. Dabei wird der hier angegebene Port nicht betrachtet. Zum anderen wird durch Analyse der Kontrollflussdaten (SOME/IP Service-Discovery) ermittelt, von welchem Absender ein Event gesendet wird. Dabei wird der hier angegebene Port berücksichtigt.
- Standard:
30490
- Filter
- Zweck:
Anhand des Filters werden Einträge der Datei verworfen, falls sie nicht die Filterbedingung erfüllen.
Der Filter setzt sich aus einer Und-Verknüpfung von Vergleichen zusammen, welche sich auf Eigenschaften unterschiedlicher Busbotschaften oder Pakete im Ethernet-Protokoll-Stack beziehen können. Der Filter arbeitet somit ähnlich zur Filterung mit Wireshark, verwendet jedoch den Namensraum von trace.check.
Beispiel: PacketTcp.tcpSrc == 1234
Angenommen es sind nur Einträge zugelassen, die ein PacketTcp mit Port 1234 enthalten. Da die Filterung die komplette Botschaft der Aufnahme betrifft, wird auch ein, tiefer im Stack liegendes, PacketEthernet heraus gefiltert.
- Zeitstempelsortierung
Für Aufzeichnungen, die keine streng monotone Zeitachse aufweisen, kann folgende Workspace-Einstellung genutzt werden: ETHERNET: Zeitstempel über gleitendes Fenster sortieren
ROS2
- Allgemein
Info
Unterstützt werden rosbag2-Aufzeichnungen in Version 4 bis einschließlich 9. Rosbag2-Aufzeichnungen unterstützen unterschiedliche Serialisierungsverfahren. Diese Anbindung unterstützt derzeit nur Aufzeichnungen im Format CDR (Common Data Representation) in Version 1 in Little Endian ohne Kompression Es werden nur die Storage Plugins sqlite3 und mcap unterstützt.
- sqlite3
Rosbag2-Aufzeichnungen im Format „sqlite3“ liegen in einem Ordner mit einer oder mehreren SQLite-Dateien mit der Endung .db3, sowie einer zugehörigen metadata.yaml. Um eine eindeutige Erkennung einer rosbag2-Aufzeichnung zu ermöglichen erwartet trace.check eine Zip-Datei. Für das Einlesen der Aufzeichnung werden zudem weitere Metainformationen erwartet, die ebenfalls in der Zip enthalten sein müssen.
Für die Verwendung von rosbag2-Aufzeichnungen, die nicht mit trace.check erzeugt wurden, sind einige manuelle Schritte notwendig:
Anlegen eines neuen leeren Ordners.
Kopieren der rosbag2-Aufzeichnung in diesen Ordner (alle .db3-Dateien, die zur Aufzeichnung gehören).
Kopieren der metadata.yaml in den angelegten Ordner
Bis einschließlich Humble Hawksbill ist das Sammeln und Ablegen aller benötigten Strukturinformationen notwendig, die zum Auslesen der Signale benötigt werden (Alle .msg-Dateien). Ab Iron Irwini kann dieser Schritt ausgelassen werden.
Erzeugen einer Zip-Datei mit dem Inhalt des gesamten Ordners.
Inhalt einer beispielhaften Zip-Datei:
- mcap
Rosbag2-Aufzeichnungen im Format „mcap“ liegen in einem Ordner mit einer oder mehreren MCAP-Dateien mit der Endung .mcap, sowie einer zugehörigen metadata.yaml. Um eine eindeutige Erkennung einer rosbag2-Aufzeichnung zu ermöglichen erwartet trace.check eine Zip-Datei.
Für die Verwendung von rosbag2-Aufzeichnungen, die nicht mit trace.check erzeugt wurden, sind einige manuelle Schritte notwendig:
Anlegen eines neuen leeren Ordners
Kopieren der rosbag2-Aufzeichnung in diesen Ordner (alle .mcap-Dateien, die zur Aufzeichnung gehören).
Kopieren der metadata.yaml in den angelegten Ordner
Erzeugen einer Zip-Datei mit dem Inhalt des gesamten Ordners.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
RDB
- Allgemein
RDB ist ein binäres Format, welches einen von VTD erzeugten RDB-Strom enthält. Von VTD selbst wird es mit der Endung .dat gespeichert, zur Vermeidung von Verwechslungen werden die Aufzeichnungen von trace.check jedoch mit der Endung .rdb versehen.
- Signalarten
Folgende Signalarten werden unterstützt:
Integer
Floating-Point
Unicode-Strings
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
STI
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Die Formatdetails dienen der Angabe der Samplerate.
- Aufbau:
%Samplerate%- Samplerate
Anzahl der Samples pro Sekunde.
Mögliche Werte:
%Zahl% .. Die Samplerate als Fließkommawert.
- Standard:
50.0
TDMS
- Allgemein
Jede Gruppe einer TDMS Aufnahme kann ihren eigenen Zeitkanal definieren. Wenn alle Zeiten als absolut gegeben sind, wird der früheste Zeitpunkt zu Null normiert und als Referenz für alle Zeitkanäle genutzt. Falls die Messung nur relative Zeiten beinhaltet, wird auch hier der kleinste Zeitstempel auf Null normiert und als Referenz genutzt. Für gemischte Zeittypen, wird der früheste absolute Zeitstempel als Referenz gesetzt, worauf sich alle relativen Zeiten beziehen.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Pflicht. Dient zur Auswahl eines in der Datei enthaltenen Gerätes. Signale werden entsprechend gefiltert bereitgestellt. Möchte man ein weiteres Gerät auslesen, muss die Aufnahme unter Angabe des anderen Geräts in einer zweiten Aufnahmegruppe eingefügt werden.
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
TTL
- Unterstützte Feldbussysteme
trace.check unterstützt die Bussysteme CAN, CAN-FD, FlexRay und LIN, sowie Ethernet. Klemme 15 und Klemme 30 werden als analoge Signale unterstützt.
Außerdem wird die Extraktion und Interpretation von Diagnose-Botschaften (aktuell nur CAN (FD)) mittels DIAG-SERVICE-Größen unterstützt. Siehe Diagnostics related objects of trace analysis für den Aufbau der Werte.
- TAPs
Über Ethernet an den Hauptlogger angeschlossene Erweiterungskarten (extension boards) werden unterstützt. Deren TAP-Nummer (auch cascade) muss in den Formatdetails explizit ausgewählt werden (siehe unten).
- Pseudosignale
Bei den Dateiformaten TTL werden durch trace.check – neben den eigentlichen Bussignalen – auch sog. Pseudosignale zur Analyse bereitgestellt (im Reiter Tracedateien in der jeweiligen Datei unter Signale). Pseudosignale erlauben den Zugriff auf Rohdaten der Datei, ohne dass eine Signaldatenbanken geladen sein muss. Ist diese geladen, kann trace.check anhand der im Reiter BUS gelisteten Einträge konkrete Signale aus den Rohdaten extrahieren und in der Analyse bereitstellen.
Je nach auszulesendem Medium stehen unterschiedliche Pseudosignale zur Verfügung:
Signal
Hinweis
CAN/CAN-FD
FlexRay
LIN
Datentyp
FrameID
+
+
+
Integer
FramePayload
+
+
+
String
FrameLength
+
+
+
Integer
FrameCycle
-
+
-
Integer
UdsMessage
Benötigt ecu.test diagnostics.
+
-
-
Die verfügbaren Pseudosignale für Ethernet sind im Abschnitt PCAP Pseudosignale aufgelistet.
- Service-basierte Kommunikation
- Logging-Signale
Siehe PCAP Logging-Signale
- PLP (Probe Logger Protocol) / TECMP
- Busgrößen über AUTOSAR Socket Adaptor
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Pflicht. Dient zur Auswahl eines in der Datei enthaltenen Gerätes. Signale werden entsprechend gefiltert bereitgestellt. Möchte man ein weiteres Gerät auslesen, muss die Aufnahme unter Angabe des anderen Geräts in einer zweiten Aufnahmegruppe eingefügt werden.
- Mögliche Werte:
Analoge Signale, CAN, Flexray, LIN, Ethernet
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Die Formatdetails dienen als Filter, um nur bestimmte Frames aus dem Trace zu lesen. Analoge Signale benötigen keine Formatdetails. In älteren Versionen wurde zusätzlich ein Aufnahmegerät (‚ANY‘, ‚Tricore‘, ‚FPGA‘) angegeben. Dies ist nicht mehr nötig.
- Aufbau:
%Medium%_%Tap Nummer%:%Kanal%_%Richtung%_%Port%- Medium
Der Bus, der gefiltert werden soll.
Mögliche Werte:
CAN .. Es werden nur Frames vom CAN oder CAN-FD gelesen.
Flexray .. Es werden nur Frames von FlexRay gelesen.
LIN .. Es werden nur Frames von LIN gelesen.
Ethernet .. Es werden nur Ethernet-Frames gelesen.
- TAP Nummer:
Es werden nur Frames von diesem Logger gelesen.
Mögliche Werte:
%Zahl% .. Die Nummer des TAPs. Gültige Werte sind 0 bis 7, wobei 0 der Hauptlogger ist.
- Kanal
Es werden nur Frames von diesem Kanal gelesen.
Mögliche Werte:
%Zahl% .. Die Nummer des Kanals.
Gültige Werte auf dem Hauptlogger sind für:
CAN .. 1-24
LIN .. 1-12
FlexRay .. eine Kombination der FlexRay-Nummer 1-3 und des FlexRay-Kanals A, B oder AB
Ethernet .. A oder B
CAN-FD .. nicht unterstützt
Gültige Werte auf den TAPs sind für:
CAN .. 1-5
LIN .. 1-15
FlexRay .. eine Kombination der FlexRay-Nummer 1-2 und des FlexRay-Kanals A oder B
Ethernet .. eine Kombination der Nummern 1-6 mit A oder B
CAN-FD .. 1-15 (D.h. da CAN-FD unter das Medium CAN fällt, sind die Formatdetails der Kanäle 1-5 für beide identisch.)
- Richtung
Es werden nur Frames gelesen, die in eine bestimmte Richtung gesendet wurden.
Mögliche Werte:
Rx .. Es werden nur empfangene Frames gelesen.
Tx .. Es werden nur gesendete Frames gelesen.
RxTx .. Es werden empfangene und gesendete Frames gelesen.
- Port
UDP Port auf dem SOME/IP Service-Discovery Kontrollflussdaten versendet werden. Zum einen wird der Event-Absender anhand der in der Service-Datenbank (Fibex) hinterlegten IP-Adresse, des Transportprotokolls und des Ports gefiltert. Dabei wird der hier angegebene Port nicht betrachtet. Zum anderen wird durch Analyse der Kontrollflussdaten (SOME/IP Service-Discovery) ermittelt, von welchem Absender ein Event gesendet wird. Dabei wird der hier angegebene Port berücksichtigt.
- Standard:
Flexray_1A_RxTx_30490
AUDIO
- Allgemein
trace.check unterstützt die Dateiformate
.wav,.flac,.mp3und.ogg. Jeder enthaltene Audiokanal kann separat gelesen werden. Die Werte werden als 64-Bit-Gleitkommazahl gelesen, die typischerweise im Bereich von -1,0 bis 1,0 liegt.- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet
VIDEO
- Unterstützte Videoformate
trace.check verwendet zum Einlesen von Videos OpenCV 2.x. Unterstützt werden somit alle Videos, welche durch OpenCV eingelesen werden können. Entscheidend ist das Videoencoding. Derzeit werden folgende Dateiendungen als Video erkannt: .avi, .mp4, .mkv, .mts.
Vorsicht
OpenCV benötigt bestimmte Media-DLL-Dateien in der Windows-Installation. Diese sind zum Beispiel bei Windows 10 N und Windows Server 2012 R2 standardmäßig nicht installiert. Abhilfe kann man sich mit dem Media Feature Pack für Windows 10 N bzw. Windows Server Essentials Media Pack schaffen.
Info
OpenCV stellt eingelesene Bilder im Farbschema BGR bereit! Möchte man Bilder dem Report hinzufügen, muss z.B. folgender Aufruf zum Ändern des Farbschemas verwendet werden:
rgbArray = cv2.cvtColor(bgrArray, cv2.COLOR_BGR2RGB)
- Pseudosignale
Zur Analyse von Frames wird ein Signal namens Frame bereitgestellt. Verwendet man dieses, bekommt man für jeden Zeitpunkt sogenannte Frame-Objekte. Hat man einen Medienzugriff konfiguriert, kann man alternativ das oberste Videosignal addressieren.
Die Schnittstelle des Frame-Objekts ist in der * API-Dokumentation zu finden.
Info
Es ist möglich, die Attribute number, data und time direkt einzulesen. Dazu addressiert man die Pseudosignale Frame.number, Frame.data bzw. Frame.time.
Wenn in den Einstellungen unter Analyseausführung die Rundung von Zeitstempeln aktiviert ist, wird Frame.time entsprechend gerundet.
- Parametrierung des Parsers
- Gerätebezeichner
- Zweck:
Nicht nötig
- Formatdetails (siehe Verwaltung von Signalen)
- Zweck:
Nicht verwendet