206 lines
6.0 KiB
C
206 lines
6.0 KiB
C
/********************************************************************************
|
|
*
|
|
* 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__
|