/** * @file did.h * @author Ethan.Tao (tzj0429@163.com) * @brief * @version 0.1 * @date 2022-01-04 * * @copyright Copyright (c) 2022 Äþ²¨ÕýÀÊÆû³µÁ㲿¼þÓÐÏÞ¹«Ë¾ * */ #ifndef DID_H #define DID_H #include "typedef.h" typedef enum { READONLY = 0, READWRITE = 1 } UDS_DID_AccessType_e; typedef enum { DID_NS_ProgrammingCounter = 0x2100, DID_NS_ProAtpCounter = 0x2101, DID_NS_BackupConfig = 0x2102, DID_NS_VehicleName = 0x2103, DID_NS_DiagVersion = 0x2104, DID_NS_BootSoftId = 0x2105, DID_NS_ActiveDiagSession = 0x2106, DID_NS_DFLZMPartNum = 0xF187, DID_NS_VehiclEECUSoftwareVersion = 0x2108, DIS_NS_SupplierID = 0xF18A, DID_NS_ECUManufacturingDate = 0x210B, DID_NS_ECUSerialNumID = 0xf18c, DID_NS_VINDataIdentifier = 0xF190u, DID_NS_ECUHardwareVersion = 0xF193, DID_NS_ECUSoftwareVersion = 0xF195, DID_NS_SystemNameOrEngineType = 0x2110, DID_NS_RepairShopCodeOrTester = 0x2111, DID_NS_ECUProgtammingDate = 0x2112, DID_NS_InstallDate = 0x2113, DID_NS_NetConfig = 0xf019, DID_NS_FunctionConfig = 0xf010, DID_NS_EGSMSensorPositon = 0x2116, DID_NS_ReleaseButtonState = 0x2118, DID_NS_PButtionState = 0x2119, DID_NS_PaddleState = 0x211A, DID_NS_ECUPowerVoltage = 0x211B, DID_NS_VehicleSpeed = 0x211c, DID_NS_SystemName = 0xF197, DID_NS_WriteFingerPrint = 0xF15A, DID_NS_ReadFingerPrint = 0xf15b, DID_NS_IndicationLEDControl = 0x8101 #ifdef ENABLE_FAULT_TRIGGERING_VIA_DID DID_DIAG_NS_EnableFaultCondition = 0xFEC3, #endif } UDS_DIDList_e; typedef struct { UDS_DIDList_e DidEnum; void *address; // RAM ADDRESS uint16_t nvBlockID; // NVM ADDRESS uint16_t size; UDS_DID_AccessType_e access; uint16_t crc; } UDS_DIDtableEntry; #define UDS_DID_TABLE_SIZE 30u extern uint16_t DIDTable_Entry_Count_u16; extern UDS_DIDtableEntry DIDtable[UDS_DID_TABLE_SIZE]; void did_init(void); extern int8_t FblReadProgramBlock(void); extern int8_t FblWriteProgramBlock(void); extern void DID_UpdateProgramCnt(void); extern void DID_UpdateAtpProgramCnt(void); extern int8_t DID_SaveProgamDataToNvm(void); extern void DID_SetWriteSaveFlag(void); #endif /* DID_H */