node-opcua-address-space 2.76.1 → 2.76.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/source/address_space_ts.d.ts +118 -118
- package/dist/source/address_space_ts.js +17 -17
- package/dist/source/continuation_points/continuation_point_manager.d.ts +32 -32
- package/dist/source/continuation_points/continuation_point_manager.js +195 -195
- package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
- package/dist/source/helpers/adjust_browse_direction.js +11 -11
- package/dist/source/helpers/argument_list.d.ts +33 -33
- package/dist/source/helpers/argument_list.js +258 -258
- package/dist/source/helpers/call_helpers.d.ts +6 -6
- package/dist/source/helpers/call_helpers.js +70 -70
- package/dist/source/helpers/check_event_clause.d.ts +17 -0
- package/dist/source/helpers/check_event_clause.js +53 -0
- package/dist/source/helpers/check_event_clause.js.map +1 -0
- package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
- package/dist/source/helpers/coerce_enum_value.js +33 -33
- package/dist/source/helpers/dump_tools.d.ts +14 -14
- package/dist/source/helpers/dump_tools.js +78 -78
- package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
- package/dist/source/helpers/ensure_secure_access.js +76 -76
- package/dist/source/helpers/make_optionals_map.d.ts +21 -21
- package/dist/source/helpers/make_optionals_map.js +29 -29
- package/dist/source/helpers/multiform_func.d.ts +11 -11
- package/dist/source/helpers/multiform_func.js +75 -75
- package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
- package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
- package/dist/source/index.d.ts +56 -56
- package/dist/source/index.js +83 -83
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +42 -42
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
- package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
- package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
- package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
- package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
- package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
- package/dist/source/loader/decode_xml_extension_object.js +71 -71
- package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
- package/dist/source/loader/ensure_datatype_extracted.js +45 -45
- package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
- package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
- package/dist/source/loader/load_nodeset2.d.ts +16 -16
- package/dist/source/loader/load_nodeset2.js +1461 -1461
- package/dist/source/loader/make_semver_compatible.d.ts +6 -6
- package/dist/source/loader/make_semver_compatible.js +25 -25
- package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
- package/dist/source/loader/make_xml_extension_object_parser.js +325 -325
- package/dist/source/loader/namespace_post_step.d.ts +10 -10
- package/dist/source/loader/namespace_post_step.js +61 -61
- package/dist/source/loader/register_node_promoter.d.ts +2 -2
- package/dist/source/loader/register_node_promoter.js +9 -9
- package/dist/source/namespace.d.ts +6 -6
- package/dist/source/namespace.js +2 -2
- package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
- package/dist/source/namespace_alarm_and_condition.js +2 -2
- package/dist/source/namespace_data_access.d.ts +42 -42
- package/dist/source/namespace_data_access.js +2 -2
- package/dist/source/namespace_machine_state.d.ts +7 -7
- package/dist/source/namespace_machine_state.js +2 -2
- package/dist/source/pseudo_session.d.ts +55 -55
- package/dist/source/pseudo_session.js +203 -203
- package/dist/source/session_context.d.ts +111 -111
- package/dist/source/session_context.js +265 -265
- package/dist/source/set_namespace_meta_data.d.ts +2 -2
- package/dist/source/set_namespace_meta_data.js +59 -59
- package/dist/source/ua_root_folder.d.ts +9 -9
- package/dist/source/ua_root_folder.js +2 -2
- package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
- package/dist/source/ua_two_state_variable_ex.js +2 -2
- package/dist/source/xml_writer.d.ts +9 -9
- package/dist/source/xml_writer.js +2 -2
- package/dist/src/address_space.d.ts +392 -392
- package/dist/src/address_space.js +1392 -1392
- package/dist/src/address_space_change_event_tools.d.ts +6 -6
- package/dist/src/address_space_change_event_tools.js +149 -149
- package/dist/src/address_space_private.d.ts +43 -43
- package/dist/src/address_space_private.js +2 -2
- package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -0
- package/dist/src/alarms_and_conditions/check_where_clause.js +110 -0
- package/dist/src/alarms_and_conditions/check_where_clause.js.map +1 -0
- package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
- package/dist/src/alarms_and_conditions/condition.js +78 -78
- package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -0
- package/dist/src/alarms_and_conditions/condition_info.js +55 -0
- package/dist/src/alarms_and_conditions/condition_info.js.map +1 -0
- package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
- package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
- package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -0
- package/dist/src/alarms_and_conditions/condition_snapshot.js +667 -0
- package/dist/src/alarms_and_conditions/condition_snapshot.js.map +1 -0
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -61
- package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -0
- package/dist/src/alarms_and_conditions/extract_event_fields.js +90 -0
- package/dist/src/alarms_and_conditions/extract_event_fields.js.map +1 -0
- package/dist/src/alarms_and_conditions/index.d.ts +16 -16
- package/dist/src/alarms_and_conditions/index.js +32 -32
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -419
- package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
- package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +153 -153
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -166
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
- package/dist/src/apply_condition_refresh.d.ts +6 -6
- package/dist/src/apply_condition_refresh.js +27 -27
- package/dist/src/base_node_impl.d.ts +281 -281
- package/dist/src/base_node_impl.js +1395 -1395
- package/dist/src/base_node_private.d.ts +61 -61
- package/dist/src/base_node_private.js +705 -705
- package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
- package/dist/src/data_access/add_dataItem_stuff.js +61 -61
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
- package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
- package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
- package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -0
- package/dist/src/data_access/ua_multistate_value_discrete.js +250 -0
- package/dist/src/data_access/ua_multistate_value_discrete.js.map +1 -0
- package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +51 -51
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js +249 -249
- package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -0
- package/dist/src/data_access/ua_two_state_discrete.js +154 -0
- package/dist/src/data_access/ua_two_state_discrete.js.map +1 -0
- package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
- package/dist/src/data_access/ua_two_state_discrete_impl.js +153 -153
- package/dist/src/event_data.d.ts +34 -34
- package/dist/src/event_data.js +64 -64
- package/dist/src/extension_object_array_node.d.ts +61 -61
- package/dist/src/extension_object_array_node.js +276 -276
- package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
- package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
- package/dist/src/index_current.d.ts +43 -43
- package/dist/src/index_current.js +74 -74
- package/dist/src/namespace_impl.d.ts +461 -461
- package/dist/src/namespace_impl.js +1732 -1732
- package/dist/src/namespace_private.d.ts +21 -21
- package/dist/src/namespace_private.js +32 -32
- package/dist/src/nodeid_manager.d.ts +36 -36
- package/dist/src/nodeid_manager.js +197 -197
- package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
- package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
- package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
- package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
- package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
- package/dist/src/nodeset_tools/nodeset_to_xml.js +1155 -1155
- package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
- package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
- package/dist/src/reference_impl.d.ts +43 -43
- package/dist/src/reference_impl.js +139 -139
- package/dist/src/role_permissions.d.ts +2 -2
- package/dist/src/role_permissions.js +10 -10
- package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
- package/dist/src/state_machine/finite_state_machine.js +353 -353
- package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
- package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
- package/dist/src/state_machine/ua_two_state_variable.js +331 -331
- package/dist/src/tool_isSupertypeOf.d.ts +17 -17
- package/dist/src/tool_isSupertypeOf.js +108 -108
- package/dist/src/ua_condition_type.d.ts +8 -8
- package/dist/src/ua_condition_type.js +2 -2
- package/dist/src/ua_data_type_impl.d.ts +93 -93
- package/dist/src/ua_data_type_impl.js +371 -371
- package/dist/src/ua_method_impl.d.ts +41 -41
- package/dist/src/ua_method_impl.js +208 -208
- package/dist/src/ua_object_impl.d.ts +35 -35
- package/dist/src/ua_object_impl.js +161 -161
- package/dist/src/ua_object_type_impl.d.ts +48 -48
- package/dist/src/ua_object_type_impl.js +124 -124
- package/dist/src/ua_reference_type_impl.d.ts +43 -43
- package/dist/src/ua_reference_type_impl.js +139 -139
- package/dist/src/ua_variable_impl.d.ts +351 -351
- package/dist/src/ua_variable_impl.js +1604 -1604
- package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
- package/dist/src/ua_variable_impl_ext_obj.js +437 -437
- package/dist/src/ua_variable_type_impl.d.ts +62 -62
- package/dist/src/ua_variable_type_impl.js +570 -570
- package/dist/src/ua_view_impl.d.ts +19 -19
- package/dist/src/ua_view_impl.js +43 -43
- package/distHelpers/add_event_generator_object.d.ts +3 -3
- package/distHelpers/add_event_generator_object.js +64 -64
- package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
- package/distHelpers/alarms_and_conditions_demo.js +115 -115
- package/distHelpers/assertHasMatchingReference.d.ts +19 -19
- package/distHelpers/assertHasMatchingReference.js +40 -40
- package/distHelpers/boiler_system.d.ts +113 -113
- package/distHelpers/boiler_system.js +395 -395
- package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
- package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
- package/distHelpers/date_utils.d.ts +3 -3
- package/distHelpers/date_utils.js +9 -9
- package/distHelpers/dump_statemachine.js +127 -127
- package/distHelpers/get_address_space_fixture.d.ts +1 -1
- package/distHelpers/get_address_space_fixture.js +30 -30
- package/distHelpers/get_mini_address_space.d.ts +7 -7
- package/distHelpers/get_mini_address_space.js +36 -36
- package/distHelpers/index.d.ts +12 -12
- package/distHelpers/index.js +28 -28
- package/distHelpers/mock_session.d.ts +14 -14
- package/distHelpers/mock_session.js +25 -25
- package/distNodeJS/generate_address_space.d.ts +4 -4
- package/distNodeJS/generate_address_space.js +41 -41
- package/distNodeJS/index.d.ts +1 -1
- package/distNodeJS/index.js +17 -17
- package/package.json +36 -35
|
@@ -1,351 +1,351 @@
|
|
|
1
|
-
import { BindExtensionObjectOptions, CloneExtraInfo, ContinuationData, VariableDataValueSetterWithCallback } from "node-opcua-address-space-base";
|
|
2
|
-
import { QualifiedNameLike, NodeClass, AccessLevelFlag, AttributeIds } from "node-opcua-data-model";
|
|
3
|
-
import { DataValue, DataValueT } from "node-opcua-data-value";
|
|
4
|
-
import { PreciseClock } from "node-opcua-date-time";
|
|
5
|
-
import { ExtensionObject } from "node-opcua-extension-object";
|
|
6
|
-
import { NodeId } from "node-opcua-nodeid";
|
|
7
|
-
import { NumericRange } from "node-opcua-numeric-range";
|
|
8
|
-
import { StatusCode, CallbackT } from "node-opcua-status-code";
|
|
9
|
-
import { HistoryReadDetails, HistoryReadResult, ReadAtTimeDetails, ReadEventDetails, ReadProcessedDetails, ReadRawModifiedDetails, WriteValueOptions } from "node-opcua-types";
|
|
10
|
-
import { Variant, VariantLike, DataType } from "node-opcua-variant";
|
|
11
|
-
import { StatusCodeCallback } from "node-opcua-status-code";
|
|
12
|
-
import { BindVariableOptions, IVariableHistorian, TimestampGetFunc, UADataType, UAVariable, UAVariableType, CloneOptions, CloneFilter, ISessionContext, UAVariableT } from "node-opcua-address-space-base";
|
|
13
|
-
import { UAHistoricalDataConfiguration } from "node-opcua-nodeset-ua";
|
|
14
|
-
import { BaseNodeImpl, InternalBaseNodeOptions } from "./base_node_impl";
|
|
15
|
-
import { EnumerationInfo, IEnumItem } from "./ua_data_type_impl";
|
|
16
|
-
import { ConditionRefreshCache } from "./apply_condition_refresh";
|
|
17
|
-
export declare function adjust_accessLevel(accessLevel: string | number | null): AccessLevelFlag;
|
|
18
|
-
export declare function adjust_userAccessLevel(userAccessLevel: string | number | null | undefined, accessLevel: string | number | null): AccessLevelFlag | undefined;
|
|
19
|
-
interface UAVariableOptions extends InternalBaseNodeOptions {
|
|
20
|
-
value?: any;
|
|
21
|
-
dataType: NodeId | string;
|
|
22
|
-
valueRank?: number;
|
|
23
|
-
arrayDimensions?: null | number[];
|
|
24
|
-
accessLevel?: any;
|
|
25
|
-
userAccessLevel?: any;
|
|
26
|
-
minimumSamplingInterval?: number;
|
|
27
|
-
historizing?: number;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* A OPCUA Variable Node
|
|
31
|
-
*
|
|
32
|
-
* @class UAVariable
|
|
33
|
-
* @constructor
|
|
34
|
-
* @extends BaseNode
|
|
35
|
-
* The AccessLevel Attribute is used to indicate how the Value of a Variable can be accessed (read/write) and if it
|
|
36
|
-
* contains current and/or historic data. The AccessLevel does not take any user access rights into account,
|
|
37
|
-
* i.e. although the Variable is writable this may be restricted to a certain user / user group.
|
|
38
|
-
* The AccessLevel is an 8-bit unsigned integer with the structure defined in the following table:
|
|
39
|
-
*
|
|
40
|
-
* Field Bit Description
|
|
41
|
-
* CurrentRead 0 Indicates if the current value is readable
|
|
42
|
-
* (0 means not readable, 1 means readable).
|
|
43
|
-
* CurrentWrite 1 Indicates if the current value is writable
|
|
44
|
-
* (0 means not writable, 1 means writable).
|
|
45
|
-
* HistoryRead 2 Indicates if the history of the value is readable
|
|
46
|
-
* (0 means not readable, 1 means readable).
|
|
47
|
-
* HistoryWrite 3 Indicates if the history of the value is writable (0 means not writable, 1 means writable).
|
|
48
|
-
* SemanticChange 4 Indicates if the Variable used as Property generates SemanticChangeEvents (see 9.31).
|
|
49
|
-
* Reserved 5:7 Reserved for future use. Shall always be zero.
|
|
50
|
-
*
|
|
51
|
-
* The first two bits also indicate if a current value of this Variable is available and the second two bits
|
|
52
|
-
* indicates if the history of the Variable is available via the OPC UA server.
|
|
53
|
-
*
|
|
54
|
-
*/
|
|
55
|
-
export declare class UAVariableImpl extends BaseNodeImpl implements UAVariable {
|
|
56
|
-
readonly nodeClass = NodeClass.Variable;
|
|
57
|
-
dataType: NodeId;
|
|
58
|
-
private _basicDataType?;
|
|
59
|
-
$extensionObject?: any;
|
|
60
|
-
$historicalDataConfiguration?: UAHistoricalDataConfiguration;
|
|
61
|
-
varHistorian?: IVariableHistorian;
|
|
62
|
-
/**
|
|
63
|
-
* @internal @private
|
|
64
|
-
*/
|
|
65
|
-
$dataValue: DataValue;
|
|
66
|
-
accessLevel: number;
|
|
67
|
-
userAccessLevel?: number;
|
|
68
|
-
valueRank: number;
|
|
69
|
-
minimumSamplingInterval: number;
|
|
70
|
-
historizing: boolean;
|
|
71
|
-
semantic_version: number;
|
|
72
|
-
arrayDimensions: null | number[];
|
|
73
|
-
_timestamped_get_func?: TimestampGetFunc | null;
|
|
74
|
-
_timestamped_set_func?: VariableDataValueSetterWithCallback | null;
|
|
75
|
-
_get_func: any;
|
|
76
|
-
_set_func: any;
|
|
77
|
-
refreshFunc?: (callback: CallbackT<DataValue>) => void;
|
|
78
|
-
__waiting_callbacks?: any[];
|
|
79
|
-
get typeDefinitionObj(): UAVariableType;
|
|
80
|
-
get typeDefinition(): NodeId;
|
|
81
|
-
constructor(options: UAVariableOptions);
|
|
82
|
-
private checkPermissionAndAccessLevelPrivate;
|
|
83
|
-
isReadable(context: ISessionContext): boolean;
|
|
84
|
-
isUserReadable(context: ISessionContext): boolean;
|
|
85
|
-
isWritable(context: ISessionContext): boolean;
|
|
86
|
-
isUserWritable(context: ISessionContext): boolean;
|
|
87
|
-
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* from OPC.UA.Spec 1.02 part 4
|
|
91
|
-
* 5.10.2.4 StatusCodes
|
|
92
|
-
* Table 51 defines values for the operation level statusCode contained in the DataValue structure of
|
|
93
|
-
* each values element. Common StatusCodes are defined in Table 166.
|
|
94
|
-
*
|
|
95
|
-
* Table 51 Read Operation Level Result Codes
|
|
96
|
-
*
|
|
97
|
-
* Symbolic Id Description
|
|
98
|
-
*
|
|
99
|
-
* BadNodeIdInvalid The syntax of the node id is not valid.
|
|
100
|
-
* BadNodeIdUnknown The node id refers to a node that does not exist in the server address space.
|
|
101
|
-
* BadAttributeIdInvalid BadAttributeIdInvalid The attribute is not supported for the specified node.
|
|
102
|
-
* BadIndexRangeInvalid The syntax of the index range parameter is invalid.
|
|
103
|
-
* BadIndexRangeNoData No data exists within the range of indexes specified.
|
|
104
|
-
* BadDataEncodingInvalid The data encoding is invalid.
|
|
105
|
-
* This result is used if no dataEncoding can be applied because an Attribute other
|
|
106
|
-
* than Value was requested or the DataType of the Value Attribute is not a subtype
|
|
107
|
-
* of the Structure DataType.
|
|
108
|
-
* BadDataEncodingUnsupported The server does not support the requested data encoding for the node.
|
|
109
|
-
* This result is used if a dataEncoding can be applied but the passed data encoding
|
|
110
|
-
* is not known to the Server.
|
|
111
|
-
* BadNotReadable The access level does not allow reading or subscribing to the Node.
|
|
112
|
-
* BadUserAccessDenied User does not have permission to perform the requested operation. (table 165)
|
|
113
|
-
*/
|
|
114
|
-
readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
|
|
115
|
-
isEnumeration(): boolean;
|
|
116
|
-
isExtensionObject(): boolean;
|
|
117
|
-
_getEnumerationInfo(): EnumerationInfo;
|
|
118
|
-
asyncRefresh(oldestDate: Date, callback: CallbackT<DataValue>): void;
|
|
119
|
-
asyncRefresh(oldestDate: Date): Promise<DataValue>;
|
|
120
|
-
readEnumValue(): IEnumItem;
|
|
121
|
-
writeEnumValue(value: string | number): void;
|
|
122
|
-
readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
|
|
123
|
-
getBasicDataType(): DataType;
|
|
124
|
-
adjustVariant(variant: Variant): Variant;
|
|
125
|
-
verifyVariantCompatibility(variant: Variant): void;
|
|
126
|
-
/**
|
|
127
|
-
* setValueFromSource is used to let the device sets the variable values
|
|
128
|
-
* this method also records the current time as sourceTimestamp and serverTimestamp.
|
|
129
|
-
. *
|
|
130
|
-
* The method will raise an exception if the value is not compatible with the dataType and expected dimension
|
|
131
|
-
*
|
|
132
|
-
* @method setValueFromSource
|
|
133
|
-
* @param variant {Variant}
|
|
134
|
-
* @param [statusCode {StatusCode} = StatusCodes.Good]
|
|
135
|
-
* @param [sourceTimestamp= Now]
|
|
136
|
-
*/
|
|
137
|
-
setValueFromSource(variant: VariantLike, statusCode?: StatusCode, sourceTimestamp?: Date): void;
|
|
138
|
-
writeValue(context: ISessionContext, dataValue: DataValue, indexRange: string | NumericRange | null, callback: StatusCodeCallback): void;
|
|
139
|
-
writeValue(context: ISessionContext, dataValue: DataValue, callback: StatusCodeCallback): void;
|
|
140
|
-
writeValue(context: ISessionContext, dataValue: DataValue, indexRange?: string | NumericRange | null): Promise<StatusCode>;
|
|
141
|
-
writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions, callback: StatusCodeCallback): void;
|
|
142
|
-
writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions): Promise<StatusCode>;
|
|
143
|
-
/**
|
|
144
|
-
* @method checkVariantCompatibility
|
|
145
|
-
* note:
|
|
146
|
-
* this method is overridden in address-space-data-access
|
|
147
|
-
* @return {StatusCode}
|
|
148
|
-
*/
|
|
149
|
-
checkVariantCompatibility(value: Variant): StatusCode;
|
|
150
|
-
/**
|
|
151
|
-
* touch the source timestamp of a Variable and cascade up the change
|
|
152
|
-
* to the parent variable if any.
|
|
153
|
-
*/
|
|
154
|
-
touchValue(optionalNow?: PreciseClock): void;
|
|
155
|
-
/**
|
|
156
|
-
* bind a variable with a get and set functions.
|
|
157
|
-
*
|
|
158
|
-
* properties:
|
|
159
|
-
* - value: a Variant or a status code
|
|
160
|
-
* - sourceTimestamp
|
|
161
|
-
* - sourcePicoseconds
|
|
162
|
-
* @param [options.timestamped_set]
|
|
163
|
-
* @param [options.refreshFunc] the variable asynchronous getter function.
|
|
164
|
-
* @param [overwrite {Boolean} = false] set overwrite to true to overwrite existing binding
|
|
165
|
-
* @return void
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
* ### Providing read access to the underlying value
|
|
169
|
-
*
|
|
170
|
-
* #### Variation 1
|
|
171
|
-
*
|
|
172
|
-
* In this variation, the user provides a function that returns a Variant with the current value.
|
|
173
|
-
*
|
|
174
|
-
* The sourceTimestamp will be set automatically.
|
|
175
|
-
*
|
|
176
|
-
* The get function is called synchronously.
|
|
177
|
-
*
|
|
178
|
-
* @example
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
* ```javascript
|
|
182
|
-
* ...
|
|
183
|
-
* var options = {
|
|
184
|
-
* get : () => {
|
|
185
|
-
* return new Variant({...});
|
|
186
|
-
* },
|
|
187
|
-
* set : function(variant) {
|
|
188
|
-
* // store the variant somewhere
|
|
189
|
-
* return StatusCodes.Good;
|
|
190
|
-
* }
|
|
191
|
-
* };
|
|
192
|
-
* ...
|
|
193
|
-
* engine.bindVariable(nodeId,options):
|
|
194
|
-
* ...
|
|
195
|
-
* ```
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
* #### Variation 2:
|
|
199
|
-
*
|
|
200
|
-
* This variation can be used when the user wants to specify a specific '''sourceTimestamp''' associated
|
|
201
|
-
* with the current value of the UAVariable.
|
|
202
|
-
*
|
|
203
|
-
* The provided ```timestamped_get``` function should return an object with three properties:
|
|
204
|
-
* * value: containing the variant value or a error StatusCode,
|
|
205
|
-
* * sourceTimestamp
|
|
206
|
-
* * sourcePicoseconds
|
|
207
|
-
*
|
|
208
|
-
* ```javascript
|
|
209
|
-
* ...
|
|
210
|
-
* var myDataValue = new DataValue({
|
|
211
|
-
* value: {dataType: DataType.Double , value: 10.0},
|
|
212
|
-
* sourceTimestamp : new Date(),
|
|
213
|
-
* sourcePicoseconds: 0
|
|
214
|
-
* });
|
|
215
|
-
* ...
|
|
216
|
-
* var options = {
|
|
217
|
-
* timestamped_get : () => { return myDataValue; }
|
|
218
|
-
* };
|
|
219
|
-
* ...
|
|
220
|
-
* engine.bindVariable(nodeId,options):
|
|
221
|
-
* ...
|
|
222
|
-
* // record a new value
|
|
223
|
-
* myDataValue.value.value = 5.0;
|
|
224
|
-
* myDataValue.sourceTimestamp = new Date();
|
|
225
|
-
* ...
|
|
226
|
-
* ```
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
* #### Variation 3:
|
|
230
|
-
*
|
|
231
|
-
* This variation can be used when the value associated with the variables requires a asynchronous function call to be
|
|
232
|
-
* extracted. In this case, the user should provide an async method ```refreshFunc```.
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
* The ```refreshFunc``` shall do whatever is necessary to fetch the most up to date version of the variable value, and
|
|
236
|
-
* call the ```callback``` function when the data is ready.
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
* The ```callback``` function follow the standard callback function signature:
|
|
240
|
-
* * the first argument shall be **null** or **Error**, depending of the outcome of the fetch operation,
|
|
241
|
-
* * the second argument shall be a DataValue with the new UAVariable Value, a StatusCode, and time stamps.
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
* Optionally, it is possible to pass a sourceTimestamp and a sourcePicoseconds value as a third and fourth arguments
|
|
245
|
-
* of the callback. When sourceTimestamp and sourcePicoseconds are missing, the system will set their default value
|
|
246
|
-
* to the current time..
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
* ```javascript
|
|
250
|
-
* ...
|
|
251
|
-
* var options = {
|
|
252
|
-
* refreshFunc : function(callback) {
|
|
253
|
-
* ... do_some_async_stuff_to_get_the_new_variable_value
|
|
254
|
-
* var dataValue = new DataValue({
|
|
255
|
-
* value: new Variant({...}),
|
|
256
|
-
* statusCode: StatusCodes.Good,
|
|
257
|
-
* sourceTimestamp: new Date()
|
|
258
|
-
* });
|
|
259
|
-
* callback(null,dataValue);
|
|
260
|
-
* }
|
|
261
|
-
* };
|
|
262
|
-
* ...
|
|
263
|
-
* variable.bindVariable(nodeId,options):
|
|
264
|
-
* ...
|
|
265
|
-
* ```
|
|
266
|
-
*
|
|
267
|
-
* ### Providing write access to the underlying value
|
|
268
|
-
*
|
|
269
|
-
* #### Variation1 - provide a simple synchronous set function
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
* #### Notes
|
|
273
|
-
* to do : explain return StatusCodes.GoodCompletesAsynchronously;
|
|
274
|
-
*
|
|
275
|
-
*/
|
|
276
|
-
bindVariable(options?: BindVariableOptions, overwrite?: boolean): void;
|
|
277
|
-
/**
|
|
278
|
-
* @method readValueAsync
|
|
279
|
-
*/
|
|
280
|
-
readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValue>): void;
|
|
281
|
-
readValueAsync(context: ISessionContext | null): Promise<DataValue>;
|
|
282
|
-
getWriteMask(): number;
|
|
283
|
-
getUserWriteMask(): number;
|
|
284
|
-
clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAVariable;
|
|
285
|
-
getDataTypeNode(): UADataType;
|
|
286
|
-
get dataTypeObj(): UADataType;
|
|
287
|
-
checkExtensionObjectIsCorrect(extObj: ExtensionObject | ExtensionObject[] | null): boolean;
|
|
288
|
-
/**
|
|
289
|
-
* @private
|
|
290
|
-
* install UAVariable to exposed th
|
|
291
|
-
*
|
|
292
|
-
* precondition:
|
|
293
|
-
*/
|
|
294
|
-
installExtensionObjectVariables(): void;
|
|
295
|
-
/**
|
|
296
|
-
* @method bindExtensionObject
|
|
297
|
-
* @return {ExtensionObject}
|
|
298
|
-
*/
|
|
299
|
-
bindExtensionObjectScalar(optionalExtensionObject: ExtensionObject, options?: BindExtensionObjectOptions): ExtensionObject | null;
|
|
300
|
-
bindExtensionObjectArray(optionalExtensionObject: ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject[] | null;
|
|
301
|
-
bindExtensionObject(optionalExtensionObject?: ExtensionObject | ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject | ExtensionObject[] | null;
|
|
302
|
-
updateExtensionObjectPartial(partialExtensionObject?: {
|
|
303
|
-
[key: string]: any;
|
|
304
|
-
}): ExtensionObject;
|
|
305
|
-
incrementExtensionObjectPartial(path: string | string[]): void;
|
|
306
|
-
toString(): string;
|
|
307
|
-
historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData): Promise<HistoryReadResult>;
|
|
308
|
-
historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
|
|
309
|
-
_historyReadRaw(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
|
|
310
|
-
_historyReadRawModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback?: CallbackT<HistoryReadResult>): any;
|
|
311
|
-
_historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
|
|
312
|
-
_historyPush(newDataValue: DataValue): any;
|
|
313
|
-
_historyReadRawAsync(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): any;
|
|
314
|
-
_historyReadModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): any;
|
|
315
|
-
_update_startOfOnlineArchive(newDate: Date): void;
|
|
316
|
-
_update_startOfArchive(newDate: Date): void;
|
|
317
|
-
_validate_DataType(variantDataType: DataType): boolean;
|
|
318
|
-
_internal_set_value(value: Variant): void;
|
|
319
|
-
_internal_set_dataValue(dataValue: DataValue, indexRange?: NumericRange | null): void;
|
|
320
|
-
_conditionRefresh(_cache?: ConditionRefreshCache): void;
|
|
321
|
-
handle_semantic_changed(): void;
|
|
322
|
-
private _readDataType;
|
|
323
|
-
private _readValueRank;
|
|
324
|
-
private _readArrayDimensions;
|
|
325
|
-
private _readAccessLevel;
|
|
326
|
-
private _readAccessLevelEx;
|
|
327
|
-
private _readUserAccessLevel;
|
|
328
|
-
private _readMinimumSamplingInterval;
|
|
329
|
-
private _readHistorizing;
|
|
330
|
-
}
|
|
331
|
-
export interface UAVariableImpl {
|
|
332
|
-
$$variableType?: any;
|
|
333
|
-
$$dataType?: any;
|
|
334
|
-
$$getElementBrowseName: any;
|
|
335
|
-
$$extensionObjectArray: any;
|
|
336
|
-
$$indexPropertyName: any;
|
|
337
|
-
}
|
|
338
|
-
export interface UAVariableImplT<T, DT extends DataType> extends UAVariableImpl, UAVariableT<T, DT> {
|
|
339
|
-
on(): any;
|
|
340
|
-
once(): any;
|
|
341
|
-
readValueAsync(context: ISessionContext | null): Promise<DataValueT<T, DT>>;
|
|
342
|
-
readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValueT<T, DT>>): void;
|
|
343
|
-
readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
|
|
344
|
-
readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
|
|
345
|
-
writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange: NumericRange | null, callback: StatusCodeCallback): void;
|
|
346
|
-
writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, callback: StatusCodeCallback): void;
|
|
347
|
-
writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange?: NumericRange | null): Promise<StatusCode>;
|
|
348
|
-
}
|
|
349
|
-
export declare class UAVariableImplT<T, DT extends DataType> extends UAVariableImpl {
|
|
350
|
-
}
|
|
351
|
-
export {};
|
|
1
|
+
import { BindExtensionObjectOptions, CloneExtraInfo, ContinuationData, VariableDataValueSetterWithCallback } from "node-opcua-address-space-base";
|
|
2
|
+
import { QualifiedNameLike, NodeClass, AccessLevelFlag, AttributeIds } from "node-opcua-data-model";
|
|
3
|
+
import { DataValue, DataValueT } from "node-opcua-data-value";
|
|
4
|
+
import { PreciseClock } from "node-opcua-date-time";
|
|
5
|
+
import { ExtensionObject } from "node-opcua-extension-object";
|
|
6
|
+
import { NodeId } from "node-opcua-nodeid";
|
|
7
|
+
import { NumericRange } from "node-opcua-numeric-range";
|
|
8
|
+
import { StatusCode, CallbackT } from "node-opcua-status-code";
|
|
9
|
+
import { HistoryReadDetails, HistoryReadResult, ReadAtTimeDetails, ReadEventDetails, ReadProcessedDetails, ReadRawModifiedDetails, WriteValueOptions } from "node-opcua-types";
|
|
10
|
+
import { Variant, VariantLike, DataType } from "node-opcua-variant";
|
|
11
|
+
import { StatusCodeCallback } from "node-opcua-status-code";
|
|
12
|
+
import { BindVariableOptions, IVariableHistorian, TimestampGetFunc, UADataType, UAVariable, UAVariableType, CloneOptions, CloneFilter, ISessionContext, UAVariableT } from "node-opcua-address-space-base";
|
|
13
|
+
import { UAHistoricalDataConfiguration } from "node-opcua-nodeset-ua";
|
|
14
|
+
import { BaseNodeImpl, InternalBaseNodeOptions } from "./base_node_impl";
|
|
15
|
+
import { EnumerationInfo, IEnumItem } from "./ua_data_type_impl";
|
|
16
|
+
import { ConditionRefreshCache } from "./apply_condition_refresh";
|
|
17
|
+
export declare function adjust_accessLevel(accessLevel: string | number | null): AccessLevelFlag;
|
|
18
|
+
export declare function adjust_userAccessLevel(userAccessLevel: string | number | null | undefined, accessLevel: string | number | null): AccessLevelFlag | undefined;
|
|
19
|
+
interface UAVariableOptions extends InternalBaseNodeOptions {
|
|
20
|
+
value?: any;
|
|
21
|
+
dataType: NodeId | string;
|
|
22
|
+
valueRank?: number;
|
|
23
|
+
arrayDimensions?: null | number[];
|
|
24
|
+
accessLevel?: any;
|
|
25
|
+
userAccessLevel?: any;
|
|
26
|
+
minimumSamplingInterval?: number;
|
|
27
|
+
historizing?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A OPCUA Variable Node
|
|
31
|
+
*
|
|
32
|
+
* @class UAVariable
|
|
33
|
+
* @constructor
|
|
34
|
+
* @extends BaseNode
|
|
35
|
+
* The AccessLevel Attribute is used to indicate how the Value of a Variable can be accessed (read/write) and if it
|
|
36
|
+
* contains current and/or historic data. The AccessLevel does not take any user access rights into account,
|
|
37
|
+
* i.e. although the Variable is writable this may be restricted to a certain user / user group.
|
|
38
|
+
* The AccessLevel is an 8-bit unsigned integer with the structure defined in the following table:
|
|
39
|
+
*
|
|
40
|
+
* Field Bit Description
|
|
41
|
+
* CurrentRead 0 Indicates if the current value is readable
|
|
42
|
+
* (0 means not readable, 1 means readable).
|
|
43
|
+
* CurrentWrite 1 Indicates if the current value is writable
|
|
44
|
+
* (0 means not writable, 1 means writable).
|
|
45
|
+
* HistoryRead 2 Indicates if the history of the value is readable
|
|
46
|
+
* (0 means not readable, 1 means readable).
|
|
47
|
+
* HistoryWrite 3 Indicates if the history of the value is writable (0 means not writable, 1 means writable).
|
|
48
|
+
* SemanticChange 4 Indicates if the Variable used as Property generates SemanticChangeEvents (see 9.31).
|
|
49
|
+
* Reserved 5:7 Reserved for future use. Shall always be zero.
|
|
50
|
+
*
|
|
51
|
+
* The first two bits also indicate if a current value of this Variable is available and the second two bits
|
|
52
|
+
* indicates if the history of the Variable is available via the OPC UA server.
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
export declare class UAVariableImpl extends BaseNodeImpl implements UAVariable {
|
|
56
|
+
readonly nodeClass = NodeClass.Variable;
|
|
57
|
+
dataType: NodeId;
|
|
58
|
+
private _basicDataType?;
|
|
59
|
+
$extensionObject?: any;
|
|
60
|
+
$historicalDataConfiguration?: UAHistoricalDataConfiguration;
|
|
61
|
+
varHistorian?: IVariableHistorian;
|
|
62
|
+
/**
|
|
63
|
+
* @internal @private
|
|
64
|
+
*/
|
|
65
|
+
$dataValue: DataValue;
|
|
66
|
+
accessLevel: number;
|
|
67
|
+
userAccessLevel?: number;
|
|
68
|
+
valueRank: number;
|
|
69
|
+
minimumSamplingInterval: number;
|
|
70
|
+
historizing: boolean;
|
|
71
|
+
semantic_version: number;
|
|
72
|
+
arrayDimensions: null | number[];
|
|
73
|
+
_timestamped_get_func?: TimestampGetFunc | null;
|
|
74
|
+
_timestamped_set_func?: VariableDataValueSetterWithCallback | null;
|
|
75
|
+
_get_func: any;
|
|
76
|
+
_set_func: any;
|
|
77
|
+
refreshFunc?: (callback: CallbackT<DataValue>) => void;
|
|
78
|
+
__waiting_callbacks?: any[];
|
|
79
|
+
get typeDefinitionObj(): UAVariableType;
|
|
80
|
+
get typeDefinition(): NodeId;
|
|
81
|
+
constructor(options: UAVariableOptions);
|
|
82
|
+
private checkPermissionAndAccessLevelPrivate;
|
|
83
|
+
isReadable(context: ISessionContext): boolean;
|
|
84
|
+
isUserReadable(context: ISessionContext): boolean;
|
|
85
|
+
isWritable(context: ISessionContext): boolean;
|
|
86
|
+
isUserWritable(context: ISessionContext): boolean;
|
|
87
|
+
/**
|
|
88
|
+
*
|
|
89
|
+
*
|
|
90
|
+
* from OPC.UA.Spec 1.02 part 4
|
|
91
|
+
* 5.10.2.4 StatusCodes
|
|
92
|
+
* Table 51 defines values for the operation level statusCode contained in the DataValue structure of
|
|
93
|
+
* each values element. Common StatusCodes are defined in Table 166.
|
|
94
|
+
*
|
|
95
|
+
* Table 51 Read Operation Level Result Codes
|
|
96
|
+
*
|
|
97
|
+
* Symbolic Id Description
|
|
98
|
+
*
|
|
99
|
+
* BadNodeIdInvalid The syntax of the node id is not valid.
|
|
100
|
+
* BadNodeIdUnknown The node id refers to a node that does not exist in the server address space.
|
|
101
|
+
* BadAttributeIdInvalid BadAttributeIdInvalid The attribute is not supported for the specified node.
|
|
102
|
+
* BadIndexRangeInvalid The syntax of the index range parameter is invalid.
|
|
103
|
+
* BadIndexRangeNoData No data exists within the range of indexes specified.
|
|
104
|
+
* BadDataEncodingInvalid The data encoding is invalid.
|
|
105
|
+
* This result is used if no dataEncoding can be applied because an Attribute other
|
|
106
|
+
* than Value was requested or the DataType of the Value Attribute is not a subtype
|
|
107
|
+
* of the Structure DataType.
|
|
108
|
+
* BadDataEncodingUnsupported The server does not support the requested data encoding for the node.
|
|
109
|
+
* This result is used if a dataEncoding can be applied but the passed data encoding
|
|
110
|
+
* is not known to the Server.
|
|
111
|
+
* BadNotReadable The access level does not allow reading or subscribing to the Node.
|
|
112
|
+
* BadUserAccessDenied User does not have permission to perform the requested operation. (table 165)
|
|
113
|
+
*/
|
|
114
|
+
readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
|
|
115
|
+
isEnumeration(): boolean;
|
|
116
|
+
isExtensionObject(): boolean;
|
|
117
|
+
_getEnumerationInfo(): EnumerationInfo;
|
|
118
|
+
asyncRefresh(oldestDate: Date, callback: CallbackT<DataValue>): void;
|
|
119
|
+
asyncRefresh(oldestDate: Date): Promise<DataValue>;
|
|
120
|
+
readEnumValue(): IEnumItem;
|
|
121
|
+
writeEnumValue(value: string | number): void;
|
|
122
|
+
readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
|
|
123
|
+
getBasicDataType(): DataType;
|
|
124
|
+
adjustVariant(variant: Variant): Variant;
|
|
125
|
+
verifyVariantCompatibility(variant: Variant): void;
|
|
126
|
+
/**
|
|
127
|
+
* setValueFromSource is used to let the device sets the variable values
|
|
128
|
+
* this method also records the current time as sourceTimestamp and serverTimestamp.
|
|
129
|
+
. *
|
|
130
|
+
* The method will raise an exception if the value is not compatible with the dataType and expected dimension
|
|
131
|
+
*
|
|
132
|
+
* @method setValueFromSource
|
|
133
|
+
* @param variant {Variant}
|
|
134
|
+
* @param [statusCode {StatusCode} = StatusCodes.Good]
|
|
135
|
+
* @param [sourceTimestamp= Now]
|
|
136
|
+
*/
|
|
137
|
+
setValueFromSource(variant: VariantLike, statusCode?: StatusCode, sourceTimestamp?: Date): void;
|
|
138
|
+
writeValue(context: ISessionContext, dataValue: DataValue, indexRange: string | NumericRange | null, callback: StatusCodeCallback): void;
|
|
139
|
+
writeValue(context: ISessionContext, dataValue: DataValue, callback: StatusCodeCallback): void;
|
|
140
|
+
writeValue(context: ISessionContext, dataValue: DataValue, indexRange?: string | NumericRange | null): Promise<StatusCode>;
|
|
141
|
+
writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions, callback: StatusCodeCallback): void;
|
|
142
|
+
writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions): Promise<StatusCode>;
|
|
143
|
+
/**
|
|
144
|
+
* @method checkVariantCompatibility
|
|
145
|
+
* note:
|
|
146
|
+
* this method is overridden in address-space-data-access
|
|
147
|
+
* @return {StatusCode}
|
|
148
|
+
*/
|
|
149
|
+
checkVariantCompatibility(value: Variant): StatusCode;
|
|
150
|
+
/**
|
|
151
|
+
* touch the source timestamp of a Variable and cascade up the change
|
|
152
|
+
* to the parent variable if any.
|
|
153
|
+
*/
|
|
154
|
+
touchValue(optionalNow?: PreciseClock): void;
|
|
155
|
+
/**
|
|
156
|
+
* bind a variable with a get and set functions.
|
|
157
|
+
*
|
|
158
|
+
* properties:
|
|
159
|
+
* - value: a Variant or a status code
|
|
160
|
+
* - sourceTimestamp
|
|
161
|
+
* - sourcePicoseconds
|
|
162
|
+
* @param [options.timestamped_set]
|
|
163
|
+
* @param [options.refreshFunc] the variable asynchronous getter function.
|
|
164
|
+
* @param [overwrite {Boolean} = false] set overwrite to true to overwrite existing binding
|
|
165
|
+
* @return void
|
|
166
|
+
*
|
|
167
|
+
*
|
|
168
|
+
* ### Providing read access to the underlying value
|
|
169
|
+
*
|
|
170
|
+
* #### Variation 1
|
|
171
|
+
*
|
|
172
|
+
* In this variation, the user provides a function that returns a Variant with the current value.
|
|
173
|
+
*
|
|
174
|
+
* The sourceTimestamp will be set automatically.
|
|
175
|
+
*
|
|
176
|
+
* The get function is called synchronously.
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
*
|
|
180
|
+
*
|
|
181
|
+
* ```javascript
|
|
182
|
+
* ...
|
|
183
|
+
* var options = {
|
|
184
|
+
* get : () => {
|
|
185
|
+
* return new Variant({...});
|
|
186
|
+
* },
|
|
187
|
+
* set : function(variant) {
|
|
188
|
+
* // store the variant somewhere
|
|
189
|
+
* return StatusCodes.Good;
|
|
190
|
+
* }
|
|
191
|
+
* };
|
|
192
|
+
* ...
|
|
193
|
+
* engine.bindVariable(nodeId,options):
|
|
194
|
+
* ...
|
|
195
|
+
* ```
|
|
196
|
+
*
|
|
197
|
+
*
|
|
198
|
+
* #### Variation 2:
|
|
199
|
+
*
|
|
200
|
+
* This variation can be used when the user wants to specify a specific '''sourceTimestamp''' associated
|
|
201
|
+
* with the current value of the UAVariable.
|
|
202
|
+
*
|
|
203
|
+
* The provided ```timestamped_get``` function should return an object with three properties:
|
|
204
|
+
* * value: containing the variant value or a error StatusCode,
|
|
205
|
+
* * sourceTimestamp
|
|
206
|
+
* * sourcePicoseconds
|
|
207
|
+
*
|
|
208
|
+
* ```javascript
|
|
209
|
+
* ...
|
|
210
|
+
* var myDataValue = new DataValue({
|
|
211
|
+
* value: {dataType: DataType.Double , value: 10.0},
|
|
212
|
+
* sourceTimestamp : new Date(),
|
|
213
|
+
* sourcePicoseconds: 0
|
|
214
|
+
* });
|
|
215
|
+
* ...
|
|
216
|
+
* var options = {
|
|
217
|
+
* timestamped_get : () => { return myDataValue; }
|
|
218
|
+
* };
|
|
219
|
+
* ...
|
|
220
|
+
* engine.bindVariable(nodeId,options):
|
|
221
|
+
* ...
|
|
222
|
+
* // record a new value
|
|
223
|
+
* myDataValue.value.value = 5.0;
|
|
224
|
+
* myDataValue.sourceTimestamp = new Date();
|
|
225
|
+
* ...
|
|
226
|
+
* ```
|
|
227
|
+
*
|
|
228
|
+
*
|
|
229
|
+
* #### Variation 3:
|
|
230
|
+
*
|
|
231
|
+
* This variation can be used when the value associated with the variables requires a asynchronous function call to be
|
|
232
|
+
* extracted. In this case, the user should provide an async method ```refreshFunc```.
|
|
233
|
+
*
|
|
234
|
+
*
|
|
235
|
+
* The ```refreshFunc``` shall do whatever is necessary to fetch the most up to date version of the variable value, and
|
|
236
|
+
* call the ```callback``` function when the data is ready.
|
|
237
|
+
*
|
|
238
|
+
*
|
|
239
|
+
* The ```callback``` function follow the standard callback function signature:
|
|
240
|
+
* * the first argument shall be **null** or **Error**, depending of the outcome of the fetch operation,
|
|
241
|
+
* * the second argument shall be a DataValue with the new UAVariable Value, a StatusCode, and time stamps.
|
|
242
|
+
*
|
|
243
|
+
*
|
|
244
|
+
* Optionally, it is possible to pass a sourceTimestamp and a sourcePicoseconds value as a third and fourth arguments
|
|
245
|
+
* of the callback. When sourceTimestamp and sourcePicoseconds are missing, the system will set their default value
|
|
246
|
+
* to the current time..
|
|
247
|
+
*
|
|
248
|
+
*
|
|
249
|
+
* ```javascript
|
|
250
|
+
* ...
|
|
251
|
+
* var options = {
|
|
252
|
+
* refreshFunc : function(callback) {
|
|
253
|
+
* ... do_some_async_stuff_to_get_the_new_variable_value
|
|
254
|
+
* var dataValue = new DataValue({
|
|
255
|
+
* value: new Variant({...}),
|
|
256
|
+
* statusCode: StatusCodes.Good,
|
|
257
|
+
* sourceTimestamp: new Date()
|
|
258
|
+
* });
|
|
259
|
+
* callback(null,dataValue);
|
|
260
|
+
* }
|
|
261
|
+
* };
|
|
262
|
+
* ...
|
|
263
|
+
* variable.bindVariable(nodeId,options):
|
|
264
|
+
* ...
|
|
265
|
+
* ```
|
|
266
|
+
*
|
|
267
|
+
* ### Providing write access to the underlying value
|
|
268
|
+
*
|
|
269
|
+
* #### Variation1 - provide a simple synchronous set function
|
|
270
|
+
*
|
|
271
|
+
*
|
|
272
|
+
* #### Notes
|
|
273
|
+
* to do : explain return StatusCodes.GoodCompletesAsynchronously;
|
|
274
|
+
*
|
|
275
|
+
*/
|
|
276
|
+
bindVariable(options?: BindVariableOptions, overwrite?: boolean): void;
|
|
277
|
+
/**
|
|
278
|
+
* @method readValueAsync
|
|
279
|
+
*/
|
|
280
|
+
readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValue>): void;
|
|
281
|
+
readValueAsync(context: ISessionContext | null): Promise<DataValue>;
|
|
282
|
+
getWriteMask(): number;
|
|
283
|
+
getUserWriteMask(): number;
|
|
284
|
+
clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAVariable;
|
|
285
|
+
getDataTypeNode(): UADataType;
|
|
286
|
+
get dataTypeObj(): UADataType;
|
|
287
|
+
checkExtensionObjectIsCorrect(extObj: ExtensionObject | ExtensionObject[] | null): boolean;
|
|
288
|
+
/**
|
|
289
|
+
* @private
|
|
290
|
+
* install UAVariable to exposed th
|
|
291
|
+
*
|
|
292
|
+
* precondition:
|
|
293
|
+
*/
|
|
294
|
+
installExtensionObjectVariables(): void;
|
|
295
|
+
/**
|
|
296
|
+
* @method bindExtensionObject
|
|
297
|
+
* @return {ExtensionObject}
|
|
298
|
+
*/
|
|
299
|
+
bindExtensionObjectScalar(optionalExtensionObject: ExtensionObject, options?: BindExtensionObjectOptions): ExtensionObject | null;
|
|
300
|
+
bindExtensionObjectArray(optionalExtensionObject: ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject[] | null;
|
|
301
|
+
bindExtensionObject(optionalExtensionObject?: ExtensionObject | ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject | ExtensionObject[] | null;
|
|
302
|
+
updateExtensionObjectPartial(partialExtensionObject?: {
|
|
303
|
+
[key: string]: any;
|
|
304
|
+
}): ExtensionObject;
|
|
305
|
+
incrementExtensionObjectPartial(path: string | string[]): void;
|
|
306
|
+
toString(): string;
|
|
307
|
+
historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData): Promise<HistoryReadResult>;
|
|
308
|
+
historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
|
|
309
|
+
_historyReadRaw(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
|
|
310
|
+
_historyReadRawModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback?: CallbackT<HistoryReadResult>): any;
|
|
311
|
+
_historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
|
|
312
|
+
_historyPush(newDataValue: DataValue): any;
|
|
313
|
+
_historyReadRawAsync(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): any;
|
|
314
|
+
_historyReadModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): any;
|
|
315
|
+
_update_startOfOnlineArchive(newDate: Date): void;
|
|
316
|
+
_update_startOfArchive(newDate: Date): void;
|
|
317
|
+
_validate_DataType(variantDataType: DataType): boolean;
|
|
318
|
+
_internal_set_value(value: Variant): void;
|
|
319
|
+
_internal_set_dataValue(dataValue: DataValue, indexRange?: NumericRange | null): void;
|
|
320
|
+
_conditionRefresh(_cache?: ConditionRefreshCache): void;
|
|
321
|
+
handle_semantic_changed(): void;
|
|
322
|
+
private _readDataType;
|
|
323
|
+
private _readValueRank;
|
|
324
|
+
private _readArrayDimensions;
|
|
325
|
+
private _readAccessLevel;
|
|
326
|
+
private _readAccessLevelEx;
|
|
327
|
+
private _readUserAccessLevel;
|
|
328
|
+
private _readMinimumSamplingInterval;
|
|
329
|
+
private _readHistorizing;
|
|
330
|
+
}
|
|
331
|
+
export interface UAVariableImpl {
|
|
332
|
+
$$variableType?: any;
|
|
333
|
+
$$dataType?: any;
|
|
334
|
+
$$getElementBrowseName: any;
|
|
335
|
+
$$extensionObjectArray: any;
|
|
336
|
+
$$indexPropertyName: any;
|
|
337
|
+
}
|
|
338
|
+
export interface UAVariableImplT<T, DT extends DataType> extends UAVariableImpl, UAVariableT<T, DT> {
|
|
339
|
+
on(): any;
|
|
340
|
+
once(): any;
|
|
341
|
+
readValueAsync(context: ISessionContext | null): Promise<DataValueT<T, DT>>;
|
|
342
|
+
readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValueT<T, DT>>): void;
|
|
343
|
+
readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
|
|
344
|
+
readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
|
|
345
|
+
writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange: NumericRange | null, callback: StatusCodeCallback): void;
|
|
346
|
+
writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, callback: StatusCodeCallback): void;
|
|
347
|
+
writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange?: NumericRange | null): Promise<StatusCode>;
|
|
348
|
+
}
|
|
349
|
+
export declare class UAVariableImplT<T, DT extends DataType> extends UAVariableImpl {
|
|
350
|
+
}
|
|
351
|
+
export {};
|