Обновление
This commit is contained in:
parent
61578fbbce
commit
df041e46eb
24
CanUds.c
24
CanUds.c
|
|
@ -300,7 +300,7 @@ static uint16_t DiagnosticSessionControl_10(tCanUds *env) {
|
||||||
|
|
||||||
// Нормальный таймаут. Важно: Клиент может отправлять TesterPresent для поддержания сессии
|
// Нормальный таймаут. Важно: Клиент может отправлять TesterPresent для поддержания сессии
|
||||||
// 50 мс
|
// 50 мс
|
||||||
diagnosticSessionsType->P2 = 50;
|
diagnosticSessionsType->P2 = 500;
|
||||||
|
|
||||||
// Расширенный таймаут. Например, ECU может обрабатывать сложный запрос 2 секунды и отправлять NRC 0x78, затем ответ
|
// Расширенный таймаут. Например, ECU может обрабатывать сложный запрос 2 секунды и отправлять NRC 0x78, затем ответ
|
||||||
// 5000 мс
|
// 5000 мс
|
||||||
|
|
@ -777,7 +777,8 @@ static uint16_t UDS_ReadDTCInformation_19(tCanUds *env) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((com->sub_function != UDS_dtc_reportNumberOfDTCByStatusMask) &&
|
if ((com->sub_function != UDS_dtc_reportNumberOfDTCByStatusMask) &&
|
||||||
(com->sub_function != UDS_dtc_reportDTCByStatusMask)) {
|
(com->sub_function != UDS_dtc_reportDTCByStatusMask) &&
|
||||||
|
(com->sub_function != UDS_dtc_reportDTCBySupport)) {
|
||||||
return setResponseError(env, UDS_ReadDTCInformation, UDS_error_sub_functionNotSupported);
|
return setResponseError(env, UDS_ReadDTCInformation, UDS_error_sub_functionNotSupported);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -794,9 +795,9 @@ static uint16_t UDS_ReadDTCInformation_19(tCanUds *env) {
|
||||||
env->dataResponse[1] = env->data->data[1] & 0b01111111; // sub-function
|
env->dataResponse[1] = env->data->data[1] & 0b01111111; // sub-function
|
||||||
|
|
||||||
// доступные биты статусов
|
// доступные биты статусов
|
||||||
env->dataResponse[2] = 0xFF;
|
env->dataResponse[2] = 0x09;
|
||||||
// формат кодирования DTC
|
// формат кодирования DTC
|
||||||
env->dataResponse[3] = 1;
|
env->dataResponse[3] = 0;
|
||||||
// старший байт количества DTC
|
// старший байт количества DTC
|
||||||
env->dataResponse[4] = 0;
|
env->dataResponse[4] = 0;
|
||||||
|
|
||||||
|
|
@ -813,7 +814,7 @@ static uint16_t UDS_ReadDTCInformation_19(tCanUds *env) {
|
||||||
env->dataResponse[1] = env->data->data[1] & 0b01111111; // sub-function
|
env->dataResponse[1] = env->data->data[1] & 0b01111111; // sub-function
|
||||||
|
|
||||||
// доступные биты статусов
|
// доступные биты статусов
|
||||||
env->dataResponse[2] = 0xFF;
|
env->dataResponse[2] = 0x09;
|
||||||
|
|
||||||
response_size = 3;
|
response_size = 3;
|
||||||
|
|
||||||
|
|
@ -821,6 +822,19 @@ static uint16_t UDS_ReadDTCInformation_19(tCanUds *env) {
|
||||||
response_size += SetGetDiagnosticData(env->Diagnostic, DIAGNOSTIC_UDS_ReadDTCInformation_19_2, &diagnosticDTC);
|
response_size += SetGetDiagnosticData(env->Diagnostic, DIAGNOSTIC_UDS_ReadDTCInformation_19_2, &diagnosticDTC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (com->sub_function == UDS_dtc_reportDTCBySupport) {
|
||||||
|
|
||||||
|
env->dataResponse[1] = env->data->data[1] & 0b01111111; // sub-function
|
||||||
|
|
||||||
|
// доступные биты статусов
|
||||||
|
env->dataResponse[2] = 0x09;
|
||||||
|
|
||||||
|
response_size = 3;
|
||||||
|
|
||||||
|
tDiagnosticDTC diagnosticDTC = {env->data->data[2], &env->dataResponse[response_size]};
|
||||||
|
response_size += SetGetDiagnosticData(env->Diagnostic, DIAGNOSTIC_UDS_ReadDTCInformation_19_A, &diagnosticDTC);
|
||||||
|
}
|
||||||
|
|
||||||
return response_size;
|
return response_size;
|
||||||
}
|
}
|
||||||
// конец --------------------------- Чтение ошибок ---------------------------------------------------------
|
// конец --------------------------- Чтение ошибок ---------------------------------------------------------
|
||||||
|
|
|
||||||
5
CanUds.h
5
CanUds.h
|
|
@ -81,8 +81,9 @@ typedef enum {
|
||||||
} eUdsIO;
|
} eUdsIO;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
UDS_dtc_reportNumberOfDTCByStatusMask = 0x1,
|
UDS_dtc_reportNumberOfDTCByStatusMask = 0x01,
|
||||||
UDS_dtc_reportDTCByStatusMask = 0x2
|
UDS_dtc_reportDTCByStatusMask = 0x02,
|
||||||
|
UDS_dtc_reportDTCBySupport = 0x0A
|
||||||
} eUdsDtc;
|
} eUdsDtc;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue