node-opcua-address-space 2.71.0 → 2.72.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -118
  2. package/dist/source/address_space_ts.js +17 -17
  3. package/dist/source/continuation_points/continuation_point_manager.d.ts +32 -32
  4. package/dist/source/continuation_points/continuation_point_manager.js +195 -195
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +34 -34
  8. package/dist/source/helpers/argument_list.js +285 -285
  9. package/dist/source/helpers/call_helpers.d.ts +6 -6
  10. package/dist/source/helpers/call_helpers.js +70 -70
  11. package/dist/source/helpers/check_event_clause.d.ts +17 -17
  12. package/dist/source/helpers/check_event_clause.js +52 -52
  13. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  14. package/dist/source/helpers/coerce_enum_value.js +33 -33
  15. package/dist/source/helpers/dump_tools.d.ts +14 -14
  16. package/dist/source/helpers/dump_tools.js +78 -78
  17. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  18. package/dist/source/helpers/ensure_secure_access.js +76 -76
  19. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  20. package/dist/source/helpers/make_optionals_map.js +29 -29
  21. package/dist/source/helpers/multiform_func.d.ts +11 -11
  22. package/dist/source/helpers/multiform_func.js +73 -73
  23. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  24. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  25. package/dist/source/index.d.ts +40 -40
  26. package/dist/source/index.js +66 -66
  27. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +12 -12
  28. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  29. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  30. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  31. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  32. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  33. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  34. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  35. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  36. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  37. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  38. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  39. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  40. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  41. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  42. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  43. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  44. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  45. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  46. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  47. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  48. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  49. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  50. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  51. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  52. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  53. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  54. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  55. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  56. package/dist/source/loader/load_nodeset2.js +1468 -1464
  57. package/dist/source/loader/load_nodeset2.js.map +1 -1
  58. package/dist/source/loader/make_semver_compatible.d.ts +6 -0
  59. package/dist/source/loader/make_semver_compatible.js +26 -0
  60. package/dist/source/loader/make_semver_compatible.js.map +1 -0
  61. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  62. package/dist/source/loader/make_xml_extension_object_parser.js +325 -315
  63. package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -1
  64. package/dist/source/loader/namespace_post_step.d.ts +6 -6
  65. package/dist/source/loader/namespace_post_step.js +47 -47
  66. package/dist/source/loader/register_node_promoter.d.ts +3 -3
  67. package/dist/source/loader/register_node_promoter.js +9 -9
  68. package/dist/source/namespace.d.ts +6 -6
  69. package/dist/source/namespace.js +2 -2
  70. package/dist/source/namespace_alarm_and_condition.d.ts +24 -24
  71. package/dist/source/namespace_alarm_and_condition.js +2 -2
  72. package/dist/source/namespace_data_access.d.ts +42 -42
  73. package/dist/source/namespace_data_access.js +2 -2
  74. package/dist/source/namespace_machine_state.d.ts +7 -7
  75. package/dist/source/namespace_machine_state.js +2 -2
  76. package/dist/source/pseudo_session.d.ts +55 -55
  77. package/dist/source/pseudo_session.js +203 -203
  78. package/dist/source/session_context.d.ts +111 -111
  79. package/dist/source/session_context.js +265 -265
  80. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  81. package/dist/source/set_namespace_meta_data.js +59 -59
  82. package/dist/source/ua_root_folder.d.ts +9 -9
  83. package/dist/source/ua_root_folder.js +2 -2
  84. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  85. package/dist/source/ua_two_state_variable_ex.js +2 -2
  86. package/dist/source/xml_writer.d.ts +9 -9
  87. package/dist/source/xml_writer.js +2 -2
  88. package/dist/src/address_space.d.ts +392 -392
  89. package/dist/src/address_space.js +1387 -1387
  90. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  91. package/dist/src/address_space_change_event_tools.js +149 -149
  92. package/dist/src/address_space_private.d.ts +43 -43
  93. package/dist/src/address_space_private.js +2 -2
  94. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -4
  95. package/dist/src/alarms_and_conditions/check_where_clause.js +109 -109
  96. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  97. package/dist/src/alarms_and_conditions/condition.js +80 -80
  98. package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -27
  99. package/dist/src/alarms_and_conditions/condition_info.js +54 -54
  100. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -233
  101. package/dist/src/alarms_and_conditions/condition_snapshot.js +666 -666
  102. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +21 -21
  103. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +46 -46
  104. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -10
  105. package/dist/src/alarms_and_conditions/extract_event_fields.js +89 -89
  106. package/dist/src/alarms_and_conditions/index.d.ts +18 -18
  107. package/dist/src/alarms_and_conditions/index.js +34 -34
  108. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +64 -62
  109. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  110. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
  111. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +124 -118
  112. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +416 -416
  113. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  114. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +29 -29
  115. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  116. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +36 -21
  117. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +115 -25
  118. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
  119. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +187 -182
  120. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1024 -1022
  121. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  122. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +18 -17
  123. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +57 -57
  124. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -1
  125. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +30 -27
  126. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  127. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
  128. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -9
  129. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  130. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -1
  131. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +40 -38
  132. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  133. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
  134. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +10 -10
  135. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  136. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +105 -97
  137. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  138. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
  139. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +29 -28
  140. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  141. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
  142. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +26 -25
  143. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  144. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
  145. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +48 -39
  146. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +161 -135
  147. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
  148. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +17 -16
  149. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  150. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -1
  151. package/dist/src/apply_condition_refresh.d.ts +6 -6
  152. package/dist/src/apply_condition_refresh.js +27 -27
  153. package/dist/src/base_node_impl.d.ts +281 -281
  154. package/dist/src/base_node_impl.js +1395 -1395
  155. package/dist/src/base_node_private.d.ts +61 -61
  156. package/dist/src/base_node_private.js +705 -705
  157. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  158. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  159. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  160. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  161. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  162. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  163. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -51
  164. package/dist/src/data_access/ua_multistate_value_discrete.js +249 -249
  165. package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -25
  166. package/dist/src/data_access/ua_two_state_discrete.js +153 -153
  167. package/dist/src/event_data.d.ts +29 -29
  168. package/dist/src/event_data.js +95 -95
  169. package/dist/src/extension_object_array_node.d.ts +61 -61
  170. package/dist/src/extension_object_array_node.js +276 -276
  171. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  172. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  173. package/dist/src/index_current.d.ts +45 -45
  174. package/dist/src/index_current.js +77 -77
  175. package/dist/src/namespace_impl.d.ts +457 -457
  176. package/dist/src/namespace_impl.js +1733 -1733
  177. package/dist/src/namespace_private.d.ts +21 -21
  178. package/dist/src/namespace_private.js +32 -32
  179. package/dist/src/nodeid_manager.d.ts +36 -36
  180. package/dist/src/nodeid_manager.js +197 -197
  181. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  182. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  183. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  184. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  185. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  186. package/dist/src/nodeset_tools/nodeset_to_xml.js +1143 -1143
  187. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  188. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  189. package/dist/src/reference_impl.d.ts +43 -43
  190. package/dist/src/reference_impl.js +139 -139
  191. package/dist/src/role_permissions.d.ts +2 -2
  192. package/dist/src/role_permissions.js +10 -10
  193. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  194. package/dist/src/state_machine/finite_state_machine.js +353 -353
  195. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +34 -34
  196. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  197. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  198. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  199. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  200. package/dist/src/tool_isSupertypeOf.js +108 -108
  201. package/dist/src/ua_condition_type.d.ts +8 -8
  202. package/dist/src/ua_condition_type.js +2 -2
  203. package/dist/src/ua_data_type_impl.d.ts +93 -93
  204. package/dist/src/ua_data_type_impl.js +368 -368
  205. package/dist/src/ua_method_impl.d.ts +41 -41
  206. package/dist/src/ua_method_impl.js +208 -208
  207. package/dist/src/ua_object_impl.d.ts +35 -33
  208. package/dist/src/ua_object_impl.js +162 -156
  209. package/dist/src/ua_object_impl.js.map +1 -1
  210. package/dist/src/ua_object_type_impl.d.ts +48 -48
  211. package/dist/src/ua_object_type_impl.js +124 -124
  212. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  213. package/dist/src/ua_reference_type_impl.js +139 -139
  214. package/dist/src/ua_variable_impl.d.ts +351 -351
  215. package/dist/src/ua_variable_impl.js +1604 -1604
  216. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  217. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  218. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  219. package/dist/src/ua_variable_type_impl.js +570 -570
  220. package/dist/src/ua_view_impl.d.ts +19 -15
  221. package/dist/src/ua_view_impl.js +43 -36
  222. package/dist/src/ua_view_impl.js.map +1 -1
  223. package/distHelpers/add_event_generator_object.d.ts +3 -3
  224. package/distHelpers/add_event_generator_object.js +65 -65
  225. package/distHelpers/alarms_and_conditions_demo.d.ts +10 -10
  226. package/distHelpers/alarms_and_conditions_demo.js +114 -114
  227. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  228. package/distHelpers/assertHasMatchingReference.js +40 -40
  229. package/distHelpers/boiler_system.d.ts +113 -113
  230. package/distHelpers/boiler_system.js +395 -395
  231. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  232. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  233. package/distHelpers/date_utils.d.ts +3 -3
  234. package/distHelpers/date_utils.js +9 -9
  235. package/distHelpers/dump_statemachine.js +127 -127
  236. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  237. package/distHelpers/get_address_space_fixture.js +30 -30
  238. package/distHelpers/get_mini_address_space.d.ts +7 -7
  239. package/distHelpers/get_mini_address_space.js +36 -36
  240. package/distHelpers/index.d.ts +12 -12
  241. package/distHelpers/index.js +28 -28
  242. package/distHelpers/mock_session.d.ts +14 -14
  243. package/distHelpers/mock_session.js +25 -25
  244. package/distNodeJS/generate_address_space.d.ts +4 -4
  245. package/distNodeJS/generate_address_space.js +41 -41
  246. package/distNodeJS/index.d.ts +1 -1
  247. package/distNodeJS/index.js +17 -17
  248. package/package.json +23 -23
  249. package/source/loader/load_nodeset2.ts +21 -17
  250. package/source/loader/make_semver_compatible.ts +23 -0
  251. package/source/loader/make_xml_extension_object_parser.ts +16 -6
  252. package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +13 -6
  253. package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +15 -10
  254. package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +126 -10
  255. package/src/alarms_and_conditions/ua_condition_impl.ts +26 -13
  256. package/src/alarms_and_conditions/ua_discrete_alarm_impl.ts +10 -4
  257. package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +7 -6
  258. package/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +5 -3
  259. package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +7 -6
  260. package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +1 -1
  261. package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +23 -13
  262. package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +6 -7
  263. package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +6 -7
  264. package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +62 -30
  265. package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +5 -5
  266. package/src/ua_object_impl.ts +11 -3
  267. package/src/ua_view_impl.ts +6 -4
  268. package/test_helpers/test_fixtures/dataType_issue.xml +9 -9
  269. package/test_helpers/test_fixtures/nodeset_with_guid.xml +1442 -0
  270. package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +31 -0
  271. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.d.ts +0 -23
  272. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js +0 -3
  273. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js.map +0 -1
  274. package/dist/source/interfaces/data_access/ua_discrete_item.d.ts +0 -6
  275. package/dist/source/interfaces/data_access/ua_discrete_item.js +0 -3
  276. package/dist/source/interfaces/data_access/ua_discrete_item.js.map +0 -1
  277. package/dist/source/interfaces/data_access/ua_multistate_discrete.d.ts +0 -25
  278. package/dist/source/interfaces/data_access/ua_multistate_discrete.js +0 -3
  279. package/dist/source/interfaces/data_access/ua_multistate_discrete.js.map +0 -1
  280. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.d.ts +0 -27
  281. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js +0 -3
  282. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js.map +0 -1
  283. package/dist/source/interfaces/data_access/ua_two_state_discrete.d.ts +0 -17
  284. package/dist/source/interfaces/data_access/ua_two_state_discrete.js +0 -3
  285. package/dist/source/interfaces/data_access/ua_two_state_discrete.js.map +0 -1
  286. package/dist/source/interfaces/data_access/ua_y_array_item.d.ts +0 -19
  287. package/dist/source/interfaces/data_access/ua_y_array_item.js +0 -3
  288. package/dist/source/interfaces/data_access/ua_y_array_item.js.map +0 -1
  289. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.d.ts +0 -11
  290. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js +0 -3
  291. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js.map +0 -1
  292. package/dist/source/interfaces/state_machine/finite_state_machine.d.ts +0 -70
  293. package/dist/source/interfaces/state_machine/finite_state_machine.js +0 -3
  294. package/dist/source/interfaces/state_machine/finite_state_machine.js.map +0 -1
  295. package/dist/source/interfaces/state_machine/program_finite_state_machine.d.ts +0 -74
  296. package/dist/source/interfaces/state_machine/program_finite_state_machine.js +0 -3
  297. package/dist/source/interfaces/state_machine/program_finite_state_machine.js.map +0 -1
  298. package/dist/source/interfaces/state_machine/state_machine.d.ts +0 -342
  299. package/dist/source/interfaces/state_machine/state_machine.js +0 -3
  300. package/dist/source/interfaces/state_machine/state_machine.js.map +0 -1
  301. package/dist/source/interfaces/state_machine/ua_finite_state_variable.d.ts +0 -18
  302. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js +0 -3
  303. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js.map +0 -1
  304. package/dist/source/interfaces/state_machine/ua_state_variable.d.ts +0 -29
  305. package/dist/source/interfaces/state_machine/ua_state_variable.js +0 -3
  306. package/dist/source/interfaces/state_machine/ua_state_variable.js.map +0 -1
  307. package/dist/source/interfaces/state_machine/ua_two_state_variable.d.ts +0 -26
  308. package/dist/source/interfaces/state_machine/ua_two_state_variable.js +0 -3
  309. package/dist/source/interfaces/state_machine/ua_two_state_variable.js.map +0 -1
  310. package/dist/source/interfaces/subscription_diagnostics_variable.d.ts +0 -41
  311. package/dist/source/interfaces/subscription_diagnostics_variable.js +0 -3
  312. package/dist/source/interfaces/subscription_diagnostics_variable.js.map +0 -1
  313. package/dist/src/alarms_and_conditions/base_event_type.d.ts +0 -26
  314. package/dist/src/alarms_and_conditions/base_event_type.js +0 -41
  315. package/dist/src/alarms_and_conditions/base_event_type.js.map +0 -1
  316. package/dist/src/alarms_and_conditions/shelving_state_machine.d.ts +0 -22
  317. package/dist/src/alarms_and_conditions/shelving_state_machine.js +0 -241
  318. package/dist/src/alarms_and_conditions/shelving_state_machine.js.map +0 -1
  319. package/dist/src/alarms_and_conditions/trip_alarm.d.ts +0 -16
  320. package/dist/src/alarms_and_conditions/trip_alarm.js +0 -21
  321. package/dist/src/alarms_and_conditions/trip_alarm.js.map +0 -1
  322. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.d.ts +0 -54
  323. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js +0 -255
  324. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js.map +0 -1
  325. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.d.ts +0 -138
  326. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js +0 -460
  327. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js.map +0 -1
  328. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.d.ts +0 -35
  329. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js +0 -32
  330. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js.map +0 -1
  331. package/dist/src/alarms_and_conditions/ua_condition_base.d.ts +0 -191
  332. package/dist/src/alarms_and_conditions/ua_condition_base.js +0 -1029
  333. package/dist/src/alarms_and_conditions/ua_condition_base.js.map +0 -1
  334. package/dist/src/alarms_and_conditions/ua_discrete_alarm.d.ts +0 -11
  335. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js +0 -58
  336. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js.map +0 -1
  337. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.d.ts +0 -24
  338. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js +0 -59
  339. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js.map +0 -1
  340. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.d.ts +0 -14
  341. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js +0 -17
  342. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js.map +0 -1
  343. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.d.ts +0 -22
  344. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js +0 -87
  345. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js.map +0 -1
  346. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.d.ts +0 -6
  347. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js +0 -11
  348. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js.map +0 -1
  349. package/dist/src/alarms_and_conditions/ua_limit_alarm.d.ts +0 -76
  350. package/dist/src/alarms_and_conditions/ua_limit_alarm.js +0 -237
  351. package/dist/src/alarms_and_conditions/ua_limit_alarm.js.map +0 -1
  352. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.d.ts +0 -27
  353. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js +0 -62
  354. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js.map +0 -1
  355. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.d.ts +0 -49
  356. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js +0 -176
  357. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js.map +0 -1
  358. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.d.ts +0 -47
  359. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js +0 -151
  360. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js.map +0 -1
  361. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.d.ts +0 -16
  362. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js +0 -18
  363. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js.map +0 -1
  364. package/dist/src/base_node.d.ts +0 -270
  365. package/dist/src/base_node.js +0 -1299
  366. package/dist/src/base_node.js.map +0 -1
  367. package/dist/src/data_access/ua_analog_item.d.ts +0 -13
  368. package/dist/src/data_access/ua_analog_item.js +0 -37
  369. package/dist/src/data_access/ua_analog_item.js.map +0 -1
  370. package/dist/src/data_access/ua_data_item.d.ts +0 -16
  371. package/dist/src/data_access/ua_data_item.js +0 -66
  372. package/dist/src/data_access/ua_data_item.js.map +0 -1
  373. package/dist/src/data_access/ua_multistate_discrete.d.ts +0 -24
  374. package/dist/src/data_access/ua_multistate_discrete.js +0 -132
  375. package/dist/src/data_access/ua_multistate_discrete.js.map +0 -1
  376. package/dist/src/namespace.d.ts +0 -472
  377. package/dist/src/namespace.js +0 -1759
  378. package/dist/src/namespace.js.map +0 -1
  379. package/dist/src/reference.d.ts +0 -43
  380. package/dist/src/reference.js +0 -138
  381. package/dist/src/reference.js.map +0 -1
  382. package/dist/src/session_context.d.ts +0 -4
  383. package/dist/src/session_context.js +0 -9
  384. package/dist/src/session_context.js.map +0 -1
  385. package/dist/src/ua_data_type.d.ts +0 -81
  386. package/dist/src/ua_data_type.js +0 -259
  387. package/dist/src/ua_data_type.js.map +0 -1
  388. package/dist/src/ua_method.d.ts +0 -33
  389. package/dist/src/ua_method.js +0 -194
  390. package/dist/src/ua_method.js.map +0 -1
  391. package/dist/src/ua_object.d.ts +0 -27
  392. package/dist/src/ua_object.js +0 -153
  393. package/dist/src/ua_object.js.map +0 -1
  394. package/dist/src/ua_object_type.d.ts +0 -49
  395. package/dist/src/ua_object_type.js +0 -123
  396. package/dist/src/ua_object_type.js.map +0 -1
  397. package/dist/src/ua_reference_type.d.ts +0 -31
  398. package/dist/src/ua_reference_type.js +0 -108
  399. package/dist/src/ua_reference_type.js.map +0 -1
  400. package/dist/src/ua_variable.d.ts +0 -346
  401. package/dist/src/ua_variable.js +0 -1651
  402. package/dist/src/ua_variable.js.map +0 -1
  403. package/dist/src/ua_variable_type.d.ts +0 -57
  404. package/dist/src/ua_variable_type.js +0 -530
  405. package/dist/src/ua_variable_type.js.map +0 -1
  406. package/dist/src/ua_view.d.ts +0 -16
  407. package/dist/src/ua_view.js +0 -41
  408. package/dist/src/ua_view.js.map +0 -1
