From 61578fbbced18b7ab6fd39aeae1244da798bf44a Mon Sep 17 00:00:00 2001 From: cfif Date: Tue, 21 Apr 2026 14:13:46 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CanUds.c | 8 ++++---- DiagnosticSessionControl_10.h | 8 ++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CanUds.c b/CanUds.c index d8d6bac..bbbe97e 100644 --- a/CanUds.c +++ b/CanUds.c @@ -299,12 +299,12 @@ static uint16_t DiagnosticSessionControl_10(tCanUds *env) { diagnosticSessionsType->diagnosticSessionType = env->data->data[1]; // Нормальный таймаут. Важно: Клиент может отправлять TesterPresent для поддержания сессии - diagnosticSessionsType->sessionParameterRecord[0] = 0; - diagnosticSessionsType->sessionParameterRecord[1] = 0x32; + // 50 мс + diagnosticSessionsType->P2 = 50; // Расширенный таймаут. Например, ECU может обрабатывать сложный запрос 2 секунды и отправлять NRC 0x78, затем ответ - diagnosticSessionsType->sessionParameterRecord[2] = 0x01; - diagnosticSessionsType->sessionParameterRecord[3] = 0xF4; + // 5000 мс + diagnosticSessionsType->P2Ex = 5000; return 6; } diff --git a/DiagnosticSessionControl_10.h b/DiagnosticSessionControl_10.h index c1cd637..e96d165 100644 --- a/DiagnosticSessionControl_10.h +++ b/DiagnosticSessionControl_10.h @@ -7,12 +7,14 @@ #include "stdint.h" +#pragma scalar_storage_order big-endian + // Для готовности загрузки модема typedef struct __attribute__ ((packed)) { uint8_t ServiceId; uint8_t diagnosticSessionType; - uint8_t sessionParameterRecord[4]; - + uint16_t P2; + uint16_t P2Ex; } tDiagnosticSessionsType; @@ -22,4 +24,6 @@ typedef struct __attribute__ ((packed)) { uint8_t diagnosticSessionType; } tDiagnosticSessionControlRequest; +#pragma scalar_storage_order little-endian + #endif //SMART_COMPONENTS_UPDATE_DIAGNOSTICSESSIONCONTROL_10_H