123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- /*##############################################################################*/
- /* 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
|