Previous Table of Contents Next


4.2.6.2 IDL


   //File: DAISGroupEntry.idl #ifndef _DAIS_GROUP_ENTRY_IDL #define _DAIS_GROUP_ENTRY_IDL #pragma prefix "omg.org" #include <DAISCommon.idl>

   module DAIS { module DataAccess { module GroupEntry {

   struct Description

{

ServerItemIdentification

string

ClientItemHandle

SimpleValueType

boolean

};

typedef sequence<Description

struct DetailedDescription

{

server_item_id;
access_path;
client_handle;
requested_data_type;
active;
> Descriptions;
ItemID item;
string pathname;
string access_path;
ServerItemHandle server_handle;

   ClientItemHandle client_handle;SimpleValueType requested_data_type;SimpleValueType canonical_data_type;AccessRights access_rights;boolean active;

   };typedef sequence<DetailedDescription> DetailedDescriptions;

   struct Result

   { ServerItemHandle server_handle; ClientItemHandle client_handle; AccessRights access_rights; SimpleValueType canonical_data_type;

   };typedef sequence<Result> Results;

   struct HandleAssociation

   { ServerItemHandle server_handle; ClientItemHandle client_handle;

   }; typedef sequence<HandleAssociation>HandleAssociations;

   struct DataTypeDescription

   { ServerItemHandle server_handle; SimpleValueType requested_data_type;

   }; typedef sequence<DataTypeDescription>DataTypeDescriptions;

   interface Iterator {

   boolean next_n (in unsigned long n,out DetailedDescriptions entries

   ); void reset(); Iterator clone(); void destroy();

   };

   interface Manager {

   Results create_entries (in Descriptions entries,out ItemErrors errors

   );

   Results validate_entries (

in

out

);

ItemErrors remove_entries (

in

);

ItemErrors set_active_state (

in

);

ItemErrors set_inactive_state (

in

);

ItemErrors set_client_handles (

in

);

ItemErrors set_data_types (

in

);

Descriptions

entries,

ItemErrors errors
ServerItemHandles server_handles
ServerItemHandles server_handles
ServerItemHandles server_handles
HandleAssociations handle_associations
DataTypeDescriptions descriptions

   Iterator create_group_entry_iterator ();};};};};#endif // _DAIS_GROUP_ENTRY_IDL

   Description

   The struct describes a group entry for an item. The client to configure new entries in a group uses it. It directly corresponds to the OPCItemDef struct.

Member Description
server_item_id The identification of the item.
access_path The access path used by the server to connect to the device and sensor. An empty string as input tells the server to select the access path.
client_handle The client provided handle to the item.
requested_data_type The data type requested by the client for the value.
active Tells if the item is active and data from devices is updated in the cache.

   DetailedDescription

   The struct is used to deliver group entry information to the client. In OPC this is made with the struct OPCITEMATTRIBUTES. Description is used for both these OPC structs.

Member Description
item The item identification by an ItemID.
pathname A string concatenating the labels for all nodes in the path from the item up to the root.
access_path The access path used by the server to connect to the device and sensor. An empty string as input tells the server to select the access path.
server_handle Server provided handle for the item.
client_handle Client provided handle for the item.
requested_data_type The data type requested by the client for the value.
canonical_data_type The data type the server uses internally for the value.
access_rights The access rights (read, write, and read-write)
active Tells if the item is active and data from devices is updated in the cache.

   Result

   The struct is used to transfer the result from a create_entries() or validate_entries() call back to a client. In OPC the corresponding struct is OPCITEMRESULT.

Member

Description

server_handle The handle given to the client for the item.
client_handle The supplied client handle for the item.
access_rights The access rights (read, write, and read-write)
canonical_data_type The data type the server uses internally for the value.

   HandleAssociation

   The struct is used to change the association between server handles and client handles in the set_client_handle() method.

Member

Description

server_handle The handle given to the client for the item.
client_handle The new client handle wanted by the client.

   DataTypeDescription

   The struct is used to change the data type of the value delivered in the ItemState struct.

Member

Description

server_handle The handle given to the client for the item.
requested_data_type The new data type wanted by the client.

   Iterator

   Refer to Section 3.1.6, “Iterator Methods IDL,? on page 3-10. The interface directly corresponds to the EnumOPCItemAttributes interface.

   Manager

   An interface for creation and browsing of group entries. The interface directly corresponds to the IOPCItemMgt interface.

   create_entries()

   Adds one or more entries to a group.

Parameter Description
entries Group entry descriptions for entries to be created.
errors A sequence of structs reporting the items that were not entered due to an error. Reported errors are: • ERROR_UNKNOWN_ITEMID • ERROR_UNKNOWN_PATHNAME • ERROR_BAD_TYPE • ERROR_UNKNOWN_ACCESS_PATH
return A sequence of result descriptions for the entries that were entered in the group.

   validate_entries()

   Is used to determine if an item is valid (could it be added without error). Also returns information about the item such as canonical datatype. Does not affect the group in any way.

Parameter Description
entries Group entry descriptions for entries to be validated.
errors A sequence of structs reporting the items that could not be validated due to an error. Reported errors are: • ERROR_UNKNOWN_ITEMID • ERROR_UNKNOWN_PATHNAME • ERROR_BAD_TYPE • ERROR_UNKNOWN_ACCESS_PATH
return A sequence of result descriptions for the entries that were validated.

   remove_entries()

   Used to remove entries from a group.

Parameter Description
server_handles Server handles for entries that shall be removed.
return A sequence of structs reporting the items that were not recognized or could not be removed due to an error. Reported error(s): • ERROR_UNKNOWN_ITEMID

   set_active_state()

   Used to activate individual items in a group. Activate state means that the server acquires data from devices. Inactive state means that the server does not acquire any data. The group enable state control if acquired data shall be sent further to subscribers via on_data_change.

Parameter Description
server_handles Server handles for items to activate.
return A sequence of structs reporting the items that were not recognized or could not be activated due to an error. Reported error(s): • ERROR_UNKNOWN_ITEMID

   set_inactive_state()

   Used to deactivate individual items in a group.

Parameter Description
server_handles Server handles for items to deactivate.
return A sequence of structs reporting the items that were not recognized or could not be deactivated due to an error. Reported error(s): • ERROR_UNKNOWN_ITEMID

   set_client_handles()

   Used to change the client handles for items.

Parameter Description
handle_associations Change descriptions for the items where to change the client handles.
return A sequence of structs reporting the items that were not recognized or could not be updated due to an error. Reported error(s): • ERROR_UNKNOWN_ITEMID

   set_data_types()

   Used to change the requested data types for items.

Parameter Description
descriptions Change descriptions for the items where to change the data types.
return A sequence of structs reporting the items that were not recognized or could not be updated due to an error. Reported errors are: • ERROR_UNKNOWN_ITEMID • ERROR_BAD_TYPE

   create_group_entry_iterator()

   Used to create a group entry iterator. Used by clients to inspect existing group entries.