Commit dd4f68af authored by 高士达's avatar 高士达

Merge branch 'lgh_from_dev' into 'dev'

Lgh from dev

See merge request !30
parents 360f1dbc 8617a361
...@@ -507,7 +507,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] = ...@@ -507,7 +507,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
0x225ul, 0x225ul,
(( void * )0), (( void * )0),
(CAN_0x225_Receive), (CAN_0x225_Receive),
(( void * )0), (CAN_0x225_Lost_CallBack),
}, },
{ {
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}, {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
...@@ -627,7 +627,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] = ...@@ -627,7 +627,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
0x170ul, 0x170ul,
(( void * )0), (( void * )0),
(CAN_0x170_Receive), (CAN_0x170_Receive),
(( void * )0), (CAN_0x170_Lost_CallBack),
}, },
{ {
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}, {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
...@@ -637,7 +637,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] = ...@@ -637,7 +637,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
0x16Bul, 0x16Bul,
(( void * )0), (( void * )0),
(CAN_0x16B_Receive), (CAN_0x16B_Receive),
(( void * )0), (CAN_0x16B_Lost_CallBack),
}, },
{ {
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}, {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
...@@ -667,7 +667,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] = ...@@ -667,7 +667,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
0x234ul, 0x234ul,
(( void * )0), (( void * )0),
(CAN_0x234_Receive), (CAN_0x234_Receive),
(( void * )0), (CAN_0x234_Lost_CallBack),
}, },
{ {
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}, {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
...@@ -677,7 +677,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] = ...@@ -677,7 +677,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
0x22Ful, 0x22Ful,
(( void * )0), (( void * )0),
(CAN_0x22F_Receive), (CAN_0x22F_Receive),
(( void * )0), (CAN_0x22F_Lost_CallBack),
}, },
{ {
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}, {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
...@@ -687,7 +687,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] = ...@@ -687,7 +687,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
0x18Eul, 0x18Eul,
(( void * )0), (( void * )0),
(CAN_0x18E_Receive), (CAN_0x18E_Receive),
(( void * )0), (CAN_0x18E_Lost_CallBack),
}, },
{ {
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}, {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
...@@ -707,7 +707,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] = ...@@ -707,7 +707,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
0x38Eul, 0x38Eul,
(( void * )0), (( void * )0),
(CAN_0x38E_Receive), (CAN_0x38E_Receive),
(( void * )0), (CAN_0x38E_Lost_CallBack),
}, },
{ {
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u}, {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
...@@ -731,6 +731,12 @@ void System_Indicator_OFF_callback(canlib_uint8_t CopyData[]) ...@@ -731,6 +731,12 @@ void System_Indicator_OFF_callback(canlib_uint8_t CopyData[])
{ {
LED_Driver_Channel_Set(LampChannel_0, i, LED_OFF); LED_Driver_Channel_Set(LampChannel_0, i, LED_OFF);
} }
g_GrassSwCount = 0U;
g_SeatCount = 0U;
g_KeyCount = 0U;
g_ReadyCount = 0U;
g_PtoSwCount = 0U;
g_SysFltLampCount = 0U;
} }
uint8_t Get_CAN_CH0_ID_225_Sig_VCU_VoltLow(void) uint8_t Get_CAN_CH0_ID_225_Sig_VCU_VoltLow(void)
......
...@@ -279,12 +279,18 @@ uint8_t Get_CAN_Power_State(void) ...@@ -279,12 +279,18 @@ uint8_t Get_CAN_Power_State(void)
void CAN_0x18E_Receive(uint8_t CopyData []) void CAN_0x18E_Receive(uint8_t CopyData [])
{ {
if((Fuel.FuelSeg != Fuel.FuelSegDis) && (Fuel.FuelStatusCount >= 3U)) Fuel.FuelSeg = Get_CAN_CH0_ID_18E_Sig_EMS_FuelRemainLevel();
Fuel.FuelValid = 1U;
if (Fuel.FuelSeg > 8U)
{
Fuel.FuelSeg = 8U;
}
if((Fuel.FuelSeg != Fuel.FuelSegDis) && (Fuel.FuelStatusCount >= 2U))
{ {
Fuel.FuelSegDis = Fuel.FuelSeg; Fuel.FuelSegDis = Fuel.FuelSeg;
Fuel.FuelStatusCount = 0U; Fuel.FuelStatusCount = 0U;
} }
else if((Fuel.FuelSeg != Fuel.FuelSegDis) && (Fuel.FuelStatusCount < 3U)) else if((Fuel.FuelSeg != Fuel.FuelSegDis) && (Fuel.FuelStatusCount < 2U))
{ {
Fuel.FuelStatusCount ++; Fuel.FuelStatusCount ++;
} }
...@@ -672,3 +678,46 @@ void CAN_0x17A_Receive(uint8_t CopyData []) ...@@ -672,3 +678,46 @@ void CAN_0x17A_Receive(uint8_t CopyData [])
{ {
g_Msg0x17AFlag = 1U; g_Msg0x17AFlag = 1U;
} }
void CAN_0x18E_Lost_CallBack(uint8_t CopyData [])
{
Fuel.FuelStatusCount = 0U;
}
void CAN_0x225_Lost_CallBack(uint8_t CopyData [])
{
g_u8EmsFltLv3Count = 0U;
g_VoltLowCount = 0U;
g_BmsFltCount[0] = 0U;
g_BmsFltCount[1] = 0U;
}
void CAN_0x234_Lost_CallBack(uint8_t CopyData [])
{
g_EngineOilLowCount = 0U;
}
void CAN_0x38E_Lost_CallBack(uint8_t CopyData [])
{
for(uint8_t i = 0U; i < 9U; i++)
{
g_OverLoadCount[i] = 0U;
}
}
void CAN_0x16B_Lost_CallBack(uint8_t CopyData [])
{
g_ChgModeCount = 0U;
}
void CAN_0x22F_Lost_CallBack(uint8_t CopyData [])
{
g_WorkCount = 0U;
}
void CAN_0x170_Lost_CallBack(uint8_t CopyData [])
{
g_TOTALSigChargeCount = 0U;
}
...@@ -48,4 +48,12 @@ extern void CAN_0x170_Receive(uint8_t CopyData []); ...@@ -48,4 +48,12 @@ extern void CAN_0x170_Receive(uint8_t CopyData []);
extern void CAN_0x339_Receive(uint8_t CopyData []); extern void CAN_0x339_Receive(uint8_t CopyData []);
extern void CAN_0x17A_Receive(uint8_t CopyData []); extern void CAN_0x17A_Receive(uint8_t CopyData []);
extern void CAN_0x18E_Lost_CallBack(uint8_t CopyData []);
extern void CAN_0x225_Lost_CallBack(uint8_t CopyData []);
extern void CAN_0x234_Lost_CallBack(uint8_t CopyData []);
extern void CAN_0x38E_Lost_CallBack(uint8_t CopyData []);
extern void CAN_0x16B_Lost_CallBack(uint8_t CopyData []);
extern void CAN_0x22F_Lost_CallBack(uint8_t CopyData []);
extern void CAN_0x170_Lost_CallBack(uint8_t CopyData []);
#endif #endif
...@@ -24,12 +24,7 @@ void Data_Fuel_Service(void) ...@@ -24,12 +24,7 @@ void Data_Fuel_Service(void)
if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18E_Msg)) == CAN_SIG_NORMAL) if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18E_Msg)) == CAN_SIG_NORMAL)
{ {
Fuel.FuelSeg = Get_CAN_CH0_ID_18E_Sig_EMS_FuelRemainLevel();
Fuel.FuelValid = 1U;
if (Fuel.FuelSeg > 8U)
{
Fuel.FuelSeg = 8U;
}
} }
} }
...@@ -64,7 +59,7 @@ uint8_t Get_FuelStatus_Valid(void) ...@@ -64,7 +59,7 @@ uint8_t Get_FuelStatus_Valid(void)
函数名:Get_FuelPilotLamp_Status 函数名:Get_FuelPilotLamp_Status
功 能:获取燃油指示灯状态函数 功 能:获取燃油指示灯状态函数
参 数:无 参 数:无
返回值:LampStatus 0--熄灭,1--白色,2--黄色,3--黄色闪烁 返回值:LampStatus 0--熄灭,1--黄色,2--白色,3--黄色闪烁
****************************************************************************** ******************************************************************************
注 意:该函数必须每 ms被调用一次 注 意:该函数必须每 ms被调用一次
******************************************************************************/ ******************************************************************************/
...@@ -74,7 +69,7 @@ uint8_t Get_FuelPilotLamp_Status(void) ...@@ -74,7 +69,7 @@ uint8_t Get_FuelPilotLamp_Status(void)
if((Fuel.FuelValid == 1U) && (Fuel.FuelSegDis == 1U)) if((Fuel.FuelValid == 1U) && (Fuel.FuelSegDis == 1U))
{ {
LampStatus = 2U; LampStatus = 1U;
} }
else if ((Fuel.FuelValid == 1U) && (Fuel.FuelSegDis == 0U)) else if ((Fuel.FuelValid == 1U) && (Fuel.FuelSegDis == 0U))
{ {
...@@ -82,7 +77,7 @@ uint8_t Get_FuelPilotLamp_Status(void) ...@@ -82,7 +77,7 @@ uint8_t Get_FuelPilotLamp_Status(void)
} }
else if ((Fuel.FuelValid == 1U) && (Fuel.FuelSegDis > 1U)) else if ((Fuel.FuelValid == 1U) && (Fuel.FuelSegDis > 1U))
{ {
LampStatus = 1U; LampStatus = 2U;
} }
else else
{ {
......
...@@ -9,6 +9,7 @@ uint8_t g_u8ID339flag = 0U; ...@@ -9,6 +9,7 @@ uint8_t g_u8ID339flag = 0U;
void Data_Time_KL30_Init(void) void Data_Time_KL30_Init(void)
{ {
Time.SingleHour = 0U; Time.SingleHour = 0U;
Time.SingleHourHistory = 0U;
Time.SingleMin = 0U; Time.SingleMin = 0U;
Time.TotalHour = 0U; Time.TotalHour = 0U;
Time.SingleValid = 0U; Time.SingleValid = 0U;
...@@ -74,6 +75,12 @@ void Data_Time_Single_Working_Hours(void) ...@@ -74,6 +75,12 @@ void Data_Time_Single_Working_Hours(void)
Time.SingleHour = (uint8_t)(Time.KeepTimeCount / 3600U); Time.SingleHour = (uint8_t)(Time.KeepTimeCount / 3600U);
Time.SingleMin = (uint8_t)((Time.KeepTimeCount % 3600U) / 60U); Time.SingleMin = (uint8_t)((Time.KeepTimeCount % 3600U) / 60U);
Time.SingleValid = 1; Time.SingleValid = 1;
if (Time.SingleHour != Time.SingleHourHistory)
{
/*时钟误差,每小时补偿1s*/
Time.KeepTimeCount ++;
Time.SingleHourHistory = Time.SingleHour;
}
} }
else else
{ {
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
typedef struct //__attribute__((aligned(4))) typedef struct //__attribute__((aligned(4)))
{ {
uint8_t SingleHour; /*单次计时小时*/ uint8_t SingleHour; /*单次计时小时*/
uint8_t SingleHourHistory;/*单次计时小时历史值,用于对比小时数是否变化,补偿时间用*/
uint8_t SingleMin; /*单次计时分钟*/ uint8_t SingleMin; /*单次计时分钟*/
uint8_t SingleValid; /*单次工作时间有效状态*/ uint8_t SingleValid; /*单次工作时间有效状态*/
uint32_t TotalHour; /*累计计时小时*/ uint32_t TotalHour; /*累计计时小时*/
......
...@@ -117,7 +117,7 @@ const LED_Attribute_st LED_Attribute[LED_Max] = ...@@ -117,7 +117,7 @@ const LED_Attribute_st LED_Attribute[LED_Max] =
{em_LED_Fault_Codes_W, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_Fault_Codes_Judgement, LED_Fault_Codes_Execution }, {em_LED_Fault_Codes_W, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_Fault_Codes_Judgement, LED_Fault_Codes_Execution },
{em_LED_System_Indicator_R, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_SystIndicator_R_Judgement, LED_SystIndicator_R_Execution }, {em_LED_System_Indicator_R, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_SystIndicator_R_Judgement, LED_SystIndicator_R_Execution },
{em_LED_P_GEAR_G, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_P_GEAR_G_Judgement, LED_P_GEAR_G_Execution }, {em_LED_P_GEAR_G, NoSelfCheck, ExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_P_GEAR_G_Judgement, LED_P_GEAR_G_Execution },
{em_LED_Fuel_Alarm_W, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_Fuel_Alarm_W_Judgement, LED_Fuel_Alarm_W_Execution }, {em_LED_Fuel_Alarm_W, NoSelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_Fuel_Alarm_W_Judgement, LED_Fuel_Alarm_W_Execution },
{em_LED_Charging_Connection_R, SelfCheck, NoExterNalCheck, LED_IGN_ON_OFF, 0u, 1500ul, LED_Charging_Connection_R_Judgement, LED_Charging_Connection_R_Execution }, {em_LED_Charging_Connection_R, SelfCheck, NoExterNalCheck, LED_IGN_ON_OFF, 0u, 1500ul, LED_Charging_Connection_R_Judgement, LED_Charging_Connection_R_Execution },
{em_LED_Power_Battery_Failure_R, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_Power_Battery_Failure_R_Judgement, LED_Power_Battery_Failure_R_Execution }, {em_LED_Power_Battery_Failure_R, SelfCheck, NoExterNalCheck, LED_IGN_ON, 0u, 1500ul, LED_Power_Battery_Failure_R_Judgement, LED_Power_Battery_Failure_R_Execution },
}; };
...@@ -207,7 +207,7 @@ static Tellib_uint16_t LED_Fuel_Alarm_Judgement(void) ...@@ -207,7 +207,7 @@ static Tellib_uint16_t LED_Fuel_Alarm_Judgement(void)
{ {
if (FLASH_SYNC_1Hz) if (FLASH_SYNC_1Hz)
{ {
LED_STATE = 2U; LED_STATE = 1U;
} }
else else
{ {
...@@ -222,16 +222,16 @@ static void LED_Fuel_Alarm_Execution(Tellib_uint16_t led_status) ...@@ -222,16 +222,16 @@ static void LED_Fuel_Alarm_Execution(Tellib_uint16_t led_status)
#if (PART_NUMBER == G54_A01) #if (PART_NUMBER == G54_A01)
if (led_status == 1u) if (led_status == 1u)
{ {
/*点亮灯*/ /*点亮灯*/
LED_Driver_Channel_Set(LampChannel_0, LampCh0_23_Fuel_Alarm_Y, LED_OFF); LED_Driver_Channel_Set(LampChannel_0, LampCh0_24_Fuel_Alarm_W, LED_OFF);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_24_Fuel_Alarm_W, LED_ON); LED_Driver_Channel_Set(LampChannel_0, LampCh0_23_Fuel_Alarm_Y, LED_ON);
SEG_SET_LED_STS(SEG_LED_Fuel_Oil, 1U); SEG_SET_LED_STS(SEG_LED_Fuel_Oil, 1U);
} }
else if (led_status == 2u) else if (led_status == 2u)
{ {
/*点亮灯*/ /*点亮灯*/
LED_Driver_Channel_Set(LampChannel_0, LampCh0_24_Fuel_Alarm_W, LED_OFF); LED_Driver_Channel_Set(LampChannel_0, LampCh0_23_Fuel_Alarm_Y, LED_OFF);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_23_Fuel_Alarm_Y, LED_ON); LED_Driver_Channel_Set(LampChannel_0, LampCh0_24_Fuel_Alarm_W, LED_ON);
SEG_SET_LED_STS(SEG_LED_Fuel_Oil, 1U); SEG_SET_LED_STS(SEG_LED_Fuel_Oil, 1U);
} }
else else
...@@ -495,7 +495,11 @@ static void LED_Seat_Detection_Execution(Tellib_uint16_t led_status) ...@@ -495,7 +495,11 @@ static void LED_Seat_Detection_Execution(Tellib_uint16_t led_status)
} }
else else
{ {
#if (PART_NUMBER == RMR42E_60)
if (FLASH_SYNC_1Hz && openLED_flag) if (FLASH_SYNC_1Hz && openLED_flag)
#else
if (FLASH_SYNC_1Hz)
#endif
{ {
LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_Seat_Detection_W, LED_ON); LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_Seat_Detection_W, LED_ON);
SEG_SET_LED_STS(SEG_LED_Seat_Detection, 1); SEG_SET_LED_STS(SEG_LED_Seat_Detection, 1);
......
...@@ -41,7 +41,7 @@ void Sys_10ms_Tasks(void) ...@@ -41,7 +41,7 @@ void Sys_10ms_Tasks(void)
void Sys_20ms_Tasks(void) void Sys_20ms_Tasks(void)
{ {
Data_Fuel_Service(); // Data_Fuel_Service();
} }
void Sys_50ms_Tasks(void) void Sys_50ms_Tasks(void)
......
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