node-opcua-address-space 2.70.1 → 2.71.0
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 +34 -34
- package/dist/source/helpers/argument_list.js +285 -285
- 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 -17
- package/dist/source/helpers/check_event_clause.js +52 -52
- 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 +73 -73
- 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 +40 -40
- package/dist/source/index.js +66 -66
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +12 -12
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.d.ts +23 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js.map +1 -0
- package/dist/source/interfaces/data_access/ua_discrete_item.d.ts +6 -0
- package/dist/source/interfaces/data_access/ua_discrete_item.js +3 -0
- package/dist/source/interfaces/data_access/ua_discrete_item.js.map +1 -0
- package/dist/source/interfaces/data_access/ua_multistate_discrete.d.ts +25 -0
- package/dist/source/interfaces/data_access/ua_multistate_discrete.js +3 -0
- package/dist/source/interfaces/data_access/ua_multistate_discrete.js.map +1 -0
- 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.d.ts +27 -0
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js +3 -0
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js.map +1 -0
- 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.d.ts +17 -0
- package/dist/source/interfaces/data_access/ua_two_state_discrete.js +3 -0
- package/dist/source/interfaces/data_access/ua_two_state_discrete.js.map +1 -0
- 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.d.ts +19 -0
- package/dist/source/interfaces/data_access/ua_y_array_item.js +3 -0
- package/dist/source/interfaces/data_access/ua_y_array_item.js.map +1 -0
- 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/exclusive_limit_state_machine.d.ts +11 -0
- package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js +3 -0
- package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js.map +1 -0
- package/dist/source/interfaces/state_machine/finite_state_machine.d.ts +70 -0
- package/dist/source/interfaces/state_machine/finite_state_machine.js +3 -0
- package/dist/source/interfaces/state_machine/finite_state_machine.js.map +1 -0
- package/dist/source/interfaces/state_machine/program_finite_state_machine.d.ts +74 -0
- package/dist/source/interfaces/state_machine/program_finite_state_machine.js +3 -0
- package/dist/source/interfaces/state_machine/program_finite_state_machine.js.map +1 -0
- package/dist/source/interfaces/state_machine/state_machine.d.ts +342 -0
- package/dist/source/interfaces/state_machine/state_machine.js +3 -0
- package/dist/source/interfaces/state_machine/state_machine.js.map +1 -0
- 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_finite_state_variable.d.ts +18 -0
- package/dist/source/interfaces/state_machine/ua_finite_state_variable.js +3 -0
- package/dist/source/interfaces/state_machine/ua_finite_state_variable.js.map +1 -0
- 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_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_state_variable.d.ts +29 -0
- package/dist/source/interfaces/state_machine/ua_state_variable.js +3 -0
- package/dist/source/interfaces/state_machine/ua_state_variable.js.map +1 -0
- 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/state_machine/ua_two_state_variable.d.ts +26 -0
- package/dist/source/interfaces/state_machine/ua_two_state_variable.js +3 -0
- package/dist/source/interfaces/state_machine/ua_two_state_variable.js.map +1 -0
- package/dist/source/interfaces/subscription_diagnostics_variable.d.ts +41 -0
- package/dist/source/interfaces/subscription_diagnostics_variable.js +3 -0
- package/dist/source/interfaces/subscription_diagnostics_variable.js.map +1 -0
- 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 +1464 -1464
- package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
- package/dist/source/loader/make_xml_extension_object_parser.js +315 -315
- package/dist/source/loader/namespace_post_step.d.ts +6 -6
- package/dist/source/loader/namespace_post_step.js +47 -47
- package/dist/source/loader/register_node_promoter.d.ts +3 -3
- 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 +24 -24
- 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 +1387 -1387
- 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/base_event_type.d.ts +26 -0
- package/dist/src/alarms_and_conditions/base_event_type.js +41 -0
- package/dist/src/alarms_and_conditions/base_event_type.js.map +1 -0
- package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -4
- package/dist/src/alarms_and_conditions/check_where_clause.js +109 -109
- package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
- package/dist/src/alarms_and_conditions/condition.js +80 -80
- package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -27
- package/dist/src/alarms_and_conditions/condition_info.js +54 -54
- package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -233
- package/dist/src/alarms_and_conditions/condition_snapshot.js +666 -666
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +21 -21
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +46 -46
- package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -10
- package/dist/src/alarms_and_conditions/extract_event_fields.js +89 -89
- package/dist/src/alarms_and_conditions/index.d.ts +18 -18
- package/dist/src/alarms_and_conditions/index.js +34 -34
- package/dist/src/alarms_and_conditions/shelving_state_machine.d.ts +22 -0
- package/dist/src/alarms_and_conditions/shelving_state_machine.js +241 -0
- package/dist/src/alarms_and_conditions/shelving_state_machine.js.map +1 -0
- package/dist/src/alarms_and_conditions/trip_alarm.d.ts +16 -0
- package/dist/src/alarms_and_conditions/trip_alarm.js +21 -0
- package/dist/src/alarms_and_conditions/trip_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.d.ts +54 -0
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js +255 -0
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +62 -62
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
- package/dist/src/alarms_and_conditions/ua_alarm_condition_base.d.ts +138 -0
- package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js +460 -0
- package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +118 -118
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +416 -416
- package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +29 -29
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.d.ts +35 -0
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js +32 -0
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +21 -21
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +25 -25
- package/dist/src/alarms_and_conditions/ua_condition_base.d.ts +191 -0
- package/dist/src/alarms_and_conditions/ua_condition_base.js +1029 -0
- package/dist/src/alarms_and_conditions/ua_condition_base.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +182 -182
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +1022 -1022
- package/dist/src/alarms_and_conditions/ua_discrete_alarm.d.ts +11 -0
- package/dist/src/alarms_and_conditions/ua_discrete_alarm.js +58 -0
- package/dist/src/alarms_and_conditions/ua_discrete_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +17 -17
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +57 -57
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.d.ts +24 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js +59 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +27 -27
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.d.ts +14 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js +17 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +9 -9
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.d.ts +22 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js +87 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +38 -38
- 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.d.ts +6 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js +11 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +10 -10
- 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.d.ts +76 -0
- package/dist/src/alarms_and_conditions/ua_limit_alarm.js +237 -0
- package/dist/src/alarms_and_conditions/ua_limit_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +97 -97
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.d.ts +27 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js +62 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +28 -28
- 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.d.ts +49 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js +176 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +25 -25
- 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.d.ts +47 -0
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js +151 -0
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +39 -39
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +135 -135
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.d.ts +16 -0
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js +18 -0
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +16 -16
- 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.d.ts +270 -0
- package/dist/src/base_node.js +1299 -0
- package/dist/src/base_node.js.map +1 -0
- 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_analog_item.d.ts +13 -0
- package/dist/src/data_access/ua_analog_item.js +37 -0
- package/dist/src/data_access/ua_analog_item.js.map +1 -0
- package/dist/src/data_access/ua_data_item.d.ts +16 -0
- package/dist/src/data_access/ua_data_item.js +66 -0
- package/dist/src/data_access/ua_data_item.js.map +1 -0
- package/dist/src/data_access/ua_multistate_discrete.d.ts +24 -0
- package/dist/src/data_access/ua_multistate_discrete.js +132 -0
- package/dist/src/data_access/ua_multistate_discrete.js.map +1 -0
- 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 -51
- package/dist/src/data_access/ua_multistate_value_discrete.js +249 -249
- package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -25
- package/dist/src/data_access/ua_two_state_discrete.js +153 -153
- package/dist/src/event_data.d.ts +29 -29
- package/dist/src/event_data.js +95 -95
- 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 +45 -45
- package/dist/src/index_current.js +77 -77
- package/dist/src/namespace.d.ts +472 -0
- package/dist/src/namespace.js +1759 -0
- package/dist/src/namespace.js.map +1 -0
- package/dist/src/namespace_impl.d.ts +457 -457
- package/dist/src/namespace_impl.js +1733 -1733
- 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 +1143 -1143
- 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.d.ts +43 -0
- package/dist/src/reference.js +138 -0
- package/dist/src/reference.js.map +1 -0
- 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/session_context.d.ts +4 -0
- package/dist/src/session_context.js +9 -0
- package/dist/src/session_context.js.map +1 -0
- 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 +34 -34
- 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.d.ts +81 -0
- package/dist/src/ua_data_type.js +259 -0
- package/dist/src/ua_data_type.js.map +1 -0
- package/dist/src/ua_data_type_impl.d.ts +93 -93
- package/dist/src/ua_data_type_impl.js +368 -368
- package/dist/src/ua_method.d.ts +33 -0
- package/dist/src/ua_method.js +194 -0
- package/dist/src/ua_method.js.map +1 -0
- package/dist/src/ua_method_impl.d.ts +41 -41
- package/dist/src/ua_method_impl.js +208 -208
- package/dist/src/ua_object.d.ts +27 -0
- package/dist/src/ua_object.js +153 -0
- package/dist/src/ua_object.js.map +1 -0
- package/dist/src/ua_object_impl.d.ts +33 -33
- package/dist/src/ua_object_impl.js +156 -156
- package/dist/src/ua_object_type.d.ts +49 -0
- package/dist/src/ua_object_type.js +123 -0
- package/dist/src/ua_object_type.js.map +1 -0
- 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.d.ts +31 -0
- package/dist/src/ua_reference_type.js +108 -0
- package/dist/src/ua_reference_type.js.map +1 -0
- 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.d.ts +346 -0
- package/dist/src/ua_variable.js +1651 -0
- package/dist/src/ua_variable.js.map +1 -0
- 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.d.ts +57 -0
- package/dist/src/ua_variable_type.js +530 -0
- package/dist/src/ua_variable_type.js.map +1 -0
- package/dist/src/ua_variable_type_impl.d.ts +62 -62
- package/dist/src/ua_variable_type_impl.js +570 -564
- package/dist/src/ua_variable_type_impl.js.map +1 -1
- package/dist/src/ua_view.d.ts +16 -0
- package/dist/src/ua_view.js +41 -0
- package/dist/src/ua_view.js.map +1 -0
- package/dist/src/ua_view_impl.d.ts +15 -15
- package/dist/src/ua_view_impl.js +36 -36
- package/distHelpers/add_event_generator_object.d.ts +3 -3
- package/distHelpers/add_event_generator_object.js +65 -65
- package/distHelpers/alarms_and_conditions_demo.d.ts +10 -10
- package/distHelpers/alarms_and_conditions_demo.js +114 -114
- 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 +38 -38
- package/src/ua_variable_type_impl.ts +11 -4
- package/test_helpers/test_fixtures/eurange_issue.xml +73 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module node-opcua-address-space
|
|
3
|
-
*/
|
|
4
|
-
import { NodeId, NodeIdLike } from "node-opcua-nodeid";
|
|
5
|
-
import { BaseNode, UADataType, UAObjectType, UAReferenceType, UAVariableType } from "node-opcua-address-space-base";
|
|
6
|
-
import { BaseNodeImpl } from "./base_node_impl";
|
|
7
|
-
export declare type BaseNodeConstructor<T extends BaseNode> = new () => T;
|
|
8
|
-
export declare type MemberFuncValue<T, P, R> = (this: T, param: P) => R;
|
|
9
|
-
export declare type IsSupertypeOfFunc<T extends UAType> = (this: T, baseType: T) => boolean;
|
|
10
|
-
export declare type UAType = UAReferenceType | UADataType | UAObjectType | UAVariableType;
|
|
11
|
-
export declare function construct_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): IsSupertypeOfFunc<T>;
|
|
12
|
-
export declare function construct_slow_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): (this: T, baseType: T | NodeIdLike) => boolean;
|
|
13
|
-
/**
|
|
14
|
-
* returns the nodeId of the Type which is the super type of this
|
|
15
|
-
*/
|
|
16
|
-
export declare function get_subtypeOf<T extends BaseNode>(this: T): NodeId | null;
|
|
17
|
-
export declare function get_subtypeOfObj(this: BaseNode): BaseNode | null;
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-address-space
|
|
3
|
+
*/
|
|
4
|
+
import { NodeId, NodeIdLike } from "node-opcua-nodeid";
|
|
5
|
+
import { BaseNode, UADataType, UAObjectType, UAReferenceType, UAVariableType } from "node-opcua-address-space-base";
|
|
6
|
+
import { BaseNodeImpl } from "./base_node_impl";
|
|
7
|
+
export declare type BaseNodeConstructor<T extends BaseNode> = new () => T;
|
|
8
|
+
export declare type MemberFuncValue<T, P, R> = (this: T, param: P) => R;
|
|
9
|
+
export declare type IsSupertypeOfFunc<T extends UAType> = (this: T, baseType: T) => boolean;
|
|
10
|
+
export declare type UAType = UAReferenceType | UADataType | UAObjectType | UAVariableType;
|
|
11
|
+
export declare function construct_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): IsSupertypeOfFunc<T>;
|
|
12
|
+
export declare function construct_slow_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): (this: T, baseType: T | NodeIdLike) => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* returns the nodeId of the Type which is the super type of this
|
|
15
|
+
*/
|
|
16
|
+
export declare function get_subtypeOf<T extends BaseNode>(this: T): NodeId | null;
|
|
17
|
+
export declare function get_subtypeOfObj(this: BaseNode): BaseNode | null;
|
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @module node-opcua-address-space
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.get_subtypeOfObj = exports.get_subtypeOf = exports.construct_slow_isSupertypeOf = exports.construct_isSupertypeOf = void 0;
|
|
7
|
-
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
-
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
9
|
-
const node_opcua_nodeid_2 = require("node-opcua-nodeid");
|
|
10
|
-
const base_node_private_1 = require("./base_node_private");
|
|
11
|
-
const reference_impl_1 = require("./reference_impl");
|
|
12
|
-
const HasSubTypeNodeId = (0, node_opcua_nodeid_1.resolveNodeId)("HasSubtype");
|
|
13
|
-
function _filterSubType(reference) {
|
|
14
|
-
return (0, node_opcua_nodeid_2.sameNodeId)(reference.referenceType, HasSubTypeNodeId) && !reference.isForward;
|
|
15
|
-
}
|
|
16
|
-
function _slow_isSupertypeOf(Class, baseType) {
|
|
17
|
-
if (!(baseType instanceof Class)) {
|
|
18
|
-
const node = this.addressSpace.findNode(baseType);
|
|
19
|
-
if (!node || !(node instanceof Class)) {
|
|
20
|
-
throw new Error("Invalid argument");
|
|
21
|
-
}
|
|
22
|
-
return _slow_isSupertypeOf.call(this, Class, node);
|
|
23
|
-
}
|
|
24
|
-
(0, node_opcua_assert_1.assert)(this instanceof Class);
|
|
25
|
-
(0, node_opcua_assert_1.assert)(baseType instanceof Class, " Object must have same type");
|
|
26
|
-
(0, node_opcua_assert_1.assert)(this.addressSpace);
|
|
27
|
-
if ((0, node_opcua_nodeid_2.sameNodeId)(this.nodeId, baseType.nodeId)) {
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
const references = this.allReferences();
|
|
31
|
-
const subTypes = references.filter(_filterSubType);
|
|
32
|
-
(0, node_opcua_assert_1.assert)(subTypes.length <= 1, "should have zero or one subtype no more");
|
|
33
|
-
for (const subType1 of subTypes) {
|
|
34
|
-
const subTypeId = subType1.nodeId;
|
|
35
|
-
const subTypeNode = this.addressSpace.findNode(subTypeId);
|
|
36
|
-
// istanbul ignore next
|
|
37
|
-
if (!subTypeNode) {
|
|
38
|
-
throw new Error("Cannot find object with nodeId " + subTypeId.toString());
|
|
39
|
-
}
|
|
40
|
-
if ((0, node_opcua_nodeid_2.sameNodeId)(subTypeNode.nodeId, baseType.nodeId)) {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
if (_slow_isSupertypeOf.call(subTypeNode, Class, baseType)) {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
// http://jsperf.com/underscore-js-memoize-refactor-test
|
|
52
|
-
// http://addyosmani.com/blog/faster-javascript-memoization/
|
|
53
|
-
function wrap_memoize(func, hashFunc) {
|
|
54
|
-
if (undefined === hashFunc) {
|
|
55
|
-
hashFunc = (_p) => _p.toString();
|
|
56
|
-
}
|
|
57
|
-
return function memoize(param) {
|
|
58
|
-
if (!this.__cache) {
|
|
59
|
-
this.__cache = {};
|
|
60
|
-
}
|
|
61
|
-
const hash = hashFunc.call(this, param);
|
|
62
|
-
let cache_value = this.__cache[hash];
|
|
63
|
-
if (cache_value === undefined) {
|
|
64
|
-
cache_value = func.call(this, param);
|
|
65
|
-
this.__cache[hash] = cache_value;
|
|
66
|
-
}
|
|
67
|
-
return cache_value;
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
function hashBaseNode(e) {
|
|
71
|
-
return e.nodeId.value.toString();
|
|
72
|
-
}
|
|
73
|
-
function construct_isSupertypeOf(Class) {
|
|
74
|
-
return wrap_memoize(function (baseType) {
|
|
75
|
-
(0, node_opcua_assert_1.assert)(baseType instanceof Class);
|
|
76
|
-
(0, node_opcua_assert_1.assert)(this instanceof Class);
|
|
77
|
-
return _slow_isSupertypeOf.call(this, Class, baseType);
|
|
78
|
-
}, hashBaseNode);
|
|
79
|
-
}
|
|
80
|
-
exports.construct_isSupertypeOf = construct_isSupertypeOf;
|
|
81
|
-
function construct_slow_isSupertypeOf(Class) {
|
|
82
|
-
return function (baseType) {
|
|
83
|
-
return _slow_isSupertypeOf.call(this, Class, baseType);
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
exports.construct_slow_isSupertypeOf = construct_slow_isSupertypeOf;
|
|
87
|
-
/**
|
|
88
|
-
* returns the nodeId of the Type which is the super type of this
|
|
89
|
-
*/
|
|
90
|
-
function get_subtypeOf() {
|
|
91
|
-
const s = get_subtypeOfObj.call(this);
|
|
92
|
-
return s ? s.nodeId : null;
|
|
93
|
-
}
|
|
94
|
-
exports.get_subtypeOf = get_subtypeOf;
|
|
95
|
-
function get_subtypeOfObj() {
|
|
96
|
-
const _cache = (0, base_node_private_1.BaseNode_getCache)(this);
|
|
97
|
-
if (!_cache._subtypeOfObj) {
|
|
98
|
-
const is_subtype_of_ref = this.findReference("HasSubtype", false);
|
|
99
|
-
if (is_subtype_of_ref) {
|
|
100
|
-
_cache._subtypeOfObj = reference_impl_1.ReferenceImpl.resolveReferenceNode(this.addressSpace, is_subtype_of_ref);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
_cache._subtypeOfObj = null;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return _cache._subtypeOfObj;
|
|
107
|
-
}
|
|
108
|
-
exports.get_subtypeOfObj = get_subtypeOfObj;
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @module node-opcua-address-space
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.get_subtypeOfObj = exports.get_subtypeOf = exports.construct_slow_isSupertypeOf = exports.construct_isSupertypeOf = void 0;
|
|
7
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
+
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
9
|
+
const node_opcua_nodeid_2 = require("node-opcua-nodeid");
|
|
10
|
+
const base_node_private_1 = require("./base_node_private");
|
|
11
|
+
const reference_impl_1 = require("./reference_impl");
|
|
12
|
+
const HasSubTypeNodeId = (0, node_opcua_nodeid_1.resolveNodeId)("HasSubtype");
|
|
13
|
+
function _filterSubType(reference) {
|
|
14
|
+
return (0, node_opcua_nodeid_2.sameNodeId)(reference.referenceType, HasSubTypeNodeId) && !reference.isForward;
|
|
15
|
+
}
|
|
16
|
+
function _slow_isSupertypeOf(Class, baseType) {
|
|
17
|
+
if (!(baseType instanceof Class)) {
|
|
18
|
+
const node = this.addressSpace.findNode(baseType);
|
|
19
|
+
if (!node || !(node instanceof Class)) {
|
|
20
|
+
throw new Error("Invalid argument");
|
|
21
|
+
}
|
|
22
|
+
return _slow_isSupertypeOf.call(this, Class, node);
|
|
23
|
+
}
|
|
24
|
+
(0, node_opcua_assert_1.assert)(this instanceof Class);
|
|
25
|
+
(0, node_opcua_assert_1.assert)(baseType instanceof Class, " Object must have same type");
|
|
26
|
+
(0, node_opcua_assert_1.assert)(this.addressSpace);
|
|
27
|
+
if ((0, node_opcua_nodeid_2.sameNodeId)(this.nodeId, baseType.nodeId)) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
const references = this.allReferences();
|
|
31
|
+
const subTypes = references.filter(_filterSubType);
|
|
32
|
+
(0, node_opcua_assert_1.assert)(subTypes.length <= 1, "should have zero or one subtype no more");
|
|
33
|
+
for (const subType1 of subTypes) {
|
|
34
|
+
const subTypeId = subType1.nodeId;
|
|
35
|
+
const subTypeNode = this.addressSpace.findNode(subTypeId);
|
|
36
|
+
// istanbul ignore next
|
|
37
|
+
if (!subTypeNode) {
|
|
38
|
+
throw new Error("Cannot find object with nodeId " + subTypeId.toString());
|
|
39
|
+
}
|
|
40
|
+
if ((0, node_opcua_nodeid_2.sameNodeId)(subTypeNode.nodeId, baseType.nodeId)) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (_slow_isSupertypeOf.call(subTypeNode, Class, baseType)) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
// http://jsperf.com/underscore-js-memoize-refactor-test
|
|
52
|
+
// http://addyosmani.com/blog/faster-javascript-memoization/
|
|
53
|
+
function wrap_memoize(func, hashFunc) {
|
|
54
|
+
if (undefined === hashFunc) {
|
|
55
|
+
hashFunc = (_p) => _p.toString();
|
|
56
|
+
}
|
|
57
|
+
return function memoize(param) {
|
|
58
|
+
if (!this.__cache) {
|
|
59
|
+
this.__cache = {};
|
|
60
|
+
}
|
|
61
|
+
const hash = hashFunc.call(this, param);
|
|
62
|
+
let cache_value = this.__cache[hash];
|
|
63
|
+
if (cache_value === undefined) {
|
|
64
|
+
cache_value = func.call(this, param);
|
|
65
|
+
this.__cache[hash] = cache_value;
|
|
66
|
+
}
|
|
67
|
+
return cache_value;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function hashBaseNode(e) {
|
|
71
|
+
return e.nodeId.value.toString();
|
|
72
|
+
}
|
|
73
|
+
function construct_isSupertypeOf(Class) {
|
|
74
|
+
return wrap_memoize(function (baseType) {
|
|
75
|
+
(0, node_opcua_assert_1.assert)(baseType instanceof Class);
|
|
76
|
+
(0, node_opcua_assert_1.assert)(this instanceof Class);
|
|
77
|
+
return _slow_isSupertypeOf.call(this, Class, baseType);
|
|
78
|
+
}, hashBaseNode);
|
|
79
|
+
}
|
|
80
|
+
exports.construct_isSupertypeOf = construct_isSupertypeOf;
|
|
81
|
+
function construct_slow_isSupertypeOf(Class) {
|
|
82
|
+
return function (baseType) {
|
|
83
|
+
return _slow_isSupertypeOf.call(this, Class, baseType);
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
exports.construct_slow_isSupertypeOf = construct_slow_isSupertypeOf;
|
|
87
|
+
/**
|
|
88
|
+
* returns the nodeId of the Type which is the super type of this
|
|
89
|
+
*/
|
|
90
|
+
function get_subtypeOf() {
|
|
91
|
+
const s = get_subtypeOfObj.call(this);
|
|
92
|
+
return s ? s.nodeId : null;
|
|
93
|
+
}
|
|
94
|
+
exports.get_subtypeOf = get_subtypeOf;
|
|
95
|
+
function get_subtypeOfObj() {
|
|
96
|
+
const _cache = (0, base_node_private_1.BaseNode_getCache)(this);
|
|
97
|
+
if (!_cache._subtypeOfObj) {
|
|
98
|
+
const is_subtype_of_ref = this.findReference("HasSubtype", false);
|
|
99
|
+
if (is_subtype_of_ref) {
|
|
100
|
+
_cache._subtypeOfObj = reference_impl_1.ReferenceImpl.resolveReferenceNode(this.addressSpace, is_subtype_of_ref);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
_cache._subtypeOfObj = null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return _cache._subtypeOfObj;
|
|
107
|
+
}
|
|
108
|
+
exports.get_subtypeOfObj = get_subtypeOfObj;
|
|
109
109
|
//# sourceMappingURL=tool_isSupertypeOf.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { UAMethod, UAObjectType } from "node-opcua-address-space-base";
|
|
2
|
-
export interface UAConditionType extends UAObjectType {
|
|
3
|
-
disable: UAMethod;
|
|
4
|
-
enable: UAMethod;
|
|
5
|
-
conditionRefresh: UAMethod;
|
|
6
|
-
conditionRefresh2: UAMethod;
|
|
7
|
-
addComment: UAMethod;
|
|
8
|
-
}
|
|
1
|
+
import { UAMethod, UAObjectType } from "node-opcua-address-space-base";
|
|
2
|
+
export interface UAConditionType extends UAObjectType {
|
|
3
|
+
disable: UAMethod;
|
|
4
|
+
enable: UAMethod;
|
|
5
|
+
conditionRefresh: UAMethod;
|
|
6
|
+
conditionRefresh2: UAMethod;
|
|
7
|
+
addComment: UAMethod;
|
|
8
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
//# sourceMappingURL=ua_condition_type.js.map
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { NodeClass } from "node-opcua-data-model";
|
|
2
|
+
import { AttributeIds } from "node-opcua-data-model";
|
|
3
|
+
import { DataValue } from "node-opcua-data-value";
|
|
4
|
+
import { ExtensionObject } from "node-opcua-extension-object";
|
|
5
|
+
import { ExpandedNodeId, NodeId } from "node-opcua-nodeid";
|
|
6
|
+
import { DataTypeDefinition } from "node-opcua-types";
|
|
7
|
+
import { DataType } from "node-opcua-variant";
|
|
8
|
+
import { SessionContext, UADataType as UADataTypePublic } from "../source";
|
|
9
|
+
import { BaseNode } from "./base_node";
|
|
10
|
+
import { ToStringOption } from "./base_node_private";
|
|
11
|
+
import * as tools from "./tool_isSupertypeOf";
|
|
12
|
+
import { UAObject } from "./ua_object";
|
|
13
|
+
import { StructuredTypeSchema } from "node-opcua-factory";
|
|
14
|
+
export declare type ExtensionObjectConstructor = new (options: any) => ExtensionObject;
|
|
15
|
+
export interface ExtensionObjectConstructorFuncWithSchema extends ExtensionObjectConstructor {
|
|
16
|
+
schema: StructuredTypeSchema;
|
|
17
|
+
possibleFields: string[];
|
|
18
|
+
encodingDefaultBinary: ExpandedNodeId;
|
|
19
|
+
encodingDefaultXml: ExpandedNodeId;
|
|
20
|
+
}
|
|
21
|
+
export interface UADataType {
|
|
22
|
+
_extensionObjectConstructor: ExtensionObjectConstructorFuncWithSchema;
|
|
23
|
+
}
|
|
24
|
+
export interface IEnumItem {
|
|
25
|
+
name: string;
|
|
26
|
+
value: number;
|
|
27
|
+
}
|
|
28
|
+
export interface EnumerationInfo {
|
|
29
|
+
nameIndex: {
|
|
30
|
+
[id: string]: IEnumItem;
|
|
31
|
+
};
|
|
32
|
+
valueIndex: {
|
|
33
|
+
[id: number]: IEnumItem;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export declare class UADataType extends BaseNode implements UADataTypePublic {
|
|
37
|
+
readonly nodeClass = NodeClass.DataType;
|
|
38
|
+
readonly definitionName: string;
|
|
39
|
+
readonly symbolicName: string;
|
|
40
|
+
/**
|
|
41
|
+
* returns true if this is a super type of baseType
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
*
|
|
45
|
+
* var dataTypeDouble = addressSpace.findDataType("Double");
|
|
46
|
+
* var dataTypeNumber = addressSpace.findDataType("Number");
|
|
47
|
+
* assert(dataTypeDouble.isSupertypeOf(dataTypeNumber));
|
|
48
|
+
* assert(!dataTypeNumber.isSupertypeOf(dataTypeDouble));
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
51
|
+
get subtypeOf(): NodeId | null;
|
|
52
|
+
get subtypeOfObj(): UADataTypePublic | null;
|
|
53
|
+
isSupertypeOf: tools.IsSupertypeOfFunc<UADataTypePublic>;
|
|
54
|
+
readonly isAbstract: boolean;
|
|
55
|
+
private enumStrings?;
|
|
56
|
+
private enumValues?;
|
|
57
|
+
private $definition?;
|
|
58
|
+
constructor(options: any);
|
|
59
|
+
get basicDataType(): DataType;
|
|
60
|
+
readAttribute(context: SessionContext | null, attributeId: AttributeIds): DataValue;
|
|
61
|
+
getEncodingDefinition(encoding_name: string): string | null;
|
|
62
|
+
getEncodingNode(encoding_name: string): UAObject | null;
|
|
63
|
+
getEncodingNodeId(encoding_name: string): ExpandedNodeId | null;
|
|
64
|
+
/**
|
|
65
|
+
* returns the encoding of this node's
|
|
66
|
+
* TODO objects have 2 encodings : XML and Binaries
|
|
67
|
+
*/
|
|
68
|
+
get binaryEncoding(): BaseNode | null;
|
|
69
|
+
get binaryEncodingDefinition(): string | null;
|
|
70
|
+
get binaryEncodingNodeId(): ExpandedNodeId | null;
|
|
71
|
+
get xmlEncoding(): BaseNode | null;
|
|
72
|
+
get xmlEncodingNodeId(): ExpandedNodeId | null;
|
|
73
|
+
get xmlEncodingDefinition(): string | null;
|
|
74
|
+
get jsonEncoding(): BaseNode | null;
|
|
75
|
+
get jsonEncodingNodeId(): ExpandedNodeId | null;
|
|
76
|
+
_getEnumerationInfo(): EnumerationInfo;
|
|
77
|
+
_getDefinition(): DataTypeDefinition | null;
|
|
78
|
+
install_extra_properties(): void;
|
|
79
|
+
toString(): string;
|
|
80
|
+
}
|
|
81
|
+
export declare function DataType_toString(this: UADataType, options: ToStringOption): void;
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataType_toString = exports.UADataType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space
|
|
6
|
+
*/
|
|
7
|
+
const chalk = require("chalk");
|
|
8
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
9
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
10
|
+
const node_opcua_data_model_2 = require("node-opcua-data-model");
|
|
11
|
+
const node_opcua_data_value_1 = require("node-opcua-data-value");
|
|
12
|
+
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
13
|
+
const node_opcua_numeric_range_1 = require("node-opcua-numeric-range");
|
|
14
|
+
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
15
|
+
const node_opcua_types_1 = require("node-opcua-types");
|
|
16
|
+
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
17
|
+
const source_1 = require("../source");
|
|
18
|
+
const base_node_1 = require("./base_node");
|
|
19
|
+
const base_node_private_1 = require("./base_node_private");
|
|
20
|
+
const tools = require("./tool_isSupertypeOf");
|
|
21
|
+
const tool_isSupertypeOf_1 = require("./tool_isSupertypeOf");
|
|
22
|
+
const tool_isSupertypeOf_2 = require("./tool_isSupertypeOf");
|
|
23
|
+
function findBasicDataType(dataType) {
|
|
24
|
+
if (dataType.nodeId.namespace === 0 && dataType.nodeId.value <= 25) {
|
|
25
|
+
// we have a well-known DataType
|
|
26
|
+
return dataType.nodeId.value;
|
|
27
|
+
}
|
|
28
|
+
return findBasicDataType(dataType.subtypeOfObj);
|
|
29
|
+
}
|
|
30
|
+
class UADataType extends base_node_1.BaseNode {
|
|
31
|
+
constructor(options) {
|
|
32
|
+
super(options);
|
|
33
|
+
this.nodeClass = node_opcua_data_model_1.NodeClass.DataType;
|
|
34
|
+
this.definitionName = "";
|
|
35
|
+
this.isSupertypeOf = tools.construct_isSupertypeOf(UADataType);
|
|
36
|
+
this.$definition = options.$definition;
|
|
37
|
+
this.isAbstract = options.isAbstract === null ? false : options.isAbstract;
|
|
38
|
+
this.symbolicName = options.symbolicName || this.browseName.name;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* returns true if this is a super type of baseType
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
*
|
|
45
|
+
* var dataTypeDouble = addressSpace.findDataType("Double");
|
|
46
|
+
* var dataTypeNumber = addressSpace.findDataType("Number");
|
|
47
|
+
* assert(dataTypeDouble.isSupertypeOf(dataTypeNumber));
|
|
48
|
+
* assert(!dataTypeNumber.isSupertypeOf(dataTypeDouble));
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
51
|
+
get subtypeOf() {
|
|
52
|
+
return tool_isSupertypeOf_1.get_subtypeOf.call(this);
|
|
53
|
+
}
|
|
54
|
+
get subtypeOfObj() {
|
|
55
|
+
return tool_isSupertypeOf_2.get_subtypeOfObj.call(this);
|
|
56
|
+
}
|
|
57
|
+
get basicDataType() {
|
|
58
|
+
return findBasicDataType(this);
|
|
59
|
+
}
|
|
60
|
+
readAttribute(context, attributeId) {
|
|
61
|
+
node_opcua_assert_1.assert(!context || context instanceof source_1.SessionContext);
|
|
62
|
+
const options = {};
|
|
63
|
+
switch (attributeId) {
|
|
64
|
+
case node_opcua_data_model_2.AttributeIds.IsAbstract:
|
|
65
|
+
options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
|
|
66
|
+
options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: !!this.isAbstract };
|
|
67
|
+
break;
|
|
68
|
+
case node_opcua_data_model_2.AttributeIds.DataTypeDefinition:
|
|
69
|
+
const _definition = this._getDefinition();
|
|
70
|
+
if (_definition !== null) {
|
|
71
|
+
options.value = { dataType: node_opcua_variant_1.DataType.ExtensionObject, value: _definition };
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
options.statusCode = node_opcua_status_code_1.StatusCodes.BadAttributeIdInvalid;
|
|
75
|
+
}
|
|
76
|
+
break;
|
|
77
|
+
default:
|
|
78
|
+
return super.readAttribute(context, attributeId);
|
|
79
|
+
}
|
|
80
|
+
return new node_opcua_data_value_1.DataValue(options);
|
|
81
|
+
}
|
|
82
|
+
getEncodingDefinition(encoding_name) {
|
|
83
|
+
const encodingNode = this.getEncodingNode(encoding_name);
|
|
84
|
+
if (!encodingNode) {
|
|
85
|
+
throw new Error("Cannot find Encoding for " + encoding_name);
|
|
86
|
+
}
|
|
87
|
+
const indexRange = new node_opcua_numeric_range_1.NumericRange();
|
|
88
|
+
const descriptionNodeRef = encodingNode.findReferences("HasDescription")[0];
|
|
89
|
+
const descriptionNode = this.addressSpace.findNode(descriptionNodeRef.nodeId);
|
|
90
|
+
if (!descriptionNode) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const dataValue = descriptionNode.readValue(source_1.SessionContext.defaultContext, indexRange);
|
|
94
|
+
return dataValue.value.value.toString() || null;
|
|
95
|
+
}
|
|
96
|
+
getEncodingNode(encoding_name) {
|
|
97
|
+
const _cache = base_node_1.BaseNode._getCache(this);
|
|
98
|
+
const key = encoding_name + "Node";
|
|
99
|
+
if (_cache[key] === undefined) {
|
|
100
|
+
node_opcua_assert_1.assert(encoding_name === "Default Binary" || encoding_name === "Default XML" || encoding_name === "Default JSON");
|
|
101
|
+
// could be binary or xml
|
|
102
|
+
const refs = this.findReferences("HasEncoding", true);
|
|
103
|
+
const addressSpace = this.addressSpace;
|
|
104
|
+
const encoding = refs
|
|
105
|
+
.map((ref) => addressSpace.findNode(ref.nodeId))
|
|
106
|
+
.filter((obj) => obj !== null)
|
|
107
|
+
.filter((obj) => obj.browseName.toString() === encoding_name);
|
|
108
|
+
const node = encoding.length === 0 ? null : encoding[0];
|
|
109
|
+
_cache[key] = node;
|
|
110
|
+
}
|
|
111
|
+
return _cache[key];
|
|
112
|
+
}
|
|
113
|
+
getEncodingNodeId(encoding_name) {
|
|
114
|
+
const _cache = base_node_1.BaseNode._getCache(this);
|
|
115
|
+
const key = encoding_name + "NodeId";
|
|
116
|
+
if (_cache[key] === undefined) {
|
|
117
|
+
const encoding = this.getEncodingNode(encoding_name);
|
|
118
|
+
if (encoding) {
|
|
119
|
+
const namespaceUri = this.addressSpace.getNamespaceUri(encoding.nodeId.namespace);
|
|
120
|
+
_cache[key] = node_opcua_nodeid_1.ExpandedNodeId.fromNodeId(encoding.nodeId, namespaceUri);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
_cache[key] = null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return _cache[key];
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* returns the encoding of this node's
|
|
130
|
+
* TODO objects have 2 encodings : XML and Binaries
|
|
131
|
+
*/
|
|
132
|
+
get binaryEncoding() {
|
|
133
|
+
return this.getEncodingNode("Default Binary");
|
|
134
|
+
}
|
|
135
|
+
get binaryEncodingDefinition() {
|
|
136
|
+
return this.getEncodingDefinition("Default Binary");
|
|
137
|
+
}
|
|
138
|
+
get binaryEncodingNodeId() {
|
|
139
|
+
return this.getEncodingNodeId("Default Binary");
|
|
140
|
+
}
|
|
141
|
+
get xmlEncoding() {
|
|
142
|
+
return this.getEncodingNode("Default XML");
|
|
143
|
+
}
|
|
144
|
+
get xmlEncodingNodeId() {
|
|
145
|
+
return this.getEncodingNodeId("Default XML");
|
|
146
|
+
}
|
|
147
|
+
get xmlEncodingDefinition() {
|
|
148
|
+
return this.getEncodingDefinition("Default XML");
|
|
149
|
+
}
|
|
150
|
+
get jsonEncoding() {
|
|
151
|
+
return this.getEncodingNode("Default JSON");
|
|
152
|
+
}
|
|
153
|
+
get jsonEncodingNodeId() {
|
|
154
|
+
return this.getEncodingNodeId("Default JSON");
|
|
155
|
+
}
|
|
156
|
+
// public get jsonEncodingDefinition(): string | null {
|
|
157
|
+
// return this.getEncodingDefinition("Default JSON");
|
|
158
|
+
// }
|
|
159
|
+
_getEnumerationInfo() {
|
|
160
|
+
let definition = [];
|
|
161
|
+
if (this.enumStrings) {
|
|
162
|
+
const enumStrings = this.enumStrings.readValue().value.value;
|
|
163
|
+
node_opcua_assert_1.assert(Array.isArray(enumStrings));
|
|
164
|
+
definition = enumStrings.map((e, index) => {
|
|
165
|
+
return {
|
|
166
|
+
name: e.text,
|
|
167
|
+
value: index
|
|
168
|
+
};
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
else if (this.enumValues) {
|
|
172
|
+
node_opcua_assert_1.assert(this.enumValues, "must have a enumValues property");
|
|
173
|
+
const enumValues = this.enumValues.readValue().value.value;
|
|
174
|
+
node_opcua_assert_1.assert(Array.isArray(enumValues));
|
|
175
|
+
definition = enumValues.map((e) => {
|
|
176
|
+
return {
|
|
177
|
+
name: e.displayName.text,
|
|
178
|
+
value: e.value[1]
|
|
179
|
+
};
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
// construct nameIndex and valueIndex
|
|
183
|
+
const indexes = {
|
|
184
|
+
nameIndex: {},
|
|
185
|
+
valueIndex: {}
|
|
186
|
+
};
|
|
187
|
+
for (const e of definition) {
|
|
188
|
+
indexes.nameIndex[e.name] = e;
|
|
189
|
+
indexes.valueIndex[e.value] = e;
|
|
190
|
+
}
|
|
191
|
+
return indexes;
|
|
192
|
+
}
|
|
193
|
+
_getDefinition() {
|
|
194
|
+
if (!this.$definition) {
|
|
195
|
+
const structure = this.addressSpace.findDataType("Structure");
|
|
196
|
+
if (!structure) {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
if (this.isSupertypeOf(structure)) {
|
|
200
|
+
// <Definition> tag was missing in XML file as it was empty
|
|
201
|
+
this.$definition = new node_opcua_types_1.StructureDefinition({});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// from OPC Unified Architecture, Part 6 86 Release 1.04
|
|
205
|
+
// A DataTypeDefinition defines an abstract representation of a UADataType that can be used by
|
|
206
|
+
// design tools to automatically create serialization code. The fields in the DataTypeDefinition type
|
|
207
|
+
// are defined in Table F.12.
|
|
208
|
+
const _definition = this.$definition || null;
|
|
209
|
+
if (_definition && _definition instanceof node_opcua_types_1.StructureDefinition && this.binaryEncodingNodeId) {
|
|
210
|
+
_definition.defaultEncodingId = this.binaryEncodingNodeId;
|
|
211
|
+
const subtype = this.subtypeOf;
|
|
212
|
+
if (subtype) {
|
|
213
|
+
_definition.baseDataType = subtype;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return _definition;
|
|
217
|
+
}
|
|
218
|
+
install_extra_properties() {
|
|
219
|
+
//
|
|
220
|
+
}
|
|
221
|
+
toString() {
|
|
222
|
+
const options = new base_node_private_1.ToStringBuilder();
|
|
223
|
+
DataType_toString.call(this, options);
|
|
224
|
+
return options.toString();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
exports.UADataType = UADataType;
|
|
228
|
+
function dataTypeDefinition_toString(options) {
|
|
229
|
+
const definition = this._getDefinition();
|
|
230
|
+
if (!definition) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const output = definition.toString();
|
|
234
|
+
options.add(options.padding + chalk.yellow(" Definition : "));
|
|
235
|
+
for (const str of output.split("\n")) {
|
|
236
|
+
options.add(options.padding + chalk.yellow(" : " + str));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
function DataType_toString(options) {
|
|
240
|
+
base_node_private_1.BaseNode_toString.call(this, options);
|
|
241
|
+
options.add(options.padding + chalk.yellow(" isAbstract : " + this.isAbstract));
|
|
242
|
+
options.add(options.padding + chalk.yellow(" definitionName : " + this.definitionName));
|
|
243
|
+
options.add(options.padding +
|
|
244
|
+
chalk.yellow(" binaryEncodingNodeId: ") +
|
|
245
|
+
(this.binaryEncodingNodeId ? this.binaryEncodingNodeId.toString() : "<none>"));
|
|
246
|
+
options.add(options.padding +
|
|
247
|
+
chalk.yellow(" xmlEncodingNodeId : ") +
|
|
248
|
+
(this.xmlEncodingNodeId ? this.xmlEncodingNodeId.toString() : "<none>"));
|
|
249
|
+
if (this.subtypeOfObj) {
|
|
250
|
+
options.add(options.padding +
|
|
251
|
+
chalk.yellow(" subtypeOfObj : ") +
|
|
252
|
+
(this.subtypeOfObj ? this.subtypeOfObj.browseName.toString() : ""));
|
|
253
|
+
}
|
|
254
|
+
// references
|
|
255
|
+
base_node_private_1.BaseNode_References_toString.call(this, options);
|
|
256
|
+
dataTypeDefinition_toString.call(this, options);
|
|
257
|
+
}
|
|
258
|
+
exports.DataType_toString = DataType_toString;
|
|
259
|
+
//# sourceMappingURL=ua_data_type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ua_data_type.js","sourceRoot":"","sources":["../../src/ua_data_type.ts"],"names":[],"mappings":"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"}
|