181 lines
4.9 KiB
Plaintext
181 lines
4.9 KiB
Plaintext
#ifndef SOURCE_STATE_H_
|
|
#define SOURCE_STATE_H_
|
|
|
|
#define ALARM_UNDER_CHECK (0U)
|
|
#define ALARM_OVER_CHECK (1U)
|
|
|
|
#define PI2 (6.283185f)
|
|
#define ADC_FREQ (10000.0f) // 10kHz = 0.0001sec
|
|
#define ADC_LPF_COFF_TEMP (0.2f)
|
|
#define ADC_LPF_GAIN_TEMP (0.00012566f) //(PI2 * ADC_LPF_COFF_TEMP * (1.0f / ADC_FREQ))
|
|
#define ADC_LPF_COFF (30.0f)
|
|
#define ADC_LPF_GAIN (0.01884955f) //(PI2 * ADC_LPF_COFF * (1.0f / ADC_FREQ))
|
|
|
|
#define LONG_KEY_TIME (1000UL)
|
|
#define KEY_POWER_MASK (0x00000001UL)
|
|
|
|
#define COMM_TIME_OUT_COUNT (30U)
|
|
|
|
enum
|
|
{
|
|
IDX_ADC_ENGINE_HEATER_I = 0U, // 0
|
|
IDX_ADC_GLOW_PLUG_I, // 1
|
|
IDX_ADC_SOLENOID_I, // 2
|
|
IDX_ADC_FUEL_PUMP_I, // 3
|
|
IDX_ADC_COOLANT_PUMP_I, // 4
|
|
IDX_ADC_FAN1_I, // 5
|
|
IDX_ADC_FAN2_I, // 6
|
|
IDX_ADC_MAX
|
|
};
|
|
|
|
typedef enum
|
|
{
|
|
IDX_FAULT_CAR_COMM = 0U, // 0
|
|
IDX_FAULT_GCU_COMM, // 1
|
|
IDX_FAULT_ECU_COMM, // 2
|
|
IDX_FAULT_RPM_ERR, // 3
|
|
IDX_FAULT_ENGINE_HEAT_OC, // 4
|
|
IDX_FAULT_GLOW_PLUG_OC, // 5
|
|
IDX_FAULT_SOLENOID_OC, // 6
|
|
IDX_FAULT_FUEL_PUMP_OC, // 7
|
|
IDX_FAULT_COOLANT_PUMP_OC, // 8
|
|
IDX_FAULT_FAN1_OC, // 9
|
|
IDX_FAULT_FAN2_OC, // 10
|
|
IDX_FAULT_ENGINE_HEAT_LINE_OPEN, // 11
|
|
IDX_FAULT_GLOW_PLUG_LINE_OPEN, // 12
|
|
IDX_FAULT_SOLENOID_LINE_OPEN, // 13
|
|
IDX_FAULT_FUEL_PUMP_LINE_OPEN, // 14
|
|
IDX_FAULT_COOLANT_PUMP_LINE_OPEN, // 15
|
|
IDX_FAULT_FAN1_LINE_OPEN, // 16
|
|
IDX_FAULT_FAN2_LINE_OPEN, // 17
|
|
IDX_FAULT_MAX
|
|
} ALARM_TYPE;
|
|
|
|
typedef struct ClassAdcOperValue
|
|
{
|
|
Uint16 uiAdcOffsetIndex;
|
|
Uint16 uiOffsetAdjustStart;
|
|
} CAdcOperValue;
|
|
|
|
typedef struct ClassAdcCalcValue
|
|
{
|
|
float32 fOffset;
|
|
float32 fLpfValue;
|
|
float32 fSampledValue;
|
|
float32 fGain;
|
|
float32 fSampledSum;
|
|
float32 fTempAdcOffset;
|
|
int16 iAdcValue;
|
|
Uint16 uiSamplingCount;
|
|
} CAdcCalcValue;
|
|
|
|
typedef union ClassFaultBitValue
|
|
{
|
|
Uint32 ulTotal;
|
|
struct
|
|
{
|
|
Uint16 CarCommTimeout : 1;
|
|
Uint16 GcuCommTimeout : 1;
|
|
Uint16 EcuCommTimeOut : 1;
|
|
Uint16 RpmError : 1;
|
|
Uint16 EngineHeatOverCurrent : 1;
|
|
Uint16 GlowPlugOverCurrent : 1;
|
|
Uint16 SolenoidOverCurrent : 1;
|
|
Uint16 FuelPumpOverCurrent : 1;
|
|
|
|
Uint16 CoolantPumpOverCurrent : 1;
|
|
Uint16 Fan1OverCurrent : 1;
|
|
Uint16 Fan2OverCurrent : 1;
|
|
Uint16 EngineHeatOpen : 1;
|
|
Uint16 GlowPlugOpen : 1;
|
|
Uint16 SolenoidOpen : 1;
|
|
Uint16 FuelPumpOpen : 1;
|
|
Uint16 CoolantPumpOpen : 1;
|
|
|
|
Uint16 Fan1Open : 1;
|
|
Uint16 Fan2Open : 1;
|
|
Uint16 rsvd_padding1 : 6;
|
|
|
|
Uint16 rsvd_padding2 : 8;
|
|
} bit;
|
|
} CFaultBitValue;
|
|
|
|
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 enum
|
|
{
|
|
IDX_KEY_MAIN_POWER = 0U,
|
|
IDX_KEY_ARR_UP,
|
|
IDX_KEY_ARR_DOWN,
|
|
IDX_KEY_ENTER,
|
|
IDX_KEY_MENU,
|
|
IDX_KEY_ENG_START_STOP,
|
|
IDX_KEY_EMERGENCY,
|
|
IDX_KEY_MAX
|
|
} EKeyIndex;
|
|
|
|
typedef struct ClassKeyHandler
|
|
{
|
|
EKeyIndex eKey;
|
|
void (*pAction) (void);
|
|
} CKeyHandler;
|
|
|
|
typedef union ClassKeyList
|
|
{
|
|
Uint16 uiTotal;
|
|
struct
|
|
{
|
|
Uint16 MainPower : 1;
|
|
Uint16 ArrowUp : 1;
|
|
Uint16 ArrowDown : 1;
|
|
Uint16 Enter : 1;
|
|
Uint16 Menu : 1;
|
|
Uint16 EngineStartStop : 1;
|
|
Uint16 Emergency : 1;
|
|
} bit;
|
|
} CKeyList;
|
|
|
|
typedef struct ClassKeyOperValue
|
|
{
|
|
Uint16 uiKeyWaitCount;
|
|
Uint16 uiPreviousKey;
|
|
Uint16 uiKeyWait;
|
|
CKeyList KeyList;
|
|
} CKeyOperValue;
|
|
|
|
interrupt void CAdcInterrupt(void);
|
|
void CAlarmProcedure(void);
|
|
void CInitAdc(void);
|
|
void CKeyCheckProcedure(void);
|
|
void CKeyWaitCount(void);
|
|
void CDisplayAlarmPopup(void);
|
|
|
|
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 CFaultBitValue FaultBitValue;
|
|
extern CKeyOperValue KeyOperValue;
|
|
|
|
#endif /* SOURCE_STATE_H_ */
|