Previous Table of Contents Next


4.2.4.2 IDL


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

   module DAIS { module DataAccess { module Item {

   struct Description

   {

   ItemID id;

   string label;

   SimpleValue value; //includes the canonical_data_type

   Quality dais_quality;

   DateTime time_stamp;

   AccessRights access_rights;

   unsigned long scan_rate; }; typedef sequence< Description >Descriptions;

   interface Iterator {

   boolean next_n (

in unsigned long n,
out Descriptions items
);

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

   };

   interface IHome

   { exception UnknownResourceID {string reason;}; exception UnknownItemID {string reason;}; exception InvalidFilter {string reason;}; exception InvalidValueType {string reason;}; exception UnkownTypeID {string reason;}; exception InvalidAccessRight {string reason;};

   Description find ( in ItemID item ) raises (UnknownItemID);

   Descriptions find_each( in ItemIDs items ) raises (UnknownItemID);

   Iterator find_by_parent ( in ResourceID node, in string filter_criteria, in SimpleValueType data_type_filter, in AccessRights access_rights_filter

   ) raises (UnknownResourceID,

InvalidFilter,

InvalidValueType,

InvalidAccessRight);

Iterator find_by_type (

in ResourceID

in ResourceIDs

in string

in SimpleValueType

in AccessRights

) raises (UnknownResourceID,

InvalidFilter,

InvalidValueType,

UnkownTypeID,

InvalidAccessRight);

Strings get_pathnames (

in ItemIDs

);

ItemIDs get_ids (

in Strings

);

Strings get_access_paths (

in ItemID

) raises (UnknownItemID);

};};};};

#endif // _DAIS_ITEM_IDL

Description

A struct describing an item.

node,
type_filter,
filter_criteria,
data_type_filter,
access_rights_filter
items
pathnames
item

Member Description
id The identification of this item.
label The label (single level designation) of the item.
value The current value sample for the item. The SimpleValue also contains the data type.
dais_quality The current quality of the value.
time_stamp The time stamp for the value sample.
access_rights States if the value is read, write, or both read and write.
scan_rate States the highest update rate that can be expected.

   Iterator

   Refer to Section 4.1.5, “Utility SCADA/EMS Measurement Model,? on page 4-5. This interface corresponds to the OPC interface EnumString with the difference that the Iterator return the Description struct instead of a single string.

   IHome

   An object used for browsing items and corresponds to the IOPCBrowseServerAddressSpace.

   UnknownResourceID

   An exception telling that the ResourceID is unknown. The likely reason behind this exception is some misunderstanding between the server and client code due to a programming error.

   UnknownItemID

   An exception stating that the resource or property in the ItemID is unknown. For methods taking a sequence of item ids the first found unknown id is reported. The likely reason behind this exception is some misunderstanding between the server and client code due to a programming error.

   InvalidFilter

   An exception stating the filter_criteria string is not correct. The likely reason behind this exception is an erroneously entered string.

   InvalidValueType

   An exception stating that the SimpleValueType does not exist.

   UnknownTypeID

   An exception stating one or more TypeIDs does not exist.

   InvalidAccessRight

   An exception stating that the access rights do not exist.

   find()

   For a given item browse position, return information about that item.

Parameter

Description

item An item identification.
return The item description.

   find_each ()

   For a sequence of items, return information about each item.

Parameter

Description

items A sequence of item identifications.
return An iterator holding the item descriptions.

   find_by_parent ()

   For a given node identification, return child items to that node. Hence to reach all items using this method repeated calls must be made for each node level. This corresponds to the OPC method BrowseOPCItemIDs with the parameter dwBrowseFilterType set to OPC_LEAF.

Parameter Description
node The parent node identification.
filter_criteria A server specific filter string. This is entirely free format and may be entered by the user via a text field. An empty string indicates no filtering. The filter selects only items with pathnames matching the filter criteria. For a description of the filter refer to Section 3.1.11, “Filter Definitions,? on page 3-25.
data_type_filter Select items having the specified canonical data type.
access_rights_filter Select items having the specified access rights.
return An iterator holding item descriptions for items • that are child to the parent node. • matching the filter_criteria, data_type_filter, and access_rights_filter.

   find_by_type()

   For a sub-tree given by the node parameter, return all child items matching the filter criteria. This will return all items under the given sub-tree root node. This will make the items in the sub-tree to appear flattened out. This corresponds to the OPC method BrowseOPCItemIDs with the parameter dwBrowseFilterType set to OPC_FLAT.

Parameter Description
node The identification for the node defining the sub-tree.
type_filter Select nodes in the sub-tree having a type matching any of the types listed in the type_filter.

filter_criteria

data_type_filter

access_rights_filter

return

A server specific filter string. This is entirely free format and may be entered by the user via a text field. An empty string indicates no filtering. The filter selects only items with pathnames matching the filter criteria. For a description of the filter refer to Section 3.1.11, “Filter Definitions,? on page 3-25.
Select items having the specified canonical data type.
Select items having the specified access rights.
An iterator holding item descriptions for items • that are child to nodes in the sub-tree and nodes having a type matching the type_filter. • matching the filter_criteria, data_type_filter, and access_rights_filter.

   get_pathnames()

   Translate a sequence of item identifications to the corresponding sequence of pathnames. If an item fails to translate to a pathname (due to an unknown identification), the corresponding pathname is an empty string.

Parameter

Description

items The sequence of items.
return The corresponding sequence of pathnames.

   get_ids()

   Translate a sequence of pathnames to the corresponding sequence of item identifications. If a pathname fails to translate to an item identification (due to an unrecognized pathname) the corresponding item identification is NULL.

   get_access_paths()

   Get the possible communication paths how data can be retrieved for the node. An access path is expected to be human readable so that a human can pick one and feed it back to the server as the preferred path (via other interfaces).

Parameter

Description

item An item identification.
return A sequence of possible access paths for the item.

   Browsing Items


   Figure 4-10 Browsing items interaction

   Navigate across associations

   find_by_parent( )


   Figure 4-11 Navigating across associations interaction