Commit a7401f4e authored by 李俭双's avatar 李俭双

feat:增加报警灯逻辑,更改掉线周期

parent c9bfe9bc
......@@ -30,7 +30,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
1000ul,
0x341ul,
(( void * )0),
(( void * )0),
......@@ -40,7 +40,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
1000ul,
0x111ul,
(( void * )0),
(( void * )0),
......@@ -50,7 +50,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
1000ul,
0x401ul,
(( void * )0),
(( void * )0),
......
......@@ -47,10 +47,10 @@ typedef enum
LampCh0_26_Tire_PressureW,
LampCh0_27_Tire_PressureY,
LampCh0_28_Auto_Star_Stop,
LampCh0_29_MPH,
LampCh0_29_High_Beam,
LampCh0_30_High_Beam,
LampCh0_31_Lateral_Support,
LampCh0_30_Lateral_Support,
LampCh0_31_Low_Voltage,
LampCh0_32_Fault_Diagnosis,
LampCh0_33_Upkeep,
LampCh0_34_TRIP,
......
......@@ -27,8 +27,8 @@ static Tellib_uint16_t LED_TCS_Judgement(void);
static void LED_TCS_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Auto_Start_Judgement(void);
static void LED_Auto_Start_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Keys_Judgement(void);
static void LED_Keys_Execution(Tellib_uint16_t led_status);
//static Tellib_uint16_t LED_Keys_Judgement(void);
//static void LED_Keys_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Maintain_Judgement(void);
static void LED_Maintain_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Low_Batt_Judgement(void);
......@@ -42,6 +42,7 @@ static void LED_Navigato_Execution(Tellib_uint16_t led_status);
Led_HighBeam_Count HighBeam_Timer;
Tellib_uint16_t LED_Battery_Voltage = 0;
const LED_Attribute_st LED_Attribute [ LED_Max ] = {
/* 指示灯索引 是否自检 外部信号自检 工作电源状态 自检开始时间 自检持续时间 指示灯点亮条件 指示灯执行函数 */
......@@ -54,7 +55,7 @@ const LED_Attribute_st LED_Attribute [ LED_Max ] = {
{em_LED_Bluetooth, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Bluetooth_Judgement, LED_Bluetooth_Execution},
{em_LED_TCS, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_TCS_Judgement, LED_TCS_Execution},
{em_LED_Auto_Start_Stop, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Auto_Start_Judgement, LED_Auto_Start_Execution},
{em_LED_Keys, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Keys_Judgement, LED_Keys_Execution},
//{em_LED_Keys, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Keys_Judgement, LED_Keys_Execution},
{em_LED_Maintain, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Maintain_Judgement, LED_Maintain_Execution},
{em_LED_Low_Batt_Vol, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Low_Batt_Judgement, LED_Low_Batt_Execution},
{em_LED_Lateral_Strut, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 3000ul, LED_Lateral_Strut_Judgement, LED_Lateral_Strut_Execution},
......@@ -76,6 +77,7 @@ void Telltales_Init(void)
Telltales_KL30_Wakeup_Init(Tel_Mem, LED_Attribute, &m_ExtPara);
HighBeam_Timer.LED_Turnon = 0;
HighBeam_Timer.LED_Turnoff = 0;
LED_Battery_Voltage = 0;
}
static Tellib_uint16_t LED_High_Beam_Judgement(void)
......@@ -115,11 +117,11 @@ static void LED_High_Beam_Execution(Tellib_uint16_t led_status)
{
if ( led_status == 1u )
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_30_High_Beam, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_29_High_Beam, LED_ON);
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_30_High_Beam, LED_OFF);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_29_High_Beam, LED_OFF);
}
}
static Tellib_uint16_t LED_FAULT_ELECTROSPRAY_Judgement(void)
......@@ -155,22 +157,7 @@ static Tellib_uint16_t LED_ABS_Judgement(void)
}
else
{
if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x120_Msg_Count) == CAN_SIG_LOST) || (Get_CAN_CH0_ID_120_Sig_ABS_Warning_lamp() == 1) || (Get_CAN_CH0_ID_120_Sig_ABS_Warning_lamp() == 3))
{
LED_STATE = 1;
}
else if(Get_CAN_CH0_ID_120_Sig_ABS_Warning_lamp() == 2)
{
LED_STATE = 2;
}
else if (Get_CAN_CH0_ID_120_Sig_ABS_Warning_lamp() == 0)
{
LED_STATE = 0;
}
else
{
;
}
LED_STATE = 1;
}
return LED_STATE;
}
......@@ -179,18 +166,7 @@ static void LED_ABS_Execution(Tellib_uint16_t led_status)
if (led_status == 1u)
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_ABS_Alarm, LED_ON);
}
else if ( led_status == 2u)
{
if(FLASH_SYNC_1Hz)
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_ABS_Alarm, LED_ON);
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_ABS_Alarm, LED_OFF);
}
}
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_ABS_Alarm, LED_OFF);
......@@ -238,12 +214,12 @@ static Tellib_uint16_t LED_Fuel_Judgement(void)
}
else
{
LED_STATE = 2;//开路
LED_STATE = 2;//开路,黄灯闪
}
}
else
{
LED_STATE = 1; //黄灯
LED_STATE = 1; //黄灯常亮
}
return LED_STATE;
}
......@@ -295,39 +271,130 @@ static void LED_Coolant_Execution(Tellib_uint16_t led_status)
static Tellib_uint16_t LED_Bluetooth_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
if (0)
{
LED_STATE = 1u;
}
else
{
LED_STATE = 0u;
}
return LED_STATE;
}
static void LED_Bluetooth_Execution(Tellib_uint16_t led_status)
{
;
if ( led_status == 1u )
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_23_Bluetooth, LED_ON);
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_23_Bluetooth, LED_OFF);
}
}
static Tellib_uint16_t LED_TCS_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x120_Msg_Count) == CAN_SIG_LOST) )
{
LED_STATE = 1;
}
else
{
if (Get_Dis_Tcs_Val() == 1)
{
if((Get_CAN_CH0_ID_120_Sig_TCSStatus() == 1) || (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 2) || (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 3) || (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 5))
{
LED_STATE = 1;
}
else if (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 4)
{
LED_STATE = 2; //1HZ闪烁
}
else if (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 6)
{
LED_STATE = 3; //2HZ闪烁
}
else if ((Get_CAN_CH0_ID_120_Sig_TCSStatus() == 0) || (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 7))
{
LED_STATE = 0;
}
}
else
{
LED_STATE = 0;
}
}
return LED_STATE;
}
static void LED_TCS_Execution(Tellib_uint16_t led_status)
{
;
if ( led_status == 1u )
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_ON);
}
else if ( led_status == 2u )
{
if (FLASH_SYNC_1Hz)
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_ON);
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_OFF);
}
}
else if ( led_status == 3u )
{
if (FLASH_SYNC_2Hz)
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_ON);
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_OFF);
}
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_OFF);
}
}
static Tellib_uint16_t LED_Auto_Start_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
if (Line_In_Get_Status(LINE_IN_Auto_Start_Stop))
{
LED_STATE = 1;
}
else
{
LED_STATE = 0;
}
return LED_STATE;
}
static void LED_Auto_Start_Execution(Tellib_uint16_t led_status)
{
;
}
static Tellib_uint16_t LED_Keys_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
return LED_STATE;
}
static void LED_Keys_Execution(Tellib_uint16_t led_status)
{
;
if ( led_status == 1u )
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_28_Auto_Star_Stop, LED_ON);
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_28_Auto_Star_Stop, LED_OFF);
}
}
//static Tellib_uint16_t LED_Keys_Judgement(void)
//{
// Tellib_uint16_t LED_STATE = 0u;
// return LED_STATE;
//}
//static void LED_Keys_Execution(Tellib_uint16_t led_status)
//{
// ;
//}
static Tellib_uint16_t LED_Maintain_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
......@@ -340,20 +407,75 @@ static void LED_Maintain_Execution(Tellib_uint16_t led_status)
static Tellib_uint16_t LED_Low_Batt_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint16_t Battery_Voltage = 0u;
Battery_Voltage = Get_CAN_CH0_ID_401_Sig_ECU_Battery_Voltage();
if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x401_Msg_Count) == CAN_SIG_LOST) )
{
LED_Battery_Voltage = 1;
}
else
{
if (Battery_Voltage < 118)
{
LED_Battery_Voltage = 1;
}
else if (Battery_Voltage >= 120)
{
LED_Battery_Voltage = 0;
}
else
{
;
}
}
LED_STATE = LED_Battery_Voltage;
return LED_STATE;
}
static void LED_Low_Batt_Execution(Tellib_uint16_t led_status)
{
;
if ( led_status == 1u )
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_Low_Voltage, LED_ON);
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_Low_Voltage, LED_OFF);
}
}
static Tellib_uint16_t LED_Lateral_Strut_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint16_t SideStand = 0u;
Tellib_uint16_t SideStand_State = 0u;
SideStand = Get_CAN_CH0_ID_111_Sig_ISG_SideStand();
SideStand_State = Get_CAN_CH0_ID_111_Sig_ISG_SideStand_State();
if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x111_Msg_Count) == CAN_SIG_LOST) )
{
LED_STATE = 0;
}
else
{
if ( SideStand_State == 1)
{
LED_STATE = 0;
}
else
{
if (SideStand == 1)
{
LED_STATE = 1;
}
else
{
LED_STATE = 0;
}
}
}
return LED_STATE;
}
static void LED_Lateral_Strut_Execution(Tellib_uint16_t led_status)
{
;
}
static Tellib_uint16_t LED_Tire_Pressure_Judgement(void)
{
......
......@@ -13,7 +13,7 @@ typedef enum
em_LED_Bluetooth,
em_LED_TCS,
em_LED_Auto_Start_Stop,
em_LED_Keys,
//em_LED_Keys,
em_LED_Maintain,
em_LED_Low_Batt_Vol,
em_LED_Lateral_Strut,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment