You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
247 lines
5.9 KiB
247 lines
5.9 KiB
#ifndef _COMMON_DEF_FOR_A2L_
|
|
#define _COMMON_DEF_FOR_A2L_
|
|
#include <list>
|
|
#include <stdio.h>
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
|
|
enum A2L_BYTE_ORDER_MSB_TYPE {
|
|
BYTE_ORDER_MSB_LAST = 0,
|
|
BYTE_ORDER_MSB_FIRST = 1
|
|
};
|
|
|
|
enum A2L_ADDRESS_GRANULARITY_TYPE {
|
|
ADDRESS_GRANULARITY_BYTE = 1,
|
|
ADDRESS_GRANULARITY_WORD = 2,
|
|
ADDRESS_GRANULARITY_DWORD = 4
|
|
};
|
|
|
|
enum A2L_OPTIONAL_COMMAND_TYPE {
|
|
GET_COMM_MODE_INFO = 0xFB,
|
|
GET_ID = 0xFA,
|
|
SET_REQUEST = 0xF9,
|
|
GET_SEED = 0xF8,
|
|
UNLOCK = 0xF7,
|
|
SET_MTA = 0xF6,
|
|
UPLOAD = 0xF5,
|
|
SHORT_UPLOAD = 0xF4,
|
|
BUILD_CHECKSUM = 0xF3,
|
|
TRANSPORT_LAYER_CMD = 0xF2,
|
|
USER_CMD = 0xF1,
|
|
DOWNLOAD = 0xF0,
|
|
DOWNLOAD_NEXT = 0xEF,
|
|
DOWNLOAD_MAX = 0xEE,
|
|
SHORT_DOWNLOAD = 0xED,
|
|
MODIFY_BITS = 0xEC,
|
|
SET_CAL_PAGE = 0xEB,
|
|
GET_CAL_PAGE = 0xEA,
|
|
GET_PAG_PROCESSOR_INFO = 0xE9,
|
|
GET_SEGMENT_INFO = 0xE8,
|
|
GET_PAGE_INFO = 0xE7,
|
|
SET_SEGMENT_MODE = 0xE6,
|
|
GET_SEGMENT_MODE = 0xE5,
|
|
COPY_CAL_PAGE = 0xE4,
|
|
CLEAR_DAQ_LIST = 0xE3,
|
|
SET_DAQ_PTR = 0xE2,
|
|
WRITE_DAQ = 0xE1,
|
|
SET_DAQ_LIST_MODE = 0xE0,
|
|
GET_DAQ_LIST_MODE = 0xDF,
|
|
START_STOP_DAQ_LIST = 0xDE,
|
|
START_STOP_SYNCH = 0xDD,
|
|
GET_DAQ_CLOCK = 0xDC,
|
|
READ_DAQ = 0xDB,
|
|
GET_DAQ_PROCESSOR_INFO = 0xDA,
|
|
GET_DAQ_RESOLUTION_INFO = 0xD9,
|
|
GET_DAQ_LIST_INFO = 0xD8,
|
|
GET_DAQ_EVENT_INFO = 0xD7,
|
|
FREE_DAQ = 0xD6,
|
|
ALLOC_DAQ = 0xD5,
|
|
ALLOC_ODT = 0xD4,
|
|
ALLOC_ODT_ENTRY = 0xD3,
|
|
PROGRAM_START = 0xD2,
|
|
PROGRAM_CLEAR = 0xD1,
|
|
PROGRAM = 0xD0,
|
|
PROGRAM_RESET = 0xCF,
|
|
GET_PGM_PROCESSOR_INFO = 0xCE,
|
|
GET_SECTOR_INFO = 0xCD,
|
|
PROGRAM_PREPARE = 0xCC,
|
|
PROGRAM_FORMAT = 0xCB,
|
|
PROGRAM_NEXT = 0xCA,
|
|
PROGRAM_MAX = 0xC9,
|
|
PROGRAM_VERIFY = 0xC8,
|
|
WRITE_DAQ_MULTIPLE = 0xC7
|
|
};
|
|
|
|
enum A2L_DAQ_MODE_TYPE {
|
|
STATIC = 0,
|
|
DYNAMIC = 1
|
|
};
|
|
|
|
enum A2L_DAQ_OPTIMISATION_TYPE {
|
|
OPTIMISATION_TYPE_DEFAULT = 0,
|
|
OPTIMISATION_TYPE_ODT_TYPE_16 = 1,
|
|
OPTIMISATION_TYPE_ODT_TYPE_32 = 2,
|
|
OPTIMISATION_TYPE_ODT_TYPE_64 = 3,
|
|
OPTIMISATION_TYPE_ODT_TYPE_ALIGNMENT = 4,
|
|
OPTIMISATION_TYPE_MAX_ENTRY_SIZE = 5
|
|
};
|
|
|
|
enum A2L_DAQ_ADDRESS_EXTENSION {
|
|
ADDRESS_EXTENSION_FREE = 0,
|
|
ADDRESS_EXTENSION_ODT = 1,
|
|
ADDRESS_EXTENSION_DAQ = 3,
|
|
};
|
|
|
|
enum A2L_DAQ_IDENTIFICATION_FIELD_TYPE {
|
|
IDENTIFICATION_FIELD_TYPE_ABSOLUTE = 0,
|
|
IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE = 1,
|
|
IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD = 2,
|
|
IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED = 3
|
|
};
|
|
enum A2L_DAQ_GRANULARITY_ODT_ENTRY_SIZE {
|
|
GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE = 1,
|
|
GRANULARITY_ODT_ENTRY_SIZE_DAQ_WORD = 2,
|
|
GRANULARITY_ODT_ENTRY_SIZE_DAQ_DWORD = 4,
|
|
GRANULARITY_ODT_ENTRY_SIZE_DAQ_DLONG = 8
|
|
};
|
|
|
|
enum A2L_OverloadIndication {
|
|
NO_OVERLOAD_INDICATION = 0,
|
|
OVERLOAD_INDICATION_PID = 1,
|
|
OVERLOAD_INDICATION_EVENT = 2
|
|
};
|
|
|
|
enum A2L_GranularityOdtEntrySizeStim{
|
|
GRANULARITY_ODT_ENTRY_SIZE_STIM_BYTE = 1,
|
|
GRANULARITY_ODT_ENTRY_SIZE_STIM_WORD = 2,
|
|
GRANULARITY_ODT_ENTRY_SIZE_STIM_DWORD = 4,
|
|
GRANULARITY_ODT_ENTRY_SIZE_STIM_DLONG = 8
|
|
};
|
|
enum A2L_TimestampSupportedSize{
|
|
NO_TIME_STAMP = 0,
|
|
SIZE_BYTE = 1,
|
|
SIZE_WORD = 2,
|
|
SIZE_DWORD = 4
|
|
};
|
|
|
|
enum A2L_TimestampSupportedUnit {
|
|
UNIT_1NS = 0,
|
|
UNIT_10NS = 1,
|
|
UNIT_100NS = 2,
|
|
UNIT_1US = 3,
|
|
UNIT_10US = 4,
|
|
UNIT_100US = 5,
|
|
UNIT_1MS = 6,
|
|
UNIT_10MS = 7,
|
|
UNIT_100MS = 8,
|
|
UNIT_1S = 9
|
|
};
|
|
|
|
enum A2L_DaqListType {
|
|
DAQ = 1,
|
|
STIM = 2,
|
|
DAQ_STIM = 3
|
|
};
|
|
|
|
struct A2L_CommunicatonModeSupported {
|
|
bool m_bIsBlockMode;
|
|
unsigned char m_cMaster_MAX_BS; // MAX_BS
|
|
unsigned char m_cMaster_MIN_ST; // MIN_ST
|
|
unsigned char m_cInterleaved; // QUEUE_SIZE
|
|
};
|
|
|
|
|
|
struct A2L_Protocol_Layer {
|
|
uint32_t m_nXCPProtocolVersion; /* XCP protocol layer version, current 0x100 */
|
|
uint32_t m_nTimeout_T1; /* T1 [ms] */
|
|
uint32_t m_nTimeout_T2; /* T2 [ms] */
|
|
uint32_t m_nTimeout_T3; /* T3 [ms] */
|
|
uint32_t m_nTimeout_T4; /* T4 [ms] */
|
|
uint32_t m_nTimeout_T5; /* T5 [ms] */
|
|
uint32_t m_nTimeout_T6; /* T6 [ms] */
|
|
uint32_t m_nTimeout_T7; /* T7 [ms] */
|
|
unsigned char m_cMAX_CTO; /* MAX_CTO */
|
|
uint32_t m_nMAX_DTO; /* MAX_DTO */
|
|
|
|
A2L_BYTE_ORDER_MSB_TYPE m_nByteOrderMSBType;
|
|
A2L_ADDRESS_GRANULARITY_TYPE m_nAddressGranularityType;
|
|
|
|
std::list < unsigned char > m_nOptionalCommandList;
|
|
|
|
A2L_CommunicatonModeSupported m_stCommunicationModeSupported;
|
|
|
|
std::string m_strSeedAndKeyExternalFunction; // Name of the Seed&Key function
|
|
/*
|
|
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
|
|
"BLOCK" taggedstruct {
|
|
"SLAVE";
|
|
"MASTER" struct {
|
|
uchar; // MAX_BS
|
|
uchar; // MIN_ST
|
|
};
|
|
};
|
|
"INTERLEAVED" uchar; // QUEUE_SIZE
|
|
};
|
|
"SEED_AND_KEY_EXTERNAL_FUNCTION" char[256]; // Name of the Seed&Key function
|
|
};
|
|
*/
|
|
};
|
|
|
|
struct A2L_StimBlock {
|
|
bool m_bIsUse;
|
|
A2L_GranularityOdtEntrySizeStim m_nGranularityOdtEntrySizeStim;
|
|
unsigned char m_cMaxOdtEntrySizeStim;
|
|
|
|
};
|
|
|
|
struct A2l_DaqTimeStampSupported {
|
|
bool m_bIsUse;
|
|
uint32_t m_nTimestampTicks;
|
|
A2L_TimestampSupportedSize m_nTimestampSupportedSize;
|
|
A2L_TimestampSupportedUnit m_nTimestampSupportedUnit;
|
|
};
|
|
|
|
struct A2L_ODTEntry {
|
|
unsigned char m_cOdtEntryNumber;
|
|
unsigned long m_lElementAddress;
|
|
unsigned char m_cExtenstionElementAddress;
|
|
unsigned char m_cElementSize;
|
|
unsigned char m_cBitOffset;
|
|
};
|
|
struct A2L_DaqListPredefined {
|
|
unsigned char m_cOdtNumber;
|
|
std::list < A2L_ODTEntry> m_OdtEntryList;
|
|
};
|
|
|
|
struct A2L_DaqList {
|
|
uint32_t m_nDaqListNumber;
|
|
A2L_DaqListType m_nDatListType;
|
|
unsigned char m_cMaxOdt;
|
|
unsigned char m_cMaxOdtEntries;
|
|
unsigned char m_cFirstPid;
|
|
uint32_t m_nEventFixed;
|
|
std::list < A2L_DaqListPredefined> m_PredefinedList;
|
|
|
|
|
|
};
|
|
|
|
struct A2L_Daq {
|
|
A2L_DAQ_MODE_TYPE m_nDaqMode;
|
|
uint32_t m_nMaxDaq; /* MAX_DAQ */
|
|
uint32_t m_nMaxEventChannel; /* MAX_EVENT_CHANNEL */
|
|
unsigned char m_cMinDaq; /* MIN_DAQ */
|
|
A2L_DAQ_OPTIMISATION_TYPE m_nOptimisationType;
|
|
A2L_DAQ_ADDRESS_EXTENSION m_nAddressExtention;
|
|
A2L_DAQ_IDENTIFICATION_FIELD_TYPE m_nIdentificationFieldType;
|
|
A2L_DAQ_GRANULARITY_ODT_ENTRY_SIZE m_nGranularityOdtSize;
|
|
unsigned char m_cMaxOdtEntrySize; /* MAX_ODT_ENTRY_SIZE_DAQ */
|
|
A2L_OverloadIndication m_nOverloadIndication;
|
|
A2L_StimBlock m_nStimBlock;
|
|
A2l_DaqTimeStampSupported m_nTimeStampSupported;
|
|
std::list <A2L_DaqList> m_nDaqList;
|
|
|
|
};
|
|
|
|
#endif
|