// File: DAISCommon.idl // Change history // DAIS RTF 1.1 6064 2004-10-01 CORBA 3 TypeID key word collision (TypeID removed) // HDAIS FTF 6415 2004-09-09 Conformance options supported // DAIS RTF 1.1 7082 2004-09-09 Userquality changed from short to long #ifndef _DAIS_COMMON_IDL #define _DAIS_COMMON_IDL #pragma prefix "omg.org" #include module DAIS { typedef unsigned short SupportedFunctions; //6415 const SupportedFunctions DAIS_DATA_ACCESS = 0x0001; //6415 const SupportedFunctions DAIS_ALARMS_AND_EVENTS = 0x0002; //6415 typedef DAFDescriptions::ResourceID ResourceID; typedef DAFDescriptions::SimpleValueType SimpleValueType; typedef DAFDescriptions::SimpleValue SimpleValue; typedef DAFDescriptions::DateTime DateTime; typedef DAFDescriptions::PropertyID PropertyID; typedef DAFDescriptions::PropertyValueSequence PropertyValues; // sequences of resource ids typedef sequence ResourceIDs; typedef sequence PropertyIDs; // sequences of values typedef sequence Strings; typedef sequence DateTimes; typedef sequence SimpleValueTypes; typedef sequence SimpleValues; struct ItemID { ResourceID resource; PropertyID property; }; typedef sequence ItemIDs; typedef unsigned long ClientItemHandle; typedef sequence ClientItemHandles; typedef unsigned long long ServerItemHandle; typedef sequence ServerItemHandles; typedef short ServerItemIdentificationType; const ServerItemIdentificationType ITEM_ID = 0; const ServerItemIdentificationType PATH_NAME = 1; union ServerItemIdentification switch( ServerItemIdentificationType ) { case ITEM_ID : ItemID item; case PATH_NAME : string pathname; }; typedef sequence ServerItemIdentifications; typedef unsigned short Error; struct ItemError { Error err; ClientItemHandle client_handle; ServerItemHandle server_handle; string pathname; string reason; }; typedef sequence ItemErrors; // error codes const Error ERROR_DAISOK = 0; const Error ERROR_BAD_RIGHTS = 1; const Error ERROR_UNKNOWN_ITEMID = 2; const Error ERROR_CLAMPED = 3; const Error ERROR_OUT_OF_RANGE = 4; const Error ERROR_UNKNOWN_PATHNAME = 5; const Error ERROR_BAD_TYPE = 6; const Error ERROR_UNKNOWN_ACCESS_PATH = 7; const Error ERROR_INTERNAL_SERVER = 8; const Error ERROR_INVALID_DAIS_HANDLE = 9; enum AccessRights { READABLE, WRITEABLE, READ_AND_WRITEABLE }; typedef unsigned long OPCQuality; typedef unsigned long UserQuality; //7082 struct Quality { OPCQuality opc_quality; UserQuality user_quality; }; // Masks for extracting quality subfields // (note 'status' mask also includes 'Quality' bits) const OPCQuality OPC_QUALITY_MASK = 0x000000C0; const OPCQuality OPC_STATUS_MASK = 0x000000FC; const OPCQuality OPC_LIMIT_MASK = 0x00000003; // Values for QUALITY_MASK bit field const OPCQuality OPC_QUALITY_BAD = 0x00000000; const OPCQuality OPC_QUALITY_UNCERTAIN = 0x00000040; const OPCQuality OPC_QUALITY_GOOD = 0x000000C0; // STATUS_MASK Values for Quality = BAD const OPCQuality OPC_QUALITY_CONFIG_ERROR = 0x00000004; const OPCQuality OPC_QUALITY_NOT_CONNECTED = 0x00000008; const OPCQuality OPC_QUALITY_DEVICE_FAILURE = 0x0000000C; const OPCQuality OPC_QUALITY_SENSOR_FAILURE = 0x00000010; const OPCQuality OPC_QUALITY_LAST_KNOWN = 0x00000014; const OPCQuality OPC_QUALITY_COMM_FAILURE = 0x00000018; const OPCQuality OPC_QUALITY_OUT_OF_SERVICE = 0x0000001C; // STATUS_MASK Values for Quality = UNCERTAIN const OPCQuality OPC_QUALITY_LAST_USABLE = 0x00000044; const OPCQuality OPC_QUALITY_SENSOR_CAL = 0x00000050; const OPCQuality OPC_QUALITY_EGU_EXCEEDED = 0x00000054; const OPCQuality OPC_QUALITY_SUB_NORMAL = 0x00000058; const OPCQuality DAIS_QUALITY_OCILLATORY = 0x0000005C; // STATUS_MASK Values for Quality = GOOD //const OPCQuality OPC_QUALITY_LOCAL_OVERRIDE = 0xD8; //use EXQ_Source_xxx instead of OPC_QUALITY_LOCAL_OVERRIDE // Values for Limit Bitfield const OPCQuality OPC_LIMIT_OK = 0x00000000; const OPCQuality OPC_LIMIT_LOW = 0x00000001; const OPCQuality OPC_LIMIT_HIGH = 0x00000002; const OPCQuality OPC_LIMIT_CONST = 0x00000003; //DAIS Quality extension masks const OPCQuality EXQ_SOURCE_MASK = 0x00000700; const OPCQuality EXQ_TEST_MASK = 0x00000800; const OPCQuality EXQ_OPERATOR_BLOCKED_MASK = 0x00001000; const OPCQuality EXQ_TIMESTAMP_ACCURACY_MASK = 0x00006000; //DAIS Quality source extension const OPCQuality EXQ_SOURCE_NONE = 0x00000000; const OPCQuality EXQ_SOURCE_PROCESS = 0x00000100; const OPCQuality EXQ_SOURCE_PRIMARY_SUBSTITUTED = 0x00000200; const OPCQuality EXQ_SOURCE_INHERITED_SUBSTITUTED = 0x00000300; const OPCQuality EXQ_SOURCE_CORRECTED = 0x00000400; const OPCQuality EXQ_SOURCE_DEFAULTED = 0x00000500; //DAIS Time stamp accuracy const OPCQuality EXQ_TS_ACC_10_MSEC = 0x00000000; const OPCQuality EXQ_TS_ACC_100_MSEC = 0x00002000; const OPCQuality EXQ_TS_ACC_SECOND = 0x00004000; const OPCQuality EXQ_TS_ACC_BAD_TIME = 0x00006000; }; #endif // _DAIS_COMMON_IDL