Previous | Table of Contents | Next |
//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 ResourceIDin ResourceIDsin stringin SimpleValueTypein 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_IDLDescriptionA 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_criteriadata_type_filteraccess_rights_filterreturn |
|||||
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