From e610f56c791de38bf655676eb53b4837ee5c57eb Mon Sep 17 00:00:00 2001 From: darya Date: Thu, 19 Feb 2026 12:09:37 +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=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CanUds.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/CanUds.c b/CanUds.c index 3386b04..dfc45a8 100644 --- a/CanUds.c +++ b/CanUds.c @@ -114,8 +114,10 @@ void ReceivedTP_func(void *arg, tCanTP_data *data) { osStatus_t status = osMessageQueuePut(env->queue, data, 0, 0U); +// LoggerFormatInfo(LOGGER, LOG_SIGN, "Add queue (UDS): %d", data[0]) + if (status != osOK) { - LoggerInfoStatic(LOGGER, LOG_SIGN, "Ошибка добавления в очередь addCommandQueue") + LoggerInfoStatic(LOGGER, LOG_SIGN, "Error addCommandQueue") } } @@ -334,7 +336,7 @@ static uint16_t InputOutputControlByIdentifier_2F(tCanUds *env) { if (uds_IoDataByIdentifier_2F_com_CF[dataIdentifier_lo].data != NULL) { uint16_t size = uds_IoDataByIdentifier_2F_com_CF[dataIdentifier_lo].size; - if (env->data.len != size + 4) { + if ((env->data.data[3] == UDS_io_shortTermAdjustment) && (env->data.len != size + 4)) { return setResponseError(env, UDS_InputOutputControlByIdentifier, UDS_error_incorrectMessageLengthOrInvalidFormat); } @@ -610,8 +612,8 @@ static uint16_t Routine_Control_31(tCanUds *env) { } eUdsRoutineControlType udsRoutineControlType = env->data.data[1]; - uint8_t routineIdentifier_hi = env->data.data[1]; - uint8_t routineIdentifier_lo = env->data.data[2]; + uint8_t routineIdentifier_hi = env->data.data[2]; + uint8_t routineIdentifier_lo = env->data.data[3]; uint16_t routineIdentifier = (routineIdentifier_hi << 8) | routineIdentifier_lo; if ((udsRoutineControlType != UDS_routine_StartRoutine) && (udsRoutineControlType != UDS_routine_StopRoutine) && @@ -620,9 +622,9 @@ static uint16_t Routine_Control_31(tCanUds *env) { } env->dataResponse[0] = UDS_RoutineControl | 0b1000000; - env->dataResponse[1] = routineIdentifier_hi; - env->dataResponse[2] = routineIdentifier_lo; - env->dataResponse[3] = env->data.data[3]; + env->dataResponse[1] = env->data.data[1]; // eUdsRoutineControlType + env->dataResponse[2] = routineIdentifier_hi; + env->dataResponse[3] = routineIdentifier_lo; switch (routineIdentifier) { case UDS_routine_VIN_learn: @@ -1069,8 +1071,8 @@ void CanUds_Init( env->filterReqId[5] = 0; env->filterReqId[6] = 0; - env->filterRespId[0] = 0; - env->filterRespId[1] = 0; + env->filterRespId[0] = Diag_From_CCU_CANID; + env->filterRespId[1] = Diag_From_CCU_CANID; env->filterRespId[2] = 0; env->filterRespId[3] = 0; env->filterRespId[4] = 0; @@ -1083,7 +1085,7 @@ void CanUds_Init( env->filterDirReq[2] = 0; env->filterDirReq[3] = 0; env->filterDirReq[4] = 0; - env->filterDirReq[5] = 1; + env->filterDirReq[5] = 0; env->filterDirReq[6] = 0;