diff --git a/LinSensorTasks.c b/LinSensorTasks.c index abfdd63..9c5990c 100644 --- a/LinSensorTasks.c +++ b/LinSensorTasks.c @@ -336,25 +336,30 @@ static lin_event_id_t Lin5_Scheduler(tLin5TaskSensor *env) { for (uint8_t i = 0; i < LIN5_SENSOR_COUNT; ++i) { set_led_group(&env->d_CCU_DRS_Req, i, env->linStateSensor.LED_COUNT[i]); } - env->d_CCU_DRS_Req.BCM_SwIndIntens_Stat = 1; + env->d_CCU_DRS_Req.BCM_SwIndIntens_Stat = 0; env->d_CCU_DRS_Req.BCM_IndFadingTime_Req = 2; -// if (*((uint32_t *) &env->d_CCU_DRS_Req) != *((uint32_t *) &env->d_old_CCU_DRS_Req)) { -// *((uint32_t *) &env->d_old_CCU_DRS_Req) = *((uint32_t *) &env->d_CCU_DRS_Req); + ret = Set_CCU_DRS_Req(env->linIo, env->linData, &env->d_CCU_DRS_Req); if (ret == LIN_TX_COMPLETED) { #if (LOG_LIN5_SENSOR == 1) - LoggerInfoStatic(LOGGER, LOG_SIGN5, "Sensor Set_CCU_DRS_Req - OK") + + if (*((uint32_t *) &env->d_CCU_DRS_Req) != *((uint32_t *) &env->d_old_CCU_DRS_Req)) { + *((uint32_t *) &env->d_old_CCU_DRS_Req) = *((uint32_t *) &env->d_CCU_DRS_Req); + LoggerInfoStatic(LOGGER, LOG_SIGN5, "Sensor Set_CCU_DRS_Req - OK") + } #endif } else { #if (LOG_LIN5_SENSOR == 1) - LoggerFormatInfo(LOGGER, LOG_SIGN5, "Sensor Set_CCU_DRS_Req (ERROR %d)", ret) + if (*((uint32_t *) &env->d_CCU_DRS_Req) != *((uint32_t *) &env->d_old_CCU_DRS_Req)) { + *((uint32_t *) &env->d_old_CCU_DRS_Req) = *((uint32_t *) &env->d_CCU_DRS_Req); + LoggerFormatInfo(LOGGER, LOG_SIGN5, "Sensor Set_CCU_DRS_Req (ERROR %d)", ret) + } #endif } -// } for (uint8_t i = 0; i < LIN5_SENSOR_COUNT; ++i) { @@ -372,25 +377,37 @@ static lin_event_id_t Lin5_Scheduler(tLin5TaskSensor *env) { if (ret == LIN_RX_COMPLETED) { env->linStateSensor.error_connect[i] = 0; #if (LOG_LIN5_SENSOR == 1) - LoggerFormatInfo(LOGGER, LOG_SIGN5, - "Sensor number %d: DRS_Btn_Stat = %d DRS_LinRespErr_Stat = %d DRS_Err_Stat = %d", - i, - env->linStateSensor.d_DRS_Stat[i].DRS_Btn_Stat, - env->linStateSensor.d_DRS_Stat[i].DRS_LinRespErr_Stat, - env->linStateSensor.d_DRS_Stat[i].DRS_Err_Stat - ) + + if ((*((uint8_t *) &env->linStateSensor.d_DRS_Stat[i]) != + *((uint8_t *) &env->linStateSensor.d_old_DRS_Stat[i])) || + (env->linStateSensor.LED_COUNT[i] != env->linStateSensor.LED_OLD_COUNT[i])) { + + *((uint8_t *) &env->linStateSensor.d_old_DRS_Stat[i]) = *((uint8_t *) &env->linStateSensor.d_DRS_Stat[i]); + env->linStateSensor.LED_OLD_COUNT[i] = env->linStateSensor.LED_COUNT[i]; + + LoggerFormatInfo(LOGGER, LOG_SIGN5, + "Sensor number %d: COUNT = %d DRS_Btn_Stat = %d DRS_LinRespErr_Stat = %d DRS_Err_Stat = %d", + i, + env->linStateSensor.LED_COUNT[i], + env->linStateSensor.d_DRS_Stat[i].DRS_Btn_Stat, + env->linStateSensor.d_DRS_Stat[i].DRS_LinRespErr_Stat, + env->linStateSensor.d_DRS_Stat[i].DRS_Err_Stat + ) + } #endif } else { env->linStateSensor.error_connect[i] = 1; #if (LOG_LIN5_SENSOR == 1) - LoggerFormatInfo(LOGGER, LOG_SIGN5, "Sensor number %d: ERROR Get_FPL_Stat = %d", i, ret) + if (env->linStateSensor.error_connect[i] != env->linStateSensor.error_old_connect[i]) { + env->linStateSensor.error_old_connect[i] = env->linStateSensor.error_connect[i]; + LoggerFormatInfo(LOGGER, LOG_SIGN5, "Sensor number %d: ERROR Get_FPL_Stat = %d", i, ret) + } #endif } } - return LIN_NO_EVENT; } diff --git a/LinSensorTasks.h b/LinSensorTasks.h index 8f0145f..48a5651 100644 --- a/LinSensorTasks.h +++ b/LinSensorTasks.h @@ -245,8 +245,11 @@ typedef struct { struct { tDRS_Stat d_DRS_Stat[LIN5_SENSOR_COUNT]; + tDRS_Stat d_old_DRS_Stat[LIN5_SENSOR_COUNT]; uint8_t LED_COUNT[LIN5_SENSOR_COUNT]; + uint8_t LED_OLD_COUNT[LIN5_SENSOR_COUNT]; uint8_t error_connect[LIN5_SENSOR_COUNT]; + uint8_t error_old_connect[LIN5_SENSOR_COUNT]; } linStateSensor; uint8_t error_connect; @@ -254,6 +257,7 @@ typedef struct { tCCU_DRS_Req d_CCU_DRS_Req; tCCU_DRS_Req d_old_CCU_DRS_Req; + struct { osThreadId_t id; uint32_t stack[384];