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,250 +1,250 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._addMultiStateValueDiscrete = exports.promoteToMultiStateValueDiscrete = exports.UAMultiStateValueDiscreteImpl = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @module node-opcua-address-space.DataAccess
|
|
6
|
-
*/
|
|
7
|
-
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
-
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
9
|
-
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
10
|
-
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
11
|
-
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
12
|
-
const node_opcua_constants_1 = require("node-opcua-constants");
|
|
13
|
-
const register_node_promoter_1 = require("../../source/loader/register_node_promoter");
|
|
14
|
-
const coerce_enum_value_1 = require("../../source/helpers/coerce_enum_value");
|
|
15
|
-
const ua_variable_impl_1 = require("../ua_variable_impl");
|
|
16
|
-
const add_dataItem_stuff_1 = require("./add_dataItem_stuff");
|
|
17
|
-
function install_synchronization(variable) {
|
|
18
|
-
const _variable = variable;
|
|
19
|
-
_variable.on("value_changed", (value) => {
|
|
20
|
-
const valueAsTextNode = variable.valueAsText || _variable.getComponentByName("ValueAsText");
|
|
21
|
-
if (!valueAsTextNode) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const valueAsText1 = _variable.findValueAsText(value.value.value);
|
|
25
|
-
valueAsTextNode.setValueFromSource(valueAsText1);
|
|
26
|
-
});
|
|
27
|
-
_variable.emit("value_changed", _variable.readValue());
|
|
28
|
-
}
|
|
29
|
-
class UAMultiStateValueDiscreteImpl extends ua_variable_impl_1.UAVariableImpl {
|
|
30
|
-
setValue(value) {
|
|
31
|
-
if (typeof value === "string") {
|
|
32
|
-
const enumValues = this.enumValues.readValue().value.value;
|
|
33
|
-
const selected = enumValues.filter((a) => a.displayName.text === value)[0];
|
|
34
|
-
if (selected) {
|
|
35
|
-
this._setValue(selected.value);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
throw new Error("cannot find enum string " + value + " in " + enumValues.toString());
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
this._setValue((0, node_opcua_basic_types_1.coerceUInt64)(value));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
getValueAsString() {
|
|
46
|
-
return this.valueAsText.readValue().value.value.text || "";
|
|
47
|
-
}
|
|
48
|
-
getValueAsNumber() {
|
|
49
|
-
return this.readValue().value.value;
|
|
50
|
-
}
|
|
51
|
-
checkVariantCompatibility(value) {
|
|
52
|
-
if (this.enumValues) {
|
|
53
|
-
if (!this._isValueInRange((0, node_opcua_basic_types_1.coerceInt32)(value.value))) {
|
|
54
|
-
return node_opcua_status_code_1.StatusCodes.BadOutOfRange;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return node_opcua_status_code_1.StatusCodes.Good;
|
|
58
|
-
}
|
|
59
|
-
clone(options1, optionalFilter, extraInfo) {
|
|
60
|
-
const variable1 = ua_variable_impl_1.UAVariableImpl.prototype.clone.call(this, options1, optionalFilter, extraInfo);
|
|
61
|
-
return promoteToMultiStateValueDiscrete(variable1);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* @private
|
|
65
|
-
*/
|
|
66
|
-
_isValueInRange(value) {
|
|
67
|
-
// MultiStateValueDiscreteType
|
|
68
|
-
const enumValues = this.enumValues.readValue().value.value;
|
|
69
|
-
const e = enumValues.findIndex((x) => (0, node_opcua_basic_types_1.coerceInt32)(x.value) === value);
|
|
70
|
-
return !(e === -1);
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
*
|
|
74
|
-
* @private
|
|
75
|
-
*/
|
|
76
|
-
_enumValueIndex() {
|
|
77
|
-
// construct an index to quickly find a EnumValue from a value
|
|
78
|
-
const enumValues = this.enumValues.readValue().value.value;
|
|
79
|
-
const enumValueIndex = {};
|
|
80
|
-
if (!enumValues || !enumValues.forEach) {
|
|
81
|
-
return enumValueIndex;
|
|
82
|
-
}
|
|
83
|
-
enumValues.forEach((e) => {
|
|
84
|
-
enumValueIndex[e.value[1]] = e;
|
|
85
|
-
});
|
|
86
|
-
return enumValueIndex;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
*
|
|
90
|
-
* @private
|
|
91
|
-
*/
|
|
92
|
-
_setValue(value) {
|
|
93
|
-
// check that value is in bound
|
|
94
|
-
if (!this._isValueInRange((0, node_opcua_basic_types_1.coerceInt32)(value))) {
|
|
95
|
-
throw new Error("UAMultiStateValueDiscrete#_setValue out of range " + value);
|
|
96
|
-
}
|
|
97
|
-
const dataType = this._getDataType();
|
|
98
|
-
if (dataType === node_opcua_variant_1.DataType.Int64 || dataType === node_opcua_variant_1.DataType.UInt64) {
|
|
99
|
-
this.setValueFromSource({ dataType, value });
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
const valueN = value[1];
|
|
103
|
-
this.setValueFromSource({ dataType, value: valueN });
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
*
|
|
108
|
-
* @private
|
|
109
|
-
*/
|
|
110
|
-
findValueAsText(value) {
|
|
111
|
-
const enumValueIndex = this._enumValueIndex();
|
|
112
|
-
if (value === undefined) {
|
|
113
|
-
throw new Error("Unexpected undefined value");
|
|
114
|
-
}
|
|
115
|
-
if (value instanceof Array) {
|
|
116
|
-
value = value[1];
|
|
117
|
-
}
|
|
118
|
-
(0, node_opcua_assert_1.assert)(!(value instanceof node_opcua_variant_1.Variant));
|
|
119
|
-
let valueAsText1 = "Invalid";
|
|
120
|
-
if (enumValueIndex[value]) {
|
|
121
|
-
valueAsText1 = enumValueIndex[value].displayName;
|
|
122
|
-
}
|
|
123
|
-
const result = new node_opcua_variant_1.Variant({
|
|
124
|
-
dataType: node_opcua_variant_1.DataType.LocalizedText,
|
|
125
|
-
value: (0, node_opcua_data_model_1.coerceLocalizedText)(valueAsText1)
|
|
126
|
-
});
|
|
127
|
-
return result;
|
|
128
|
-
}
|
|
129
|
-
_getDataType() {
|
|
130
|
-
if (this.dataType.value === 26 /* Number */) {
|
|
131
|
-
return node_opcua_variant_1.DataType.UInt32;
|
|
132
|
-
}
|
|
133
|
-
const dataTypeStr = node_opcua_variant_1.DataType[this.dataType.value];
|
|
134
|
-
return node_opcua_variant_1.DataType[dataTypeStr];
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
*
|
|
138
|
-
* @private
|
|
139
|
-
*/
|
|
140
|
-
_post_initialize() {
|
|
141
|
-
// MultiStateValueDiscrete Variables can have any numeric Data Type;
|
|
142
|
-
// this includes signed and unsigned integers from 8 to 64 Bit length.
|
|
143
|
-
// istanbul ignore next
|
|
144
|
-
if (typeof this.dataType.value !== "number" ||
|
|
145
|
-
[
|
|
146
|
-
node_opcua_variant_1.DataType.UInt64,
|
|
147
|
-
node_opcua_variant_1.DataType.Int64,
|
|
148
|
-
node_opcua_variant_1.DataType.UInt32,
|
|
149
|
-
node_opcua_variant_1.DataType.Int32,
|
|
150
|
-
node_opcua_variant_1.DataType.UInt16,
|
|
151
|
-
node_opcua_variant_1.DataType.Int16,
|
|
152
|
-
node_opcua_variant_1.DataType.Byte,
|
|
153
|
-
node_opcua_variant_1.DataType.Byte,
|
|
154
|
-
node_opcua_variant_1.DataType.SByte,
|
|
155
|
-
26 /*Number*/
|
|
156
|
-
].indexOf(this.dataType.value) <= 0) {
|
|
157
|
-
throw new Error("Invalid DataType in UAMultiStateValueDiscrete =>" + this.dataType.toString());
|
|
158
|
-
}
|
|
159
|
-
// find the enum value type
|
|
160
|
-
install_synchronization(this);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
exports.UAMultiStateValueDiscreteImpl = UAMultiStateValueDiscreteImpl;
|
|
164
|
-
function promoteToMultiStateValueDiscrete(node) {
|
|
165
|
-
if (node instanceof UAMultiStateValueDiscreteImpl) {
|
|
166
|
-
return node; // already promoted
|
|
167
|
-
}
|
|
168
|
-
Object.setPrototypeOf(node, UAMultiStateValueDiscreteImpl.prototype);
|
|
169
|
-
(0, node_opcua_assert_1.assert)(node instanceof UAMultiStateValueDiscreteImpl, "should now be a State Machine");
|
|
170
|
-
node._post_initialize();
|
|
171
|
-
return node;
|
|
172
|
-
}
|
|
173
|
-
exports.promoteToMultiStateValueDiscrete = promoteToMultiStateValueDiscrete;
|
|
174
|
-
(0, register_node_promoter_1.registerNodePromoter)(node_opcua_constants_1.VariableTypeIds.MultiStateValueDiscreteType, promoteToMultiStateValueDiscrete);
|
|
175
|
-
function _addMultiStateValueDiscrete(namespace, options) {
|
|
176
|
-
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(options, "enumValues"));
|
|
177
|
-
(0, node_opcua_assert_1.assert)(!Object.prototype.hasOwnProperty.call(options, "ValuePrecision"));
|
|
178
|
-
const addressSpace = namespace.addressSpace;
|
|
179
|
-
const multiStateValueDiscreteType = addressSpace.findVariableType("MultiStateValueDiscreteType");
|
|
180
|
-
if (!multiStateValueDiscreteType) {
|
|
181
|
-
throw new Error("expecting MultiStateValueDiscreteType to be defined , check nodeset xml file");
|
|
182
|
-
}
|
|
183
|
-
// todo : if options.typeDefinition is specified, check that type is SubTypeOf MultiStateDiscreteType
|
|
184
|
-
// EnumValueType
|
|
185
|
-
// value: Int64, displayName: LocalizedText, Description: LocalizedText
|
|
186
|
-
const enumValues = (0, coerce_enum_value_1.coerceEnumValues)(options.enumValues);
|
|
187
|
-
if (options.value === undefined && enumValues[0]) {
|
|
188
|
-
options.value = enumValues[0].value; // Int64
|
|
189
|
-
}
|
|
190
|
-
let value;
|
|
191
|
-
if (typeof options.value === "number" || (0, node_opcua_basic_types_1.isValidUInt64)(options.value)) {
|
|
192
|
-
if ((0, node_opcua_basic_types_1.isValidUInt64)(options.value)) {
|
|
193
|
-
value = new node_opcua_variant_1.Variant({
|
|
194
|
-
dataType: node_opcua_variant_1.DataType.UInt32,
|
|
195
|
-
value: options.value[1] // Low word
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
value = new node_opcua_variant_1.Variant({
|
|
200
|
-
dataType: node_opcua_variant_1.DataType.UInt32,
|
|
201
|
-
value: options.value
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
value = options.value;
|
|
207
|
-
}
|
|
208
|
-
const cloned_options = Object.assign(Object.assign({}, options), { dataType: node_opcua_variant_1.DataType.UInt32, typeDefinition: multiStateValueDiscreteType.nodeId,
|
|
209
|
-
// valueRank:
|
|
210
|
-
// note : OPCUA Spec 1.03 specifies -1:Scalar (part 8 page 8) but nodeset file specifies -2:Any
|
|
211
|
-
value, valueRank: -1 // -1 : Scalar
|
|
212
|
-
});
|
|
213
|
-
const variable = namespace.addVariable(cloned_options);
|
|
214
|
-
(0, add_dataItem_stuff_1.add_dataItem_stuff)(variable, options);
|
|
215
|
-
namespace.addVariable({
|
|
216
|
-
accessLevel: "CurrentRead",
|
|
217
|
-
browseName: { name: "EnumValues", namespaceIndex: 0 },
|
|
218
|
-
dataType: "EnumValueType",
|
|
219
|
-
valueRank: 1,
|
|
220
|
-
minimumSamplingInterval: 0,
|
|
221
|
-
modellingRule: options.modellingRule ? "Mandatory" : undefined,
|
|
222
|
-
propertyOf: variable,
|
|
223
|
-
typeDefinition: "PropertyType",
|
|
224
|
-
userAccessLevel: "CurrentRead",
|
|
225
|
-
value: new node_opcua_variant_1.Variant({
|
|
226
|
-
arrayType: node_opcua_variant_1.VariantArrayType.Array,
|
|
227
|
-
dataType: node_opcua_variant_1.DataType.ExtensionObject,
|
|
228
|
-
value: enumValues
|
|
229
|
-
})
|
|
230
|
-
});
|
|
231
|
-
namespace.addVariable({
|
|
232
|
-
accessLevel: "CurrentRead",
|
|
233
|
-
browseName: { name: "ValueAsText", namespaceIndex: 0 },
|
|
234
|
-
dataType: node_opcua_variant_1.DataType.LocalizedText,
|
|
235
|
-
minimumSamplingInterval: 0,
|
|
236
|
-
modellingRule: options.modellingRule ? "Mandatory" : undefined,
|
|
237
|
-
propertyOf: variable,
|
|
238
|
-
typeDefinition: "PropertyType",
|
|
239
|
-
userAccessLevel: "CurrentRead"
|
|
240
|
-
// value: valueAsText
|
|
241
|
-
});
|
|
242
|
-
// install additional helpers methods
|
|
243
|
-
variable.install_extra_properties();
|
|
244
|
-
promoteToMultiStateValueDiscrete(variable);
|
|
245
|
-
(0, node_opcua_assert_1.assert)(variable.enumValues.browseName.toString() === "EnumValues");
|
|
246
|
-
(0, node_opcua_assert_1.assert)(variable.valueAsText.browseName.toString() === "ValueAsText");
|
|
247
|
-
return variable;
|
|
248
|
-
}
|
|
249
|
-
exports._addMultiStateValueDiscrete = _addMultiStateValueDiscrete;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._addMultiStateValueDiscrete = exports.promoteToMultiStateValueDiscrete = exports.UAMultiStateValueDiscreteImpl = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space.DataAccess
|
|
6
|
+
*/
|
|
7
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
+
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
9
|
+
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
10
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
11
|
+
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
12
|
+
const node_opcua_constants_1 = require("node-opcua-constants");
|
|
13
|
+
const register_node_promoter_1 = require("../../source/loader/register_node_promoter");
|
|
14
|
+
const coerce_enum_value_1 = require("../../source/helpers/coerce_enum_value");
|
|
15
|
+
const ua_variable_impl_1 = require("../ua_variable_impl");
|
|
16
|
+
const add_dataItem_stuff_1 = require("./add_dataItem_stuff");
|
|
17
|
+
function install_synchronization(variable) {
|
|
18
|
+
const _variable = variable;
|
|
19
|
+
_variable.on("value_changed", (value) => {
|
|
20
|
+
const valueAsTextNode = variable.valueAsText || _variable.getComponentByName("ValueAsText");
|
|
21
|
+
if (!valueAsTextNode) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const valueAsText1 = _variable.findValueAsText(value.value.value);
|
|
25
|
+
valueAsTextNode.setValueFromSource(valueAsText1);
|
|
26
|
+
});
|
|
27
|
+
_variable.emit("value_changed", _variable.readValue());
|
|
28
|
+
}
|
|
29
|
+
class UAMultiStateValueDiscreteImpl extends ua_variable_impl_1.UAVariableImpl {
|
|
30
|
+
setValue(value) {
|
|
31
|
+
if (typeof value === "string") {
|
|
32
|
+
const enumValues = this.enumValues.readValue().value.value;
|
|
33
|
+
const selected = enumValues.filter((a) => a.displayName.text === value)[0];
|
|
34
|
+
if (selected) {
|
|
35
|
+
this._setValue(selected.value);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
throw new Error("cannot find enum string " + value + " in " + enumValues.toString());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this._setValue((0, node_opcua_basic_types_1.coerceUInt64)(value));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
getValueAsString() {
|
|
46
|
+
return this.valueAsText.readValue().value.value.text || "";
|
|
47
|
+
}
|
|
48
|
+
getValueAsNumber() {
|
|
49
|
+
return this.readValue().value.value;
|
|
50
|
+
}
|
|
51
|
+
checkVariantCompatibility(value) {
|
|
52
|
+
if (this.enumValues) {
|
|
53
|
+
if (!this._isValueInRange((0, node_opcua_basic_types_1.coerceInt32)(value.value))) {
|
|
54
|
+
return node_opcua_status_code_1.StatusCodes.BadOutOfRange;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return node_opcua_status_code_1.StatusCodes.Good;
|
|
58
|
+
}
|
|
59
|
+
clone(options1, optionalFilter, extraInfo) {
|
|
60
|
+
const variable1 = ua_variable_impl_1.UAVariableImpl.prototype.clone.call(this, options1, optionalFilter, extraInfo);
|
|
61
|
+
return promoteToMultiStateValueDiscrete(variable1);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
_isValueInRange(value) {
|
|
67
|
+
// MultiStateValueDiscreteType
|
|
68
|
+
const enumValues = this.enumValues.readValue().value.value;
|
|
69
|
+
const e = enumValues.findIndex((x) => (0, node_opcua_basic_types_1.coerceInt32)(x.value) === value);
|
|
70
|
+
return !(e === -1);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
*
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
76
|
+
_enumValueIndex() {
|
|
77
|
+
// construct an index to quickly find a EnumValue from a value
|
|
78
|
+
const enumValues = this.enumValues.readValue().value.value;
|
|
79
|
+
const enumValueIndex = {};
|
|
80
|
+
if (!enumValues || !enumValues.forEach) {
|
|
81
|
+
return enumValueIndex;
|
|
82
|
+
}
|
|
83
|
+
enumValues.forEach((e) => {
|
|
84
|
+
enumValueIndex[e.value[1]] = e;
|
|
85
|
+
});
|
|
86
|
+
return enumValueIndex;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
*
|
|
90
|
+
* @private
|
|
91
|
+
*/
|
|
92
|
+
_setValue(value) {
|
|
93
|
+
// check that value is in bound
|
|
94
|
+
if (!this._isValueInRange((0, node_opcua_basic_types_1.coerceInt32)(value))) {
|
|
95
|
+
throw new Error("UAMultiStateValueDiscrete#_setValue out of range " + value);
|
|
96
|
+
}
|
|
97
|
+
const dataType = this._getDataType();
|
|
98
|
+
if (dataType === node_opcua_variant_1.DataType.Int64 || dataType === node_opcua_variant_1.DataType.UInt64) {
|
|
99
|
+
this.setValueFromSource({ dataType, value });
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const valueN = value[1];
|
|
103
|
+
this.setValueFromSource({ dataType, value: valueN });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
*
|
|
108
|
+
* @private
|
|
109
|
+
*/
|
|
110
|
+
findValueAsText(value) {
|
|
111
|
+
const enumValueIndex = this._enumValueIndex();
|
|
112
|
+
if (value === undefined) {
|
|
113
|
+
throw new Error("Unexpected undefined value");
|
|
114
|
+
}
|
|
115
|
+
if (value instanceof Array) {
|
|
116
|
+
value = value[1];
|
|
117
|
+
}
|
|
118
|
+
(0, node_opcua_assert_1.assert)(!(value instanceof node_opcua_variant_1.Variant));
|
|
119
|
+
let valueAsText1 = "Invalid";
|
|
120
|
+
if (enumValueIndex[value]) {
|
|
121
|
+
valueAsText1 = enumValueIndex[value].displayName;
|
|
122
|
+
}
|
|
123
|
+
const result = new node_opcua_variant_1.Variant({
|
|
124
|
+
dataType: node_opcua_variant_1.DataType.LocalizedText,
|
|
125
|
+
value: (0, node_opcua_data_model_1.coerceLocalizedText)(valueAsText1)
|
|
126
|
+
});
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
_getDataType() {
|
|
130
|
+
if (this.dataType.value === 26 /* Number */) {
|
|
131
|
+
return node_opcua_variant_1.DataType.UInt32;
|
|
132
|
+
}
|
|
133
|
+
const dataTypeStr = node_opcua_variant_1.DataType[this.dataType.value];
|
|
134
|
+
return node_opcua_variant_1.DataType[dataTypeStr];
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
*
|
|
138
|
+
* @private
|
|
139
|
+
*/
|
|
140
|
+
_post_initialize() {
|
|
141
|
+
// MultiStateValueDiscrete Variables can have any numeric Data Type;
|
|
142
|
+
// this includes signed and unsigned integers from 8 to 64 Bit length.
|
|
143
|
+
// istanbul ignore next
|
|
144
|
+
if (typeof this.dataType.value !== "number" ||
|
|
145
|
+
[
|
|
146
|
+
node_opcua_variant_1.DataType.UInt64,
|
|
147
|
+
node_opcua_variant_1.DataType.Int64,
|
|
148
|
+
node_opcua_variant_1.DataType.UInt32,
|
|
149
|
+
node_opcua_variant_1.DataType.Int32,
|
|
150
|
+
node_opcua_variant_1.DataType.UInt16,
|
|
151
|
+
node_opcua_variant_1.DataType.Int16,
|
|
152
|
+
node_opcua_variant_1.DataType.Byte,
|
|
153
|
+
node_opcua_variant_1.DataType.Byte,
|
|
154
|
+
node_opcua_variant_1.DataType.SByte,
|
|
155
|
+
26 /*Number*/
|
|
156
|
+
].indexOf(this.dataType.value) <= 0) {
|
|
157
|
+
throw new Error("Invalid DataType in UAMultiStateValueDiscrete =>" + this.dataType.toString());
|
|
158
|
+
}
|
|
159
|
+
// find the enum value type
|
|
160
|
+
install_synchronization(this);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.UAMultiStateValueDiscreteImpl = UAMultiStateValueDiscreteImpl;
|
|
164
|
+
function promoteToMultiStateValueDiscrete(node) {
|
|
165
|
+
if (node instanceof UAMultiStateValueDiscreteImpl) {
|
|
166
|
+
return node; // already promoted
|
|
167
|
+
}
|
|
168
|
+
Object.setPrototypeOf(node, UAMultiStateValueDiscreteImpl.prototype);
|
|
169
|
+
(0, node_opcua_assert_1.assert)(node instanceof UAMultiStateValueDiscreteImpl, "should now be a State Machine");
|
|
170
|
+
node._post_initialize();
|
|
171
|
+
return node;
|
|
172
|
+
}
|
|
173
|
+
exports.promoteToMultiStateValueDiscrete = promoteToMultiStateValueDiscrete;
|
|
174
|
+
(0, register_node_promoter_1.registerNodePromoter)(node_opcua_constants_1.VariableTypeIds.MultiStateValueDiscreteType, promoteToMultiStateValueDiscrete);
|
|
175
|
+
function _addMultiStateValueDiscrete(namespace, options) {
|
|
176
|
+
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(options, "enumValues"));
|
|
177
|
+
(0, node_opcua_assert_1.assert)(!Object.prototype.hasOwnProperty.call(options, "ValuePrecision"));
|
|
178
|
+
const addressSpace = namespace.addressSpace;
|
|
179
|
+
const multiStateValueDiscreteType = addressSpace.findVariableType("MultiStateValueDiscreteType");
|
|
180
|
+
if (!multiStateValueDiscreteType) {
|
|
181
|
+
throw new Error("expecting MultiStateValueDiscreteType to be defined , check nodeset xml file");
|
|
182
|
+
}
|
|
183
|
+
// todo : if options.typeDefinition is specified, check that type is SubTypeOf MultiStateDiscreteType
|
|
184
|
+
// EnumValueType
|
|
185
|
+
// value: Int64, displayName: LocalizedText, Description: LocalizedText
|
|
186
|
+
const enumValues = (0, coerce_enum_value_1.coerceEnumValues)(options.enumValues);
|
|
187
|
+
if (options.value === undefined && enumValues[0]) {
|
|
188
|
+
options.value = enumValues[0].value; // Int64
|
|
189
|
+
}
|
|
190
|
+
let value;
|
|
191
|
+
if (typeof options.value === "number" || (0, node_opcua_basic_types_1.isValidUInt64)(options.value)) {
|
|
192
|
+
if ((0, node_opcua_basic_types_1.isValidUInt64)(options.value)) {
|
|
193
|
+
value = new node_opcua_variant_1.Variant({
|
|
194
|
+
dataType: node_opcua_variant_1.DataType.UInt32,
|
|
195
|
+
value: options.value[1] // Low word
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
value = new node_opcua_variant_1.Variant({
|
|
200
|
+
dataType: node_opcua_variant_1.DataType.UInt32,
|
|
201
|
+
value: options.value
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
value = options.value;
|
|
207
|
+
}
|
|
208
|
+
const cloned_options = Object.assign(Object.assign({}, options), { dataType: node_opcua_variant_1.DataType.UInt32, typeDefinition: multiStateValueDiscreteType.nodeId,
|
|
209
|
+
// valueRank:
|
|
210
|
+
// note : OPCUA Spec 1.03 specifies -1:Scalar (part 8 page 8) but nodeset file specifies -2:Any
|
|
211
|
+
value, valueRank: -1 // -1 : Scalar
|
|
212
|
+
});
|
|
213
|
+
const variable = namespace.addVariable(cloned_options);
|
|
214
|
+
(0, add_dataItem_stuff_1.add_dataItem_stuff)(variable, options);
|
|
215
|
+
namespace.addVariable({
|
|
216
|
+
accessLevel: "CurrentRead",
|
|
217
|
+
browseName: { name: "EnumValues", namespaceIndex: 0 },
|
|
218
|
+
dataType: "EnumValueType",
|
|
219
|
+
valueRank: 1,
|
|
220
|
+
minimumSamplingInterval: 0,
|
|
221
|
+
modellingRule: options.modellingRule ? "Mandatory" : undefined,
|
|
222
|
+
propertyOf: variable,
|
|
223
|
+
typeDefinition: "PropertyType",
|
|
224
|
+
userAccessLevel: "CurrentRead",
|
|
225
|
+
value: new node_opcua_variant_1.Variant({
|
|
226
|
+
arrayType: node_opcua_variant_1.VariantArrayType.Array,
|
|
227
|
+
dataType: node_opcua_variant_1.DataType.ExtensionObject,
|
|
228
|
+
value: enumValues
|
|
229
|
+
})
|
|
230
|
+
});
|
|
231
|
+
namespace.addVariable({
|
|
232
|
+
accessLevel: "CurrentRead",
|
|
233
|
+
browseName: { name: "ValueAsText", namespaceIndex: 0 },
|
|
234
|
+
dataType: node_opcua_variant_1.DataType.LocalizedText,
|
|
235
|
+
minimumSamplingInterval: 0,
|
|
236
|
+
modellingRule: options.modellingRule ? "Mandatory" : undefined,
|
|
237
|
+
propertyOf: variable,
|
|
238
|
+
typeDefinition: "PropertyType",
|
|
239
|
+
userAccessLevel: "CurrentRead"
|
|
240
|
+
// value: valueAsText
|
|
241
|
+
});
|
|
242
|
+
// install additional helpers methods
|
|
243
|
+
variable.install_extra_properties();
|
|
244
|
+
promoteToMultiStateValueDiscrete(variable);
|
|
245
|
+
(0, node_opcua_assert_1.assert)(variable.enumValues.browseName.toString() === "EnumValues");
|
|
246
|
+
(0, node_opcua_assert_1.assert)(variable.valueAsText.browseName.toString() === "ValueAsText");
|
|
247
|
+
return variable;
|
|
248
|
+
}
|
|
249
|
+
exports._addMultiStateValueDiscrete = _addMultiStateValueDiscrete;
|
|
250
250
|
//# sourceMappingURL=ua_multistate_value_discrete_impl.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LocalizedText, LocalizedTextLike, QualifiedNameLike } from "node-opcua-data-model";
|
|
2
|
+
import { DataType } from "node-opcua-variant";
|
|
3
|
+
import { INamespace, UAVariable, UAProperty, ISessionContext } from "node-opcua-address-space-base";
|
|
4
|
+
import { DataValueT } from "node-opcua-data-value";
|
|
5
|
+
import { NumericRange } from "node-opcua-numeric-range";
|
|
6
|
+
import { UAVariableImpl } from "../ua_variable_impl";
|
|
7
|
+
import { AddTwoStateDiscreteOptions } from "../../source/address_space_ts";
|
|
8
|
+
import { UATwoStateDiscreteEx } from "../../source/interfaces/data_access/ua_two_state_discrete_ex";
|
|
9
|
+
export interface UATwoStateDiscreteImpl {
|
|
10
|
+
falseState: UAProperty<LocalizedText, /*c*/ DataType.LocalizedText>;
|
|
11
|
+
trueState: UAProperty<LocalizedText, /*c*/ DataType.LocalizedText>;
|
|
12
|
+
readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<boolean, DataType.Boolean>;
|
|
13
|
+
readValueAsync(context: ISessionContext | null, callback?: any): any;
|
|
14
|
+
}
|
|
15
|
+
export declare class UATwoStateDiscreteImpl extends UAVariableImpl implements UATwoStateDiscreteEx {
|
|
16
|
+
_post_initialize(): void;
|
|
17
|
+
setValue(value: boolean | LocalizedTextLike): void;
|
|
18
|
+
getValue(): boolean;
|
|
19
|
+
getValueAsString(): string;
|
|
20
|
+
getTrueStateAsString(): string;
|
|
21
|
+
getFalseStateAsString(): string;
|
|
22
|
+
clone(options1: any, optionalFilter: any, extraInfo: any): UAVariable;
|
|
23
|
+
}
|
|
24
|
+
export declare function promoteToTwoStateDiscrete(node: UAVariable): UATwoStateDiscreteEx;
|
|
25
|
+
export declare function _addTwoStateDiscrete(namespace: INamespace, options: AddTwoStateDiscreteOptions): UATwoStateDiscreteEx;
|