diff options
author | Anders Broman <anders.broman@ericsson.com> | 2005-06-28 19:13:11 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2005-06-28 19:13:11 +0000 |
commit | b954db9be81e5b0b6cf8df215c35f7f08679e074 (patch) | |
tree | 1fd2d80ce8c1cb53118a6ec650794676aa3763ec /idl | |
parent | 7f2a2391793375a06f430850c7fa61838d7fc8c7 (diff) | |
download | wireshark-b954db9be81e5b0b6cf8df215c35f7f08679e074.tar.gz wireshark-b954db9be81e5b0b6cf8df215c35f7f08679e074.tar.bz2 wireshark-b954db9be81e5b0b6cf8df215c35f7f08679e074.zip |
Add the Tango IDL file from Paolo Frigo.
svn path=/trunk/; revision=14805
Diffstat (limited to 'idl')
-rw-r--r-- | idl/tango.idl | 736 |
1 files changed, 736 insertions, 0 deletions
diff --git a/idl/tango.idl b/idl/tango.idl new file mode 100644 index 0000000000..c7286a70a2 --- /dev/null +++ b/idl/tango.idl @@ -0,0 +1,736 @@ + + +/** + * This is the new TACO interface defined in IDL. New TACO (or TANGO) + * is a total rethink of (old) TACO which was based on remote procedure + * calls. + * 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. + * Generic clients will use the Device interface directly. + * In addition to Device TANGO offers the interfaces Monitor, + * GroupDevice and GroupSignal. + * These interfaces implement TANGO services for monitoring and + * executing grouped accesses to device/signals.<BR><BR> + * Version history: <BR> + * 20/08/98 : 1.1 : First official release<BR> + * 18/08/99 : 2.0 : Separe idl and pseudo-idl<BR> + * 08/09/99 : 2.1 : Remove the applet attribute and the initiliase and serialise operation from the device interface<BR> + * 15/09/99 : 2.2 : Adapted to the ICALEPS show<BR> + * 06/12/99 : 2.3 : Less possible state and add strings in the DevCmdInfo struct<BR> + * 31/01/00 : 2.4 : Update DevVarCharArray to array of octet<BR> + * 10/02/00 : 2.5 : Updated all attribute related stuff<BR> + * 21/03/00 : 2.6 : Change arguments for the write_attributes device operation<BR> + * 15/09/00 : 2.7 : Change arguments for the read_attributes operation. Remove the + * CORBA field of the ErrFacility enumeration. + * Replace the WARMUP state by INIT. + * Change name of the dim_x and dim_y fields of the + * AttributeConfig structure to max_dim_x and max_dim_y<BR> + * 27/09/00 : 2.8 : Change the writable field type of the AttributeConfig structure<BR> + * 26/10/00 : 2.9 : Change the DevError structure fields<BR> + * 12/02/01 : 2.10 : Change in the ErrSeverity enum. Windows does not like enum member like ERROR<BR> + * 14/02/01 : 2.11 : Another change in the ErrSeverity enum. WARNING is now WARN<BR> + * 23/03/01 : 2.12 : Add a new attribute in the Device interface called adm_name<BR> + * 26/10/01 : 3.0 : Add a new Device interface version using inheritance<BR> + * Add a new parameter to command_inout operation<BR> + * Add the command and attribute display level in command and attribute config structure<BR> + * Add a new call to get command or attribute cache history<BR> + * 06/04/02 : 2.0 : Update release number to be coherent with the real Tango software release number<BR> + +@author JM.Chaize,<BR>A.Gotz,<BR>W-D.Klotz,<BR>J.Meyer,<BR>E.Taurel +@version 2.0 +**/ + +module Tango +{ + +//------------------------------------------------------------------------- +// +// Include all types, struct.... definition file +// +//------------------------------------------------------------------------- + + + +//------------------------------------------------------------------------- +// +// Basic types to transport command data +// +//------------------------------------------------------------------------- + +typedef boolean DevBoolean; +typedef double DevDouble; +typedef float DevFloat; +typedef long DevLong; +typedef short DevShort; +typedef string DevString; +typedef octet DevUChar; +typedef unsigned long DevULong; +typedef unsigned short DevUShort; +typedef sequence<float> DevVarFloatArray; +typedef sequence<double> DevVarDoubleArray; +typedef sequence<short> DevVarShortArray; +typedef sequence<long> DevVarLongArray; +typedef sequence<octet> DevVarCharArray; +typedef sequence<string> DevVarStringArray; +typedef sequence<unsigned short> DevVarUShortArray; +typedef sequence<unsigned long> DevVarULongArray; +typedef sequence<boolean> DevVarBooleanArray; + +struct DevVarLongStringArray +{ + DevVarLongArray lvalue; + DevVarStringArray svalue; +}; + +struct DevVarDoubleStringArray +{ + DevVarDoubleArray dvalue; + DevVarStringArray svalue; +}; + + +//------------------------------------------------------------------------- +// +// Some enumerations +// +//------------------------------------------------------------------------- + + +enum AttrQuality +{ + ATTR_VALID, + ATTR_INVALID, + ATTR_ALARM, + ATTR_CHANGING, + ATTR_WARNING +}; + +enum AttrWriteType +{ + READ, + READ_WITH_WRITE, + WRITE, + READ_WRITE +}; + +enum AttrDataFormat +{ + SCALAR, + SPECTRUM, + IMAGE +}; + +enum DevSource +{ + DEV, + CACHE, + CACHE_DEV +}; + +enum ErrSeverity +{ + WARN, + ERR, + PANIC +}; + +enum DevState +{ + ON, + OFF, + CLOSE, + OPEN, + INSERT, + EXTRACT, + MOVING, + STANDBY, + FAULT, + INIT, + RUNNING, + ALARM, + DISABLE, + UNKNOWN +}; + +enum DispLevel +{ + OPERATOR, + EXPERT +}; + + +//------------------------------------------------------------------------- +// +// Some miscellaneous structures definitions +// +//------------------------------------------------------------------------- + +struct TimeVal +{ + long tv_sec; + long tv_usec; + long tv_nsec; +}; + + +//------------------------------------------------------------------------- +// +// For the command query device operation +// +//------------------------------------------------------------------------- + + +struct DevCmdInfo +{ + string cmd_name; + long cmd_tag; + long in_type; + long out_type; + string in_type_desc; + string out_type_desc; +}; + +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 sequence<DevCmdInfo> DevCmdInfoList; +typedef sequence<DevCmdInfo_2> DevCmdInfoList_2; + + +//------------------------------------------------------------------------- +// +// For the DevFailed exceptions +// +//------------------------------------------------------------------------- + +struct DevError +{ + string reason; + ErrSeverity severity; + string desc; + string origin; +}; + +typedef sequence<DevError> DevErrorList; + +struct NamedDevError +{ + string name; + long index_in_call; + DevErrorList err_list; +}; + +typedef sequence<NamedDevError> NamedDevErrorList; + + +exception DevFailed +{ + DevErrorList errors; +}; + +exception MultiDevFailed +{ + NamedDevErrorList errors; +}; + + +//------------------------------------------------------------------------- +// +// For attribute management +// +//------------------------------------------------------------------------- + + +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; +}; + +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 AttributeValue +{ + any value; + AttrQuality quality; + TimeVal time; + string name; + long dim_x; + long dim_y; +}; + +struct AttributeDim +{ + long dim_x; + long dim_y; +}; + +struct AttributeValue_3 +{ + any value; + AttrQuality quality; + TimeVal time; + string name; + AttributeDim r_dim; + AttributeDim w_dim; + DevErrorList err_list; +}; + +struct ChangeEventProp +{ + string rel_change; + string abs_change; + DevVarStringArray extensions; +}; + +struct PeriodicEventProp +{ + string period; + DevVarStringArray extensions; +}; + +struct ArchiveEventProp +{ + string rel_change; + string abs_change; + string period; + DevVarStringArray extensions; +}; + +struct EventProperties +{ + ChangeEventProp ch_event; + PeriodicEventProp per_event; + ArchiveEventProp arch_event; +}; + +struct AttributeAlarm +{ + string min_alarm; + string max_alarm; + string min_warning; + string max_warning; + string delta_t; + string delta_val; + 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; +}; + +typedef sequence<AttributeConfig> AttributeConfigList; +typedef sequence<AttributeConfig_2> AttributeConfigList_2; +typedef sequence<AttributeConfig_3> AttributeConfigList_3; +typedef sequence<AttributeValue> AttributeValueList; +typedef sequence<AttributeValue_3> AttributeValueList_3; + + +//------------------------------------------------------------------------- +// +// For device interface info operation +// +//------------------------------------------------------------------------- + +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; +}; + +//------------------------------------------------------------------------- +// +// For command and attribute history +// +//------------------------------------------------------------------------- + +struct DevCmdHistory +{ + TimeVal time; + boolean cmd_failed; + any value; + DevErrorList errors; +}; + +typedef sequence<DevCmdHistory> DevCmdHistoryList; + +struct DevAttrHistory +{ + boolean attr_failed; + AttributeValue value; + DevErrorList errors; +}; + +struct DevAttrHistory_3 +{ + boolean attr_failed; + AttributeValue_3 value; +}; + +typedef sequence<DevAttrHistory> DevAttrHistoryList; +typedef sequence<DevAttrHistory_3> DevAttrHistoryList_3; + +//------------------------------------------------------------------------- +// +// Include the device interface +// +//------------------------------------------------------------------------- + + + + + +/** + * The fundamental interface for all TANGO objects. + * Each Device is a network object which can be accessed locally or via + * network. + * The network protocol on the wire will be IIOP. + * The Device interface implements all the basic functions needed for doing + * generic synchronous and asynchronous I/O on a device. + * A Device object has data and actions. + * Data are represented in the form of Attributes. + * Actions are represented in the form of Commands. + * The CORBA Device interface offers attributes and methods to access + * the attributes and commands. + * A client will either use these methods directly from C++ or Java or access + * them via a wrapper class. + * The Device interface describes only the remote network interface. + * Implementation features like threads, command security, priority + * etc. are dealt with in server side of the device server model. + **/ + +interface Device +{ + +/** + * name (readonly) - unique ascii identifier + **/ + readonly attribute string name; +/** + * description (readonly) - general description of device + **/ + readonly attribute string description; +/** + * state (readonly) - device state + **/ + readonly attribute DevState state; +/** + * status (readonly) - device state as ascii string + **/ + readonly attribute string status; +/** + * adm_name (readonly) - administrator device unique ascii identifier + **/ + readonly attribute string adm_name; + +/** + * execute a command on a device synchronously with + * one input parameter and one output parameter +@param command ascii string e.g. "On" +@param argin command input parameter e.g. float +@return command result. + **/ + any command_inout(in string command, in any argin) raises(DevFailed); + + +/** + * read the configuration for a variable list of attributes from a device +@param name list of attribute names to read +@return list of attribute configurations read + **/ + AttributeConfigList get_attribute_config(in DevVarStringArray names) raises(DevFailed); + + +/** + * set the configuration for a variable list of attributes from the device +@param new_conf list of attribute configuration to be set +@return nothing + **/ + void set_attribute_config(in AttributeConfigList new_conf) raises(DevFailed); + + +/** + * read a variable list of attributes from a device +@param name list of attribute names to read +@return list of attribute values read + **/ + AttributeValueList read_attributes(in DevVarStringArray names) raises(DevFailed); + + + +/** + * write a variable list of attributes to a device +@param values list of attribute values to write +@return nothing + **/ + void write_attributes(in AttributeValueList values) raises(DevFailed); + +/** + * ping a device to see if it alive + **/ + void ping() raises(DevFailed); + +/** + * read list of last N commands executed by clients +@param number of commands to return +@return list of command and clients + **/ + DevVarStringArray black_box(in long n) raises(DevFailed); + + +/** + * return general information about object e.g. class, type, ... +@return device info + **/ + DevInfo info() raises(DevFailed); + + +/** + * query device to see what commands it supports +@return list of commands and their types + **/ + DevCmdInfoList command_list_query() raises(DevFailed); + + +/** + * query device to see command argument +@return command and its types +@param command name + **/ + DevCmdInfo command_query(in string command) raises(DevFailed); + +}; + +/** + * A new release of the basic Device interface. + * This new release has been introduced mainly to support Tango device server + * internal polling. Inheritance is used between this new release and the + * old one. This release mainly defines a new release of the command_inout and + * read_attributes calls with a new parameter. It also add a new call to read + * command or attributes result history. + **/ + +interface Device_2: Device +{ +/** + * Execute a command on a device synchronously with + * one input parameter and one output parameter +@param command ascii string e.g. "On" +@param argin command input parameter e.g. float +@param source The data source. Used to specify if the command result must be +read from the polling cache buffer or from the device itself +@return command result. + **/ + any command_inout_2(in string command, + in any argin, + in DevSource source) raises(DevFailed); + +/** + * Read a variable list of attributes from a device +@param name list of attribute names to read +@param source The data source. Used to specify if the command result must be +read from the polling cache buffer or from the device itself +@return list of attribute values read + **/ + AttributeValueList read_attributes_2(in DevVarStringArray names, + in DevSource source) raises(DevFailed); + +/** + * Read the configuration for a variable list of attributes from a device. + * Compared to the Device interface, the attribute configuration has one more + * field (The display level) +@param name list of attribute names to read +@return list of attribute configurations read + **/ + AttributeConfigList_2 get_attribute_config_2(in DevVarStringArray names) raises(DevFailed); + +/** + * Query device to see what commands it supports. + * Compared to the Device interface, the command configuration has one more + * field (The display level) +@return list of commands and their types + **/ + DevCmdInfoList_2 command_list_query_2() raises(DevFailed); + +/** + * Query device to see command argument. + * Compared to the Device interface, the command configuration has one more + * field (The display level) +@return command and its types +@param command name + **/ + DevCmdInfo_2 command_query_2(in string command) raises(DevFailed); + +/** + * Get command history buffer. + * Return command result history for polled command +@param command ascii string e.g. "On" +@param n The history depth +@return command history. + **/ + DevCmdHistoryList command_inout_history_2(in string command, + in long n) raises (DevFailed); + +/** + * Get attribute value history buffer. + * Return attribute value history for polled attribute +@param name ascii string +@param n The history depth +@return attribute value history. + **/ + DevAttrHistoryList read_attribute_history_2(in string name, + in long n) raises (DevFailed); +}; + + +interface Device_3: Device_2 +{ + +/** + * Read a variable list of attributes from a device +@param name list of attribute names to read +@param source The data source. Used to specify if the command result must be +read from the polling cache buffer or from the device itself +@return list of attribute values read + **/ + AttributeValueList_3 read_attributes_3(in DevVarStringArray names, + in DevSource source) raises(DevFailed); + +/** + * write a variable list of attributes to a device +@param values list of attribute values to write +@return nothing + **/ + void write_attributes_3(in AttributeValueList values) raises(DevFailed,MultiDevFailed); +/** + * Get attribute value history buffer. + * Return attribute value history for polled attribute +@param name ascii string +@param n The history depth +@return attribute value history. + **/ + DevAttrHistoryList_3 read_attribute_history_3(in string name, + in long n) raises (DevFailed); + +/** + * return general information about object e.g. class, type, ... +@return device info + **/ + DevInfo_3 info_3() raises(DevFailed); + +/** + * Read the configuration for a variable list of attributes from a device. + * Compared to the Device interface, the attribute configuration has one more + * field (The display level) +@param name list of attribute names to read +@return list of attribute configurations read + **/ + AttributeConfigList_3 get_attribute_config_3(in DevVarStringArray names) raises(DevFailed); + +/** + * set the configuration for a variable list of attributes from the device +@param new_conf list of attribute configuration to be set +@return nothing + **/ + void set_attribute_config_3(in AttributeConfigList_3 new_conf) raises(DevFailed); +}; + +}; /* module tango */ |