mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 01:43:59 +09:00
ver 26.3.8.1
- EPB 적용 : Motor_Status.c : P단 시 EPB apply - 비상 정지 로직 수정 : Drive_Mode.c : 정지 후 P단 이동 및 EPB apply(최초1회) : N-P단 이동 가능 - 함수 명 변경 : ECU_Check → System_check - Fault 판단 함수 수정 : Drive_Mode.c → System_Check.c로 이동
This commit is contained in:
parent
85257c3f29
commit
5dac4c2aaf
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -1,5 +1,5 @@
|
||||
{
|
||||
"cmake.sourceDirectory": "C:/Users/MSI/Documents/WorkSpace/git/ADM/GW",
|
||||
"cmake.sourceDirectory": "C:/Users/blueb/Documents/WorkSpace/git/ADM/GW",
|
||||
"files.associations": {
|
||||
"algorithm": "cpp",
|
||||
"any": "cpp",
|
||||
|
||||
@ -971,3 +971,9 @@ uint8_t GV_VCU_AccControlFlag = 0;
|
||||
|
||||
// VCU Emergency Stop
|
||||
uint8_t GV_VCU_Emergency_Flag = 0;
|
||||
bool isEmergencyVcu;
|
||||
bool isEmergencyRc;
|
||||
bool isEmergencyAcu;
|
||||
bool isEmergencySwitch;
|
||||
bool isEmergency;
|
||||
bool isCharging;
|
||||
@ -11,6 +11,7 @@
|
||||
#include "stdint.h"
|
||||
#include "main.h"
|
||||
#include "define.h"
|
||||
#include "stdbool.h"
|
||||
/*----------------------------------------Variables----------------------------------------*/
|
||||
/* Variable Name : IG_Process_Status
|
||||
* Data Type : uint8
|
||||
@ -981,6 +982,12 @@ extern uint8_t GV_VCU_AccControlFlag;
|
||||
|
||||
// VCU Emergency Stop
|
||||
extern uint8_t GV_VCU_Emergency_Flag;
|
||||
extern bool isEmergencyVcu;
|
||||
extern bool isEmergencyRc;
|
||||
extern bool isEmergencyAcu;
|
||||
extern bool isEmergencySwitch;
|
||||
extern bool isEmergency;
|
||||
extern bool isCharging;
|
||||
|
||||
#endif /* GLOBAL_VARIABLE_H_ */
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ void ECU3_KATECH_Logic_10ms(void)
|
||||
RCU_Arc_check();
|
||||
RWA1_Arc_check();
|
||||
RWA2_Arc_check();
|
||||
ECU_check();
|
||||
System_check();
|
||||
}
|
||||
|
||||
void ECU3_KATECH_Logic_20ms(void)
|
||||
|
||||
@ -26,6 +26,7 @@ void Motor_Status(void)
|
||||
GV_VCU_MtrDir = 0;
|
||||
|
||||
GV_VCU_EPAM_Park_Request_to_EPC = 1; // 1 = Lock
|
||||
GV_ParkBrakeRequest = 2; // 2 = EPB Apply
|
||||
}
|
||||
else if(GV_VCU_GearSelStat == 1) // R
|
||||
{
|
||||
@ -33,6 +34,7 @@ void Motor_Status(void)
|
||||
GV_VCU_MtrDir = 2;
|
||||
|
||||
GV_VCU_EPAM_Park_Request_to_EPC = 2; // 2 = Release
|
||||
GV_ParkBrakeRequest = 1; // 1 = EPB Release
|
||||
}
|
||||
else if(GV_VCU_GearSelStat == 2 && GV_VCU_Vx_Fbk == 0) // N
|
||||
{
|
||||
@ -40,6 +42,7 @@ void Motor_Status(void)
|
||||
GV_VCU_MtrDir = 0;
|
||||
|
||||
GV_VCU_EPAM_Park_Request_to_EPC = 2;
|
||||
GV_ParkBrakeRequest = 1; // 1 = EPB Release
|
||||
}
|
||||
else if(GV_VCU_GearSelStat == 3 && GV_VCU_Vx_Fbk == 0) // D
|
||||
{
|
||||
@ -47,5 +50,6 @@ void Motor_Status(void)
|
||||
GV_VCU_MtrDir = 1;
|
||||
|
||||
GV_VCU_EPAM_Park_Request_to_EPC = 2;
|
||||
GV_ParkBrakeRequest = 1; // 1 = EPB Release
|
||||
}
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ void RWA2_Arc_check(void) // Ch3 0x072 5ms
|
||||
GV_prev_RWA2_ECU_Arc = GV_RWA2_Arc;
|
||||
}
|
||||
|
||||
void ECU_check(void)
|
||||
void System_check(void)
|
||||
{
|
||||
if(GV_RC_VCU_ACU_Fault_Flag == 1 && GV_Act_Fault_Exist) GV_VCU_RC_ACU_Fault_Flag = 1;
|
||||
else GV_VCU_RC_ACU_Fault_Flag = 0;
|
||||
@ -178,6 +178,18 @@ void ECU_check(void)
|
||||
GV_ACU_ECU_Fault_Flag_Master = 1;
|
||||
else
|
||||
GV_ACU_ECU_Fault_Flag_Master = 0;
|
||||
|
||||
isEmergencyVcu = (GV_VCU_Emergency_Flag == 1
|
||||
|| GV_ACU_ECU_Fault_Flag == 1 || GV_ACU_ECU_Fault_Flag1 == 1 || GV_ACU_ECU_Fault_Flag2 == 1 || GV_ACU_ECU_Fault_Flag3 == 1
|
||||
|| GV_VCU_RC_IDB_ECU_Fault_Flag == 1 || GV_VCU_RC_RCU_ECU_Fault_Flag == 1
|
||||
|| GV_VCU_RC_RWA1_ECU_Fault_Flag == 1 || GV_VCU_RC_RWA2_ECU_Fault_Flag == 1 || GV_VCU_RC_RWA_Actuator_Fault_Flag == 1
|
||||
|| GV_VCU_RC_MCU_Actuator_Fault_Flag == 1);
|
||||
isEmergencyRc = (GV_RC_Emergency_Stop == 1);
|
||||
isEmergencyAcu = (GV_ACU_Emergency_Stop == 1);
|
||||
isEmergencySwitch = (Emergency_Switch == 1);
|
||||
|
||||
isEmergency = (isEmergencyVcu || isEmergencyRc || isEmergencySwitch || isEmergencyAcu || GV_RC_ALV_FLAG == 1 || GV_Act_Fault_Exist == 1);
|
||||
isCharging = (GV_ChargingStatus == 1 || GV_ChargingStatus == 2 || GV_ChargingStatus == 3); // 0(READY), 1(INITALIZE), 2(CHARGING), 3(EXIT)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ extern void IDB_Arc_check(void);
|
||||
extern void RCU_Arc_check(void);
|
||||
extern void RWA1_Arc_check(void);
|
||||
extern void RWA2_Arc_check(void);
|
||||
extern void ECU_check(void);
|
||||
extern void System_check(void);
|
||||
|
||||
extern void No_signal_RC(void);
|
||||
|
||||
|
||||
@ -115,22 +115,14 @@ void ExecuteDriveMode()
|
||||
|
||||
void CheckDriveMode(void)
|
||||
{
|
||||
RcRequestCheck();
|
||||
|
||||
bool isEmergencyVcu = (GV_VCU_Emergency_Flag == 1 || GV_ACU_ECU_Fault_Flag == 1 || GV_ACU_ECU_Fault_Flag1 == 1 || GV_ACU_ECU_Fault_Flag2 == 1 || GV_ACU_ECU_Fault_Flag3 == 1 || GV_VCU_RC_IDB_ECU_Fault_Flag == 1 || GV_VCU_RC_RCU_ECU_Fault_Flag == 1 || GV_VCU_RC_RWA1_ECU_Fault_Flag == 1 || GV_VCU_RC_RWA2_ECU_Fault_Flag == 1 || GV_VCU_RC_RWA_Actuator_Fault_Flag == 1 || GV_VCU_RC_MCU_Actuator_Fault_Flag == 1 || GV_VCU_RC_ACU_Fault_Flag == 1);
|
||||
bool isEmergencyRc = (GV_RC_Emergency_Stop == 1);
|
||||
bool isEmergencyAcu = (GV_ACU_Emergency_Stop == 1);
|
||||
bool isEmergencySwitch = (Emergency_Switch == 1);
|
||||
|
||||
bool isEmergency = (isEmergencyVcu || isEmergencyRc || isEmergencySwitch || isEmergencyAcu || GV_RC_ALV_FLAG == 1 || GV_Act_Fault_Exist == 1);
|
||||
bool isCharging = (GV_ChargingStatus == 1 || GV_ChargingStatus == 2 || GV_ChargingStatus == 3); // 0(READY), 1(INITALIZE), 2(CHARGING), 3(EXIT)
|
||||
|
||||
bool acuWaitOn = false;
|
||||
|
||||
const DriveMode_e curMode = GV_VCU_Drive_Mode;
|
||||
DriveMode_e nextMode = curMode;
|
||||
HandoverPhase_e nextPhase = HO_NONE;
|
||||
|
||||
RcRequestCheck();
|
||||
|
||||
if(isEmergency)
|
||||
{
|
||||
nextMode = DRIVE_MODE_EMERGENCY;
|
||||
@ -277,6 +269,7 @@ void CheckDriveMode(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
GV_VCU_Drive_Mode = (uint8_t)nextMode;
|
||||
GV_VCU_HandoverPhase = nextPhase;
|
||||
|
||||
@ -375,10 +368,22 @@ void ExecuteRCMode()
|
||||
|
||||
|
||||
/*============================== Emergency Mode ==============================*/
|
||||
bool Flag_EmergencyAutoParking = true;
|
||||
void ExecuteEmergencyMode()
|
||||
{
|
||||
GV_VCU_EPAM_Park_Request_to_EPC = 2; // EPam release
|
||||
if(GV_VCU_Vx_Fbk >= 0.1 && Flag_EmergencyAutoParking)
|
||||
GV_VCU_GearSelStat = 2; // gear N
|
||||
else if(GV_VCU_GearSelStat == 2 && GV_VCU_Vx_Fbk < 0.1 && Flag_EmergencyAutoParking)
|
||||
{
|
||||
GV_VCU_GearSelStat = 0; // gear P
|
||||
Flag_EmergencyAutoParking = false;
|
||||
}
|
||||
else if(GV_VCU_GearSelStat == 2 && GV_VCU_Vx_Fbk < 0.1 && !Flag_EmergencyAutoParking)
|
||||
GV_VCU_GearSelStat = 2; // gear N
|
||||
else if(GV_VCU_GearSelStat == 0 && GV_VCU_Vx_Fbk < 0.1 && !Flag_EmergencyAutoParking)
|
||||
GV_VCU_GearSelStat = 0; // gear P
|
||||
else
|
||||
// Do nothing, maintain current gear
|
||||
|
||||
GV_VCU_RC_Emergency_Stop = 1;
|
||||
GV_VCU_ACU_Emergency_Stop = 1;
|
||||
@ -397,6 +402,8 @@ void ExecuteEmergencyMode()
|
||||
GV_VCU_RC_Emergency_Stop = 0;
|
||||
GV_VCU_ACU_Emergency_Stop = 0;
|
||||
|
||||
Flag_EmergencyAutoParking = true;
|
||||
|
||||
GV_VCU_Drive_Mode = DRIVE_MODE_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ void SET_SW_VER(void)
|
||||
{
|
||||
GV_YEAR = 26;
|
||||
GV_Month = 3;
|
||||
GV_Day = 3;
|
||||
GV_Ver = 2;
|
||||
GV_Day = 8;
|
||||
GV_Ver = 1;
|
||||
GV_CAR_NUM = 240623;
|
||||
}
|
||||
|
||||
Binary file not shown.
BIN
[ADM] Integrated Logic/ADM_Integrated_Logic.slx.r2024b
Normal file
BIN
[ADM] Integrated Logic/ADM_Integrated_Logic.slx.r2024b
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user