#ifndef SOURCE_STATE_H_ #define SOURCE_STATE_H_ #define COMM_TIME_OUT_COUNT (3000U) // 3sec typedef enum { IDX_ADC_ENGINE_HEATER_V = 0U, // 0 IDX_ADC_GLOW_PLUG_V, // 1 IDX_ADC_SOLENOID_V, // 2 IDX_ADC_FUEL_PUMP_V, // 3 IDX_ADC_COOLANT_PUMP_V, // 4 IDX_ADC_FAN1_V, // 5 IDX_ADC_FAN2_V, // 6 IDX_ADC_ENGINE_HEATER_I, // 7 IDX_ADC_GLOW_PLUG_I, // 8 IDX_ADC_SOLENOID_I, // 9 IDX_ADC_FUEL_PUMP_I, // 10 IDX_ADC_COOLANT_PUMP_I, // 11 IDX_ADC_FAN1_I, // 12 IDX_ADC_FAN2_I, // 13 IDX_ADC_MAX } E_IDX_ADC; typedef enum { IDX_WARNING_GCU_PCB_OT = 0U, IDX_WARNING_GCU_FET_OT, IDX_WARNING_GCU_WINDING1_OH, IDX_WARNING_GCU_WINDING2_OH, IDX_WARNING_GCU_MAX } E_IDX_WARNING_GCU; typedef enum { IDX_WARNING_ECU_ENGINE_OH = 0U, IDX_WARNING_ECU_RESERVED, IDX_WARNING_ECU_LO_OIL_PRESS, IDX_WARNING_ECU_INTAKE_OH, IDX_WARNING_ECU_INTAKE_LO_PRESS, IDX_WARNING_ECU_ENGINE_LO_TEMP, IDX_WARNING_ECU_ENGINE_SENSOR, IDX_WARNING_ECU_DEFAULT_ACTIVE, IDX_WARNING_ECU_MAX } E_IDX_WARNING_ECU; typedef enum { IDX_FAULT_DCU_CAR_COMM = 0U, // 0 IDX_FAULT_DCU_GCU_COMM, // 1 IDX_FAULT_DCU_ECU_COMM, // 2 IDX_FAULT_DCU_RPM_ERR, // 3 IDX_FAULT_DCU_ENGINE_HEAT_OC, // 4 IDX_FAULT_DCU_GLOW_PLUG_OC, // 5 IDX_FAULT_DCU_SOLENOID_OC, // 6 IDX_FAULT_DCU_FUEL_PUMP_OC, // 7 IDX_FAULT_DCU_COOLANT_PUMP_OC, // 8 IDX_FAULT_DCU_FAN1_OC, // 9 IDX_FAULT_DCU_FAN2_OC, // 10 IDX_FAULT_DCU_ENGINE_HEAT_UV, // 11 IDX_FAULT_DCU_ENGINE_HEAT_OV, // 12 IDX_FAULT_DCU_GLOW_PLUG_UV, // 13 IDX_FAULT_DCU_GLOW_PLUG_OV, // 14 IDX_FAULT_DCU_SOLENOID_UV, // 15 IDX_FAULT_DCU_SOLENOID_OV, // 16 IDX_FAULT_DCU_FUEL_PUMP_UV, // 17 IDX_FAULT_DCU_FUEL_PUMP_OV, // 18 IDX_FAULT_DCU_COOLANT_PUMP_UV, // 19 IDX_FAULT_DCU_COOLANT_PUMP_OV, // 20 IDX_FAULT_DCU_FAN1_UV, // 21 IDX_FAULT_DCU_FAN1_OV, // 22 IDX_FAULT_DCU_FAN2_UV, // 23 IDX_FAULT_DCU_FAN2_OV, // 24 IDX_FAULT_DCU_CRANKING_FAIL, // 25 IDX_FAULT_DCU_MAX } E_IDX_DCU_FAULT; typedef enum { IDX_FAULT_GCU_HWTRIP = 0U, // 0 IDX_FAULT_GCU_HWIGBT, // 1 IDX_FAULT_GCU_HW_DC, // 2 IDX_FAULT_GCU_GEN_OCU, // 3 IDX_FAULT_GCU_GEN_OCV, // 4 IDX_FAULT_GCU_GEN_OCW, // 5 IDX_FAULT_GCU_DC_OV, // 6 IDX_FAULT_GCU_DC_OC, // 7 IDX_FAULT_GCU_CRANK_OC, // 8 IDX_FAULT_GCU_PCB_OT, // 9 IDX_FAULT_GCU_FET_OT, // 10 IDX_FAULT_GCU_WINDING1_OH, // 11 IDX_FAULT_GCU_WINDING2_OH, // 12 IDX_FAULT_GCU_GEN_OS, // 13 IDX_FAULT_GCU_RES_IC, // 14 IDX_FAULT_GCU_RES_PRTY, // 15 IDX_FAULT_GCU_MAX } E_IDX_GCU_FAULT; typedef enum { IDX_FAULT_ECU_OIL_MS = 0U, // 0 IDX_FAULT_ECU_INT_OH, // 1 IDX_FAULT_ECU_ENG_OH, // 2 IDX_FAULT_ECU_ACTUATOR, // 3 IDX_FAULT_ECU_RPM_SIG, // 4 IDX_FAULT_ECU_ENG_SF, // 5 IDX_FAULT_MAX } E_IDX_ECU_FAULT; typedef enum { IDX_KEY_MAIN_POWER = 0U, // 0 IDX_KEY_ARR_UP, // 1 IDX_KEY_ARR_DOWN, // 2 IDX_KEY_ENTER, // 3 IDX_KEY_MENU, // 4 IDX_KEY_ENG_START_STOP, // 5 IDX_KEY_EMERGENCY, // 6 IDX_KEY_REMOTE_START, // 7 IDX_KEY_REMOTE_STOP, // 8 IDX_KEY_REMOTE_EMERGENCY, // 9 IDX_KEY_BATTLE_MODE, // 10 IDX_KEY_MAX // 11 } E_IDX_KEY; typedef struct ClassKeyHandler { E_IDX_KEY eKey; void (*pAction) (void); } CKeyHandler; typedef struct ClassAdcOperValue { Uint16 uiAdcOffsetIndex; Uint16 uiOffsetAdjustStart; } CAdcOperValue; typedef struct ClassAdcCalcValue { float32 fLpfValue; float32 fSampledValue; float32 fSampledSum; float32 fTempAdcOffset; float32 fGain; float32 fOffset; Uint16 uiSamplingCount; int16 iAdcValue; } CAdcCalcValue; typedef struct ClassWarningOperValue { float32 fCheckLimit; // 경고 한계 값 Uint16 uiWarning; // 0: 정상, 1: 경고 발생 중 Uint16 uiDetectCount; // 경고 검출 카운터 Uint16 uiReleaseCount; // 경고 해제 카운터 Uint16 uiCheckTime; } CWarningOperValue; typedef struct ClassAlarmOperValue { float32 fCheckLimit; float32 fFaultValue; Uint16 uiCheck; Uint16 uiCheckCount; Uint16 uiCheckTime; } CAlarmOperValue; typedef struct ClassKeyList { Uint16 MainPower; Uint16 ArrowUp; Uint16 ArrowDown; Uint16 Enter; Uint16 Menu; Uint16 EngineStartStop; Uint16 Emergency; Uint16 BattleMode; } CKeyList; typedef struct ClassKeyOperValue { Uint16 uiKeyWaitCount; Uint16 uiPreviousKey; Uint16 uiKeyWait; CKeyList KeyList; } CKeyOperValue; extern CAdcCalcValue Adc_EngineHeater_V; extern CAdcCalcValue Adc_GlowPlug_V; extern CAdcCalcValue Adc_Solenoid_V; extern CAdcCalcValue Adc_FuelPump_V; extern CAdcCalcValue Adc_CoolantPump_V; extern CAdcCalcValue Adc_Fan1_V; extern CAdcCalcValue Adc_Fan2_V; extern CAdcCalcValue Adc_EngineHeater_I; extern CAdcCalcValue Adc_GlowPlug_I; extern CAdcCalcValue Adc_Solenoid_I; extern CAdcCalcValue Adc_FuelPump_I; extern CAdcCalcValue Adc_CoolantPump_I; extern CAdcCalcValue Adc_Fan1_I; extern CAdcCalcValue Adc_Fan2_I; extern CAdcOperValue AdcOperValue; extern CKeyOperValue KeyOperValue; extern Uint32 ulDcuTotalAlarm; extern Uint32 ulGcuTotalAlarm; extern Uint32 ulEcuTotalAlarm; interrupt void CAdcInterrupt(void); void CAlarmProcedure(void); void CInitAdc(void); void CKeyCheckProcedure(void); void CKeyWaitCount(void); void CDisplayAlarmPopup(void); #endif /* SOURCE_STATE_H_ */