module Tango
This is the TANGO interface defined in IDL. TANGO is an extension of old TACO. The fundamental idea of a device as a network object which has methods and data has been retained. However in TANGO objects will be real C++/Java objects which can be instantiated and accessed via their methods and data by the client as if they were local objects. Certain aspects of the old DSAPI application programmer's interface have been suppressed in order to simplify the client (e.g. import, free, data collector api). Features which have been considered missing in old TACO have been added e.g. signals, events and groups. Asynchronism and groups have been foreseen right from the beginning this time. This interface is defined in CORBA IDL. The fundamental interface is Device. All TANGO control objects will be of this type i.e. they will implement and offer the Device interface. New classes of control objects e.g. PowerSupply, will be created by wrapping the Device class appropriately. The wrapper class will hide the calls to the Device interface from the client so that the client will only see the wrapper class. All CORBA details will be hidden from the client as far as possible.
struct ArchiveEventProp { string rel_change; string abs_change; string period; DevVarStringArray extensions; };
struct AttDataReady {
string name;
long data_type;
long ctr;
};
enum AttrDataFormat { SCALAR, SPECTRUM, IMAGE, FMT_UNKNOWN };
enum AttrQuality { ATTR_VALID, ATTR_INVALID, ATTR_ALARM, ATTR_CHANGING, ATTR_WARNING };
typedef sequence<AttrQuality> AttrQualityList;
union AttrValUnion switch(AttributeDataType) { case ATT_BOOL: DevVarBooleanArray bool_att_value; case ATT_SHORT: DevVarShortArray short_att_value; case ATT_LONG: DevVarLongArray long_att_value; case ATT_LONG64: DevVarLong64Array long64_att_value; case ATT_FLOAT: DevVarFloatArray float_att_value; case ATT_DOUBLE: DevVarDoubleArray double_att_value; case ATT_UCHAR: DevVarCharArray uchar_att_value; case ATT_USHORT: DevVarUShortArray ushort_att_value; case ATT_ULONG: DevVarULongArray ulong_att_value; case ATT_ULONG64: DevVarULong64Array ulong64_att_value; case ATT_STRING: DevVarStringArray string_att_value; case ATT_STATE: DevVarStateArray state_att_value; case DEVICE_STATE: DevState dev_state_att; case ATT_ENCODED: DevVarEncodedArray encoded_att_value; case NO_DATA: DevBoolean union_no_data; };
enum AttrWriteType { READ, READ_WITH_WRITE, WRITE, READ_WRITE };
struct AttributeAlarm { string min_alarm; string max_alarm; string min_warning; string max_warning; string delta_t; string delta_val; DevVarStringArray extensions; };
struct AttributeConfig { string name; AttrWriteType writable; AttrDataFormat data_format; long data_type; long max_dim_x; long max_dim_y; string description; string label; string unit; string standard_unit; string display_unit; string format; string min_value; string max_value; string min_alarm; string max_alarm; string writable_attr_name; DevVarStringArray extensions; };
typedef sequence<AttributeConfig> AttributeConfigList;
typedef sequence<AttributeConfig_2> AttributeConfigList_2;
typedef sequence<AttributeConfig_3> AttributeConfigList_3;
struct AttributeConfig_2 { string name; AttrWriteType writable; AttrDataFormat data_format; long data_type; long max_dim_x; long max_dim_y; string description; string label; string unit; string standard_unit; string display_unit; string format; string min_value; string max_value; string min_alarm; string max_alarm; string writable_attr_name; DispLevel level; DevVarStringArray extensions; };
struct AttributeConfig_3 { string name; AttrWriteType writable; AttrDataFormat data_format; long data_type; long max_dim_x; long max_dim_y; string description; string label; string unit; string standard_unit; string display_unit; string format; string min_value; string max_value; string writable_attr_name; DispLevel level; AttributeAlarm att_alarm; EventProperties event_prop; DevVarStringArray extensions; DevVarStringArray sys_extensions; };
enum AttributeDataType { ATT_BOOL, ATT_SHORT, ATT_LONG, ATT_LONG64, ATT_FLOAT, ATT_DOUBLE, ATT_UCHAR, ATT_USHORT, ATT_ULONG, ATT_ULONG64, ATT_STRING, ATT_STATE, DEVICE_STATE, ATT_ENCODED, NO_DATA };
struct AttributeDim {
long dim_x;
long dim_y;
};
typedef sequence<AttributeDim> AttributeDimList;
struct AttributeValue { any value; AttrQuality quality; TimeVal time; string name; long dim_x; long dim_y; };
typedef sequence<AttributeValue> AttributeValueList;
typedef sequence<AttributeValue_3> AttributeValueList_3;
typedef sequence<AttributeValue_4> AttributeValueList_4;
struct AttributeValue_3 { any value; AttrQuality quality; TimeVal time; string name; AttributeDim r_dim; AttributeDim w_dim; DevErrorList err_list; };
struct AttributeValue_4 { AttrValUnion value; AttrQuality quality; AttrDataFormat data_format; TimeVal time; string name; AttributeDim r_dim; AttributeDim w_dim; DevErrorList err_list; };
struct ChangeEventProp { string rel_change; string abs_change; DevVarStringArray extensions; };
union ClntIdent switch(LockerLanguage) { case CPP: CppClntIdent cpp_clnt; case JAVA: JavaClntIdent java_clnt; };
typedef unsigned long CppClntIdent;
struct DevAttrHistory { boolean attr_failed; AttributeValue value; DevErrorList errors; };
typedef sequence<DevAttrHistory> DevAttrHistoryList;
typedef sequence<DevAttrHistory_3> DevAttrHistoryList_3;
struct DevAttrHistory_3 { boolean attr_failed; AttributeValue_3 value; };
struct DevAttrHistory_4 { string name; TimeValList dates; any value; AttrQualityList quals; EltInArrayList quals_array; AttributeDimList r_dims; EltInArrayList r_dims_array; AttributeDimList w_dims; EltInArrayList w_dims_array; DevErrorListList errors; EltInArrayList errors_array; };
typedef boolean DevBoolean;
struct DevCmdHistory { TimeVal time; boolean cmd_failed; any value; DevErrorList errors; };
typedef sequence<DevCmdHistory> DevCmdHistoryList;
struct DevCmdHistory_4 { TimeValList dates; any value; AttributeDimList dims; EltInArrayList dims_array; DevErrorListList errors; EltInArrayList errors_array; long cmd_type; };
struct DevCmdInfo {
string cmd_name;
long cmd_tag;
long in_type;
long out_type;
string in_type_desc;
string out_type_desc;
};
typedef sequence<DevCmdInfo> DevCmdInfoList;
typedef sequence<DevCmdInfo_2> DevCmdInfoList_2;
struct DevCmdInfo_2 { string cmd_name; DispLevel level; long cmd_tag; long in_type; long out_type; string in_type_desc; string out_type_desc; };
typedef double DevDouble;
struct DevEncoded { DevString encoded_format; DevVarCharArray encoded_data; };
struct DevError { string reason; ErrSeverity severity; string desc; string origin; };
typedef sequence<DevError> DevErrorList;
typedef sequence<DevErrorList> DevErrorListList;
typedef float DevFloat;
struct DevInfo {
string dev_class;
string server_id;
string server_host;
long server_version;
string doc_url;
};
struct DevInfo_3 {
string dev_class;
string server_id;
string server_host;
long server_version;
string doc_url;
string dev_type;
};
typedef long DevLong;
typedef long long DevLong64;
typedef short DevShort;
enum DevSource { DEV, CACHE, CACHE_DEV };
enum DevState { ON, OFF, CLOSE, OPEN, INSERT, EXTRACT, MOVING, STANDBY, FAULT, INIT, RUNNING, ALARM, DISABLE, UNKNOWN };
typedef string DevString;
typedef octet DevUChar;
typedef unsigned long DevULong;
typedef unsigned long long DevULong64;
typedef unsigned short DevUShort;
typedef sequence<boolean> DevVarBooleanArray;
typedef sequence<octet> DevVarCharArray;
typedef sequence<double> DevVarDoubleArray;
struct DevVarDoubleStringArray { DevVarDoubleArray dvalue; DevVarStringArray svalue; };
typedef sequence<DevEncoded> DevVarEncodedArray;
typedef sequence<float> DevVarFloatArray;
typedef sequence<long long> DevVarLong64Array;
typedef sequence<long> DevVarLongArray;
struct DevVarLongStringArray { DevVarLongArray lvalue; DevVarStringArray svalue; };
typedef sequence<short> DevVarShortArray;
typedef sequence<DevState> DevVarStateArray;
typedef sequence<string> DevVarStringArray;
typedef sequence<unsigned long long> DevVarULong64Array;
typedef sequence<unsigned long> DevVarULongArray;
typedef sequence<unsigned short> DevVarUShortArray;
enum DispLevel { OPERATOR, EXPERT };
struct EltInArray {
long start;
long nb_elt;
};
typedef sequence<EltInArray> EltInArrayList;
enum ErrSeverity { WARN, ERR, PANIC };
struct EventProperties { ChangeEventProp ch_event; PeriodicEventProp per_event; ArchiveEventProp arch_event; };
struct JavaClntIdent { string MainClass; JavaUUID uuid; };
typedef unsigned long long JavaUUID[2];
enum LockerLanguage { CPP, JAVA };
struct NamedDevError { string name; long index_in_call; DevErrorList err_list; };
typedef sequence<NamedDevError> NamedDevErrorList;
struct PeriodicEventProp { string period; DevVarStringArray extensions; };
struct TimeVal {
long tv_sec;
long tv_usec;
long tv_nsec;
};
typedef sequence<TimeVal> TimeValList;
exception DevFailed { DevErrorList errors; };
exception MultiDevFailed { NamedDevErrorList errors; };