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