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

feat:修改混动车型电池电量逻辑处理

parent bdbaa735
...@@ -59,7 +59,16 @@ static void Data_Soc_Battery_Level_Service(void) ...@@ -59,7 +59,16 @@ static void Data_Soc_Battery_Level_Service(void)
Soc.Valid1 = 0U; Soc.Valid1 = 0U;
} }
#else #else
if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x17A_Msg)) == CAN_SIG_NORMAL)
{
Soc.Value1 = Get_CAN_CH0_ID_17A_Sig_MBMS_StatSoc();
Soc.Valid1 = 1U;
}
else
{
Soc.Value1 = 0U;
Soc.Valid1 = 0U;
}
#endif #endif
if (Soc.Valid1 != 0U) if (Soc.Valid1 != 0U)
...@@ -122,6 +131,7 @@ static void Data_Soc_Battery_Level_Service(void) ...@@ -122,6 +131,7 @@ static void Data_Soc_Battery_Level_Service(void)
static void Data_Soc_DisplayEffect_Service(void) static void Data_Soc_DisplayEffect_Service(void)
{ {
#if (PART_NUMBER == RMR42E_60)
uint8_t MBMS_TOTALSigAcc = Get_CAN_Num_MBMS_TOTALSigAcc(); uint8_t MBMS_TOTALSigAcc = Get_CAN_Num_MBMS_TOTALSigAcc();
uint8_t MBMS_TOTALSigCharge = Get_CAN_Num_MBMS_TOTALSigCharge(); uint8_t MBMS_TOTALSigCharge = Get_CAN_Num_MBMS_TOTALSigCharge();
uint8_t MBMS_StatBattWorkState = Get_CAN_Num_MBMS_StatBattWorkState(); uint8_t MBMS_StatBattWorkState = Get_CAN_Num_MBMS_StatBattWorkState();
...@@ -184,23 +194,21 @@ static void Data_Soc_DisplayEffect_Service(void) ...@@ -184,23 +194,21 @@ static void Data_Soc_DisplayEffect_Service(void)
{ {
if (MBMS_StatBattWorkState == 0x1) // 主电池 if (MBMS_StatBattWorkState == 0x1) // 主电池
{ {
#if (PART_NUMBER == RMR42E_60) if (Soc.Act_Seg2 == 1U)
if (Soc.Act_Seg2 == 1U) {
if (FLASH_SYNC_1Hz)
{ {
if (FLASH_SYNC_1Hz) Soc.Dis_Seg2 = 1U;
{
Soc.Dis_Seg2 = 1U;
}
else
{
Soc.Dis_Seg2 = 0U;
}
} }
else else
{ {
Soc.Dis_Seg2 = Soc.Act_Seg2; Soc.Dis_Seg2 = 0U;
} }
#endif }
else
{
Soc.Dis_Seg2 = Soc.Act_Seg2;
}
if (++SOC_Count_Time > 10U) if (++SOC_Count_Time > 10U)
{ {
SOC_Count_Time = 0U; SOC_Count_Time = 0U;
...@@ -229,62 +237,48 @@ static void Data_Soc_DisplayEffect_Service(void) ...@@ -229,62 +237,48 @@ static void Data_Soc_DisplayEffect_Service(void)
Soc.Dis_Seg1 = Soc.Act_Seg1; Soc.Dis_Seg1 = Soc.Act_Seg1;
} }
#if (PART_NUMBER == RMR42E_60) if (++SOC_Count_Time > 10U)
if (++SOC_Count_Time > 10U) {
SOC_Count_Time = 0U;
Soc.Dis_Seg2 ++;
if (Soc.Dis_Seg2 > Soc.Act_Seg2)
{ {
SOC_Count_Time = 0U; Soc.Dis_Seg2 = 0U;
Soc.Dis_Seg2 ++;
if (Soc.Dis_Seg2 > Soc.Act_Seg2)
{
Soc.Dis_Seg2 = 0U;
}
} }
#endif }
} }
else if (MBMS_StatBattWorkState == 0x7) // 主副电池 else if (MBMS_StatBattWorkState == 0x7) // 主副电池
{ {
#if (PART_NUMBER == RMR42E_60) if (++SOC_Count_Time > 10U)
if (++SOC_Count_Time > 10U) {
SOC_Count_Time = 0U;
Soc.Dis_Seg1 ++;
Soc.Dis_Seg2 ++;
if (Soc.Act_Seg1 > Soc.Act_Seg2)
{ {
SOC_Count_Time = 0U; if (Soc.Dis_Seg2 > Soc.Act_Seg2)
Soc.Dis_Seg1 ++;
Soc.Dis_Seg2 ++;
if (Soc.Act_Seg1 > Soc.Act_Seg2)
{
if (Soc.Dis_Seg2 > Soc.Act_Seg2)
{
Soc.Dis_Seg2 = Soc.Act_Seg2;
if (Soc.Dis_Seg1 > Soc.Act_Seg1)
{
Soc.Dis_Seg1 = 0U;
Soc.Dis_Seg2 = 0U;
}
}
}
else
{ {
Soc.Dis_Seg2 = Soc.Act_Seg2;
if (Soc.Dis_Seg1 > Soc.Act_Seg1) if (Soc.Dis_Seg1 > Soc.Act_Seg1)
{ {
Soc.Dis_Seg1 = Soc.Act_Seg1; Soc.Dis_Seg1 = 0U;
if (Soc.Dis_Seg2 > Soc.Act_Seg2) Soc.Dis_Seg2 = 0U;
{
Soc.Dis_Seg1 = 0U;
Soc.Dis_Seg2 = 0U;
}
} }
} }
} }
#else else
if (++SOC_Count_Time > 10U)
{ {
SOC_Count_Time = 0U;
Soc.Dis_Seg1 ++;
if (Soc.Dis_Seg1 > Soc.Act_Seg1) if (Soc.Dis_Seg1 > Soc.Act_Seg1)
{ {
Soc.Dis_Seg1 = 0U; Soc.Dis_Seg1 = Soc.Act_Seg1;
if (Soc.Dis_Seg2 > Soc.Act_Seg2)
{
Soc.Dis_Seg1 = 0U;
Soc.Dis_Seg2 = 0U;
}
} }
} }
#endif }
} }
else else
{ {
...@@ -335,19 +329,62 @@ static void Data_Soc_DisplayEffect_Service(void) ...@@ -335,19 +329,62 @@ static void Data_Soc_DisplayEffect_Service(void)
SocPoweroffTime = 0U; SocPoweroffTime = 0U;
} }
} }
#else
uint8_t VCUChgMode = Get_CAN_CH0_ID_220_Sig_VCU_ChgMode();
if (VCUChgMode == 1U)
{
if (++SOC_Count_Time > 10U)
{
SOC_Count_Time = 0U;
Soc.Dis_Seg1 ++;
if (Soc.Dis_Seg1 > Soc.Act_Seg1)
{
Soc.Dis_Seg1 = 0U;
}
}
if ((Get_CAN_Power_State() < KEY_ACC) || (Common_Get_IG_Sts() == COMMON_POWER_OFF))
{
if (SocPoweroffTime >= 3600U)
{
Soc.Valid1 = 0U;
}
else
{
Soc.Valid1 = 1U;
SocPoweroffTime ++;
}
}
else
{
Soc.Valid1 = 1U;
}
}
else
{
if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (System_Indicator_CANFlag != 1))
{
Soc.Dis_Seg1 = Soc.Act_Seg1;
Soc.Valid1 = 1U;
}
else
{
Soc.Dis_Seg1 = 0U;
Soc.Valid1 = 0U;
}
}
#endif
} }
static void Data_Soc_Battery_Icon_Service(void) static void Data_Soc_Battery_Icon_Service(void)
{ {
#if (PART_NUMBER == RMR42E_60)
uint8_t MBMSStatBattWorkState = 0U; uint8_t MBMSStatBattWorkState = 0U;
if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (System_Indicator_CANFlag != 1)) if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (System_Indicator_CANFlag != 1))
{ {
#if (PART_NUMBER == RMR42E_60) if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18200A20_Msg)) == CAN_SIG_NORMAL) && (Soc.Value1 != 0U))
if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18200A20_Msg)) == CAN_SIG_NORMAL) && (Soc.Value1 != 0U))
#else
if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x17A_Msg)) == CAN_SIG_NORMAL) && (Soc.Value1 != 0U))
#endif
{ {
Soc.Battery1Icon = 1U; Soc.Battery1Icon = 1U;
} }
...@@ -358,15 +395,10 @@ static void Data_Soc_Battery_Icon_Service(void) ...@@ -358,15 +395,10 @@ static void Data_Soc_Battery_Icon_Service(void)
} }
else else
{ {
#if (PART_NUMBER == RMR42E_60) if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18200A20_Msg)) == CAN_SIG_NORMAL) &&
if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18200A20_Msg)) == CAN_SIG_NORMAL) && (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18203220_Msg)) == CAN_SIG_NORMAL))
(CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18203220_Msg)) == CAN_SIG_NORMAL))
#else
if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x17A_Msg)) == CAN_SIG_NORMAL) &&
(CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x220_Msg)) == CAN_SIG_NORMAL))
#endif
{ {
// MBMSStatBattWorkState = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState(); MBMSStatBattWorkState = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState();
if ((MBMSStatBattWorkState == 0x1U) || (MBMSStatBattWorkState == 0x7U)) if ((MBMSStatBattWorkState == 0x1U) || (MBMSStatBattWorkState == 0x7U))
{ {
Soc.Battery1Icon = 1U; Soc.Battery1Icon = 1U;
...@@ -382,7 +414,7 @@ static void Data_Soc_Battery_Icon_Service(void) ...@@ -382,7 +414,7 @@ static void Data_Soc_Battery_Icon_Service(void)
} }
} }
#if (PART_NUMBER == RMR42E_60)
if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (System_Indicator_CANFlag != 1)) if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (System_Indicator_CANFlag != 1))
{ {
if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18200A21_Msg)) == CAN_SIG_NORMAL) && (Soc.Value2 != 0U)) if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18200A21_Msg)) == CAN_SIG_NORMAL) && (Soc.Value2 != 0U))
...@@ -414,6 +446,15 @@ static void Data_Soc_Battery_Icon_Service(void) ...@@ -414,6 +446,15 @@ static void Data_Soc_Battery_Icon_Service(void)
Soc.Battery2Icon = 0U; Soc.Battery2Icon = 0U;
} }
} }
#else
if (Soc.Valid1 == 1U)
{
Soc.Battery1Icon = 1U;
}
else
{
Soc.Battery1Icon = 0U;
}
#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