Quantex GmbH
Twój region: Europa

Format logów J2534 wersji 2

Ostatnia zmiana:

Opis

Biblioteka J2534 wykorzystuje kompaktowy, łatwy do parsowania format logów. Każdy wiersz reprezentuje jedną operację lub komunikat z danymi. Format jest zoptymalizowany pod kątem automatycznej analizy i pozwala w pełni odtworzyć sekwencję działań podczas diagnostyki samochodu.

Struktura pliku logu

# v2 2026-01-10 02:00:18
  0 I j0 open 192.168.12.3 > ok 4ms
 10 I j0 conn ISO15765 500000 > 1 9ms
  6 I j0 wr 1 100 1 > 1 5ms
	[6A8]10C0 0.000 2
  5 I j0 rd 1 2000 10 > 1 4ms
	[688]61C0 2240.300 2
...

Wpisy z aplikacji

Aplikacja może dodawać własne wpisy do logu za pomocą funkcji PassThruWriteToLog:

  0 I pt_lib open param: 192.168.12.3, type:1
  0 I pt_lib open param: 192.168.12.3, name:sd0;n192.168.12.3

Wpisy z aplikacji używają identyfikatora pt_lib zamiast numeru urządzenia.

Format wiersza operacji

DELTA LEVEL DEVICE COMMAND PARAMS > RESULT DURATION
  0 I j0 open 192.168.12.3 > ok 4ms
 10 I j0 conn ISO15765 500000 > 1 9ms
  5 I j0 disc 1 > ok 4ms
  4 I j0 close > ok 3ms
Pozycja Pole Opis
0 DELTA Czas delta w milisekundach od poprzedniej operacji (3 znaki, wyrównanie do prawej)
1 LEVEL Poziom logowania: I (Info), E (Error), W (Warning), D (Debug)
2 DEVICE Numer urządzenia (j0, j1, ... j15) lub pt_lib dla wpisów aplikacji
3 COMMAND Nazwa polecenia
4+ PARAMS Parametry wejściowe (zobacz tabelę poleceń poniżej)
- > Separator
-2 RESULT Wynik/wartości wyjściowe
-1 DURATION Czas trwania operacji (Nms)

Format wiersza danych

  [CAN_ID]DATA TIMESTAMP LEN FLAGS
Pozycja Pole Opis
- \t Wcięcie tabulacją
0 [CAN_ID] Identyfikator CAN w nawiasach kwadratowych
1 DATA Bajty danych (hex, bez spacji). Puste jeśli LEN=0
2 TIMESTAMP Znacznik czasu urządzenia w sekundach.milisekundach (SSSS.mmm)
3 LEN Długość danych w bajtach
4 FLAGS Flagi oddzielone znakiem | (opcjonalnie)

Jeśli protokół różni się od protokołu kanału, jest dodawany do FLAGS.

Przykłady:

  [688]61B05646375244 2240.300 8
  [688]61B05646375244 2240.300 8 RX_START
  [6A8] 2240.281 0 INT|TX_DONE
  [612:F1]037F2212 2240.300 4 CAN
  [612:F1]037F2212 2240.300 4 INT|CAN

Kody wyników

Wynik Opis
ok Sukces (STATUS_NOERROR)
N Liczba rzeczywiście odczytanych/zapisanych komunikatów
  • 0 = bufor pusty (zamiast tekstowego kodu błędu ERR_BUFFER_EMPTY, nie jest błędem)
  • Mniej niż żądano = upłynął limit czasu (zamiast tekstowego kodu błędu ERR_TIMEOUT, nie jest błędem)
ERR_XXX Tekstowy kod błędu ERR_XXX = błąd wykonania operacji (ERR_INVALID_CHANNEL_ID, ERR_DEVICE_NOT_CONNECTED itd.)
"tekst" Tekstowy ciąg znaków w cudzysłowie (na przykład opis ostatniego błędu przy wywołaniu polecenia PassThruGetLastError)

Wykaz poleceń

Połączenie i zarządzanie połączeniem

