From 99a70518a7ab2fbf24cb85ecea29eb8cbc688bb8 Mon Sep 17 00:00:00 2001 From: cfif Date: Fri, 3 Apr 2026 19:02:24 +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?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MainModesArbiter.c | 79 +++++++++++++++++++++++------------- MainModesArbiter_InitStage.c | 4 +- 2 files changed, 52 insertions(+), 31 deletions(-) diff --git a/MainModesArbiter.c b/MainModesArbiter.c index 5784e67..f04c0cf 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -221,7 +221,7 @@ void LoadDataInFromModel(tMma *env) { } if (osMutexAcquire(env->ModelTask.access, 5000) == osOK) { - +/* rtDW.ADC_Key_Data_Model.ST_ReservePower = GpioPinGet( &env->gpios->power.BTS4175SGAXUMA1_ReservePowerOutput.ST_ReservePower); rtDW.ADC_Key_Data_Model.ST_BATTChiller = GpioPinGet( @@ -229,6 +229,9 @@ void LoadDataInFromModel(tMma *env) { rtDW.ADC_Key_Data_Model.EmergencyAirCleanSwitch = GpioPinGet(&env->gpios->EmergencyAirCleanSwitch); rtDW.ADC_Key_Data_Model.FireExtinguishSwitch = GpioPinGet(&env->gpios->FireExtinguishSwitch); rtDW.ADC_Key_Data_Model.Ign_Wakeup = GpioPinGet(&env->gpios->Ign_Wakeup); +*/ + + /* PWM_Get.pwmPercentFront = env->pwms->pwmFrontCaptureIO.getPwm(env->pwms->pwmFrontCaptureIO.env); PWM_Get.pwmPercentRear = env->pwms->pwmRearCaptureIO.getPwm(env->pwms->pwmRearCaptureIO.env); @@ -247,7 +250,7 @@ void LoadDataInFromModel(tMma *env) { */ - +/* rtDW.PWM_Set_Model.pwmPercentFront = env->pwms->pwmFrontCaptureIO.getPwm(env->pwms->pwmFrontCaptureIO.env); rtDW.PWM_Set_Model.pwmPercentRear = env->pwms->pwmRearCaptureIO.getPwm(env->pwms->pwmRearCaptureIO.env); rtDW.PWM_Set_Model.pwmPercentFrontReserved = env->pwms->pwmFrontCaptureIO.getPwm( @@ -261,7 +264,7 @@ void LoadDataInFromModel(tMma *env) { env->pwms->pwmFrontReservedIo.setActivePercent(env->pwms->pwmFrontReservedIo.env, PWM_Get.pwmPercentFrontReserved); env->pwms->pwmRearReservedIo.setActivePercent(env->pwms->pwmRearReservedIo.env, PWM_Get.pwmPercentRearReserved); - +*/ rtDW.t_now = GetSystemTick(); memcpy(&rtDW.ADC_Data_Model, &env->ADC_Data_Model_local, sizeof(rtDW.ADC_Data_Model)); @@ -285,8 +288,8 @@ static _Noreturn void Mma_Thread(tMma *env) { Mma_InitStage(env); // Инициализируем обе таблицы одновременно с разными значениями R1 - init_both_tables(3000.0f, // R1 для KST45 - 3000.0f, // R1 для INCAR + init_both_tables(20000.0f, // R1 для KST45 + 20000.0f, // R1 для INCAR ALG_STEINHART); @@ -305,7 +308,7 @@ static _Noreturn void Mma_Thread(tMma *env) { LoadDataInFromModel(env); -// ModelTask_StartThread(&env->ModelTask); + ModelTask_StartThread(&env->ModelTask); /* @@ -321,7 +324,8 @@ static _Noreturn void Mma_Thread(tMma *env) { for (;;) { - if (osMutexAcquire(env->adcTask0.access, 1000) == osOK) { +// if (osMutexAcquire(env->adcTask0.access, 1000) == osOK) { +/* uint16_t adc_value = env->adcTask0.ADC0_Data.Sensor_Front_Duct1; int16_t temp_incar = get_temperature_log_fast_for_table(adc_value, TABLE_KST45); float resistance = get_resistance_log_fast_for_table(temp_incar, TABLE_KST45); @@ -330,8 +334,25 @@ static _Noreturn void Mma_Thread(tMma *env) { LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "Sensor_Front_Duct1: ADC = %u, Temp = %.2f °C, Resistance = %.2f Ohm U = %.2f", adc_value, temp_incar / 10.0f, resistance, U) +*/ +/* + uint16_t adc_value = env->adcTask0.ADC0_Data.Sensor_Front_Duct2; + int16_t temp_incar = get_temperature_log_fast_for_table(adc_value, TABLE_KST45); + float resistance = get_resistance_log_fast_for_table(temp_incar, TABLE_KST45); + float U = (float) adc_value * 5.0f / 4095.0f; + LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "Sensor_Front_Duct1: ADC = %u, Temp = %.2f °C, Resistance = %.2f Ohm U = %.2f", + adc_value, temp_incar / 10.0f, resistance, U) +*/ +/* + uint16_t adc_value = env->adcTask0.ADC0_Data.Sensor_Ambient_Temp; + int16_t Sensor_Ambient_Temp = get_temperature_log_fast_for_table(adc_value, TABLE_KST45); + float resistance = get_resistance_log_fast_for_table(Sensor_Ambient_Temp, TABLE_KST45); + float U = (float) adc_value * 5.0f / 4095.0f; + LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "Sensor_Ambient_Temp: ADC = %u, Temp = %.2f °C, Resistance = %.2f Ohm U = %.2f", + adc_value, Sensor_Ambient_Temp / 10.0f, resistance, U) +*/ //uint16_t adc_value = env->adcTask0.ADC0_Data.Sensor_Incar_Temp_FL; //int16_t temp_incar = get_temperature_log_fast_for_table(adc_value, TABLE_INCAR); //LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "Sensor_Incar_Temp_FL: ADC = %u, Temp = %.2f °C", adc_value, @@ -339,14 +360,14 @@ static _Noreturn void Mma_Thread(tMma *env) { - osMutexRelease(env->adcTask0.access); - } +// osMutexRelease(env->adcTask0.access); +// } /* - env->pwms->pwmFrontIo.setActivePercent(env->pwms->pwmFrontIo.env, 40); - env->pwms->pwmRearIo.setActivePercent(env->pwms->pwmRearIo.env, 50); - env->pwms->pwmFrontReservedIo.setActivePercent(env->pwms->pwmFrontReservedIo.env, 60); - env->pwms->pwmRearReservedIo.setActivePercent(env->pwms->pwmRearReservedIo.env, 70); + env->pwms->pwmFrontIo.setActivePercent(env->pwms->pwmFrontIo.env, 10); + env->pwms->pwmRearIo.setActivePercent(env->pwms->pwmRearIo.env, 11); + env->pwms->pwmFrontReservedIo.setActivePercent(env->pwms->pwmFrontReservedIo.env, 12); + env->pwms->pwmRearReservedIo.setActivePercent(env->pwms->pwmRearReservedIo.env, 13); SystemDelayMs(10); uint8_t pwm1 = env->pwms->pwmFrontCaptureIO.getPwm(env->pwms->pwmFrontCaptureIO.env); @@ -364,7 +385,7 @@ static _Noreturn void Mma_Thread(tMma *env) { uint8_t pwm4 = env->pwms->pwmRearCaptureIO.getPwm(env->pwms->pwmRearReservedCaptureIO.env); LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "PWM (Rear Reserve) = %d", pwm4) */ -/* + LoadDataInFromModel(env); LinActuatorWork(env, &env->linTaskActuator1, @@ -372,24 +393,24 @@ static _Noreturn void Mma_Thread(tMma *env) { &env->ModelTask.triggerActuatorCmdBus_1, &env->actuator_Ch0_Input_Model_local_1, &rtDW.Actuator_Ch0_Status_Model, &env->ModelTask.triggerCommand1, "Ln1 "); - +/* LinActuatorWork(env, &env->linTaskActuator2, &env->actuator_Ch1_Command_Model_local_2, &env->ModelTask.triggerActuatorCmdBus_2, &env->actuator_Ch1_Input_Model_local_2, &rtDW.Actuator_Ch1_Status_Model, &env->ModelTask.triggerCommand2, "Ln2 "); - +*/ LinActuatorWork(env, &env->linTaskActuator3, &env->actuator_Ch2_Command_Model_local_3, &env->ModelTask.triggerActuatorCmdBus_3, &env->actuator_Ch2_Input_Model_local_3, &rtDW.Actuator_Ch2_Status_Model, &env->ModelTask.triggerCommand3, "Ln3 "); -*/ - SystemDelayMs(250); + + SystemDelayMs(200); GpioPinToggle(&env->gpios->led.LED_G); - + SystemDelayMs(200); /* if (RGM_SRS_WAKEUP_MASK == (RGM->SRS & RGM_SRS_WAKEUP_MASK)) { } else { @@ -414,7 +435,7 @@ static _Noreturn void Mma_Thread(tMma *env) { /* uint8_t local[9]; - tLinTaskActuator *linTaskActuator = &env->linTaskActuator1; + tLinTaskActuator *linTaskActuator = &env->linTaskActuator3; if (osMutexAcquire(linTaskActuator->access, 5000) == osOK) { @@ -429,7 +450,7 @@ static _Noreturn void Mma_Thread(tMma *env) { switch (step) { case 0: { - resetStall(linTaskActuator, local); + resetStall(linTaskActuator, local, LOG_TASK_ARB); linTaskActuator->linCommandActuator[0].COM = LIN_ACT_CFR_MOD; linTaskActuator->linCommandActuator[0].BUS_ADR = 0; @@ -440,7 +461,7 @@ static _Noreturn void Mma_Thread(tMma *env) { } case 1: { - resetStall(linTaskActuator, local); + resetStall(linTaskActuator, local,LOG_TASK_ARB); linTaskActuator->linCommandActuator[0].COM = LIN_ACT_CFR_INI; linTaskActuator->linCommandActuator[0].BUS_ADR = 0; @@ -450,7 +471,7 @@ static _Noreturn void Mma_Thread(tMma *env) { break; } case 2: { - resetStall(linTaskActuator, local); + resetStall(linTaskActuator, local,LOG_TASK_ARB); linTaskActuator->linCommandActuator[0].COM = LIN_ACT_CFR_MOD; linTaskActuator->linCommandActuator[0].BUS_ADR = 0; @@ -461,7 +482,7 @@ static _Noreturn void Mma_Thread(tMma *env) { } case 3: { - resetStall(linTaskActuator, local); + resetStall(linTaskActuator, local,LOG_TASK_ARB); linTaskActuator->linCommandActuator[0].COM = LIN_ACT_CFR_SET; linTaskActuator->linCommandActuator[0].BUS_ADR = 0; @@ -503,7 +524,7 @@ static _Noreturn void Mma_Thread(tMma *env) { case 5: { - resetStall(linTaskActuator, local); + resetStall(linTaskActuator, local,LOG_TASK_ARB); linTaskActuator->linCommandActuator[0].COM = LIN_ACT_CFR_MOD; linTaskActuator->linCommandActuator[0].BUS_ADR = 0; @@ -516,7 +537,7 @@ static _Noreturn void Mma_Thread(tMma *env) { case 6: { - resetStall(linTaskActuator, local); + resetStall(linTaskActuator, local,LOG_TASK_ARB); linTaskActuator->linCommandActuator[0].COM = LIN_ACT_CFR_INI; linTaskActuator->linCommandActuator[0].BUS_ADR = 0; @@ -527,7 +548,7 @@ static _Noreturn void Mma_Thread(tMma *env) { } case 7: { - resetStall(linTaskActuator, local); + resetStall(linTaskActuator, local,LOG_TASK_ARB); linTaskActuator->linCommandActuator[0].COM = LIN_ACT_CFR_MOD; linTaskActuator->linCommandActuator[0].BUS_ADR = 0; @@ -539,7 +560,7 @@ static _Noreturn void Mma_Thread(tMma *env) { case 8: { - resetStall(linTaskActuator, local); + resetStall(linTaskActuator, local,LOG_TASK_ARB); linTaskActuator->linCommandActuator[0].COM = LIN_ACT_CFR_SET; linTaskActuator->linCommandActuator[0].BUS_ADR = 0; @@ -636,7 +657,7 @@ static _Noreturn void Mma_Thread(tMma *env) { } */ -// SystemDelayMs(10); + } } diff --git a/MainModesArbiter_InitStage.c b/MainModesArbiter_InitStage.c index 6362a48..98fcfc6 100644 --- a/MainModesArbiter_InitStage.c +++ b/MainModesArbiter_InitStage.c @@ -98,7 +98,7 @@ static void Mma_InitSubSystems(tMma *env) { // Indication_Init(&env->Indication, HVAC_DEV_MODE_STARTUP); CommandLine_Init(&env->cli, &env->serialPorts->SerialPortLog_IO, &env->serialPorts->cliVirtualPortOut_Io); - CommandLine_StartThread(&env->cli); +// CommandLine_StartThread(&env->cli); Diagnostic_Init(&env->Diagnostic, &env->slog.logger); @@ -145,7 +145,7 @@ static void Mma_InitSubSystems(tMma *env) { tLinData *linData5 = Lin5_Init(GetLin123CallbackHandler); Lin_5_Init(&env->linTaskSensor5, linData5, &env->linPorts->lin5_Io, &env->slog.logger); - Lin5_StartThread(&env->linTaskSensor5); +// Lin5_StartThread(&env->linTaskSensor5); Adc_0_Init(&env->adcTask0, &env->adcs->adc_0_IO, env->gpios); Adc_0_StartThread(&env->adcTask0);