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

feat:增加混动车型座椅检测指示灯触发逻辑

parent 78ead314
......@@ -386,7 +386,7 @@ void CAN_0x38E_Receive(uint8_t CopyData [])
void CAN_0x220_Receive(uint8_t CopyData [])
{
System_Indicator_CANFlag = 0;
#if (PART_NUMBER == G54_A01)
if ((Get_CAN_CH0_ID_220_Sig_VCU_GrassSwSts() == 1U) && (g_GrassSwStatus == 0U))
{
......@@ -406,6 +406,26 @@ void CAN_0x220_Receive(uint8_t CopyData [])
{
g_GrassSwCount = 0U;
}
if ((Get_CAN_CH0_ID_220_Sig_VCU_SeatSts() == 1U) && (g_SeatStatus == 0U))
{
if (g_SeatCount < 3U)
{
g_SeatCount++;
}
}
else if ((Get_CAN_CH0_ID_220_Sig_VCU_SeatSts() == 0U) && (g_SeatStatus == 1U))
{
if (g_SeatCount < 3U)
{
g_SeatCount++;
}
}
else
{
g_SeatCount = 0U;
}
#endif
}
......@@ -72,7 +72,8 @@ uint8_t g_OverLoadStatus[9] = {0,0,0,0,0,0,0,0,0};
uint8_t g_OverLoadCount[9] = {0,0,0,0,0,0,0,0,0};
uint8_t g_GrassSwStatus = 0U;
uint8_t g_GrassSwCount = 0U;
uint8_t g_SeatStatus = 0U;
uint8_t g_SeatCount = 0U;
const LED_Attribute_st LED_Attribute[LED_Max] =
{
/* 指示灯索引 是否自检 外部信号自检 工作电源状态 自检开始时间 自检持续时间 指示灯点亮条件 指示灯执行函数 */
......@@ -123,6 +124,8 @@ void Telltales_Init(void)
g_VoltLowCount = 0U;
g_GrassSwStatus = 0U;
g_GrassSwCount = 0U;
g_SeatStatus = 0U;
g_SeatCount = 0U;
Telltales_KL30_Wakeup_Init(Tel_Mem, LED_Attribute, &m_ExtPara);
}
......@@ -296,7 +299,7 @@ static Tellib_uint16_t LED_Grass_Full_Judgement(void)
LED_STATE = (Tellib_uint16_t) g_GrassSwStatus;
#endif
return LED_STATE;
}
static void LED_Grass_Full_Execution(Tellib_uint16_t led_status)
......@@ -397,15 +400,30 @@ static void LED_READY_Execution(Tellib_uint16_t led_status)
static Tellib_uint16_t LED_Seat_Detection_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_Num_MMCU_SeatDetectState();
if ((Signal1 == 0x1) && openLED_flag)
{
LED_STATE = 1;
}
else
{
LED_STATE = 0;
}
#if (PART_NUMBER == RMR42E_60)
Tellib_uint8_t Signal1 = Get_CAN_Num_MMCU_SeatDetectState();
if ((Signal1 == 0x1) && openLED_flag)
{
LED_STATE = 1;
}
else
{
LED_STATE = 0;
}
#else
if ((g_SeatStatus == 0U) && (g_SeatCount >= 3U))
{
g_SeatStatus = 1U;
}
else if ((g_SeatStatus == 1U) && (g_SeatCount >= 3U))
{
g_SeatStatus = 0U;
}
LED_STATE = (Tellib_uint16_t) g_SeatStatus;
#endif
return LED_STATE;
}
static void LED_Seat_Detection_Execution(Tellib_uint16_t led_status)
......
......@@ -53,6 +53,8 @@ extern uint8_t g_OverLoadStatus[9];
extern uint8_t g_OverLoadCount[9];
extern uint8_t g_GrassSwStatus;
extern uint8_t g_GrassSwCount;
extern uint8_t g_SeatStatus;
extern uint8_t g_SeatCount;
// extern Tellib_uint8_t Auto_Start_Stop ;
......
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