Обновление
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 для поддержания сессии
|
||||
// 50 мс
|
||||
diagnosticSessionsType->P2 = 50;
|
||||
diagnosticSessionsType->P2 = 500;
|
||||
|
||||
// Расширенный таймаут. Например, ECU может обрабатывать сложный запрос 2 секунды и отправлять NRC 0x78, затем ответ
|
||||
// 5000 мс
|
||||
|
|
@ -777,7 +777,8 @@ static uint16_t UDS_ReadDTCInformation_19(tCanUds *env) {
|
|||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
@ -794,9 +795,9 @@ static uint16_t UDS_ReadDTCInformation_19(tCanUds *env) {
|
|||
env->dataResponse[1] = env->data->data[1] & 0b01111111; // sub-function
|
||||
|
||||
// доступные биты статусов
|
||||
env->dataResponse[2] = 0xFF;
|
||||
env->dataResponse[2] = 0x09;
|
||||
// формат кодирования DTC
|
||||
env->dataResponse[3] = 1;
|
||||
env->dataResponse[3] = 0;
|
||||
// старший байт количества DTC
|
||||
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[2] = 0xFF;
|
||||
env->dataResponse[2] = 0x09;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
// конец --------------------------- Чтение ошибок ---------------------------------------------------------
|
||||
|
|
|
|||
5
CanUds.h
5
CanUds.h
|
|
@ -81,8 +81,9 @@ typedef enum {
|
|||
} eUdsIO;
|
||||
|
||||
typedef enum {
|
||||
UDS_dtc_reportNumberOfDTCByStatusMask = 0x1,
|
||||
UDS_dtc_reportDTCByStatusMask = 0x2
|
||||
UDS_dtc_reportNumberOfDTCByStatusMask = 0x01,
|
||||
UDS_dtc_reportDTCByStatusMask = 0x02,
|
||||
UDS_dtc_reportDTCBySupport = 0x0A
|
||||
} eUdsDtc;
|
||||
|
||||
typedef enum {
|
||||
|
|
|
|||
Loading…
Reference in New Issue