@@ -1,417 +1,417 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UAAlarmConditionImpl = void 0;
4
- /**
5
- * @module node-opcua-address-space.AlarmsAndConditions
6
- */
7
- const lodash_1 = require("lodash");
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_nodeid_1 = require("node-opcua-nodeid");
11
- const node_opcua_status_code_1 = require("node-opcua-status-code");
12
- const node_opcua_variant_1 = require("node-opcua-variant");
13
- const ua_two_state_variable_1 = require("../state_machine/ua_two_state_variable");
14
- const ua_shelving_state_machine_ex_1 = require("../state_machine/ua_shelving_state_machine_ex");
15
- const condition_info_1 = require("./condition_info");
16
- const ua_acknowledgeable_condition_impl_1 = require("./ua_acknowledgeable_condition_impl");
17
- function _update_suppressedOrShelved(alarmNode) {
18
- alarmNode.suppressedOrShelved.setValueFromSource({
19
- dataType: node_opcua_variant_1.DataType.Boolean,
20
- value: alarmNode.isSuppressedOrShelved()
21
- });
22
- }
23
- class UAAlarmConditionImpl extends ua_acknowledgeable_condition_impl_1.UAAcknowledgeableConditionImpl {
24
- static instantiate(namespace, alarmConditionTypeId, options, data) {
25
- const addressSpace = namespace.addressSpace;
26
- // xx assert(Object.prototype.hasOwnProperty.call(options,"conditionOf")); // must provide a conditionOf
27
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(options, "inputNode")); // must provide a inputNode
28
- const alarmConditionType = addressSpace.findEventType(alarmConditionTypeId);
29
- /* istanbul ignore next */
30
- if (!alarmConditionType) {
31
- throw new Error(" cannot find Alarm Condition Type for " + alarmConditionTypeId);
32
- }
33
- const alarmConditionTypeBase = addressSpace.findEventType("AlarmConditionType");
34
- /* istanbul ignore next */
35
- if (!alarmConditionTypeBase) {
36
- throw new Error("cannot find AlarmConditionType");
37
- }
38
- options.optionals = options.optionals || [];
39
- if (Object.prototype.hasOwnProperty.call(options, "maxTimeShelved")) {
40
- options.optionals.push("MaxTimeShelved");
41
- (0, node_opcua_assert_1.assert)(isFinite(options.maxTimeShelved));
42
- }
43
- (0, node_opcua_assert_1.assert)(alarmConditionTypeBase === alarmConditionType || alarmConditionType.isSupertypeOf(alarmConditionTypeBase));
44
- const alarmNode = ua_acknowledgeable_condition_impl_1.UAAcknowledgeableConditionImpl.instantiate(namespace, alarmConditionTypeId, options, data);
45
- Object.setPrototypeOf(alarmNode, UAAlarmConditionImpl.prototype);
46
- // ----------------------- Install Alarm specifics
47
- //
48
- // Specs 1.03:
49
- // ActiveState/Id when set to TRUE indicates that the situation the Condition is representing
50
- // currently exists. When a Condition instance is in the inactive state (ActiveState/Id when set to
51
- // FALSE) it is representing a situation that has returned to a normal state. The transitions of
52
- // Conditions to the inactive and Active states are triggered by Server specific actions. Sub-
53
- // Types of the AlarmConditionType specified later in this document will have sub-state models
54
- // that further define the Active state. Recommended state names are described in Annex A.
55
- // install activeState - Mandatory
56
- /**
57
- * @property activeState
58
- * @type {UATwoStateVariable}
59
- */
60
- (0, ua_two_state_variable_1._install_TwoStateVariable_machinery)(alarmNode.activeState, {
61
- falseState: "Inactive",
62
- trueState: "Active"
63
- });
64
- alarmNode.currentBranch().setActiveState(false);
65
- // Specs 1.03:
66
- /**
67
- *
68
- * SuppressState is used internally by a Server to automatically suppress Alarms due to system
69
- * specific reasons. For example a system may be configured to suppress Alarms that are
70
- * associated with machinery that is shutdown, such as a low level Alarm for a tank that is
71
- * currently not in use.
72
- *
73
- * @property suppressedState
74
- * @type UATwoStateVariable
75
- */
76
- if (alarmNode.suppressedState) {
77
- // install activeState - Optional
78
- (0, ua_two_state_variable_1._install_TwoStateVariable_machinery)(alarmNode.suppressedState, {
79
- falseState: "Unsuppressed",
80
- trueState: "Suppressed"
81
- });
82
- }
83
- // Specs 1.03:
84
- /**
85
- * ShelvingState suggests whether an Alarm shall (temporarily) be prevented from being
86
- * displayed to the user. It is quite often used to block nuisance Alarms.
87
- *
88
- * @property shelvingState
89
- * @type ShelvingStateMachine
90
- */
91
- if (alarmNode.shelvingState) {
92
- ua_shelving_state_machine_ex_1.UAShelvedStateMachineEx.promote(alarmNode.shelvingState);
93
- }
94
- // SuppressedOrShelved : Mandatory
95
- // install suppressedOrShelved automatic detection
96
- /**
97
- * The SuppressedState and the ShelvingState together result in the SuppressedOrShelved status of the
98
- * Condition. When an Alarm is in one of the states, the SuppressedOrShelved property will be set TRUE
99
- * and this Alarm is then typically not displayed by the Client. State transitions associated with the
100
- * Alarm do occur, but they are not typically displayed by the Clients as long as the Alarm remains in
101
- * either the Suppressed or Shelved state.
102
- * The dataType is Boolean.
103
- * @property suppressedState
104
- * @type UAVariable
105
- *
106
- */
107
- if (alarmNode.suppressedState) {
108
- alarmNode.suppressedState.on("value_changed", (newDataValue) => {
109
- _update_suppressedOrShelved(alarmNode);
110
- });
111
- }
112
- if (alarmNode.shelvingState) {
113
- alarmNode.shelvingState.currentState.on("value_changed", (newDataValue) => {
114
- _update_suppressedOrShelved(alarmNode);
115
- });
116
- }
117
- _update_suppressedOrShelved(alarmNode);
118
- /**
119
- * The optional Property MaxTimeShelved is used to set the maximum time that an Alarm Condition may be shelved.
120
- * The value is expressed as duration. Systems can use this Property to prevent permanent Shelving of an Alarm.
121
- * If this Property is present it will be an upper limit on the duration passed into a TimedShelve Method call.
122
- * If a value that exceeds the value of this property is passed to the TimedShelve Method,
123
- * than a BadShelvingTimeOutOfRange error code is returned on the call. If this Property is present it will
124
- * also be enforced for the OneShotShelved state, in that an Alarm Condition will transition to the Unshelved
125
- * state from the OneShotShelved state if the duration specified in this Property expires following a
126
- * OneShotShelve operation without a change of any of the other items associated with the Condition.
127
- *
128
- * @property maxTimeShelved
129
- * @type {UAVariable}
130
- */
131
- if (alarmNode.maxTimeShelved) {
132
- options.maxTimeShelved = options.maxTimeShelved || 60.0 * 1000; // 60 seconds
133
- alarmNode.maxTimeShelved.setValueFromSource({
134
- dataType: "Duration",
135
- value: options.maxTimeShelved
136
- });
137
- }
138
- // ---------- install inputNode
139
- (0, node_opcua_assert_1.assert)(options.inputNode, " must provide options.inputNode (NodeId or BaseNode object)");
140
- alarmNode.installInputNodeMonitoring(options.inputNode);
141
- (0, node_opcua_assert_1.assert)(alarmNode instanceof ua_acknowledgeable_condition_impl_1.UAAcknowledgeableConditionImpl);
142
- (0, node_opcua_assert_1.assert)(alarmNode instanceof UAAlarmConditionImpl);
143
- return alarmNode;
144
- }
145
- dispose() {
146
- if (this.shelvingState) {
147
- (0, ua_shelving_state_machine_ex_1._clear_timer_if_any)(this.shelvingState);
148
- }
149
- super.dispose();
150
- }
151
- activateAlarm() {
152
- // will set acknowledgeable to false and retain to true
153
- const branch = this.currentBranch();
154
- branch.setRetain(true);
155
- branch.setActiveState(true);
156
- branch.setAckedState(false);
157
- }
158
- deactivateAlarm() {
159
- const branch = this.currentBranch();
160
- branch.setRetain(true);
161
- branch.setActiveState(false);
162
- }
163
- /**
164
- * @deprecated use deactivateAlarm instead (with no s after de-activate)
165
- */
166
- desactivateAlarm() {
167
- this.deactivateAlarm();
168
- }
169
- isSuppressedOrShelved() {
170
- let suppressed = false;
171
- if (this.suppressedState) {
172
- suppressed = this.suppressedState.id.readValue().value.value;
173
- }
174
- let shelved = false;
175
- if (this.shelvingState) {
176
- const shelvedValue = this.shelvingState.currentState.readValue().value.value;
177
- if (shelvedValue && shelvedValue.text !== "Unshelved") {
178
- shelved = true;
179
- }
180
- // console.log("shelved = shelved",shelvedValue,shelved);
181
- }
182
- // xx console.log(" isSuppressedOrShelved ",suppressed,shelved);
183
- return suppressed || shelved;
184
- }
185
- getSuppressedOrShelved() {
186
- return this.suppressedOrShelved.readValue().value.value;
187
- }
188
- /**
189
- *
190
- * note: duration must be greater than 10ms and lesser than 2**31 ms
191
- */
192
- setMaxTimeShelved(duration) {
193
- var _a;
194
- if (duration < 10 || duration >= Math.pow(2, 31)) {
195
- throw new Error(" Invalid maxTimeShelved duration: " + duration + " must be [10,2**31] ");
196
- }
197
- (_a = this.maxTimeShelved) === null || _a === void 0 ? void 0 : _a.setValueFromSource({
198
- dataType: "Duration",
199
- value: duration
200
- });
201
- }
202
- /**
203
- * note: return a Duration
204
- */
205
- getMaxTimeShelved() {
206
- if (!this.maxTimeShelved) {
207
- // if maxTimeShelved is not provided we assume MaxDuration
208
- (0, node_opcua_assert_1.assert)(UAAlarmConditionImpl.MaxDuration <= 2147483648, "MaxDuration cannot be greater than 2**31");
209
- return UAAlarmConditionImpl.MaxDuration;
210
- }
211
- const dataValue = this.maxTimeShelved.readValue();
212
- (0, node_opcua_assert_1.assert)(dataValue.value.dataType === node_opcua_variant_1.DataType.Double); // Double <= Duration
213
- return dataValue.value.value;
214
- }
215
- /**
216
- * @method getInputNodeNode
217
- * @return {BaseNode} return the node in the address space pointed by the inputNode value
218
- *
219
- * Note: please note the difference between alarm.inputNode
220
- * * alarm.inputNode is a UAVariable property of the alarm object holding the nodeid of the input
221
- * node in its value.
222
- * * getInputNodeNode() is the UAVariable that contains the value that affects the state of the alarm and
223
- * whose node id is stored in alarm.inputNode
224
- */
225
- getInputNodeNode() {
226
- const nodeId = this.inputNode.readValue().value.value;
227
- (0, node_opcua_assert_1.assert)(nodeId instanceof node_opcua_nodeid_1.NodeId || nodeId === null);
228
- return this.addressSpace.findNode(nodeId);
229
- }
230
- /**
231
- * @method getInputNodeValue
232
- * @return {*}
233
- */
234
- getInputNodeValue() {
235
- const node = this.getInputNodeNode();
236
- if (!node) {
237
- return null;
238
- }
239
- (0, node_opcua_assert_1.assert)(node.nodeClass === node_opcua_data_model_1.NodeClass.Variable);
240
- return node.readValue().value.value;
241
- }
242
- updateState() {
243
- const node = this.getInputNodeNode();
244
- const dataValue = node.readValue();
245
- this._onInputDataValueChange(dataValue);
246
- }
247
- _onInputDataValueChange(newValue) {
248
- // xx console.log("class=",this.constructor.name,this.browseName.toString());
249
- // xx throw new Error("_onInputDataValueChange must be overridden");
250
- }
251
- /**
252
- * @method installInputNodeMonitoring
253
- * install mechanism that listen to input node datavalue changes so that alarm status
254
- * can be automatically updated appropriatly.
255
- * @param inputNode {BaseNode}
256
- * @return {void}
257
- * @protected
258
- */
259
- installInputNodeMonitoring(inputNode) {
260
- /**
261
- *
262
- * The InputNode Property provides the NodeId of the Variable the Value of which is used as
263
- * primary input in the calculation of the Alarm state. If this Variable is not in the Address Space,
264
- * a Null NodeId shall be provided. In some systems, an Alarm may be calculated based on
265
- * multiple Variables Values; it is up to the system to determine which Variable’s NodeId is used.
266
- * dataType is DataType.NodeId
267
- * @property inputNode
268
- * @type UAVariable
269
- */
270
- (0, node_opcua_assert_1.assert)(this.inputNode.nodeClass === node_opcua_data_model_1.NodeClass.Variable);
271
- const addressSpace = this.addressSpace;
272
- (0, node_opcua_assert_1.assert)(inputNode, " must provide options.inputNode (NodeId or BaseNode object)");
273
- if (inputNode instanceof node_opcua_nodeid_1.NodeId) {
274
- this.inputNode.setValueFromSource({
275
- dataType: node_opcua_variant_1.DataType.NodeId,
276
- value: inputNode
277
- });
278
- }
279
- else {
280
- this.inputNode.setValueFromSource({
281
- dataType: "NodeId",
282
- value: inputNode.nodeId
283
- });
284
- const _node = addressSpace._coerceNode(inputNode);
285
- if (_node === null) {
286
- // tslint:disable-next-line:no-console
287
- console.log(" cannot find nodeId ", inputNode);
288
- }
289
- else {
290
- (0, node_opcua_assert_1.assert)(_node, "Expecting a valid input node");
291
- this.inputNode.setValueFromSource({
292
- dataType: node_opcua_variant_1.DataType.NodeId,
293
- value: _node.nodeId
294
- });
295
- }
296
- const inputNode2 = this.getInputNodeNode();
297
- if (!inputNode2 || inputNode2 === null) {
298
- throw new Error("Invalid input node");
299
- }
300
- inputNode2.on("value_changed", (newDataValue /*, oldDataValue */) => {
301
- if (!this.getEnabledState()) {
302
- // disabled alarms shall ignored input node value change event
303
- // (alarm shall be reevaluated when EnabledState goes back to true)
304
- return;
305
- }
306
- this._onInputDataValueChange(newDataValue);
307
- });
308
- }
309
- }
310
- getCurrentConditionInfo() {
311
- const oldSeverity = this.currentBranch().getSeverity();
312
- const oldQuality = this.currentBranch().getQuality();
313
- const oldMessage = this.currentBranch().getMessage();
314
- const oldRetain = this.currentBranch().getRetain();
315
- const oldConditionInfo = new condition_info_1.ConditionInfo({
316
- message: oldMessage,
317
- quality: oldQuality,
318
- retain: oldRetain,
319
- severity: oldSeverity
320
- });
321
- return oldConditionInfo;
322
- }
323
- /***
324
- * @method _calculateConditionInfo
325
- * @param stateData {Object} the new calculated state of the alarm
326
- * @param isActive {Boolean}
327
- * @param value {Number} the new value of the limit alarm
328
- * @param oldCondition {ConditionInfo} given for information purpose
329
- * @param oldCondition.severity
330
- * @param oldCondition.quality
331
- * @param oldCondition.message
332
- * @param oldCondition.retain
333
- * @return {ConditionInfo} the new condition info
334
- *
335
- * this method need to be overridden by the instantiate to allow custom message and severity
336
- * to be set based on specific context of the alarm.
337
- *
338
- * @example
339
- *
340
- *
341
- * var myAlarm = addressSpace.instantiateExclusiveLimitAlarm({...});
342
- * myAlarm._calculateConditionInfo = function(stateName,value,oldCondition) {
343
- * var percent = Math.ceil(value * 100);
344
- * return new ConditionInfo({
345
- * message: "Tank is almost " + percent + "% full",
346
- * severity: 100,
347
- * quality: StatusCodes.Good
348
- * });
349
- * };
350
- *
351
- */
352
- _calculateConditionInfo(stateData, isActive, value, oldCondition) {
353
- if (!stateData) {
354
- return new condition_info_1.ConditionInfo({
355
- message: "Back to normal",
356
- quality: node_opcua_status_code_1.StatusCodes.Good,
357
- retain: true,
358
- severity: 0
359
- });
360
- }
361
- else {
362
- return new condition_info_1.ConditionInfo({
363
- message: "Condition value is " + value + " and state is " + stateData,
364
- quality: node_opcua_status_code_1.StatusCodes.Good,
365
- retain: true,
366
- severity: 150
367
- });
368
- }
369
- }
370
- _signalInitialCondition() {
371
- this.currentBranch().setActiveState(false);
372
- this.currentBranch().setAckedState(true);
373
- }
374
- _signalNewCondition(stateName, isActive, value) {
375
- // xx if(stateName === null) {
376
- // xx alarm.currentBranch().setActiveState(false);
377
- // xx alarm.currentBranch().setAckedState(true);
378
- // xx return;
379
- // xx }
380
- // disabled alarm shall not generate new condition events
381
- (0, node_opcua_assert_1.assert)(this.getEnabledState() === true);
382
- // xx assert(isActive !== alarm.activeState.getValue());
383
- const oldConditionInfo = this.getCurrentConditionInfo();
384
- const newConditionInfo = this._calculateConditionInfo(stateName, !!isActive, value, oldConditionInfo);
385
- // detect potential internal bugs due to misused of _signalNewCondition
386
- if ((0, lodash_1.isEqual)(oldConditionInfo, newConditionInfo)) {
387
- // tslint:disable-next-line:no-console
388
- console.log(oldConditionInfo);
389
- throw new Error("condition values have not change, shall we really raise an event ? alarm " + this.browseName.toString());
390
- }
391
- (0, node_opcua_assert_1.assert)(!(0, lodash_1.isEqual)(oldConditionInfo, newConditionInfo), "condition values have not change, shall we really raise an event ?");
392
- if (isActive) {
393
- this.currentBranch().setActiveState(true);
394
- this.currentBranch().setAckedState(false);
395
- this.raiseNewCondition(newConditionInfo);
396
- }
397
- else {
398
- if (this.currentBranch().getAckedState() === false) {
399
- // prior state need acknowledgement
400
- // note : TODO : timestamp of branch and new state of current branch must be identical
401
- if (this.currentBranch().getRetain()) {
402
- // we need to create a new branch so the previous state could be acknowledged
403
- const newBranch = this.createBranch();
404
- (0, node_opcua_assert_1.assert)(!(0, node_opcua_nodeid_1.sameNodeId)(newBranch.getBranchId(), node_opcua_nodeid_1.NodeId.nullNodeId));
405
- // also raised a new Event for the new branch as branchId has changed
406
- this.raiseNewBranchState(newBranch);
407
- }
408
- }
409
- this.currentBranch().setActiveState(false);
410
- this.currentBranch().setAckedState(true);
411
- this.raiseNewCondition(newConditionInfo);
412
- }
413
- }
414
- }
415
- exports.UAAlarmConditionImpl = UAAlarmConditionImpl;
416
- UAAlarmConditionImpl.MaxDuration = Math.pow(2, 31);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UAAlarmConditionImpl = void 0;
4
+ /**
5
+ * @module node-opcua-address-space.AlarmsAndConditions
6
+ */
7
+ const lodash_1 = require("lodash");
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_nodeid_1 = require("node-opcua-nodeid");
11
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
12
+ const node_opcua_variant_1 = require("node-opcua-variant");
13
+ const ua_two_state_variable_1 = require("../state_machine/ua_two_state_variable");
14
+ const ua_shelving_state_machine_ex_1 = require("../state_machine/ua_shelving_state_machine_ex");
15
+ const condition_info_1 = require("./condition_info");
16
+ const ua_acknowledgeable_condition_impl_1 = require("./ua_acknowledgeable_condition_impl");
17
+ function _update_suppressedOrShelved(alarmNode) {
18
+ alarmNode.suppressedOrShelved.setValueFromSource({
19
+ dataType: node_opcua_variant_1.DataType.Boolean,
20
+ value: alarmNode.isSuppressedOrShelved()
21
+ });
22
+ }
23
+ class UAAlarmConditionImpl extends ua_acknowledgeable_condition_impl_1.UAAcknowledgeableConditionImpl {
24
+ static instantiate(namespace, alarmConditionTypeId, options, data) {
25
+ const addressSpace = namespace.addressSpace;
26
+ // xx assert(Object.prototype.hasOwnProperty.call(options,"conditionOf")); // must provide a conditionOf
27
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(options, "inputNode")); // must provide a inputNode
28
+ const alarmConditionType = addressSpace.findEventType(alarmConditionTypeId);
29
+ /* istanbul ignore next */
30
+ if (!alarmConditionType) {
31
+ throw new Error(" cannot find Alarm Condition Type for " + alarmConditionTypeId);
32
+ }
33
+ const alarmConditionTypeBase = addressSpace.findEventType("AlarmConditionType");
34
+ /* istanbul ignore next */
35
+ if (!alarmConditionTypeBase) {
36
+ throw new Error("cannot find AlarmConditionType");
37
+ }
38
+ options.optionals = options.optionals || [];
39
+ if (Object.prototype.hasOwnProperty.call(options, "maxTimeShelved")) {
40
+ options.optionals.push("MaxTimeShelved");
41
+ (0, node_opcua_assert_1.assert)(isFinite(options.maxTimeShelved));
42
+ }
43
+ (0, node_opcua_assert_1.assert)(alarmConditionTypeBase === alarmConditionType || alarmConditionType.isSupertypeOf(alarmConditionTypeBase));
44
+ const alarmNode = ua_acknowledgeable_condition_impl_1.UAAcknowledgeableConditionImpl.instantiate(namespace, alarmConditionTypeId, options, data);
45
+ Object.setPrototypeOf(alarmNode, UAAlarmConditionImpl.prototype);
46
+ // ----------------------- Install Alarm specifics
47
+ //
48
+ // Specs 1.03:
49
+ // ActiveState/Id when set to TRUE indicates that the situation the Condition is representing
50
+ // currently exists. When a Condition instance is in the inactive state (ActiveState/Id when set to
51
+ // FALSE) it is representing a situation that has returned to a normal state. The transitions of
52
+ // Conditions to the inactive and Active states are triggered by Server specific actions. Sub-
53
+ // Types of the AlarmConditionType specified later in this document will have sub-state models
54
+ // that further define the Active state. Recommended state names are described in Annex A.
55
+ // install activeState - Mandatory
56
+ /**
57
+ * @property activeState
58
+ * @type {UATwoStateVariable}
59
+ */
60
+ (0, ua_two_state_variable_1._install_TwoStateVariable_machinery)(alarmNode.activeState, {
61
+ falseState: "Inactive",
62
+ trueState: "Active"
63
+ });
64
+ alarmNode.currentBranch().setActiveState(false);
65
+ // Specs 1.03:
66
+ /**
67
+ *
68
+ * SuppressState is used internally by a Server to automatically suppress Alarms due to system
69
+ * specific reasons. For example a system may be configured to suppress Alarms that are
70
+ * associated with machinery that is shutdown, such as a low level Alarm for a tank that is
71
+ * currently not in use.
72
+ *
73
+ * @property suppressedState
74
+ * @type UATwoStateVariable
75
+ */
76
+ if (alarmNode.suppressedState) {
77
+ // install activeState - Optional
78
+ (0, ua_two_state_variable_1._install_TwoStateVariable_machinery)(alarmNode.suppressedState, {
79
+ falseState: "Unsuppressed",
80
+ trueState: "Suppressed"
81
+ });
82
+ }
83
+ // Specs 1.03:
84
+ /**
85
+ * ShelvingState suggests whether an Alarm shall (temporarily) be prevented from being
86
+ * displayed to the user. It is quite often used to block nuisance Alarms.
87
+ *
88
+ * @property shelvingState
89
+ * @type ShelvingStateMachine
90
+ */
91
+ if (alarmNode.shelvingState) {
92
+ ua_shelving_state_machine_ex_1.UAShelvedStateMachineEx.promote(alarmNode.shelvingState);
93
+ }
94
+ // SuppressedOrShelved : Mandatory
95
+ // install suppressedOrShelved automatic detection
96
+ /**
97
+ * The SuppressedState and the ShelvingState together result in the SuppressedOrShelved status of the
98
+ * Condition. When an Alarm is in one of the states, the SuppressedOrShelved property will be set TRUE
99
+ * and this Alarm is then typically not displayed by the Client. State transitions associated with the
100
+ * Alarm do occur, but they are not typically displayed by the Clients as long as the Alarm remains in
101
+ * either the Suppressed or Shelved state.
102
+ * The dataType is Boolean.
103
+ * @property suppressedState
104
+ * @type UAVariable
105
+ *
106
+ */
107
+ if (alarmNode.suppressedState) {
108
+ alarmNode.suppressedState.on("value_changed", (newDataValue) => {
109
+ _update_suppressedOrShelved(alarmNode);
110
+ });
111
+ }
112
+ if (alarmNode.shelvingState) {
113
+ alarmNode.shelvingState.currentState.on("value_changed", (newDataValue) => {
114
+ _update_suppressedOrShelved(alarmNode);
115
+ });
116
+ }
117
+ _update_suppressedOrShelved(alarmNode);
118
+ /**
119
+ * The optional Property MaxTimeShelved is used to set the maximum time that an Alarm Condition may be shelved.
120
+ * The value is expressed as duration. Systems can use this Property to prevent permanent Shelving of an Alarm.
121
+ * If this Property is present it will be an upper limit on the duration passed into a TimedShelve Method call.
122
+ * If a value that exceeds the value of this property is passed to the TimedShelve Method,
123
+ * than a BadShelvingTimeOutOfRange error code is returned on the call. If this Property is present it will
124
+ * also be enforced for the OneShotShelved state, in that an Alarm Condition will transition to the Unshelved
125
+ * state from the OneShotShelved state if the duration specified in this Property expires following a
126
+ * OneShotShelve operation without a change of any of the other items associated with the Condition.
127
+ *
128
+ * @property maxTimeShelved
129
+ * @type {UAVariable}
130
+ */
131
+ if (alarmNode.maxTimeShelved) {
132
+ options.maxTimeShelved = options.maxTimeShelved || 60.0 * 1000; // 60 seconds
133
+ alarmNode.maxTimeShelved.setValueFromSource({
134
+ dataType: "Duration",
135
+ value: options.maxTimeShelved
136
+ });
137
+ }
138
+ // ---------- install inputNode
139
+ (0, node_opcua_assert_1.assert)(options.inputNode, " must provide options.inputNode (NodeId or BaseNode object)");
140
+ alarmNode.installInputNodeMonitoring(options.inputNode);
141
+ (0, node_opcua_assert_1.assert)(alarmNode instanceof ua_acknowledgeable_condition_impl_1.UAAcknowledgeableConditionImpl);
142
+ (0, node_opcua_assert_1.assert)(alarmNode instanceof UAAlarmConditionImpl);
143
+ return alarmNode;
144
+ }
145
+ dispose() {
146
+ if (this.shelvingState) {
147
+ (0, ua_shelving_state_machine_ex_1._clear_timer_if_any)(this.shelvingState);
148
+ }
149
+ super.dispose();
150
+ }
151
+ activateAlarm() {
152
+ // will set acknowledgeable to false and retain to true
153
+ const branch = this.currentBranch();
154
+ branch.setRetain(true);
155
+ branch.setActiveState(true);
156
+ branch.setAckedState(false);
157
+ }
158
+ deactivateAlarm(retain) {
159
+ const branch = this.currentBranch();
160
+ branch.setRetain(retain === undefined ? true : retain);
161
+ branch.setActiveState(false);
162
+ }
163
+ /**
164
+ * @deprecated use deactivateAlarm instead (with no s after de-activate)
165
+ */
166
+ desactivateAlarm() {
167
+ this.deactivateAlarm();
168
+ }
169
+ isSuppressedOrShelved() {
170
+ let suppressed = false;
171
+ if (this.suppressedState) {
172
+ suppressed = this.suppressedState.id.readValue().value.value;
173
+ }
174
+ let shelved = false;
175
+ if (this.shelvingState) {
176
+ const shelvedValue = this.shelvingState.currentState.readValue().value.value;
177
+ if (shelvedValue && shelvedValue.text !== "Unshelved") {
178
+ shelved = true;
179
+ }
180
+ // console.log("shelved = shelved",shelvedValue,shelved);
181
+ }
182
+ // xx console.log(" isSuppressedOrShelved ",suppressed,shelved);
183
+ return suppressed || shelved;
184
+ }
185
+ getSuppressedOrShelved() {
186
+ return this.suppressedOrShelved.readValue().value.value;
187
+ }
188
+ /**
189
+ *
190
+ * note: duration must be greater than 10ms and lesser than 2**31 ms
191
+ */
192
+ setMaxTimeShelved(duration) {
193
+ var _a;
194
+ if (duration < 10 || duration >= Math.pow(2, 31)) {
195
+ throw new Error(" Invalid maxTimeShelved duration: " + duration + " must be [10,2**31] ");
196
+ }
197
+ (_a = this.maxTimeShelved) === null || _a === void 0 ? void 0 : _a.setValueFromSource({
198
+ dataType: "Duration",
199
+ value: duration
200
+ });
201
+ }
202
+ /**
203
+ * note: return a Duration
204
+ */
205
+ getMaxTimeShelved() {
206
+ if (!this.maxTimeShelved) {
207
+ // if maxTimeShelved is not provided we assume MaxDuration
208
+ (0, node_opcua_assert_1.assert)(UAAlarmConditionImpl.MaxDuration <= 2147483648, "MaxDuration cannot be greater than 2**31");
209
+ return UAAlarmConditionImpl.MaxDuration;
210
+ }
211
+ const dataValue = this.maxTimeShelved.readValue();
212
+ (0, node_opcua_assert_1.assert)(dataValue.value.dataType === node_opcua_variant_1.DataType.Double); // Double <= Duration
213
+ return dataValue.value.value;
214
+ }
215
+ /**
216
+ * @method getInputNodeNode
217
+ * @return {BaseNode} return the node in the address space pointed by the inputNode value
218
+ *
219
+ * Note: please note the difference between alarm.inputNode
220
+ * * alarm.inputNode is a UAVariable property of the alarm object holding the nodeid of the input
221
+ * node in its value.
222
+ * * getInputNodeNode() is the UAVariable that contains the value that affects the state of the alarm and
223
+ * whose node id is stored in alarm.inputNode
224
+ */
225
+ getInputNodeNode() {
226
+ const nodeId = this.inputNode.readValue().value.value;
227
+ (0, node_opcua_assert_1.assert)(nodeId instanceof node_opcua_nodeid_1.NodeId || nodeId === null);
228
+ return this.addressSpace.findNode(nodeId);
229
+ }
230
+ /**
231
+ * @method getInputNodeValue
232
+ * @return {*}
233
+ */
234
+ getInputNodeValue() {
235
+ const node = this.getInputNodeNode();
236
+ if (!node) {
237
+ return null;
238
+ }
239
+ (0, node_opcua_assert_1.assert)(node.nodeClass === node_opcua_data_model_1.NodeClass.Variable);
240
+ return node.readValue().value.value;
241
+ }
242
+ updateState() {
243
+ const node = this.getInputNodeNode();
244
+ const dataValue = node.readValue();
245
+ this._onInputDataValueChange(dataValue);
246
+ }
247
+ _onInputDataValueChange(newValue) {
248
+ // xx console.log("class=",this.constructor.name,this.browseName.toString());
249
+ // xx throw new Error("_onInputDataValueChange must be overridden");
250
+ }
251
+ /**
252
+ * @method installInputNodeMonitoring
253
+ * install mechanism that listen to input node datavalue changes so that alarm status
254
+ * can be automatically updated appropriatly.
255
+ * @param inputNode {BaseNode}
256
+ * @return {void}
257
+ * @protected
258
+ */
259
+ installInputNodeMonitoring(inputNode) {
260
+ /**
261
+ *
262
+ * The InputNode Property provides the NodeId of the Variable the Value of which is used as
263
+ * primary input in the calculation of the Alarm state. If this Variable is not in the Address Space,
264
+ * a Null NodeId shall be provided. In some systems, an Alarm may be calculated based on
265
+ * multiple Variables Values; it is up to the system to determine which Variable’s NodeId is used.
266
+ * dataType is DataType.NodeId
267
+ * @property inputNode
268
+ * @type UAVariable
269
+ */
270
+ (0, node_opcua_assert_1.assert)(this.inputNode.nodeClass === node_opcua_data_model_1.NodeClass.Variable);
271
+ const addressSpace = this.addressSpace;
272
+ (0, node_opcua_assert_1.assert)(inputNode, " must provide options.inputNode (NodeId or BaseNode object)");
273
+ if (inputNode instanceof node_opcua_nodeid_1.NodeId) {
274
+ this.inputNode.setValueFromSource({
275
+ dataType: node_opcua_variant_1.DataType.NodeId,
276
+ value: inputNode
277
+ });
278
+ }
279
+ else {
280
+ this.inputNode.setValueFromSource({
281
+ dataType: "NodeId",
282
+ value: inputNode.nodeId
283
+ });
284
+ const _node = addressSpace._coerceNode(inputNode);
285
+ if (_node === null) {
286
+ // tslint:disable-next-line:no-console
287
+ console.log(" cannot find nodeId ", inputNode);
288
+ }
289
+ else {
290
+ (0, node_opcua_assert_1.assert)(_node, "Expecting a valid input node");
291
+ this.inputNode.setValueFromSource({
292
+ dataType: node_opcua_variant_1.DataType.NodeId,
293
+ value: _node.nodeId
294
+ });
295
+ }
296
+ const inputNode2 = this.getInputNodeNode();
297
+ if (!inputNode2 || inputNode2 === null) {
298
+ throw new Error("Invalid input node");
299
+ }
300
+ inputNode2.on("value_changed", (newDataValue /*, oldDataValue */) => {
301
+ if (!this.getEnabledState()) {
302
+ // disabled alarms shall ignored input node value change event
303
+ // (alarm shall be reevaluated when EnabledState goes back to true)
304
+ return;
305
+ }
306
+ this._onInputDataValueChange(newDataValue);
307
+ });
308
+ }
309
+ }
310
+ getCurrentConditionInfo() {
311
+ const oldSeverity = this.currentBranch().getSeverity();
312
+ const oldQuality = this.currentBranch().getQuality();
313
+ const oldMessage = this.currentBranch().getMessage();
314
+ const oldRetain = this.currentBranch().getRetain();
315
+ const oldConditionInfo = new condition_info_1.ConditionInfo({
316
+ message: oldMessage,
317
+ quality: oldQuality,
318
+ retain: oldRetain,
319
+ severity: oldSeverity
320
+ });
321
+ return oldConditionInfo;
322
+ }
323
+ /***
324
+ * @method _calculateConditionInfo
325
+ * @param stateData {Object} the new calculated state of the alarm
326
+ * @param isActive {Boolean}
327
+ * @param value {Number} the new value of the limit alarm
328
+ * @param oldCondition {ConditionInfo} given for information purpose
329
+ * @param oldCondition.severity
330
+ * @param oldCondition.quality
331
+ * @param oldCondition.message
332
+ * @param oldCondition.retain
333
+ * @return {ConditionInfo} the new condition info
334
+ *
335
+ * this method need to be overridden by the instantiate to allow custom message and severity
336
+ * to be set based on specific context of the alarm.
337
+ *
338
+ * @example
339
+ *
340
+ *
341
+ * var myAlarm = addressSpace.instantiateExclusiveLimitAlarm({...});
342
+ * myAlarm._calculateConditionInfo = function(stateName,value,oldCondition) {
343
+ * var percent = Math.ceil(value * 100);
344
+ * return new ConditionInfo({
345
+ * message: "Tank is almost " + percent + "% full",
346
+ * severity: 100,
347
+ * quality: StatusCodes.Good
348
+ * });
349
+ * };
350
+ *
351
+ */
352
+ _calculateConditionInfo(stateData, isActive, value, oldCondition) {
353
+ if (!stateData) {
354
+ return new condition_info_1.ConditionInfo({
355
+ message: "Back to normal",
356
+ quality: node_opcua_status_code_1.StatusCodes.Good,
357
+ retain: true,
358
+ severity: 0
359
+ });
360
+ }
361
+ else {
362
+ return new condition_info_1.ConditionInfo({
363
+ message: "Condition value is " + value + " and state is " + stateData,
364
+ quality: node_opcua_status_code_1.StatusCodes.Good,
365
+ retain: true,
366
+ severity: 150
367
+ });
368
+ }
369
+ }
370
+ _signalInitialCondition() {
371
+ this.currentBranch().setActiveState(false);
372
+ this.currentBranch().setAckedState(true);
373
+ }
374
+ _signalNewCondition(stateName, isActive, value) {
375
+ // xx if(stateName === null) {
376
+ // xx alarm.currentBranch().setActiveState(false);
377
+ // xx alarm.currentBranch().setAckedState(true);
378
+ // xx return;
379
+ // xx }
380
+ // disabled alarm shall not generate new condition events
381
+ (0, node_opcua_assert_1.assert)(this.getEnabledState() === true);
382
+ // xx assert(isActive !== alarm.activeState.getValue());
383
+ const oldConditionInfo = this.getCurrentConditionInfo();
384
+ const newConditionInfo = this._calculateConditionInfo(stateName, !!isActive, value, oldConditionInfo);
385
+ // detect potential internal bugs due to misused of _signalNewCondition
386
+ if ((0, lodash_1.isEqual)(oldConditionInfo, newConditionInfo)) {
387
+ // tslint:disable-next-line:no-console
388
+ console.log(oldConditionInfo);
389
+ throw new Error("condition values have not change, shall we really raise an event ? alarm " + this.browseName.toString());
390
+ }
391
+ (0, node_opcua_assert_1.assert)(!(0, lodash_1.isEqual)(oldConditionInfo, newConditionInfo), "condition values have not change, shall we really raise an event ?");
392
+ if (isActive) {
393
+ this.currentBranch().setActiveState(true);
394
+ this.currentBranch().setAckedState(false);
395
+ this.raiseNewCondition(newConditionInfo);
396
+ }
397
+ else {
398
+ if (this.currentBranch().getAckedState() === false) {
399
+ // prior state need acknowledgement
400
+ // note : TODO : timestamp of branch and new state of current branch must be identical
401
+ if (this.currentBranch().getRetain()) {
402
+ // we need to create a new branch so the previous state could be acknowledged
403
+ const newBranch = this.createBranch();
404
+ (0, node_opcua_assert_1.assert)(!(0, node_opcua_nodeid_1.sameNodeId)(newBranch.getBranchId(), node_opcua_nodeid_1.NodeId.nullNodeId));
405
+ // also raised a new Event for the new branch as branchId has changed
406
+ this.raiseNewBranchState(newBranch);
407
+ }
408
+ }
409
+ this.currentBranch().setActiveState(false);
410
+ this.currentBranch().setAckedState(true);
411
+ this.raiseNewCondition(newConditionInfo);
412
+ }
413
+ }
414
+ }
415
+ exports.UAAlarmConditionImpl = UAAlarmConditionImpl;
416
+ UAAlarmConditionImpl.MaxDuration = Math.pow(2, 31);
417
417
  //# sourceMappingURL=ua_alarm_condition_impl.js.map