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

feat:新增报文0x220和相关信号,增加混动车电源状态逻辑

parent 2ede2ca0
...@@ -135,6 +135,17 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] = ...@@ -135,6 +135,17 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
((void *)0), ((void *)0),
((void *)0), ((void *)0),
}, },
/*以下新增报文待矩阵更新后按要求修改*/
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
500ul,
0x220ul,
((void *)0),
((void *)0),
((void *)0),
},
}; };
void System_Indicator_ON_callback(canlib_uint8_t CopyData[]) void System_Indicator_ON_callback(canlib_uint8_t CopyData[])
{ {
...@@ -350,6 +361,11 @@ uint8_t Get_CAN_CH0_ID_134_Sig_SMCU_ErrorGrage(void) ...@@ -350,6 +361,11 @@ uint8_t Get_CAN_CH0_ID_134_Sig_SMCU_ErrorGrage(void)
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0, CAN_CH0_ID_CAN_0x134_Msg_Count, 2u) >> 0u) & 0x07u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0, CAN_CH0_ID_CAN_0x134_Msg_Count, 2u) >> 0u) & 0x07u));
} }
uint8_t Get_CAN_CH0_ID_220_Sig_VCU_KeySts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0, CAN_CH0_ID_CAN_0x220_Msg_Count, 2u) >> 0u) & 0x07u));
}
uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID) uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID)
{ {
uint8_t u8Result = CAN_CH0_ID_TOTAL_MAX; uint8_t u8Result = CAN_CH0_ID_TOTAL_MAX;
...@@ -391,6 +407,9 @@ uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID) ...@@ -391,6 +407,9 @@ uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID)
case CAN_CH0_ID_CAN_0x134_Msg: case CAN_CH0_ID_CAN_0x134_Msg:
u8Result = CAN_CH0_ID_CAN_0x134_Msg_Count; u8Result = CAN_CH0_ID_CAN_0x134_Msg_Count;
break; break;
case CAN_CH0_ID_CAN_0x220_Msg:
u8Result = CAN_CH0_ID_CAN_0x220_Msg_Count;
break;
default: default:
u8Result = CAN_CH0_ID_TOTAL_MAX; u8Result = CAN_CH0_ID_TOTAL_MAX;
break; break;
......
...@@ -23,6 +23,7 @@ typedef enum ...@@ -23,6 +23,7 @@ typedef enum
CAN_CH0_ID_CAN_0x339_Msg_Count, CAN_CH0_ID_CAN_0x339_Msg_Count,
CAN_CH0_ID_CAN_0x18200A21_Msg_Count, CAN_CH0_ID_CAN_0x18200A21_Msg_Count,
CAN_CH0_ID_CAN_0x134_Msg_Count, CAN_CH0_ID_CAN_0x134_Msg_Count,
CAN_CH0_ID_CAN_0x220_Msg_Count,
CAN_CH0_ID_TOTAL_MAX, CAN_CH0_ID_TOTAL_MAX,
} CAN_CH0_CAN_MSG_ID_t; } CAN_CH0_CAN_MSG_ID_t;
...@@ -63,6 +64,7 @@ extern const st_CAN_SendAttribute CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL] ...@@ -63,6 +64,7 @@ extern const st_CAN_SendAttribute CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL]
#define CAN_CH0_ID_CAN_0x339_Msg 0x339ul #define CAN_CH0_ID_CAN_0x339_Msg 0x339ul
#define CAN_CH0_ID_CAN_0x18200A21_Msg 0x18200A21ul #define CAN_CH0_ID_CAN_0x18200A21_Msg 0x18200A21ul
#define CAN_CH0_ID_CAN_0x134_Msg 0x134ul #define CAN_CH0_ID_CAN_0x134_Msg 0x134ul
#define CAN_CH0_ID_CAN_0x220_Msg 0x220ul
...@@ -105,6 +107,7 @@ extern uint16_t Get_CAN_CH0_ID_339_Sig_MMCU_AccumulatedWorkHours(void); ...@@ -105,6 +107,7 @@ extern uint16_t Get_CAN_CH0_ID_339_Sig_MMCU_AccumulatedWorkHours(void);
extern uint8_t Get_CAN_CH0_ID_339_Sig_MMCU_SingleWorkingHours(void); extern uint8_t Get_CAN_CH0_ID_339_Sig_MMCU_SingleWorkingHours(void);
extern uint8_t Get_CAN_CH0_ID_18200A21_Sig_SBMS_Soc(void); extern uint8_t Get_CAN_CH0_ID_18200A21_Sig_SBMS_Soc(void);
extern uint8_t Get_CAN_CH0_ID_134_Sig_SMCU_ErrorGrage(void); extern uint8_t Get_CAN_CH0_ID_134_Sig_SMCU_ErrorGrage(void);
extern uint8_t Get_CAN_CH0_ID_220_Sig_VCU_KeySts(void);
......
...@@ -219,39 +219,57 @@ uint8_t Get_CAN_Power_State(void) ...@@ -219,39 +219,57 @@ uint8_t Get_CAN_Power_State(void)
uint8_t state = 0; uint8_t state = 0;
uint8_t Power_State = Get_CAN_Num_MMCU_PowerMode(); uint8_t Power_State = Get_CAN_Num_MMCU_PowerMode();
if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (System_Indicator_CANFlag != 1)) #if (PART_NUMBER == RMR42E_60)
{ if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (System_Indicator_CANFlag != 1))
switch (Power_State) {
switch (Power_State)
{
case 0x0:
state = KEY_OFF;
break;
case 0x1:
state = PKEY_ON;
break;
case 0x2:
state = KEY_ACC;
break;
case 0x3:
state = READY;
break;
case 0x4:
state = CHRG_PLUGIN;
break;
case 0x5:
state = CHRGING;
break;
case 0x6:
state = CHRGEND;
break;
default:
state = POWER_CHECK_NULL;
break;
}
}
else
{ {
case 0x0:
state = KEY_OFF;
break;
case 0x1:
state = PKEY_ON;
break;
case 0x2:
state = KEY_ACC;
break;
case 0x3:
state = READY;
break;
case 0x4:
state = CHRG_PLUGIN;
break;
case 0x5:
state = CHRGING;
break;
case 0x6:
state = CHRGEND;
break;
default:
state = POWER_CHECK_NULL; state = POWER_CHECK_NULL;
break;
} }
} #else
else if ((Common_Get_IG_Sts() == COMMON_POWER_ON))
{ {
state = POWER_CHECK_NULL; if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x339_Msg)) == CAN_SIG_NORMAL) && (Get_CAN_CH0_ID_220_Sig_VCU_KeySts() == 1U)
} {
state = KEY_ACC;
}
else
{
state = PKEY_ON;
}
}
else
{
state = KEY_OFF;
}
#endif
return state; return state;
} }
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