/*##############################################################################*/ /* axcs_obl.h */ /*##############################################################################*/ /* Contains definitions for handling with the AXCS object list */ /* The axcs header file must be included before !!! */ /* */ /* Programming language: C/C++ ( ANSI ) */ /* */ /*##############################################################################*/ /* 21-Oct-2010 Wi include of axcs header file removed */ /* 07-May-2008 Wi new structure of object description list and trace file */ /* 13-Jan-2000 Wi created */ /* */ /*##############################################################################*/ #ifndef AXCS_OBL_H #define AXCS_OBL_H #pragma pack (push, 1) // definition of a generic object with the maximum length an object can have // #define AXCS_MAX_PARAM_LENGTH (MAX_LEN_ACS_OBJ - sizeof(acs_obj_header_t)) typedef struct axcs_raw_obj_t_tag { acs_obj_header_t axcs_head; ACS_BYTE data [AXCS_MAX_PARAM_LENGTH]; } axcs_raw_obj_t; #define AXCS_MAX_VAR_PARA_COUNT 50 // max. number of parameters in a dynamic block /*************************************************************** This is the general structure of the object description list: File header Object-1 Parameter-1 Parameter-2 Parameter-n Object-n Parameter-1 Parameter-n *****************************************************************/ // Object list: Description of the header part of each list // The length of the header is always 128 bytes typedef struct obj_file_head{ ACS_STRING_8 fh_obl_version[2]; // internal version of the list ACS_STRING_8 fh_data_version[24]; // version of the data ACS_STRING_8 fh_system[24]; // name of the system ACS_STRING_8 fh_date[24]; ACS_STRING_8 fh_time[24]; ACS_DUMMY fh_dummy1[30]; } obj_file_header; // Object list: Description of a parameters // typedef struct axcs_obl_para_t_tag { ACS_STRING_8 name [32]; ACS_BYTE type; ACS_DUMMY dummy1; ACS_WORD array_length; ACS_LINT min_range; ACS_LINT max_range; ACS_STRING_8 value [20]; ACS_STRING_8 dimension [24]; ACS_DUMMY dummy2[8]; } axcs_obl_para_t; // Object list: Description of an object // The length is always 64 bytes typedef struct axcs_obl_obj_t_tag { ACS_LINT dont_care_mask; void* prev; // not used in file ACS_DUMMY dummy1[8]; ACS_STRING_8 name [32]; acs_obj_header_t head; ACS_WORD para_count; ACS_DUMMY dummy2[2]; axcs_obl_para_t* para_anker; // not used in file } axcs_obl_obj_t; // Objekt-Liste: Defines fuer para_struct: type // die oberen zwei Bit werden anderweitig verwendet // deshalb sollte der Wert dieses defines max. 63 sein // #define AXCS_STRING_ASC 0 // string 16 #define AXCS_ENUM_DEC 1 #define AXCS_INT_DEC 2 #define AXCS_WORD_HEX 3 #define AXCS_LINT_DEC 4 #define AXCS_BYTE_HEX 5 #define AXCS_BYTE_CNT 6 // unsigned 8 bit #define AXCS_SET_HEX 7 #define AXCS_INT_CNT 8 // unsigned 16 bit #define AXCS_ENUM_HEX 9 #define AXCS_ENUM_BIN 10 #define AXCS_INT_HEX 11 #define AXCS_WORD_DEC 12 #define AXCS_LINT_HEX 13 #define AXCS_BYTE_DEC 14 #define AXCS_BYTE_BIN 15 #define AXCS_SET_DEC 16 #define AXCS_DWORD_DEC 17 #define AXCS_DWORD_HEX 18 #define AXCS_INT8_DEC 19 #define AXCS_STRING8_ASCII 20 /************************************************************* This is the general structure of the object description list: file header object-1 object-2 object-n For each object 1464 bytes are stored: 4 bytes the time difference regarding the start time in [ms] 1460 bytes the normal axcs object **************************************************************/ #define AXCS_MAX_FILE_TAG_LENGTH 50 // Maximum characters for file tags in an file typedef struct trace_file_head{ ACS_STRING_8 szFileTag[AXCS_MAX_FILE_TAG_LENGTH]; SYSTEMTIME StartTime; //16 Bytes ACS_DUMMY szDummy1[14]; // they have to be filled with 0 ACS_STRING_8 sz_TraceFile_VersionKey[16]; ACS_STRING_8 sz_TraceFile_Version[16]; ACS_STRING_8 sz_Obl_VersionKey[8]; ACS_STRING_8 sz_Obl_Version[24]; ACS_STRING_8 sz_Acsos_VersionKey[16]; ACS_STRING_8 sz_Acsos_Version[16]; ACS_STRING_8 sz_DateKey[16]; ACS_STRING_8 sz_Date[16]; ACS_STRING_8 sz_TimeKey[16]; ACS_STRING_8 sz_Time[16]; ACS_STRING_8 sz_SystemKey[8]; ACS_STRING_8 sz_System[24]; ACS_DUMMY szDummy2[1192]; // they have to be filled with 0 } trace_file_head; // Struktur eines Objekts im AXCS trace file // typedef struct axcs_trace_obj_t_tag { ACS_LINT time_stamp; // timestamp in milliseconds axcs_raw_obj_t axcs_object; } axcs_trace_obj_t; // New file tag for AXCS trace file #define AXCS_TRACE_FILE_TAG "AcsosNT Trace File" // every trace starts with this string #define AXCS_TRACE_FILE_VERSION_KEY "TraceFile-Ver:" // tag from version 2 onwards #define AXCS_TRACE_FILE_VERSION "2" // version string #define AXCS_OBL_VERSION_KEY "Obl-Ver:" #define AXCS_DATE_KEY "Date:" #define AXCS_TIME_KEY "Time:" #define AXCS_SYSTEM_KEY "System:" #pragma pack (pop) #endif