330 lines
19 KiB
C
Raw Permalink Normal View History

2024-07-07 16:42:04 +08:00
#ifndef DCM_EXTERN_H
#define DCM_EXTERN_H
#include "appTask.h"
#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 EVA_SENSOR 0
#define OUTSIDE_SENSOR 1
#define INSIDE_SENSOR 2
#define KL30_VOLTAGE 3
#define TEMP_MOTOR 4
#define MODE_MOTOR 5
#define REC_MOTOR 6
extern const unsigned char DID_0xF110_VehicleNetworkConfiguration[8];
extern const unsigned char DID_0xF190_vehicleIdentificationNumber[17];
extern const unsigned char DID_0xF197_SystemNameOrEngineType[8];
extern const unsigned char DID_0xF198_RepairShopCodeOrTesterSerialNumber[16];
extern const unsigned char DID_0xF199_ProgrammingOrConfigurationDate[4];
extern const unsigned char DID_0xF19D_ECUInstallationDateDataIdentifier[4];
extern const unsigned char DID_0xF112_VehicleName[8];
/*****************************************/
// BLG?4Kdataflash,1?block1k //
// 0x000F1000-0x000F13FF??????//
//0x000F1400-0x000F17FF,0x000F1800-0x000F1AFF,0x000F1C00-0x000FEFF DTC//
/*****************************************/
//#define AC_MANUFACTURING_YEAR (0x17)
//#define AC_MANUFACTURING_MONTH (0x06)
//#define AC_MANUFACTURING_DAY (0x11)
typedef struct
{
unsigned char write;
unsigned char data;
}IO_parameter_t;
extern IO_parameter_t io_parameter[8];
/************************/
// DCM <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
/************************/
//<2F><>ϻỰģ<E1BBB0>?
//#define DCM_DEFAULT_SESSION 0x01 /*Ĭ<><C4AC>ģʽ*/
//#define DCM_PROGRAMME_SESSION 0x02 /*<2A><><EFBFBD>ģ<EFBFBD>?*/
//#define DCM_EXTEND_SESSION 0x04 /*<2A><>չģʽ*/
extern uint8 MngDcm_GetDiagnosticSession(void);
//ͨ<>ſ<EFBFBD><C5BF><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
//0x00 <20><>ֹ<EFBFBD>շ<EFBFBD>
//0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//0x03 <20><><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD>
extern uint8 GetNormalMsgSts(void);
extern uint8 GetNetworkMsgSts(void);
/************************************************************************************
// <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>ѹ /
// 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> /
// /
************************************************************************************/
extern 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> /
// 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>? /
// /
************************************************************************************/
extern 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>?<3F><><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> /
************************************************************************************/
extern 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>?<3F><><EFBFBD><EFBFBD> /
// 6: AC <09><>Ч /
// 7: K30 <09><>Ч /
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> /
// /
************************************************************************************/
extern 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 /
// /
************************************************************************************/
extern 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> //
************************************************************************************/
extern 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><C9B9>? <20><>0 <20><>д<EFBFBD><D0B4>ʧ<EFBFBD><CAA7> //
************************************************************************************/
extern 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><C8A1><EFBFBD>ݴ<EFBFBD><DDB4><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> //
************************************************************************************/
extern 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>ֵ //
***********************************************************************************/
extern uint32 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><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> //
// //
************************************************************************************/
extern unsigned char GetIndexNumber(unsigned char code);
/************************************************************************************
// <20><>ȡACӲ<43><D3B2><EFBFBD>汾 //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? hdv : //
// ָ<><D6B8><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// //
// //
************************************************************************************/
extern void GetHardwareVersion(unsigned char* hdv);
/************************************************************************************
// <20><>ȡAC<41><43><EFBFBD><EFBFBD><EFBFBD>汾 //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? swv : //
// ָ<><D6B8><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// //
// //
************************************************************************************/
extern void GetSoftwareVersion(unsigned char* swv);
/************************************************************************************
// <20><>ȡAC<41><43>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾 //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? swv : //
// ָ<><D6B8><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> //
// //
// //
************************************************************************************/
extern void GetSupplierSoftwareVersion(unsigned char* supswv);
/************************************************************************************
// <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> //
// //
// //
************************************************************************************/
extern 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>״̬ //
// //
// //
************************************************************************************/
extern unsigned char GetCanBusOffErr(void);
/************************************************************************************
// <20><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>̴<EFBFBD><CCB4><EFBFBD><EFBFBD>? //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> <20><>ʷ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>̴<EFBFBD><CCB4><EFBFBD><EFBFBD>? //
// //
// //
************************************************************************************/
extern unsigned char GetProgrammingCounter(void);
/************************************************************************************
// <20><>ȡ<EFBFBD><C8A1>ʷ<EFBFBD><CAB7>̴<EFBFBD><CCB4><EFBFBD><EFBFBD>? //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> <20><>ʷ<EFBFBD><CAB7>̴<EFBFBD><CCB4><EFBFBD><EFBFBD>? //
// //
// //
************************************************************************************/
extern unsigned char GetProgrammingAttempCounter(void);
/************************************************************************************
// <20><><EFBFBD>DTC<54><43><EFBFBD><EFBFBD> //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> ״̬ //
// //
// //
************************************************************************************/
extern unsigned char Clear_DTC_Data(void);
/************************************************************************************
// <20><>ȡBCM<43>ڵ㶪ʧ״̬ //
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20><> //
// //
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> BCM<43>ڵ㶪ʧ״̬ //
// //
// //
************************************************************************************/
extern unsigned char GetBcmCommFault(void);
extern unsigned char GetAcpCommFault(void);
//S51EV
#endif