Commit b3aa1672 authored by hu's avatar hu

调整诊断收发

parent c4e8fc54
...@@ -56,7 +56,7 @@ void Can_Init(void) ...@@ -56,7 +56,7 @@ void Can_Init(void)
CANLLCCh0Filter.stRSCANCh2.u32RSCANChRuleSize = CANFD0_CH2_RX_RULE_SIZE; /*通道接收规则条数*/ CANLLCCh0Filter.stRSCANCh2.u32RSCANChRuleSize = CANFD0_CH2_RX_RULE_SIZE; /*通道接收规则条数*/
CANLLCCh0Filter.stRSCANCh2.pfnRSCANConfirmCallBack = 0u; /*发送确认*/ CANLLCCh0Filter.stRSCANCh2.pfnRSCANConfirmCallBack = 0u; /*发送确认*/
CANLLCCh0Filter.stRSCANCh2.pfnRSCANAbortConfirmCallBack = 0u; /*发送中止确认*/ CANLLCCh0Filter.stRSCANCh2.pfnRSCANAbortConfirmCallBack = 0u; /*发送中止确认*/
CANLLCCh0Filter.stRSCANCh2.pfnRSCANReadMsgCallBack = 0u; /*接收完成*/ CANLLCCh0Filter.stRSCANCh2.pfnRSCANReadMsgCallBack = Can_Read_Msg2; /*接收完成*/
CANSTB_OUT = 1U; //CANSTB_OUT CANSTB_OUT = 1U; //CANSTB_OUT
CANSTB2_OUT = 1U; //CANSTB2_OUT CANSTB2_OUT = 1U; //CANSTB2_OUT
...@@ -73,99 +73,36 @@ void Can_DeInit(void) ...@@ -73,99 +73,36 @@ void Can_DeInit(void)
uint8_t Can_Write(_CAN_Msg *Msg) uint8_t Can_Write(_CAN_Msg *Msg)
{ {
uint8_t i = 0u;
CAN_Frame_st_t CANFrame; CAN_Frame_st_t CANFrame;
CANFrame.unCANData.u8CANData[0] = Msg->Msg[0]; for (i = 0; i < 8u; i++)
CANFrame.unCANData.u8CANData[1] = Msg->Msg[1]; {
CANFrame.unCANData.u8CANData[2] = Msg->Msg[2]; CANFrame.unCANData.u8CANData[i] = Msg->Msg[i];
CANFrame.unCANData.u8CANData[3] = Msg->Msg[3]; }
CANFrame.unCANData.u8CANData[4] = Msg->Msg[4];
CANFrame.unCANData.u8CANData[5] = Msg->Msg[5];
CANFrame.unCANData.u8CANData[6] = Msg->Msg[6];
CANFrame.unCANData.u8CANData[7] = Msg->Msg[7];
CANFrame.u32CANID = Msg->MsgID; CANFrame.u32CANID = Msg->MsgID;
CANFrame.u8CANLEN = Msg->MsgDLC; CANFrame.u8CANLEN = Msg->MsgDLC;
CANFrame.u8CANFrameIDE = 1u; CANFrame.u8CANFrameIDE = Msg->MsgStd;
switch (Msg->MsgPro)
{
case 0x00u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_0, &CANFrame); break;
case 0x01u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_1, &CANFrame); break;
case 0x02u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_2, &CANFrame); break;
case 0x03u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_3, &CANFrame); break;
case 0x04u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_4, &CANFrame); break;
case 0x05u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_5, &CANFrame); break;
case 0x06u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_6, &CANFrame); break;
case 0x07u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_7, &CANFrame); break;
case 0x08u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_8, &CANFrame); break;
case 0x09u : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_9, &CANFrame); break;
case 0x0Au : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_10, &CANFrame); break;
case 0x0Bu : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_11, &CANFrame); break;
case 0x0Cu : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_12, &CANFrame); break;
case 0x0Du : RSCAN0_CH0_Set_TXBUF_Data(RSCAN_CHANNEL_BUF_13, &CANFrame); break;
default:
break;
if (Msg->MsgPro < RSCAN_CHANNEL_BUF_2)
{
RSCAN0_CH2_Set_TXBUF_Data(Msg->MsgPro, &CANFrame);
} }
else if (Msg->MsgPro < RSCAN_CHANNEL_BUF_MAX)
/* {
switch (Msg->MsgPro) RSCAN0_CH0_Set_TXBUF_Data(Msg->MsgPro, &CANFrame);
}
else if ((Msg->MsgPro >= 25u) && (Msg->MsgPro <= 27u))
{
RSCAN0_CH2_Set_FIFO0_Data(&CANFrame);
}
else
{ {
case 0: RSCAN0_CH0_Set_FIFO0_Data(&CANFrame);
RSCAN0_SendCH0_TxBuf0(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 1:
RSCAN0_SendCH0_TxBuf1(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 2:
RSCAN0_SendCH0_TxBuf2(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 3:
RSCAN0_SendCH0_TxBuf3(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 4:
RSCAN0_SendCH0_TxBuf4(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 5:
RSCAN0_SendCH0_TxBuf5(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 6:
RSCAN0_SendCH0_TxBuf6(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 7:
RSCAN0_SendCH0_TxBuf7(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 8:
RSCAN0_SendCH0_TxBuf8(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 9:
RSCAN0_SendCH0_TxBuf9(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 10:
RSCAN0_SendCH0_TxBuf10(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 11:
RSCAN0_SendCH0_TxBuf11(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 12:
RSCAN0_SendCH0_TxBuf12(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 13:
RSCAN0_SendCH0_TxBuf13(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 14:
RSCAN0_SendCH0_TxBuf14(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
case 15:
RSCAN0_SendCH0_TxBuf15(Msg->MsgID, Msg->MsgDLC, Msg->MsgStd, Msg->Msg);
break;
default:
CAN_CH0_Data_Request(Msg->MsgID, Msg->MsgStd, Msg->MsgRTR, Msg->MsgDLC, Msg->Msg);
break;
} }
*/
return 0; return 0;
} }
...@@ -200,6 +137,18 @@ void Can_Read_Msg(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[]) ...@@ -200,6 +137,18 @@ void Can_Read_Msg(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[])
Co_Can_Buff_Set(Co_Can_ConvertSubID(m_id), m_dlc, m_Msg); Co_Can_Buff_Set(Co_Can_ConvertSubID(m_id), m_dlc, m_Msg);
//if ((m_id == DIAG_ID_Rx_FUN) || (m_id == DIAG_ID_Rx_PHY))
//{
// DoCAN_L_Data_Indication(m_id, m_dlc, m_Msg);
//}
}
void Can_Read_Msg2(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[])
{
ReceivedMsg(m_id, m_dlc);
//Co_Can_Buff_Set(Co_Can_ConvertSubID(m_id), m_dlc, m_Msg);
if ((m_id == DIAG_ID_Rx_FUN) || (m_id == DIAG_ID_Rx_PHY)) if ((m_id == DIAG_ID_Rx_FUN) || (m_id == DIAG_ID_Rx_PHY))
{ {
DoCAN_L_Data_Indication(m_id, m_dlc, m_Msg); DoCAN_L_Data_Indication(m_id, m_dlc, m_Msg);
......
...@@ -46,6 +46,7 @@ void Can_Init(void); ...@@ -46,6 +46,7 @@ void Can_Init(void);
void Can_DeInit(void); void Can_DeInit(void);
uint8_t Can_Write(_CAN_Msg *Msg); uint8_t Can_Write(_CAN_Msg *Msg);
void Can_Read_Msg(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[]); void Can_Read_Msg(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[]);
void Can_Read_Msg2(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg[]);
void Can_Abort_Confirm(uint32_t Identifier, uint8_t TransferStatus); void Can_Abort_Confirm(uint32_t Identifier, uint8_t TransferStatus);
void Can_Sleep_Fun(void); void Can_Sleep_Fun(void);
void Can_SleepController_Fun(void); void Can_SleepController_Fun(void);
......
...@@ -86,7 +86,7 @@ uint8_t Val_EOL_6060_Weigh(void) ...@@ -86,7 +86,7 @@ uint8_t Val_EOL_6060_Weigh(void)
/* 车速里程表 K 值*/ /* 车速里程表 K 值*/
uint16_t Val_EOL_6062_KValue(void) uint16_t Val_EOL_6062_KValue(void)
{ {
uint8_t Res; uint16_t Res;
Res = 0u; Res = 0u;
Res = Res | (EOL_Data_Type.DID_6062[0u] << 8u); Res = Res | (EOL_Data_Type.DID_6062[0u] << 8u);
Res = (Res & 0xFF00u) | EOL_Data_Type.DID_6062[1u]; Res = (Res & 0xFF00u) | EOL_Data_Type.DID_6062[1u];
...@@ -136,7 +136,7 @@ uint8_t Val_EOL_606E_Shift(void) ...@@ -136,7 +136,7 @@ uint8_t Val_EOL_606E_Shift(void)
/* 油箱容量设置*/ /* 油箱容量设置*/
uint16_t Val_EOL_606F_FuelTank(void) uint16_t Val_EOL_606F_FuelTank(void)
{ {
uint8_t Res; uint16_t Res;
Res = 0u; Res = 0u;
Res = Res | (EOL_Data_Type.DID_606F[0u] << 8u); Res = Res | (EOL_Data_Type.DID_606F[0u] << 8u);
Res = (Res & 0xFF00u) | EOL_Data_Type.DID_606F[1u]; Res = (Res & 0xFF00u) | EOL_Data_Type.DID_606F[1u];
...@@ -194,11 +194,13 @@ uint8_t Val_EOL_6075_SpeedAlarm(void) ...@@ -194,11 +194,13 @@ uint8_t Val_EOL_6075_SpeedAlarm(void)
/* 油箱容量设置*/ /* 油箱容量设置*/
uint32_t Val_EOL_6076_FuelTank(void) uint32_t Val_EOL_6076_FuelTank(void)
{ {
uint8_t Res; uint32_t Res = 0u;
Res = 0u;
Res = Res | (EOL_Data_Type.DID_606F[0u] << 8u); Res = (uint8_t)(EOL_Data_Type.DID_6076[0u] & 0xFFU);
Res = (Res & 0xFF00u) | EOL_Data_Type.DID_606F[1u]; Res = ((Res << 8) & 0XFF00u);
Res = ((Res & 0x00FFFFu) << 8) | EOL_Data_Type.DID_606F[2u]; Res = ((Res | EOL_Data_Type.DID_6076[1u]) & 0x00FFFFu);
Res = ((Res << 8u) & 0xFFFF00u);
Res = ((Res | EOL_Data_Type.DID_6076[2u]) & 0xFFFFFFu);
return Res; return Res;
} }
...@@ -213,7 +215,7 @@ uint8_t Val_EOL_60C9_Urea(void) ...@@ -213,7 +215,7 @@ uint8_t Val_EOL_60C9_Urea(void)
/* 主油箱容积*/ /* 主油箱容积*/
uint16_t Val_EOL_60CA_MainFuelTank(void) uint16_t Val_EOL_60CA_MainFuelTank(void)
{ {
uint8_t Res; uint16_t Res;
Res = 0u; Res = 0u;
Res = Res | (EOL_Data_Type.DID_60CA[0u] << 8u); Res = Res | (EOL_Data_Type.DID_60CA[0u] << 8u);
Res = (Res & 0xFF00u) | EOL_Data_Type.DID_60CA[1u]; Res = (Res & 0xFF00u) | EOL_Data_Type.DID_60CA[1u];
...@@ -223,7 +225,7 @@ uint16_t Val_EOL_60CA_MainFuelTank(void) ...@@ -223,7 +225,7 @@ uint16_t Val_EOL_60CA_MainFuelTank(void)
/* 副油箱容积*/ /* 副油箱容积*/
uint16_t Val_EOL_60CB_AuxiliaryTank(void) uint16_t Val_EOL_60CB_AuxiliaryTank(void)
{ {
uint8_t Res; uint16_t Res;
Res = 0; Res = 0;
Res = Res | (EOL_Data_Type.DID_60CB[0u] << 8u); Res = Res | (EOL_Data_Type.DID_60CB[0u] << 8u);
Res = (Res & 0xFF00u) | EOL_Data_Type.DID_60CB[1u]; Res = (Res & 0xFF00u) | EOL_Data_Type.DID_60CB[1u];
...@@ -241,7 +243,7 @@ uint8_t Val_EOL_60CC_FuelTankType(void) ...@@ -241,7 +243,7 @@ uint8_t Val_EOL_60CC_FuelTankType(void)
/* 发动机类型*/ /* 发动机类型*/
uint16_t Val_EOL_60CD_EngineType(void) uint16_t Val_EOL_60CD_EngineType(void)
{ {
uint8_t Res; uint16_t Res;
Res = 0; Res = 0;
Res = Res | (EOL_Data_Type.DID_60CD[0u] << 8u); Res = Res | (EOL_Data_Type.DID_60CD[0u] << 8u);
Res = (Res & 0xFF00u) | EOL_Data_Type.DID_60CD[1u]; Res = (Res & 0xFF00u) | EOL_Data_Type.DID_60CD[1u];
......
...@@ -21,6 +21,16 @@ uint8_t isEnable = 0u; ...@@ -21,6 +21,16 @@ uint8_t isEnable = 0u;
uint16_t enableTimer = 0u; uint16_t enableTimer = 0u;
uint16_t enableMaxTimer = KL15DTCEnableTimer; uint16_t enableMaxTimer = KL15DTCEnableTimer;
const uint8_t Ser22_DID_F187[13] = {0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20}; /*IC 零件号*/
const uint8_t Ser22_DID_F18A[8] = {0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20}; /*系统供应商编号*/
const uint8_t Ser22_DID_F18B[4] = {0x20, 0x21, 0x08, 0x03}; /*IC 生产日期*/
const uint8_t Ser22_DID_F18C[20] = {0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20};
/*IC 系列号*/
const uint8_t Ser22_DID_F190[17] = {0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20};
/*车辆标识号 VIN*/
const uint8_t Ser22_DID_F193[6] = {'V', '3', '.', '1', '.', '0'}; /*IC 硬件版本号 SystemSupplierECUHardwareVersionNumberApp*/
const uint8_t Ser22_DID_F195[6] = {'V', '3', '.', '1', '.', '0'}; /*IC 逻辑程序软件版本号 SystemSupplierECUSoftwareInformationApp*/
DiagMSGUnion DiagMSG; DiagMSGUnion DiagMSG;
DiagFlagUnion DiagFlag; DiagFlagUnion DiagFlag;
Ser27_FlowCtrlUnion Ser27_FlowCtrl; Ser27_FlowCtrlUnion Ser27_FlowCtrl;
...@@ -92,7 +102,7 @@ void clearDiagMSG(void) ...@@ -92,7 +102,7 @@ void clearDiagMSG(void)
uint16_t getSpeed(void) uint16_t getSpeed(void)
{ {
uint16_t VSpeed = Common_Get_Act_V_Speed(); uint16_t VSpeed = Common_Get_Act_V_Speed();
if(VSpeed == 0xFFFFu) if (VSpeed == 0xFFFFu)
{ {
VSpeed = 0u; VSpeed = 0u;
} }
...@@ -106,7 +116,7 @@ uint16_t getSpeed(void) ...@@ -106,7 +116,7 @@ uint16_t getSpeed(void)
uint16_t getESpeed(void) uint16_t getESpeed(void)
{ {
uint16_t ESpeed = Common_Get_Act_E_Speed(); uint16_t ESpeed = Common_Get_Act_E_Speed();
if(ESpeed == 0xFFFFu) if (ESpeed == 0xFFFFu)
{ {
ESpeed = 0u; ESpeed = 0u;
} }
...@@ -130,7 +140,7 @@ uint32_t getKL30Voltage(void) ...@@ -130,7 +140,7 @@ uint32_t getKL30Voltage(void)
*/ */
uint8_t getKL15Status(void) uint8_t getKL15Status(void)
{ {
return System_LINE_KL15(); return System_LINE_KL15();
} }
...@@ -140,7 +150,8 @@ uint8_t getKL15Status(void) ...@@ -140,7 +150,8 @@ uint8_t getKL15Status(void)
*/ */
uint8_t getSecurityLevel(uint8_t SecurityLevel) uint8_t getSecurityLevel(uint8_t SecurityLevel)
{ {
if(SecurityLevel == requestSeed_LV1){ if (SecurityLevel == requestSeed_LV1)
{
return Ser27_FlowCtrl.LV1SafetyStatus; return Ser27_FlowCtrl.LV1SafetyStatus;
} }
return Ser27_FlowCtrl.LV3SafetyStatus; return Ser27_FlowCtrl.LV3SafetyStatus;
...@@ -166,28 +177,30 @@ void Ser27_ChangeSessionHandle(void) ...@@ -166,28 +177,30 @@ void Ser27_ChangeSessionHandle(void)
} }
/** /**
*上电/复位 1s不可请求种子 *上电/复位 1s不可请求种子
*/ */
void Ser27_IgOnDelayTimerService(uint16_t timer) void Ser27_IgOnDelayTimerService(uint16_t timer)
{ {
if(!Ser27_FlowCtrl.AllowRequestSeedFlag){ if (!Ser27_FlowCtrl.AllowRequestSeedFlag)
Ser27_FlowCtrl.Counter_1000ms += timer; {
if(Ser27_FlowCtrl.Counter_1000ms >= 1000u){ Ser27_FlowCtrl.Counter_1000ms += timer;
Ser27_FlowCtrl.AllowRequestSeedFlag = 1u; if (Ser27_FlowCtrl.Counter_1000ms >= 1000u)
Ser27_FlowCtrl.Counter_1000ms = 0; {
} Ser27_FlowCtrl.AllowRequestSeedFlag = 1u;
} Ser27_FlowCtrl.Counter_1000ms = 0;
}
} }
/** }
* 获取是否允许请求种子
*/ /**
* 获取是否允许请求种子
*/
uint8_t GetRequestSeedFlag(void) uint8_t GetRequestSeedFlag(void)
{ {
return Ser27_FlowCtrl.AllowRequestSeedFlag; return Ser27_FlowCtrl.AllowRequestSeedFlag;
} }
/** /**
*复位函数 *复位函数
...@@ -195,8 +208,8 @@ uint8_t GetRequestSeedFlag(void) ...@@ -195,8 +208,8 @@ uint8_t GetRequestSeedFlag(void)
void UDS_RESET(void) void UDS_RESET(void)
{ {
ControlMessageCommunication(networkManagementMsgAndnormalMsg, disableRxAndTx); ControlMessageCommunication(networkManagementMsgAndnormalMsg, disableRxAndTx);
UDS_Delay(3000u); UDS_Delay(6000u);
hardware_reset();
} }
/** /**
...@@ -231,8 +244,10 @@ void UDS_S11_Sand(uint8_t subid) ...@@ -231,8 +244,10 @@ void UDS_S11_Sand(uint8_t subid)
canMag.Msg[6] = FILLER_BYTE; canMag.Msg[6] = FILLER_BYTE;
canMag.Msg[7] = FILLER_BYTE; canMag.Msg[7] = FILLER_BYTE;
canMag.MsgDLC = 8u; canMag.MsgDLC = 8u;
canMag.MsgPro = 25u; canMag.MsgPro = 9u;
canMag.MsgStd = 1u;
Can_Write(&canMag); Can_Write(&canMag);
UDS_S11_Confirm();
} }
/** /**
...@@ -259,7 +274,8 @@ void UDS_NRC78_Sand(uint8_t sid) ...@@ -259,7 +274,8 @@ void UDS_NRC78_Sand(uint8_t sid)
canMag.Msg[6] = FILLER_BYTE; canMag.Msg[6] = FILLER_BYTE;
canMag.Msg[7] = FILLER_BYTE; canMag.Msg[7] = FILLER_BYTE;
canMag.MsgDLC = 8u; canMag.MsgDLC = 8u;
canMag.MsgPro = 26u; canMag.MsgPro = 9u;
canMag.MsgStd = 1u;
Can_Write(&canMag); Can_Write(&canMag);
} }
...@@ -279,14 +295,15 @@ void UDS_14_SendRsp(uint8_t sid) ...@@ -279,14 +295,15 @@ void UDS_14_SendRsp(uint8_t sid)
canMag.Msg[6] = FILLER_BYTE; canMag.Msg[6] = FILLER_BYTE;
canMag.Msg[7] = FILLER_BYTE; canMag.Msg[7] = FILLER_BYTE;
canMag.MsgDLC = 8u; canMag.MsgDLC = 8u;
canMag.MsgPro = 27u; canMag.MsgPro = 9u;
canMag.MsgStd = 1u;
Can_Write(&canMag); Can_Write(&canMag);
} }
/** /**
*发送负反馈 *发送负反馈
*/ */
void UDS_SendNRCRsp(uint8_t sid,uint8_t status) void UDS_SendNRCRsp(uint8_t sid, uint8_t status)
{ {
_CAN_Msg canMag; _CAN_Msg canMag;
canMag.MsgID = DIAG_ID_Tx; canMag.MsgID = DIAG_ID_Tx;
...@@ -299,7 +316,8 @@ void UDS_SendNRCRsp(uint8_t sid,uint8_t status) ...@@ -299,7 +316,8 @@ void UDS_SendNRCRsp(uint8_t sid,uint8_t status)
canMag.Msg[6] = FILLER_BYTE; canMag.Msg[6] = FILLER_BYTE;
canMag.Msg[7] = FILLER_BYTE; canMag.Msg[7] = FILLER_BYTE;
canMag.MsgDLC = 8u; canMag.MsgDLC = 8u;
canMag.MsgPro = 26u; canMag.MsgPro = 9u;
canMag.MsgStd = 1u;
Can_Write(&canMag); Can_Write(&canMag);
} }
...@@ -320,7 +338,7 @@ void UDS_50us_Service(void) ...@@ -320,7 +338,7 @@ void UDS_50us_Service(void)
void UDS_10ms_Service(void) void UDS_10ms_Service(void)
{ {
uint16_t count; uint16_t count;
if(UDSTimer10ms >= 200u) if (UDSTimer10ms >= 200u)
{ {
count = UDSTimer10ms / 200u; count = UDSTimer10ms / 200u;
UDSTimer10ms %= 200u; UDSTimer10ms %= 200u;
...@@ -340,9 +358,9 @@ void UDS_KL15_init(void) ...@@ -340,9 +358,9 @@ void UDS_KL15_init(void)
{ {
uint8_t KL15Status; uint8_t KL15Status;
KL15Status = getKL15Status(); KL15Status = getKL15Status();
if(UDSKL15Status == 0u) if (UDSKL15Status == 0u)
{ {
if((KL15Status == 1u)) if ((KL15Status == 1u))
{ {
UDSKL15Status = 1u; UDSKL15Status = 1u;
UDSSleepStatus = 1u; UDSSleepStatus = 1u;
...@@ -353,7 +371,7 @@ void UDS_KL15_init(void) ...@@ -353,7 +371,7 @@ void UDS_KL15_init(void)
} }
else else
{ {
if(KL15Status == 0u) if (KL15Status == 0u)
{ {
UDSKL15Status = 0u; UDSKL15Status = 0u;
setDTCEnableTimer(KL15DTCEnableTimer); setDTCEnableTimer(KL15DTCEnableTimer);
...@@ -375,16 +393,16 @@ void MsgLostTimer(uint16_t timer) ...@@ -375,16 +393,16 @@ void MsgLostTimer(uint16_t timer)
{ {
uint8_t i; uint8_t i;
uint8_t BUS_OFF_Status = getBusoffStatus(); uint8_t BUS_OFF_Status = getBusoffStatus();
if((isEnable == 1u) && (isReceive == 1u) && (UDSKL15Status == 1u) && (BUS_OFF_Status == 0u) && (HVoltageStatus == 0u) && (LVoltageStatus == 0u)) if ((isEnable == 1u) && (isReceive == 1u) && (UDSKL15Status == 1u) && (BUS_OFF_Status == 0u) && (HVoltageStatus == 0u) && (LVoltageStatus == 0u))
{ {
for(i = 0u; i < (sizeof(msgList) / sizeof(msgList[0u])); ++i) for (i = 0u; i < (sizeof(msgList) / sizeof(msgList[0u])); ++i)
{ {
if(msgList[i][3u] < msgList[i][2u] * OfflineLoopMultiple) if (msgList[i][3u] < msgList[i][2u] * OfflineLoopMultiple)
{ {
msgList[i][3u] += timer; msgList[i][3u] += timer;
} }
} }
} }
} }
...@@ -397,11 +415,11 @@ void MsgLostTimer(uint16_t timer) ...@@ -397,11 +415,11 @@ void MsgLostTimer(uint16_t timer)
void ReceivedMsg(uint32_t MsgID, uint8_t DLC) void ReceivedMsg(uint32_t MsgID, uint8_t DLC)
{ {
uint8_t i; uint8_t i;
if(isReceive == 1u) if (isReceive == 1u)
{ {
for(i = 0u; i < (sizeof(msgList) / sizeof(msgList[0u])); ++i) for (i = 0u; i < (sizeof(msgList) / sizeof(msgList[0u])); ++i)
{ {
if((MsgID == msgList[i][0u]) && (DLC == msgList[i][1u])) if ((MsgID == msgList[i][0u]) && (DLC == msgList[i][1u]))
{ {
msgList[i][3u] = 0u; msgList[i][3u] = 0u;
break; break;
...@@ -473,6 +491,8 @@ void S3_ServiceTimeOut(void) ...@@ -473,6 +491,8 @@ void S3_ServiceTimeOut(void)
OpenDTCTest(); OpenDTCTest();
/*诊断发送重置*/ /*诊断发送重置*/
clearDiagMSG(); clearDiagMSG();
/*2F/31关指示灯*/
IndicatorTurnOn(2u);
} }
/** /**
...@@ -486,7 +506,7 @@ void Ser27_ErrDelayTimerService(uint16_t timer) ...@@ -486,7 +506,7 @@ void Ser27_ErrDelayTimerService(uint16_t timer)
{ {
Ser27_FlowCtrl.LV1DelayTimer += timer; Ser27_FlowCtrl.LV1DelayTimer += timer;
if (Ser27_FlowCtrl.LV1DelayTimer >= SER27_ERR_DELAY_TIMEOUT) if (Ser27_FlowCtrl.LV1DelayTimer >= SER27_ERR_DELAY_TIMEOUT)
{ {
Ser27_FlowCtrlCnt.LV1ReqSeedCnt = SER27_MAX_REQ_SEED_NUM - 1u; Ser27_FlowCtrlCnt.LV1ReqSeedCnt = SER27_MAX_REQ_SEED_NUM - 1u;
Ser27_FlowCtrl.LV1Ctrl = SER27_CLEAR_REQ_SEEDED; Ser27_FlowCtrl.LV1Ctrl = SER27_CLEAR_REQ_SEEDED;
Ser27_FlowCtrl.LV1DelayTimer = 0u; Ser27_FlowCtrl.LV1DelayTimer = 0u;
...@@ -527,42 +547,42 @@ void ControlMessageCommunication(uint8_t Type, uint8_t Status) ...@@ -527,42 +547,42 @@ void ControlMessageCommunication(uint8_t Type, uint8_t Status)
{ {
case enableRxAndTx: case enableRxAndTx:
RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_ENABLE); RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_ENABLE);
//RTE_CAN_SetAPP_RX_Mode(CAN_APP_RX_ENABLE); //RTE_CAN_SetAPP_RX_Mode(CAN_APP_RX_ENABLE);
isReceive = 1; isReceive = 1;
break; break;
case enableRxAndDisableTx: case enableRxAndDisableTx:
RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_DISABLE); RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_DISABLE);
//RTE_CAN_SetAPP_RX_Mode(CAN_APP_RX_ENABLE); //RTE_CAN_SetAPP_RX_Mode(CAN_APP_RX_ENABLE);
isReceive = 1; isReceive = 1;
break; break;
case disableRxAndEnableTx: case disableRxAndEnableTx:
RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_ENABLE); RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_ENABLE);
//RTE_CAN_SetAPP_RX_Mode(CAN_APP_RX_DISABLE); //RTE_CAN_SetAPP_RX_Mode(CAN_APP_RX_DISABLE);
isReceive = 0; isReceive = 0;
break; break;
case disableRxAndTx: case disableRxAndTx:
RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_DISABLE); RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_DISABLE);
//RTE_CAN_SetAPP_RX_Mode(CAN_APP_RX_DISABLE); //RTE_CAN_SetAPP_RX_Mode(CAN_APP_RX_DISABLE);
isReceive = 0; isReceive = 0;
break; break;
default: default:
break; break;
} }
/*if ((uint8_t)(Status & enableRxAndDisableTx) == enableRxAndTx) /*if ((uint8_t)(Status & enableRxAndDisableTx) == enableRxAndTx)
{ {
// RTE_CAN_SetAPP_TX_Status(RTE_CAN_TX_DISABLE); // RTE_CAN_SetAPP_TX_Status(RTE_CAN_TX_DISABLE);
// RTE_CAN_SetAPP_RX_Status(RTE_CAN_RX_ENABLE); // RTE_CAN_SetAPP_RX_Status(RTE_CAN_RX_ENABLE);
} }
else if ((uint8_t)(Status & enableRxAndDisableTx) == enableRxAndTx) else if ((uint8_t)(Status & enableRxAndDisableTx) == enableRxAndTx)
{ {
// RTE_CAN_SetAPP_TX_Status(RTE_CAN_TX_ENABLE); // RTE_CAN_SetAPP_TX_Status(RTE_CAN_TX_ENABLE);
// RTE_CAN_SetAPP_RX_Status(RTE_CAN_RX_ENABLE); // RTE_CAN_SetAPP_RX_Status(RTE_CAN_RX_ENABLE);
RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_ENABLE); RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_ENABLE);
} }
if ((uint8_t)(Status & disableRxAndEnableTx) == disableRxAndEnableTx) if ((uint8_t)(Status & disableRxAndEnableTx) == disableRxAndEnableTx)
{ {
// RTE_CAN_SetAPP_TX_Status(RTE_CAN_TX_ENABLE); // RTE_CAN_SetAPP_TX_Status(RTE_CAN_TX_ENABLE);
// RTE_CAN_SetAPP_RX_Status(RTE_CAN_RX_DISABLE); // RTE_CAN_SetAPP_RX_Status(RTE_CAN_RX_DISABLE);
RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_ENABLE); RTE_CAN_SetAPP_TX_Mode(CAN_APP_TX_ENABLE);
...@@ -603,11 +623,11 @@ void ControlMessageCommunication(uint8_t Type, uint8_t Status) ...@@ -603,11 +623,11 @@ void ControlMessageCommunication(uint8_t Type, uint8_t Status)
void enableDTCTimer(uint16_t Timer) void enableDTCTimer(uint16_t Timer)
{ {
uint8_t BUS_OFF_Status = getBusoffStatus(); uint8_t BUS_OFF_Status = getBusoffStatus();
if((UDSKL15Status == 1u) && (BUS_OFF_Status == 0u) && (HVoltageStatus == 0u) && (LVoltageStatus == 0u)) if ((UDSKL15Status == 1u) && (BUS_OFF_Status == 0u) && (HVoltageStatus == 0u) && (LVoltageStatus == 0u))
{ {
if(isEnable == 0u) if (isEnable == 0u)
{ {
if(enableTimer >= enableMaxTimer) if (enableTimer >= enableMaxTimer)
{ {
isEnable = 1u; isEnable = 1u;
enableTimer = 0u; enableTimer = 0u;
...@@ -635,25 +655,25 @@ uint8_t isDTCEnable(void) ...@@ -635,25 +655,25 @@ uint8_t isDTCEnable(void)
void setDTCEnableTimer(uint16_t Timer) void setDTCEnableTimer(uint16_t Timer)
{ {
uint8_t i; uint8_t i;
if(isEnable == 1u) if (isEnable == 1u)
{ {
isEnable = 0u; isEnable = 0u;
enableTimer = 0u; enableTimer = 0u;
enableMaxTimer = Timer; enableMaxTimer = Timer;
for(i = 0u; i < (sizeof(msgList) / sizeof(msgList[0u])); ++i) for (i = 0u; i < (sizeof(msgList) / sizeof(msgList[0u])); ++i)
{ {
msgList[i][3] = 0u; msgList[i][3] = 0u;
} }
} }
else else
{ {
if(enableMaxTimer == Timer) if (enableMaxTimer == Timer)
{ {
enableTimer = 0u; enableTimer = 0u;
} }
else else
{ {
if(enableMaxTimer < enableTimer + Timer) if (enableMaxTimer < enableTimer + Timer)
{ {
enableMaxTimer = enableTimer + Timer; enableMaxTimer = enableTimer + Timer;
} }
...@@ -735,8 +755,9 @@ void ReadAllDFlashData(void) ...@@ -735,8 +755,9 @@ void ReadAllDFlashData(void)
{ {
Ser27_FlowCtrl.LV3DelayCtrl = SER27_ERR_DELAY_TIMER_EN; Ser27_FlowCtrl.LV3DelayCtrl = SER27_ERR_DELAY_TIMER_EN;
} }
DTCConfigurationInit(); DTCConfigurationInit();
BootReadFlahInit();
} }
/** /**
...@@ -817,8 +838,8 @@ void AllFlagInit(void) ...@@ -817,8 +838,8 @@ void AllFlagInit(void)
void Ser27ToDFlashInfoInit(void) void Ser27ToDFlashInfoInit(void)
{ {
Ser27_FlowCtrlCnt.Flag = 0x7AA7A55Au; Ser27_FlowCtrlCnt.Flag = 0x7AA7A55Au;
// Ser27_FlowCtrlCnt.LV11_InvaidKyeCnt = 0u; // Ser27_FlowCtrlCnt.LV11_InvaidKyeCnt = 0u;
// Ser27_FlowCtrlCnt.LV11_ReqSeedCnt = 0u; // Ser27_FlowCtrlCnt.LV11_ReqSeedCnt = 0u;
Ser27_FlowCtrlCnt.LV1InvaidKyeCnt = 0u; Ser27_FlowCtrlCnt.LV1InvaidKyeCnt = 0u;
Ser27_FlowCtrlCnt.LV1ReqSeedCnt = 0u; Ser27_FlowCtrlCnt.LV1ReqSeedCnt = 0u;
Ser27_FlowCtrlCnt.RandNum = 0u; Ser27_FlowCtrlCnt.RandNum = 0u;
...@@ -833,7 +854,7 @@ void BootToDFlashInfoInit(void) ...@@ -833,7 +854,7 @@ void BootToDFlashInfoInit(void)
BootToDFlashInfo.Flag = 0x7AA7A55Au; BootToDFlashInfo.Flag = 0x7AA7A55Au;
BootToDFlashInfo.DID_0200 = 0u; BootToDFlashInfo.DID_0200 = 0u;
BootToDFlashInfo.DID_0201 = 0u; BootToDFlashInfo.DID_0201 = 0u;
memset(BootToDFlashInfo.DID_F180, 0x20, 7u); memset(BootToDFlashInfo.DID_F180, 0x20, 7u);
BootToDFlashInfo.DID_F180[0] = '1'; BootToDFlashInfo.DID_F180[0] = '1';
BootToDFlashInfo.DID_F180[1] = '0'; BootToDFlashInfo.DID_F180[1] = '0';
...@@ -843,7 +864,7 @@ void BootToDFlashInfoInit(void) ...@@ -843,7 +864,7 @@ void BootToDFlashInfoInit(void)
BootToDFlashInfo.DID_F181[0] = '1'; BootToDFlashInfo.DID_F181[0] = '1';
BootToDFlashInfo.DID_F181[1] = '0'; BootToDFlashInfo.DID_F181[1] = '0';
BootToDFlashInfo.DID_F181[2] = '3'; BootToDFlashInfo.DID_F181[2] = '3';
memset(BootToDFlashInfo.DID_F187, 0x20, 10u); memset(BootToDFlashInfo.DID_F187, 0x20, 10u);
BootToDFlashInfo.DID_F187[0] = '8'; BootToDFlashInfo.DID_F187[0] = '8';
BootToDFlashInfo.DID_F187[1] = '8'; BootToDFlashInfo.DID_F187[1] = '8';
...@@ -855,7 +876,7 @@ void BootToDFlashInfoInit(void) ...@@ -855,7 +876,7 @@ void BootToDFlashInfoInit(void)
BootToDFlashInfo.DID_F187[7] = '9'; BootToDFlashInfo.DID_F187[7] = '9';
BootToDFlashInfo.DID_F187[8] = '7'; BootToDFlashInfo.DID_F187[8] = '7';
BootToDFlashInfo.DID_F187[9] = '0'; BootToDFlashInfo.DID_F187[9] = '0';
memset(BootToDFlashInfo.DID_F189, 0x20, 16u); memset(BootToDFlashInfo.DID_F189, 0x20, 16u);
BootToDFlashInfo.DID_F189[0] = '0'; BootToDFlashInfo.DID_F189[0] = '0';
BootToDFlashInfo.DID_F189[1] = '0'; BootToDFlashInfo.DID_F189[1] = '0';
...@@ -870,12 +891,12 @@ void BootToDFlashInfoInit(void) ...@@ -870,12 +891,12 @@ void BootToDFlashInfoInit(void)
BootToDFlashInfo.DID_F189[10] = '/'; BootToDFlashInfo.DID_F189[10] = '/';
BootToDFlashInfo.DID_F189[11] = 'A'; BootToDFlashInfo.DID_F189[11] = 'A';
BootToDFlashInfo.DID_F189[12] = 'A'; BootToDFlashInfo.DID_F189[12] = 'A';
memset(BootToDFlashInfo.DID_F193, '0', 16u); memset(BootToDFlashInfo.DID_F193, '0', 16u);
BootToDFlashInfo.DID_F193[0] = '1'; BootToDFlashInfo.DID_F193[0] = '1';
BootToDFlashInfo.DID_F193[1] = '0'; BootToDFlashInfo.DID_F193[1] = '0';
BootToDFlashInfo.DID_F193[2] = '4'; BootToDFlashInfo.DID_F193[2] = '4';
memset(BootToDFlashInfo.DID_F198, 0x20, 16u); memset(BootToDFlashInfo.DID_F198, 0x20, 16u);
BootToDFlashInfo.DID_F199[0] = 0x20u; BootToDFlashInfo.DID_F199[0] = 0x20u;
...@@ -889,40 +910,41 @@ void BootToDFlashInfoInit(void) ...@@ -889,40 +910,41 @@ void BootToDFlashInfoInit(void)
*2E信息初始化 *2E信息初始化
*/ */
void Ser2EToDFlashInfoInit(void) void Ser2EToDFlashInfoInit(void)
{ Ser2EToDFlashInfo.Flag = 0x7AA7A55Au; {
Ser2EToDFlashInfo.Flag = 0x7AA7A55Au;
/* /*
uint8_t i; uint8_t i;
_EOL_F101 EOL_F101; _EOL_F101 EOL_F101;
_EOL_F110 EOL_F110; _EOL_F110 EOL_F110;
memset(Ser2EToDFlashInfo.DID_DFEC, 0, 64u); memset(Ser2EToDFlashInfo.DID_DFEC, 0, 64u);
memset(Ser2EToDFlashInfo.DID_DFED, 0, 64u); memset(Ser2EToDFlashInfo.DID_DFED, 0, 64u);
memset(Ser2EToDFlashInfo.DID_DFEE, 0, 64u); memset(Ser2EToDFlashInfo.DID_DFEE, 0, 64u);
memset(Ser2EToDFlashInfo.DID_DFEF, 0, 64u); memset(Ser2EToDFlashInfo.DID_DFEF, 0, 64u);
memset(Ser2EToDFlashInfo.DID_F112, 0x20, 8u); memset(Ser2EToDFlashInfo.DID_F112, 0x20, 8u);
Ser2EToDFlashInfo.DID_F112[0] = 'F'; Ser2EToDFlashInfo.DID_F112[0] = 'F';
Ser2EToDFlashInfo.DID_F112[1] = 'E'; Ser2EToDFlashInfo.DID_F112[1] = 'E';
Ser2EToDFlashInfo.DID_F112[2] = '_'; Ser2EToDFlashInfo.DID_F112[2] = '_';
Ser2EToDFlashInfo.DID_F112[3] = '7'; Ser2EToDFlashInfo.DID_F112[3] = '7';
Ser2EToDFlashInfo.DID_F112[4] = 'B'; Ser2EToDFlashInfo.DID_F112[4] = 'B';
memset(Ser2EToDFlashInfo.DID_F190, 0x20, 17u); memset(Ser2EToDFlashInfo.DID_F190, 0x20, 17u);
memset(Ser2EToDFlashInfo.DID_F197, 0x20, 8u); memset(Ser2EToDFlashInfo.DID_F197, 0x20, 8u);
Ser2EToDFlashInfo.DID_F197[0] = 'I'; Ser2EToDFlashInfo.DID_F197[0] = 'I';
Ser2EToDFlashInfo.DID_F197[1] = 'P'; Ser2EToDFlashInfo.DID_F197[1] = 'P';
Ser2EToDFlashInfo.DID_F197[2] = 'K'; Ser2EToDFlashInfo.DID_F197[2] = 'K';
Ser2EToDFlashInfo.DID_F19D[0] = 0x20u; Ser2EToDFlashInfo.DID_F19D[0] = 0x20u;
Ser2EToDFlashInfo.DID_F19D[1] = 0x00u; Ser2EToDFlashInfo.DID_F19D[1] = 0x00u;
Ser2EToDFlashInfo.DID_F19D[2] = 0x01u; Ser2EToDFlashInfo.DID_F19D[2] = 0x01u;
Ser2EToDFlashInfo.DID_F19D[3] = 0x01u; Ser2EToDFlashInfo.DID_F19D[3] = 0x01u;
EOL_InitVal(); EOL_InitVal();
EOL_F101 = EOL_GetF101(); EOL_F101 = EOL_GetF101();
EOL_F110 = EOL_GetF110(); EOL_F110 = EOL_GetF110();
...@@ -958,11 +980,11 @@ void DTCToDFlashInfoInit(void) ...@@ -958,11 +980,11 @@ void DTCToDFlashInfoInit(void)
DTCToDFlashInfo.DTC[i].Snapshot.FirstMalfunction = 0x00000000u; DTCToDFlashInfo.DTC[i].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[i].Snapshot.LastMalfunction = 0x00000000u;*/ DTCToDFlashInfo.DTC[i].Snapshot.LastMalfunction = 0x00000000u;*/
} }
for(i = 0u; i < (sizeof(msgList) / sizeof(msgList[0u])); ++i) for (i = 0u; i < (sizeof(msgList) / sizeof(msgList[0u])); ++i)
{ {
msgList[i][3] = 0u; msgList[i][3] = 0u;
} }
for(i = 0u; i < (sizeof(DTCTimerList) / sizeof(DTCTimerList[0u])); ++i) for (i = 0u; i < (sizeof(DTCTimerList) / sizeof(DTCTimerList[0u])); ++i)
{ {
DTCTimerList[i] = 0u; DTCTimerList[i] = 0u;
} }
...@@ -973,270 +995,75 @@ void DTCToDFlashInfoInit(void) ...@@ -973,270 +995,75 @@ void DTCToDFlashInfoInit(void)
*/ */
void DTCConfigurationInit(void) void DTCConfigurationInit(void)
{ {
if(!Val_EOL_605C_LDWS()) if (!Val_EOL_605C_LDWS())
{ {
DTCToDFlashInfo.DTC[cnU100706].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle; DTCToDFlashInfo.DTC[cnU100706].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU100706].DTCAgeing = 0x00u; DTCToDFlashInfo.DTC[cnU100706].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU100706].DTCCount = 0x00u; DTCToDFlashInfo.DTC[cnU100706].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU100706].DTCPendingCount = 0x00u; DTCToDFlashInfo.DTC[cnU100706].DTCPendingCount = 0x00u;
} }
/* DTCToDFlashInfo.DTC[cnU010087].Snapshot.ECUPowerVoltage = 0x00u; /* DTCToDFlashInfo.DTC[cnU010087].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU010087].Snapshot.VehicleSpeed = 0x0000u; DTCToDFlashInfo.DTC[cnU010087].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU010087].Snapshot.OccurrenceCounter = 0x00u; DTCToDFlashInfo.DTC[cnU010087].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU010087].Snapshot.FirstMalfunction = 0x00000000u; DTCToDFlashInfo.DTC[cnU010087].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU010087].Snapshot.LastMalfunction = 0x00000000u; DTCToDFlashInfo.DTC[cnU010087].Snapshot.LastMalfunction = 0x00000000u;*/
} }
if(!Val_EOL_F110_TCU())
{ void BootReadFlahInit(void)
DTCToDFlashInfo.DTC[cnU010187].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle; {
DTCToDFlashInfo.DTC[cnU010187].DTCAgeing = 0x00u; uint8_t i;
DTCToDFlashInfo.DTC[cnU010187].DTCCount = 0x00u; uint8_t WriteFlag = 0;
DTCToDFlashInfo.DTC[cnU010187].DTCPendingCount = 0x00u; for (i = 0; i < sizeof(Ser2EToDFlashInfo.DID_F187); i++)
DTCToDFlashInfo.DTC[cnU010187].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU010187].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU010187].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU010187].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU010187].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_ESC())
{
DTCToDFlashInfo.DTC[cnU012287].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU012287].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU012287].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU012287].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU012287].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU012287].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU012287].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU012287].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU012287].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_EPS())
{
DTCToDFlashInfo.DTC[cnU013187].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU013187].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU013187].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU013187].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU013187].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU013187].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU013187].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU013187].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU013187].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_GW())
{
DTCToDFlashInfo.DTC[cnU014687].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU014687].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU014687].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU014687].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU014687].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU014687].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU014687].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU014687].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU014687].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_BCM())
{
DTCToDFlashInfo.DTC[cnU014087].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU014087].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU014087].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU014087].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU014087].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU014087].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU014087].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU014087].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU014087].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_ACU())
{
DTCToDFlashInfo.DTC[cnU015187].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU015187].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU015187].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU015187].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU015187].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU015187].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU015187].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU015187].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU015187].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_AC())
{
DTCToDFlashInfo.DTC[cnU016487].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU016487].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU016487].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU016487].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU016487].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU016487].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU016487].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU016487].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU016487].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_PEPS())
{
DTCToDFlashInfo.DTC[cnU021487].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU021487].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU021487].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU021487].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU021487].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU021487].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU021487].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU021487].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU021487].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_BMSH())
{
DTCToDFlashInfo.DTC[cnU011287].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU011287].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU011287].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU011287].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU011287].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU011287].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU011287].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU011287].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU011287].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_AVAS())
{
DTCToDFlashInfo.DTC[cnU016087].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU016087].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU016087].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU016087].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU016087].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU016087].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU016087].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU016087].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU016087].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_VCU())
{
DTCToDFlashInfo.DTC[cnU111487].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU111487].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU111487].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU111487].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU111487].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU111487].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU111487].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU111487].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU111487].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_OBC())
{
DTCToDFlashInfo.DTC[cnU111587].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU111587].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU111587].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU111587].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU111587].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU111587].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU111587].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU111587].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU111587].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_IPU())
{
DTCToDFlashInfo.DTC[cnU011087].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU011087].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU011087].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU011087].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU011087].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU011087].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU011087].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU011087].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU011087].Snapshot.LastMalfunction = 0x00000000u;
}
if(!Val_EOL_F110_MMI())
{ {
DTCToDFlashInfo.DTC[cnU015687].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle; if (Ser2EToDFlashInfo.DID_F187[i] != Ser22_DID_F187[i])
DTCToDFlashInfo.DTC[cnU015687].DTCAgeing = 0x00u; {
DTCToDFlashInfo.DTC[cnU015687].DTCCount = 0x00u; Ser2EToDFlashInfo.DID_F187[i] = Ser22_DID_F187[i];
DTCToDFlashInfo.DTC[cnU015687].DTCPendingCount = 0x00u; WriteFlag = 1;
DTCToDFlashInfo.DTC[cnU015687].Snapshot.ECUPowerVoltage = 0x00u; }
DTCToDFlashInfo.DTC[cnU015687].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU015687].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU015687].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU015687].Snapshot.LastMalfunction = 0x00000000u;
} }
if(!Val_EOL_F110_DSCU4()) for (i = 0; i < sizeof(Ser2EToDFlashInfo.DID_F18A); i++)
{ {
DTCToDFlashInfo.DTC[cnU020887].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle; if (Ser2EToDFlashInfo.DID_F18A[i] != Ser22_DID_F18A[i])
DTCToDFlashInfo.DTC[cnU020887].DTCAgeing = 0x00u; {
DTCToDFlashInfo.DTC[cnU020887].DTCCount = 0x00u; Ser2EToDFlashInfo.DID_F18A[i] = Ser22_DID_F18A[i];
DTCToDFlashInfo.DTC[cnU020887].DTCPendingCount = 0x00u; WriteFlag = 1;
DTCToDFlashInfo.DTC[cnU020887].Snapshot.ECUPowerVoltage = 0x00u; }
DTCToDFlashInfo.DTC[cnU020887].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU020887].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU020887].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU020887].Snapshot.LastMalfunction = 0x00000000u;
} }
if(!Val_EOL_F110_IB()) for (i = 0; i < sizeof(Ser2EToDFlashInfo.DID_F18B); i++)
{ {
DTCToDFlashInfo.DTC[cnU111A87].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle; if (Ser2EToDFlashInfo.DID_F18B[i] != Ser22_DID_F18B[i])
DTCToDFlashInfo.DTC[cnU111A87].DTCAgeing = 0x00u; {
DTCToDFlashInfo.DTC[cnU111A87].DTCCount = 0x00u; Ser2EToDFlashInfo.DID_F18B[i] = Ser22_DID_F18B[i];
DTCToDFlashInfo.DTC[cnU111A87].DTCPendingCount = 0x00u; WriteFlag = 1;
DTCToDFlashInfo.DTC[cnU111A87].Snapshot.ECUPowerVoltage = 0x00u; }
DTCToDFlashInfo.DTC[cnU111A87].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU111A87].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU111A87].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU111A87].Snapshot.LastMalfunction = 0x00000000u;
} }
if(!Val_EOL_F110_ESCL()) for (i = 0; i < sizeof(Ser2EToDFlashInfo.DID_F18C); i++)
{ {
DTCToDFlashInfo.DTC[cnU023687].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle; if (Ser2EToDFlashInfo.DID_F18C[i] != Ser22_DID_F18C[i])
DTCToDFlashInfo.DTC[cnU023687].DTCAgeing = 0x00u; {
DTCToDFlashInfo.DTC[cnU023687].DTCCount = 0x00u; Ser2EToDFlashInfo.DID_F18C[i] = Ser22_DID_F18C[i];
DTCToDFlashInfo.DTC[cnU023687].DTCPendingCount = 0x00u; WriteFlag = 1;
DTCToDFlashInfo.DTC[cnU023687].Snapshot.ECUPowerVoltage = 0x00u; }
DTCToDFlashInfo.DTC[cnU023687].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU023687].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU023687].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU023687].Snapshot.LastMalfunction = 0x00000000u;
} }
if(!Val_EOL_F110_EGSM()) for (i = 0; i < sizeof(Ser2EToDFlashInfo.DID_F193); i++)
{ {
DTCToDFlashInfo.DTC[cnU010387].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle; if (Ser2EToDFlashInfo.DID_F193[i] != Ser22_DID_F193[i])
DTCToDFlashInfo.DTC[cnU010387].DTCAgeing = 0x00u; {
DTCToDFlashInfo.DTC[cnU010387].DTCCount = 0x00u; Ser2EToDFlashInfo.DID_F193[i] = Ser22_DID_F193[i];
DTCToDFlashInfo.DTC[cnU010387].DTCPendingCount = 0x00u; WriteFlag = 1;
DTCToDFlashInfo.DTC[cnU010387].Snapshot.ECUPowerVoltage = 0x00u; }
DTCToDFlashInfo.DTC[cnU010387].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU010387].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU010387].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU010387].Snapshot.LastMalfunction = 0x00000000u;
} }
if(!Val_EOL_F110_FRS()) for (i = 0; i < sizeof(Ser2EToDFlashInfo.DID_F195); i++)
{ {
DTCToDFlashInfo.DTC[cnU023587].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle; if (Ser2EToDFlashInfo.DID_F195[i] != Ser22_DID_F195[i])
DTCToDFlashInfo.DTC[cnU023587].DTCAgeing = 0x00u; {
DTCToDFlashInfo.DTC[cnU023587].DTCCount = 0x00u; Ser2EToDFlashInfo.DID_F195[i] = Ser22_DID_F195[i];
DTCToDFlashInfo.DTC[cnU023587].DTCPendingCount = 0x00u; WriteFlag = 1;
DTCToDFlashInfo.DTC[cnU023587].Snapshot.ECUPowerVoltage = 0x00u; }
DTCToDFlashInfo.DTC[cnU023587].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU023587].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU023587].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU023587].Snapshot.LastMalfunction = 0x00000000u;
} }
if(!Val_EOL_F110_FCS()) if (WriteFlag)
{ {
DTCToDFlashInfo.DTC[cnU120387].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle; write2EData(Write2EData);
DTCToDFlashInfo.DTC[cnU120387].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU120387].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU120387].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU120387].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU120387].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU120387].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU120387].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU120387].Snapshot.LastMalfunction = 0x00000000u;
} }
if(!Val_EOL_F110_PAS())
{
DTCToDFlashInfo.DTC[cnU017087].DTCStatus = DTCNoTestLastClear | DTCNoTestThisCycle;
DTCToDFlashInfo.DTC[cnU017087].DTCAgeing = 0x00u;
DTCToDFlashInfo.DTC[cnU017087].DTCCount = 0x00u;
DTCToDFlashInfo.DTC[cnU017087].DTCPendingCount = 0x00u;
DTCToDFlashInfo.DTC[cnU017087].Snapshot.ECUPowerVoltage = 0x00u;
DTCToDFlashInfo.DTC[cnU017087].Snapshot.VehicleSpeed = 0x0000u;
DTCToDFlashInfo.DTC[cnU017087].Snapshot.OccurrenceCounter = 0x00u;
DTCToDFlashInfo.DTC[cnU017087].Snapshot.FirstMalfunction = 0x00000000u;
DTCToDFlashInfo.DTC[cnU017087].Snapshot.LastMalfunction = 0x00000000u;
}*/
} }
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
#include "RTE_ADC.h" #include "RTE_ADC.h"
#include "rh850_macros.h" #include "rh850_macros.h"
#include "Telltales_user.h"
/** /**
*正负反馈 *正负反馈
...@@ -342,12 +344,6 @@ typedef struct ...@@ -342,12 +344,6 @@ typedef struct
uint8_t DID_F180[7]; uint8_t DID_F180[7];
uint8_t DID_F181[7]; uint8_t DID_F181[7];
uint8_t DID_F182[7]; uint8_t DID_F182[7];
uint8_t DID_F187[13];
uint8_t DID_F18A[8];
uint8_t DID_F18B[4];
uint8_t DID_F18C[20];
uint8_t DID_F193[6];
uint8_t DID_F195[6];
uint8_t DID_6000; uint8_t DID_6000;
uint8_t DID_6001; uint8_t DID_6001;
uint8_t DID_6078; uint8_t DID_6078;
...@@ -395,9 +391,7 @@ typedef struct ...@@ -395,9 +391,7 @@ typedef struct
uint8_t DID_6065; uint8_t DID_6065;
uint8_t DID_6066; uint8_t DID_6066;
uint8_t DID_6069; uint8_t DID_6069;
uint8_t DID_6077; uint8_t DID_6077;
} BootToDFlashInfoUnion; } BootToDFlashInfoUnion;
typedef struct typedef struct
...@@ -409,7 +403,12 @@ typedef struct ...@@ -409,7 +403,12 @@ typedef struct
uint8_t DID_F190[17]; uint8_t DID_F190[17];
uint8_t DID_F1F0[6]; uint8_t DID_F1F0[6];
uint8_t DID_F1F1[6]; uint8_t DID_F1F1[6];
uint8_t fill; uint8_t DID_F187[13];
uint8_t DID_F18A[8];
uint8_t DID_F18B[4];
uint8_t DID_F18C[20];
uint8_t DID_F193[6];
uint8_t DID_F195[6];
} Ser2EToDFlashInfoUnion; } Ser2EToDFlashInfoUnion;
/*typedef struct /*typedef struct
...@@ -502,5 +501,5 @@ void BootToDFlashInfoInit(void); ...@@ -502,5 +501,5 @@ void BootToDFlashInfoInit(void);
void Ser2EToDFlashInfoInit(void); void Ser2EToDFlashInfoInit(void);
void DTCToDFlashInfoInit(void); void DTCToDFlashInfoInit(void);
void DTCConfigurationInit(void); void DTCConfigurationInit(void);
void BootReadFlahInit(void);
#endif #endif
...@@ -99,7 +99,7 @@ void TestDTC(uint16_t timer) ...@@ -99,7 +99,7 @@ void TestDTC(uint16_t timer)
*/ */
void TestDTC_U100700(void) void TestDTC_U100700(void)
{ {
if(DTCList[U100700][1u]) if(DTCList[cnU100700][1u])
{ {
if(getBUS_OFF_FLAG()) if(getBUS_OFF_FLAG())
{ {
...@@ -483,7 +483,7 @@ uint8_t getBusoffStatus(void) ...@@ -483,7 +483,7 @@ uint8_t getBusoffStatus(void)
setDTCEnableTimer(BusOffDTCEnableTimer); setDTCEnableTimer(BusOffDTCEnableTimer);
} }
return getBUS_OFF_Status(); return getBUS_OFF_Status();
return 0; //return 0;
} }
/** /**
......
...@@ -100,7 +100,7 @@ uint8_t UDS_11Service_NRC13_TotalLengthCheck(void) ...@@ -100,7 +100,7 @@ uint8_t UDS_11Service_NRC13_TotalLengthCheck(void)
uint8_t UDS_11Service_NRC22(void) uint8_t UDS_11Service_NRC22(void)
{ {
uint8_t NRC = positiveResponse; uint8_t NRC = positiveResponse;
if(getSpeed() >= 0u) if(getSpeed() > 0u)
{ {
NRC = conditionsNotCorrect; NRC = conditionsNotCorrect;
UDS_Service_Response(0x11u, NEGATIVE_RSP, DIAG_ID_Tx, 1u, (uint8_t*)&NRC); UDS_Service_Response(0x11u, NEGATIVE_RSP, DIAG_ID_Tx, 1u, (uint8_t*)&NRC);
......
...@@ -42,18 +42,7 @@ void UDS_Service_22_Indication(uint32_t A_TA_type, uint16_t A_Length, uint8_t A_ ...@@ -42,18 +42,7 @@ void UDS_Service_22_Indication(uint32_t A_TA_type, uint16_t A_Length, uint8_t A_
clearDiagMSG(); /*清除诊断信息*/ clearDiagMSG(); /*清除诊断信息*/
} }
const uint8_t Ser22_DID_F113[4] = {0x04, 0x04, 0x04, 0x04}; /*诊断协议版本*/
const uint8_t Ser22_DID_F182[] = ""; /*标定版本号*/
const uint8_t Ser22_DID_F18A[6] = {'4', '5', '1', '0', '0', '3'}; /*供应商识别号*/
const uint8_t Ser22_DID_F18B[4] = {0x20, 0x21, 0x01, 0x19}; /*ECU制造日期*/
const uint8_t Ser22_DID_F18C[] = "0000"; /*ECU序列号*/
const uint8_t Ser22_DID_F195[] = "114"; /*供应商ECU软件版本号*/
const uint8_t Ser22_DID_F1AA[8]; /*ECU核心总成零部件号*/
const uint8_t Ser22_DID_F1AE[] = ""; /*ECU软件零件号*/
const uint8_t Ser22_DID_6209[16] = ""; /*第二软件版本号*/
const uint8_t Ser22_DID_6983[3] = ""; /*抬头显示屏控制器软件版本*/
const uint8_t Ser22_DID_6984[2] = ""; /*抬头显示屏控制器硬件版本*/
const uint8_t Ser22_DID_6985[3] = ""; /*抬头显示屏控制器 EEPROM数据版本*/
/** /**
*22服务子功能 *22服务子功能
...@@ -412,7 +401,7 @@ void UDS_22Service_DID_F185(void) ...@@ -412,7 +401,7 @@ void UDS_22Service_DID_F185(void)
*/ */
void UDS_22Service_DID_F187(void) void UDS_22Service_DID_F187(void)
{ {
memcpy(DiagMSG.msgData.DidDetail.Data, BootToDFlashInfo.DID_F187, sizeof(BootToDFlashInfo.DID_F187)); memcpy(DiagMSG.msgData.DidDetail.Data, Ser2EToDFlashInfo.DID_F187, sizeof(Ser2EToDFlashInfo.DID_F187));
UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 13u, DiagMSG.msgData.Data); UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 13u, DiagMSG.msgData.Data);
} }
...@@ -422,7 +411,7 @@ void UDS_22Service_DID_F187(void) ...@@ -422,7 +411,7 @@ void UDS_22Service_DID_F187(void)
*/ */
void UDS_22Service_DID_F18A(void) void UDS_22Service_DID_F18A(void)
{ {
memcpy(DiagMSG.msgData.DidDetail.Data, BootToDFlashInfo.DID_F18A, sizeof(BootToDFlashInfo.DID_F18A)); memcpy(DiagMSG.msgData.DidDetail.Data, Ser2EToDFlashInfo.DID_F18A, sizeof(Ser2EToDFlashInfo.DID_F18A));
UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 8u, DiagMSG.msgData.Data); UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 8u, DiagMSG.msgData.Data);
} }
...@@ -432,7 +421,7 @@ void UDS_22Service_DID_F18A(void) ...@@ -432,7 +421,7 @@ void UDS_22Service_DID_F18A(void)
*/ */
void UDS_22Service_DID_F18B(void) void UDS_22Service_DID_F18B(void)
{ {
memcpy(DiagMSG.msgData.DidDetail.Data, BootToDFlashInfo.DID_F18B, sizeof(BootToDFlashInfo.DID_F18B)); memcpy(DiagMSG.msgData.DidDetail.Data, Ser2EToDFlashInfo.DID_F18B, sizeof(Ser2EToDFlashInfo.DID_F18B));
UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 4u, DiagMSG.msgData.Data); UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 4u, DiagMSG.msgData.Data);
} }
...@@ -442,7 +431,7 @@ void UDS_22Service_DID_F18B(void) ...@@ -442,7 +431,7 @@ void UDS_22Service_DID_F18B(void)
*/ */
void UDS_22Service_DID_F18C(void) void UDS_22Service_DID_F18C(void)
{ {
memcpy(DiagMSG.msgData.DidDetail.Data, BootToDFlashInfo.DID_F18C, sizeof(BootToDFlashInfo.DID_F18C)); memcpy(DiagMSG.msgData.DidDetail.Data, Ser2EToDFlashInfo.DID_F18C, sizeof(Ser2EToDFlashInfo.DID_F18C));
UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 20u, DiagMSG.msgData.Data); UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 20u, DiagMSG.msgData.Data);
} }
...@@ -462,7 +451,7 @@ void UDS_22Service_DID_F190(void) ...@@ -462,7 +451,7 @@ void UDS_22Service_DID_F190(void)
*/ */
void UDS_22Service_DID_F193(void) void UDS_22Service_DID_F193(void)
{ {
memcpy(DiagMSG.msgData.DidDetail.Data, BootToDFlashInfo.DID_F193, sizeof(BootToDFlashInfo.DID_F180)); memcpy(DiagMSG.msgData.DidDetail.Data, Ser2EToDFlashInfo.DID_F193, sizeof(Ser2EToDFlashInfo.DID_F193));
UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 6u, DiagMSG.msgData.Data); UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 6u, DiagMSG.msgData.Data);
} }
...@@ -472,7 +461,7 @@ void UDS_22Service_DID_F193(void) ...@@ -472,7 +461,7 @@ void UDS_22Service_DID_F193(void)
*/ */
void UDS_22Service_DID_F195(void) void UDS_22Service_DID_F195(void)
{ {
memcpy(DiagMSG.msgData.DidDetail.Data, BootToDFlashInfo.DID_F195, sizeof(BootToDFlashInfo.DID_F180)); memcpy(DiagMSG.msgData.DidDetail.Data, Ser2EToDFlashInfo.DID_F195, sizeof(Ser2EToDFlashInfo.DID_F195));
UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 6u, DiagMSG.msgData.Data); UDS_Service_Response(0x22u, POSITIVE_RSP, DIAG_ID_Tx, 2u + 6u, DiagMSG.msgData.Data);
} }
......
...@@ -119,8 +119,8 @@ void UDS_27Service_Sub01(void) ...@@ -119,8 +119,8 @@ void UDS_27Service_Sub01(void)
Ser27_CreateRandomSeed(); Ser27_CreateRandomSeed();
Ser27_FlowCtrl.LV1Seed[0] = ((uint8_t)(Ser27_SeedRandomNumber) ^ 0x31u)+16u ; Ser27_FlowCtrl.LV1Seed[0] = ((uint8_t)(Ser27_SeedRandomNumber) ^ 0x31u)+16u ;
Ser27_FlowCtrl.LV1Seed[1] = ((uint8_t)(Ser27_SeedRandomNumber>>8) ^ 0x56u)+9u ; Ser27_FlowCtrl.LV1Seed[1] = ((uint8_t)(Ser27_SeedRandomNumber>>8) ^ 0x56u)+9u ;
Ser27_FlowCtrl.LV1Seed[0] = 0x49u; //Ser27_FlowCtrl.LV1Seed[0] = 0x49u;
Ser27_FlowCtrl.LV1Seed[1] = 0xB4u; //Ser27_FlowCtrl.LV1Seed[1] = 0xB4u;
} }
else else
{ {
...@@ -174,8 +174,8 @@ void UDS_27Service_Sub03(void) ...@@ -174,8 +174,8 @@ void UDS_27Service_Sub03(void)
Ser27_CreateRandomSeed(); Ser27_CreateRandomSeed();
Ser27_FlowCtrl.LV3Seed[0] = ((uint8_t)(Ser27_SeedRandomNumber) ^ 0x31u)+16u ; Ser27_FlowCtrl.LV3Seed[0] = ((uint8_t)(Ser27_SeedRandomNumber) ^ 0x31u)+16u ;
Ser27_FlowCtrl.LV3Seed[1] = ((uint8_t)(Ser27_SeedRandomNumber>>8) ^ 0x56u)+9u ; Ser27_FlowCtrl.LV3Seed[1] = ((uint8_t)(Ser27_SeedRandomNumber>>8) ^ 0x56u)+9u ;
Ser27_FlowCtrl.LV3Seed[0] = 0x49u; //Ser27_FlowCtrl.LV3Seed[0] = 0x49u;
Ser27_FlowCtrl.LV3Seed[1] = 0xB4u; //Ser27_FlowCtrl.LV3Seed[1] = 0xB4u;
} }
else else
......
...@@ -174,7 +174,7 @@ void UDS_2EService_DID_F183(void) ...@@ -174,7 +174,7 @@ void UDS_2EService_DID_F183(void)
{ {
memcpy(Ser2EToDFlashInfo.DID_F183,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F183)); memcpy(Ser2EToDFlashInfo.DID_F183,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F183));
write2EData(Write2EData); write2EData(Write2EData);
UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 3u, DiagMSG.msgData.Data); UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 2u, DiagMSG.msgData.Data);
} }
/** /**
...@@ -185,7 +185,7 @@ void UDS_2EService_DID_F184(void) ...@@ -185,7 +185,7 @@ void UDS_2EService_DID_F184(void)
{ {
memcpy(Ser2EToDFlashInfo.DID_F184,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F184)); memcpy(Ser2EToDFlashInfo.DID_F184,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F184));
write2EData(Write2EData); write2EData(Write2EData);
UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 3u, DiagMSG.msgData.Data); UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 2u, DiagMSG.msgData.Data);
} }
/** /**
...@@ -196,7 +196,7 @@ void UDS_2EService_DID_F185(void) ...@@ -196,7 +196,7 @@ void UDS_2EService_DID_F185(void)
{ {
memcpy(Ser2EToDFlashInfo.DID_F185,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F184)); memcpy(Ser2EToDFlashInfo.DID_F185,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F184));
write2EData(Write2EData); write2EData(Write2EData);
UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 3u, DiagMSG.msgData.Data); UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 2u, DiagMSG.msgData.Data);
} }
/** /**
...@@ -207,7 +207,7 @@ void UDS_2EService_DID_F190(void) ...@@ -207,7 +207,7 @@ void UDS_2EService_DID_F190(void)
{ {
memcpy(Ser2EToDFlashInfo.DID_F190,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F190)); memcpy(Ser2EToDFlashInfo.DID_F190,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F190));
write2EData(Write2EData); write2EData(Write2EData);
UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 3u, DiagMSG.msgData.Data); UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 2u, DiagMSG.msgData.Data);
} }
/** /**
...@@ -218,7 +218,7 @@ void UDS_2EService_DID_F1F0(void) ...@@ -218,7 +218,7 @@ void UDS_2EService_DID_F1F0(void)
{ {
memcpy(Ser2EToDFlashInfo.DID_F1F0,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F1F0)); memcpy(Ser2EToDFlashInfo.DID_F1F0,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F1F0));
write2EData(Write2EData); write2EData(Write2EData);
UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 3u, DiagMSG.msgData.Data); UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 2u, DiagMSG.msgData.Data);
} }
/** /**
...@@ -229,7 +229,7 @@ void UDS_2EService_DID_F1F1(void) ...@@ -229,7 +229,7 @@ void UDS_2EService_DID_F1F1(void)
{ {
memcpy(Ser2EToDFlashInfo.DID_F1F1,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F1F1)); memcpy(Ser2EToDFlashInfo.DID_F1F1,DiagMSG.msgData.DidDetail.Data,sizeof(Ser2EToDFlashInfo.DID_F1F1));
write2EData(Write2EData); write2EData(Write2EData);
UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 3u, DiagMSG.msgData.Data); UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 2u, DiagMSG.msgData.Data);
} }
/** /**
...@@ -240,15 +240,6 @@ void UDS_2EService_DID_605C(void) ...@@ -240,15 +240,6 @@ void UDS_2EService_DID_605C(void)
{ {
uint8_t i; uint8_t i;
memcpy(&EOL_Data_Type.DID_605C,DiagMSG.msgData.DidDetail.Data,1u); memcpy(&EOL_Data_Type.DID_605C,DiagMSG.msgData.DidDetail.Data,1u);
memset(&EOL_Data_Type.DID_605C,2,(sizeof(EOL_Data_Type) - 4));
//memset(&Ser2EToDFlashInfo.DID_F183,3,sizeof(Ser2EToDFlashInfo) - 4);
//memset(&Ser27_FlowCtrlCnt.RandNum,1,sizeof(Ser27_FlowCtrlCnt) - 4);
//memset(&DiagFlag.JumpToBootFlag,1,sizeof(DiagFlag) - 4);
//write2EData(Write2EData);
//WriteDFlashData(EEPROM_BLOCK_UDS_S27, (uint32_t *)&Ser27_FlowCtrlCnt.Flag, sizeof(Ser27_FlowCtrlCnt) / 4u, NeedWait);
//WriteDFlashData(EEPROM_BLOCK_UDS_FLAG, (uint32_t *)&DiagFlag.Flag, sizeof(DiagFlag) / 4u, NeedWait);/**/
write2EData(WriteEOLData); write2EData(WriteEOLData);
UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 2u, DiagMSG.msgData.Data); UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 2u, DiagMSG.msgData.Data);
} }
...@@ -430,7 +421,7 @@ void UDS_2EService_DID_6074(void) ...@@ -430,7 +421,7 @@ void UDS_2EService_DID_6074(void)
{ {
memcpy(&EOL_Data_Type.DID_6074,DiagMSG.msgData.DidDetail.Data,1u); memcpy(&EOL_Data_Type.DID_6074,DiagMSG.msgData.DidDetail.Data,1u);
write2EData(WriteEOLData); write2EData(WriteEOLData);
UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 3u, DiagMSG.msgData.Data); UDS_Service_Response(0x2Eu, POSITIVE_RSP, DIAG_ID_Tx, 2u, DiagMSG.msgData.Data);
} }
/** /**
......
...@@ -119,7 +119,7 @@ uint8_t UDS_2FService_SubParameter_NRC31(void) ...@@ -119,7 +119,7 @@ uint8_t UDS_2FService_SubParameter_NRC31(void)
} }
if(DiagMSG.msgData.DidDetail.Data[0] == 3u) if(DiagMSG.msgData.DidDetail.Data[0] == 3u)
{ {
if((DiagMSG.msgData.DidDetail.Data[1] == 0x00u) || (DiagMSG.msgData.DidDetail.Data[1] == 0xFFu)) if((DiagMSG.msgData.DidDetail.Data[1] == 0x00u) || (DiagMSG.msgData.DidDetail.Data[1] == 0x01u))
{ {
NRC = positiveResponse; NRC = positiveResponse;
} }
......
...@@ -60,7 +60,7 @@ void UDS_2FService_DID(void) ...@@ -60,7 +60,7 @@ void UDS_2FService_DID(void)
UDS_2FService_DID_6048(); UDS_2FService_DID_6048();
break; break;
case 0x6091u: case 0x6091u:
UDS_2FService_DID_6048(); UDS_2FService_DID_6091();
break; break;
case 0x6046u: case 0x6046u:
UDS_2FService_DID_6046(); UDS_2FService_DID_6046();
...@@ -136,7 +136,7 @@ void UDS_2FService_DID(void) ...@@ -136,7 +136,7 @@ void UDS_2FService_DID(void)
// case 0x6092u: // case 0x6092u:
// break; // break;
// case 0x6093u: // case 0x6093u:
break; // break;
case 0x6022u: case 0x6022u:
UDS_2FService_DID_6022(); UDS_2FService_DID_6022();
break; break;
......
...@@ -117,7 +117,7 @@ uint8_t UDS_31Service_NRC31(void) ...@@ -117,7 +117,7 @@ uint8_t UDS_31Service_NRC31(void)
uint8_t i; uint8_t i;
uint8_t NRC = requestOutOfRange; uint8_t NRC = requestOutOfRange;
uint16_t temp = 0u; uint16_t temp = 0u;
uint8_t count = 0u; uint8_t count = sizeof(S31DID) / sizeof(S31DID[0]);
for(i = 0u; i < count; ++i) for(i = 0u; i < count; ++i)
{ {
...@@ -262,9 +262,7 @@ uint8_t UDS_31Service_Sub_NRC7E(void) ...@@ -262,9 +262,7 @@ uint8_t UDS_31Service_Sub_NRC7E(void)
uint8_t UDS_31Service_Sub_NRC31(void) uint8_t UDS_31Service_Sub_NRC31(void)
{ {
uint8_t i; uint8_t i;
uint8_t NRC = requestOutOfRange; uint8_t NRC = positiveResponse;
uint16_t temp = 0u;
uint8_t count = 0u;
if((DiagMSG.msgData.S31Detail.SubID == stopRoutine) && (getDID(DiagMSG.msgData.S31Detail.DID_H, DiagMSG.msgData.S31Detail.DID_L) == ActiveIC)){ if((DiagMSG.msgData.S31Detail.SubID == stopRoutine) && (getDID(DiagMSG.msgData.S31Detail.DID_H, DiagMSG.msgData.S31Detail.DID_L) == ActiveIC)){
NRC = requestOutOfRange; NRC = requestOutOfRange;
} }
......
#include "UDS_31Service_Internal.h" #include "UDS_31Service_Internal.h"
#include "Telltales_user.h"
void IndicatorTurnOn(uint8_t ST)
{
}
\ No newline at end of file
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "TYW_stdint.h" #include "TYW_stdint.h"
#include "UDS_Common.h" #include "UDS_Common.h"
void IndicatorTurnOn(uint8_t ST);
#endif #endif
\ No newline at end of file
...@@ -177,6 +177,7 @@ void UDS_31Service_Sub03(void) ...@@ -177,6 +177,7 @@ void UDS_31Service_Sub03(void)
/*87607-16*/ /*87607-16*/
void UDS_31Service_Sub01_DID_C004(void) void UDS_31Service_Sub01_DID_C004(void)
{ {
IndicatorTurnOn(0x01u);
S31DIDC004RequestStatus = 1; S31DIDC004RequestStatus = 1;
DiagMSG.msgData.S31Detail.Data[0] = 0x04u; DiagMSG.msgData.S31Detail.Data[0] = 0x04u;
UDS_Service_Response(0x31u, POSITIVE_RSP, DIAG_ID_Tx, 4u, DiagMSG.msgData.Data); UDS_Service_Response(0x31u, POSITIVE_RSP, DIAG_ID_Tx, 4u, DiagMSG.msgData.Data);
...@@ -212,6 +213,7 @@ void UDS_31Service_Sub01_DID_C014(void) ...@@ -212,6 +213,7 @@ void UDS_31Service_Sub01_DID_C014(void)
/*87607-16*/ /*87607-16*/
void UDS_31Service_Sub02_DID_C004(void) void UDS_31Service_Sub02_DID_C004(void)
{ {
IndicatorTurnOn(0x02u);
S31DIDC004RequestStatus = 0; S31DIDC004RequestStatus = 0;
DiagMSG.msgData.S31Detail.Data[0] = 0x04u; DiagMSG.msgData.S31Detail.Data[0] = 0x04u;
UDS_Service_Response(0x31u, POSITIVE_RSP, DIAG_ID_Tx, 4u, DiagMSG.msgData.Data); UDS_Service_Response(0x31u, POSITIVE_RSP, DIAG_ID_Tx, 4u, DiagMSG.msgData.Data);
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
#ifndef _DIAG_ID_DEF_H_ #ifndef _DIAG_ID_DEF_H_
#define _DIAG_ID_DEF_H_ #define _DIAG_ID_DEF_H_
#define DIAG_ID_Tx 0x18DAFA17u /*发送ID*/ #define DIAG_ID_Tx 0x07E0 /*发送ID*/
#define DIAG_ID_Rx_PHY 0x18DA17FAu /*接收ID,物理寻址*/ #define DIAG_ID_Rx_PHY 0x07E8 /*接收ID,物理寻址*/
#define DIAG_ID_Rx_FUN 0x18DBFFFAu /*接收ID,功能寻址*/ #define DIAG_ID_Rx_FUN 0x0111 /*接收ID,功能寻址*/
#endif #endif
\ No newline at end of file
...@@ -160,8 +160,7 @@ void DoCAN_N_USData_Request ( uint32_t N_TAtype, uint8_t MessageData[], uint16_t ...@@ -160,8 +160,7 @@ void DoCAN_N_USData_Request ( uint32_t N_TAtype, uint8_t MessageData[], uint16_t
/*TpCtrl.TxReq = 1u;*/ /*TpCtrl.TxReq = 1u;*/
DoCAN_Start_Timer ( TIMING_PARA_N_As ); /*启动N_As计时*/ DoCAN_Start_Timer ( TIMING_PARA_N_As ); /*启动N_As计时*/
TpCtrl.Process = TP_TX_INIT; /*数据帧已发出,等待发送完成*/ TpCtrl.Process = TP_TX_INIT; /*数据帧已发出,等待发送完成*/
DoCAN_L_Data_Request(id, dlc, data);
//DoCAN_L_Data_Request(id, dlc, data);
} }
} }
} }
...@@ -240,6 +239,8 @@ void DoCAN_L_Data_Request ( uint32_t Identifier, uint8_t dlc, uint8_t Data[] ) ...@@ -240,6 +239,8 @@ void DoCAN_L_Data_Request ( uint32_t Identifier, uint8_t dlc, uint8_t Data[] )
{ {
uint8_t i; uint8_t i;
uint8_t temp; uint8_t temp;
_CAN_Msg canMag;
LinkTxCtrl.Identifier = Identifier; LinkTxCtrl.Identifier = Identifier;
for ( i = 0u; i < dlc; i++ ) for ( i = 0u; i < dlc; i++ )
{ {
...@@ -252,9 +253,19 @@ void DoCAN_L_Data_Request ( uint32_t Identifier, uint8_t dlc, uint8_t Data[] ) ...@@ -252,9 +253,19 @@ void DoCAN_L_Data_Request ( uint32_t Identifier, uint8_t dlc, uint8_t Data[] )
{ {
LinkTxCtrl.Data[i] = FILLER_BYTE; LinkTxCtrl.Data[i] = FILLER_BYTE;
} }
canMag.MsgID = LinkTxCtrl.Identifier ;
canMag.MsgDLC = 8u;
canMag.MsgPro = 0u;
canMag.MsgStd = 0u;
for (i = 0; i < 8u; i++)
{
canMag.Msg[i] = LinkTxCtrl.Data[i];
}
Can_Write(&canMag);
//RSCAN0_SendCH0_TxBuf0(LinkTxCtrl.Identifier, 8U, 1U, LinkTxCtrl.Data); //RSCAN0_SendCH0_TxBuf0(LinkTxCtrl.Identifier, 8U, 1U, LinkTxCtrl.Data);
#else #else
Can_Write(&canMag);
//RSCAN0_SendCH0_TxBuf0(LinkTxCtrl.Identifier, 8U, 1U, LinkTxCtrl.Data); //RSCAN0_SendCH0_TxBuf0(LinkTxCtrl.Identifier, 8U, 1U, LinkTxCtrl.Data);
#endif #endif
LinkTxCtrl.Busy = 1u; LinkTxCtrl.Busy = 1u;
......
...@@ -40,4 +40,6 @@ const RSCANFD_Filter_st_t CANFD_RX_RULE_TABLE_LIST[CANFD0_RX_RULE_SIZE] = ...@@ -40,4 +40,6 @@ const RSCANFD_Filter_st_t CANFD_RX_RULE_TABLE_LIST[CANFD0_RX_RULE_SIZE] =
{0x98DA17FAul, 0xDFFFFFFFUL, 0x80000000ul, CANFD0_CH0_RX_SELECT},/*23*/ {0x98DA17FAul, 0xDFFFFFFFUL, 0x80000000ul, CANFD0_CH0_RX_SELECT},/*23*/
{0x98DBFFFAul, 0xDFFFFFFFUL, 0x80000000ul, CANFD0_CH0_RX_SELECT},/*24*/ {0x98DBFFFAul, 0xDFFFFFFFUL, 0x80000000ul, CANFD0_CH0_RX_SELECT},/*24*/
{0x000007E8ul, 0xDFFFFFFFUL, 0x80000000ul, CANFD0_CH2_RX_SELECT},/* 1*/
{0x00000111ul, 0xDFFFFFFFUL, 0x80000000ul, CANFD0_CH2_RX_SELECT},/* 2*/
}; };
\ No newline at end of file
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