#include "Telltales_Lib.h" #include "Telltales_user.h" #include "Line_in.h" #include "LED_Driver.h" #include "g_includes.h" #include "UDS_2FService_Main.h" #include "GUI.h" #pragma alignvar(8) Tellib_uint8_t Tel_Mem [ Tel_MEM_Block_Size * LED_Max + Tel_MEM_Block_Addition ]; //#pragma ghs section bss = ".myNonInitArea" _LED g_LED; extern _2FDID3F80 LEDContrl; DataCoolantStruct Coolant_Temperature_st; DataUreaStruct Urea_st; DataSafetyBeltStruct Safety_Belt_st; uint16_t Line_Fuel_Time_On = 0; uint16_t Line_Fuel_Time_Off = 0; uint8_t Line_Fuel_Flag_On = 0; uint8_t Line_Fuel_Flag_Off = 0; uint16_t Res_Fuel_Flag = 0; uint16_t LowFuelWarningSts = 0; //#pragma ghs section bss = default const LED_Attr_st_t LED_Attr [] = { /* */ {0, 0, 100}, /* */ {0, 1, 100}, /* */ {0, 2, 100}, /* */ {0, 3, 100}, /* */ {0, 4, 100}, /* */ {0, 5, 100}, /* */ {0, 6, 100}, /* */ {0, 7, 100}, /* */ {0, 8, 100}, /* */ {0, 9, 100}, /* */ {0, 10, 100}, /* */ {0, 11, 100}, /* */ {0, 12, 100}, /* */ {0, 13, 100}, /* */ {0, 14, 100}, /* */ {0, 15, 100}, /* */ {0, 16, 100}, /* */ {0, 17, 100}, /* */ {0, 18, 100}, /* */ {0, 19, 100}, /* */ {0, 20, 100}, /* */ {0, 21, 100}, /* */ {0, 22, 100}, /* */ {0, 23, 100}, /* */ {0, 24, 100}, /* */ {0, 25, 100}, /* */ {0, 26, 100}, /* */ {0, 27, 100}, /* */ {0, 28, 100}, /* */ {0, 29, 100}, /* */ {0, 30, 100}, /* */ {0, 31, 100}, /* */ {0, 32, 100}, /* */ {0, 33, 100}, /* */ {0, 34, 100}, /* */ {0, 35, 100}, }; Tellib_uint16_t LED_Fule_Lamp_Judge(void); void LED_Fule_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_TurnLeft_Lamp_Judge(void); void LED_TurnLeft_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_TurnRight_Lamp_Judge(void); void LED_TurnRight_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Park_Lamp_Judge(void); void LED_Park_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_High_Lamp_Judge(void); void LED_High_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_DoorOpen_Lamp_Judge(void); void LED_DoorOpen_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Ffog_Lamp_Judge(void); void LED_Ffog_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Rfog_Lamp_Judge(void); void LED_Rfog_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_ABS_Lamp_Judge(void); void LED_ABS_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_EBD_Lamp_Judge(void); void LED_EBD_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_EngWaitToStart_Lamp_Judge(void); void LED_EngWaitToStart_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_EDC_Lamp_Judge(void); void LED_EDC_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_EOBD_Lamp_Judge(void); void LED_EOBD_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Water_High_Lamp_Judge(void); void LED_Water_High_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Cruise_Lamp_Judge(void); void LED_Cruise_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_EDC_WaterInFuelInd1_Lamp_Judge(void); void LED_EDC_WaterInFuelInd1_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_EDC_EngOilPrsLow_Lamp_Judge(void); void LED_EDC_EngOilPrsLow_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_DPF_Lamp_Judge(void); void LED_DPF_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_EDC_MaxVehSpeedLimSetp_Lamp_Judge(void); void LED_EDC_MaxVehSpeedLimSetp_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_TBOX_Lamp_Judge(void); void LED_TBOX_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Brake_Lamp_Judge(void); void LED_Brake_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_HandBrake_Lamp_Judge(void); void LED_HandBrake_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Safety_Belt_Lamp_Judge(void); void LED_Safety_Belt_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Diesel_Heating_Lamp_Judge(void); void LED_Diesel_Heating_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_AIRBAG_Lamp_Judge(void); void LED_AIRBAG_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Urea_Lamp_Judge(void); void LED_Urea_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_TPMS_Lamp_Judge(void); void LED_TPMS_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_ESC_Lamp_Judge(void); void LED_ESC_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Gearbox_Lamp_Judge(void); void LED_Gearbox_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_Gearbox_Serious_Lamp_Judge(void); void LED_Gearbox_Serious_Lamp_Exec(Tellib_uint16_t led_status); Tellib_uint16_t LED_LDWS_Lamp_Judge(void); void LED_LDWS_Lamp_Exec(Tellib_uint16_t led_status); const LED_Attribute_st LED_Attribute [ LED_Max ] = { {m_LED_Fule_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Fule_Lamp_Judge, LED_Fule_Lamp_Exec, }, {m_LED_TPMS_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_TPMS_Lamp_Judge, LED_TPMS_Lamp_Exec, }, {m_LED_Urea_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Urea_Lamp_Judge, LED_Urea_Lamp_Exec, }, {m_LED_EDC_WaterInFuelInd1_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_EDC_WaterInFuelInd1_Lamp_Judge, LED_EDC_WaterInFuelInd1_Lamp_Exec, }, {m_LED_AIRBAG_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_AIRBAG_Lamp_Judge, LED_AIRBAG_Lamp_Exec, }, {m_LED_HandBrake_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_HandBrake_Lamp_Judge, LED_HandBrake_Lamp_Exec, }, {m_LED_Diesel_Heating_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Diesel_Heating_Lamp_Judge, LED_Diesel_Heating_Lamp_Exec, }, {m_LED_TBOX_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_TBOX_Lamp_Judge, LED_TBOX_Lamp_Exec, }, {m_LED_EBD_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_EBD_Lamp_Judge, LED_EBD_Lamp_Exec, }, {m_LED_EDC_MaxVehSpeedLimSetp_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_EDC_MaxVehSpeedLimSetp_Lamp_Judge, LED_EDC_MaxVehSpeedLimSetp_Lamp_Exec, }, {m_LED_EOBD_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_EOBD_Lamp_Judge, LED_EOBD_Lamp_Exec, }, {m_LED_Water_High_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Water_High_Lamp_Judge, LED_Water_High_Lamp_Exec, }, {m_LED_Brake_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Brake_Lamp_Judge, LED_Brake_Lamp_Exec, }, {m_LED_DPF_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_DPF_Lamp_Judge, LED_DPF_Lamp_Exec, }, {m_LED_ESC_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_ESC_Lamp_Judge, LED_ESC_Lamp_Exec, }, {m_LED_EDC_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_EDC_Lamp_Judge, LED_EDC_Lamp_Exec, }, {m_LED_Cruise_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Cruise_Lamp_Judge, LED_Cruise_Lamp_Exec, }, {m_LED_ABS_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_ABS_Lamp_Judge, LED_ABS_Lamp_Exec, }, {m_LED_DoorOpen_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON_OFF, 0ul, 3000ul, LED_DoorOpen_Lamp_Judge, LED_DoorOpen_Lamp_Exec, }, {m_LED_EngWaitToStart_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_EngWaitToStart_Lamp_Judge, LED_EngWaitToStart_Lamp_Exec, }, {m_LED_EDC_EngOilPrsLow_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_EDC_EngOilPrsLow_Lamp_Judge, LED_EDC_EngOilPrsLow_Lamp_Exec, }, {m_LED_Ffog_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Ffog_Lamp_Judge, LED_Ffog_Lamp_Exec, }, {m_LED_TurnLeft_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON_OFF, 0ul, 3000ul, LED_TurnLeft_Lamp_Judge, LED_TurnLeft_Lamp_Exec, }, {m_LED_Gearbox_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Gearbox_Lamp_Judge, LED_Gearbox_Lamp_Exec, }, {m_LED_Gearbox_Serious_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Gearbox_Serious_Lamp_Judge, LED_Gearbox_Serious_Lamp_Exec, }, {m_LED_High_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON_OFF, 0ul, 3000ul, LED_High_Lamp_Judge, LED_High_Lamp_Exec, }, {m_LED_Park_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON_OFF, 0ul, 3000ul, LED_Park_Lamp_Judge, LED_Park_Lamp_Exec, }, {m_LED_Safety_Belt_Lamp, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Safety_Belt_Lamp_Judge, LED_Safety_Belt_Lamp_Exec, }, {m_LED_TurnRight_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON_OFF, 0ul, 3000ul, LED_TurnRight_Lamp_Judge, LED_TurnRight_Lamp_Exec, }, {m_LED_Rfog_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_Rfog_Lamp_Judge, LED_Rfog_Lamp_Exec, }, {m_LED_LDWS_Lamp, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0ul, 3000ul, LED_LDWS_Lamp_Judge, LED_LDWS_Lamp_Exec, }, }; void Telltales_Init(void) { TelExtPara m_ExtPara; m_ExtPara.TotalLength = LED_Max; m_ExtPara.LED_PowerOFF_TimerCbk = Common_GetIgnOffTime; m_ExtPara.LED_PowerON_TimerCbk = Common_GetIgnOnTime; m_ExtPara.LED_PowerCbk = PoMa_Get_IG_Status; Telltales_KL30_Wakeup_Init(( Tellib_uint8_t * )Tel_Mem, LED_Attribute, &m_ExtPara); } Tellib_uint16_t Fule_Res = 0u; Tellib_uint16_t LED_Fule_Lamp_Judge(void) { if(GetFuelResistance() > 2650) { Res_Fuel_Flag = 1; } else { if(GetFuelResistance() <= 2550) { Res_Fuel_Flag = 0; } } if ( Line_In_Get_Status(LINE_IN_Fuel_Alarm) == 1u ) { Line_Fuel_Time_Off = 0; Line_Fuel_Flag_Off = 0; Line_Fuel_Time_On++; if(Line_Fuel_Time_On >= 200) { Line_Fuel_Time_On = 200; Line_Fuel_Flag_On = 1; } if((Line_Fuel_Flag_On)&&(Res_Fuel_Flag)) { Fule_Res = 1; } } else { Line_Fuel_Time_On = 0; Line_Fuel_Flag_On = 0; Line_Fuel_Time_Off++; if(Line_Fuel_Time_Off >= 200) { Line_Fuel_Time_Off = 200; Line_Fuel_Flag_Off = 1; } if((Line_Fuel_Flag_Off)&&(Res_Fuel_Flag == 0)) { Fule_Res = 0; } } return Fule_Res; } void LED_Fule_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.LowFuelAlarm == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Fule_Lamp].chip, LED_Attr[LED_Fule_Lamp].channel, LED_Attr[LED_Fule_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Fule_Lamp].chip, LED_Attr[LED_Fule_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Fule_Lamp].chip, LED_Attr[LED_Fule_Lamp].channel, LED_Attr[LED_Fule_Lamp].brightness); LowFuelWarningSts = 1; } else { LED_Driver_Channel_Set(LED_Attr[LED_Fule_Lamp].chip, LED_Attr[LED_Fule_Lamp].channel, 0); LowFuelWarningSts = 0; } } } INT16U Get_LowFuelWarningSts(void) { return LowFuelWarningSts; } Tellib_uint16_t LED_TurnLeft_Lamp_Judge(void) { Tellib_uint16_t res = 0u; return res; } void LED_TurnLeft_Lamp_Exec(Tellib_uint16_t led_status) { } Tellib_uint16_t LED_TurnRight_Lamp_Judge(void) { Tellib_uint16_t res = 0u; return res; } void LED_TurnRight_Lamp_Exec(Tellib_uint16_t led_status) { } Tellib_uint16_t LED_Park_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can10FF1021_Msg_Count) == CAN_SIG_LOST ) { res = 0u; } else { if((Get_CAN_CH0_ID_10FF1021_Sig_LHParkTailLightSts() == 1)||(Get_CAN_CH0_ID_10FF1021_Sig_RHParkTailLightSts() == 1)) { res = 1u; } else { res = 0u; } } return res; } void LED_Park_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.SmallLight == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Park_Lamp].chip, LED_Attr[LED_Park_Lamp].channel, LED_Attr[LED_Park_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Park_Lamp].chip, LED_Attr[LED_Park_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Park_Lamp].chip, LED_Attr[LED_Park_Lamp].channel, LED_Attr[LED_Park_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Park_Lamp].chip, LED_Attr[LED_Park_Lamp].channel, 0); } } } Tellib_uint16_t LED_High_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can10FF1021_Msg_Count) == CAN_SIG_LOST ) { res = 0u; } else { if(Get_CAN_CH0_ID_10FF1021_Sig_HighBeamSts() == 1) { res = 1u; } else { res = 0u; } } return res; } void LED_High_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.HighBeam == 1) { LED_Driver_Channel_Set(LED_Attr[LED_High_Lamp].chip, LED_Attr[LED_High_Lamp].channel, LED_Attr[LED_High_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_High_Lamp].chip, LED_Attr[LED_High_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_High_Lamp].chip, LED_Attr[LED_High_Lamp].channel, LED_Attr[LED_High_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_High_Lamp].chip, LED_Attr[LED_High_Lamp].channel, 0); } } } Tellib_uint16_t LED_DoorOpen_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can10FF7521_Msg_Count) == CAN_SIG_LOST ) { res = 0u; } else { if((Get_CAN_CH0_ID_10FF7521_Sig_PsngrDoorSts() == 1)|| (Get_CAN_CH0_ID_10FF7521_Sig_DriverDoorSts() == 1)|| (Get_CAN_CH0_ID_10FF7521_Sig_BonnetSts() == 1)|| (Get_CAN_CH0_ID_10FF7521_Sig_RHatchSts() == 1)|| (Get_CAN_CH0_ID_10FF7521_Sig_RHRDoorSts() == 1)) { res = 1u; } else { res = 0u; } } return res; } void LED_DoorOpen_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.DoorOpen == 1) { LED_Driver_Channel_Set(LED_Attr[LED_DoorOpen_Lamp].chip, LED_Attr[LED_DoorOpen_Lamp].channel, LED_Attr[LED_DoorOpen_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_DoorOpen_Lamp].chip, LED_Attr[LED_DoorOpen_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_DoorOpen_Lamp].chip, LED_Attr[LED_DoorOpen_Lamp].channel, LED_Attr[LED_DoorOpen_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_DoorOpen_Lamp].chip, LED_Attr[LED_DoorOpen_Lamp].channel, 0); } } } Tellib_uint16_t LED_Ffog_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can10FF1021_Msg_Count) == CAN_SIG_LOST ) { res = 0u; } else { if(Get_CAN_CH0_ID_10FF1021_Sig_FrontFogLightSts() == 1) { res = 1u; } else { res = 0u; } } return res; } void LED_Ffog_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.FrontForg == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Ffog_Lamp].chip, LED_Attr[LED_Ffog_Lamp].channel, LED_Attr[LED_Ffog_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Ffog_Lamp].chip, LED_Attr[LED_Ffog_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Ffog_Lamp].chip, LED_Attr[LED_Ffog_Lamp].channel, LED_Attr[LED_Ffog_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Ffog_Lamp].chip, LED_Attr[LED_Ffog_Lamp].channel, 0); } } } Tellib_uint16_t LED_Rfog_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can10FF1021_Msg_Count) == CAN_SIG_LOST ) { res = 0u; } else { if(Get_CAN_CH0_ID_10FF1021_Sig_RearFogLightSts() == 1) { res = 1u; } else { res = 0u; } } return res; } void LED_Rfog_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.RearForg == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Rfog_Lamp].chip, LED_Attr[LED_Rfog_Lamp].channel, LED_Attr[LED_Rfog_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Rfog_Lamp].chip, LED_Attr[LED_Rfog_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Rfog_Lamp].chip, LED_Attr[LED_Rfog_Lamp].channel, LED_Attr[LED_Rfog_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Rfog_Lamp].chip, LED_Attr[LED_Rfog_Lamp].channel, 0); } } } Tellib_uint16_t LED_ABS_Lamp_Judge(void) { Tellib_uint16_t res = 0u; return res; } void LED_ABS_Lamp_Exec(Tellib_uint16_t led_status) { LED_Driver_Channel_Set(LED_Attr[LED_ABS_Lamp].chip, LED_Attr[LED_ABS_Lamp].channel, 0); } Tellib_uint16_t LED_EBD_Lamp_Judge(void) { Tellib_uint16_t res = 0u; return res; } void LED_EBD_Lamp_Exec(Tellib_uint16_t led_status) { LED_Driver_Channel_Set(LED_Attr[LED_EBD_Lamp].chip, LED_Attr[LED_EBD_Lamp].channel, 0); } Tellib_uint16_t LED_EngWaitToStart_Lamp_Judge(void) { Tellib_uint16_t res = 0u; { if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FEE400_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 8000)) { res = 2u; } else { if(Get_CAN_CH0_ID_18FEE400_Sig_EDC_WaittoStartLamp() == 1) { res = 1u; } else { res = 0u; } } } return res; } void LED_EngWaitToStart_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.PreheatIndicator == 1) { LED_Driver_Channel_Set(LED_Attr[LED_EngWaitToStart_Lamp].chip, LED_Attr[LED_EngWaitToStart_Lamp].channel, LED_Attr[LED_EngWaitToStart_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EngWaitToStart_Lamp].chip, LED_Attr[LED_EngWaitToStart_Lamp].channel, 0); } } else { if (led_status == 2u) { if(g_LED.LedBlink_1_5HZ) { LED_Driver_Channel_Set(LED_Attr[LED_EngWaitToStart_Lamp].chip, LED_Attr[LED_EngWaitToStart_Lamp].channel, LED_Attr[LED_EngWaitToStart_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EngWaitToStart_Lamp].chip, LED_Attr[LED_EngWaitToStart_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_EngWaitToStart_Lamp].chip, LED_Attr[LED_EngWaitToStart_Lamp].channel, LED_Attr[LED_EngWaitToStart_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EngWaitToStart_Lamp].chip, LED_Attr[LED_EngWaitToStart_Lamp].channel, 0); } } } Tellib_uint16_t LED_EDC_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FECA00_Msg_Count) == CAN_SIG_LOST ) { if(Get_CAN_CH0_ID_18EBFF00_Sig_RedStopLamp() == 1) { res = 2u; } else { if(Get_CAN_CH0_ID_18EBFF00_Sig_AmberWarnLamp() == 1) { res = 1u; } else { res = 0u; } } } else { if((Get_CAN_CH0_ID_18FECA00_Sig_RedStopLamp() == 1)||(Get_CAN_CH0_ID_18EBFF00_Sig_RedStopLamp() == 1)) { res = 2u; } else { if((Get_CAN_CH0_ID_18FECA00_Sig_AmberWarnLamp() == 1)||(Get_CAN_CH0_ID_18EBFF00_Sig_AmberWarnLamp() == 1)) { res = 1u; } else { res = 0u; } } } return res; } void LED_EDC_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.EDC == 1) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_Lamp].chip, LED_Attr[LED_EDC_Lamp].channel, LED_Attr[LED_EDC_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_Lamp].chip, LED_Attr[LED_EDC_Lamp].channel, 0); } } else { if (led_status == 2u) { if(g_LED.LedBlink_1HZ) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_Lamp].chip, LED_Attr[LED_EDC_Lamp].channel, LED_Attr[LED_EDC_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_Lamp].chip, LED_Attr[LED_EDC_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_Lamp].chip, LED_Attr[LED_EDC_Lamp].channel, LED_Attr[LED_EDC_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_Lamp].chip, LED_Attr[LED_EDC_Lamp].channel, 0); } } } Tellib_uint16_t LED_EOBD_Lamp_Judge(void) { Tellib_uint16_t res = 0u; { if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FD0700_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 8000)) { res = 2u; } else { if(Get_CAN_CH0_ID_18FD0700_Sig_OBD_MIL_LampSts() == 1) { res = 1u; } else { res = 0u; } } } return res; } void LED_EOBD_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.EOBD == 1) { LED_Driver_Channel_Set(LED_Attr[LED_EOBD_Lamp].chip, LED_Attr[LED_EOBD_Lamp].channel, LED_Attr[LED_EOBD_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EOBD_Lamp].chip, LED_Attr[LED_EOBD_Lamp].channel, 0); } } else { if (led_status == 2u) { if(g_LED.LedBlink_1_5HZ) { LED_Driver_Channel_Set(LED_Attr[LED_EOBD_Lamp].chip, LED_Attr[LED_EOBD_Lamp].channel, LED_Attr[LED_EOBD_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EOBD_Lamp].chip, LED_Attr[LED_EOBD_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_EOBD_Lamp].chip, LED_Attr[LED_EOBD_Lamp].channel, LED_Attr[LED_EOBD_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EOBD_Lamp].chip, LED_Attr[LED_EOBD_Lamp].channel, 0); } } } Tellib_uint16_t Water_High_Res = 0u; Tellib_uint16_t LED_Water_High_Lamp_Judge(void) { if((CAN_MSG_Status(CAN_CH0, CAN_CH0_ID_can18FEEE00_Msg_Count) == CAN_MSG_LOST)||(CanReceive.Can_18FEEE00 != 1)) { if((Common_GetIgnOnTime() >= 8000)) { Water_High_Res = 2; } } else { if(Get_Coolant_Temp_Cur_Display_Value() >= 71) { Water_High_Res = 1; } else { if(Get_Coolant_Temp_Cur_Display_Value() <= 60) { Water_High_Res = 0; } } } return Water_High_Res; } void LED_Water_High_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.CoolantAlarm == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Water_High_Lamp].chip, LED_Attr[LED_Water_High_Lamp].channel, LED_Attr[LED_Water_High_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Water_High_Lamp].chip, LED_Attr[LED_Water_High_Lamp].channel, 0); } } else { if (led_status == 2u) { if(g_LED.LedBlink_1_5HZ) { LED_Driver_Channel_Set(LED_Attr[LED_Water_High_Lamp].chip, LED_Attr[LED_Water_High_Lamp].channel, LED_Attr[LED_Water_High_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Water_High_Lamp].chip, LED_Attr[LED_Water_High_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Water_High_Lamp].chip, LED_Attr[LED_Water_High_Lamp].channel, LED_Attr[LED_Water_High_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Water_High_Lamp].chip, LED_Attr[LED_Water_High_Lamp].channel, 0); } } } Tellib_uint16_t LED_Cruise_Lamp_Judge(void) { Tellib_uint16_t res = 0u; { if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FEF100_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 8000)) { res = 2u; } else { if(Get_CAN_CH0_ID_18FEF100_Sig_CruiseCtrlActive() == 1) { res = 1u; } else { res = 0u; } } } return res; } void LED_Cruise_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.CruiseInstructions == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Cruise_Lamp].chip, LED_Attr[LED_Cruise_Lamp].channel, LED_Attr[LED_Cruise_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Cruise_Lamp].chip, LED_Attr[LED_Cruise_Lamp].channel, 0); } } else { if (led_status == 2u) { if(g_LED.LedBlink_1_5HZ) { LED_Driver_Channel_Set(LED_Attr[LED_Cruise_Lamp].chip, LED_Attr[LED_Cruise_Lamp].channel, LED_Attr[LED_Cruise_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Cruise_Lamp].chip, LED_Attr[LED_Cruise_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Cruise_Lamp].chip, LED_Attr[LED_Cruise_Lamp].channel, LED_Attr[LED_Cruise_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Cruise_Lamp].chip, LED_Attr[LED_Cruise_Lamp].channel, 0); } } } Tellib_uint16_t LED_EDC_WaterInFuelInd1_Lamp_Judge(void) { Tellib_uint16_t res = 0u; { if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FEFF00_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 23000)) { res = 2u; } else { if(Get_CAN_CH0_ID_18FEFF00_Sig_EDC_WaterInFuelInd1() == 1) { res = 3u; } else { res = 0u; } } } return res; } void LED_EDC_WaterInFuelInd1_Lamp_Exec(Tellib_uint16_t led_status) { if (led_status == 2u) { if(g_LED.LedBlink_1_5HZ) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].chip, LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].channel, LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].chip, LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].channel, 0); } } else if (led_status == 3u) { if(g_LED.LedBlink_1HZ) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].chip, LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].channel, LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].chip, LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].chip, LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].channel, LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].chip, LED_Attr[LED_EDC_WaterInFuelInd1_Lamp].channel, 0); } } Tellib_uint16_t LED_EDC_EngOilPrsLow_Lamp_Judge(void) { Tellib_uint16_t res = 0u; { if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FF2100_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 8000)) { res = 2u; } else { if(Get_CAN_CH0_ID_18FF2100_Sig_EDC_EngOilPrsLow() == 1) { res = 1u; } else { res = 0u; } } } return res; } void LED_EDC_EngOilPrsLow_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.LowOilPressure == 1) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_EngOilPrsLow_Lamp].chip, LED_Attr[LED_EDC_EngOilPrsLow_Lamp].channel, LED_Attr[LED_EDC_EngOilPrsLow_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_EngOilPrsLow_Lamp].chip, LED_Attr[LED_EDC_EngOilPrsLow_Lamp].channel, 0); } } else { if (led_status == 2u) { if(g_LED.LedBlink_1_5HZ) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_EngOilPrsLow_Lamp].chip, LED_Attr[LED_EDC_EngOilPrsLow_Lamp].channel, LED_Attr[LED_EDC_EngOilPrsLow_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_EngOilPrsLow_Lamp].chip, LED_Attr[LED_EDC_EngOilPrsLow_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_EngOilPrsLow_Lamp].chip, LED_Attr[LED_EDC_EngOilPrsLow_Lamp].channel, LED_Attr[LED_EDC_EngOilPrsLow_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_EngOilPrsLow_Lamp].chip, LED_Attr[LED_EDC_EngOilPrsLow_Lamp].channel, 0); } } } Tellib_uint16_t LED_DPF_Lamp_Judge(void) { Tellib_uint16_t res = 0u; { if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FD7C00_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 8000)) { res = 4u; } else { if(Get_CAN_CH0_ID_18FD7C00_Sig_DPFLampSts() == 1) { res = 1u; } else if(Get_CAN_CH0_ID_18FD7C00_Sig_DPFLampSts() == 2) { res = 3u; } else if(Get_CAN_CH0_ID_18FD7C00_Sig_DPFLampSts() == 4) { res = 2u; } else { res = 0u; } } } return res; } void LED_DPF_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.DPF == 1) { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, LED_Attr[LED_DPF_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, 0); } } else { if (led_status == 4u) { if(g_LED.LedBlink_1_5HZ) { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, LED_Attr[LED_DPF_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, 0); } } else if (led_status == 3u) { if(g_LED.LedBlink_2HZ) { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, LED_Attr[LED_DPF_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, 0); } } else if (led_status == 2u) { if(g_LED.LedBlink_1HZ) { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, LED_Attr[LED_DPF_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, LED_Attr[LED_DPF_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_DPF_Lamp].chip, LED_Attr[LED_DPF_Lamp].channel, 0); } } } Tellib_uint16_t LED_EDC_MaxVehSpeedLimSetp_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FF2100_Msg_Count) == CAN_SIG_LOST )||(CanReceive.Can_18FF2100 != 1)) { res = 0u; CanReceive.Can_18FF2100 = 0; } else { if(Get_CAN_CH0_ID_18FF2100_Sig_EDC_MaxVehSpeedLimSetp() <= (Common_Get_Act_V_Speed()/10)) { res = 1u; } else { res = 0u; } } return res; } void LED_EDC_MaxVehSpeedLimSetp_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.OverSpeed == 1) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].chip, LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].channel, LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].chip, LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].chip, LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].channel, LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].chip, LED_Attr[LED_EDC_MaxVehSpeedLimSetp_Lamp].channel, 0); } } } Tellib_uint16_t LED_TBOX_Lamp_Judge(void) { Tellib_uint16_t res = 0u; { if( (CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FF9CF1_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 53000)&&(MenuData.Lost >= 450)) { res = 1u; } else { if(Get_CAN_CH0_ID_18FF9CF1_Sig_TBOXFILSts() == 1) { res = 1u; } else { if(Get_CAN_CH0_ID_18FFA8EE_Sig_SelfCheckingStatus() == 1) { res = 1u; } else { res = 0u; } } } } return res; } void LED_TBOX_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.TboxAlarm == 1) { LED_Driver_Channel_Set(LED_Attr[LED_TBOX_Lamp].chip, LED_Attr[LED_TBOX_Lamp].channel, LED_Attr[LED_TBOX_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_TBOX_Lamp].chip, LED_Attr[LED_TBOX_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_TBOX_Lamp].chip, LED_Attr[LED_TBOX_Lamp].channel, LED_Attr[LED_TBOX_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_TBOX_Lamp].chip, LED_Attr[LED_TBOX_Lamp].channel, 0); } } } Tellib_uint16_t LED_Brake_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if (( Line_In_Get_Status(LINE_IN_Brake_Fault) == 1u )||( Line_In_Get_Status(LINE_IN_Handbrake) == 1u )) { res = 1u; } else { res = 0u; } return res; } void LED_Brake_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.BrakeFault == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Brake_Lamp].chip, LED_Attr[LED_Brake_Lamp].channel, LED_Attr[LED_Brake_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Brake_Lamp].chip, LED_Attr[LED_Brake_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Brake_Lamp].chip, LED_Attr[LED_Brake_Lamp].channel, LED_Attr[LED_Brake_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Brake_Lamp].chip, LED_Attr[LED_Brake_Lamp].channel, 0); } } } Tellib_uint16_t LED_HandBrake_Lamp_Judge(void) { Tellib_uint16_t res = 0u; return res; } void LED_HandBrake_Lamp_Exec(Tellib_uint16_t led_status) { LED_Driver_Channel_Set(LED_Attr[LED_HandBrake_Lamp].chip, LED_Attr[LED_HandBrake_Lamp].channel, 0); } Tellib_uint16_t LED_Safety_Belt_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if(Line_In_Get_Status (LINE_IN_Safety_Belt) == 1) { res = 1; } else { res = 0; } return res; } void LED_Safety_Belt_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.DriverSeatBelt == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Safety_Belt_Lamp].chip, LED_Attr[LED_Safety_Belt_Lamp].channel, LED_Attr[LED_Safety_Belt_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Safety_Belt_Lamp].chip, LED_Attr[LED_Safety_Belt_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Safety_Belt_Lamp].chip, LED_Attr[LED_Safety_Belt_Lamp].channel, LED_Attr[LED_Safety_Belt_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Safety_Belt_Lamp].chip, LED_Attr[LED_Safety_Belt_Lamp].channel, 0); } } } Tellib_uint16_t LED_Diesel_Heating_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if ( Line_In_Get_Status(LINE_IN_Fuel_Warmwind) == 1u ) { res = 1u; } else { res = 0u; } return res; } void LED_Diesel_Heating_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.Heater == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Diesel_Heating_Lamp].chip, LED_Attr[LED_Diesel_Heating_Lamp].channel, LED_Attr[LED_Diesel_Heating_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Diesel_Heating_Lamp].chip, LED_Attr[LED_Diesel_Heating_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Diesel_Heating_Lamp].chip, LED_Attr[LED_Diesel_Heating_Lamp].channel, LED_Attr[LED_Diesel_Heating_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Diesel_Heating_Lamp].chip, LED_Attr[LED_Diesel_Heating_Lamp].channel, 0); } } } Tellib_uint16_t LED_AIRBAG_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if (Get_NodeConfig_AirBag() == 0) { if((Line_In_Get_Status(LINE_IN_AIRBAG_POSITIVE) == 1) && (Line_In_Get_Status(LINE_IN_AIRBAG_NEGATIVE) == 1) ) { res = 1u; } else { res = 0u; } } else { if ((Get_NodeConfig_AirBag() == 1)||(Get_NodeConfig_AirBag() == 2)||(Get_NodeConfig_AirBag() == 3)) { if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FF4453_Msg_Count) == CAN_SIG_LOST ) { res = 0u; } else { if(Get_CAN_CH0_ID_18FF4453_Sig_AirbagFail() == 2) { res = 1u; } else { res = 0u; } } } else { res = 0u; } } return res; } void LED_AIRBAG_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.Airbag == 1) { LED_Driver_Channel_Set(LED_Attr[LED_AIRBAG_Lamp].chip, LED_Attr[LED_AIRBAG_Lamp].channel, LED_Attr[LED_AIRBAG_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_AIRBAG_Lamp].chip, LED_Attr[LED_AIRBAG_Lamp].channel, 0); } } else { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_AIRBAG_Lamp].chip, LED_Attr[LED_AIRBAG_Lamp].channel, LED_Attr[LED_AIRBAG_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_AIRBAG_Lamp].chip, LED_Attr[LED_AIRBAG_Lamp].channel, 0); } } } Tellib_uint16_t LED_Urea_Lamp_Judge(void) { Tellib_uint16_t res = 0u; { if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FF4C00_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 8000)) { res = 4u; } else { if(Get_CAN_CH0_ID_18FF4C00_Sig_EMS_System_lamp() == 3) { res = 1u; } else if(Get_CAN_CH0_ID_18FF4C00_Sig_EMS_System_lamp() == 2) { res = 2u; } else if(Get_CAN_CH0_ID_18FF4C00_Sig_EMS_System_lamp() == 1) { res = 3u; } else { if((Get_CAN_CH0_ID_18FF4C00_Sig_EMS_Urea_Level_Text() == 2)|| (Get_CAN_CH0_ID_18FF4C00_Sig_EMS_Urea_Level_Text() == 3)|| (Get_CAN_CH0_ID_18FF4C00_Sig_EMS_Urea_Level_Text() == 4)|| (Get_CAN_CH0_ID_18FF4C00_Sig_EMS_Urea_Level_Text() == 5)|| (Get_CAN_CH0_ID_18FF4C00_Sig_EMS_Urea_Level_Text() == 6)|| (Get_CAN_CH0_ID_18FF4C00_Sig_EMS_Urea_Level_Text() == 7)) { res = 1u; } else { res = 0u; } } } } return res; } void LED_Urea_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.urea == 1) { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, LED_Attr[LED_Urea_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, 0); } } else { if (led_status == 4u) { if(g_LED.LedBlink_1_5HZ) { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, LED_Attr[LED_Urea_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, 0); } } else if (led_status == 3u) { if(g_LED.LedBlink_2HZ) { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, LED_Attr[LED_Urea_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, 0); } } else if (led_status == 2u) { if(g_LED.LedBlink_1HZ) { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, LED_Attr[LED_Urea_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, LED_Attr[LED_Urea_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Urea_Lamp].chip, LED_Attr[LED_Urea_Lamp].channel, 0); } } } Tellib_uint16_t LED_TPMS_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if((Get_NodeConfig_TPMS() != 1)&&(Get_NodeConfig_TPMS() != 2)) { res = 0u; } else { { if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FEF433_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 8000)) { res = 1u; } else { if((Left_Front_Display.LED_Blink == 1)||(Right_Front_Display.LED_Blink == 1)||(Left_Rear_Display.LED_Blink == 1)|| (Right_Rear_Display.LED_Blink == 1)||(Left_Rear_Inside_Display.LED_Blink == 1)||(Right_Rear_Inside_Display.LED_Blink == 1)) { res = 1; } else if((Left_Front_Display.LED_Blink == 2)||(Right_Front_Display.LED_Blink == 2)||(Left_Rear_Display.LED_Blink == 2)|| (Right_Rear_Display.LED_Blink == 2)||(Left_Rear_Inside_Display.LED_Blink == 2)||(Right_Rear_Inside_Display.LED_Blink == 2)) { res = 2; } else { res = 0; } } } } return res; } void LED_TPMS_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.TPMSAlarm == 1) { LED_Driver_Channel_Set(LED_Attr[LED_TPMS_Lamp].chip, LED_Attr[LED_TPMS_Lamp].channel, LED_Attr[LED_TPMS_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_TPMS_Lamp].chip, LED_Attr[LED_TPMS_Lamp].channel, 0); } } else { if((Get_NodeConfig_TPMS() != 1)&&(Get_NodeConfig_TPMS() != 2)) { led_status = 0; } if (led_status == 2u) { if(g_LED.LedBlink_1HZ) { LED_Driver_Channel_Set(LED_Attr[LED_TPMS_Lamp].chip, LED_Attr[LED_TPMS_Lamp].channel, LED_Attr[LED_TPMS_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_TPMS_Lamp].chip, LED_Attr[LED_TPMS_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_TPMS_Lamp].chip, LED_Attr[LED_TPMS_Lamp].channel, LED_Attr[LED_TPMS_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_TPMS_Lamp].chip, LED_Attr[LED_TPMS_Lamp].channel, 0); } } } Tellib_uint16_t LED_ESC_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if(Get_NodeConfig_ESP() == 1) { if(( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can0A18A006_Msg_Count) == CAN_SIG_LOST )&&(Common_GetIgnOnTime() >= 8000)) { res = 1u; } else { if((Get_CAN_CH0_ID_0A18A006_Sig_AsrFail() == 1)||(Get_CAN_CH0_ID_0A18A006_Sig_VdcFail() == 1)||(Get_CAN_CH0_ID_0A18A006_Sig_BsmBtnSts() == 1)) { res = 1u; } else { if((Get_CAN_CH0_ID_0A18A006_Sig_AsrEldInterv() == 1)||(Get_CAN_CH0_ID_0A18A006_Sig_VdcInterv() == 1)) { res = 2u; } else { if(((Get_CAN_CH0_ID_0A18A006_Sig_AsrFail() == 0)&&(Get_CAN_CH0_ID_0A18A006_Sig_VdcFail() == 0))||(Get_CAN_CH0_ID_0A18A006_Sig_BsmBtnSts() == 0)) { res = 0u; } } } } } else { res = 0u; } return res; } void LED_ESC_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_NodeConfig_ESP() != 1) { led_status = 0; } if (led_status == 2u) { if(g_LED.LedBlink_1HZ) { LED_Driver_Channel_Set(LED_Attr[LED_ESC_Lamp].chip, LED_Attr[LED_ESC_Lamp].channel, LED_Attr[LED_ESC_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_ESC_Lamp].chip, LED_Attr[LED_ESC_Lamp].channel, 0); } } else if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_ESC_Lamp].chip, LED_Attr[LED_ESC_Lamp].channel, LED_Attr[LED_ESC_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_ESC_Lamp].chip, LED_Attr[LED_ESC_Lamp].channel, 0); } } // if ( (u8DTC0XB9F0E0xx) || (u32RecSA03DTC == 0xB9F0E000) || (u8DTC0XC1F0E0xx) || (u32RecSA03DTC == 0xC1F0E000) ) //if ( (u8DTC0XCEF0E0xx) || (u32RecSA03DTC == 0xCEF0E000) ) Tellib_uint16_t LED_Gearbox_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if(Get_NodeConfig_GearBoxType() == 1) { if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FECA03_Msg_Count) == CAN_SIG_LOST ) { if((Get_CAN_CH0_ID_18EBFF03_Sig_AT_AmberWarnLamp() == 1)||(Get_CAN_CH0_ID_18EBFF03_Sig_AT_RedStopLamp() == 1) /*(u8DTC0XCEF0E0xx) || (u32RecSA03DTC == 0xCEF0E000) || (u8DTC0XB9F0E0xx) || (u32RecSA03DTC == 0xB9F0E000) || (u8DTC0XC1F0E0xx) || (u32RecSA03DTC == 0xC1F0E000)*/) { res = 1u; } else { res = 0u; } } else { if((Get_CAN_CH0_ID_18FECA03_Sig_AT_AmberWarnLamp() == 1)||(Get_CAN_CH0_ID_18FECA03_Sig_AT_RedStopLamp() == 1)|| (Get_CAN_CH0_ID_18EBFF03_Sig_AT_AmberWarnLamp() == 1)||(Get_CAN_CH0_ID_18EBFF03_Sig_AT_RedStopLamp() == 1)|| (u8DTC0XCEF0E0xx) || (u32RecSA03DTC == 0xCEF0E000) || (u8DTC0XB9F0E0xx) || (u32RecSA03DTC == 0xB9F0E000) || (u8DTC0XC1F0E0xx) || (u32RecSA03DTC == 0xC1F0E000)) { res = 1u; } else { res = 0; } } } else { res = 0; } return res; } void LED_Gearbox_Lamp_Exec(Tellib_uint16_t led_status) { if(Get_NodeConfig_GearBoxType() != 1) { led_status = 0; } if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_Gearbox_Lamp].chip, LED_Attr[LED_Gearbox_Lamp].channel, LED_Attr[LED_Gearbox_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_Gearbox_Lamp].chip, LED_Attr[LED_Gearbox_Lamp].channel, 0); } } Tellib_uint16_t LED_Gearbox_Serious_Lamp_Judge(void) { Tellib_uint16_t res = 0u; return res; } void LED_Gearbox_Serious_Lamp_Exec(Tellib_uint16_t led_status) { } void TurnLeft_Lamp(void) { if(SYS_OPR_STAT_HALT) { return; } if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.LeftTurn == 1) { LED_Driver_Channel_Set(LED_Attr[LED_TurnLeft_Lamp].chip, LED_Attr[LED_TurnLeft_Lamp].channel, LED_Attr[LED_TurnLeft_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_TurnLeft_Lamp].chip, LED_Attr[LED_TurnLeft_Lamp].channel, 0); } } else { if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can10FF1021_Msg_Count) == CAN_SIG_LOST ) { LED_Driver_Channel_Set(LED_Attr[LED_TurnLeft_Lamp].chip, LED_Attr[LED_TurnLeft_Lamp].channel, 0); } else { if(Get_CAN_CH0_ID_10FF1021_Sig_LHTurnSignalSts() == 1) { LED_Driver_Channel_Set(LED_Attr[LED_TurnLeft_Lamp].chip, LED_Attr[LED_TurnLeft_Lamp].channel, LED_Attr[LED_TurnLeft_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_TurnLeft_Lamp].chip, LED_Attr[LED_TurnLeft_Lamp].channel, 0); } } } } void TurnRight_Lamp(void) { if(SYS_OPR_STAT_HALT) { return; } if(Get_DIAG_TelltalesCtrlsts() == 3) { if(LEDContrl._3F80.RightTurn == 1) { LED_Driver_Channel_Set(LED_Attr[LED_TurnRight_Lamp].chip, LED_Attr[LED_TurnRight_Lamp].channel, LED_Attr[LED_TurnRight_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_TurnRight_Lamp].chip, LED_Attr[LED_TurnRight_Lamp].channel, 0); } } else { if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can10FF1021_Msg_Count) == CAN_SIG_LOST ) { LED_Driver_Channel_Set(LED_Attr[LED_TurnRight_Lamp].chip, LED_Attr[LED_TurnRight_Lamp].channel, 0); } else { if(Get_CAN_CH0_ID_10FF1021_Sig_RHTurnSignalSts() == 1) { LED_Driver_Channel_Set(LED_Attr[LED_TurnRight_Lamp].chip, LED_Attr[LED_TurnRight_Lamp].channel, LED_Attr[LED_TurnRight_Lamp].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_TurnRight_Lamp].chip, LED_Attr[LED_TurnRight_Lamp].channel, 0); } } } } Tellib_uint16_t LED_LDWS_Lamp_Judge(void) { Tellib_uint16_t res = 0u; if (Get_NodeConfig_LWDS() == 1) { if((( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FE5BE8_Msg_Count) == CAN_SIG_LOST )|| ( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can10F007E8_Msg_Count) == CAN_SIG_LOST )|| (CanReceive.Can_10F007E8 != 1)||(CanReceive.Can_18FE5BE8 != 1))) { if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can18FE5BE8_Msg_Count) == CAN_SIG_LOST ) { CanReceive.Can_18FE5BE8 = 0; } if( CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_can10F007E8_Msg_Count) == CAN_SIG_LOST ) { CanReceive.Can_10F007E8 = 0; } if(Common_GetIgnOnTime( ) >= 10000)//故障处理,整车上电后10S内屏蔽该状态 { res = 1u;//黄亮 } else { res = 0u; } } else { if((Get_CAN_CH0_ID_18FE5BE8_Sig_Lane_Departure_Indication_Enable_Status() == 4)&&(Common_GetIgnOnTime( ) >= 10000))//指示灯黄色常亮(整车上电10S内,屏蔽该状态 { res = 1u;//黄亮 } else { if((Get_CAN_CH0_ID_18FE5BE8_Sig_Lane_Departure_Indication_Enable_Status() == 3)&& ((Get_CAN_CH0_ID_10F007E8_Sig_ADAS_LDWLeftWarning() == 1)||(Get_CAN_CH0_ID_10F007E8_Sig_ADAS_LDWRightWarning() == 1))) { res = 2u;//2hz黄闪 } else { if(((Get_CAN_CH0_ID_18FE5BE8_Sig_Lane_Departure_Indication_Enable_Status() == 1)|| (Get_CAN_CH0_ID_18FE5BE8_Sig_Lane_Departure_Indication_Enable_Status() == 3))&& (Get_CAN_CH0_ID_10F007E8_Sig_ADAS_LDWLeftWarning() == 0)&&(Get_CAN_CH0_ID_10F007E8_Sig_ADAS_LDWRightWarning() == 0)) { res = 3u;//绿亮 } else { if((Get_CAN_CH0_ID_18FE5BE8_Sig_Lane_Departure_Indication_Enable_Status() == 2)&& (Get_CAN_CH0_ID_10F007E8_Sig_ADAS_LDWLeftWarning() == 0)&&(Get_CAN_CH0_ID_10F007E8_Sig_ADAS_LDWRightWarning() == 0)) { res = 3u;//绿亮 } else { if(Get_CAN_CH0_ID_18FE5BE8_Sig_Lane_Departure_Indication_Enable_Status() == 0) { res = 0u; } else { res = 0u; } } } } } } } else { res = 0u; } return res; } void LED_LDWS_Lamp_Exec(Tellib_uint16_t led_status) { if(MenuData.Ldws == 2) { if (led_status == 1u) { LED_Driver_Channel_Set(LED_Attr[LED_LDWS_Y].chip, LED_Attr[LED_LDWS_Y].channel, LED_Attr[LED_LDWS_Y].brightness); LED_Driver_Channel_Set(LED_Attr[LED_LDWS_G].chip, LED_Attr[LED_LDWS_G].channel, 0); } else if (led_status == 2u) { if(g_LED.LedBlink_2HZ) { LED_Driver_Channel_Set(LED_Attr[LED_LDWS_Y].chip, LED_Attr[LED_LDWS_Y].channel, LED_Attr[LED_LDWS_Y].brightness); } else { LED_Driver_Channel_Set(LED_Attr[LED_LDWS_Y].chip, LED_Attr[LED_LDWS_Y].channel, 0); } LED_Driver_Channel_Set(LED_Attr[LED_LDWS_G].chip, LED_Attr[LED_LDWS_G].channel, 0); } else if (led_status == 3u) { LED_Driver_Channel_Set(LED_Attr[LED_LDWS_G].chip, LED_Attr[LED_LDWS_G].channel, LED_Attr[LED_LDWS_G].brightness); LED_Driver_Channel_Set(LED_Attr[LED_LDWS_Y].chip, LED_Attr[LED_LDWS_Y].channel, 0); } else { LED_Driver_Channel_Set(LED_Attr[LED_LDWS_G].chip, LED_Attr[LED_LDWS_G].channel, 0); LED_Driver_Channel_Set(LED_Attr[LED_LDWS_Y].chip, LED_Attr[LED_LDWS_Y].channel, 0); } } else { LED_Driver_Channel_Set(LED_Attr[LED_LDWS_G].chip, LED_Attr[LED_LDWS_G].channel, 0); LED_Driver_Channel_Set(LED_Attr[LED_LDWS_Y].chip, LED_Attr[LED_LDWS_Y].channel, 0); } }