node-opcua-address-space 2.51.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/.mocharc.yml +12 -0
- package/LICENSE +20 -0
- package/dist/source/address_space_ts.d.ts +122 -0
- package/dist/source/address_space_ts.js +18 -0
- package/dist/source/address_space_ts.js.map +1 -0
- package/dist/source/continuation_points/continuation_point_manager.d.ts +21 -0
- package/dist/source/continuation_points/continuation_point_manager.js +100 -0
- package/dist/source/continuation_points/continuation_point_manager.js.map +1 -0
- package/dist/source/helpers/adjust_browse_direction.d.ts +5 -0
- package/dist/source/helpers/adjust_browse_direction.js +12 -0
- package/dist/source/helpers/adjust_browse_direction.js.map +1 -0
- package/dist/source/helpers/argument_list.d.ts +30 -0
- package/dist/source/helpers/argument_list.js +237 -0
- package/dist/source/helpers/argument_list.js.map +1 -0
- package/dist/source/helpers/call_helpers.d.ts +6 -0
- package/dist/source/helpers/call_helpers.js +71 -0
- package/dist/source/helpers/call_helpers.js.map +1 -0
- 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 -0
- package/dist/source/helpers/coerce_enum_value.js +34 -0
- package/dist/source/helpers/coerce_enum_value.js.map +1 -0
- package/dist/source/helpers/dump_tools.d.ts +14 -0
- package/dist/source/helpers/dump_tools.js +79 -0
- package/dist/source/helpers/dump_tools.js.map +1 -0
- package/dist/source/helpers/ensure_secure_access.d.ts +9 -0
- package/dist/source/helpers/ensure_secure_access.js +90 -0
- package/dist/source/helpers/ensure_secure_access.js.map +1 -0
- package/dist/source/helpers/make_optionals_map.d.ts +21 -0
- package/dist/source/helpers/make_optionals_map.js +30 -0
- package/dist/source/helpers/make_optionals_map.js.map +1 -0
- package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -0
- package/dist/source/helpers/resolve_opaque_on_address_space.js +37 -0
- package/dist/source/helpers/resolve_opaque_on_address_space.js.map +1 -0
- package/dist/source/index.d.ts +39 -0
- package/dist/source/index.js +62 -0
- package/dist/source/index.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +12 -0
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.d.ts +1 -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 +4 -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 -0
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +3 -0
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js.map +1 -0
- 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 -0
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +3 -0
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js.map +1 -0
- 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 -0
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +3 -0
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js.map +1 -0
- package/dist/source/interfaces/data_access/ua_y_array_item.d.ts +4 -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 -0
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +3 -0
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.js.map +1 -0
- 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 +69 -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 -0
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +3 -0
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js.map +1 -0
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -0
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +3 -0
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js.map +1 -0
- 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 -0
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +3 -0
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js.map +1 -0
- package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -0
- package/dist/source/interfaces/state_machine/ua_state_machine_type.js +3 -0
- package/dist/source/interfaces/state_machine/ua_state_machine_type.js.map +1 -0
- 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 -0
- package/dist/source/interfaces/state_machine/ua_transition_ex.js +3 -0
- package/dist/source/interfaces/state_machine/ua_transition_ex.js.map +1 -0
- 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_authorisation_service.d.ts +1 -0
- package/dist/source/interfaces/ua_authorisation_service.js +3 -0
- package/dist/source/interfaces/ua_authorisation_service.js.map +1 -0
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -0
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +3 -0
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -0
- package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -0
- package/dist/source/loader/generateAddressSpaceRaw.js +59 -0
- package/dist/source/loader/generateAddressSpaceRaw.js.map +1 -0
- package/dist/source/loader/load_nodeset2.d.ts +13 -0
- package/dist/source/loader/load_nodeset2.js +1392 -0
- package/dist/source/loader/load_nodeset2.js.map +1 -0
- package/dist/source/loader/namespace_post_step.d.ts +6 -0
- package/dist/source/loader/namespace_post_step.js +48 -0
- package/dist/source/loader/namespace_post_step.js.map +1 -0
- package/dist/source/loader/register_node_promoter.d.ts +3 -0
- package/dist/source/loader/register_node_promoter.js +10 -0
- package/dist/source/loader/register_node_promoter.js.map +1 -0
- package/dist/source/namespace.d.ts +6 -0
- package/dist/source/namespace.js +3 -0
- package/dist/source/namespace.js.map +1 -0
- package/dist/source/namespace_alarm_and_condition.d.ts +24 -0
- package/dist/source/namespace_alarm_and_condition.js +3 -0
- package/dist/source/namespace_alarm_and_condition.js.map +1 -0
- package/dist/source/namespace_data_access.d.ts +42 -0
- package/dist/source/namespace_data_access.js +3 -0
- package/dist/source/namespace_data_access.js.map +1 -0
- package/dist/source/namespace_machine_state.d.ts +7 -0
- package/dist/source/namespace_machine_state.js +3 -0
- package/dist/source/namespace_machine_state.js.map +1 -0
- package/dist/source/pseudo_session.d.ts +55 -0
- package/dist/source/pseudo_session.js +205 -0
- package/dist/source/pseudo_session.js.map +1 -0
- package/dist/source/session_context.d.ts +111 -0
- package/dist/source/session_context.js +266 -0
- package/dist/source/session_context.js.map +1 -0
- package/dist/source/set_namespace_meta_data.d.ts +2 -0
- package/dist/source/set_namespace_meta_data.js +60 -0
- package/dist/source/set_namespace_meta_data.js.map +1 -0
- package/dist/source/ua_namespace_meta_data_type.d.ts +71 -0
- package/dist/source/ua_namespace_meta_data_type.js +3 -0
- package/dist/source/ua_namespace_meta_data_type.js.map +1 -0
- package/dist/source/ua_root_folder.d.ts +9 -0
- package/dist/source/ua_root_folder.js +3 -0
- package/dist/source/ua_root_folder.js.map +1 -0
- package/dist/source/ua_two_state_variable_ex.d.ts +23 -0
- package/dist/source/ua_two_state_variable_ex.js +3 -0
- package/dist/source/ua_two_state_variable_ex.js.map +1 -0
- package/dist/source/xml_writer.d.ts +9 -0
- package/dist/source/xml_writer.js +3 -0
- package/dist/source/xml_writer.js.map +1 -0
- package/dist/src/address_space.d.ts +393 -0
- package/dist/src/address_space.js +1375 -0
- package/dist/src/address_space.js.map +1 -0
- package/dist/src/address_space_change_event_tools.d.ts +6 -0
- package/dist/src/address_space_change_event_tools.js +150 -0
- package/dist/src/address_space_change_event_tools.js.map +1 -0
- package/dist/src/address_space_private.d.ts +44 -0
- package/dist/src/address_space_private.js +3 -0
- package/dist/src/address_space_private.js.map +1 -0
- 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 -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 -0
- package/dist/src/alarms_and_conditions/condition.js +81 -0
- package/dist/src/alarms_and_conditions/condition.js.map +1 -0
- 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_snapshot.d.ts +232 -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/deviation_alarm_helper.d.ts +21 -0
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +47 -0
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -0
- 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 +18 -0
- package/dist/src/alarms_and_conditions/index.js +31 -0
- package/dist/src/alarms_and_conditions/index.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -0
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +417 -0
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +29 -0
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js +39 -0
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +26 -0
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +1021 -0
- package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +58 -0
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +57 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +12 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +87 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +8 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -0
- 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 +98 -0
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +233 -0
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +51 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +163 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +136 -0
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -0
- 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 -0
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +18 -0
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -0
- package/dist/src/apply_condition_refresh.d.ts +6 -0
- package/dist/src/apply_condition_refresh.js +28 -0
- package/dist/src/apply_condition_refresh.js.map +1 -0
- package/dist/src/base_node.d.ts +279 -0
- package/dist/src/base_node.js +1364 -0
- package/dist/src/base_node.js.map +1 -0
- package/dist/src/base_node_impl.d.ts +281 -0
- package/dist/src/base_node_impl.js +1394 -0
- package/dist/src/base_node_impl.js.map +1 -0
- package/dist/src/base_node_private.d.ts +61 -0
- package/dist/src/base_node_private.js +521 -0
- package/dist/src/base_node_private.js.map +1 -0
- package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -0
- package/dist/src/data_access/add_dataItem_stuff.js +62 -0
- package/dist/src/data_access/add_dataItem_stuff.js.map +1 -0
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -0
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +35 -0
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js.map +1 -0
- 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 +23 -0
- package/dist/src/data_access/ua_multistate_discrete.js +131 -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 -0
- package/dist/src/data_access/ua_multistate_discrete_impl.js +131 -0
- package/dist/src/data_access/ua_multistate_discrete_impl.js.map +1 -0
- package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -0
- package/dist/src/data_access/ua_multistate_value_discrete.js +249 -0
- package/dist/src/data_access/ua_multistate_value_discrete.js.map +1 -0
- 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/event_data.d.ts +29 -0
- package/dist/src/event_data.js +96 -0
- package/dist/src/event_data.js.map +1 -0
- package/dist/src/extension_object_array_node.d.ts +61 -0
- package/dist/src/extension_object_array_node.js +266 -0
- package/dist/src/extension_object_array_node.js.map +1 -0
- package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -0
- package/dist/src/historical_access/address_space_historical_data_node.js +662 -0
- package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -0
- package/dist/src/index_current.d.ts +42 -0
- package/dist/src/index_current.js +71 -0
- package/dist/src/index_current.js.map +1 -0
- package/dist/src/namespace.d.ts +475 -0
- package/dist/src/namespace.js +1775 -0
- package/dist/src/namespace.js.map +1 -0
- package/dist/src/namespace_impl.d.ts +463 -0
- package/dist/src/namespace_impl.js +1763 -0
- package/dist/src/namespace_impl.js.map +1 -0
- package/dist/src/namespace_private.d.ts +21 -0
- package/dist/src/namespace_private.js +29 -0
- package/dist/src/namespace_private.js.map +1 -0
- package/dist/src/nodeid_manager.d.ts +36 -0
- package/dist/src/nodeid_manager.js +196 -0
- package/dist/src/nodeid_manager.js.map +1 -0
- package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -0
- package/dist/src/nodeset_tools/adjust_namespace_array.js +14 -0
- package/dist/src/nodeset_tools/adjust_namespace_array.js.map +1 -0
- package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -0
- package/dist/src/nodeset_tools/construct_namespace_dependency.js +39 -0
- package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -0
- package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -0
- package/dist/src/nodeset_tools/nodeset_to_xml.js +1155 -0
- package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -0
- package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -0
- package/dist/src/nodeset_tools/typedictionary_to_xml.js +147 -0
- package/dist/src/nodeset_tools/typedictionary_to_xml.js.map +1 -0
- 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 -0
- package/dist/src/reference_impl.js +138 -0
- package/dist/src/reference_impl.js.map +1 -0
- package/dist/src/role_permissions.d.ts +2 -0
- package/dist/src/role_permissions.js +11 -0
- package/dist/src/role_permissions.js.map +1 -0
- 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 -0
- package/dist/src/state_machine/finite_state_machine.js +354 -0
- package/dist/src/state_machine/finite_state_machine.js.map +1 -0
- package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +34 -0
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js +244 -0
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +1 -0
- package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -0
- package/dist/src/state_machine/ua_two_state_variable.js +332 -0
- package/dist/src/state_machine/ua_two_state_variable.js.map +1 -0
- package/dist/src/tool_isSupertypeOf.d.ts +17 -0
- package/dist/src/tool_isSupertypeOf.js +103 -0
- package/dist/src/tool_isSupertypeOf.js.map +1 -0
- package/dist/src/ua_condition_type.d.ts +8 -0
- package/dist/src/ua_condition_type.js +3 -0
- package/dist/src/ua_condition_type.js.map +1 -0
- package/dist/src/ua_data_type.d.ts +83 -0
- package/dist/src/ua_data_type.js +289 -0
- package/dist/src/ua_data_type.js.map +1 -0
- package/dist/src/ua_data_type_impl.d.ts +83 -0
- package/dist/src/ua_data_type_impl.js +291 -0
- package/dist/src/ua_data_type_impl.js.map +1 -0
- package/dist/src/ua_method.d.ts +42 -0
- package/dist/src/ua_method.js +204 -0
- package/dist/src/ua_method.js.map +1 -0
- package/dist/src/ua_method_impl.d.ts +40 -0
- package/dist/src/ua_method_impl.js +203 -0
- package/dist/src/ua_method_impl.js.map +1 -0
- package/dist/src/ua_object.d.ts +29 -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 +29 -0
- package/dist/src/ua_object_impl.js +156 -0
- package/dist/src/ua_object_impl.js.map +1 -0
- package/dist/src/ua_object_type.d.ts +49 -0
- package/dist/src/ua_object_type.js +124 -0
- package/dist/src/ua_object_type.js.map +1 -0
- package/dist/src/ua_object_type_impl.d.ts +48 -0
- package/dist/src/ua_object_type_impl.js +124 -0
- package/dist/src/ua_object_type_impl.js.map +1 -0
- package/dist/src/ua_reference_type.d.ts +42 -0
- package/dist/src/ua_reference_type.js +138 -0
- package/dist/src/ua_reference_type.js.map +1 -0
- package/dist/src/ua_reference_type_impl.d.ts +43 -0
- package/dist/src/ua_reference_type_impl.js +138 -0
- package/dist/src/ua_reference_type_impl.js.map +1 -0
- package/dist/src/ua_variable.d.ts +346 -0
- package/dist/src/ua_variable.js +1721 -0
- package/dist/src/ua_variable.js.map +1 -0
- package/dist/src/ua_variable_impl.d.ts +353 -0
- package/dist/src/ua_variable_impl.js +1719 -0
- package/dist/src/ua_variable_impl.js.map +1 -0
- package/dist/src/ua_variable_type.d.ts +54 -0
- package/dist/src/ua_variable_type.js +555 -0
- package/dist/src/ua_variable_type.js.map +1 -0
- package/dist/src/ua_variable_type_impl.d.ts +63 -0
- package/dist/src/ua_variable_type_impl.js +556 -0
- package/dist/src/ua_variable_type_impl.js.map +1 -0
- package/dist/src/ua_view.d.ts +16 -0
- package/dist/src/ua_view.js +42 -0
- package/dist/src/ua_view.js.map +1 -0
- package/dist/src/ua_view_impl.d.ts +15 -0
- package/dist/src/ua_view_impl.js +37 -0
- package/dist/src/ua_view_impl.js.map +1 -0
- package/distHelpers/add_event_generator_object.d.ts +3 -0
- package/distHelpers/add_event_generator_object.js +66 -0
- package/distHelpers/add_event_generator_object.js.map +1 -0
- package/distHelpers/alarms_and_conditions_demo.d.ts +10 -0
- package/distHelpers/alarms_and_conditions_demo.js +115 -0
- package/distHelpers/alarms_and_conditions_demo.js.map +1 -0
- package/distHelpers/assertHasMatchingReference.d.ts +19 -0
- package/distHelpers/assertHasMatchingReference.js +41 -0
- package/distHelpers/assertHasMatchingReference.js.map +1 -0
- package/distHelpers/boiler_system.d.ts +113 -0
- package/distHelpers/boiler_system.js +397 -0
- package/distHelpers/boiler_system.js.map +1 -0
- package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -0
- package/distHelpers/create_minimalist_address_space_nodeset.js +171 -0
- package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -0
- package/distHelpers/dump_statemachine.d.ts +6 -0
- package/distHelpers/dump_statemachine.js +116 -0
- package/distHelpers/dump_statemachine.js.map +1 -0
- package/distHelpers/get_address_space_fixture.d.ts +1 -0
- package/distHelpers/get_address_space_fixture.js +31 -0
- package/distHelpers/get_address_space_fixture.js.map +1 -0
- package/distHelpers/get_mini_address_space.d.ts +7 -0
- package/distHelpers/get_mini_address_space.js +37 -0
- package/distHelpers/get_mini_address_space.js.map +1 -0
- package/distHelpers/index.d.ts +11 -0
- package/distHelpers/index.js +24 -0
- package/distHelpers/index.js.map +1 -0
- package/distNodeJS/generate_address_space.d.ts +4 -0
- package/distNodeJS/generate_address_space.js +31 -0
- package/distNodeJS/generate_address_space.js.map +1 -0
- package/distNodeJS/index.d.ts +1 -0
- package/distNodeJS/index.js +14 -0
- package/distNodeJS/index.js.map +1 -0
- package/generate.js +1 -0
- package/nodeJS.d.ts +1 -0
- package/nodeJS.js +1 -0
- package/package.json +87 -0
- package/source/address_space_ts.ts +217 -0
- package/source/continuation_points/continuation_point_manager.ts +121 -0
- package/source/helpers/adjust_browse_direction.ts +15 -0
- package/source/helpers/argument_list.ts +286 -0
- package/source/helpers/call_helpers.ts +112 -0
- package/source/helpers/check_event_clause.ts +62 -0
- package/source/helpers/coerce_enum_value.ts +33 -0
- package/source/helpers/dump_tools.ts +92 -0
- package/source/helpers/ensure_secure_access.ts +88 -0
- package/source/helpers/make_optionals_map.ts +49 -0
- package/source/helpers/resolve_opaque_on_address_space.ts +23 -0
- package/source/index.ts +49 -0
- package/source/interfaces/alarms_and_conditions/condition_info_i.ts +13 -0
- package/source/interfaces/data_access/ua_multistate_discrete_ex.ts +26 -0
- package/source/interfaces/data_access/ua_multistate_value_discrete_ex.ts +34 -0
- package/source/interfaces/data_access/ua_two_state_discrete_ex.ts +14 -0
- package/source/interfaces/data_access/ua_y_array_item_ex.ts +10 -0
- package/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.ts +14 -0
- package/source/interfaces/state_machine/ua_finite_state_machine_type.ts +50 -0
- package/source/interfaces/state_machine/ua_program_state_machine_type.ts +13 -0
- package/source/interfaces/state_machine/ua_state_machine_type.ts +261 -0
- package/source/interfaces/state_machine/ua_transition_ex.ts +7 -0
- package/source/interfaces/ua_subscription_diagnostics_variable_ex.ts +8 -0
- package/source/loader/generateAddressSpaceRaw.ts +79 -0
- package/source/loader/load_nodeset2.ts +1600 -0
- package/source/loader/namespace_post_step.ts +36 -0
- package/source/loader/register_node_promoter.ts +8 -0
- package/source/namespace.ts +9 -0
- package/source/namespace_alarm_and_condition.ts +47 -0
- package/source/namespace_data_access.ts +60 -0
- package/source/namespace_machine_state.ts +13 -0
- package/source/pseudo_session.ts +288 -0
- package/source/session_context.ts +345 -0
- package/source/set_namespace_meta_data.ts +68 -0
- package/source/ua_root_folder.ts +10 -0
- package/source/ua_two_state_variable_ex.ts +35 -0
- package/source/xml_writer.ts +15 -0
- package/source_nodejs/generate_address_space.ts +36 -0
- package/source_nodejs/index.ts +1 -0
- package/src/address_space.ts +1575 -0
- package/src/address_space_change_event_tools.ts +177 -0
- package/src/address_space_private.ts +98 -0
- package/src/alarms_and_conditions/check_where_clause.ts +148 -0
- package/src/alarms_and_conditions/condition.ts +89 -0
- package/src/alarms_and_conditions/condition_info.ts +66 -0
- package/src/alarms_and_conditions/condition_snapshot.ts +766 -0
- package/src/alarms_and_conditions/deviation_alarm_helper.ts +66 -0
- package/src/alarms_and_conditions/extract_event_fields.ts +104 -0
- package/src/alarms_and_conditions/index.ts +18 -0
- package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +339 -0
- package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +513 -0
- package/src/alarms_and_conditions/ua_base_event_impl.ts +55 -0
- package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +50 -0
- package/src/alarms_and_conditions/ua_condition_impl.ts +1298 -0
- package/src/alarms_and_conditions/ua_discrete_alarm_impl.ts +81 -0
- package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +110 -0
- package/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +19 -0
- package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +130 -0
- package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +24 -0
- package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +305 -0
- package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +108 -0
- package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +224 -0
- package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +186 -0
- package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +27 -0
- package/src/apply_condition_refresh.ts +30 -0
- package/src/base_node_impl.ts +1749 -0
- package/src/base_node_private.ts +690 -0
- package/src/data_access/add_dataItem_stuff.ts +75 -0
- package/src/data_access/check_variant_compatibility_ua_analog_item.ts +41 -0
- package/src/data_access/ua_multistate_discrete_impl.ts +168 -0
- package/src/data_access/ua_multistate_value_discrete.ts +299 -0
- package/src/data_access/ua_two_state_discrete.ts +185 -0
- package/src/event_data.ts +117 -0
- package/src/extension_object_array_node.ts +325 -0
- package/src/historical_access/address_space_historical_data_node.ts +828 -0
- package/src/index_current.ts +52 -0
- package/src/namespace_impl.ts +2181 -0
- package/src/namespace_private.ts +60 -0
- package/src/nodeid_manager.ts +228 -0
- package/src/nodeset_tools/adjust_namespace_array.ts +11 -0
- package/src/nodeset_tools/construct_namespace_dependency.ts +40 -0
- package/src/nodeset_tools/nodeset_to_xml.ts +1317 -0
- package/src/nodeset_tools/typedictionary_to_xml.ts +175 -0
- package/src/reference_impl.ts +169 -0
- package/src/role_permissions.ts +6 -0
- package/src/state_machine/finite_state_machine.ts +428 -0
- package/src/state_machine/ua_shelving_state_machine_ex.ts +314 -0
- package/src/state_machine/ua_two_state_variable.ts +421 -0
- package/src/tool_isSupertypeOf.ts +129 -0
- package/src/ua_condition_type.ts +10 -0
- package/src/ua_data_type_impl.ts +356 -0
- package/src/ua_method_impl.ts +278 -0
- package/src/ua_object_impl.ts +203 -0
- package/src/ua_object_type_impl.ts +158 -0
- package/src/ua_reference_type_impl.ts +174 -0
- package/src/ua_variable_impl.ts +2277 -0
- package/src/ua_variable_type_impl.ts +741 -0
- package/src/ua_view_impl.ts +54 -0
- package/testHelpers.d.ts +1 -0
- package/testHelpers.js +1 -0
- package/test_helpers/add_event_generator_object.ts +71 -0
- package/test_helpers/alarms_and_conditions_demo.ts +147 -0
- package/test_helpers/assertHasMatchingReference.ts +43 -0
- package/test_helpers/boiler_system.ts +618 -0
- package/test_helpers/create_minimalist_address_space_nodeset.ts +208 -0
- package/test_helpers/dump_statemachine.ts +155 -0
- package/test_helpers/get_address_space_fixture.ts +30 -0
- package/test_helpers/get_mini_address_space.ts +42 -0
- package/test_helpers/index.ts +11 -0
- package/test_helpers/test_fixtures/dataType_in_separateNamespace.xml +150 -0
- package/test_helpers/test_fixtures/dataType_in_separateNamespace_basic.xml +57 -0
- package/test_helpers/test_fixtures/dataType_in_separateNamespace_mix.xml +136 -0
- package/test_helpers/test_fixtures/dataType_withEnumeration.xml +82 -0
- package/test_helpers/test_fixtures/dataType_with_isOptionSet.xml +194 -0
- package/test_helpers/test_fixtures/dataType_with_structures.xml +605 -0
- package/test_helpers/test_fixtures/dataType_with_union.xml +1 -0
- package/test_helpers/test_fixtures/datatype_as_per_1.04.xml +91 -0
- package/test_helpers/test_fixtures/fixture_empty_nodeset2.xml +106 -0
- package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +1303 -0
- package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +362 -0
- package/test_helpers/test_fixtures/issue_846.xml +3172 -0
- package/test_helpers/test_fixtures/issue_899_variable_with_nodeid_value.xml +33 -0
- package/test_helpers/test_fixtures/mini.Node.Set2.xml +4508 -0
- package/test_helpers/test_fixtures/mini.nodeset.withVariousVariables.xml +194 -0
- package/test_helpers/test_fixtures/minimalist_nodeset_with_models.xml +8 -0
- package/test_helpers/test_fixtures/minimalist_nodeset_with_models_more_complex.xml +16 -0
- package/test_helpers/test_fixtures/nodeset_with_analog_items.xml +45 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @module node-opcua-address-space.AlarmsAndConditions
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports._clear_timer_if_any = exports.UAShelvedStateMachineEx = void 0;
|
|
7
|
+
// --------------------------------------------------------------------------------------------------
|
|
8
|
+
// ShelvingStateMachine
|
|
9
|
+
// --------------------------------------------------------------------------------------------------
|
|
10
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
11
|
+
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
12
|
+
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
13
|
+
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
14
|
+
const ua_alarm_condition_impl_1 = require("../alarms_and_conditions/ua_alarm_condition_impl");
|
|
15
|
+
const finite_state_machine_1 = require("./finite_state_machine");
|
|
16
|
+
const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
|
|
17
|
+
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
|
|
18
|
+
class UAShelvedStateMachineEx extends finite_state_machine_1.UAStateMachineImpl {
|
|
19
|
+
static promote(object) {
|
|
20
|
+
const shelvingState = object;
|
|
21
|
+
(0, finite_state_machine_1.promoteToStateMachine)(shelvingState);
|
|
22
|
+
Object.setPrototypeOf(shelvingState, UAShelvedStateMachineEx.prototype);
|
|
23
|
+
shelvingState._timer = null;
|
|
24
|
+
if (shelvingState.unshelve) {
|
|
25
|
+
shelvingState.unshelve.bindMethod(_unshelve_method);
|
|
26
|
+
}
|
|
27
|
+
if (shelvingState.timedShelve) {
|
|
28
|
+
shelvingState.timedShelve.bindMethod(_timedShelve_method);
|
|
29
|
+
}
|
|
30
|
+
if (shelvingState.oneShotShelve) {
|
|
31
|
+
shelvingState.oneShotShelve.bindMethod(_oneShotShelve_method);
|
|
32
|
+
}
|
|
33
|
+
// install unshelveTime
|
|
34
|
+
if (shelvingState.unshelveTime) {
|
|
35
|
+
shelvingState.unshelveTime.minimumSamplingInterval = 500;
|
|
36
|
+
shelvingState.unshelveTime.bindVariable({
|
|
37
|
+
get: _unShelveTimeFunc.bind(null, shelvingState)
|
|
38
|
+
}, true);
|
|
39
|
+
}
|
|
40
|
+
(0, node_opcua_assert_1.assert)(shelvingState instanceof UAShelvedStateMachineEx);
|
|
41
|
+
return shelvingState;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.UAShelvedStateMachineEx = UAShelvedStateMachineEx;
|
|
45
|
+
// The Unshelve Method sets the AlarmCondition to the Unshelved state. Normally, the MethodId found
|
|
46
|
+
// the Shelving child of the Condition instance and the NodeId of the Shelving object as the ObjectId
|
|
47
|
+
// are passed to the Call Service. However, some Servers do not expose Condition instances in the
|
|
48
|
+
// IAddressSpace. Therefore all Servers shall also allow Clients to call the Unshelve Method by
|
|
49
|
+
// specifying ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the
|
|
50
|
+
// ShelvedStateMachineType Node.
|
|
51
|
+
// output => BadConditionNotShelved
|
|
52
|
+
function _unshelve_method(inputArguments, context, callback) {
|
|
53
|
+
(0, node_opcua_assert_1.assert)(inputArguments.length === 0);
|
|
54
|
+
// var alarmNode = context.object.parent;
|
|
55
|
+
// if (!(alarmNode instanceof UAAlarmConditionImpl)) {
|
|
56
|
+
// return callback(null, {statusCode: StatusCodes.BadNodeIdInvalid});
|
|
57
|
+
// }
|
|
58
|
+
//
|
|
59
|
+
// if (!alarmNode.getEnabledState() ) {
|
|
60
|
+
// return callback(null, {statusCode: StatusCodes.BadConditionDisabled});
|
|
61
|
+
// }
|
|
62
|
+
const shelvingState = context.object;
|
|
63
|
+
(0, finite_state_machine_1.promoteToStateMachine)(shelvingState);
|
|
64
|
+
if (shelvingState.getCurrentState() === "Unshelved") {
|
|
65
|
+
return callback(null, {
|
|
66
|
+
statusCode: node_opcua_status_code_1.StatusCodes.BadConditionNotShelved
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
shelvingState.setState("Unshelved");
|
|
70
|
+
shelvingState._unsheveldTime = new Date(); // now
|
|
71
|
+
_clear_timer_if_any(shelvingState);
|
|
72
|
+
(0, node_opcua_assert_1.assert)(!shelvingState._timer);
|
|
73
|
+
return callback(null, {
|
|
74
|
+
statusCode: node_opcua_status_code_1.StatusCodes.Good
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function _clear_timer_if_any(shelvingState) {
|
|
78
|
+
if (shelvingState._timer) {
|
|
79
|
+
clearTimeout(shelvingState._timer);
|
|
80
|
+
// xx console.log("_clear_timer_if_any shelvingState = ",shelvingState._timer,shelvingState.constructor.name);
|
|
81
|
+
shelvingState._timer = null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports._clear_timer_if_any = _clear_timer_if_any;
|
|
85
|
+
function _automatically_unshelve(shelvingState) {
|
|
86
|
+
(0, node_opcua_assert_1.assert)(shelvingState._timer, "expecting timerId to be set");
|
|
87
|
+
shelvingState._timer = null;
|
|
88
|
+
if (doDebug) {
|
|
89
|
+
debugLog("Automatically unshelving variable ", shelvingState.browseName.toString());
|
|
90
|
+
}
|
|
91
|
+
if (shelvingState.getCurrentState() === "Unshelved") {
|
|
92
|
+
// just ignore !!!
|
|
93
|
+
return;
|
|
94
|
+
// throw new Error(StatusCodes.BadConditionNotShelved);
|
|
95
|
+
}
|
|
96
|
+
shelvingState.setState("Unshelved");
|
|
97
|
+
shelvingState._unshelvedTime = new Date(); // now
|
|
98
|
+
(0, node_opcua_assert_1.assert)(!shelvingState._timer);
|
|
99
|
+
}
|
|
100
|
+
function _start_timer_for_automatic_unshelve(shelvingState, duration) {
|
|
101
|
+
if (duration < 10 || duration >= Math.pow(2, 31)) {
|
|
102
|
+
throw new Error(" Invalid maxTimeShelved duration: " + duration + " must be [10,2**31] ");
|
|
103
|
+
}
|
|
104
|
+
(0, node_opcua_assert_1.assert)(!shelvingState._timer);
|
|
105
|
+
shelvingState._sheveldTime = new Date(); // now
|
|
106
|
+
shelvingState._duration = duration;
|
|
107
|
+
if (doDebug) {
|
|
108
|
+
debugLog("shelvingState._duration", shelvingState._duration);
|
|
109
|
+
}
|
|
110
|
+
if (duration !== ua_alarm_condition_impl_1.UAAlarmConditionImpl.MaxDuration) {
|
|
111
|
+
(0, node_opcua_assert_1.assert)(!shelvingState._timer);
|
|
112
|
+
shelvingState._timer = setTimeout(_automatically_unshelve.bind(null, shelvingState), shelvingState._duration);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Spec 1.03:
|
|
116
|
+
// The TimedShelve Method sets the AlarmCondition to the TimedShelved state
|
|
117
|
+
// (parameters are defined in Table 38 and result codes are described in Table 39).
|
|
118
|
+
// Normally, the MethodId found in the Shelving child of the Condition instance and the NodeId of the Shelving object
|
|
119
|
+
// as the ObjectId are passed to the Call Service. However, some Servers do not expose Condition instances in the
|
|
120
|
+
// IAddressSpace. Therefore all Servers shall also allow Clients to call the TimedShelve Method by specifying
|
|
121
|
+
// ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the ShelvedStateMachineType Node.
|
|
122
|
+
//
|
|
123
|
+
// Signature: TimedShelve([in] Duration ShelvingTime);
|
|
124
|
+
//
|
|
125
|
+
// ShelvingTime Specifies a fixed time for which the Alarm is to be shelved. The Server may refuse
|
|
126
|
+
// the provided duration.
|
|
127
|
+
// If a MaxTimeShelved Property exist on the Alarm than the Shelving time shall be less than or equal
|
|
128
|
+
// to the value of this Property.
|
|
129
|
+
// StatusCode :
|
|
130
|
+
// BadConditionAlreadyShelved The Alarm is already in TimedShelved state and the system does not allow
|
|
131
|
+
// a reset of the shelved timer.
|
|
132
|
+
// BadShelvingTimeOutOfRange
|
|
133
|
+
function _timedShelve_method(inputArguments, context, callback) {
|
|
134
|
+
(0, node_opcua_assert_1.assert)(inputArguments.length === 1);
|
|
135
|
+
if (!context.object) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const shelvingState = context.object;
|
|
139
|
+
if (shelvingState.getCurrentState() !== "Unshelved") {
|
|
140
|
+
return callback(null, {
|
|
141
|
+
statusCode: node_opcua_status_code_1.StatusCodes.BadConditionAlreadyShelved
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
// checking duration ...
|
|
145
|
+
const alarmNode = shelvingState.parent;
|
|
146
|
+
// istanbul ignore next
|
|
147
|
+
if (!(alarmNode instanceof ua_alarm_condition_impl_1.UAAlarmConditionImpl)) {
|
|
148
|
+
return callback(null, {
|
|
149
|
+
statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
const maxTimeShelved = alarmNode.getMaxTimeShelved();
|
|
153
|
+
(0, node_opcua_assert_1.assert)(isFinite(maxTimeShelved));
|
|
154
|
+
(0, node_opcua_assert_1.assert)(inputArguments[0].dataType === node_opcua_variant_1.DataType.Double); // Duration
|
|
155
|
+
(0, node_opcua_assert_1.assert)(inputArguments[0] instanceof node_opcua_variant_1.Variant);
|
|
156
|
+
// xx console.log("inputArguments",inputArguments[0].toString());
|
|
157
|
+
const proposedDuration = inputArguments[0].value; // as double (milliseconds)
|
|
158
|
+
if (proposedDuration > maxTimeShelved) {
|
|
159
|
+
return callback(null, {
|
|
160
|
+
statusCode: node_opcua_status_code_1.StatusCodes.BadShelvingTimeOutOfRange
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
if (proposedDuration < 0) {
|
|
164
|
+
return callback(null, {
|
|
165
|
+
statusCode: node_opcua_status_code_1.StatusCodes.BadShelvingTimeOutOfRange
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
_clear_timer_if_any(shelvingState);
|
|
169
|
+
shelvingState.setState("TimedShelved");
|
|
170
|
+
_start_timer_for_automatic_unshelve(shelvingState, proposedDuration);
|
|
171
|
+
return callback(null, {
|
|
172
|
+
statusCode: node_opcua_status_code_1.StatusCodes.Good
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
// Spec 1.03:
|
|
176
|
+
// OneShotShelve Method
|
|
177
|
+
// The OneShotShelve Method sets the AlarmCondition to the OneShotShelved state. Normally, the MethodId found in the
|
|
178
|
+
// Shelving child of the Condition instance and the NodeId of the Shelving object as the ObjectId are passed to the
|
|
179
|
+
// Call Service. However, some Servers do not expose Condition instances in the IAddressSpace. Therefore all Servers
|
|
180
|
+
// shall also allow Clients to call the OneShotShelve Method by specifying ConditionId as the ObjectId. The Method
|
|
181
|
+
// cannot be called with an ObjectId of the ShelvedStateMachineType Node
|
|
182
|
+
function _oneShotShelve_method(inputArguments, context, callback) {
|
|
183
|
+
(0, node_opcua_assert_1.assert)(inputArguments.length === 0);
|
|
184
|
+
const shelvingState = context.object;
|
|
185
|
+
if (shelvingState.getCurrentState() === "OneShotShelved") {
|
|
186
|
+
return callback(null, {
|
|
187
|
+
statusCode: node_opcua_status_code_1.StatusCodes.BadConditionAlreadyShelved
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
// checking duration ...
|
|
191
|
+
const alarmNode = shelvingState.parent;
|
|
192
|
+
// istanbul ignore next
|
|
193
|
+
if (!(alarmNode instanceof ua_alarm_condition_impl_1.UAAlarmConditionImpl)) {
|
|
194
|
+
return callback(null, {
|
|
195
|
+
statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
const maxTimeShelved = alarmNode.getMaxTimeShelved();
|
|
199
|
+
(0, node_opcua_assert_1.assert)(isFinite(maxTimeShelved));
|
|
200
|
+
(0, node_opcua_assert_1.assert)(maxTimeShelved !== ua_alarm_condition_impl_1.UAAlarmConditionImpl.MaxDuration);
|
|
201
|
+
// set automatic unshelving timer
|
|
202
|
+
_clear_timer_if_any(shelvingState);
|
|
203
|
+
shelvingState.setState("OneShotShelved");
|
|
204
|
+
_start_timer_for_automatic_unshelve(shelvingState, maxTimeShelved);
|
|
205
|
+
return callback(null, {
|
|
206
|
+
statusCode: node_opcua_status_code_1.StatusCodes.Good
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
// from spec 1.03 :
|
|
210
|
+
// * UnshelveTime specifies the remaining time in milliseconds until the Alarm automatically
|
|
211
|
+
// transitions into the Un-shelved state.
|
|
212
|
+
// * For the TimedShelved state this time is initialised with the ShelvingTime argument of the
|
|
213
|
+
// TimedShelve Method call.
|
|
214
|
+
// * For the OneShotShelved state the UnshelveTime will be a constant set to the maximum Duration
|
|
215
|
+
// except if a MaxTimeShelved Property is provided.
|
|
216
|
+
function _unShelveTimeFunc(shelvingState) {
|
|
217
|
+
if (shelvingState.getCurrentState() === "Unshelved") {
|
|
218
|
+
return new node_opcua_variant_1.Variant({
|
|
219
|
+
dataType: node_opcua_variant_1.DataType.StatusCode,
|
|
220
|
+
value: node_opcua_status_code_1.StatusCodes.BadConditionNotShelved
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
if (!shelvingState._sheveldTime) {
|
|
224
|
+
return new node_opcua_variant_1.Variant({
|
|
225
|
+
dataType: node_opcua_variant_1.DataType.StatusCode,
|
|
226
|
+
value: node_opcua_status_code_1.StatusCodes.BadConditionNotShelved
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
if (shelvingState.getCurrentState() === "OneShotShelved" && shelvingState._duration === ua_alarm_condition_impl_1.UAAlarmConditionImpl.MaxDuration) {
|
|
230
|
+
return new node_opcua_variant_1.Variant({
|
|
231
|
+
dataType: node_opcua_variant_1.DataType.Double,
|
|
232
|
+
value: ua_alarm_condition_impl_1.UAAlarmConditionImpl.MaxDuration
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
const now = new Date();
|
|
236
|
+
let timeToAutomaticUnshelvedState = shelvingState._duration - (now.getTime() - shelvingState._sheveldTime.getTime());
|
|
237
|
+
// timeToAutomaticUnshelvedState should always be greater than (or equal) zero
|
|
238
|
+
timeToAutomaticUnshelvedState = Math.max(timeToAutomaticUnshelvedState, 0);
|
|
239
|
+
return new node_opcua_variant_1.Variant({
|
|
240
|
+
dataType: node_opcua_variant_1.DataType.Double,
|
|
241
|
+
value: timeToAutomaticUnshelvedState
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=ua_shelving_state_machine_ex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ua_shelving_state_machine_ex.js","sourceRoot":"","sources":["../../../src/state_machine/ua_shelving_state_machine_ex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { LocalizedText, LocalizedTextLike } from "node-opcua-data-model";
|
|
2
|
+
import { DataValueT } from "node-opcua-data-value";
|
|
3
|
+
import { NodeId } from "node-opcua-nodeid";
|
|
4
|
+
import { StatusCode, StatusCodeCallback } from "node-opcua-status-code";
|
|
5
|
+
import { DataType } from "node-opcua-variant";
|
|
6
|
+
import { BaseNode, BindVariableOptions, INamespace, UAReference, UAVariable, ISessionContext } from "node-opcua-address-space-base";
|
|
7
|
+
import { NumericRange } from "node-opcua-numeric-range";
|
|
8
|
+
import { QualifiedNameLike } from "node-opcua-data-model";
|
|
9
|
+
import { AddTwoStateVariableOptions } from "../../source/address_space_ts";
|
|
10
|
+
import { UATwoStateVariableEx } from "../../source/ua_two_state_variable_ex";
|
|
11
|
+
import { UAVariableImplT } from "../ua_variable_impl";
|
|
12
|
+
export declare function _install_TwoStateVariable_machinery(node: UAVariable, options: TwoStateVariableInitializeOptions): UATwoStateVariableEx;
|
|
13
|
+
export declare function promoteToTwoStateVariable(node: UAVariable): UATwoStateVariableEx;
|
|
14
|
+
export interface TwoStateVariableInitializeOptions {
|
|
15
|
+
trueState?: LocalizedTextLike;
|
|
16
|
+
falseState?: LocalizedTextLike;
|
|
17
|
+
isFalseSubStateOf?: NodeId | string | BaseNode;
|
|
18
|
+
isTrueSubStateOf?: NodeId | string | BaseNode;
|
|
19
|
+
value?: boolean | BindVariableOptions;
|
|
20
|
+
}
|
|
21
|
+
export declare interface UATwoStateVariableImpl extends UATwoStateVariableEx {
|
|
22
|
+
on(): this;
|
|
23
|
+
once(): this;
|
|
24
|
+
readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<LocalizedText, DataType.LocalizedText>;
|
|
25
|
+
writeValue(context: ISessionContext, dataValue: DataValueT<LocalizedText, DataType.LocalizedText>, indexRange: NumericRange | null, callback: StatusCodeCallback): void;
|
|
26
|
+
writeValue(context: ISessionContext, dataValue: DataValueT<LocalizedText, DataType.LocalizedText>, callback: StatusCodeCallback): void;
|
|
27
|
+
writeValue(context: ISessionContext, dataValue: DataValueT<LocalizedText, DataType.LocalizedText>, indexRange?: NumericRange | null): Promise<StatusCode>;
|
|
28
|
+
}
|
|
29
|
+
/***
|
|
30
|
+
* @class UATwoStateVariable
|
|
31
|
+
* @constructor
|
|
32
|
+
* @extends UAVariable
|
|
33
|
+
*/
|
|
34
|
+
export declare class UATwoStateVariableImpl extends UAVariableImplT<LocalizedText, DataType.LocalizedText> implements UATwoStateVariableEx {
|
|
35
|
+
private _trueState?;
|
|
36
|
+
private _falseState?;
|
|
37
|
+
constructor(opts: any);
|
|
38
|
+
get isFalseSubStateOf(): UATwoStateVariableEx;
|
|
39
|
+
get isTrueSubStateOf(): UATwoStateVariableEx;
|
|
40
|
+
initialize(options: TwoStateVariableInitializeOptions): void;
|
|
41
|
+
_postInitialize(): void;
|
|
42
|
+
/**
|
|
43
|
+
* @method setValue
|
|
44
|
+
* @param boolValue {Boolean}
|
|
45
|
+
*/
|
|
46
|
+
setValue(boolValue: boolean): void;
|
|
47
|
+
/**
|
|
48
|
+
* @method getValue
|
|
49
|
+
* @return {Boolean}
|
|
50
|
+
*/
|
|
51
|
+
getValue(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* @method getValueAsString
|
|
54
|
+
* @return {string}
|
|
55
|
+
*/
|
|
56
|
+
getValueAsString(): string;
|
|
57
|
+
getTrueState(): LocalizedText;
|
|
58
|
+
getFalseState(): LocalizedText;
|
|
59
|
+
_add_backward_reference(reference: UAReference): void;
|
|
60
|
+
}
|
|
61
|
+
export declare function _addTwoStateVariable(namespace: INamespace, options: AddTwoStateVariableOptions): UATwoStateVariableEx;
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._addTwoStateVariable = exports.UATwoStateVariableImpl = exports.promoteToTwoStateVariable = exports._install_TwoStateVariable_machinery = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space
|
|
6
|
+
*/
|
|
7
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
+
const node_opcua_constants_1 = require("node-opcua-constants");
|
|
9
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
10
|
+
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
11
|
+
const node_opcua_nodeid_2 = require("node-opcua-nodeid");
|
|
12
|
+
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
13
|
+
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
14
|
+
const node_opcua_variant_2 = require("node-opcua-variant");
|
|
15
|
+
// public interfaces
|
|
16
|
+
const register_node_promoter_1 = require("../../source/loader/register_node_promoter");
|
|
17
|
+
// private types
|
|
18
|
+
const ua_variable_impl_1 = require("../ua_variable_impl");
|
|
19
|
+
const hasTrueSubState_ReferenceTypeNodeId = (0, node_opcua_nodeid_1.resolveNodeId)("HasTrueSubState");
|
|
20
|
+
const hasFalseSubState_ReferenceTypeNodeId = (0, node_opcua_nodeid_1.resolveNodeId)("HasFalseSubState");
|
|
21
|
+
// Release 1.03 12 OPC Unified Architecture, Part 9
|
|
22
|
+
// Two-state state machines
|
|
23
|
+
// Most states defined in this standard are simple – i.e. they are either TRUE or FALSE. The
|
|
24
|
+
// TwoStateVariableType is introduced specifically for this use case. More complex states are
|
|
25
|
+
// modelled by using a StateMachineType defined in Part 5.
|
|
26
|
+
// The TwoStateVariableType is derived from the StateVariableType.
|
|
27
|
+
//
|
|
28
|
+
// Attribute Value
|
|
29
|
+
// BrowseName TwoStateVariableType
|
|
30
|
+
// DataType LocalizedText
|
|
31
|
+
// ValueRank -1 (-1 = Scalar)
|
|
32
|
+
// IsAbstract False
|
|
33
|
+
//
|
|
34
|
+
// Subtype of the StateVariableType defined in Part 5.
|
|
35
|
+
// Note that a Reference to this subtype is not shown in the definition of the StateVariableType
|
|
36
|
+
//
|
|
37
|
+
// References NodeClass BrowseName DataType TypeDefinition Modelling Rule
|
|
38
|
+
// HasProperty Variable Id Boolean PropertyType Mandatory
|
|
39
|
+
// HasProperty Variable TransitionTime UtcTime PropertyType Optional
|
|
40
|
+
// HasProperty Variable EffectiveTransitionTime UtcTime PropertyType Optional
|
|
41
|
+
// HasProperty Variable TrueState LocalizedText PropertyType Optional
|
|
42
|
+
// HasProperty Variable FalseState LocalizedText PropertyType Optional
|
|
43
|
+
// HasTrueSubState StateMachine or
|
|
44
|
+
// TwoStateVariableType
|
|
45
|
+
// <StateIdentifier> Defined in Clause 5.4.2 Optional
|
|
46
|
+
// HasFalseSubState StateMachine or
|
|
47
|
+
// TwoStateVariableType
|
|
48
|
+
// <StateIdentifier> Defined in Clause 5.4.3 Optional
|
|
49
|
+
function _updateTransitionTime(node) {
|
|
50
|
+
// TransitionTime specifies the time when the current state was entered.
|
|
51
|
+
if (node.transitionTime) {
|
|
52
|
+
node.transitionTime.setValueFromSource({ dataType: node_opcua_variant_2.DataType.DateTime, value: new Date() });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function _updateEffectiveTransitionTime(node) {
|
|
56
|
+
if (node.effectiveTransitionTime) {
|
|
57
|
+
// xx console.log("xxxx _updateEffectiveTransitionTime
|
|
58
|
+
// because subStateNode ",subStateNode.browseName.toString());
|
|
59
|
+
node.effectiveTransitionTime.setValueFromSource({
|
|
60
|
+
dataType: node_opcua_variant_2.DataType.DateTime,
|
|
61
|
+
value: new Date()
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function _getEffectiveDisplayName(node) {
|
|
66
|
+
const humanReadableString = _getHumanReadableString(node);
|
|
67
|
+
if (humanReadableString.statusCode !== node_opcua_status_code_1.StatusCodes.Good) {
|
|
68
|
+
return humanReadableString;
|
|
69
|
+
}
|
|
70
|
+
const boolValue = node.getValue();
|
|
71
|
+
let subStateNodes;
|
|
72
|
+
if (boolValue) {
|
|
73
|
+
subStateNodes = node.findReferencesExAsObject("HasTrueSubState", node_opcua_data_model_1.BrowseDirection.Forward);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
subStateNodes = node.findReferencesExAsObject("HasFalseSubState", node_opcua_data_model_1.BrowseDirection.Forward);
|
|
77
|
+
}
|
|
78
|
+
const states = subStateNodes.forEach((n) => {
|
|
79
|
+
// todo happen
|
|
80
|
+
});
|
|
81
|
+
return humanReadableString;
|
|
82
|
+
}
|
|
83
|
+
function _getHumanReadableString(node) {
|
|
84
|
+
const dataValue = node.id.readValue();
|
|
85
|
+
if (dataValue.statusCode !== node_opcua_status_code_1.StatusCodes.Good) {
|
|
86
|
+
const _c = dataValue.clone();
|
|
87
|
+
_c.value = new node_opcua_variant_1.Variant({
|
|
88
|
+
dataType: node_opcua_variant_2.DataType.LocalizedText,
|
|
89
|
+
value: (0, node_opcua_data_model_1.coerceLocalizedText)("")
|
|
90
|
+
});
|
|
91
|
+
return _c;
|
|
92
|
+
}
|
|
93
|
+
(0, node_opcua_assert_1.assert)(dataValue.value.dataType === node_opcua_variant_2.DataType.Boolean);
|
|
94
|
+
const boolValue = dataValue.value.value;
|
|
95
|
+
// The Value Attribute of a TwoStateVariable contains the current state as a human readable name.
|
|
96
|
+
// The EnabledState for example, might contain the name “Enabled” when TRUE and “Disabled” when FALSE.
|
|
97
|
+
const dataValue2 = dataValue.clone();
|
|
98
|
+
dataValue2.value = new node_opcua_variant_1.Variant({
|
|
99
|
+
dataType: node_opcua_variant_2.DataType.LocalizedText,
|
|
100
|
+
value: boolValue ? node.getTrueState() : node.getFalseState()
|
|
101
|
+
});
|
|
102
|
+
return dataValue2;
|
|
103
|
+
}
|
|
104
|
+
function _install_TwoStateVariable_machinery(node, options) {
|
|
105
|
+
(0, node_opcua_assert_1.assert)(node.dataTypeObj.browseName.toString() === "LocalizedText");
|
|
106
|
+
(0, node_opcua_assert_1.assert)(node.minimumSamplingInterval === 0);
|
|
107
|
+
(0, node_opcua_assert_1.assert)(node.typeDefinitionObj.browseName.toString() === "TwoStateVariableType");
|
|
108
|
+
(0, node_opcua_assert_1.assert)(node.dataTypeObj.browseName.toString() === "LocalizedText");
|
|
109
|
+
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(node, "valueRank") && (node.valueRank === -1 || node.valueRank === 0));
|
|
110
|
+
// promote node into a UATwoStateVariable
|
|
111
|
+
const _node = promoteToTwoStateVariable(node);
|
|
112
|
+
node.initialize(options);
|
|
113
|
+
return _node;
|
|
114
|
+
}
|
|
115
|
+
exports._install_TwoStateVariable_machinery = _install_TwoStateVariable_machinery;
|
|
116
|
+
function promoteToTwoStateVariable(node) {
|
|
117
|
+
if (node instanceof UATwoStateVariableImpl) {
|
|
118
|
+
return node;
|
|
119
|
+
}
|
|
120
|
+
// istanbul ignore next
|
|
121
|
+
if (!(node instanceof ua_variable_impl_1.UAVariableImpl)) {
|
|
122
|
+
throw new Error("Trying to promote a invalid object");
|
|
123
|
+
}
|
|
124
|
+
Object.setPrototypeOf(node, UATwoStateVariableImpl.prototype);
|
|
125
|
+
return node;
|
|
126
|
+
}
|
|
127
|
+
exports.promoteToTwoStateVariable = promoteToTwoStateVariable;
|
|
128
|
+
(0, register_node_promoter_1.registerNodePromoter)(node_opcua_constants_1.VariableTypeIds.TwoStateVariableType, promoteToTwoStateVariable);
|
|
129
|
+
/***
|
|
130
|
+
* @class UATwoStateVariable
|
|
131
|
+
* @constructor
|
|
132
|
+
* @extends UAVariable
|
|
133
|
+
*/
|
|
134
|
+
class UATwoStateVariableImpl extends ua_variable_impl_1.UAVariableImplT {
|
|
135
|
+
constructor(opts) {
|
|
136
|
+
super(opts);
|
|
137
|
+
}
|
|
138
|
+
get isFalseSubStateOf() {
|
|
139
|
+
return super.isFalseSubStateOf;
|
|
140
|
+
}
|
|
141
|
+
get isTrueSubStateOf() {
|
|
142
|
+
return super.isTrueSubStateOf;
|
|
143
|
+
}
|
|
144
|
+
initialize(options) {
|
|
145
|
+
if (options.trueState) {
|
|
146
|
+
(0, node_opcua_assert_1.assert)(!!options.falseState);
|
|
147
|
+
(0, node_opcua_assert_1.assert)(typeof options.trueState === "string");
|
|
148
|
+
(0, node_opcua_assert_1.assert)(typeof options.falseState === "string");
|
|
149
|
+
if (this.falseState) {
|
|
150
|
+
this.falseState.setValueFromSource({
|
|
151
|
+
dataType: node_opcua_variant_2.DataType.LocalizedText,
|
|
152
|
+
value: (0, node_opcua_data_model_1.coerceLocalizedText)(options.falseState)
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
this._trueState = (0, node_opcua_data_model_1.coerceLocalizedText)(options.trueState).text;
|
|
157
|
+
}
|
|
158
|
+
if (this.trueState) {
|
|
159
|
+
this.trueState.setValueFromSource({
|
|
160
|
+
dataType: node_opcua_variant_2.DataType.LocalizedText,
|
|
161
|
+
value: (0, node_opcua_data_model_1.coerceLocalizedText)(options.trueState)
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
this._falseState = (0, node_opcua_data_model_1.coerceLocalizedText)(options.falseState).text;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// handle isTrueSubStateOf
|
|
169
|
+
if (options.isTrueSubStateOf) {
|
|
170
|
+
this.addReference({
|
|
171
|
+
isForward: false,
|
|
172
|
+
nodeId: options.isTrueSubStateOf,
|
|
173
|
+
referenceType: "HasTrueSubState"
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
if (options.isFalseSubStateOf) {
|
|
177
|
+
this.addReference({
|
|
178
|
+
isForward: false,
|
|
179
|
+
nodeId: options.isFalseSubStateOf,
|
|
180
|
+
referenceType: "HasFalseSubState"
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
if (options.value === undefined) {
|
|
184
|
+
this.id.setValueFromSource({
|
|
185
|
+
dataType: "Boolean",
|
|
186
|
+
value: false
|
|
187
|
+
}, node_opcua_status_code_1.StatusCodes.UncertainInitialValue);
|
|
188
|
+
}
|
|
189
|
+
else if (typeof options.value === "boolean") {
|
|
190
|
+
this.id.setValueFromSource({
|
|
191
|
+
dataType: "Boolean",
|
|
192
|
+
value: options.value
|
|
193
|
+
}, node_opcua_status_code_1.StatusCodes.Good);
|
|
194
|
+
}
|
|
195
|
+
else if (Object.prototype.hasOwnProperty.call(options.value, "dataType")) {
|
|
196
|
+
(0, node_opcua_assert_1.assert)(options.value.dataType === node_opcua_variant_2.DataType.Boolean);
|
|
197
|
+
this.id.setValueFromSource(options.value, node_opcua_status_code_1.StatusCodes.Good);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
this.id.bindVariable(options.value);
|
|
201
|
+
}
|
|
202
|
+
this._postInitialize();
|
|
203
|
+
}
|
|
204
|
+
_postInitialize() {
|
|
205
|
+
if (this.effectiveTransitionTime) {
|
|
206
|
+
// install "value_changed" event handler on SubState that are already defined
|
|
207
|
+
const subStates = this.getTrueSubStates().concat(this.getFalseSubStates());
|
|
208
|
+
for (const subState of subStates) {
|
|
209
|
+
subState.on("value_changed", () => _updateEffectiveTransitionTime(this));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// it should be possible to define a trueState and falseState LocalizedText even if
|
|
213
|
+
// the trueState or FalseState node is not exposed. Therefore we need to store their value
|
|
214
|
+
// into dedicated variables.
|
|
215
|
+
this.id.on("value_changed", () => {
|
|
216
|
+
this._internal_set_dataValue(_getHumanReadableString(this));
|
|
217
|
+
});
|
|
218
|
+
this._internal_set_dataValue(_getHumanReadableString(this));
|
|
219
|
+
// todo : also set the effectiveDisplayName if present
|
|
220
|
+
// from spec Part 5
|
|
221
|
+
// Release 1.03 OPC Unified Architecture, Part 5
|
|
222
|
+
// EffectiveDisplayName contains a human readable name for the current state of the state
|
|
223
|
+
// machine after taking the state of any SubStateMachines in account. There is no rule specified
|
|
224
|
+
// for which state or sub-state should be used. It is up to the Server and will depend on the
|
|
225
|
+
// semantics of the StateMachineType
|
|
226
|
+
//
|
|
227
|
+
// EffectiveDisplayName will be constructed by adding the EnableState
|
|
228
|
+
// and the State of the addTrue state
|
|
229
|
+
if (this.effectiveDisplayName) {
|
|
230
|
+
this.id.on("value_changed", () => {
|
|
231
|
+
this.effectiveDisplayName._internal_set_dataValue(_getEffectiveDisplayName(this));
|
|
232
|
+
});
|
|
233
|
+
this.effectiveDisplayName._internal_set_dataValue(_getEffectiveDisplayName(this));
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* @method setValue
|
|
238
|
+
* @param boolValue {Boolean}
|
|
239
|
+
*/
|
|
240
|
+
setValue(boolValue) {
|
|
241
|
+
(0, node_opcua_assert_1.assert)(typeof boolValue === "boolean");
|
|
242
|
+
const dataValue = this.id.readValue();
|
|
243
|
+
const oldValue = dataValue.value.value;
|
|
244
|
+
if (dataValue.statusCode === node_opcua_status_code_1.StatusCodes.Good && boolValue === oldValue) {
|
|
245
|
+
return; // nothing to do
|
|
246
|
+
}
|
|
247
|
+
//
|
|
248
|
+
this.id.setValueFromSource(new node_opcua_variant_1.Variant({ dataType: node_opcua_variant_2.DataType.Boolean, value: boolValue }));
|
|
249
|
+
_updateTransitionTime(this);
|
|
250
|
+
_updateEffectiveTransitionTime(this);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* @method getValue
|
|
254
|
+
* @return {Boolean}
|
|
255
|
+
*/
|
|
256
|
+
getValue() {
|
|
257
|
+
const dataValue = this.id.readValue();
|
|
258
|
+
(0, node_opcua_assert_1.assert)(dataValue.statusCode === node_opcua_status_code_1.StatusCodes.Good);
|
|
259
|
+
(0, node_opcua_assert_1.assert)(dataValue.value.dataType === node_opcua_variant_2.DataType.Boolean);
|
|
260
|
+
return dataValue.value.value;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* @method getValueAsString
|
|
264
|
+
* @return {string}
|
|
265
|
+
*/
|
|
266
|
+
getValueAsString() {
|
|
267
|
+
var _a;
|
|
268
|
+
const dataValue = this.readValue();
|
|
269
|
+
(0, node_opcua_assert_1.assert)(dataValue.statusCode === node_opcua_status_code_1.StatusCodes.Good);
|
|
270
|
+
(0, node_opcua_assert_1.assert)(dataValue.value.dataType === node_opcua_variant_2.DataType.LocalizedText);
|
|
271
|
+
return ((_a = dataValue.value.value.text) === null || _a === void 0 ? void 0 : _a.toString()) || "";
|
|
272
|
+
}
|
|
273
|
+
getTrueState() {
|
|
274
|
+
return this.trueState ? this.trueState.readValue().value.value : (0, node_opcua_data_model_1.coerceLocalizedText)(this._trueState || "TRUE");
|
|
275
|
+
}
|
|
276
|
+
getFalseState() {
|
|
277
|
+
return this.falseState ? this.falseState.readValue().value.value : (0, node_opcua_data_model_1.coerceLocalizedText)(this._falseState || "FALSE");
|
|
278
|
+
}
|
|
279
|
+
// TODO : shall we care about overloading the remove_backward_reference method ?
|
|
280
|
+
// some TrueSubState and FalseSubState relationship may be added later
|
|
281
|
+
// so we need a mechanism to keep adding the "value_changed" event handle on subStates that
|
|
282
|
+
// will be defined later.
|
|
283
|
+
// install change detection on sub State
|
|
284
|
+
// this is useful to change the effective transitionTime
|
|
285
|
+
// EffectiveTransitionTime specifies the time when the current state or one of its sub states was entered.
|
|
286
|
+
// If, for example, a LevelAlarm is active and – while active – switches several times between High and
|
|
287
|
+
// HighHigh, then the TransitionTime stays at the point in time where the Alarm became active whereas the
|
|
288
|
+
// EffectiveTransitionTime changes with each shift of a sub state.
|
|
289
|
+
_add_backward_reference(reference) {
|
|
290
|
+
super._add_backward_reference(reference);
|
|
291
|
+
if (reference.isForward &&
|
|
292
|
+
((0, node_opcua_nodeid_2.sameNodeId)(reference.referenceType, hasTrueSubState_ReferenceTypeNodeId) ||
|
|
293
|
+
(0, node_opcua_nodeid_2.sameNodeId)(reference.referenceType, hasFalseSubState_ReferenceTypeNodeId))) {
|
|
294
|
+
const addressSpace = this.addressSpace;
|
|
295
|
+
// add event handle
|
|
296
|
+
const subState = addressSpace.findNode(reference.nodeId);
|
|
297
|
+
subState.on("value_changed", _updateEffectiveTransitionTime.bind(null, this, subState));
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
exports.UATwoStateVariableImpl = UATwoStateVariableImpl;
|
|
302
|
+
function _addTwoStateVariable(namespace, options) {
|
|
303
|
+
const addressSpace = namespace.addressSpace;
|
|
304
|
+
const twoStateVariableType = addressSpace.findVariableType("TwoStateVariableType");
|
|
305
|
+
if (!twoStateVariableType) {
|
|
306
|
+
throw new Error("cannot find TwoStateVariableType");
|
|
307
|
+
}
|
|
308
|
+
options.optionals = options.optionals || [];
|
|
309
|
+
if (options.trueState) {
|
|
310
|
+
options.optionals.push("TrueState");
|
|
311
|
+
}
|
|
312
|
+
if (options.falseState) {
|
|
313
|
+
options.optionals.push("FalseState");
|
|
314
|
+
}
|
|
315
|
+
// we want event based changes...
|
|
316
|
+
options.minimumSamplingInterval = 0;
|
|
317
|
+
const node = twoStateVariableType.instantiate({
|
|
318
|
+
browseName: options.browseName,
|
|
319
|
+
nodeId: options.nodeId,
|
|
320
|
+
description: options.description,
|
|
321
|
+
componentOf: options.componentOf,
|
|
322
|
+
organizedBy: options.organizedBy,
|
|
323
|
+
modellingRule: options.modellingRule,
|
|
324
|
+
dataType: (0, node_opcua_nodeid_1.resolveNodeId)(node_opcua_variant_2.DataType.LocalizedText),
|
|
325
|
+
minimumSamplingInterval: options.minimumSamplingInterval,
|
|
326
|
+
optionals: options.optionals
|
|
327
|
+
});
|
|
328
|
+
const _node = _install_TwoStateVariable_machinery(node, options);
|
|
329
|
+
return _node;
|
|
330
|
+
}
|
|
331
|
+
exports._addTwoStateVariable = _addTwoStateVariable;
|
|
332
|
+
//# sourceMappingURL=ua_two_state_variable.js.map
|