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,277 +1,277 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeElement = exports.addElement = exports.bindExtObjArrayNode = exports.createExtObjArrayNode = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @module node-opcua-address-space.Private
|
|
6
|
-
*/
|
|
7
|
-
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
-
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
9
|
-
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
10
|
-
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
11
|
-
const node_opcua_variant_2 = require("node-opcua-variant");
|
|
12
|
-
const node_opcua_variant_3 = require("node-opcua-variant");
|
|
13
|
-
const ua_variable_impl_1 = require("./ua_variable_impl");
|
|
14
|
-
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
|
|
15
|
-
const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
|
|
16
|
-
const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
|
|
17
|
-
/*
|
|
18
|
-
* define a complex Variable containing a array of extension objects
|
|
19
|
-
* each element of the array is also accessible as a component variable.
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
function getExtObjArrayNodeValue() {
|
|
23
|
-
return new node_opcua_variant_1.Variant({
|
|
24
|
-
arrayType: node_opcua_variant_3.VariantArrayType.Array,
|
|
25
|
-
dataType: node_opcua_variant_2.DataType.ExtensionObject,
|
|
26
|
-
value: this.$$extensionObjectArray
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
function removeElementByIndex(uaArrayVariableNode, elementIndex) {
|
|
30
|
-
const _array = uaArrayVariableNode.$$extensionObjectArray;
|
|
31
|
-
(0, node_opcua_assert_1.assert)(typeof elementIndex === "number");
|
|
32
|
-
const addressSpace = uaArrayVariableNode.addressSpace;
|
|
33
|
-
const extObj = _array[elementIndex];
|
|
34
|
-
const browseName = uaArrayVariableNode.$$getElementBrowseName(extObj);
|
|
35
|
-
// remove element from global array (inefficient)
|
|
36
|
-
uaArrayVariableNode.$$extensionObjectArray.splice(elementIndex, 1);
|
|
37
|
-
// remove matching component
|
|
38
|
-
const node = uaArrayVariableNode.getComponentByName(browseName);
|
|
39
|
-
if (!node) {
|
|
40
|
-
throw new Error(" cannot find component ");
|
|
41
|
-
}
|
|
42
|
-
const hasComponent = uaArrayVariableNode.addressSpace.findReferenceType("HasComponent");
|
|
43
|
-
// remove the hasComponent reference toward node
|
|
44
|
-
uaArrayVariableNode.removeReference({
|
|
45
|
-
isForward: true,
|
|
46
|
-
nodeId: node.nodeId,
|
|
47
|
-
referenceType: hasComponent.nodeId
|
|
48
|
-
});
|
|
49
|
-
// now check if node has still some parent
|
|
50
|
-
const parents = node.findReferencesEx("HasChild", node_opcua_data_model_1.BrowseDirection.Inverse);
|
|
51
|
-
if (parents.length === 0) {
|
|
52
|
-
addressSpace.deleteNode(node.nodeId);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
*
|
|
57
|
-
* create a node Variable that contains a array of ExtensionObject of a given type
|
|
58
|
-
* @method createExtObjArrayNode
|
|
59
|
-
* @param parentFolder
|
|
60
|
-
* @param options
|
|
61
|
-
* @param options.browseName
|
|
62
|
-
* @param options.complexVariableType
|
|
63
|
-
* @param options.variableType the type of Extension objects stored in the array.
|
|
64
|
-
* @param options.indexPropertyName
|
|
65
|
-
* @return {Object|UAVariable}
|
|
66
|
-
*/
|
|
67
|
-
function createExtObjArrayNode(parentFolder, options) {
|
|
68
|
-
(0, node_opcua_assert_1.assert)(typeof options.variableType === "string");
|
|
69
|
-
(0, node_opcua_assert_1.assert)(typeof options.indexPropertyName === "string");
|
|
70
|
-
const addressSpace = parentFolder.addressSpace;
|
|
71
|
-
const namespace = parentFolder.namespace;
|
|
72
|
-
const complexVariableType = addressSpace.findVariableType(options.complexVariableType);
|
|
73
|
-
// istanbul ignore next
|
|
74
|
-
if (!complexVariableType) {
|
|
75
|
-
throw new Error("cannot find complex variable type");
|
|
76
|
-
}
|
|
77
|
-
(0, node_opcua_assert_1.assert)(!complexVariableType.nodeId.isEmpty());
|
|
78
|
-
const variableType = addressSpace.findVariableType(options.variableType);
|
|
79
|
-
if (!variableType) {
|
|
80
|
-
throw new Error("cannot find variable Type");
|
|
81
|
-
}
|
|
82
|
-
(0, node_opcua_assert_1.assert)(!variableType.nodeId.isEmpty());
|
|
83
|
-
const structure = addressSpace.findDataType("Structure");
|
|
84
|
-
(0, node_opcua_assert_1.assert)(structure, "Structure Type not found: please check your nodeset file");
|
|
85
|
-
const dataType = addressSpace.findDataType(variableType.dataType);
|
|
86
|
-
// istanbul ignore next
|
|
87
|
-
if (!dataType) {
|
|
88
|
-
errorLog(variableType.toString());
|
|
89
|
-
throw new Error("cannot find Data Type");
|
|
90
|
-
}
|
|
91
|
-
(0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
|
|
92
|
-
const inner_options = {
|
|
93
|
-
componentOf: parentFolder,
|
|
94
|
-
browseName: options.browseName,
|
|
95
|
-
dataType: dataType.nodeId,
|
|
96
|
-
typeDefinition: complexVariableType.nodeId,
|
|
97
|
-
value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: [], arrayType: node_opcua_variant_3.VariantArrayType.Array },
|
|
98
|
-
valueRank: 1
|
|
99
|
-
};
|
|
100
|
-
const uaArrayVariableNode = namespace.addVariable(inner_options);
|
|
101
|
-
bindExtObjArrayNode(uaArrayVariableNode, options.variableType, options.indexPropertyName);
|
|
102
|
-
return uaArrayVariableNode;
|
|
103
|
-
}
|
|
104
|
-
exports.createExtObjArrayNode = createExtObjArrayNode;
|
|
105
|
-
function _getElementBrowseName(extObj) {
|
|
106
|
-
const indexPropertyName1 = this.$$indexPropertyName;
|
|
107
|
-
if (!Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1)) {
|
|
108
|
-
console.log(" extension object do not have ", indexPropertyName1, extObj);
|
|
109
|
-
}
|
|
110
|
-
// assert(extObj.constructor === addressSpace.constructExtensionObject(dataType));
|
|
111
|
-
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1));
|
|
112
|
-
const browseName = extObj[indexPropertyName1].toString();
|
|
113
|
-
return browseName;
|
|
114
|
-
}
|
|
115
|
-
;
|
|
116
|
-
/**
|
|
117
|
-
* @method bindExtObjArrayNode
|
|
118
|
-
* @param uaArrayVariableNode
|
|
119
|
-
* @param variableTypeNodeId
|
|
120
|
-
* @param indexPropertyName
|
|
121
|
-
* @return
|
|
122
|
-
*/
|
|
123
|
-
function bindExtObjArrayNode(uaArrayVariableNode, variableTypeNodeId, indexPropertyName) {
|
|
124
|
-
(0, node_opcua_assert_1.assert)(uaArrayVariableNode.valueRank === 1, "expecting a one dimension array");
|
|
125
|
-
const addressSpace = uaArrayVariableNode.addressSpace;
|
|
126
|
-
const variableType = addressSpace.findVariableType(variableTypeNodeId);
|
|
127
|
-
// istanbul ignore next
|
|
128
|
-
if (!variableType || variableType.nodeId.isEmpty()) {
|
|
129
|
-
throw new Error("Cannot find VariableType " + variableTypeNodeId.toString());
|
|
130
|
-
}
|
|
131
|
-
const structure = addressSpace.findDataType("Structure");
|
|
132
|
-
// istanbul ignore next
|
|
133
|
-
if (!structure) {
|
|
134
|
-
throw new Error("Structure Type not found: please check your nodeset file");
|
|
135
|
-
}
|
|
136
|
-
let dataType = addressSpace.findDataType(variableType.dataType);
|
|
137
|
-
// istanbul ignore next
|
|
138
|
-
if (!dataType) {
|
|
139
|
-
throw new Error("Cannot find DataType " + variableType.dataType.toString());
|
|
140
|
-
}
|
|
141
|
-
(0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
|
|
142
|
-
(0, node_opcua_assert_1.assert)(!uaArrayVariableNode.$$variableType, "uaArrayVariableNode has already been bound !");
|
|
143
|
-
uaArrayVariableNode.$$variableType = variableType;
|
|
144
|
-
// verify that an object with same doesn't already exist
|
|
145
|
-
dataType = addressSpace.findDataType(variableType.dataType);
|
|
146
|
-
(0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
|
|
147
|
-
uaArrayVariableNode.$$dataType = dataType;
|
|
148
|
-
uaArrayVariableNode.$$extensionObjectArray = [];
|
|
149
|
-
uaArrayVariableNode.$$indexPropertyName = indexPropertyName;
|
|
150
|
-
uaArrayVariableNode.$$getElementBrowseName = _getElementBrowseName;
|
|
151
|
-
const bindOptions = {
|
|
152
|
-
get: getExtObjArrayNodeValue,
|
|
153
|
-
set: undefined // readonly
|
|
154
|
-
};
|
|
155
|
-
// bind the readonly
|
|
156
|
-
uaArrayVariableNode.bindVariable(bindOptions, true);
|
|
157
|
-
return uaArrayVariableNode;
|
|
158
|
-
}
|
|
159
|
-
exports.bindExtObjArrayNode = bindExtObjArrayNode;
|
|
160
|
-
/**
|
|
161
|
-
* @method addElement
|
|
162
|
-
* add a new element in a ExtensionObject Array variable
|
|
163
|
-
* @param options {Object} data used to construct the underlying ExtensionObject
|
|
164
|
-
* @param uaArrayVariableNode {UAVariable}
|
|
165
|
-
* @return {UAVariable}
|
|
166
|
-
*
|
|
167
|
-
* @method addElement
|
|
168
|
-
* add a new element in a ExtensionObject Array variable
|
|
169
|
-
* @param nodeVariable a variable already exposing an extension objects
|
|
170
|
-
* @param uaArrayVariableNode {UAVariable}
|
|
171
|
-
* @return {UAVariable}
|
|
172
|
-
*
|
|
173
|
-
* @method addElement
|
|
174
|
-
* add a new element in a ExtensionObject Array variable
|
|
175
|
-
* @param constructor constructor of the extension object to create
|
|
176
|
-
* @param uaArrayVariableNode {UAVariable}
|
|
177
|
-
* @return {UAVariable}
|
|
178
|
-
*/
|
|
179
|
-
function addElement(options /* ExtensionObjectConstructor | ExtensionObject | UAVariable*/, uaArrayVariableNode) {
|
|
180
|
-
(0, node_opcua_assert_1.assert)(uaArrayVariableNode, " must provide an UAVariable containing the array");
|
|
181
|
-
// verify that arr has been created correctly
|
|
182
|
-
(0, node_opcua_assert_1.assert)(!!uaArrayVariableNode.$$variableType && !!uaArrayVariableNode.$$dataType, "did you create the array Node with createExtObjArrayNode ?");
|
|
183
|
-
(0, node_opcua_assert_1.assert)(uaArrayVariableNode.$$dataType.nodeClass === node_opcua_data_model_1.NodeClass.DataType);
|
|
184
|
-
const addressSpace = uaArrayVariableNode.addressSpace;
|
|
185
|
-
const Constructor = addressSpace.getExtensionObjectConstructor(uaArrayVariableNode.$$dataType);
|
|
186
|
-
(0, node_opcua_assert_1.assert)(Constructor instanceof Function);
|
|
187
|
-
let extensionObject;
|
|
188
|
-
let elVar = null;
|
|
189
|
-
let browseName;
|
|
190
|
-
if (options instanceof ua_variable_impl_1.UAVariableImpl) {
|
|
191
|
-
elVar = options;
|
|
192
|
-
extensionObject = elVar.$extensionObject; // get shared extension object
|
|
193
|
-
(0, node_opcua_assert_1.assert)(extensionObject instanceof Constructor, "the provided variable must expose a Extension Object of the expected type ");
|
|
194
|
-
// add a reference
|
|
195
|
-
uaArrayVariableNode.addReference({
|
|
196
|
-
isForward: true,
|
|
197
|
-
nodeId: elVar.nodeId,
|
|
198
|
-
referenceType: "HasComponent"
|
|
199
|
-
});
|
|
200
|
-
// xx elVar.bindExtensionObject();
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
if (options instanceof Constructor) {
|
|
204
|
-
// extension object has already been created
|
|
205
|
-
extensionObject = options;
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
extensionObject = addressSpace.constructExtensionObject(uaArrayVariableNode.$$dataType, options);
|
|
209
|
-
}
|
|
210
|
-
browseName = uaArrayVariableNode.$$getElementBrowseName(extensionObject);
|
|
211
|
-
elVar = uaArrayVariableNode.$$variableType.instantiate({
|
|
212
|
-
browseName,
|
|
213
|
-
componentOf: uaArrayVariableNode.nodeId,
|
|
214
|
-
value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: extensionObject }
|
|
215
|
-
});
|
|
216
|
-
elVar.bindExtensionObject(extensionObject, { force: true });
|
|
217
|
-
elVar.$extensionObject = extensionObject;
|
|
218
|
-
}
|
|
219
|
-
// also add the value inside
|
|
220
|
-
uaArrayVariableNode.$$extensionObjectArray.push(elVar.$extensionObject);
|
|
221
|
-
return elVar;
|
|
222
|
-
}
|
|
223
|
-
exports.addElement = addElement;
|
|
224
|
-
/**
|
|
225
|
-
*
|
|
226
|
-
* @method removeElement
|
|
227
|
-
* @param uaArrayVariableNode {UAVariable}
|
|
228
|
-
* @param element {number} index of element to remove in array
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
* @method removeElement
|
|
232
|
-
* @param uaArrayVariableNode {UAVariable}
|
|
233
|
-
* @param element {UAVariable} node of element to remove in array
|
|
234
|
-
*
|
|
235
|
-
* @method removeElement
|
|
236
|
-
* @param uaArrayVariableNode {UAVariable}
|
|
237
|
-
* @param element {ExtensionObject} extension object of the node of element to remove in array
|
|
238
|
-
*
|
|
239
|
-
*/
|
|
240
|
-
function removeElement(uaArrayVariableNode, element /* number | UAVariable | (a any) => boolean | ExtensionObject */) {
|
|
241
|
-
(0, node_opcua_assert_1.assert)(element, "removeElement: element must exist");
|
|
242
|
-
const _array = uaArrayVariableNode.$$extensionObjectArray;
|
|
243
|
-
// istanbul ignore next
|
|
244
|
-
if (_array.length === 0) {
|
|
245
|
-
throw new Error(" cannot remove an element from an empty array ");
|
|
246
|
-
}
|
|
247
|
-
let elementIndex = -1;
|
|
248
|
-
if (typeof element === "number") {
|
|
249
|
-
// find element by index
|
|
250
|
-
elementIndex = element;
|
|
251
|
-
(0, node_opcua_assert_1.assert)(elementIndex >= 0 && elementIndex < _array.length);
|
|
252
|
-
}
|
|
253
|
-
else if (element && element.nodeClass) {
|
|
254
|
-
// find element by name
|
|
255
|
-
const browseNameToFind = element.browseName.name.toString();
|
|
256
|
-
elementIndex = _array.findIndex((obj, i) => {
|
|
257
|
-
const browseName = uaArrayVariableNode.$$getElementBrowseName(obj).toString();
|
|
258
|
-
return browseName === browseNameToFind;
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
else if (typeof element === "function") {
|
|
262
|
-
// find element by functor
|
|
263
|
-
elementIndex = _array.findIndex(element);
|
|
264
|
-
}
|
|
265
|
-
else {
|
|
266
|
-
// find element by inner extension object
|
|
267
|
-
(0, node_opcua_assert_1.assert)(_array[0].constructor.name === element.constructor.name, "element must match");
|
|
268
|
-
elementIndex = _array.findIndex((x) => x === element);
|
|
269
|
-
}
|
|
270
|
-
// istanbul ignore next
|
|
271
|
-
if (elementIndex < 0) {
|
|
272
|
-
throw new Error("removeElement: cannot find element matching " + element.toString());
|
|
273
|
-
}
|
|
274
|
-
return removeElementByIndex(uaArrayVariableNode, elementIndex);
|
|
275
|
-
}
|
|
276
|
-
exports.removeElement = removeElement;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeElement = exports.addElement = exports.bindExtObjArrayNode = exports.createExtObjArrayNode = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space.Private
|
|
6
|
+
*/
|
|
7
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
9
|
+
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
10
|
+
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
11
|
+
const node_opcua_variant_2 = require("node-opcua-variant");
|
|
12
|
+
const node_opcua_variant_3 = require("node-opcua-variant");
|
|
13
|
+
const ua_variable_impl_1 = require("./ua_variable_impl");
|
|
14
|
+
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
|
|
15
|
+
const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
|
|
16
|
+
const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
|
|
17
|
+
/*
|
|
18
|
+
* define a complex Variable containing a array of extension objects
|
|
19
|
+
* each element of the array is also accessible as a component variable.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
function getExtObjArrayNodeValue() {
|
|
23
|
+
return new node_opcua_variant_1.Variant({
|
|
24
|
+
arrayType: node_opcua_variant_3.VariantArrayType.Array,
|
|
25
|
+
dataType: node_opcua_variant_2.DataType.ExtensionObject,
|
|
26
|
+
value: this.$$extensionObjectArray
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function removeElementByIndex(uaArrayVariableNode, elementIndex) {
|
|
30
|
+
const _array = uaArrayVariableNode.$$extensionObjectArray;
|
|
31
|
+
(0, node_opcua_assert_1.assert)(typeof elementIndex === "number");
|
|
32
|
+
const addressSpace = uaArrayVariableNode.addressSpace;
|
|
33
|
+
const extObj = _array[elementIndex];
|
|
34
|
+
const browseName = uaArrayVariableNode.$$getElementBrowseName(extObj);
|
|
35
|
+
// remove element from global array (inefficient)
|
|
36
|
+
uaArrayVariableNode.$$extensionObjectArray.splice(elementIndex, 1);
|
|
37
|
+
// remove matching component
|
|
38
|
+
const node = uaArrayVariableNode.getComponentByName(browseName);
|
|
39
|
+
if (!node) {
|
|
40
|
+
throw new Error(" cannot find component ");
|
|
41
|
+
}
|
|
42
|
+
const hasComponent = uaArrayVariableNode.addressSpace.findReferenceType("HasComponent");
|
|
43
|
+
// remove the hasComponent reference toward node
|
|
44
|
+
uaArrayVariableNode.removeReference({
|
|
45
|
+
isForward: true,
|
|
46
|
+
nodeId: node.nodeId,
|
|
47
|
+
referenceType: hasComponent.nodeId
|
|
48
|
+
});
|
|
49
|
+
// now check if node has still some parent
|
|
50
|
+
const parents = node.findReferencesEx("HasChild", node_opcua_data_model_1.BrowseDirection.Inverse);
|
|
51
|
+
if (parents.length === 0) {
|
|
52
|
+
addressSpace.deleteNode(node.nodeId);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
* create a node Variable that contains a array of ExtensionObject of a given type
|
|
58
|
+
* @method createExtObjArrayNode
|
|
59
|
+
* @param parentFolder
|
|
60
|
+
* @param options
|
|
61
|
+
* @param options.browseName
|
|
62
|
+
* @param options.complexVariableType
|
|
63
|
+
* @param options.variableType the type of Extension objects stored in the array.
|
|
64
|
+
* @param options.indexPropertyName
|
|
65
|
+
* @return {Object|UAVariable}
|
|
66
|
+
*/
|
|
67
|
+
function createExtObjArrayNode(parentFolder, options) {
|
|
68
|
+
(0, node_opcua_assert_1.assert)(typeof options.variableType === "string");
|
|
69
|
+
(0, node_opcua_assert_1.assert)(typeof options.indexPropertyName === "string");
|
|
70
|
+
const addressSpace = parentFolder.addressSpace;
|
|
71
|
+
const namespace = parentFolder.namespace;
|
|
72
|
+
const complexVariableType = addressSpace.findVariableType(options.complexVariableType);
|
|
73
|
+
// istanbul ignore next
|
|
74
|
+
if (!complexVariableType) {
|
|
75
|
+
throw new Error("cannot find complex variable type");
|
|
76
|
+
}
|
|
77
|
+
(0, node_opcua_assert_1.assert)(!complexVariableType.nodeId.isEmpty());
|
|
78
|
+
const variableType = addressSpace.findVariableType(options.variableType);
|
|
79
|
+
if (!variableType) {
|
|
80
|
+
throw new Error("cannot find variable Type");
|
|
81
|
+
}
|
|
82
|
+
(0, node_opcua_assert_1.assert)(!variableType.nodeId.isEmpty());
|
|
83
|
+
const structure = addressSpace.findDataType("Structure");
|
|
84
|
+
(0, node_opcua_assert_1.assert)(structure, "Structure Type not found: please check your nodeset file");
|
|
85
|
+
const dataType = addressSpace.findDataType(variableType.dataType);
|
|
86
|
+
// istanbul ignore next
|
|
87
|
+
if (!dataType) {
|
|
88
|
+
errorLog(variableType.toString());
|
|
89
|
+
throw new Error("cannot find Data Type");
|
|
90
|
+
}
|
|
91
|
+
(0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
|
|
92
|
+
const inner_options = {
|
|
93
|
+
componentOf: parentFolder,
|
|
94
|
+
browseName: options.browseName,
|
|
95
|
+
dataType: dataType.nodeId,
|
|
96
|
+
typeDefinition: complexVariableType.nodeId,
|
|
97
|
+
value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: [], arrayType: node_opcua_variant_3.VariantArrayType.Array },
|
|
98
|
+
valueRank: 1
|
|
99
|
+
};
|
|
100
|
+
const uaArrayVariableNode = namespace.addVariable(inner_options);
|
|
101
|
+
bindExtObjArrayNode(uaArrayVariableNode, options.variableType, options.indexPropertyName);
|
|
102
|
+
return uaArrayVariableNode;
|
|
103
|
+
}
|
|
104
|
+
exports.createExtObjArrayNode = createExtObjArrayNode;
|
|
105
|
+
function _getElementBrowseName(extObj) {
|
|
106
|
+
const indexPropertyName1 = this.$$indexPropertyName;
|
|
107
|
+
if (!Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1)) {
|
|
108
|
+
console.log(" extension object do not have ", indexPropertyName1, extObj);
|
|
109
|
+
}
|
|
110
|
+
// assert(extObj.constructor === addressSpace.constructExtensionObject(dataType));
|
|
111
|
+
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1));
|
|
112
|
+
const browseName = extObj[indexPropertyName1].toString();
|
|
113
|
+
return browseName;
|
|
114
|
+
}
|
|
115
|
+
;
|
|
116
|
+
/**
|
|
117
|
+
* @method bindExtObjArrayNode
|
|
118
|
+
* @param uaArrayVariableNode
|
|
119
|
+
* @param variableTypeNodeId
|
|
120
|
+
* @param indexPropertyName
|
|
121
|
+
* @return
|
|
122
|
+
*/
|
|
123
|
+
function bindExtObjArrayNode(uaArrayVariableNode, variableTypeNodeId, indexPropertyName) {
|
|
124
|
+
(0, node_opcua_assert_1.assert)(uaArrayVariableNode.valueRank === 1, "expecting a one dimension array");
|
|
125
|
+
const addressSpace = uaArrayVariableNode.addressSpace;
|
|
126
|
+
const variableType = addressSpace.findVariableType(variableTypeNodeId);
|
|
127
|
+
// istanbul ignore next
|
|
128
|
+
if (!variableType || variableType.nodeId.isEmpty()) {
|
|
129
|
+
throw new Error("Cannot find VariableType " + variableTypeNodeId.toString());
|
|
130
|
+
}
|
|
131
|
+
const structure = addressSpace.findDataType("Structure");
|
|
132
|
+
// istanbul ignore next
|
|
133
|
+
if (!structure) {
|
|
134
|
+
throw new Error("Structure Type not found: please check your nodeset file");
|
|
135
|
+
}
|
|
136
|
+
let dataType = addressSpace.findDataType(variableType.dataType);
|
|
137
|
+
// istanbul ignore next
|
|
138
|
+
if (!dataType) {
|
|
139
|
+
throw new Error("Cannot find DataType " + variableType.dataType.toString());
|
|
140
|
+
}
|
|
141
|
+
(0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
|
|
142
|
+
(0, node_opcua_assert_1.assert)(!uaArrayVariableNode.$$variableType, "uaArrayVariableNode has already been bound !");
|
|
143
|
+
uaArrayVariableNode.$$variableType = variableType;
|
|
144
|
+
// verify that an object with same doesn't already exist
|
|
145
|
+
dataType = addressSpace.findDataType(variableType.dataType);
|
|
146
|
+
(0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
|
|
147
|
+
uaArrayVariableNode.$$dataType = dataType;
|
|
148
|
+
uaArrayVariableNode.$$extensionObjectArray = [];
|
|
149
|
+
uaArrayVariableNode.$$indexPropertyName = indexPropertyName;
|
|
150
|
+
uaArrayVariableNode.$$getElementBrowseName = _getElementBrowseName;
|
|
151
|
+
const bindOptions = {
|
|
152
|
+
get: getExtObjArrayNodeValue,
|
|
153
|
+
set: undefined // readonly
|
|
154
|
+
};
|
|
155
|
+
// bind the readonly
|
|
156
|
+
uaArrayVariableNode.bindVariable(bindOptions, true);
|
|
157
|
+
return uaArrayVariableNode;
|
|
158
|
+
}
|
|
159
|
+
exports.bindExtObjArrayNode = bindExtObjArrayNode;
|
|
160
|
+
/**
|
|
161
|
+
* @method addElement
|
|
162
|
+
* add a new element in a ExtensionObject Array variable
|
|
163
|
+
* @param options {Object} data used to construct the underlying ExtensionObject
|
|
164
|
+
* @param uaArrayVariableNode {UAVariable}
|
|
165
|
+
* @return {UAVariable}
|
|
166
|
+
*
|
|
167
|
+
* @method addElement
|
|
168
|
+
* add a new element in a ExtensionObject Array variable
|
|
169
|
+
* @param nodeVariable a variable already exposing an extension objects
|
|
170
|
+
* @param uaArrayVariableNode {UAVariable}
|
|
171
|
+
* @return {UAVariable}
|
|
172
|
+
*
|
|
173
|
+
* @method addElement
|
|
174
|
+
* add a new element in a ExtensionObject Array variable
|
|
175
|
+
* @param constructor constructor of the extension object to create
|
|
176
|
+
* @param uaArrayVariableNode {UAVariable}
|
|
177
|
+
* @return {UAVariable}
|
|
178
|
+
*/
|
|
179
|
+
function addElement(options /* ExtensionObjectConstructor | ExtensionObject | UAVariable*/, uaArrayVariableNode) {
|
|
180
|
+
(0, node_opcua_assert_1.assert)(uaArrayVariableNode, " must provide an UAVariable containing the array");
|
|
181
|
+
// verify that arr has been created correctly
|
|
182
|
+
(0, node_opcua_assert_1.assert)(!!uaArrayVariableNode.$$variableType && !!uaArrayVariableNode.$$dataType, "did you create the array Node with createExtObjArrayNode ?");
|
|
183
|
+
(0, node_opcua_assert_1.assert)(uaArrayVariableNode.$$dataType.nodeClass === node_opcua_data_model_1.NodeClass.DataType);
|
|
184
|
+
const addressSpace = uaArrayVariableNode.addressSpace;
|
|
185
|
+
const Constructor = addressSpace.getExtensionObjectConstructor(uaArrayVariableNode.$$dataType);
|
|
186
|
+
(0, node_opcua_assert_1.assert)(Constructor instanceof Function);
|
|
187
|
+
let extensionObject;
|
|
188
|
+
let elVar = null;
|
|
189
|
+
let browseName;
|
|
190
|
+
if (options instanceof ua_variable_impl_1.UAVariableImpl) {
|
|
191
|
+
elVar = options;
|
|
192
|
+
extensionObject = elVar.$extensionObject; // get shared extension object
|
|
193
|
+
(0, node_opcua_assert_1.assert)(extensionObject instanceof Constructor, "the provided variable must expose a Extension Object of the expected type ");
|
|
194
|
+
// add a reference
|
|
195
|
+
uaArrayVariableNode.addReference({
|
|
196
|
+
isForward: true,
|
|
197
|
+
nodeId: elVar.nodeId,
|
|
198
|
+
referenceType: "HasComponent"
|
|
199
|
+
});
|
|
200
|
+
// xx elVar.bindExtensionObject();
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
if (options instanceof Constructor) {
|
|
204
|
+
// extension object has already been created
|
|
205
|
+
extensionObject = options;
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
extensionObject = addressSpace.constructExtensionObject(uaArrayVariableNode.$$dataType, options);
|
|
209
|
+
}
|
|
210
|
+
browseName = uaArrayVariableNode.$$getElementBrowseName(extensionObject);
|
|
211
|
+
elVar = uaArrayVariableNode.$$variableType.instantiate({
|
|
212
|
+
browseName,
|
|
213
|
+
componentOf: uaArrayVariableNode.nodeId,
|
|
214
|
+
value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: extensionObject }
|
|
215
|
+
});
|
|
216
|
+
elVar.bindExtensionObject(extensionObject, { force: true });
|
|
217
|
+
elVar.$extensionObject = extensionObject;
|
|
218
|
+
}
|
|
219
|
+
// also add the value inside
|
|
220
|
+
uaArrayVariableNode.$$extensionObjectArray.push(elVar.$extensionObject);
|
|
221
|
+
return elVar;
|
|
222
|
+
}
|
|
223
|
+
exports.addElement = addElement;
|
|
224
|
+
/**
|
|
225
|
+
*
|
|
226
|
+
* @method removeElement
|
|
227
|
+
* @param uaArrayVariableNode {UAVariable}
|
|
228
|
+
* @param element {number} index of element to remove in array
|
|
229
|
+
*
|
|
230
|
+
*
|
|
231
|
+
* @method removeElement
|
|
232
|
+
* @param uaArrayVariableNode {UAVariable}
|
|
233
|
+
* @param element {UAVariable} node of element to remove in array
|
|
234
|
+
*
|
|
235
|
+
* @method removeElement
|
|
236
|
+
* @param uaArrayVariableNode {UAVariable}
|
|
237
|
+
* @param element {ExtensionObject} extension object of the node of element to remove in array
|
|
238
|
+
*
|
|
239
|
+
*/
|
|
240
|
+
function removeElement(uaArrayVariableNode, element /* number | UAVariable | (a any) => boolean | ExtensionObject */) {
|
|
241
|
+
(0, node_opcua_assert_1.assert)(element, "removeElement: element must exist");
|
|
242
|
+
const _array = uaArrayVariableNode.$$extensionObjectArray;
|
|
243
|
+
// istanbul ignore next
|
|
244
|
+
if (_array.length === 0) {
|
|
245
|
+
throw new Error(" cannot remove an element from an empty array ");
|
|
246
|
+
}
|
|
247
|
+
let elementIndex = -1;
|
|
248
|
+
if (typeof element === "number") {
|
|
249
|
+
// find element by index
|
|
250
|
+
elementIndex = element;
|
|
251
|
+
(0, node_opcua_assert_1.assert)(elementIndex >= 0 && elementIndex < _array.length);
|
|
252
|
+
}
|
|
253
|
+
else if (element && element.nodeClass) {
|
|
254
|
+
// find element by name
|
|
255
|
+
const browseNameToFind = element.browseName.name.toString();
|
|
256
|
+
elementIndex = _array.findIndex((obj, i) => {
|
|
257
|
+
const browseName = uaArrayVariableNode.$$getElementBrowseName(obj).toString();
|
|
258
|
+
return browseName === browseNameToFind;
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
else if (typeof element === "function") {
|
|
262
|
+
// find element by functor
|
|
263
|
+
elementIndex = _array.findIndex(element);
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
// find element by inner extension object
|
|
267
|
+
(0, node_opcua_assert_1.assert)(_array[0].constructor.name === element.constructor.name, "element must match");
|
|
268
|
+
elementIndex = _array.findIndex((x) => x === element);
|
|
269
|
+
}
|
|
270
|
+
// istanbul ignore next
|
|
271
|
+
if (elementIndex < 0) {
|
|
272
|
+
throw new Error("removeElement: cannot find element matching " + element.toString());
|
|
273
|
+
}
|
|
274
|
+
return removeElementByIndex(uaArrayVariableNode, elementIndex);
|
|
275
|
+
}
|
|
276
|
+
exports.removeElement = removeElement;
|
|
277
277
|
//# sourceMappingURL=extension_object_array_node.js.map
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module node-opcua-address-space
|
|
3
|
-
* @class IAddressSpace
|
|
4
|
-
*/
|
|
5
|
-
import { DataValue } from "node-opcua-data-value";
|
|
6
|
-
import { ReadRawModifiedDetails } from "node-opcua-service-history";
|
|
7
|
-
import { CallbackT } from "node-opcua-status-code";
|
|
8
|
-
import { IAddressSpace, IVariableHistorian, IVariableHistorianOptions, UAVariable } from "node-opcua-address-space-base";
|
|
9
|
-
import { UAVariableImpl } from "../ua_variable_impl";
|
|
10
|
-
export declare class VariableHistorian implements IVariableHistorian {
|
|
11
|
-
readonly node: UAVariable;
|
|
12
|
-
private readonly _timeline;
|
|
13
|
-
private readonly _maxOnlineValues;
|
|
14
|
-
private lastDate;
|
|
15
|
-
private lastDatePicoSeconds;
|
|
16
|
-
constructor(node: UAVariable, options: IVariableHistorianOptions);
|
|
17
|
-
push(newDataValue: DataValue): any;
|
|
18
|
-
extractDataValues(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): void;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @method installHistoricalDataNode
|
|
22
|
-
* @param node UAVariable
|
|
23
|
-
* @param [options] {Object}
|
|
24
|
-
* @param [options.maxOnlineValues = 1000]
|
|
25
|
-
*/
|
|
26
|
-
export declare function AddressSpace_installHistoricalDataNode(this: IAddressSpace, node: UAVariableImpl, options?: IVariableHistorianOptions): void;
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-address-space
|
|
3
|
+
* @class IAddressSpace
|
|
4
|
+
*/
|
|
5
|
+
import { DataValue } from "node-opcua-data-value";
|
|
6
|
+
import { ReadRawModifiedDetails } from "node-opcua-service-history";
|
|
7
|
+
import { CallbackT } from "node-opcua-status-code";
|
|
8
|
+
import { IAddressSpace, IVariableHistorian, IVariableHistorianOptions, UAVariable } from "node-opcua-address-space-base";
|
|
9
|
+
import { UAVariableImpl } from "../ua_variable_impl";
|
|
10
|
+
export declare class VariableHistorian implements IVariableHistorian {
|
|
11
|
+
readonly node: UAVariable;
|
|
12
|
+
private readonly _timeline;
|
|
13
|
+
private readonly _maxOnlineValues;
|
|
14
|
+
private lastDate;
|
|
15
|
+
private lastDatePicoSeconds;
|
|
16
|
+
constructor(node: UAVariable, options: IVariableHistorianOptions);
|
|
17
|
+
push(newDataValue: DataValue): any;
|
|
18
|
+
extractDataValues(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @method installHistoricalDataNode
|
|
22
|
+
* @param node UAVariable
|
|
23
|
+
* @param [options] {Object}
|
|
24
|
+
* @param [options.maxOnlineValues = 1000]
|
|
25
|
+
*/
|
|
26
|
+
export declare function AddressSpace_installHistoricalDataNode(this: IAddressSpace, node: UAVariableImpl, options?: IVariableHistorianOptions): void;
|