Polecenie Parametry (pozycje 3+) Wynik Opis
open address ok/ERR Otwórz połączenie z urządzeniem
close - ok/ERR Zamknij połączenie
conn protocol baud channel Podłącz kanał według protokołu
disc channel ok/ERR Odłącz kanał

Typy połączenia:

Odczyt i zapis komunikatów

Polecenie Parametry Wynik Opis
rd channel timeout num num lub ERR Odczytaj komunikaty
wr channel timeout num num lub ERR Zapisz komunikaty

Parametry:

Wynik:

Poziom logowania dla rd:

 26 I j0 wr 1 100 1 > 1 6ms
	[6A8]10C0 0.000 2
  6 I j0 rd 1 2000 10 > 10 5ms
	[6A8] 2240.281 0 INT|TX_DONE
	[688] 2240.294 0 RX_START
 15 W j0 rd 1 0 10 > 0 2ms
 62 W j0 rd 1 50 10 > 2 62ms
	[7DF] 2.489 0 INT|TX_DONE
	[7E8]4100BE1FA813 2.489 6
 41 E j0 rd 1 2000 10 > ERR_INVALID_CHANNEL_ID 0ms

Filtry

Polecenie Parametry Wynik Opis
flt+ channel [protocol] type mask pattern [flow] filter_id Ustaw filtr
flt- channel filter_id ok/ERR Usuń filtr

Parametry:

Typy filtrów:

 13 I j0 flt+ 1 FLOW FFFFFFFF 688 6A8 > 0 3ms
  3 I j0 flt+ 1 ISO15765 FLOW FFFFFFFF 000007E8 000007E0 > 0 0ms
139 I j0 flt- 1 0 > ok 3ms

Komunikaty okresowe

Polecenie Parametry Wynik Opis
per+ channel interval msg_id Uruchom komunikat okresowy
per- channel msg_id ok/ERR Zatrzymaj komunikat okresowy

Parametry:

 50 I j0 per+ 1 100 > 0 5ms
	[6A8]3E00 0.000 2
150 I j0 per- 1 0 > ok 3ms

Wiersz danych po per+ pokazuje zawartość komunikatu okresowego (ten sam format co dla wr).

Polecenia IOCTL

Polecenie Parametry Wynik Opis
io channel ioctl_id [params] [result] Operacja IOCTL

GET_CONFIG - Odczyt parametrów konfiguracji protokołu

DELTA LEVEL DEVICE io channel GET_CONFIG > PARAM:value|PARAM:value|... Nms

Przykład:

200 I j0 io 1 GET_CONFIG > P2_CAN:2000|P3_MIN:45|ISO15765_BS:8 8ms

SET_CONFIG - Ustawienie parametrów konfiguracji protokołu

DELTA LEVEL DEVICE io channel SET_CONFIG PARAM:value|PARAM:value|... > ok Nms

Przykład:

 10 I j0 io 1 SET_CONFIG P2_CAN:2000|P3_MIN:45|ISO15765_WFT_MAX:0 > ok 10ms

Parametry ogólne: DATA_RATE, LOOPBACK, P1_MAX, P3_MIN, P4_MIN, W0-W5, TIDLE, TWUP, PARITY, ISO15765_BS, ISO15765_STMIN, BS_TX, STMIN_TX, ISO15765_WFT_MAX, ISO15765_PAD_VALUE, J1962_PINS, CAN_MIXED_FORMAT, FD_CAN_DATA_PHASE_RATE, HS_CAN_TERMINATION, N_CR_MAX itd.

READ_VBATT - Odczyt napięcia akumulatora (pin 16)

DELTA LEVEL DEVICE io 0 READ_VBATT > voltage Nms

Wynik: Napięcie w formacie X.X (wolty z jednym miejscem po przecinku).

Przykład:

 10 I j0 io 0 READ_VBATT > 12.3 5ms

READ_PIN_V - Odczyt napięcia na konkretnym pinie złącza J1962

DELTA LEVEL DEVICE io 0 READ_PIN_V pin > voltage Nms

Parametry:

Przykłady:

 10 I j0 io 0 READ_PIN_V 16 > 12.3 5ms

5BAUD_INIT - Inicjalizacja 5-bodowa dla ISO9141/ISO14230

