HS550/ECU_BOOT/diagnose/Dcm/Dcm_DID_Cfg.c
2024-05-22 23:21:15 +08:00

710 lines
15 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* @<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>@<40>ַ<EFBFBD><D6B7>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ȥ<EFBFBD><C8A5> */
/******************************************************************************
* Description: : Include File Section
******************************************************************************/
/* @<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> */
#include "BranchTable.h"
#include "boot_macrodriver.h"
#include "Dcm_DID_Cfg.h"
//#include "R_TypeDefs.h"
//#include "r_fdl_types.h"
//#include "eel.h"
//#include "user_define.h"
#include "Dcm_extern.h"
#include "CanTp_Cfg.h"
#include "pfdl_user.h"
unsigned char DF_Read(unsigned char* read_buf,unsigned char data_num,unsigned char len);
/******************************************************************************
* Description: : Global Variable Definition Section
******************************************************************************/
/*@ <20><><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> */
extern uint16 adResult[7];
uint8 TempTxBuffer[40];
/******************************************************************************
* Description: : Static Variable Definition Section
******************************************************************************/
uint8 CaDcm_u_NRCData[DCM_NRCCOUNT] = {0x11,0x12,0x13,0x14,0x22,0x24,0x31,0x33,0x35,0x36,0x37,0x7F,0x72,0x71,0x73,0x78,0x7E,0x92,0x93,0x70}; /*27 <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
uint8 wBuf[20] = {0,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff,0};
/******************************************************************************
* Description: : Static Function Prototype Declaration
*****************************************************************************/
/*@<40><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/******************************************************************************
* Description: : Write User Function Code
*****************************************************************************/
/*@<40><><EFBFBD><EFBFBD>ͷע<CDB7>͸<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>մ˸<D5B4>ʽע<CABD><D7A2>*/
/******************************************************************************
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD>ֵ : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A>༭ʱ<E0BCAD><CAB1> : @
*<2A><>ע : @
*****************************************************************************/
uint8 GetRTE_Dcm_DidServices_0x0200_ReadData(uint8* data)
{
data[0] = *(__far uint8 *)DID_0200_ADDR;
if(data[0] != 0xFF) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
/******************************************************************************
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD>ֵ : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A>༭ʱ<E0BCAD><CAB1> : @
*<2A><>ע : @
*****************************************************************************/
uint8 GetRTE_Dcm_DidServices_0x0201_ReadData(uint8* data)
{
data[0] = *(__far uint8 *)DID_0201_ADDR;
if(data[0] != 0xFF) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
/******************************************************************************
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD>ֵ : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A>༭ʱ<E0BCAD><CAB1> : @
*<2A><>ע : @
*****************************************************************************/
uint8 GetRTE_Dcm_DidServices_0xF110_ReadData(uint8* data)
{
if( 0 == DF_Read(data,INDEX_0xF110,8)) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
/******************************************************************************
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD>ֵ : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A>༭ʱ<E0BCAD><CAB1> : @
*<2A><>ע : @
*****************************************************************************/
uint8 GetRTE_Dcm_DidServices_0xF112_ReadData(uint8* data)
{
if( 0 == DF_Read(data,INDEX_0xF112,8)) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
/******************************************************************************
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD>ֵ : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A>༭ʱ<E0BCAD><CAB1> : @
*<2A><>ע : @
*****************************************************************************/
uint8 GetRTE_Dcm_DidServices_0xF113_ReadData(uint8* data)
{
(void)data;
data[0] = 0x03;
data[1] = 0x02;
data[2] = 0x01;
data[3] = 0x07;
return DCM_CHECK_OK;
}
/******************************************************************************
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD>ֵ : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A>༭ʱ<E0BCAD><CAB1> : @
*<2A><>ע : @
*****************************************************************************/
uint8 GetRTE_Dcm_DidServices_0xF15AWriteData(uint8* data)
{
uint8 temp;
for(temp = 0;temp < 30;temp++)
{
wBuf[temp] = data[temp];
}
// temp = DF_Write(wBuf,INDEX_0xF15A,30); //2017/8/7 10:18:15 spark del
if(temp == 0) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
/******************************************************************************
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD>ֵ : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A>༭ʱ<E0BCAD><CAB1> : @
*<2A><>ע : @
*****************************************************************************/
uint8 GetRTE_Dcm_DidServices_0xF180_ReadData(uint8* data)
{
__far uint8_t *p = DID_F180_ADDR;
(void)data;
data[0] = *p++;
data[1] = *p++;
data[2] = *p++;
data[3] = *p++;
data[4] = *p++;
data[5] = *p++;
data[6] = *p++;
data[7] = *p++;
data[8] = *p++;
data[9] = *p++;
return DCM_CHECK_OK;
}
/******************************************************************************
*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A><><EFBFBD><EFBFBD>ֵ : @
*<2A><><EFBFBD><EFBFBD> : @
*<2A>༭ʱ<E0BCAD><CAB1> : @
*<2A><>ע : @
*****************************************************************************/
uint8 GetRTE_Dcm_DidServices_0xF181_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF183_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
#define DCM_DEFAULT_SESSION 0x01 /*Ĭ<><C4AC>ģʽ*/
#define DCM_PROGRAMME_SESSION 0x02 /*<2A><><EFBFBD>ģʽ*/
#define DCM_EXTEND_SESSION 0x04 /*<2A><>չģʽ*/
extern uint8 MngDcm_GetDiagnosticSession(void);
uint8 GetRTE_Dcm_DidServices_0xF186_ReadData(uint8* data)
{
uint8 temp = 0xFF;
temp = MngDcm_GetDiagnosticSession(); /* <20><>ǰ<EFBFBD>Ựģʽ */
if(temp == DCM_DEFAULT_SESSION){
*data = 0x01;
}
else if(temp == DCM_PROGRAMME_SESSION){
*data = 0x02;
}
else if(temp == DCM_EXTEND_SESSION){
*data = 0x03;
}
if( 0xFF != temp)
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF187_ReadData(uint8* data)
{
(void)data;
data[0] = 0x61;
#if BOARD_CFG == LEFT_BOARD
data[1] = 0x0A;
#else
data[1] = 0x0B;
#endif
data[2] = '1';
data[3] = '2';
data[4] = '3';
data[5] = 0x00;
data[6] = '0';
data[7] = '0';
data[8] = '0';
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF189_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF18A_ReadData(uint8* data)
{
(void)data;
data[0] = '5';
data[1] = '7';
data[2] = '4';
data[3] = '2';
data[4] = '2';
data[5] = '2';
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF18B_ReadData(uint8* data)
{
(void)data;
data[0] = 0x20;
data[1] = 0x18;
data[2] = 0X06;
data[3] = 0x15;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF190_ReadData(uint8* data)
{
(void *)data;
if(0 == DF_Read(data,INDEX_0xF190,17)) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF191_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF192_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF193_ReadData(uint8* data)
{
__far uint8 *p = DID_F193_ADDR;
(void)data;
*data++ = *p++;
*data++ = *p++;
*data++ = *p++;
*data++ = *p++;
*data++ = *p++;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF194_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF195_ReadData(uint8* data)
{
__far uint8 *p = DID_F195_ADDR;
(void)data;
*data++ = *p++;
*data++ = *p++;
*data++ = *p++;
*data++ = *p++;
*data++ = *p++;
*data++ = *p++;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF197_ReadData(uint8* data)
{
(void *)data;
if(0 == DF_Read(data,INDEX_0xF197,8)) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF198_ReadData(uint8* data)
{
(void *)data;
if(0 == DF_Read(data,INDEX_0xF198,16)) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF199_ReadData(uint8* data)
{
(void)data;
if(0 == DF_Read(data,INDEX_0xF199,4)) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF19D_ReadData(uint8* data)
{
(void)data;
if(0 == DF_Read(data,INDEX_0xF19D,4)) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0x6300_ReadData(uint8* data)
{
(void)data;
*data = GetIoParameter(IO_TEMP);
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x6308_ReadData(uint8* data)
{
(void)data;
*data = GetIoParameter(IO_REC);
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x630B_ReadData(uint8* data)
{
(void)data;
*data = GetIoParameter(IO_FAN);
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x630C_ReadData(uint8* data)
{
(void)data;
*data = GetIoParameter(IO_MODE);
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x630D_ReadData(uint8* data)
{
(void)data;
*data = GetIoParameter(IO_DEFROST);
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x630F_ReadData(uint8* data)
{
(void)data;
*data = GetIoParameter(IO_AC);
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xFD00_ReadData(uint8* data)
{
(void)data;
*data = GetIoParameter(IO_K30);
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF1A2_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF1A2_WriteData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF1A4_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF1A5_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF1A5_WriteData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF1A6_ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0xF1A6_WriteData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x061BReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x061CReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x061DReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x061EReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x061FReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x0620ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x0621ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetRTE_Dcm_DidServices_0x0622ReadData(uint8* data)
{
(void)data;
return DCM_CHECK_OK;
}
uint8 GetVehicel_u_SpeedVal(void)
{
uint8 LeVehicle_U_Speed = 1;
return LeVehicle_U_Speed;
}
/****************************************************************/
uint8 GetRTE_Dcm_DidServices_0xF110_WriteData(uint8* data)
{
uint8 temp;
for(temp = 0;temp < 8;temp++)
{
wBuf[temp] = data[temp];
}
temp = DF_Write(wBuf,INDEX_0xF110,8);
if(temp == 0) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
/****************************************************************/
uint8 GetRTE_Dcm_DidServices_0xF112_WriteData(uint8* data)
{
uint8 temp;
for(temp = 0;temp < 8;temp++)
{
wBuf[temp] = data[temp];
}
temp = DF_Write(wBuf,INDEX_0xF112,8);
if(temp == 0) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF190_WriteData(uint8* data)
{
uint8 temp;
for(temp = 0;temp < 17;temp++)
{
wBuf[temp] = data[temp];
}
temp = DF_Write(wBuf,INDEX_0xF190,17);
if(temp == 0) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF197_WriteData(uint8* data)
{
uint8 temp;
for(temp = 0;temp < 8;temp++)
{
wBuf[temp] = data[temp];
}
temp = DF_Write(wBuf,INDEX_0xF197,8);
if(temp == 0) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF198_WriteData(uint8* data)
{
uint8 temp;
for(temp = 0;temp < 16;temp++)
{
wBuf[temp] = data[temp];
}
temp = DF_Write(wBuf,INDEX_0xF198,16);
if(temp == 0) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF199_WriteData(uint8* data)
{
uint8 temp;
for(temp = 0;temp < 4;temp++)
{
wBuf[temp] = data[temp];
}
temp = DF_Write(wBuf,INDEX_0xF199,4);
if(temp == 0) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
uint8 GetRTE_Dcm_DidServices_0xF19D_WriteData(uint8* data)
{
uint8 temp;
for(temp = 0;temp < 4;temp++)
{
wBuf[temp] = data[temp];
}
temp = DF_Write(wBuf,INDEX_0xF19D,4);
if(temp == 0) //R_FDL_OK
return DCM_CHECK_OK;
else
return DCM_CHECK_NOK;
}
/****************************************************************/
uint8 GetRTE_Dcm_DidServices_0x6300_WriteData(uint8* data)
{
uint8 temp;
temp = *(data+1);
WriteIoParameter(IO_TEMP,temp);
return DCM_CHECK_OK;
}
/****************************************************************/
uint8 GetRTE_Dcm_DidServices_0x6308_WriteData(uint8* data)
{
uint8 temp;
temp = *(data+1);
WriteIoParameter(IO_REC,temp);
return DCM_CHECK_OK;
}
/****************************************************************/
uint8 GetRTE_Dcm_DidServices_0x630B_WriteData(uint8* data)
{
uint8 temp;
temp = *(data+1);
WriteIoParameter(IO_FAN,temp);
return DCM_CHECK_OK;
}
/****************************************************************/
uint8 GetRTE_Dcm_DidServices_0x630C_WriteData(uint8* data)
{
uint8 temp;
temp = *(data+1);
WriteIoParameter(IO_MODE,temp);
return DCM_CHECK_OK;
}
/****************************************************************/
uint8 GetRTE_Dcm_DidServices_0x630E_WriteData(uint8* data)
{
uint8 temp;
temp = *(data+1);
WriteIoParameter(IO_REARDEF,temp);
return DCM_CHECK_OK;
}