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;