DELTA LEVEL DEVICE io channel 5BAUD_INIT in_addr > out_keybytes Nms

Parametry:

Przykład:

 30 I j0 io 1 5BAUD_INIT 33 > 8F6F 2850ms

FAST_INIT - Szybka inicjalizacja dla ISO14230 (KWP2000)

DELTA LEVEL DEVICE io channel FAST_INIT [tx_msg] > [rx_msg] Nms

Parametry (opcjonalnie):

Przykłady:

 10 I j0 io 1 FAST_INIT 8121F181 > 83F11061 85ms
 10 I j0 io 1 FAST_INIT > ok 75ms

Polecenia czyszczenia buforów

DELTA LEVEL DEVICE io channel IOCTL_NAME > ok Nms
Polecenie Opis
CLEAR_TX_BUFFER Wyczyść bufor TX
CLEAR_RX_BUFFER Wyczyść bufor RX
CLEAR_PERIODIC_MSGS Wyczyść komunikaty okresowe
CLEAR_MSG_FILTERS Wyczyść filtry komunikatów
CLEAR_FUNCT_MSG_LOOKUP_TABLE Wyczyść tablicę komunikatów funkcyjnych

Przykład:

 10 I j0 io 1 CLEAR_RX_BUFFER > ok 2ms
 10 I j0 io 1 CLEAR_MSG_FILTERS > ok 3ms

REQ_CONN - Żądanie połączenia TP2.0

DELTA LEVEL DEVICE io channel REQ_CONN addr > ok Nms

Parametry: addr - Adres logiczny (hex)

Przykład:

 10 I j0 io 1 REQ_CONN 01 > ok 150ms

Pozostałe polecenia

Polecenie Parametry Wynik Opis
ver - fw dll api Odczytaj wersję DLL
rd_ver - ver:FW:XX;HW:XXXXXXXX;SN:X Odczytaj wersję firmware urządzenia
volt pin voltage ok/ERR Ustaw napięcie programowania
err - error_text Pobierz opis ostatniego błędu

Przykłady:

  0 I j0 rd_ver > ver:FW:81;HW:0000FF05;SN:0 16ms
300 I j0 err > "Channel not connected" 0ms

Format CAN ID

Typ Format Przykład
11-bitowy standardowy [XXX] [612]
29-bitowy rozszerzony [XXXXXXXX] [18DA00F1]
11-bitowy + adres rozszerzony [XXX:XX] [612:F1]
29-bitowy + adres rozszerzony [XXXXXXXX:XX] [18DA00F1:F1]

Adres rozszerzony jest wyświetlany przy obecności flagi EXT_ADDR.

Wykaz flag

Flagi odbioru (RX)

Flaga Bit Opis
INT 0 Wewnętrzne/loopback (TX_MSG_TYPE). 1=echo z adaptera, 0=z magistrali
RX_START 1 Początek komunikatu segmentowanego (START_OF_MESSAGE)
RX_BREAK 2 Wykryto przerwanie połączenia (RX_BREAK)
TX_DONE 3 Transmisja zakończona pomyślnie (TX_SUCCESS)
TX_FAIL 9 Błąd transmisji (TX_FAILED)
PAD_ERR 4 Błąd dopełnienia ISO15765 (ISO15765_PADDING_ERROR)
EXT_ADDR 7 Tryb adresowania rozszerzonego (ISO15765_ADDR_TYPE)
EXT29 8 29-bitowy CAN ID (CAN_29BIT_ID)
FD 20 Ramka CAN FD (FD_CAN_FORMAT)
BRS 19 CAN FD przełączanie szybkości transmisji (FD_CAN_BRS)
ESI 21 CAN FD wskaźnik stanu błędu (FD_CAN_ESI)

Flagi transmisji (TX)

