#include "dds-opcua_builtin_types.idl" module OMG { module DDSOPCUA { module OPCUA2DDS { /******************************************************************** * Standard DataTypes and NodeClasses * [OPCUA-03], Sections 5 and 8 ********************************************************************/ // [OPCUA-03], Section 8.30 enum NodeClass { @value(1) OBJECT_NODE_CLASS, @value(2) VARIABLE_NODE_CLASS, @value(4) METHOD_NODE_CLASS, @value(8) OBJECT_TYPE_NODE_CLASS, @value(16) VARIABLE_TYPE_NODE_CLASS, @value(32) REFERENCE_TYPE_NODE_CLASS, @value(64) DATA_TYPE_NODE_CLASS, @value(128) VIEW_NODE_CLASS }; // [OPCUA-03], Section 5.2.1 @nested struct BaseNodeClass { // Attributes NodeId node_id; NodeClass node_class; QualifiedName browse_name; LocalizedText display_name; @optional LocalizedText description; @optional uint32 write_mask; @optional uint32 user_write_mask; // No References specified for the BaseNodeClass }; // [OPCUA-03], Section 8.40 @nested struct EnumValueType { int64 value; LocalizedText display_name; LocalizedText description; }; // [OPCUA-03], Section 5.8.3 @nested struct DataType : BaseNodeClass { // Attributes boolean is_abstract; // References sequence has_property; sequence has_subtype; sequence has_encoding; // Standard Properties @optional string node_version; @optional sequence enum_strings; @optional sequence enum_values; @optional sequence option_set_values; }; // [OPCUA-03], Section 8.7 typedef DataType BaseDataType; // [OPCUA-03], Section 8.13 typedef double Duration; // [OPCUA-03], Section 8.38 typedef DateTime UtcTime; /******************************************************************** * Common Parameter Type Definitions * [OPCUA-04], Section 7 ********************************************************************/ // [OPCUA-04], Section 7.6 typedef ByteString ContinuationPoint; // [OPCUA-04], Section 7.13 typedef uint32 Index; // [OPCUA-04], Section 7.14 typedef uint32 IntegerId; // [OPCUA-04], Section 7.5 typedef uint32 Counter; // [OPCUA-04], Section 7.22 typedef string NumericRange; // [OPCUA-04], Section 7.38 @nested struct ViewDescription { NodeId view_id; UtcTime timestamp; uint32 view_version; }; // [OPCUA-04], Section 7.26 @nested struct RelativePathElement { NodeId reference_type_id; boolean is_inverse; boolean include_subtypes; QualifiedName target_name; }; // [OPCUA-04], Section 7.26 @nested struct RelativePath { sequence elements; }; // [OPCUA-04], Section 7.25 @nested struct ReferenceDescription { NodeId reference_type_id; boolean is_forward; ExpandedNodeId node_id; QualifiedName browse_name; LocalizedText display_name; NodeClass node_class; ExpandedNodeId type_definition; }; // [OPCUA-04], Section 7.3 @nested struct BrowseResult { StatusCode status_code; ContinuationPoint continuation_point; sequence references; }; // [OPCUA-04], Section 7.29 @nested @appendable struct ResponseHeader { UtcTime timestamp; IntegerId request_handle; StatusCode service_result; DiagnosticInfo service_diagnostics; sequence string_table; }; // [OPCUA-04], Section 7.12 @nested struct ExtensibleParameter { NodeId parameter_type_id; }; // [OPCUA-04], Section 7.4.3 enum FilterOperator { @value(0) EQUALS_FILTER_OPERATOR, @value(1) IS_NULL_FILTER_OPERATOR, @value(2) GREATER_THAN_FILTER_OPERATOR, @value(3) LESS_THAN_FILTER_OPERATOR, @value(4) GREATER_THAN_OR_EQUAL_FILTER_OPERATOR, @value(5) LESS_THAN_OR_EQUAL_FILTER_OPERATOR, @value(6) LIKE_FILTER_OPERATOR, @value(7) NOT_FILTER_OPERATOR, @value(8) BETWEEN_FILTER_OPERATOR, @value(9) IN_LIST_FILTER_OPERATOR, @value(10) AND_FILTER_OPERATOR, @value(11) OR_FILTER_OPERATOR, @value(12) CAST_FILTER_OPERATOR, @value(13) IN_VIEW_FILTER_OPERATOR, @value(14) OF_TYPE_FILTER_OPERATOR, @value(15) RELATED_TO_FILTER_OPERATOR, @value(16) BITWISE_AND_FILTER_OPERATOR, @value(17) BITWISE_OR_FILTER_OPERATOR }; // [OPCUA-04], Section 7.4.1.1 enum FilterOperandKind { ELEMENT_FILTER_OPERAND_KIND, LITERAL_FILTER_OPERAND_KIND, ATTRIBUTE_FILTER_OPERAND_KIND, SIMPLE_ATTRIBUTE_FILTER_OPERAND_KIND }; // [OPCUA-04], Section 7.4.4.2 @nested struct ElementOperand { uint32 index; }; // [OPCUA-04], Section 7.4.4.3 @nested struct LiteralOperand { BaseDataType value; }; // [OPCUA-04], Section 7.4.4.4 @nested struct AttributeOperand { NodeId node_id; string operand_alias; RelativePath browse_path; IntegerId attribute_id; NumericRange index_range; }; // [OPCUA-04], Section 7.4.4.5 @nested struct SimpleAttributeOperand { NodeId type_id; sequence browse_path; IntegerId attribute_id; NumericRange index_range; }; // [OPCUA-04], Section 7.4.4.1 @nested union FilterOperand switch (FilterOperandKind) { case ELEMENT_FILTER_OPERAND_KIND: ElementOperand element_operand; case LITERAL_FILTER_OPERAND_KIND: LiteralOperand literal_operand; case ATTRIBUTE_FILTER_OPERAND_KIND: AttributeOperand attribute_operand; case SIMPLE_ATTRIBUTE_FILTER_OPERAND_KIND: SimpleAttributeOperand simple_attribute_operand; }; // [OPCUA-04], Section 7.4.4.1 struct ExtensibleParameterFilterOperand : ExtensibleParameter { FilterOperand parameter_data; }; // [OPCUA-04], Section 7.4.1 @nested struct ContentFilterElement { FilterOperator filter_operator; sequence filter_operands; }; // [OPCUA-04], Section 7.4.2 @nested struct ContentFilterElementResult { StatusCode status_code; sequence operand_status_codes; sequence operand_diagnostic_infos; }; // [OPCUA-04], Section 7.4.1 @nested struct ContentFilter { sequence content_filter_element; }; // [OPCUA-04], Section 7.4.2 @nested struct ContentFilterResult { sequence element_results; sequence element_diagnostic_infos; }; // [OPCUA-04], Section 7.23 @nested struct QueryDataSet { ExpandedNodeId node_id; ExpandedNodeId type_definition_node; sequence values; }; // [OPCUA-04], Section 7.35 enum TimestampsToReturn { @value(0) SOURCE_TIMESTAMPS_TO_RETURN, @value(1) SERVER_TIMESTAMPS_TO_RETURN, @value(2) BOTH_TIMESTAMPS_TO_RETURN, @value(3) NEITHER_TIMESTAMPS_TO_RETURN }; // [OPCUA-04], Section 7.24 @nested struct ReadValueId { NodeId node_id; IntegerId attribute_id; NumericRange index_range; QualifiedName data_encoding; }; // [OPCUA-04], Section 7.20.1 enum NotificationKind { DATA_CHANGE_NOTIFICATION_KIND, EVENT_NOTIFICATION_KIND, STATUS_CHANGE_NOTIFICATION_KIND }; // [OPCUA-04], Section 7.20.2 @nested struct MonitoredItemNotification { IntegerId client_handle; DataValue value; }; // [OPCUA-04], Section 7.20.2 @nested struct DataChangeNotification { sequence monitored_items; sequence diagnostic_infos; }; // [OPCUA-04], Section 7.20.3 @nested struct EventFieldList { IntegerId client_handle; sequence event_fields; }; // [OPCUA-04], Section 7.20.3 @nested struct EventNotificationList { sequence events; }; // [OPCUA-04], Section 7.20.4 struct StatusChangeNotification { StatusCode status; DiagnosticInfo diagnostic_info; }; // [OPCUA-04], Section 7.20.1 @nested union NotificationData switch(NotificationKind) { case DATA_CHANGE_NOTIFICATION_KIND: DataChangeNotification data_change_notification; case EVENT_NOTIFICATION_KIND: EventNotificationList event_notification_list; case STATUS_CHANGE_NOTIFICATION_KIND: StatusChangeNotification status_change_notication; }; // [OPCUA-04], Section 7.20 @nested struct ExtensibleParameterNotificationData : ExtensibleParameter { NotificationData parameter_data; }; // [OPCUA-04], Section 7.21 @nested struct NotificationMessage { Counter sequence_number; UtcTime publish_time; sequence notification_data; }; // [OPCUA-04], Section 7.17.1 enum MonitoringFilterKind { DATA_CHANGE_MONITORING_FILTER_KIND, EVENT_MONITORING_FILTER_KIND, AGGREGATE_MONITORING_FILTER_KIND }; // [OPCUA-04], Section 7.17.2 enum DataChangeTrigger { @value(0) STATUS_DATA_CHANGE_TRIGGER, @value(1) STATUS_VALUE_DATA_CHANGE_TRIGGER, @value(2) STATUS_VALUE_TIMESTAMP_DATA_CHANGE_TRIGGER }; // [OPCUA-04], Section 7.17.2 @nested struct DataChangeFilter { DataChangeTrigger trigger; uint32 deadband_type; double deadband_value; }; // [OPCUA-04], Section 7.17.3 @nested struct EventFilter { sequence select_clauses; ContentFilter where_clause; }; // [OPCUA-04], Section 7.17.4 @nested struct AggregateConfiguration { boolean use_server_capabilities_defaults; boolean treat_uncertain_as_bad; octet percent_data_bad; octet percent_data_good; boolean use_sloped_extrapolation; }; // [OPCUA-04], Section 7.17.4 @nested struct AggregateFilter { UtcTime start_time; NodeId aggregate_type; Duration processing_interval; AggregateConfiguration aggregate_configuration; }; // [OPCUA-04], Section 7.17.1 @nested union MonitoringFilter switch (MonitoringFilterKind) { case DATA_CHANGE_MONITORING_FILTER_KIND: DataChangeFilter data_change_filter; case EVENT_MONITORING_FILTER_KIND: EventFilter event_filter; case AGGREGATE_MONITORING_FILTER_KIND: AggregateFilter aggregate_filter_result; }; // [OPCUA-04], Section 7.17 @nested struct ExtensibleParameterMonitoringFilter : ExtensibleParameter { MonitoringFilter parameter_data; }; // [OPCUA-04], Section 7.17.3 @nested struct EventFilterResult { sequence select_clause_results; sequence select_clause_diagnostic_infos; ContentFilterResult where_clause_result; }; // [OPCUA-04], Section 7.17.4 @nested struct AggregateFilterResult { UtcTime revised_start_time; Duration revised_processing_interval; }; // [OPCUA-04], Section 7.17.1 @nested union MonitoringFilterResult switch (MonitoringFilterKind) { // DataChangeFilter does not have an associated result structure. case EVENT_MONITORING_FILTER_KIND: EventFilterResult event_filter_result; case AGGREGATE_MONITORING_FILTER_KIND: AggregateFilterResult aggregate_filter_result; }; // [OPCUA-04], Section 7.17 @nested struct ExtensibleParameterMonitoringFilterResult : ExtensibleParameter { MonitoringFilterResult parameter_data; }; // [OPCUA-04], Section 7.18 enum MonitoringMode { @value(0) DISABLED_MONITORING_MODE, @value(1) SAMPLING_MONITORING_MODE, @value(2) REPORTING_MONITORING_MODE }; // [OPC UA 4], Section 7.16 @nested struct MonitoringParameters { IntegerId client_handle; Duration sampling_interval; ExtensibleParameterMonitoringFilter filter; Counter queue_size; boolean discard_oldest; }; /******************************************************************** * View Service Set * [OPCUA-04], Section 5.8 ********************************************************************/ module VIEW { /* * Type definitions */ // [OPCUA-04], Section 5.8.4.2 @nested struct BrowsePath { NodeId starting_node; RelativePath relative_path; }; // [OPCUA-04], Section 5.8.4.2 @nested struct BrowsePathTarget { ExpandedNodeId target_id; Index remaining_path_index; }; // [OPCUA-04], Section 5.8.4.2 @nested struct BrowsePathResult { StatusCode status_code; sequence targets; }; // [OPCUA-04], Section 5.8.2.2 enum BrowseDirection { @value(0) FORWARD_BROWSE_DIRECTION, @value(1) REVERSE_BROWSE_DIRECTION, @value(3) BOTH_BROWSE_DIRECTION }; // [OPCUA-04], Section 5.8.2.2 @nested struct BrowseDescription { NodeId node_id; BrowseDirection browse_direction; NodeId reference_type_id; boolean include_subtypes; uint32 node_class_mask; uint32 result_mask; }; /* * Service Set */ #ifdef OMG_IDL_DDS_SERVICE_SUPPORT @DDSService interface View { // [OPCUA-04], Section 5.8.2 ResponseHeader browse( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in ViewDescription view_description, in Counter requested_max_references_per_node, in sequence nodes_to_browse); // [OPCUA-04], Section 5.8.3 ResponseHeader browse_next( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in boolean relase_continuation_points, in sequence continution_points); // [OPCUA-04], Section 5.8.4 ResponseHeader translate_browse_paths_to_node_ids( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in sequence browse_paths); // [OPCUA-04], Section 5.8.5 ResponseHeader register_nodes( string server_id, // Identifies OPC UA server out sequence registered_node_ids, in sequence nodes_to_register); // [OPCUA-04], Section 5.8.6 ResponseHeader unregister_nodes( string server_id, // Identifies OPC UA server in sequence nodes_to_unregister) }; #endif }; // OMG::DDSOPCUA::OPCUA2DDS::VIEW /******************************************************************** * Query Service Set * [OPCUA-04], Section 5.9 ********************************************************************/ module QUERY { /* * Type definitions */ // [OPCUA-04], Section 5.9.3.1 @nested struct ParsingResult { StatusCode status_code; sequence data_status_codes; sequence data_diagnostic_infos; }; // [OPCUA-04], Section 5.9.3.1 @nested struct QueryDataDescription { RelativePath relative_path; IntegerId attribute_id; NumericRange index_range; }; // [OPCUA-04], Section 5.9.3.1 @nested struct NodeTypeDescription { ExpandedNodeId type_definition_node; boolean include_subtypes; sequence data_to_return; }; /* * Service Set */ #ifdef OMG_IDL_DDS_SERVICE_SUPPORT @DDSService interface Query { // [OPCUA-04], Section 5.9.3 ResponseHeader query_first( string server_id, // Identifies OPC UA server out sequence query_data_sets, out ContinuationPoint continuation_point, out sequence parsing_results, out sequence diagnostic_infos, out ContentFilterResult filter_result, in ViewDescription view, in sequence node_types, in ContentFilter filter, in Counter max_datasets_to_return, in Counter max_references_to_return); // [OPCUA-04], Section 5.9.4 ResponseHeader query_next( string server_id, // Identifies OPC UA server out sequence query_data_sets, out ContinuationPoint revised_continuation_point, in boolean release_continuation_point, in ContinuationPoint continuation_point); }; #endif }; // OMG::DDSOPCUA::OPCUA2DDS::QUERY /***************************************************** * Attribute Service Set * [OPCUA-04], Section 5.10 *****************************************************/ module ATTRIBUTE { /* * Type definitions */ // [OPCUA-11], 6.5.4 @nested struct HistoryEventFieldList { sequence event_fields; }; // [OPCUA-11], Section 6.5.4 struct HistoryEvent { sequence events; }; // [OPCUA-11], Section 6.5.2 @nested struct HistoryData { sequence data_values; }; // [OPCUA-11], Section 6.5.2 @nested struct ExtensibleParameterHistoryData : ExtensibleParameter { HistoryData parameter_data; }; // [OPCUA-04], Section 5.10.3.2 @nested struct HistoryReadResult { StatusCode status_code; ContinuationPoint continuation_point; ExtensibleParameterHistoryData history_data; }; // [OPCUA-04], Section 5.10.3.2 @nested struct HistoryReadValueId { NodeId node_id; NumericRange index_range; QualifiedName data_encoding; ContinuationPoint continuation_point; }; // [OPCUA-04], Section 5.10.4.2 @nested struct WriteValue { NodeId node_id; IntegerId attribute_id; NumericRange index_range; DataValue value; }; // [OPCUA-04], Section 5.10.5.2 @nested struct HistoryUpdateResult { StatusCode status_code; sequence operation_results; sequence diagnostic_infos; }; // [OPCUA-11], Section 6.6 enum HistoryUpdateType { @value(1) INSERT_HISTORY_UPDATE_TYPE, @value(2) REPLACE_HISTORY_UPDATE_TYPE, @value(3) UPDATE_HISTORY_UPDATE_TYPE, @value(4) DELETE_HISTORY_UPDATE_TYPE }; // [OPCUA-11], Section 6.6 @nested struct ExtensibleParameterHistoryUpdate : ExtensibleParameter { HistoryUpdateType parameter_data; }; // [OPCUA-11], Section 6.4 enum HistoryReadDetailsKind { READ_EVENT_HISTORY_READ_DETAILS_KIND, READ_RAW_MODIFIED_HISTORY_READ_DETAILS_KIND, READ_PROCESSED_HISTORY_READ_DETAILS_KIND, READ_AT_TIME_HISTORY_READ_DETAILS_KIND }; // [OPCUA-11], Section 6.4.2.1 @nested struct ReadEventDetails { Counter num_values_per_node; UtcTime start_time; UtcTime end_time; EventFilter filter; }; // [OPCUA-11], Section 6.4.3.1 @nested struct ReadRawModifiedDetails { boolean is_read_modified; UtcTime start_time; UtcTime end_time; Counter num_values_per_node; boolean return_bounds; }; // [OPCUA-11], Section 6.4.4.1 struct ReadProcessedDetails { UtcTime start_time; UtcTime end_time; Duration processing_interval; sequence aggregate_type; AggregateConfiguration aggregate_configuration; }; // [OPCUA-11], Section 6.4.5.1 struct ReadAtTimeDetails { sequence req_times; boolean use_simple_bounds; }; // [OPCUA-11], Section 6.4.1 @nested union HistoryReadDetails switch (HistoryReadDetailsKind) { case READ_EVENT_HISTORY_READ_DETAILS_KIND: ReadEventDetails read_event_details; case READ_RAW_MODIFIED_HISTORY_READ_DETAILS_KIND: ReadRawModifiedDetails read_raw_modified_details; case READ_PROCESSED_HISTORY_READ_DETAILS_KIND: ReadProcessedDetails read_processed_details; case READ_AT_TIME_HISTORY_READ_DETAILS_KIND: ReadAtTimeDetails read_at_time_details; }; // [OPCUA-11], Section 6.4 @nested struct ExtensibleParameterHistoryReadDetails : ExtensibleParameter { HistoryReadDetails parameter_data; }; // [OPCUA-11], Section 6.7 enum PerformUpdateType { @value(1) INSERT_PERFORM_UPDATE_TYPE, @value(2) REPLACE_PERFORM_UPDATE_TYPE, @value(3) UPDATE_PERFORM_UPDATE_TYPE, @value(4) REMOVE_PERFORM_UPDATE_TYPE }; // [OPCUA-11], Section 6.8.2.1 @nested struct UpdateDataDetails { NodeId node_id; PerformUpdateType perform_insert_replace; sequence update_values; }; // [OPCUA-11], Section 6.8.3.1 @nested struct UpdateStructureDataDetails { NodeId node_id; PerformUpdateType perform_insert_replace; sequence update_values; }; // [OPCUA-11], Section 6.8.4.1 @nested struct UpdateEventDetails { NodeId node_id; PerformUpdateType perform_insert_replace; EventFilter filter; sequence event_data; }; // [OPCUA-11], Section 6.8.5.1 @nested struct DeleteRawModifiedDetails { NodeId node_id; boolean is_delete_modified; UtcTime start_time; UtcTime end_time; }; // [OPCUA-11], Section 6.8.6.1 @nested struct DeleteAtTimeDetails { NodeId node_id; sequence req_times; }; // [OPCUA-11], Section 6.8.7.1 @nested struct DeleteEventDetails { NodeId node_id; sequence event_id; }; // [OPCUA-11], Section 6.8.1 enum HistoryUpdateDetailsKind { UPDATE_DATA_HISTORY_UPDATE_DETAILS_KIND, UPDATE_STRUCTURE_HISTORY_UPDATE_DETAILS_KIND, UPDATE_EVENT_HISTORY_UPDATE_DETAILS_KIND, DELETE_RAW_MODIFIED_HISTORY_UPDATE_DETAILS_KIND, DELETE_AT_TIMES_HISTORY_UPDATE_DETAILS_KIND, DELETE_EVENTS_HISTORY_UPDATE_DETAILS_KIND }; // [OPCUA-11], Section 6.8.1 union HistoryUpdateDetails switch (HistoryUpdateDetailsKind) { case UPDATE_DATA_HISTORY_UPDATE_DETAILS_KIND: UpdateDataDetails update_data_details; case UPDATE_STRUCTURE_HISTORY_UPDATE_DETAILS_KIND: UpdateStructureDataDetails update_structure_data_details; case UPDATE_EVENT_HISTORY_UPDATE_DETAILS_KIND: UpdateEventDetails update_event_details; case DELETE_RAW_MODIFIED_HISTORY_UPDATE_DETAILS_KIND: DeleteRawModifiedDetails delete_raw_modified_details; case DELETE_AT_TIMES_HISTORY_UPDATE_DETAILS_KIND: DeleteAtTimeDetails delete_at_time_details; case DELETE_EVENTS_HISTORY_UPDATE_DETAILS_KIND: DeleteEventDetails delete_event_details; }; // [OPCUA-11], Section 6.8 @nested struct ExtensibleParameterHistoryUpdateDetails : ExtensibleParameter { HistoryUpdateDetails parameter_data; }; /* * Service Set */ #ifdef OMG_IDL_DDS_SERVICE_SUPPORT @DDSService interface Attribute { // [OPCUA-04], Section 5.10.2.2 ResponseHeader read( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in Duration max_age, in TimestampsToReturn timestamps_to_return, in sequence nodes_to_read); // [OPCUA-04], Section 5.10.3.2 ResponseHeader history_read( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in ExtensibleParameterHistoryReadDetails history_read_details, in TimestampsToReturn timestamps_to_return, in boolean release_continuation_points, in sequence nodes_to_read); // [OPCUA-04], Section 5.10.4.2 ResponseHeader write( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in sequence nodes_to_write); // [OPCUA-04], Section 5.10.5.2 ResponseHeader history_update( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in sequence details); }; #endif }; // OMG::DDSOPCUA::OPCUA2DDS::ATTRIBUTE /***************************************************** * Method Service Set * [OPCUA-04], Section 5.11 *****************************************************/ module METHOD { /* * Type definitions */ // [OPCUA-04], Section 5.11.2.3 @nested struct CallMethodRequest { NodeId object_id; NodeId method_id; sequence input_arguments; }; // [OPCUA-04], Section 5.11.2.3 @nested struct CallMethodResult { StatusCode status_code; sequence input_arguments_results; sequence input_arguments_diagnostic_infos; sequence output_arguments; }; /* * Service Set */ #ifdef OMG_IDL_DDS_SERVICE_SUPPORT @DDSService interface Method { // [OPCUA-04], Section 5.11.2.3 ResponseHeader call( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in sequence methods_to_call); }; #endif }; // OMG::DDSOPCUA::OPCUA2DDS::METHOD /***************************************************** * Subscription Service Set * [OPCUA-04], Section 5.13 *****************************************************/ module SUBSCRIPTION { /* * Type definitions */ // [OPCUA-04], Section 5.13.5.2 @nested struct SubscriptionAcknowledgement { IntegerId subscription_id; Counter sequence_number; }; // [OPCUA-04], Section 5.13.7.2 @nested struct TransferResult { StatusCode status_code; sequence available_sequence_numbers; }; /* * Service Set */ #ifdef OMG_IDL_DDS_SERVICE_SUPPORT @DDSService interface Subscription { // [OPCUA-04], Section 5.13.2.2 ResponseHeader create_subscription( string server_id, // Identifies OPC UA server out IntegerId subscription_id, out Duration revised_publishing_interval, out Counter revised_lifetime_count, out Counter revised_max_keep_alive_count, in Duration requested_publishing_interval, in Counter requested_lifetime_count, in Counter requested_max_keep_alive_count, in Counter max_notifications_per_publish, in boolean publishing_enabled, in octet priority); // [OPCUA-04], Section 5.13.3.2 ResponseHeader modify_subscription( string server_id, // Identifies OPC UA server out Duration revised_publishing_interval, out Counter revised_lifetime_count, out Counter revised_max_keep_alive_count, in IntegerId subscription_id, in Counter requested_lifetime_count, in Counter requested_max_keep_alive_count, in Counter max_notifications_per_publish, in octet priority); // [OPCUA-04], Section 5.12.4.2 ResponseHeader set_publishing_mode( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in boolean publishing_enabled, in sequence subscription_ids); // [OPCUA-04], Section 5.12.5.2 ResponseHeader publish( string server_id, // Identifies OPC UA server out IntegerId subscription_id, out sequence available_sequence_numbers, out boolean more_notifications, out NotificationMessage notification_message, out sequence results, out sequence diagnostic_infos, in sequence subscription_acknowledgements); // [OPCUA-04], Section 5.13.6.2 ResponseHeader republish( string server_id, // Identifies OPC UA server out NotificationMessage notification_message, in IntegerId subscription_id, in Counter retransmit_sequence_number); // [OPCUA-04], Section 5.13.7.2 ResponseHeader transfer_subscriptions( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in sequence subscription_ids, in boolean send_initial_values); // [OPCUA-04], Section 5.13.8.2 ResponseHeader delete_subscriptions( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in sequence subscription_ids); }; #endif }; // OMG::DDSOPCUA::OPCUA2DDS::SUBSCRIPTION /***************************************************** * MonitoredItem Service Set * [OPCUA-04], Section 5.12 *****************************************************/ module MONITORED_ITEM { /* * Type Definitions */ // [OPCUA-04], Section 5.12.2.2 @nested struct MonitoredItemCreateRequest { ReadValueId item_to_monitor; MonitoringMode monitoring_mode; MonitoringParameters monitoring_parameters; }; // [OPCUA-04], Section 5.12.2.2 @nested struct MonitoredItemCreateResult { StatusCode status_code; IntegerId monitored_item_id; Duration revised_sampling_interval; Counter revised_queue_size; ExtensibleParameterMonitoringFilterResult filter_result; }; // [OPCUA-04], Section 5.12.3.2 @nested struct MonitoredItemModifyRequest { IntegerId monitored_item_id; MonitoringParameters requested_parameters; }; // [OPCUA-04], Section 5.12.3.2 @nested struct MonitoredItemModifyResult { StatusCode status_code; Duration revised_sampling_interval; Counter revised_queue_size; ExtensibleParameterMonitoringFilterResult filter_result; }; /* * Service Set */ #ifdef OMG_IDL_DDS_SERVICE_SUPPORT // [OPCUA-04], Section 5.12 @DDSService interface MonitoredItem { // [OPCUA-04], Section 5.12.2.2 ResponseHeader create_monitored_items( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in IntegerId subscription_id, in TimestampsToReturn timestamps_to_return, in sequence items_to_create); // [OPCUA-04], Section 5.12.3.2 ResponseHeader modify_monitored_items( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in IntegerId subscription_id, in TimestampsToReturn timestamps_to_return, in sequence items_to_modify); // [OPCUA-04], Section 5.12.4.2 ResponseHeader set_monitored_mode( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in IntegerId subscription_id, in MonitoringMode monitoring_mode, sequence monitored_item_ids); // [OPCUA-04], Section 5.12.5.2 ResponseHeader set_triggering( string server_id, // Identifies OPC UA server out sequence add_results, out sequence add_diagnostic_infos, out sequence remove_results, out sequence remove_diagnostic_infos, in IntegerId subscription_id, in IntegerId triggering_item_id, in sequence links_to_add, in sequence links_to_remove); // [OPCUA-04], Section 5.12.6.2 ResponseHeader delete_monitored_items( string server_id, // Identifies OPC UA server out sequence results, out sequence diagnostic_infos, in IntegerId subscription_id, sequence monitored_item_ids); }; #endif }; // OMG::DDSOPCUA::OPCUA2DDS::MONITORED_ITEM };};}; // OMG::DDSOPCUA::OPCUA2DDS