HWBS/ECU_APP/diagnose/extern.c

594 lines
16 KiB
C
Raw Normal View History

2023-08-21 16:48:00 +08:00
#include "extern.h"
#include "hwCtrl.h"
#include "PINdef.h"
#pragma section const DID_TBL
__far const unsigned char HD_VERSION[]={
'H' , //AC_HD_VERSION_00
'W' , //AC_HD_VERSION_01
'0' , //AC_HD_VERSION_02
'1' , //AC_HD_VERSION_03
'0' , //AC_HD_VERSION_04
'0' , //AC_HD_VERSION_05
' ' , //AC_HD_VERSION_06
' ' , //AC_HD_VERSION_07
' ' , //AC_HD_VERSION_08
' ' , //AC_HD_VERSION_09
' ' , //AC_HD_VERSION_10
' ' , //AC_HD_VERSION_11
' ' , //AC_HD_VERSION_12
' ' , //AC_HD_VERSION_13
' ' , //AC_HD_VERSION_14
' ' , //AC_HD_VERSION_15
};
__far const unsigned char SW_VERSION[]={
'0' , //AC_SW_VERSION_00
'1' , //AC_SW_VERSION_01
'.' , //AC_SW_VERSION_02
'0' , //AC_SW_VERSION_03
'1' , //AC_SW_VERSION_04
'.' , //AC_SW_VERSION_05
'0' , //AC_SW_VERSION_06
'1' , //AC_SW_VERSION_07
' ' , //AC_SW_VERSION_08
' ' , //AC_SW_VERSION_09
' ' , //AC_SW_VERSION_10
' ' , //AC_SW_VERSION_11
' ' , //AC_SW_VERSION_12
};
__far const unsigned char SUP_ECU_SW_VERSION[]={
'0' , //
'2' , //
'0' , //
'1' , //
' ' , //
' ' , //
' ' , //
' ' , //
' ' , //
' ' , //
' ' , //
' ' , //
' ' , //
' ' , //
' ' , //
' ' , //
};
#pragma section
IO_parameter_t io_parameter[8];
const unsigned char DID_0xF110_VehicleNetworkConfiguration[8]={0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
const unsigned char DID_0xF190_vehicleIdentificationNumber[17]={0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
const unsigned char DID_0xF197_SystemNameOrEngineType[8]={0x44,0x41,0x4D,0x49,0x4e,0x47,0x41,0x43};
const unsigned char DID_0xF198_RepairShopCodeOrTesterSerialNumber[16]={0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
const unsigned char DID_0xF199_ProgrammingOrConfigurationDate[4]={0x20,0x00,0x01,0x01};
const unsigned char DID_0xF19D_ECUInstallationDateDataIdentifier[4]={0x20,0x00,0x01,0x01};
const unsigned char DID_0xF112_VehicleName[8]={0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
can_frame_t TxCanMessageT;
//const unsigned char DID_0xF15A[]={};
/****************************************************************************************/
/* <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ch : */
/* 0: ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* 1: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* 2: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* <09><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> */
/* <09><>Ӧ<EFBFBD>ĵ<EFBFBD>ѹ*10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĵ<D8B5>ѹֵ<D1B9><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0.1V<EFBFBD>ģ<EFBFBD> */
/* */
unsigned char GetVoltage(unsigned char ch)
{
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> return Voltage[ch]; */
// switch(ch)
// {
// case EVA_SENSOR:
// return uiDuctAdVal;
// break;
// case OUTSIDE_SENSOR:
// return uiAmbAdVal;
// break;
// case INSIDE_SENSOR:
// return uiIncarAdVal;
// break;
// default:
// return 0;
// break;
// }
}
/************************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> motor : */
/* 1: <20><>ʻԱ<CABB><D4B1><EFBFBD>¶ȵ<C2B6><C8B5>ڵ<EFBFBD><DAB5><EFBFBD> */
/* 2: <20><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* 3: ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5>ڵ<EFBFBD><DAB5><EFBFBD> */
/* */
/* <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> */
/* 0: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת */
/* */
unsigned char GetMotorLockStatus(unsigned char motor)
{
// switch(motor)
// {
// case 1:
// return temprunErr;
// break;
// case 2:
// return moderunErr;
// break;
// case 3:
// return 0;
// break;
// default:
// return 0;
// break;
// }
}
/************************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p : */
/* 0: TEMP <09><>ʻԱ<CABB><D4B1><EFBFBD>¶ȷ<C2B6><C8B7><EFBFBD>λ<EFBFBD><CEBB> */
/* 1: REC <09><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>ģʽ */
/* 2: FAN <09>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>λ */
/* 3: MODE ģʽ<C4A3><CABD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
/* 4: DEFROST <09><>˪<EFBFBD><CBAA><EFBFBD><EFBFBD> */
/* 5: REARDEF <09><><EFBFBD><EFBFBD>˪<EFBFBD><CBAA><EFBFBD><EFBFBD> */
/* 6: AC A/C<><43><EFBFBD><EFBFBD><E4B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* 7: K30 ECU Supplier voltage */
/* */
/* <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> */
/* 0: <20><>Ӧ<EFBFBD><D3A6>data,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>22<32><32>2F<32><46><EFBFBD><EFBFBD> */
/************************************************************************************/
unsigned char GetIoParameter(unsigned char p)
{
switch(p)
{
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
default:
return 0;
break;
}
return (io_parameter[p].data);
}
/************************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ */
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p : */
/* 0: TEMP <09><>ʻԱ<CABB><D4B1><EFBFBD>¶ȷ<C2B6><C8B7><EFBFBD>λ<EFBFBD><CEBB> */
/* 1: REC <09><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>ģʽ */
/* 2: FAN <09>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>λ */
/* 3: MODE ģʽ<C4A3><CABD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> */
/* 4: DEFROST <09><>Ч */
/* 5: REARDEF <09><><EFBFBD><EFBFBD>˪<EFBFBD><CBAA><EFBFBD><EFBFBD> */
/* 6: AC <09><>Ч */
/* 7: K30 <09><>Ч */
/* <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> */
/* */
/************************************************************************************/
void WriteIoParameter(unsigned char p,unsigned char data)
{
io_parameter[p].write = 1; //<2F><>ֵΪ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Զ<EFBFBD>Ӧ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD>д<EFBFBD><D0B4>data<74><61>APP<50><50><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
io_parameter[p].data = data;
}
/************************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p : */
/* */
/* */
/* <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> */
/* 0: IGN<47><4E>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> 1<><31>IGN > 16V <20><> IGN < 9V */
/* */
/************************************************************************************/
unsigned char GetIgnVoltStatus(void)
{
// if(*Power_Protect.mark == 1)
// {
// return 0;
// }
// else
// {
// return 1;
// }
return 0;
}
unsigned char TransmitCAN_Message(unsigned int ID,unsigned char Dlc,unsigned char *Data)
{
Can_RtnType re_flag;
TxCanMessageT.IDL=ID;
TxCanMessageT.DLC=Dlc;
TxCanMessageT.IDE = 0; /* IDE 0:Standard 1:Extend */
TxCanMessageT.RTR = 0; /* RTR 0:Data 1:Remote */
TxCanMessageT.THDSE = 0; /* Transmit History Data Store Enable */
TxCanMessageT.IDH = 0; /* ID Data (high) */
TxCanMessageT.DLC = 8; /* DLC Data */
TxCanMessageT.LBL = 0; /* Label Data */
TxCanMessageT.TS = 0; /* Timestamp Data */
Copy_Array_to_Array(TxCanMessageT.DB,Data,Dlc);
re_flag=R_CAN_TrmByTRFIFO0_CH0(&TxCanMessageT);
if(re_flag == CAN_RTN_OK)
{
return 0;
}
else
{
return 1;
}
}
unsigned char DF_Write(unsigned char* write_buf,unsigned char data_num,unsigned char len)
{
unsigned char DID_Buf[0x50],i;
i=0;
switch(data_num)
{
case 1:
ReadFlashData(DID_Buf,0x000F1000+0x400,0x50);
for(i=0;i<len;i++)
{
DID_Buf[i+0]=*write_buf;
write_buf++;
}
if(WriteDataflash(DID_Buf,0x000F1000+0x400,0x50) == 0x11)
{
return 0;
}
break;
case 2:
ReadFlashData(DID_Buf,0x000F1000+0x400,0x50);
for(i=0;i<len;i++)
{
DID_Buf[i+0x40]=*write_buf;
write_buf++;
}
if(WriteDataflash(DID_Buf,0x000F1000+0x400,0x50) == 0x11)
{
return 0;
}
break;
case 3:
ReadFlashData(DID_Buf,0x000F1000+0x400,0x50);
for(i=0;i<len;i++)
{
DID_Buf[i+0x30]=*write_buf;
write_buf++;
}
if(WriteDataflash(DID_Buf,0x000F1000+0x400,0x50) == 0x11)
{
return 0;
}
break;
case 4:
ReadFlashData(DID_Buf,0x000F1000+0x400,0x50);
for(i=0;i<len;i++)
{
DID_Buf[i+0x38]=*write_buf;
write_buf++;
}
if(WriteDataflash(DID_Buf,0x000F1000+0x400,0x50) == 0x11)
{
return 0;
}
break;
default:
break;
}
return 0;
}
unsigned char DF_Read(unsigned char* read_buf,unsigned char data_num,unsigned char len)
{
switch(data_num)
{
case 1:
ReadFlashData(read_buf,0x000F1000+0x400,len);
return 0;
break;
case 2:
ReadFlashData(read_buf,0x000F1000+0x420,len);
return 0;
break;
case 3:
ReadFlashData(read_buf,0x000F1000+0x430,len);
return 0;
break;
case 4:
ReadFlashData(read_buf,0x000F1000+0x438,len);
return 0;
break;
default:
break;
}
return 0;
}
uint32 GetTimerCnt(void)
{
return Can_1ms_count_alive;
}
/************************************************************************************
// <20><>ȡdata Flash<73><68><EFBFBD>ݴ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> code : //
// 0 : <20><>ȡAPP<50>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// 1 : <20><>ȡ2E<32><45><EFBFBD><EFBFBD>0xF110<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// 2 : <20><>ȡ2E<32><45><EFBFBD><EFBFBD>0xF190<39><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// 3 : <20><>ȡ2E<32><45><EFBFBD><EFBFBD>0xF197<39><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// 4 : <20><>ȡ2E<32><45><EFBFBD><EFBFBD>0xF198<39><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// 5 : <20><>ȡ2E<32><45><EFBFBD><EFBFBD>0xF199<39><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// 6 : <20><>ȡ2E<32><45><EFBFBD><EFBFBD>0xF19D<39><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// 7 : <20><>ȡ2E<32><45><EFBFBD><EFBFBD>0xF112<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// 8 : <20><>ȡ19<31><39><EFBFBD><EFBFBD>0xF00616<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 9 : <20><>ȡ19<31><39><EFBFBD><EFBFBD>0xF00617<31><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 10: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918112<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 11: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918114<31><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 12: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918171<37><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 13: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918312<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 14: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918314<31><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 15: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918371<37><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 16: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918412<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 17: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918414<31><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 18: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918471<37><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 19: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918611<31><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 20: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0x918614<31><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 21: <20><>ȡ19<31><39><EFBFBD><EFBFBD>0xC07300<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// 2E <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// //
************************************************************************************/
const unsigned char DF_INDEX_TAB[]={
0U , //APP REProgrammer Request
1U , //BLOCK_0xF110,
2U , //BLOCK_0xF190,
3U , //BLOCK_0xF197,
4U , //BLOCK_0xF198,
5U , //BLOCK_0xF199,
6U , //BLOCK_0xF19D,
7U , //BLOCK_0xF112,
8U , //19<31><39><EFBFBD><EFBFBD>0xF00616
9U , //19<31><39><EFBFBD><EFBFBD>0xF00617
10U , //19<31><39><EFBFBD><EFBFBD>0x918112
11U , //19<31><39><EFBFBD><EFBFBD>0x918114
12U , //19<31><39><EFBFBD><EFBFBD>0x918171
13U , //19<31><39><EFBFBD><EFBFBD>0x918312
14U , //19<31><39><EFBFBD><EFBFBD>0x918314
15U , //19<31><39><EFBFBD><EFBFBD>0x918371
16U , //19<31><39><EFBFBD><EFBFBD>0x918412
17U , //19<31><39><EFBFBD><EFBFBD>0x918414
18U , //19<31><39><EFBFBD><EFBFBD>0x918471
19U , //19<31><39><EFBFBD><EFBFBD>0x918611
20U , //19<31><39><EFBFBD><EFBFBD>0x918614
21U //19<31><39><EFBFBD><EFBFBD>0xC07300
};
unsigned char GetIndexNumber(unsigned char code)
{
return(DF_INDEX_TAB[code]);
}
/************************************************************************************
// <20><>ȡACӲ<43><D3B2><EFBFBD>汾 //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> hdv : //
// ָ<><D6B8><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// //
// //
************************************************************************************/
void GetHardwareVersion(unsigned char* hdv)
{
unsigned char cnt;
for(cnt=0;cnt<16;cnt++){
hdv[cnt] = HD_VERSION[cnt];
}
}
/************************************************************************************
// <20><>ȡAC<41><43><EFBFBD><EFBFBD><EFBFBD>汾 //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> swv : //
// ָ<><D6B8><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// //
// //
************************************************************************************/
void GetSoftwareVersion(unsigned char* swv)
{
unsigned char cnt;
for(cnt=0;cnt<13;cnt++){
swv[cnt] = SW_VERSION[cnt];
}
}
/************************************************************************************
// <20><>ȡAC<41><43>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾 //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> swv : //
// ָ<><D6B8><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// //
// //
************************************************************************************/
void GetSupplierSoftwareVersion(unsigned char* swv)
{
unsigned char cnt;
for(cnt=0;cnt<16;cnt++){
swv[cnt] = SUP_ECU_SW_VERSION[cnt];
}
}
/************************************************************************************
// <20><>ȡAC<41><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *date : //
// data[0] = YEAR //
// data[1] = MONTH //
// data[0] = DAY //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// //
// //
************************************************************************************/
const unsigned char MANUFACTURING_DATE[]={
0x18, //Year
0x06, //Month
0x15, //Day
};
void GetManufacturingDate(unsigned char* date)
{
date[0] = MANUFACTURING_DATE[0];
date[1] = MANUFACTURING_DATE[1];
date[2] = MANUFACTURING_DATE[2];
}
/******************************/
//<2F><>ȡcan<61><6E><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>״̬
//<2F><><EFBFBD><EFBFBD>ֵ
/******************************/
unsigned char GetCanBusOffErr(void)
{
// if(BusOff_flag==0)
// return 0;
// else
// return 1;
}
/******************************/
//<2F><>ȡBCM<43>ڵ㶪ʧ״̬
//<2F><><EFBFBD><EFBFBD>ֵ
/******************************/
unsigned char GetBcmCommFault(void)
{
// if(uiBcmCommFaultCnt < 500)
// {
// return 0;
// }
// else
// {
// BCM_Recover=0;
// BCM=0;
// return 1;
// }
}
/******************************/
//<2F><>ȡACP<43>ڵ㶪ʧ״̬
//<2F><><EFBFBD><EFBFBD>ֵ
/******************************/
unsigned char GetAcpCommFault(void)
{
// if(uiAcpCommFaultCnt < 500)
// {
// return 0;
// }
// else
// {
// ACP_Recover=0;
// ACP=0;
// return 1;
// }
}
/******************************/
//<2F><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ʷ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>
/******************************/
unsigned char GetProgrammingCounter(void)
{
return 0;
}
/******************************/
//<2F><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD><CAB7><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>
/******************************/
unsigned char GetProgrammingAttempCounter(void)
{
return 0;
}
/******************************/
//<2F><><EFBFBD><EFBFBD>DTC
//Ŀǰ<C4BF><C7B0>BusOff
//
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0
/******************************/
unsigned char Clear_DTC_Data(void)
{
//Clear_DTC_Data_Command=1;
return 0;
}
//S51EV
void getInputState(unsigned char* data)
{
}
void getOutputState(unsigned char* data)
{
}
extern uint16_t SupplyVoltage;
void getSupplyVoltage(unsigned char* data)
{
data[0] = SupplyVoltage;
}