Обновление

This commit is contained in:
cfif 2026-04-01 17:27:19 +03:00
parent 99e71c5e83
commit 56ef9cfdd7
1 changed files with 35 additions and 12 deletions

View File

@ -7,7 +7,7 @@
#include "HVAC_model.h"
#include "LinActuatorWork.h"
#include "ADC_Temp_Table.h"
#include "ADC_Temp.h"
const char LOG_TASK_ARB[] = "Arb";
@ -222,8 +222,10 @@ 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(&env->gpios->power.BTS4175SGAXUMA1_ShutOFFValveBatteryChiller.ST_BATTChiller);
rtDW.ADC_Key_Data_Model.ST_ReservePower = GpioPinGet(
&env->gpios->power.BTS4175SGAXUMA1_ReservePowerOutput.ST_ReservePower);
rtDW.ADC_Key_Data_Model.ST_BATTChiller = GpioPinGet(
&env->gpios->power.BTS4175SGAXUMA1_ShutOFFValveBatteryChiller.ST_BATTChiller);
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);
@ -248,14 +250,16 @@ 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(env->pwms->pwmFrontReservedCaptureIO.env);
rtDW.PWM_Set_Model.pwmPercentRearReserved= env->pwms->pwmRearCaptureIO.getPwm(env->pwms->pwmRearReservedCaptureIO.env);
rtDW.PWM_Set_Model.pwmPercentFrontReserved = env->pwms->pwmFrontCaptureIO.getPwm(
env->pwms->pwmFrontReservedCaptureIO.env);
rtDW.PWM_Set_Model.pwmPercentRearReserved = env->pwms->pwmRearCaptureIO.getPwm(
env->pwms->pwmRearReservedCaptureIO.env);
env->pwms->pwmFrontIo.setActivePercent(env->pwms->pwmFrontIo.env, PWM_Get.pwmPercentFront);
env->pwms->pwmRearIo.setActivePercent(env->pwms->pwmRearIo.env, PWM_Get.pwmPercentRear);
env->pwms->pwmFrontReservedIo.setActivePercent(env->pwms->pwmFrontReservedIo.env, PWM_Get.pwmPercentFrontReserved);
env->pwms->pwmFrontReservedIo.setActivePercent(env->pwms->pwmFrontReservedIo.env,
PWM_Get.pwmPercentFrontReserved);
env->pwms->pwmRearReservedIo.setActivePercent(env->pwms->pwmRearReservedIo.env, PWM_Get.pwmPercentRearReserved);
@ -280,7 +284,12 @@ static _Noreturn void Mma_Thread(tMma *env) {
// Запуск устройства
Mma_InitStage(env);
init_fast_lookup_table(ALG_STEINHART);
// Инициализируем обе таблицы одновременно с разными значениями R1
init_both_tables(3000.0f, // R1 для KST45
3000.0f, // R1 для INCAR
ALG_STEINHART);
can_rx_message_type frame_data;
// uint32_t step = 0;
@ -312,6 +321,20 @@ static _Noreturn void Mma_Thread(tMma *env) {
for (;;) {
if (osMutexAcquire(env->adcTask0.access, 1000) == osOK) {
uint16_t adc_value = env->adcTask0.ADC0_Data.Sensor_Front_Duct1;
//ANALOG_SENSOR(env, "Sensor_Front_Duct1", env->adcTask0.ADC0_Data.Sensor_Front_Duct1);
// Получаем температуру для INCAR
int16_t temp_incar = get_temperature_log_fast_for_table(adc_value, TABLE_INCAR);
LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "Sensor_Front_Duct1: ADC = %u, Temp = %.2f °C", adc_value,
temp_incar / 10.0f)
osMutexRelease(env->adcTask0.access);
}
/*
env->pwms->pwmFrontIo.setActivePercent(env->pwms->pwmFrontIo.env, 40);
env->pwms->pwmRearIo.setActivePercent(env->pwms->pwmRearIo.env, 50);
@ -334,7 +357,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,
@ -354,7 +377,7 @@ static _Noreturn void Mma_Thread(tMma *env) {
&env->ModelTask.triggerActuatorCmdBus_3,
&env->actuator_Ch2_Input_Model_local_3,
&rtDW.Actuator_Ch2_Status_Model, &env->ModelTask.triggerCommand3, "Ln3 ");
*/
SystemDelayMs(50);
GpioPinToggle(&env->gpios->led.LED_G);