594 lines
16 KiB
C
594 lines
16 KiB
C
#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;
|
||
}
|