LYFJDB/ECU_APP/diagnose/Dcm_extern.h

248 lines
14 KiB
C
Raw Normal View History

2024-07-07 16:42:04 +08:00
typedef struct
{
unsigned char write;
unsigned char data;
}IO_parameter_t;
#define IO_TEMP 0
#define IO_REC 1
#define IO_FAN 2
#define IO_MODE 3
#define IO_DEFROST 4
#define IO_REARDEF 5
#define IO_AC 6
#define IO_K30 7
#define KL30_VOLTAGE 0
#define TEMP_MOTOR 1
#define MODE_MOTOR 2
#define REC_MOTOR 3
#define EVA_SENSOR 4
#define INDEX_REPROGMA 0
#define INDEX_0xF190 1
#define INDEX_0xF198 2
#define INDEX_0xF199 3
#define INDEX_0xF19D 4
#define INDEX_0xF110 5
#define INDEX_0xF197 5
#define INDEX_0xF112 5
/************************************************************************************
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ch : /
// 0: KL30<33><30>ѹ /
// 1: <20><>ʻԱ<CABB><D4B1><EFBFBD>¶ȵ<C2B6><C8B5>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ /
// 2: <20><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ /
// 3: ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ /
// 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ /
// /
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> /
// <20><>Ӧ<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> 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);
/************************************************************************************
// <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);
/************************************************************************************
// <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><>Ч /
// 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);
/************************************************************************************
// <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);
/************************************************************************************
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID : CAN ID //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Dlc : CAN <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *Data : ָ<><D6B8> CAN <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// 0<><30> <20><><EFBFBD>ͳɹ<CDB3> <20><>0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> //
************************************************************************************/
unsigned char TransmitCAN_Message(unsigned int ID,unsigned char Dlc,unsigned char *Data);
/************************************************************************************
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> write_buf : ָ<><D6B8> <20><>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_num : <09><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> len : д<><D0B4><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// 0<><30> д<><D0B4><EFBFBD>ɹ<EFBFBD> <20><>0 <20><>д<EFBFBD><D0B4>ʧ<EFBFBD><CAA7> //
************************************************************************************/
unsigned char DF_Write(unsigned char* write_buf,unsigned char data_num,unsigned char len);
/************************************************************************************
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> read_buf : ָ<><D6B8><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_num : <09><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> len : <09><>ȡ<EFBFBD><C8A1><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// 0<><30> <20><>ȡ<EFBFBD>ɹ<EFBFBD> <20><>0 <20><><EFBFBD><EFBFBD>ȡʧ<C8A1><CAA7> //
************************************************************************************/
unsigned char DF_Read(unsigned char* read_buf,unsigned char data_num,unsigned char len);
/************************************************************************************
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// <20><>ǰ32bit <20><> 1ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ //
***********************************************************************************/
unsigned long GetTimerCnt(void);
/************************************************************************************
// <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> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// //
************************************************************************************/
unsigned char GetIndexNumber(unsigned char 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);
/************************************************************************************
// <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);
/************************************************************************************
// <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> //
// //
// //
************************************************************************************/
void GetManufacturingDate(unsigned char* date);
/************************************************************************************
// <20><>ȡCan<61><6E><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>״̬ //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> Can<61><6E><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>״̬ //
// //
// //
************************************************************************************/
unsigned char GetCanBusOffErr(void);
/************************************************************************************
// <20><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>̴<EFBFBD><CCB4><EFBFBD> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> <20><>ʷ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>̴<EFBFBD><CCB4><EFBFBD> //
// //
// //
************************************************************************************/
unsigned char GetProgrammingCounter(void);
/************************************************************************************
// <20><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD><CAB7><EFBFBD>̴<EFBFBD><CCB4><EFBFBD> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> <20><>ʷ<EFBFBD><CAB7><EFBFBD>̴<EFBFBD><CCB4><EFBFBD> //
// //
// //
************************************************************************************/
unsigned char GetProgrammingAttempCounter(void);
/************************************************************************************
// <20><><EFBFBD><EFBFBD>DTC<54><43><EFBFBD><EFBFBD> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> ״̬ //
// //
// //
************************************************************************************/
unsigned char Clear_DTC_Data(void);