/******************************************************************************** * * File name: FrntWiperCtrl.h * *********************************************************************************/ #ifndef __FRNTWIPERCTRL_H__ #define __FRNTWIPERCTRL_H__ /********************************************************************************* * Includes *********************************************************************************/ /********************************************************************************* * Global Macros *********************************************************************************/ /* Front Wiper Mode */ #define FWIPER_MODE_OFF 0x00 #define FWIPER_MODE_LOW 0x01 #define FWIPER_MODE_HIGH 0x02 #define FWIPER_MODE_MIST 0x03 #define FWIPER_MODE_INT 0x04 #define FWIPER_MODE_RESV1 0x05 #define FWIPER_MODE_RESV2 0x06 #define FWIPER_MODE_INVALID 0x07 #define FWIPER_MODE_RESET 0xFF #define WIPER_SPEED_OFF 0x02 #define WIPER_SPEED_LOW 0x03 #define WIPER_SPEED_HIGH 0x04 #define WIPER_POS_HOME 0x00 /* WIPER position : home position */ #define WIPER_POS_AWAY 0x01 /* WIPER position : away from home position */ #define FWIPER_STS_OFF 0x00 #define FWIPER_STS_LOW 0x01 #define FWIPER_STS_HIGH 0x02 #define FWIPER_STS_MIST 0x03 #define FWIPER_STS_INT 0x04 #define FWIPER_STS_AUTO 0x05 /********************************************************************************* * Additional Macros *********************************************************************************/ #define uint8_t unsigned char #define uint16_t unsigned int #define uint32_t unsigned long /********************************************************************************* * TODO verify these values *********************************************************************************/ #define PWRMODE_OFF 0x00 #define PWRMODE_ON 0x01 //hood #define DOOR_AJAR_CLOSE 0x00 #define DOOR_AJAR_OPEN 0x01 //VehSpdVld #define VEH_SPEED_INITIALIZING 0x00 #define VEH_SPEED_VALID 0x01 #define VEH_SPEED_INVALID 0x02 #define VEH_SPEED_RESERVED 0x03 //VehSpd #define VEH_SPEED_2KM 2 #define VEH_SPEED_8KM 8 #define VEH_SPEED_32KM 32 #define VEH_SPEED_64KM 64 #define VEH_SPEED_96KM 96 #define VEH_SPEED_128KM 128 //VoltageMode #define VOLT_MODE_NORMAL 0x00 #define VOLT_MODE_HIGH 0x03 /********************************************************************************* * Global Struct *********************************************************************************/ /* Front Wiper State */ typedef union { uint8_t Byte; struct { uint8_t Resv :5; uint8_t Blocked :1; /* Wiper blocked Flag */ uint8_t Washer :1; /* Washer Working Flag */ uint8_t WashSw :1; /* Washer Swtich Sts */ } Bits; } FWIPER_FLAG_UNION; /* Input Output Control Flag */ typedef union { uint8_t Byte; struct { uint8_t IOCtlFlg :1; uint8_t HighOn :1; uint8_t LowOn :1; uint8_t HighOff :1; uint8_t LowOff :1; uint8_t Resv2 :1; uint8_t Resv3 :1; uint8_t Resv4 :1; } Bits; } FWIPER_IO_CTL_UNION; typedef enum { INT_STEP_START = 0x00, INT_STEP_CHK_AWAY, INT_STEP_CHK_BACK, INT_STEP_WAIT_MORE, /* Run More time while Arrived Home Position */ INT_STEP_WAIT_DLY, } FWIPER_INT_STEP_ENUM; /* Fwiper Auto Control Step */ typedef enum { AUTO_STEP_START = 0x00, AUTO_STEP_CHK_AWAY, AUTO_STEP_CHK_BACK, AUTO_STEP_CHK_RLS, /* Delay and Check RainSensor */ AUTO_STEP_AUTO_CHK, AUTO_STEP_AUTO_AWAY, AUTO_STEP_AUTO_BACK, } FWIPER_AUTO_STEP_ENUM; typedef enum { OFF_STEP_START = 0x00, OFF_STEP_WAIT_AWAY, OFF_STEP_CHK_BACK, OFF_STEP_WAIT_MORE, OFF_STEP_IDLE, } FWIPER_OFF_STEP_ENUM; /* Washer Control Step */ typedef enum { WASHER_STEP_START = 0x00, WASHER_STEP_CHK_AWAY, WASHER_STEP_CHK_BACK, WASHER_STEP_EXTRA_AWAY, WASHER_STEP_EXTRA_BACK, WASHER_STEP_WAIT_DLY, WASHER_STEP_LAST_AWAY, WASHER_STEP_LAST_BACK, WASHER_STEP_LAST_WAIT, } FWASHER_STEP_ENUM; typedef enum /*Maintain Mode Control Step */ { MTMD_STEP_START = 0x00, MTMD_STEP_WAIT_BACK, MTMD_STEP_CHK_AWAY, MTMD_STEP_CHK_DLY, MTMD_STEP_WAIT, } FWIPER_MAINTAIN_STEP_ENUM; /********************************************************************************* * Global Variables *********************************************************************************/ // added dummy signal for MATLAB // input extern uint8_t Rte_Read_AppPs_PwrMod_Matlab; extern uint8_t Rte_Read_AppVfmm_RefrshModRestrntFctCmd_Matlab; extern uint8_t Rte_Read_ComCan_ICC_BCMWipeLevel_Matlab; extern uint8_t Rte_Read_Input_FrontWiperParkSts_Matlab; extern uint8_t Rte_Read_ComCan_CIM_FWiperSwtFault_Matlab; extern uint8_t Rte_Read_ComCan_CIM_FWiperSwtReq_Matlab; extern uint8_t Rte_Read_ComCan_CIM_FWiperMistReq_Matlab; extern uint8_t Rte_Read_ComCan_VehSpdVld_Matlab; extern uint8_t Rte_Read_ComCan_VehSpd_Matlab; extern uint8_t Rte_Read_AppPm_VoltMode_Matlab; extern uint8_t Rte_Read_ComCan_ICC_WiprMntnModSwt_Matlab; extern uint8_t Rte_Read_ComCan_CIM_FWiperWashReq_Matlab; extern uint8_t Rte_Read_ComLin_RLS_SplashReq_Matlab; extern uint8_t Rte_Read_ComLin_RLS_WIPRSPDREQ_Matlab; extern uint8_t Rte_Read_Input_HoodAjarSts_Matlab; // output extern uint8_t Rte_Write_ComCan_FrntWiprParkStsSwt_Matlab; extern uint8_t Rte_Write_ComCan_WipeLevelFB_Matlab; extern uint8_t Rte_Write_ComCan_FrnWiprOutpSts_Matlab; extern uint8_t Rte_Write_ComCan_FrntWiprMntnSts_Matlab; extern uint8_t Rte_Write_ComCan_FrntWshrCmd_Matlab; extern uint16_t debug_signal_Matlab; /* wiper control */ extern uint8_t WP_Front_Wiper_Enable_CMD; extern uint8_t WP_Front_Wiper_Speed_CMD; extern uint8_t WP_Front_Washer_CMD; // configuration extern uint8_t CFG_RAIN_LIGHT_SENSOR_ENABLED; extern uint8_t CFG_FRONT_WIPER_INT; extern uint8_t PAR_FW_MAINTENANCE_MODE_RUNNING_TIMER; /********************************************************************************* * Global Functions *********************************************************************************/ extern void FrntWiper_Init(void); extern void FrntWiper_MainFunction(void); extern void Fwiper_DrvSet(uint8_t Speed); #endif // __FRNTWIPERCTRL_H__