Flaga Bit Opis
NO_DONE 0 Nie czekaj na potwierdzenie TX (ISO15765_NO_TXDONE)
NO_RESP 1 Nie czekaj na odpowiedź (ISO15765_NO_RESP)
PAD 6 Użyj dopełnienia ISO15765 (ISO15765_FRAME_PAD)
EXT_ADDR 7 Tryb adresowania rozszerzonego (ISO15765_ADDR_TYPE)
EXT29 8 Użyj 29-bitowego CAN ID (CAN_29BIT_ID)
P3_ONLY 9 Czekaj tylko na P3 min (WAIT_P3_MIN_ONLY)
SW_HV 10 SW-CAN transmisja wysokonapięciowa (SW_CAN_HV_TX)
FD 20 Ramka CAN FD (FD_CAN_FORMAT)
BRS 19 CAN FD przełączanie szybkości transmisji (FD_CAN_BRS)

Obsługiwane protokoły

Nazwa ID protokołu Opis
CAN 5 Raw CAN
ISO15765 6 ISO 15765-2 (transport CAN)
ISO9141 3 ISO 9141-2 (K-Line)
ISO14230 4 ISO 14230 (KWP2000)
J1850VPW 1 J1850 VPW
J1850PWM 2 J1850 PWM
FD_CAN 0x8011 CAN FD
FD_ISO15765 0x8012 ISO 15765 przez CAN FD
Pełną listę protokołów znajdziesz w specyfikacjach SAE J2534-1 i J2534-2.

Pełny przykład logu

# v2 2026-01-10 02:00:18
  0 I j0 open 192.168.12.3 > ok 4ms
  7 I j0 conn ISO15765_PS 500000 > 1 6ms
  6 I j0 flt+ 1 FLOW FFFFFFFF 688 6A8 > 0 3ms
  4 I j0 io 1 SET_CONFIG J1962_PINS:0308 > ok 8ms
  9 I j0 wr 1 100 1 > 1 6ms
	[6A8]21B0 0.000 2
  6 I j0 rd 1 2000 10 > 2 5ms
	[6A8] 2240.281 0 INT|TX_DONE
	[688] 2240.294 0 RX_START
  5 I j0 rd 1 2000 10 > 1 12ms
	[688]61B0564637524452464A46394C353632303836 2240.300 23
 20 I j0 wr 1 0 1 > 1 2ms
	[6A8]1081 0.000 2
 50 I j0 rd 1 2000 10 > 2 48ms
	[6A8] 2240.350 0 INT|TX_DONE
	[688]5081 2240.355 2
 40 I j0 io 1 CLEAR_RX_BUFFER > ok 2ms
  8 I j0 flt- 1 0 > ok 3ms
  9 I j0 disc 1 > ok 4ms
  4 I j0 close > ok 3ms

Odczyt logu

  1. j0 open 192.168.12.3 - Otwórz połączenie przez LAN
  2. j0 conn ISO15765_PS 500000 > 1 - Podłącz kanał ISO15765_PS, otrzymano channel_id=1
  3. j0 flt+ 1 FLOW ... - Ustaw filtr sterowania przepływem
  4. j0 io 1 SET_CONFIG - Ustaw parametry protokołu (podłączenie do pinów 3 i 8)
  5. j0 wr 1 100 1 - Zapisz 1 komunikat, limit czasu 100 ms, do kanału 1
    • [6A8]21B0 - CAN ID 6A8, zażądaj danych identyfikacyjnych poleceniem 21B0
  6. j0 rd 1 2000 10 > 2 - Odczytaj do 10 komunikatów, otrzymano 2 (ERR_TIMEOUT występuje, ale nie jest pokazany)
    • [6A8] ... INT|TX_DONE - odpowiedź od adaptera | transmisja zakończona (komunikaty o pomyślnym wysłaniu pakietu przychodzą bez danych, len=0)
    • [688] ... RX_START - Początek segmentowanej odpowiedzi
  7. j0 rd ... > 1 - Odczytaj, otrzymano 1 komunikat
    • [688]61B0... - Dane odpowiedzi, 23 bajty
  8. j0 io 1 CLEAR_RX_BUFFER - Wyczyść bufor RX
  9. Kontynuuj z flt-, disc, close

Wskazówki dla deweloperów

Uwaga: Format wersji 2 nie jest wstecznie kompatybilny z wersją 1. Sprawdzaj nagłówek logu, aby określić wersję.