Commit a206ef33 authored by 李冠华's avatar 李冠华

feat:混动车型增加机油压力指示灯相关逻辑

parent 90819ea8
...@@ -163,7 +163,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] = ...@@ -163,7 +163,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
1000ul, 1000ul,
0x234ul, 0x234ul,
((void *)0), ((void *)0),
((void *)0), (CAN_0x234_Receive),
((void *)0), ((void *)0),
}, },
}; };
......
...@@ -65,6 +65,8 @@ static void LED_Power_Battery_Failure_R_Execution(Tellib_uint16_t led_status); ...@@ -65,6 +65,8 @@ static void LED_Power_Battery_Failure_R_Execution(Tellib_uint16_t led_status);
uint8_t u8CanId401Flag = 0; uint8_t u8CanId401Flag = 0;
uint8_t g_u8EmsFltLv3Count = 0U; uint8_t g_u8EmsFltLv3Count = 0U;
uint8_t g_EngineMalfunctionStatus = 0U; uint8_t g_EngineMalfunctionStatus = 0U;
uint8_t g_EngineOilLowCount = 0U;
uint8_t g_EngineOilLowStatus = 0U;
const LED_Attribute_st LED_Attribute[LED_Max] = const LED_Attribute_st LED_Attribute[LED_Max] =
{ {
/* 指示灯索引 是否自检 外部信号自检 工作电源状态 自检开始时间 自检持续时间 指示灯点亮条件 指示灯执行函数 */ /* 指示灯索引 是否自检 外部信号自检 工作电源状态 自检开始时间 自检持续时间 指示灯点亮条件 指示灯执行函数 */
...@@ -110,6 +112,8 @@ void Telltales_Init(void) ...@@ -110,6 +112,8 @@ void Telltales_Init(void)
u8CanId401Flag = 0; u8CanId401Flag = 0;
g_u8EmsFltLv3Count = 0U; g_u8EmsFltLv3Count = 0U;
g_EngineMalfunctionStatus = 0U; g_EngineMalfunctionStatus = 0U;
g_EngineOilLowCount = 0U;
g_EngineOilLowStatus = 0U;
Telltales_KL30_Wakeup_Init(Tel_Mem, LED_Attribute, &m_ExtPara); Telltales_KL30_Wakeup_Init(Tel_Mem, LED_Attribute, &m_ExtPara);
} }
...@@ -139,6 +143,24 @@ void CAN_0x225_Receive(uint8_t CopyData []) ...@@ -139,6 +143,24 @@ void CAN_0x225_Receive(uint8_t CopyData [])
#endif #endif
} }
void CAN_0x234_Receive(uint8_t CopyData [])
{
#if (PART_NUMBER == G54_A01)
if ((Get_CAN_CH0_ID_234_Sig_EMS_EngineOilLow() == 1U) && (g_EngineOilLowStatus == 0U))
{
g_EngineOilLowCount++;
}
else if ((Get_CAN_CH0_ID_234_Sig_EMS_EngineOilLow() == 0U) && (g_EngineOilLowStatus == 1U))
{
g_EngineOilLowCount++;
}
else
{
g_EngineOilLowCount = 0U;
}
#endif
}
static Tellib_uint16_t LED_EFI_failure_Judgement(void) static Tellib_uint16_t LED_EFI_failure_Judgement(void)
{ {
Tellib_uint16_t LED_STATE = 0u; Tellib_uint16_t LED_STATE = 0u;
...@@ -227,28 +249,35 @@ static void LED_Lead_Acid_Battery_Failure_Execution(Tellib_uint16_t led_status) ...@@ -227,28 +249,35 @@ static void LED_Lead_Acid_Battery_Failure_Execution(Tellib_uint16_t led_status)
static Tellib_uint16_t LED_Oil_Pressure_Judgement(void) static Tellib_uint16_t LED_Oil_Pressure_Judgement(void)
{ {
Tellib_uint16_t LED_STATE = 0u; Tellib_uint16_t LED_STATE = 0u;
// if (Line_In_Get_Status(LINE_IN_HighBeam))
// { #if (PART_NUMBER == G54_A01)
// LED_STATE = 1; if ((g_EngineOilLowStatus == 0U) && (g_EngineOilLowCount >= 3U))
// } {
// else g_EngineOilLowStatus = 1U;
// { }
// LED_STATE = 0; else if ((g_EngineOilLowStatus == 1U) && (g_EngineOilLowCount >= 3U))
// } {
g_EngineOilLowStatus = 0U;
}
LED_STATE = (Tellib_uint16_t) g_EngineOilLowStatus;
#endif
return LED_STATE; return LED_STATE;
} }
static void LED_Oil_Pressure_Execution(Tellib_uint16_t led_status) static void LED_Oil_Pressure_Execution(Tellib_uint16_t led_status)
{ {
#if (PART_NUMBER == G54_A01)
if (led_status == 1u) if (led_status == 1u)
{ {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP, LED_ON); LED_Driver_Channel_Set(LampChannel_0, LampCh0_06_Oil_Pressure_R, LED_ON);
// SEG_SET_LED_STS(1,1); SEG_SET_LED_STS(SEG_LED_Oil_press_Warning, 1U);
} }
else else
{ {
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP, LED_OFF); LED_Driver_Channel_Set(LampChannel_0, LampCh0_06_Oil_Pressure_R, LED_OFF);
// SEG_SET_LED_STS(1,0); SEG_SET_LED_STS(SEG_LED_Oil_press_Warning, 0U);
} }
#endif
} }
static Tellib_uint16_t LED_Grass_Full_Judgement(void) static Tellib_uint16_t LED_Grass_Full_Judgement(void)
{ {
......
...@@ -49,5 +49,6 @@ void Telltales_Init(void); ...@@ -49,5 +49,6 @@ void Telltales_Init(void);
// void Telltales_Auto_Start_Stop_Setting(void); // void Telltales_Auto_Start_Stop_Setting(void);
Tellib_uint8_t Telltales_Voltage_Date(void); Tellib_uint8_t Telltales_Voltage_Date(void);
extern void CAN_0x225_Receive(uint8_t CopyData []); extern void CAN_0x225_Receive(uint8_t CopyData []);
extern void CAN_0x234_Receive(uint8_t CopyData []);
#endif #endif
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