Engine idle, Generating 시퀀스 수정
This commit is contained in:
41
State.c
41
State.c
@@ -48,6 +48,7 @@ static void CKeyCheck(Uint32 ulChangeKey, Uint32 ulKeyRead);
|
||||
static void CMoveFocusLine(Uint16 maxLines, Uint16 direction);
|
||||
static void CChangePasswordDigit(Uint16 direction);
|
||||
static inline void CCalcAdcSum(CAdcCalcValue *AdcBuff);
|
||||
static inline Uint16 CIsBitSet(Uint32 value, Uint16 bitNumber);
|
||||
|
||||
/* ========================================================================= */
|
||||
/* 5. Global Variables & Structure Initialization (전역 변수 및 구조체 초기화) */
|
||||
@@ -168,6 +169,11 @@ void CDisplayAlarmPopup(void)
|
||||
// WarningValue는 경고가 사라질수 있기 때문에 랫치 하지 않음
|
||||
Uint32 WarningValue = (((Uint32)Rx210.GcuWarning & (Uint32)MASK_LOW_NIBBLE) | (((Uint32)Rx310.EcuWarning & 0xFDU) << 4U));
|
||||
|
||||
Uint16 i;
|
||||
Uint16 UpdatePage = 0U; // 0: 유지, 1: Fault 이동, 2: Warning 이동
|
||||
Uint64 TargetFault = 0U; // 검색할 대상 변수 (Fault)
|
||||
Uint32 TargetWarning = 0U; // 검색할 대상 변수 (Warning)
|
||||
|
||||
// 0 → 1로 바뀐 비트만 추출
|
||||
Uint64 NewFault = FaultValue & (~PrevFaultValue);
|
||||
Uint32 NewWarning = WarningValue & (~PrevWarningValue);
|
||||
@@ -176,11 +182,6 @@ void CDisplayAlarmPopup(void)
|
||||
PrevFaultValue = FaultValue;
|
||||
PrevWarningValue = WarningValue;
|
||||
|
||||
Uint16 i;
|
||||
Uint16 UpdatePage = 0U; // 0: 유지, 1: Fault 이동, 2: Warning 이동
|
||||
Uint64 TargetFault = 0U; // 검색할 대상 변수 (Fault)
|
||||
Uint32 TargetWarning = 0U; // 검색할 대상 변수 (Warning)
|
||||
|
||||
if (NewFault > 0ULL)
|
||||
{
|
||||
TargetFault = NewFault; // 새로 뜬 Fault만 검색 대상
|
||||
@@ -274,11 +275,10 @@ void CAlarmProcedure(void)
|
||||
CUpdateFault(&ulDcuTotalAlarm, (Uint16)IDX_FAULT_DCU_GLOW_PLUG_OC, CAlarmCheck(IDX_FAULT_DCU_GLOW_PLUG_OC, Adc_GlowPlug_I.fLpfValue, AlarmOperValue[(Uint16)IDX_FAULT_DCU_GLOW_PLUG_OC].uiCheckTime, ALARM_OVER_CHECK));
|
||||
CUpdateFault(&ulDcuTotalAlarm, (Uint16)IDX_FAULT_DCU_SOLENOID_OC, CAlarmCheck(IDX_FAULT_DCU_SOLENOID_OC, Adc_Solenoid_I.fLpfValue, AlarmOperValue[(Uint16)IDX_FAULT_DCU_SOLENOID_OC].uiCheckTime, ALARM_OVER_CHECK));
|
||||
CUpdateFault(&ulDcuTotalAlarm, (Uint16)IDX_FAULT_DCU_FUEL_PUMP_OC, CAlarmCheck(IDX_FAULT_DCU_FUEL_PUMP_OC, Adc_FuelPump_I.fLpfValue, AlarmOperValue[(Uint16)IDX_FAULT_DCU_FUEL_PUMP_OC].uiCheckTime, ALARM_OVER_CHECK));
|
||||
#if 0 // IDLE_SEQ_MOD
|
||||
CUpdateFault(&ulDcuTotalAlarm, (Uint16)IDX_FAULT_DCU_COOLANT_PUMP_OC, CAlarmCheck(IDX_FAULT_DCU_COOLANT_PUMP_OC, Adc_CoolantPump_I.fLpfValue, AlarmOperValue[(Uint16)IDX_FAULT_DCU_COOLANT_PUMP_OC].uiCheckTime, ALARM_OVER_CHECK));
|
||||
CUpdateFault(&ulDcuTotalAlarm, (Uint16)IDX_FAULT_DCU_FAN1_OC, CAlarmCheck(IDX_FAULT_DCU_FAN1_OC, Adc_Fan1_I.fLpfValue, AlarmOperValue[(Uint16)IDX_FAULT_DCU_FAN1_OC].uiCheckTime, ALARM_OVER_CHECK));
|
||||
CUpdateFault(&ulDcuTotalAlarm, (Uint16)IDX_FAULT_DCU_FAN2_OC, CAlarmCheck(IDX_FAULT_DCU_FAN2_OC, Adc_Fan2_I.fLpfValue, AlarmOperValue[(Uint16)IDX_FAULT_DCU_FAN2_OC].uiCheckTime, ALARM_OVER_CHECK));
|
||||
#endif
|
||||
|
||||
/* 개별 전압 알람 체크 */
|
||||
/* Engine Heater */
|
||||
if (ENGINE_HEATER_OUT() == 1U)
|
||||
@@ -381,7 +381,11 @@ void CAlarmProcedure(void)
|
||||
if (GeneralOperValue.uiAlarmReset == 1U)
|
||||
{
|
||||
CInitAlarmOperValue();
|
||||
ulDcuTotalAlarm = 0UL; /* 전체 비트 클리어 */
|
||||
|
||||
/* 전체 비트 클리어 */
|
||||
ulDcuTotalAlarm = 0UL;
|
||||
ulGcuTotalAlarm = 0UL;
|
||||
ulEcuTotalAlarm = 0UL;
|
||||
|
||||
if (CSoftWaitCountProcedure(SOFTTIMER_WAIT_ALARM_RESET, TIME_1SEC) == (Uint16)TIME_OVER)
|
||||
{
|
||||
@@ -927,7 +931,7 @@ static void CProcessArrowUpFocusChange(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
CMoveFocusLine(3U, DIR_UP);
|
||||
CMoveFocusLine(2U, DIR_UP);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -999,13 +1003,13 @@ static void CProcessArrowDownFocusChange(void)
|
||||
{
|
||||
if (OledOperValue.uiPageNum == (Uint16)IDX_OLED_PAGE_MAINTENANCE)
|
||||
{
|
||||
if (OledOperValue.uiFocusLine == (Uint16)IDX_OLED_LINE_FOCUS_3)
|
||||
if (OledOperValue.uiFocusLine == (Uint16)IDX_OLED_LINE_FOCUS_2)
|
||||
{
|
||||
OledOperValue.uiFocusLine = (Uint16)IDX_OLED_LINE_FOCUS_3;
|
||||
OledOperValue.uiFocusLine = (Uint16)IDX_OLED_LINE_FOCUS_2;
|
||||
}
|
||||
else
|
||||
{
|
||||
CMoveFocusLine(3U, DIR_DOWN);
|
||||
CMoveFocusLine(2U, DIR_DOWN);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1158,16 +1162,12 @@ static void CProcessEnterPassword(void)
|
||||
static void CProcessEnterMaintenance(void)
|
||||
{
|
||||
if (OledOperValue.uiFocusLine == (Uint16)IDX_OLED_LINE_FOCUS_1)
|
||||
{
|
||||
GeneralOperValue.Maintenance.ManualCranking = (GeneralOperValue.Maintenance.ManualCranking == 1U) ? 0U : 1U;
|
||||
}
|
||||
else if (OledOperValue.uiFocusLine == (Uint16)IDX_OLED_LINE_FOCUS_2)
|
||||
{
|
||||
GeneralOperValue.Maintenance.LampTest = (GeneralOperValue.Maintenance.LampTest == 1U) ? 0U : 1U;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (OledOperValue.uiFocusLine == (Uint16)IDX_OLED_LINE_FOCUS_3)
|
||||
if (OledOperValue.uiFocusLine == (Uint16)IDX_OLED_LINE_FOCUS_2)
|
||||
{
|
||||
GeneralOperValue.Maintenance.KeyTest = (GeneralOperValue.Maintenance.KeyTest == 1U) ? 0U : 1U;
|
||||
OledOperValue.uiPageNum = (Uint16)IDX_OLED_PAGE_KEY_TEST;
|
||||
@@ -1294,3 +1294,10 @@ static void CKeyBattleModeProcess(void)
|
||||
{
|
||||
KeyOperValue.KeyList.BattleMode = KeyOperValue.KeyList.BattleMode ^ 1U;
|
||||
}
|
||||
|
||||
static inline Uint16 CIsBitSet(Uint32 value, Uint16 bitNumber)
|
||||
{
|
||||
Uint32 ulMask = 1UL << (Uint32)bitNumber;
|
||||
|
||||
return (((value & ulMask) != 0UL) ? 1U : 0U);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user