ADM/GW/src/Logic/Param_Match.c
3minbe f7e8a96a61 1.주행안전 시나리오 기반 로직 최신화
2.주행안전 시나리오 기반 VCU CAN 수정
3.주행안전 시나리오 기반 DBC 최신화
2025-07-16 17:20:17 +09:00

108 lines
4.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Param_Match.c
*
* Created on: 2025. 4. 21.
* Author: MSI
*/
#include "ADM_Integrated_Logic.h"
#include "Global_Variable.h"
void Input_Data_Set_Logic(void)
{
ADM_Integrated_Logic_U.GV_MCU_RPM = GV_MCU_RPM;
ADM_Integrated_Logic_U.GV_Operation_Mode = GV_VCU_Drive_Mode;
ADM_Integrated_Logic_U.GV_Vx_Fbk = GV_VCU_Vx_Fbk;
ADM_Integrated_Logic_U.GV_IMU_AX_Val = GV_IMU_AX_Val;
ADM_Integrated_Logic_U.GV_IMU_AY_Val = GV_IMU_AY_Val;
ADM_Integrated_Logic_U.GV_IMU_AZ_Val = GV_IMU_AZ_Val;
ADM_Integrated_Logic_U.GV_IMU_PitchRtVal = GV_IMU_PitchRtVal;
ADM_Integrated_Logic_U.GV_ACU_Fault_Flag = GV_RC_VCU_ACU_Fault_Flag;
ADM_Integrated_Logic_U.GV_MCU_Actuator_Fault_Flag = GV_RC_VCU_MCU_Actuator_Fault_Flag;
ADM_Integrated_Logic_U.GV_IDB_ECU_Fault_Flag = GV_VCU_RC_IDB_ECU_Fault_Flag;
ADM_Integrated_Logic_U.GV_RCU_ECU_Fault_Flag = GV_VCU_RC_RCU_ECU_Fault_Flag;
ADM_Integrated_Logic_U.GV_RWA1_ECU_Fault_Flag = GV_VCU_RC_RWA1_ECU_Fault_Flag;
ADM_Integrated_Logic_U.GV_RWA2_ECU_Fault_Flag = GV_VCU_RC_RWA2_ECU_Fault_Flag;
ADM_Integrated_Logic_U.GV_RWA_Actuator_Fault = GV_RC_VCU_RWA_Actuator_Fault_Flag;
if(GV_VCU_Drive_Mode == 0) // ACU Mode
{
ADM_Integrated_Logic_U.GV_BrakeTorqueCommand = GV_ACU_BrakeTorqueCommand;
ADM_Integrated_Logic_U.GV_Vx_Command = GV_ACU_Vx_Command;
ADM_Integrated_Logic_U.GV_Vx_Limit = 40;
ADM_Integrated_Logic_U.GV_VCU_GearSelStat = GV_ACU_VCU_GearPos;
ADM_Integrated_Logic_U.GV_RWA_RackAngleCommand = GV_ACU_RWA_cmd_deg;
ADM_Integrated_Logic_U.GV_RWS_RackAngleCommand = GV_ACU_RWS_cmd_deg;
}
else if(GV_VCU_Drive_Mode == 1) // RC Mode
{
ADM_Integrated_Logic_U.GV_BrakeTorqueCommand = GV_RC_BrakeTorqueCommand;
ADM_Integrated_Logic_U.GV_Vx_Command = GV_RC_Vx_Command;
ADM_Integrated_Logic_U.GV_Vx_Limit = GV_RC_VX_Limit;
ADM_Integrated_Logic_U.GV_VCU_GearSelStat = GV_RC_GearSelStat;
ADM_Integrated_Logic_U.GV_RWA_RackAngleCommand = GV_RC_RWA_RackAngleCommand;
ADM_Integrated_Logic_U.GV_RWS_RackAngleCommand = 0;
}
else if(GV_VCU_Drive_Mode == 2) //Emergency Mode
{
ADM_Integrated_Logic_U.GV_Vx_Command = 0;
}
if(GV_MCU_Fault_Check == 0) ADM_Integrated_Logic_U.GV_MCU_EstTrq = GV_MCU_EstTrq;
else ADM_Integrated_Logic_U.GV_MCU_EstTrq = 0;
}
void Output_Data_Set_Logic(void)
{
GV_Brake_Torque_Command = ADM_Integrated_Logic_Y.GV_Brake_Command;
GV_Motor_Torque_Cmd = ADM_Integrated_Logic_Y.GV_Motor_Torque_Cmd;
GV_VCU_Hill_TrqCmd = ADM_Integrated_Logic_Y.GV_Hill_Torque_Assist;
GV_RWA_040_RackAngleCmd = ADM_Integrated_Logic_Y.GV_Master_Rack_Angle_Cmd;
GV_RWA2_040_RackAngleCmd = ADM_Integrated_Logic_Y.GV_Master_Rack_Angle_Cmd;
GV_RWS1_040_RackAngleCmd = ADM_Integrated_Logic_Y.GV_RWS_RackAngleCmd1;
GV_RWS2_040_RackAngleCmd = ADM_Integrated_Logic_Y.GV_RWS_RackAngleCmd1;
GV_VCU_GearSelStat = ADM_Integrated_Logic_Y.GV_Gear_Postion_Out;
// GV_Act_Fault_Exist = ADM_Integrated_Logic_Y.Act_Fault_Exist; // EILS
GV_Act_Fault_Exist = 0; // Real
GV_Target_MCU_Out = ADM_Integrated_Logic_Y.Target_MCU_Out;
GV_Target_IDB_Out = ADM_Integrated_Logic_Y.Target_IDB_Out;
GV_Target_RWA_Out = ADM_Integrated_Logic_Y.Target_RWA_Out;
if (GV_RWA_040_RackAngleCmd > GV_RWA_Limit) GV_RWA_040_RackAngleCmd = GV_RWA_Limit;
else if (GV_RWA_040_RackAngleCmd < -GV_RWA_Limit) GV_RWA_040_RackAngleCmd = -GV_RWA_Limit;
if (GV_RWA2_040_RackAngleCmd > GV_RWA_Limit) GV_RWA2_040_RackAngleCmd = GV_RWA_Limit;
else if (GV_RWA2_040_RackAngleCmd < -GV_RWA_Limit) GV_RWA2_040_RackAngleCmd = -GV_RWA_Limit;
if (GV_RWS1_040_RackAngleCmd > 200) GV_RWS1_040_RackAngleCmd = 200;
else if (GV_RWS1_040_RackAngleCmd < -200) GV_RWS1_040_RackAngleCmd = -200;
if (GV_RWS2_040_RackAngleCmd > 200) GV_RWS2_040_RackAngleCmd = 200;
else if (GV_RWS2_040_RackAngleCmd < -200) GV_RWS2_040_RackAngleCmd = -200;
if(GV_VCU_Drive_Mode == 0) // ACU mode
{
if(GV_VCU_GearSelStat == 1 || GV_VCU_GearSelStat == 3) GV_Master_Brake_Torque_Command = GV_ACU_BrakeTorqueCommand + GV_Brake_Torque_Command;
else GV_Master_Brake_Torque_Command = GV_ACU_BrakeTorqueCommand;
}
else if(GV_VCU_Drive_Mode == 1) // RC mode
{
if(GV_VCU_GearSelStat == 1 || GV_VCU_GearSelStat == 3) GV_Master_Brake_Torque_Command = GV_RC_BrakeTorqueCommand + GV_Brake_Torque_Command;
else GV_Master_Brake_Torque_Command = GV_RC_BrakeTorqueCommand;
}
else if(GV_VCU_Drive_Mode == 2) // Emergency mode
{
GV_Master_Brake_Torque_Command = GV_Brake_Torque_Command;
}
else if(GV_VCU_Drive_Mode == 3) // Default mode
{
GV_Motor_Torque_Cmd = 0;
GV_Master_Brake_Torque_Command = GV_RC_BrakeTorqueCommand;
// GV_Master_Brake_Command = 0; // <20><EFBFBD><E2BABB><EFBFBD><EFBFBD> <20><> <20><EFBFBD><EAB7B9>ũ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// GV_MASTER_RWA_RackAngleCommand = 0; // <20><>Ƽ<EFBFBD><20>߾<EFBFBD> <20><><EFBFBD><EFBFBD>
// GV_MASTER_RWS_RackAngleCommand = 0;
}
}