Beruflich Dokumente
Kultur Dokumente
/begin A2ML
/*
===================================================================================
=========== */
/*
*/
/* ASAM XCP AML
*/
/*
*/
/*
===================================================================================
=========== */
"XCP" struct {
taggedstruct {
block "PROTOCOL_LAYER" struct {
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uchar;
uint;
enum {
"BYTE_ORDER_MSB_LAST" = 0,
"BYTE_ORDER_MSB_FIRST" = 1
};
enum {
"ADDRESS_GRANULARITY_BYTE" = 1,
"ADDRESS_GRANULARITY_WORD" = 2,
"ADDRESS_GRANULARITY_DWORD" = 4
};
taggedstruct {
("OPTIONAL_CMD" enum {
"GET_COMM_MODE_INFO" = 251,
"GET_ID" = 250,
"SET_REQUEST" = 249,
"GET_SEED" = 248,
"UNLOCK" = 247,
"SET_MTA" = 246,
"UPLOAD" = 245,
"SHORT_UPLOAD" = 244,
"BUILD_CHECKSUM" = 243,
"TRANSPORT_LAYER_CMD" = 242,
"USER_CMD" = 241,
"DOWNLOAD" = 240,
"DOWNLOAD_NEXT" = 239,
"DOWNLOAD_MAX" = 238,
"SHORT_DOWNLOAD" = 237,
"MODIFY_BITS" = 236,
"SET_CAL_PAGE" = 235,
"GET_CAL_PAGE" = 234,
"GET_PAG_PROCESSOR_INFO" = 233,
"GET_SEGMENT_INFO" = 232,
"GET_PAGE_INFO" = 231,
"SET_SEGMENT_MODE" = 230,
"GET_SEGMENT_MODE" = 229,
"COPY_CAL_PAGE" = 228,
"CLEAR_DAQ_LIST" = 227,
"SET_DAQ_PTR" = 226,
"WRITE_DAQ" = 225,
"SET_DAQ_LIST_MODE" = 224,
"GET_DAQ_LIST_MODE" = 223,
"START_STOP_DAQ_LIST" = 222,
"START_STOP_SYNCH" = 221,
"GET_DAQ_CLOCK" = 220,
"READ_DAQ" = 219,
"GET_DAQ_PROCESSOR_INFO" = 218,
"GET_DAQ_RESOLUTION_INFO" = 217,
"GET_DAQ_LIST_INFO" = 216,
"GET_DAQ_EVENT_INFO" = 215,
"FREE_DAQ" = 214,
"ALLOC_DAQ" = 213,
"ALLOC_ODT" = 212,
"ALLOC_ODT_ENTRY" = 211,
"PROGRAM_START" = 210,
"PROGRAM_CLEAR" = 209,
"PROGRAM" = 208,
"PROGRAM_RESET" = 207,
"GET_PGM_PROCESSOR_INFO" = 206,
"GET_SECTOR_INFO" = 205,
"PROGRAM_PREPARE" = 204,
"PROGRAM_FORMAT" = 203,
"PROGRAM_NEXT" = 202,
"PROGRAM_MAX" = 201,
"PROGRAM_VERIFY" = 200
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
"SEED_AND_KEY_EXTERNAL_FUNCTION" char[256];
};
};
block "SEGMENT" struct {
uchar;
uchar;
uchar;
uchar;
uchar;
taggedstruct {
block "CHECKSUM" struct {
enum {
"XCP_ADD_11" = 1,
"XCP_ADD_12" = 2,
"XCP_ADD_14" = 3,
"XCP_ADD_22" = 4,
"XCP_ADD_24" = 5,
"XCP_ADD_44" = 6,
"XCP_CRC_16" = 7,
"XCP_CRC_16_CITT" = 8,
"XCP_CRC_32" = 9,
"XCP_USER_DEFINED" = 255
};
taggedstruct {
"MAX_BLOCK_SIZE" ulong;
"EXTERNAL_FUNCTION" char[256];
};
};
(block "PAGE" struct {
uchar;
enum {
"ECU_ACCESS_NOT_ALLOWED" = 0,
"ECU_ACCESS_WITHOUT_XCP_ONLY" = 1,
"ECU_ACCESS_WITH_XCP_ONLY" = 2,
"ECU_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_READ_ACCESS_NOT_ALLOWED" = 0,
"XCP_READ_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_READ_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_READ_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_WRITE_ACCESS_NOT_ALLOWED" = 0,
"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_WRITE_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_WRITE_ACCESS_DONT_CARE" = 3
};
taggedstruct {
"INIT_SEGMENT" uchar;
};
})*;
(block "ADDRESS_MAPPING" struct {
ulong;
ulong;
ulong;
})*;
"PGM_VERIFY" ulong;
};
};
block "DAQ" struct {
enum {
"STATIC" = 0,
"DYNAMIC" = 1
};
uint;
uint;
uchar;
enum {
"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 {
"ADDRESS_EXTENSION_FREE" = 0,
"ADDRESS_EXTENSION_ODT" = 1,
"ADDRESS_EXTENSION_DAQ" = 3
};
enum {
"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 {
"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
};
uchar;
enum {
"NO_OVERLOAD_INDICATION" = 0,
"OVERLOAD_INDICATION_PID" = 1,
"OVERLOAD_INDICATION_EVENT" = 2
};
taggedstruct {
"PRESCALER_SUPPORTED" ;
"RESUME_SUPPORTED" ;
block "STIM" struct {
enum {
"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
};
uchar;
taggedstruct {
"BIT_STIM_SUPPORTED" ;
};
};
block "TIMESTAMP_SUPPORTED" struct {
uint;
enum {
"NO_TIME_STAMP" = 0,
"SIZE_BYTE" = 1,
"SIZE_WORD" = 2,
"SIZE_DWORD" = 4
};
enum {
"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
};
taggedstruct {
"TIMESTAMP_FIXED" ;
};
};
"PID_OFF_SUPPORTED" ;
(block "DAQ_LIST" struct {
uint;
taggedstruct {
"DAQ_LIST_TYPE" enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
"MAX_ODT" uchar;
"MAX_ODT_ENTRIES" uchar;
"FIRST_PID" uchar;
"EVENT_FIXED" uint;
block "PREDEFINED" taggedstruct {
(block "ODT" struct {
uchar;
taggedstruct {
("ODT_ENTRY" struct {
uchar;
ulong;
uchar;
uchar;
uchar;
})*;
};
})*;
};
};
})*;
(block "EVENT" struct {
char[101];
char[9];
uint;
enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
uchar;
uchar;
uchar;
uchar;
})*;
};
};
block "PAG" struct {
uchar;
taggedstruct {
"FREEZE_SUPPORTED" ;
};
};
block "PGM" struct {
enum {
"PGM_MODE_ABSOLUTE" = 1,
"PGM_MODE_FUNCTIONAL" = 2,
"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL" = 3
};
uchar;
uchar;
taggedstruct {
(block "SECTOR" struct {
char[101];
uchar;
ulong;
ulong;
uchar;
uchar;
uchar;
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
};
};
block "DAQ_EVENT" taggedunion {
"FIXED_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
"VARIABLE" taggedstruct {
block "AVAILABLE_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
block "DEFAULT_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
};
};
block "XCP_ON_CAN" struct {
uint;
taggedstruct {
"CAN_ID_BROADCAST" ulong;
"CAN_ID_MASTER" ulong;
"CAN_ID_SLAVE" ulong;
"BAUDRATE" ulong;
"SAMPLE_POINT" uchar;
"SAMPLE_RATE" enum {
"SINGLE" = 1,
"TRIPLE" = 3
};
"BTL_CYCLES" uchar;
"SJW" uchar;
"SYNC_EDGE" enum {
"SINGLE" = 1,
"DUAL" = 2
};
"MAX_DLC_REQUIRED" ;
(block "DAQ_LIST_CAN_ID" struct {
uint;
taggedstruct {
"VARIABLE" ;
"FIXED" ulong;
};
})*;
block "PROTOCOL_LAYER" struct {
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uchar;
uint;
enum {
"BYTE_ORDER_MSB_LAST" = 0,
"BYTE_ORDER_MSB_FIRST" = 1
};
enum {
"ADDRESS_GRANULARITY_BYTE" = 1,
"ADDRESS_GRANULARITY_WORD" = 2,
"ADDRESS_GRANULARITY_DWORD" = 4
};
taggedstruct {
("OPTIONAL_CMD" enum {
"GET_COMM_MODE_INFO" = 251,
"GET_ID" = 250,
"SET_REQUEST" = 249,
"GET_SEED" = 248,
"UNLOCK" = 247,
"SET_MTA" = 246,
"UPLOAD" = 245,
"SHORT_UPLOAD" = 244,
"BUILD_CHECKSUM" = 243,
"TRANSPORT_LAYER_CMD" = 242,
"USER_CMD" = 241,
"DOWNLOAD" = 240,
"DOWNLOAD_NEXT" = 239,
"DOWNLOAD_MAX" = 238,
"SHORT_DOWNLOAD" = 237,
"MODIFY_BITS" = 236,
"SET_CAL_PAGE" = 235,
"GET_CAL_PAGE" = 234,
"GET_PAG_PROCESSOR_INFO" = 233,
"GET_SEGMENT_INFO" = 232,
"GET_PAGE_INFO" = 231,
"SET_SEGMENT_MODE" = 230,
"GET_SEGMENT_MODE" = 229,
"COPY_CAL_PAGE" = 228,
"CLEAR_DAQ_LIST" = 227,
"SET_DAQ_PTR" = 226,
"WRITE_DAQ" = 225,
"SET_DAQ_LIST_MODE" = 224,
"GET_DAQ_LIST_MODE" = 223,
"START_STOP_DAQ_LIST" = 222,
"START_STOP_SYNCH" = 221,
"GET_DAQ_CLOCK" = 220,
"READ_DAQ" = 219,
"GET_DAQ_PROCESSOR_INFO" = 218,
"GET_DAQ_RESOLUTION_INFO" = 217,
"GET_DAQ_LIST_INFO" = 216,
"GET_DAQ_EVENT_INFO" = 215,
"FREE_DAQ" = 214,
"ALLOC_DAQ" = 213,
"ALLOC_ODT" = 212,
"ALLOC_ODT_ENTRY" = 211,
"PROGRAM_START" = 210,
"PROGRAM_CLEAR" = 209,
"PROGRAM" = 208,
"PROGRAM_RESET" = 207,
"GET_PGM_PROCESSOR_INFO" = 206,
"GET_SECTOR_INFO" = 205,
"PROGRAM_PREPARE" = 204,
"PROGRAM_FORMAT" = 203,
"PROGRAM_NEXT" = 202,
"PROGRAM_MAX" = 201,
"PROGRAM_VERIFY" = 200
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
"SEED_AND_KEY_EXTERNAL_FUNCTION" char[256];
};
};
block "SEGMENT" struct {
uchar;
uchar;
uchar;
uchar;
uchar;
taggedstruct {
block "CHECKSUM" struct {
enum {
"XCP_ADD_11" = 1,
"XCP_ADD_12" = 2,
"XCP_ADD_14" = 3,
"XCP_ADD_22" = 4,
"XCP_ADD_24" = 5,
"XCP_ADD_44" = 6,
"XCP_CRC_16" = 7,
"XCP_CRC_16_CITT" = 8,
"XCP_CRC_32" = 9,
"XCP_USER_DEFINED" = 255
};
taggedstruct {
"MAX_BLOCK_SIZE" ulong;
"EXTERNAL_FUNCTION" char[256];
};
};
(block "PAGE" struct {
uchar;
enum {
"ECU_ACCESS_NOT_ALLOWED" = 0,
"ECU_ACCESS_WITHOUT_XCP_ONLY" = 1,
"ECU_ACCESS_WITH_XCP_ONLY" = 2,
"ECU_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_READ_ACCESS_NOT_ALLOWED" = 0,
"XCP_READ_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_READ_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_READ_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_WRITE_ACCESS_NOT_ALLOWED" = 0,
"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_WRITE_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_WRITE_ACCESS_DONT_CARE" = 3
};
taggedstruct {
"INIT_SEGMENT" uchar;
};
})*;
(block "ADDRESS_MAPPING" struct {
ulong;
ulong;
ulong;
})*;
"PGM_VERIFY" ulong;
};
};
block "DAQ" struct {
enum {
"STATIC" = 0,
"DYNAMIC" = 1
};
uint;
uint;
uchar;
enum {
"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 {
"ADDRESS_EXTENSION_FREE" = 0,
"ADDRESS_EXTENSION_ODT" = 1,
"ADDRESS_EXTENSION_DAQ" = 3
};
enum {
"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 {
"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
};
uchar;
enum {
"NO_OVERLOAD_INDICATION" = 0,
"OVERLOAD_INDICATION_PID" = 1,
"OVERLOAD_INDICATION_EVENT" = 2
};
taggedstruct {
"PRESCALER_SUPPORTED" ;
"RESUME_SUPPORTED" ;
block "STIM" struct {
enum {
"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
};
uchar;
taggedstruct {
"BIT_STIM_SUPPORTED" ;
};
};
block "TIMESTAMP_SUPPORTED" struct {
uint;
enum {
"NO_TIME_STAMP" = 0,
"SIZE_BYTE" = 1,
"SIZE_WORD" = 2,
"SIZE_DWORD" = 4
};
enum {
"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
};
taggedstruct {
"TIMESTAMP_FIXED" ;
};
};
"PID_OFF_SUPPORTED" ;
(block "DAQ_LIST" struct {
uint;
taggedstruct {
"DAQ_LIST_TYPE" enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
"MAX_ODT" uchar;
"MAX_ODT_ENTRIES" uchar;
"FIRST_PID" uchar;
"EVENT_FIXED" uint;
block "PREDEFINED" taggedstruct {
(block "ODT" struct {
uchar;
taggedstruct {
("ODT_ENTRY" struct {
uchar;
ulong;
uchar;
uchar;
uchar;
})*;
};
})*;
};
};
})*;
(block "EVENT" struct {
char[101];
char[9];
uint;
enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
uchar;
uchar;
uchar;
uchar;
})*;
};
};
block "PAG" struct {
uchar;
taggedstruct {
"FREEZE_SUPPORTED" ;
};
};
block "PGM" struct {
enum {
"PGM_MODE_ABSOLUTE" = 1,
"PGM_MODE_FUNCTIONAL" = 2,
"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL" = 3
};
uchar;
uchar;
taggedstruct {
(block "SECTOR" struct {
char[101];
uchar;
ulong;
ulong;
uchar;
uchar;
uchar;
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
};
};
block "DAQ_EVENT" taggedunion {
"FIXED_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
"VARIABLE" taggedstruct {
block "AVAILABLE_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
block "DEFAULT_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
};
};
};
};
block "XCP_ON_SxI" struct {
uint;
ulong;
taggedstruct {
"ASYNCH_FULL_DUPLEX_MODE" struct {
enum {
"PARITY_NONE" = 0,
"PARITY_ODD" = 1,
"PARITY_EVEN" = 2
};
enum {
"ONE_STOP_BIT" = 1,
"TWO_STOP_BITS" = 2
};
};
"SYNCH_FULL_DUPLEX_MODE_BYTE" ;
"SYNCH_FULL_DUPLEX_MODE_WORD" ;
"SYNCH_FULL_DUPLEX_MODE_DWORD" ;
"SYNCH_MASTER_SLAVE_MODE_BYTE" ;
"SYNCH_MASTER_SLAVE_MODE_WORD" ;
"SYNCH_MASTER_SLAVE_MODE_DWORD" ;
};
enum {
"HEADER_LEN_BYTE" = 0,
"HEADER_LEN_CTR_BYTE" = 1,
"HEADER_LEN_WORD" = 2,
"HEADER_LEN_CTR_WORD" = 3
};
enum {
"NO_CHECKSUM" = 0,
"CHECKSUM_BYTE" = 1,
"CHECKSUM_WORD" = 2
};
taggedstruct {
block "PROTOCOL_LAYER" struct {
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uchar;
uint;
enum {
"BYTE_ORDER_MSB_LAST" = 0,
"BYTE_ORDER_MSB_FIRST" = 1
};
enum {
"ADDRESS_GRANULARITY_BYTE" = 1,
"ADDRESS_GRANULARITY_WORD" = 2,
"ADDRESS_GRANULARITY_DWORD" = 4
};
taggedstruct {
("OPTIONAL_CMD" enum {
"GET_COMM_MODE_INFO" = 251,
"GET_ID" = 250,
"SET_REQUEST" = 249,
"GET_SEED" = 248,
"UNLOCK" = 247,
"SET_MTA" = 246,
"UPLOAD" = 245,
"SHORT_UPLOAD" = 244,
"BUILD_CHECKSUM" = 243,
"TRANSPORT_LAYER_CMD" = 242,
"USER_CMD" = 241,
"DOWNLOAD" = 240,
"DOWNLOAD_NEXT" = 239,
"DOWNLOAD_MAX" = 238,
"SHORT_DOWNLOAD" = 237,
"MODIFY_BITS" = 236,
"SET_CAL_PAGE" = 235,
"GET_CAL_PAGE" = 234,
"GET_PAG_PROCESSOR_INFO" = 233,
"GET_SEGMENT_INFO" = 232,
"GET_PAGE_INFO" = 231,
"SET_SEGMENT_MODE" = 230,
"GET_SEGMENT_MODE" = 229,
"COPY_CAL_PAGE" = 228,
"CLEAR_DAQ_LIST" = 227,
"SET_DAQ_PTR" = 226,
"WRITE_DAQ" = 225,
"SET_DAQ_LIST_MODE" = 224,
"GET_DAQ_LIST_MODE" = 223,
"START_STOP_DAQ_LIST" = 222,
"START_STOP_SYNCH" = 221,
"GET_DAQ_CLOCK" = 220,
"READ_DAQ" = 219,
"GET_DAQ_PROCESSOR_INFO" = 218,
"GET_DAQ_RESOLUTION_INFO" = 217,
"GET_DAQ_LIST_INFO" = 216,
"GET_DAQ_EVENT_INFO" = 215,
"FREE_DAQ" = 214,
"ALLOC_DAQ" = 213,
"ALLOC_ODT" = 212,
"ALLOC_ODT_ENTRY" = 211,
"PROGRAM_START" = 210,
"PROGRAM_CLEAR" = 209,
"PROGRAM" = 208,
"PROGRAM_RESET" = 207,
"GET_PGM_PROCESSOR_INFO" = 206,
"GET_SECTOR_INFO" = 205,
"PROGRAM_PREPARE" = 204,
"PROGRAM_FORMAT" = 203,
"PROGRAM_NEXT" = 202,
"PROGRAM_MAX" = 201,
"PROGRAM_VERIFY" = 200
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
"SEED_AND_KEY_EXTERNAL_FUNCTION" char[256];
};
};
block "SEGMENT" struct {
uchar;
uchar;
uchar;
uchar;
uchar;
taggedstruct {
block "CHECKSUM" struct {
enum {
"XCP_ADD_11" = 1,
"XCP_ADD_12" = 2,
"XCP_ADD_14" = 3,
"XCP_ADD_22" = 4,
"XCP_ADD_24" = 5,
"XCP_ADD_44" = 6,
"XCP_CRC_16" = 7,
"XCP_CRC_16_CITT" = 8,
"XCP_CRC_32" = 9,
"XCP_USER_DEFINED" = 255
};
taggedstruct {
"MAX_BLOCK_SIZE" ulong;
"EXTERNAL_FUNCTION" char[256];
};
};
(block "PAGE" struct {
uchar;
enum {
"ECU_ACCESS_NOT_ALLOWED" = 0,
"ECU_ACCESS_WITHOUT_XCP_ONLY" = 1,
"ECU_ACCESS_WITH_XCP_ONLY" = 2,
"ECU_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_READ_ACCESS_NOT_ALLOWED" = 0,
"XCP_READ_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_READ_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_READ_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_WRITE_ACCESS_NOT_ALLOWED" = 0,
"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_WRITE_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_WRITE_ACCESS_DONT_CARE" = 3
};
taggedstruct {
"INIT_SEGMENT" uchar;
};
})*;
(block "ADDRESS_MAPPING" struct {
ulong;
ulong;
ulong;
})*;
"PGM_VERIFY" ulong;
};
};
block "DAQ" struct {
enum {
"STATIC" = 0,
"DYNAMIC" = 1
};
uint;
uint;
uchar;
enum {
"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 {
"ADDRESS_EXTENSION_FREE" = 0,
"ADDRESS_EXTENSION_ODT" = 1,
"ADDRESS_EXTENSION_DAQ" = 3
};
enum {
"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 {
"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
};
uchar;
enum {
"NO_OVERLOAD_INDICATION" = 0,
"OVERLOAD_INDICATION_PID" = 1,
"OVERLOAD_INDICATION_EVENT" = 2
};
taggedstruct {
"PRESCALER_SUPPORTED" ;
"RESUME_SUPPORTED" ;
block "STIM" struct {
enum {
"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
};
uchar;
taggedstruct {
"BIT_STIM_SUPPORTED" ;
};
};
block "TIMESTAMP_SUPPORTED" struct {
uint;
enum {
"NO_TIME_STAMP" = 0,
"SIZE_BYTE" = 1,
"SIZE_WORD" = 2,
"SIZE_DWORD" = 4
};
enum {
"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
};
taggedstruct {
"TIMESTAMP_FIXED" ;
};
};
"PID_OFF_SUPPORTED" ;
(block "DAQ_LIST" struct {
uint;
taggedstruct {
"DAQ_LIST_TYPE" enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
"MAX_ODT" uchar;
"MAX_ODT_ENTRIES" uchar;
"FIRST_PID" uchar;
"EVENT_FIXED" uint;
block "PREDEFINED" taggedstruct {
(block "ODT" struct {
uchar;
taggedstruct {
("ODT_ENTRY" struct {
uchar;
ulong;
uchar;
uchar;
uchar;
})*;
};
})*;
};
};
})*;
(block "EVENT" struct {
char[101];
char[9];
uint;
enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
uchar;
uchar;
uchar;
uchar;
})*;
};
};
block "PAG" struct {
uchar;
taggedstruct {
"FREEZE_SUPPORTED" ;
};
};
block "PGM" struct {
enum {
"PGM_MODE_ABSOLUTE" = 1,
"PGM_MODE_FUNCTIONAL" = 2,
"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL" = 3
};
uchar;
uchar;
taggedstruct {
(block "SECTOR" struct {
char[101];
uchar;
ulong;
ulong;
uchar;
uchar;
uchar;
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
};
};
block "DAQ_EVENT" taggedunion {
"FIXED_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
"VARIABLE" taggedstruct {
block "AVAILABLE_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
block "DEFAULT_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
};
};
};
};
block "XCP_ON_TCP_IP" struct {
uint;
uint;
taggedunion {
"HOST_NAME" char[256];
"ADDRESS" char[15];
};
taggedstruct {
block "PROTOCOL_LAYER" struct {
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uchar;
uint;
enum {
"BYTE_ORDER_MSB_LAST" = 0,
"BYTE_ORDER_MSB_FIRST" = 1
};
enum {
"ADDRESS_GRANULARITY_BYTE" = 1,
"ADDRESS_GRANULARITY_WORD" = 2,
"ADDRESS_GRANULARITY_DWORD" = 4
};
taggedstruct {
("OPTIONAL_CMD" enum {
"GET_COMM_MODE_INFO" = 251,
"GET_ID" = 250,
"SET_REQUEST" = 249,
"GET_SEED" = 248,
"UNLOCK" = 247,
"SET_MTA" = 246,
"UPLOAD" = 245,
"SHORT_UPLOAD" = 244,
"BUILD_CHECKSUM" = 243,
"TRANSPORT_LAYER_CMD" = 242,
"USER_CMD" = 241,
"DOWNLOAD" = 240,
"DOWNLOAD_NEXT" = 239,
"DOWNLOAD_MAX" = 238,
"SHORT_DOWNLOAD" = 237,
"MODIFY_BITS" = 236,
"SET_CAL_PAGE" = 235,
"GET_CAL_PAGE" = 234,
"GET_PAG_PROCESSOR_INFO" = 233,
"GET_SEGMENT_INFO" = 232,
"GET_PAGE_INFO" = 231,
"SET_SEGMENT_MODE" = 230,
"GET_SEGMENT_MODE" = 229,
"COPY_CAL_PAGE" = 228,
"CLEAR_DAQ_LIST" = 227,
"SET_DAQ_PTR" = 226,
"WRITE_DAQ" = 225,
"SET_DAQ_LIST_MODE" = 224,
"GET_DAQ_LIST_MODE" = 223,
"START_STOP_DAQ_LIST" = 222,
"START_STOP_SYNCH" = 221,
"GET_DAQ_CLOCK" = 220,
"READ_DAQ" = 219,
"GET_DAQ_PROCESSOR_INFO" = 218,
"GET_DAQ_RESOLUTION_INFO" = 217,
"GET_DAQ_LIST_INFO" = 216,
"GET_DAQ_EVENT_INFO" = 215,
"FREE_DAQ" = 214,
"ALLOC_DAQ" = 213,
"ALLOC_ODT" = 212,
"ALLOC_ODT_ENTRY" = 211,
"PROGRAM_START" = 210,
"PROGRAM_CLEAR" = 209,
"PROGRAM" = 208,
"PROGRAM_RESET" = 207,
"GET_PGM_PROCESSOR_INFO" = 206,
"GET_SECTOR_INFO" = 205,
"PROGRAM_PREPARE" = 204,
"PROGRAM_FORMAT" = 203,
"PROGRAM_NEXT" = 202,
"PROGRAM_MAX" = 201,
"PROGRAM_VERIFY" = 200
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
"SEED_AND_KEY_EXTERNAL_FUNCTION" char[256];
};
};
block "SEGMENT" struct {
uchar;
uchar;
uchar;
uchar;
uchar;
taggedstruct {
block "CHECKSUM" struct {
enum {
"XCP_ADD_11" = 1,
"XCP_ADD_12" = 2,
"XCP_ADD_14" = 3,
"XCP_ADD_22" = 4,
"XCP_ADD_24" = 5,
"XCP_ADD_44" = 6,
"XCP_CRC_16" = 7,
"XCP_CRC_16_CITT" = 8,
"XCP_CRC_32" = 9,
"XCP_USER_DEFINED" = 255
};
taggedstruct {
"MAX_BLOCK_SIZE" ulong;
"EXTERNAL_FUNCTION" char[256];
};
};
(block "PAGE" struct {
uchar;
enum {
"ECU_ACCESS_NOT_ALLOWED" = 0,
"ECU_ACCESS_WITHOUT_XCP_ONLY" = 1,
"ECU_ACCESS_WITH_XCP_ONLY" = 2,
"ECU_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_READ_ACCESS_NOT_ALLOWED" = 0,
"XCP_READ_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_READ_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_READ_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_WRITE_ACCESS_NOT_ALLOWED" = 0,
"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_WRITE_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_WRITE_ACCESS_DONT_CARE" = 3
};
taggedstruct {
"INIT_SEGMENT" uchar;
};
})*;
(block "ADDRESS_MAPPING" struct {
ulong;
ulong;
ulong;
})*;
"PGM_VERIFY" ulong;
};
};
block "DAQ" struct {
enum {
"STATIC" = 0,
"DYNAMIC" = 1
};
uint;
uint;
uchar;
enum {
"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 {
"ADDRESS_EXTENSION_FREE" = 0,
"ADDRESS_EXTENSION_ODT" = 1,
"ADDRESS_EXTENSION_DAQ" = 3
};
enum {
"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 {
"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
};
uchar;
enum {
"NO_OVERLOAD_INDICATION" = 0,
"OVERLOAD_INDICATION_PID" = 1,
"OVERLOAD_INDICATION_EVENT" = 2
};
taggedstruct {
"PRESCALER_SUPPORTED" ;
"RESUME_SUPPORTED" ;
block "STIM" struct {
enum {
"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
};
uchar;
taggedstruct {
"BIT_STIM_SUPPORTED" ;
};
};
block "TIMESTAMP_SUPPORTED" struct {
uint;
enum {
"NO_TIME_STAMP" = 0,
"SIZE_BYTE" = 1,
"SIZE_WORD" = 2,
"SIZE_DWORD" = 4
};
enum {
"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
};
taggedstruct {
"TIMESTAMP_FIXED" ;
};
};
"PID_OFF_SUPPORTED" ;
(block "DAQ_LIST" struct {
uint;
taggedstruct {
"DAQ_LIST_TYPE" enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
"MAX_ODT" uchar;
"MAX_ODT_ENTRIES" uchar;
"FIRST_PID" uchar;
"EVENT_FIXED" uint;
block "PREDEFINED" taggedstruct {
(block "ODT" struct {
uchar;
taggedstruct {
("ODT_ENTRY" struct {
uchar;
ulong;
uchar;
uchar;
uchar;
})*;
};
})*;
};
};
})*;
(block "EVENT" struct {
char[101];
char[9];
uint;
enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
uchar;
uchar;
uchar;
uchar;
})*;
};
};
block "PAG" struct {
uchar;
taggedstruct {
"FREEZE_SUPPORTED" ;
};
};
block "PGM" struct {
enum {
"PGM_MODE_ABSOLUTE" = 1,
"PGM_MODE_FUNCTIONAL" = 2,
"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL" = 3
};
uchar;
uchar;
taggedstruct {
(block "SECTOR" struct {
char[101];
uchar;
ulong;
ulong;
uchar;
uchar;
uchar;
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
};
};
block "DAQ_EVENT" taggedunion {
"FIXED_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
"VARIABLE" taggedstruct {
block "AVAILABLE_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
block "DEFAULT_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
};
};
};
};
block "XCP_ON_UDP_IP" struct {
uint;
uint;
taggedunion {
"HOST_NAME" char[256];
"ADDRESS" char[15];
};
taggedstruct {
block "PROTOCOL_LAYER" struct {
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uchar;
uint;
enum {
"BYTE_ORDER_MSB_LAST" = 0,
"BYTE_ORDER_MSB_FIRST" = 1
};
enum {
"ADDRESS_GRANULARITY_BYTE" = 1,
"ADDRESS_GRANULARITY_WORD" = 2,
"ADDRESS_GRANULARITY_DWORD" = 4
};
taggedstruct {
("OPTIONAL_CMD" enum {
"GET_COMM_MODE_INFO" = 251,
"GET_ID" = 250,
"SET_REQUEST" = 249,
"GET_SEED" = 248,
"UNLOCK" = 247,
"SET_MTA" = 246,
"UPLOAD" = 245,
"SHORT_UPLOAD" = 244,
"BUILD_CHECKSUM" = 243,
"TRANSPORT_LAYER_CMD" = 242,
"USER_CMD" = 241,
"DOWNLOAD" = 240,
"DOWNLOAD_NEXT" = 239,
"DOWNLOAD_MAX" = 238,
"SHORT_DOWNLOAD" = 237,
"MODIFY_BITS" = 236,
"SET_CAL_PAGE" = 235,
"GET_CAL_PAGE" = 234,
"GET_PAG_PROCESSOR_INFO" = 233,
"GET_SEGMENT_INFO" = 232,
"GET_PAGE_INFO" = 231,
"SET_SEGMENT_MODE" = 230,
"GET_SEGMENT_MODE" = 229,
"COPY_CAL_PAGE" = 228,
"CLEAR_DAQ_LIST" = 227,
"SET_DAQ_PTR" = 226,
"WRITE_DAQ" = 225,
"SET_DAQ_LIST_MODE" = 224,
"GET_DAQ_LIST_MODE" = 223,
"START_STOP_DAQ_LIST" = 222,
"START_STOP_SYNCH" = 221,
"GET_DAQ_CLOCK" = 220,
"READ_DAQ" = 219,
"GET_DAQ_PROCESSOR_INFO" = 218,
"GET_DAQ_RESOLUTION_INFO" = 217,
"GET_DAQ_LIST_INFO" = 216,
"GET_DAQ_EVENT_INFO" = 215,
"FREE_DAQ" = 214,
"ALLOC_DAQ" = 213,
"ALLOC_ODT" = 212,
"ALLOC_ODT_ENTRY" = 211,
"PROGRAM_START" = 210,
"PROGRAM_CLEAR" = 209,
"PROGRAM" = 208,
"PROGRAM_RESET" = 207,
"GET_PGM_PROCESSOR_INFO" = 206,
"GET_SECTOR_INFO" = 205,
"PROGRAM_PREPARE" = 204,
"PROGRAM_FORMAT" = 203,
"PROGRAM_NEXT" = 202,
"PROGRAM_MAX" = 201,
"PROGRAM_VERIFY" = 200
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
"SEED_AND_KEY_EXTERNAL_FUNCTION" char[256];
};
};
block "SEGMENT" struct {
uchar;
uchar;
uchar;
uchar;
uchar;
taggedstruct {
block "CHECKSUM" struct {
enum {
"XCP_ADD_11" = 1,
"XCP_ADD_12" = 2,
"XCP_ADD_14" = 3,
"XCP_ADD_22" = 4,
"XCP_ADD_24" = 5,
"XCP_ADD_44" = 6,
"XCP_CRC_16" = 7,
"XCP_CRC_16_CITT" = 8,
"XCP_CRC_32" = 9,
"XCP_USER_DEFINED" = 255
};
taggedstruct {
"MAX_BLOCK_SIZE" ulong;
"EXTERNAL_FUNCTION" char[256];
};
};
(block "PAGE" struct {
uchar;
enum {
"ECU_ACCESS_NOT_ALLOWED" = 0,
"ECU_ACCESS_WITHOUT_XCP_ONLY" = 1,
"ECU_ACCESS_WITH_XCP_ONLY" = 2,
"ECU_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_READ_ACCESS_NOT_ALLOWED" = 0,
"XCP_READ_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_READ_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_READ_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_WRITE_ACCESS_NOT_ALLOWED" = 0,
"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_WRITE_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_WRITE_ACCESS_DONT_CARE" = 3
};
taggedstruct {
"INIT_SEGMENT" uchar;
};
})*;
(block "ADDRESS_MAPPING" struct {
ulong;
ulong;
ulong;
})*;
"PGM_VERIFY" ulong;
};
};
block "DAQ" struct {
enum {
"STATIC" = 0,
"DYNAMIC" = 1
};
uint;
uint;
uchar;
enum {
"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 {
"ADDRESS_EXTENSION_FREE" = 0,
"ADDRESS_EXTENSION_ODT" = 1,
"ADDRESS_EXTENSION_DAQ" = 3
};
enum {
"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 {
"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
};
uchar;
enum {
"NO_OVERLOAD_INDICATION" = 0,
"OVERLOAD_INDICATION_PID" = 1,
"OVERLOAD_INDICATION_EVENT" = 2
};
taggedstruct {
"PRESCALER_SUPPORTED" ;
"RESUME_SUPPORTED" ;
block "STIM" struct {
enum {
"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
};
uchar;
taggedstruct {
"BIT_STIM_SUPPORTED" ;
};
};
block "TIMESTAMP_SUPPORTED" struct {
uint;
enum {
"NO_TIME_STAMP" = 0,
"SIZE_BYTE" = 1,
"SIZE_WORD" = 2,
"SIZE_DWORD" = 4
};
enum {
"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
};
taggedstruct {
"TIMESTAMP_FIXED" ;
};
};
"PID_OFF_SUPPORTED" ;
(block "DAQ_LIST" struct {
uint;
taggedstruct {
"DAQ_LIST_TYPE" enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
"MAX_ODT" uchar;
"MAX_ODT_ENTRIES" uchar;
"FIRST_PID" uchar;
"EVENT_FIXED" uint;
block "PREDEFINED" taggedstruct {
(block "ODT" struct {
uchar;
taggedstruct {
("ODT_ENTRY" struct {
uchar;
ulong;
uchar;
uchar;
uchar;
})*;
};
})*;
};
};
})*;
(block "EVENT" struct {
char[101];
char[9];
uint;
enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
uchar;
uchar;
uchar;
uchar;
})*;
};
};
block "PAG" struct {
uchar;
taggedstruct {
"FREEZE_SUPPORTED" ;
};
};
block "PGM" struct {
enum {
"PGM_MODE_ABSOLUTE" = 1,
"PGM_MODE_FUNCTIONAL" = 2,
"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL" = 3
};
uchar;
uchar;
taggedstruct {
(block "SECTOR" struct {
char[101];
uchar;
ulong;
ulong;
uchar;
uchar;
uchar;
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
};
};
block "DAQ_EVENT" taggedunion {
"FIXED_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
"VARIABLE" taggedstruct {
block "AVAILABLE_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
block "DEFAULT_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
};
};
};
};
block "XCP_ON_USB" struct {
uint;
uint;
uint;
uchar;
enum {
"HEADER_LEN_BYTE" = 0,
"HEADER_LEN_CTR_BYTE" = 1,
"HEADER_LEN_FILL_BYTE" = 2,
"HEADER_LEN_WORD" = 3,
"HEADER_LEN_CTR_WORD" = 4,
"HEADER_LEN_FILL_WORD" = 5
};
taggedunion {
block "OUT_EP_CMD_STIM" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
};
};
taggedunion {
block "IN_EP_RESERR_DAQ_EVSERV" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
};
};
taggedstruct {
"ALTERNATE_SETTING_NO" uchar;
"INTERFACE_STRING_DESCRIPTOR" char[101];
(block "OUT_EP_ONLY_STIM" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
})*;
(block "IN_EP_ONLY_DAQ" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
})*;
block "IN_EP_ONLY_EVSERV" struct {
uchar;
enum {
"BULK_TRANSFER" = 2,
"INTERRUPT_TRANSFER" = 3
};
uint;
uchar;
enum {
"MESSAGE_PACKING_SINGLE" = 0,
"MESSAGE_PACKING_MULTIPLE" = 1,
"MESSAGE_PACKING_STREAMING" = 2
};
enum {
"ALIGNMENT_8_BIT" = 0,
"ALIGNMENT_16_BIT" = 1,
"ALIGNMENT_32_BIT" = 2,
"ALIGNMENT_64_BIT" = 3
};
taggedstruct {
"RECOMMENDED_HOST_BUFSIZE" uint;
};
};
(block "DAQ_LIST_USB_ENDPOINT" struct {
uint;
taggedstruct {
"FIXED_IN" uchar;
"FIXED_OUT" uchar;
};
})*;
block "PROTOCOL_LAYER" struct {
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uint;
uchar;
uint;
enum {
"BYTE_ORDER_MSB_LAST" = 0,
"BYTE_ORDER_MSB_FIRST" = 1
};
enum {
"ADDRESS_GRANULARITY_BYTE" = 1,
"ADDRESS_GRANULARITY_WORD" = 2,
"ADDRESS_GRANULARITY_DWORD" = 4
};
taggedstruct {
("OPTIONAL_CMD" enum {
"GET_COMM_MODE_INFO" = 251,
"GET_ID" = 250,
"SET_REQUEST" = 249,
"GET_SEED" = 248,
"UNLOCK" = 247,
"SET_MTA" = 246,
"UPLOAD" = 245,
"SHORT_UPLOAD" = 244,
"BUILD_CHECKSUM" = 243,
"TRANSPORT_LAYER_CMD" = 242,
"USER_CMD" = 241,
"DOWNLOAD" = 240,
"DOWNLOAD_NEXT" = 239,
"DOWNLOAD_MAX" = 238,
"SHORT_DOWNLOAD" = 237,
"MODIFY_BITS" = 236,
"SET_CAL_PAGE" = 235,
"GET_CAL_PAGE" = 234,
"GET_PAG_PROCESSOR_INFO" = 233,
"GET_SEGMENT_INFO" = 232,
"GET_PAGE_INFO" = 231,
"SET_SEGMENT_MODE" = 230,
"GET_SEGMENT_MODE" = 229,
"COPY_CAL_PAGE" = 228,
"CLEAR_DAQ_LIST" = 227,
"SET_DAQ_PTR" = 226,
"WRITE_DAQ" = 225,
"SET_DAQ_LIST_MODE" = 224,
"GET_DAQ_LIST_MODE" = 223,
"START_STOP_DAQ_LIST" = 222,
"START_STOP_SYNCH" = 221,
"GET_DAQ_CLOCK" = 220,
"READ_DAQ" = 219,
"GET_DAQ_PROCESSOR_INFO" = 218,
"GET_DAQ_RESOLUTION_INFO" = 217,
"GET_DAQ_LIST_INFO" = 216,
"GET_DAQ_EVENT_INFO" = 215,
"FREE_DAQ" = 214,
"ALLOC_DAQ" = 213,
"ALLOC_ODT" = 212,
"ALLOC_ODT_ENTRY" = 211,
"PROGRAM_START" = 210,
"PROGRAM_CLEAR" = 209,
"PROGRAM" = 208,
"PROGRAM_RESET" = 207,
"GET_PGM_PROCESSOR_INFO" = 206,
"GET_SECTOR_INFO" = 205,
"PROGRAM_PREPARE" = 204,
"PROGRAM_FORMAT" = 203,
"PROGRAM_NEXT" = 202,
"PROGRAM_MAX" = 201,
"PROGRAM_VERIFY" = 200
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
"SEED_AND_KEY_EXTERNAL_FUNCTION" char[256];
};
};
block "SEGMENT" struct {
uchar;
uchar;
uchar;
uchar;
uchar;
taggedstruct {
block "CHECKSUM" struct {
enum {
"XCP_ADD_11" = 1,
"XCP_ADD_12" = 2,
"XCP_ADD_14" = 3,
"XCP_ADD_22" = 4,
"XCP_ADD_24" = 5,
"XCP_ADD_44" = 6,
"XCP_CRC_16" = 7,
"XCP_CRC_16_CITT" = 8,
"XCP_CRC_32" = 9,
"XCP_USER_DEFINED" = 255
};
taggedstruct {
"MAX_BLOCK_SIZE" ulong;
"EXTERNAL_FUNCTION" char[256];
};
};
(block "PAGE" struct {
uchar;
enum {
"ECU_ACCESS_NOT_ALLOWED" = 0,
"ECU_ACCESS_WITHOUT_XCP_ONLY" = 1,
"ECU_ACCESS_WITH_XCP_ONLY" = 2,
"ECU_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_READ_ACCESS_NOT_ALLOWED" = 0,
"XCP_READ_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_READ_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_READ_ACCESS_DONT_CARE" = 3
};
enum {
"XCP_WRITE_ACCESS_NOT_ALLOWED" = 0,
"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY" = 1,
"XCP_WRITE_ACCESS_WITH_ECU_ONLY" = 2,
"XCP_WRITE_ACCESS_DONT_CARE" = 3
};
taggedstruct {
"INIT_SEGMENT" uchar;
};
})*;
(block "ADDRESS_MAPPING" struct {
ulong;
ulong;
ulong;
})*;
"PGM_VERIFY" ulong;
};
};
block "DAQ" struct {
enum {
"STATIC" = 0,
"DYNAMIC" = 1
};
uint;
uint;
uchar;
enum {
"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 {
"ADDRESS_EXTENSION_FREE" = 0,
"ADDRESS_EXTENSION_ODT" = 1,
"ADDRESS_EXTENSION_DAQ" = 3
};
enum {
"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 {
"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
};
uchar;
enum {
"NO_OVERLOAD_INDICATION" = 0,
"OVERLOAD_INDICATION_PID" = 1,
"OVERLOAD_INDICATION_EVENT" = 2
};
taggedstruct {
"PRESCALER_SUPPORTED" ;
"RESUME_SUPPORTED" ;
block "STIM" struct {
enum {
"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
};
uchar;
taggedstruct {
"BIT_STIM_SUPPORTED" ;
};
};
block "TIMESTAMP_SUPPORTED" struct {
uint;
enum {
"NO_TIME_STAMP" = 0,
"SIZE_BYTE" = 1,
"SIZE_WORD" = 2,
"SIZE_DWORD" = 4
};
enum {
"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
};
taggedstruct {
"TIMESTAMP_FIXED" ;
};
};
"PID_OFF_SUPPORTED" ;
(block "DAQ_LIST" struct {
uint;
taggedstruct {
"DAQ_LIST_TYPE" enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
"MAX_ODT" uchar;
"MAX_ODT_ENTRIES" uchar;
"FIRST_PID" uchar;
"EVENT_FIXED" uint;
block "PREDEFINED" taggedstruct {
(block "ODT" struct {
uchar;
taggedstruct {
("ODT_ENTRY" struct {
uchar;
ulong;
uchar;
uchar;
uchar;
})*;
};
})*;
};
};
})*;
(block "EVENT" struct {
char[101];
char[9];
uint;
enum {
"DAQ" = 1,
"STIM" = 2,
"DAQ_STIM" = 3
};
uchar;
uchar;
uchar;
uchar;
})*;
};
};
block "PAG" struct {
uchar;
taggedstruct {
"FREEZE_SUPPORTED" ;
};
};
block "PGM" struct {
enum {
"PGM_MODE_ABSOLUTE" = 1,
"PGM_MODE_FUNCTIONAL" = 2,
"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL" = 3
};
uchar;
uchar;
taggedstruct {
(block "SECTOR" struct {
char[101];
uchar;
ulong;
ulong;
uchar;
uchar;
uchar;
})*;
"COMMUNICATION_MODE_SUPPORTED" taggedunion {
"BLOCK" taggedstruct {
"SLAVE" ;
"MASTER" struct {
uchar;
uchar;
};
};
"INTERLEAVED" uchar;
};
};
};
block "DAQ_EVENT" taggedunion {
"FIXED_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
"VARIABLE" taggedstruct {
block "AVAILABLE_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
block "DEFAULT_EVENT_LIST" taggedstruct {
("EVENT" uint)*;
};
};
};
};
};
};
};
};
/end A2ML
/*
===================================================================================
=========== */
/*
*/
/* Common parameters valid for the whole ASAP2 file
*/
/*
*/
/*
===================================================================================
=========== */
/begin MOD_COMMON ""
DEPOSIT ABSOLUTE
BYTE_ORDER MSB_LAST
ALIGNMENT_BYTE 1
ALIGNMENT_WORD 2
ALIGNMENT_LONG 4
ALIGNMENT_FLOAT32_IEEE 4
ALIGNMENT_FLOAT64_IEEE 4
/end MOD_COMMON
/*
===================================================================================
=========== */
/*
*/
/* XCP Interface description
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* MOD_PAR with the memory segment descriptions
*/
/*
*/
/*
===================================================================================
=========== */
/end MOD_PAR
/*
===================================================================================
=========== */
/*
*/
/* Computation Methods used to convert the ECU internal values to the physical
values */
/*
*/
/* the types IDENTICAL, LINEAR and RAT_FUNC should be used as standard
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* type FORM should only be used if the computation is complex and not feasible by
RAT_FUNC */
/*
*/
/* Note:
*/
/* FORM is neccessary for VIRTUAL measuerments
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* type TAB_INTP and TAB_NOINTP should only be used if the computation is complex
and not */
/* feasible by RAT_FUNC
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* type TAB_VERB and TAB_VERB_RANGE allow to convert to text
*/
/*
*/
/* Note:
*/
/* Testbench with ASAP3 do not support text. It is common use that the MCD tools
transfer the */
/* internal value instead
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* Measurements
*/
/*
*/
/* Note:
*/
/* In this example the values for Resolution and Accuracy are set to "0" as they
are normally */
/* not evaluated by measurement and calibration tools
*/
/* It is allowed to use the same address for multiple measurements. By this it is
possible */
/* to use different bitmasks / computation methods for the same int value
*/
/*
*/
/* Note:
*/
/* There is for each data type one example
*/
/* With one data type (UBYTE) there is for each computation method an example
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* Record Layouts for Characteristics (Parameters)
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* Scalar Characteristics (Parameters)
*/
/*
*/
/* Note:
*/
/* MAX_DIF is always set to 0 as it is normally not evaluated by measurement and
calibration tools */
/*
*/
/* Note:
*/
/* There is for each data type one example
*/
/* With one data type (SWORD) there is for each computation method an example
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* Array Characteristics (Parameters)
*/
/*
*/
/* Note:
*/
/* All examples are based on SWORD. For other data types see scalare parameters
*/
/*
*/
/* Note:
*/
/* For curve are examples for all kind of axis available
*/
/* For map, cuboid are examples with mixed axis types available
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* ASCII Characteristics (Parameters)
*/
/*
*/
/* Note:
*/
/* All examples are based on UBYTE. This is necessary for ASCII
*/
/*
*/
/* Note:
*/
/* NUMBER shall state the maximum (fixed) size of memory available on the ECU
*/
/* The string representation in the MCD tool is normally 0-terminated. There the
string may be */
/* limited earlier
*/
/*
*/
/*
===================================================================================
=========== */
/begin CHARACTERISTIC
ASAM.C.ASCII.UBYTE.NUMBER_42
"ASCII string"
ASCII
0x810200
RL.FNC.UBYTE.ROW_DIR
0
CM.IDENTICAL
0 255
NUMBER 42
DISPLAY_IDENTIFIER DI.ASAM.C.ASCII.UBYTE.NUMBER_42
/end CHARACTERISTIC
/*
===================================================================================
=========== */
/*
*/
/* Curve, Map, Quboid Characteristics (Parameters)
*/
/*
*/
/* Note:
*/
/* All examples are based on SWORD. For other data types see scalare parameters
*/
/*
*/
/* Note:
*/
/* For curve are examples for all kind of axis available
*/
/* For map, cuboid are examples with mixed axis types available
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* Dependent Characteristics (Parameters)
*/
/*
*/
/* Note:
*/
/* The value of the dependent parameter is located in the ECU memory.
*/
/* The MCD tool updates the value when the source value is changed
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* Virtual Characteristics (Parameters)
*/
/*
*/
/* Note:
*/
/* The value of the virtual parameter is not located in the ECU memory. It is only
visible */
/* in the MCD tool
*/
/* The MCD tool updates the value when the source value is changed
*/
/*
*/
/*
===================================================================================
=========== */
/begin CHARACTERISTIC ASAM.C.VIRTUAL.REF_1.SWORD
"Virtual SWORD"
VALUE
0x0 /* address is 0 as the
virtual value is not part of the ECU or the hex file */
RL.FNC.SWORD.ROW_DIR /* SWORD needed to cover
the result of the dependent calculation */
0
CM.IDENTICAL
0 255
/begin VIRTUAL_CHARACTERISTIC
"X1 - 9"
ASAM.C.SCALAR.SBYTE.IDENTICAL /* used as input X1
variable in teh dependent formula */
/end VIRTUAL_CHARACTERISTIC
DISPLAY_IDENTIFIER DI.ASAM.C.VIRTUAL.REF_1.SWORD
/end CHARACTERISTIC
/*
===================================================================================
=========== */
/*
*/
/* Functions
*/
/*
*/
/* Note:
*/
/* Each parameter shall be defined (DEF_CHARACTERISTIC) only one time!
*/
/*
*/
/*
===================================================================================
=========== */
/*
===================================================================================
=========== */
/*
*/
/* Groups
*/
/*
*/
/* Note:
*/
/* For GROUP there is no special sorting defined
*/
/* It is up to the user to define one ore more sortings
*/
/*
*/
/*
===================================================================================
=========== */
/end MODULE
/end PROJECT