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,396 +1,396 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeBoiler = exports.createBoilerType = void 0;
4
- /* eslint-disable max-statements */
5
- /**
6
- * @module node-opcua-address-space
7
- */
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_status_code_1 = require("node-opcua-status-code");
11
- const node_opcua_utils_1 = require("node-opcua-utils");
12
- const __1 = require("..");
13
- function MygetExecutableFlag(method, toState, methodName) {
14
- const stateMachineW = (0, __1.promoteToStateMachine)(method.parent);
15
- return stateMachineW.isValidTransition(toState);
16
- }
17
- function implementProgramStateMachine(programStateMachine) {
18
- function installMethod(methodName, toState) {
19
- let method = programStateMachine.getMethodByName(methodName);
20
- if (!method) {
21
- // 'method' has ModellingRule=OptionalPlaceholder and should be created from the type definition
22
- let methodToClone = programStateMachine.typeDefinitionObj.getMethodByName(methodName);
23
- if (!methodToClone) {
24
- methodToClone = programStateMachine.typeDefinitionObj.subtypeOfObj.getMethodByName(methodName);
25
- }
26
- methodToClone.clone({
27
- namespace: programStateMachine.namespace,
28
- componentOf: programStateMachine
29
- });
30
- method = programStateMachine.getMethodByName(methodName);
31
- (0, node_opcua_assert_1.assert)(method !== null, "Method clone should cause parent object to be extended");
32
- }
33
- (0, node_opcua_assert_1.assert)(method.nodeClass === node_opcua_data_model_1.NodeClass.Method);
34
- method._getExecutableFlag = function ( /* sessionContext: SessionContext */) {
35
- // must use a function here to capture 'this'
36
- return MygetExecutableFlag(this, toState, methodName);
37
- };
38
- method.bindMethod(function (inputArguments, context, callback) {
39
- const stateMachineW = this.parent;
40
- stateMachineW.setState(toState);
41
- callback(null, {
42
- outputArguments: [],
43
- statusCode: node_opcua_status_code_1.StatusCodes.Good
44
- });
45
- });
46
- (0, node_opcua_assert_1.assert)(programStateMachine.getMethodByName(methodName) !== null, "Method " + methodName + " should be added to parent object (checked with getMethodByName)");
47
- const lc_name = (0, node_opcua_utils_1.lowerFirstLetter)(methodName);
48
- }
49
- installMethod("Halt", "Halted");
50
- installMethod("Reset", "Ready");
51
- installMethod("Start", "Running");
52
- installMethod("Suspend", "Suspended");
53
- installMethod("Resume", "Running");
54
- }
55
- function addRelation(srcNode, referenceType, targetNode) {
56
- (0, node_opcua_assert_1.assert)(srcNode, "expecting srcNode !== null");
57
- (0, node_opcua_assert_1.assert)(targetNode, "expecting targetNode !== null");
58
- if (typeof referenceType === "string") {
59
- const nodes = srcNode.findReferencesAsObject(referenceType, true);
60
- (0, node_opcua_assert_1.assert)(nodes.length === 1);
61
- referenceType = nodes[0];
62
- }
63
- srcNode.addReference({ referenceType: referenceType.nodeId, nodeId: targetNode });
64
- }
65
- function createBoilerType(namespace) {
66
- // istanbul ignore next
67
- if (namespace.findObjectType("BoilerType")) {
68
- console.warn("createBoilerType has already been called");
69
- return namespace.findObjectType("BoilerType");
70
- }
71
- // --------------------------------------------------------
72
- // referenceTypes
73
- // --------------------------------------------------------
74
- // create new reference Type FlowTo HotFlowTo & SignalTo
75
- const flowTo = namespace.addReferenceType({
76
- browseName: "FlowTo",
77
- description: "a reference that indicates a flow between two objects",
78
- inverseName: "FlowFrom",
79
- subtypeOf: "NonHierarchicalReferences"
80
- });
81
- const hotFlowTo = namespace.addReferenceType({
82
- browseName: "HotFlowTo",
83
- description: "a reference that indicates a high temperature flow between two objects",
84
- inverseName: "HotFlowFrom",
85
- subtypeOf: flowTo
86
- });
87
- const signalTo = namespace.addReferenceType({
88
- browseName: "SignalTo",
89
- description: "a reference that indicates an electrical signal between two variables",
90
- inverseName: "SignalFrom",
91
- subtypeOf: "NonHierarchicalReferences"
92
- });
93
- const addressSpace = namespace.addressSpace;
94
- flowTo.isSupertypeOf(addressSpace.findReferenceType("References"));
95
- flowTo.isSupertypeOf(addressSpace.findReferenceType("NonHierarchicalReferences"));
96
- hotFlowTo.isSupertypeOf(addressSpace.findReferenceType("References"));
97
- hotFlowTo.isSupertypeOf(addressSpace.findReferenceType("NonHierarchicalReferences"));
98
- hotFlowTo.isSupertypeOf(addressSpace.findReferenceType("FlowTo", namespace.index));
99
- const NonHierarchicalReferences = addressSpace.findReferenceType("NonHierarchicalReferences");
100
- // --------------------------------------------------------
101
- // EventTypes
102
- // --------------------------------------------------------
103
- const boilerHaltedEventType = namespace.addEventType({
104
- browseName: "BoilerHaltedEventType",
105
- subtypeOf: "TransitionEventType"
106
- });
107
- // --------------------------------------------------------
108
- // CustomControllerType
109
- // --------------------------------------------------------
110
- const customControllerType = namespace.addObjectType({
111
- browseName: "CustomControllerType",
112
- description: "a custom PID controller with 3 inputs"
113
- });
114
- const input1 = namespace.addVariable({
115
- browseName: "Input1",
116
- dataType: "Double",
117
- description: "a reference that indicates an electrical signal between two variables",
118
- modellingRule: "Mandatory",
119
- propertyOf: customControllerType
120
- });
121
- const input2 = namespace.addVariable({
122
- browseName: "Input2",
123
- dataType: "Double",
124
- modellingRule: "Mandatory",
125
- propertyOf: customControllerType
126
- });
127
- const input3 = namespace.addVariable({
128
- browseName: "Input3",
129
- dataType: "Double",
130
- modellingRule: "Mandatory",
131
- propertyOf: customControllerType
132
- });
133
- const controlOut = namespace.addVariable({
134
- browseName: "ControlOut",
135
- dataType: "Double",
136
- modellingRule: "Mandatory",
137
- propertyOf: customControllerType
138
- });
139
- const description = namespace.addVariable({
140
- browseName: "Description",
141
- dataType: "LocalizedText",
142
- modellingRule: "Mandatory",
143
- propertyOf: customControllerType
144
- });
145
- // --------------------------------------------------------
146
- // GenericSensorType
147
- // --------------------------------------------------------
148
- const genericSensorType = namespace.addObjectType({
149
- browseName: "GenericSensorType"
150
- });
151
- namespace.addAnalogDataItem({
152
- browseName: "Output",
153
- componentOf: genericSensorType,
154
- dataType: "Double",
155
- engineeringUnitsRange: { low: -100, high: 200 },
156
- modellingRule: "Mandatory"
157
- });
158
- genericSensorType.install_extra_properties();
159
- genericSensorType.getComponentByName("Output");
160
- (0, node_opcua_assert_1.assert)(genericSensorType.getComponentByName("Output").modellingRule === "Mandatory");
161
- // --------------------------------------------------------
162
- // GenericSensorType <---- GenericControllerType
163
- // --------------------------------------------------------
164
- const genericControllerType = namespace.addObjectType({
165
- browseName: "GenericControllerType"
166
- });
167
- namespace.addVariable({
168
- browseName: "ControlOut",
169
- dataType: "Double",
170
- modellingRule: "Mandatory",
171
- propertyOf: genericControllerType
172
- });
173
- namespace.addVariable({
174
- browseName: "Measurement",
175
- dataType: "Double",
176
- modellingRule: "Mandatory",
177
- propertyOf: genericControllerType
178
- });
179
- namespace.addVariable({
180
- browseName: "SetPoint",
181
- dataType: "Double",
182
- modellingRule: "Mandatory",
183
- propertyOf: genericControllerType
184
- });
185
- // --------------------------------------------------------------------------------
186
- // GenericSensorType <---- GenericControllerType <--- FlowControllerType
187
- // --------------------------------------------------------------------------------
188
- const flowControllerType = namespace.addObjectType({
189
- browseName: "FlowControllerType",
190
- subtypeOf: genericControllerType
191
- });
192
- // --------------------------------------------------------------------------------
193
- // GenericSensorType <---- GenericControllerType <--- LevelControllerType
194
- // --------------------------------------------------------------------------------
195
- const levelControllerType = namespace.addObjectType({
196
- browseName: "LevelControllerType",
197
- subtypeOf: genericControllerType
198
- });
199
- // --------------------------------------------------------------------------------
200
- // GenericSensorType <---- FlowTransmitterType
201
- // --------------------------------------------------------------------------------
202
- const flowTransmitterType = namespace.addObjectType({
203
- browseName: "FlowTransmitterType",
204
- subtypeOf: genericSensorType
205
- });
206
- // --------------------------------------------------------------------------------
207
- // GenericSensorType <---- LevelIndicatorType
208
- // --------------------------------------------------------------------------------
209
- const levelIndicatorType = namespace.addObjectType({
210
- browseName: "LevelIndicatorType",
211
- subtypeOf: genericSensorType
212
- });
213
- // --------------------------------------------------------------------------------
214
- // GenericActuatorType
215
- // --------------------------------------------------------------------------------
216
- const genericActuatorType = namespace.addObjectType({
217
- browseName: "GenericActuatorType"
218
- });
219
- namespace.addAnalogDataItem({
220
- browseName: "Input",
221
- componentOf: genericActuatorType,
222
- dataType: "Double",
223
- engineeringUnitsRange: { low: -100, high: 200 },
224
- modellingRule: "Mandatory"
225
- });
226
- // --------------------------------------------------------------------------------
227
- // GenericActuatorType <---- ValveType
228
- // --------------------------------------------------------------------------------
229
- const valveType = namespace.addObjectType({
230
- browseName: "ValveType",
231
- subtypeOf: genericActuatorType
232
- });
233
- // --------------------------------------------------------------------------------
234
- // FolderType <---- BoilerInputPipeType
235
- // --------------------------------------------------------------------------------
236
- const boilerInputPipeType = namespace.addObjectType({
237
- browseName: "BoilerInputPipeType",
238
- subtypeOf: "FolderType"
239
- });
240
- const ftx1 = flowTransmitterType.instantiate({
241
- browseName: "FlowTransmitter",
242
- componentOf: boilerInputPipeType,
243
- modellingRule: "Mandatory",
244
- notifierOf: boilerInputPipeType
245
- });
246
- (0, node_opcua_assert_1.assert)(ftx1.output.browseName.toString() === `${namespace.index}:Output`);
247
- const valve1 = valveType.instantiate({
248
- browseName: "Valve",
249
- componentOf: boilerInputPipeType,
250
- modellingRule: "Mandatory"
251
- });
252
- // --------------------------------------------------------------------------------
253
- // FolderType <---- BoilerOutputPipeType
254
- // --------------------------------------------------------------------------------
255
- const boilerOutputPipeType = namespace.addObjectType({
256
- browseName: "BoilerOutputPipeType",
257
- subtypeOf: "FolderType"
258
- });
259
- const ftx2 = flowTransmitterType.instantiate({
260
- browseName: "FlowTransmitter",
261
- componentOf: boilerOutputPipeType,
262
- modellingRule: "Mandatory",
263
- notifierOf: boilerOutputPipeType
264
- });
265
- ftx2.getComponentByName("Output").browseName.toString();
266
- // --------------------------------)------------------------------------------------
267
- // FolderType <---- BoilerDrumType
268
- // --------------------------------------------------------------------------------
269
- const boilerDrumType = namespace.addObjectType({
270
- browseName: "BoilerDrumType",
271
- subtypeOf: "FolderType"
272
- });
273
- const levelIndicator = levelIndicatorType.instantiate({
274
- browseName: "LevelIndicator",
275
- componentOf: boilerDrumType,
276
- modellingRule: "Mandatory",
277
- notifierOf: boilerDrumType
278
- });
279
- const programFiniteStateMachineType = addressSpace.findObjectType("ProgramStateMachineType");
280
- // --------------------------------------------------------
281
- // define boiler State Machine
282
- // --------------------------------------------------------
283
- const boilerStateMachineType = namespace.addObjectType({
284
- browseName: "BoilerStateMachineType",
285
- postInstantiateFunc: implementProgramStateMachine,
286
- subtypeOf: programFiniteStateMachineType
287
- });
288
- // programStateMachineType has Optional placeHolder for method "Halt", "Reset","Start","Suspend","Resume")
289
- function addMethod(baseType, objectType, methodName) {
290
- (0, node_opcua_assert_1.assert)(!objectType.getMethodByName(methodName));
291
- const method = baseType.getMethodByName(methodName);
292
- const m = method.clone({
293
- namespace,
294
- componentOf: objectType,
295
- modellingRule: "Mandatory"
296
- });
297
- (0, node_opcua_assert_1.assert)(objectType.getMethodByName(methodName));
298
- (0, node_opcua_assert_1.assert)(objectType.getMethodByName(methodName).modellingRule === "Mandatory");
299
- }
300
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Halt");
301
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Reset");
302
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Start");
303
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Suspend");
304
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Resume");
305
- // --------------------------------------------------------------------------------
306
- // BoilerType
307
- // --------------------------------------------------------------------------------
308
- const boilerType = namespace.addObjectType({
309
- browseName: "BoilerType",
310
- eventNotifier: 0x1
311
- });
312
- // BoilerType.CustomController (CustomControllerType)
313
- const customController = customControllerType.instantiate({
314
- browseName: "CustomController",
315
- componentOf: boilerType,
316
- modellingRule: "Mandatory"
317
- });
318
- // BoilerType.FlowController (FlowController)
319
- const flowController = flowControllerType.instantiate({
320
- browseName: "FlowController",
321
- componentOf: boilerType,
322
- modellingRule: "Mandatory"
323
- });
324
- // BoilerType.LevelController (LevelControllerType)
325
- const levelController = levelControllerType.instantiate({
326
- browseName: "LevelController",
327
- componentOf: boilerType,
328
- modellingRule: "Mandatory"
329
- });
330
- // BoilerType.LevelIndicator (BoilerInputPipeType)
331
- const inputPipe = boilerInputPipeType.instantiate({
332
- browseName: "InputPipe",
333
- componentOf: boilerType,
334
- modellingRule: "Mandatory",
335
- notifierOf: boilerType
336
- });
337
- // BoilerType.BoilerDrum (BoilerDrumType)
338
- const boilerDrum = boilerDrumType.instantiate({
339
- browseName: "BoilerDrum",
340
- componentOf: boilerType,
341
- modellingRule: "Mandatory",
342
- notifierOf: boilerType
343
- });
344
- // BoilerType.OutputPipe (BoilerOutputPipeType)
345
- const outputPipe = boilerOutputPipeType.instantiate({
346
- browseName: "OutputPipe",
347
- componentOf: boilerType,
348
- modellingRule: "Mandatory",
349
- notifierOf: boilerType
350
- });
351
- // BoilerType.Simulation (BoilerStateMachineType)
352
- const simulation = boilerStateMachineType.instantiate({
353
- browseName: "Simulation",
354
- componentOf: boilerType,
355
- eventSourceOf: boilerType,
356
- modellingRule: "Mandatory"
357
- });
358
- addRelation(inputPipe, flowTo, boilerDrum);
359
- addRelation(boilerDrum, hotFlowTo, outputPipe);
360
- (0, node_opcua_assert_1.assert)(boilerType.inputPipe.flowTransmitter);
361
- (0, node_opcua_assert_1.assert)(boilerType.inputPipe.flowTransmitter.output);
362
- (0, node_opcua_assert_1.assert)(boilerType.flowController.measurement);
363
- addRelation(boilerType.inputPipe.flowTransmitter.output, signalTo, boilerType.flowController.measurement);
364
- addRelation(boilerType.inputPipe.flowTransmitter.output, signalTo, boilerType.customController.input2);
365
- addRelation(boilerType.flowController.controlOut, signalTo, boilerType.inputPipe.valve.input);
366
- // indicates that the level controller gets its measurement from the drum's level indicator.
367
- addRelation(boilerType.boilerDrum.levelIndicator.output, signalTo, boilerType.levelController.measurement);
368
- addRelation(boilerType.outputPipe.flowTransmitter.output, signalTo, boilerType.customController.input3);
369
- addRelation(boilerType.levelController.controlOut, signalTo, boilerType.customController.input1);
370
- addRelation(boilerType.customController.controlOut, signalTo, boilerType.flowController.setPoint);
371
- return boilerType;
372
- }
373
- exports.createBoilerType = createBoilerType;
374
- function makeBoiler(addressSpace, options) {
375
- const namespace = addressSpace.getOwnNamespace();
376
- (0, node_opcua_assert_1.assert)(options);
377
- let boilerType;
378
- boilerType = namespace.findObjectType("BoilerType");
379
- // istanbul ignore next
380
- if (!boilerType) {
381
- createBoilerType(namespace);
382
- boilerType = namespace.findObjectType("BoilerType");
383
- }
384
- // now instantiate boiler
385
- const boiler1 = boilerType.instantiate({
386
- browseName: options.browseName,
387
- organizedBy: addressSpace.rootFolder.objects
388
- });
389
- (0, __1.promoteToStateMachine)(boiler1.simulation);
390
- const boilerStateMachine = boiler1.simulation;
391
- const readyState = boilerStateMachine.getStateByName("Ready");
392
- boilerStateMachine.setState(readyState);
393
- return boiler1;
394
- }
395
- exports.makeBoiler = makeBoiler;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeBoiler = exports.createBoilerType = void 0;
4
+ /* eslint-disable max-statements */
5
+ /**
6
+ * @module node-opcua-address-space
7
+ */
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_status_code_1 = require("node-opcua-status-code");
11
+ const node_opcua_utils_1 = require("node-opcua-utils");
12
+ const __1 = require("..");
13
+ function MygetExecutableFlag(method, toState, methodName) {
14
+ const stateMachineW = (0, __1.promoteToStateMachine)(method.parent);
15
+ return stateMachineW.isValidTransition(toState);
16
+ }
17
+ function implementProgramStateMachine(programStateMachine) {
18
+ function installMethod(methodName, toState) {
19
+ let method = programStateMachine.getMethodByName(methodName);
20
+ if (!method) {
21
+ // 'method' has ModellingRule=OptionalPlaceholder and should be created from the type definition
22
+ let methodToClone = programStateMachine.typeDefinitionObj.getMethodByName(methodName);
23
+ if (!methodToClone) {
24
+ methodToClone = programStateMachine.typeDefinitionObj.subtypeOfObj.getMethodByName(methodName);
25
+ }
26
+ methodToClone.clone({
27
+ namespace: programStateMachine.namespace,
28
+ componentOf: programStateMachine
29
+ });
30
+ method = programStateMachine.getMethodByName(methodName);
31
+ (0, node_opcua_assert_1.assert)(method !== null, "Method clone should cause parent object to be extended");
32
+ }
33
+ (0, node_opcua_assert_1.assert)(method.nodeClass === node_opcua_data_model_1.NodeClass.Method);
34
+ method._getExecutableFlag = function ( /* sessionContext: SessionContext */) {
35
+ // must use a function here to capture 'this'
36
+ return MygetExecutableFlag(this, toState, methodName);
37
+ };
38
+ method.bindMethod(function (inputArguments, context, callback) {
39
+ const stateMachineW = this.parent;
40
+ stateMachineW.setState(toState);
41
+ callback(null, {
42
+ outputArguments: [],
43
+ statusCode: node_opcua_status_code_1.StatusCodes.Good
44
+ });
45
+ });
46
+ (0, node_opcua_assert_1.assert)(programStateMachine.getMethodByName(methodName) !== null, "Method " + methodName + " should be added to parent object (checked with getMethodByName)");
47
+ const lc_name = (0, node_opcua_utils_1.lowerFirstLetter)(methodName);
48
+ }
49
+ installMethod("Halt", "Halted");
50
+ installMethod("Reset", "Ready");
51
+ installMethod("Start", "Running");
52
+ installMethod("Suspend", "Suspended");
53
+ installMethod("Resume", "Running");
54
+ }
55
+ function addRelation(srcNode, referenceType, targetNode) {
56
+ (0, node_opcua_assert_1.assert)(srcNode, "expecting srcNode !== null");
57
+ (0, node_opcua_assert_1.assert)(targetNode, "expecting targetNode !== null");
58
+ if (typeof referenceType === "string") {
59
+ const nodes = srcNode.findReferencesAsObject(referenceType, true);
60
+ (0, node_opcua_assert_1.assert)(nodes.length === 1);
61
+ referenceType = nodes[0];
62
+ }
63
+ srcNode.addReference({ referenceType: referenceType.nodeId, nodeId: targetNode });
64
+ }
65
+ function createBoilerType(namespace) {
66
+ // istanbul ignore next
67
+ if (namespace.findObjectType("BoilerType")) {
68
+ console.warn("createBoilerType has already been called");
69
+ return namespace.findObjectType("BoilerType");
70
+ }
71
+ // --------------------------------------------------------
72
+ // referenceTypes
73
+ // --------------------------------------------------------
74
+ // create new reference Type FlowTo HotFlowTo & SignalTo
75
+ const flowTo = namespace.addReferenceType({
76
+ browseName: "FlowTo",
77
+ description: "a reference that indicates a flow between two objects",
78
+ inverseName: "FlowFrom",
79
+ subtypeOf: "NonHierarchicalReferences"
80
+ });
81
+ const hotFlowTo = namespace.addReferenceType({
82
+ browseName: "HotFlowTo",
83
+ description: "a reference that indicates a high temperature flow between two objects",
84
+ inverseName: "HotFlowFrom",
85
+ subtypeOf: flowTo
86
+ });
87
+ const signalTo = namespace.addReferenceType({
88
+ browseName: "SignalTo",
89
+ description: "a reference that indicates an electrical signal between two variables",
90
+ inverseName: "SignalFrom",
91
+ subtypeOf: "NonHierarchicalReferences"
92
+ });
93
+ const addressSpace = namespace.addressSpace;
94
+ flowTo.isSupertypeOf(addressSpace.findReferenceType("References"));
95
+ flowTo.isSupertypeOf(addressSpace.findReferenceType("NonHierarchicalReferences"));
96
+ hotFlowTo.isSupertypeOf(addressSpace.findReferenceType("References"));
97
+ hotFlowTo.isSupertypeOf(addressSpace.findReferenceType("NonHierarchicalReferences"));
98
+ hotFlowTo.isSupertypeOf(addressSpace.findReferenceType("FlowTo", namespace.index));
99
+ const NonHierarchicalReferences = addressSpace.findReferenceType("NonHierarchicalReferences");
100
+ // --------------------------------------------------------
101
+ // EventTypes
102
+ // --------------------------------------------------------
103
+ const boilerHaltedEventType = namespace.addEventType({
104
+ browseName: "BoilerHaltedEventType",
105
+ subtypeOf: "TransitionEventType"
106
+ });
107
+ // --------------------------------------------------------
108
+ // CustomControllerType
109
+ // --------------------------------------------------------
110
+ const customControllerType = namespace.addObjectType({
111
+ browseName: "CustomControllerType",
112
+ description: "a custom PID controller with 3 inputs"
113
+ });
114
+ const input1 = namespace.addVariable({
115
+ browseName: "Input1",
116
+ dataType: "Double",
117
+ description: "a reference that indicates an electrical signal between two variables",
118
+ modellingRule: "Mandatory",
119
+ propertyOf: customControllerType
120
+ });
121
+ const input2 = namespace.addVariable({
122
+ browseName: "Input2",
123
+ dataType: "Double",
124
+ modellingRule: "Mandatory",
125
+ propertyOf: customControllerType
126
+ });
127
+ const input3 = namespace.addVariable({
128
+ browseName: "Input3",
129
+ dataType: "Double",
130
+ modellingRule: "Mandatory",
131
+ propertyOf: customControllerType
132
+ });
133
+ const controlOut = namespace.addVariable({
134
+ browseName: "ControlOut",
135
+ dataType: "Double",
136
+ modellingRule: "Mandatory",
137
+ propertyOf: customControllerType
138
+ });
139
+ const description = namespace.addVariable({
140
+ browseName: "Description",
141
+ dataType: "LocalizedText",
142
+ modellingRule: "Mandatory",
143
+ propertyOf: customControllerType
144
+ });
145
+ // --------------------------------------------------------
146
+ // GenericSensorType
147
+ // --------------------------------------------------------
148
+ const genericSensorType = namespace.addObjectType({
149
+ browseName: "GenericSensorType"
150
+ });
151
+ namespace.addAnalogDataItem({
152
+ browseName: "Output",
153
+ componentOf: genericSensorType,
154
+ dataType: "Double",
155
+ engineeringUnitsRange: { low: -100, high: 200 },
156
+ modellingRule: "Mandatory"
157
+ });
158
+ genericSensorType.install_extra_properties();
159
+ genericSensorType.getComponentByName("Output");
160
+ (0, node_opcua_assert_1.assert)(genericSensorType.getComponentByName("Output").modellingRule === "Mandatory");
161
+ // --------------------------------------------------------
162
+ // GenericSensorType <---- GenericControllerType
163
+ // --------------------------------------------------------
164
+ const genericControllerType = namespace.addObjectType({
165
+ browseName: "GenericControllerType"
166
+ });
167
+ namespace.addVariable({
168
+ browseName: "ControlOut",
169
+ dataType: "Double",
170
+ modellingRule: "Mandatory",
171
+ propertyOf: genericControllerType
172
+ });
173
+ namespace.addVariable({
174
+ browseName: "Measurement",
175
+ dataType: "Double",
176
+ modellingRule: "Mandatory",
177
+ propertyOf: genericControllerType
178
+ });
179
+ namespace.addVariable({
180
+ browseName: "SetPoint",
181
+ dataType: "Double",
182
+ modellingRule: "Mandatory",
183
+ propertyOf: genericControllerType
184
+ });
185
+ // --------------------------------------------------------------------------------
186
+ // GenericSensorType <---- GenericControllerType <--- FlowControllerType
187
+ // --------------------------------------------------------------------------------
188
+ const flowControllerType = namespace.addObjectType({
189
+ browseName: "FlowControllerType",
190
+ subtypeOf: genericControllerType
191
+ });
192
+ // --------------------------------------------------------------------------------
193
+ // GenericSensorType <---- GenericControllerType <--- LevelControllerType
194
+ // --------------------------------------------------------------------------------
195
+ const levelControllerType = namespace.addObjectType({
196
+ browseName: "LevelControllerType",
197
+ subtypeOf: genericControllerType
198
+ });
199
+ // --------------------------------------------------------------------------------
200
+ // GenericSensorType <---- FlowTransmitterType
201
+ // --------------------------------------------------------------------------------
202
+ const flowTransmitterType = namespace.addObjectType({
203
+ browseName: "FlowTransmitterType",
204
+ subtypeOf: genericSensorType
205
+ });
206
+ // --------------------------------------------------------------------------------
207
+ // GenericSensorType <---- LevelIndicatorType
208
+ // --------------------------------------------------------------------------------
209
+ const levelIndicatorType = namespace.addObjectType({
210
+ browseName: "LevelIndicatorType",
211
+ subtypeOf: genericSensorType
212
+ });
213
+ // --------------------------------------------------------------------------------
214
+ // GenericActuatorType
215
+ // --------------------------------------------------------------------------------
216
+ const genericActuatorType = namespace.addObjectType({
217
+ browseName: "GenericActuatorType"
218
+ });
219
+ namespace.addAnalogDataItem({
220
+ browseName: "Input",
221
+ componentOf: genericActuatorType,
222
+ dataType: "Double",
223
+ engineeringUnitsRange: { low: -100, high: 200 },
224
+ modellingRule: "Mandatory"
225
+ });
226
+ // --------------------------------------------------------------------------------
227
+ // GenericActuatorType <---- ValveType
228
+ // --------------------------------------------------------------------------------
229
+ const valveType = namespace.addObjectType({
230
+ browseName: "ValveType",
231
+ subtypeOf: genericActuatorType
232
+ });
233
+ // --------------------------------------------------------------------------------
234
+ // FolderType <---- BoilerInputPipeType
235
+ // --------------------------------------------------------------------------------
236
+ const boilerInputPipeType = namespace.addObjectType({
237
+ browseName: "BoilerInputPipeType",
238
+ subtypeOf: "FolderType"
239
+ });
240
+ const ftx1 = flowTransmitterType.instantiate({
241
+ browseName: "FlowTransmitter",
242
+ componentOf: boilerInputPipeType,
243
+ modellingRule: "Mandatory",
244
+ notifierOf: boilerInputPipeType
245
+ });
246
+ (0, node_opcua_assert_1.assert)(ftx1.output.browseName.toString() === `${namespace.index}:Output`);
247
+ const valve1 = valveType.instantiate({
248
+ browseName: "Valve",
249
+ componentOf: boilerInputPipeType,
250
+ modellingRule: "Mandatory"
251
+ });
252
+ // --------------------------------------------------------------------------------
253
+ // FolderType <---- BoilerOutputPipeType
254
+ // --------------------------------------------------------------------------------
255
+ const boilerOutputPipeType = namespace.addObjectType({
256
+ browseName: "BoilerOutputPipeType",
257
+ subtypeOf: "FolderType"
258
+ });
259
+ const ftx2 = flowTransmitterType.instantiate({
260
+ browseName: "FlowTransmitter",
261
+ componentOf: boilerOutputPipeType,
262
+ modellingRule: "Mandatory",
263
+ notifierOf: boilerOutputPipeType
264
+ });
265
+ ftx2.getComponentByName("Output").browseName.toString();
266
+ // --------------------------------)------------------------------------------------
267
+ // FolderType <---- BoilerDrumType
268
+ // --------------------------------------------------------------------------------
269
+ const boilerDrumType = namespace.addObjectType({
270
+ browseName: "BoilerDrumType",
271
+ subtypeOf: "FolderType"
272
+ });
273
+ const levelIndicator = levelIndicatorType.instantiate({
274
+ browseName: "LevelIndicator",
275
+ componentOf: boilerDrumType,
276
+ modellingRule: "Mandatory",
277
+ notifierOf: boilerDrumType
278
+ });
279
+ const programFiniteStateMachineType = addressSpace.findObjectType("ProgramStateMachineType");
280
+ // --------------------------------------------------------
281
+ // define boiler State Machine
282
+ // --------------------------------------------------------
283
+ const boilerStateMachineType = namespace.addObjectType({
284
+ browseName: "BoilerStateMachineType",
285
+ postInstantiateFunc: implementProgramStateMachine,
286
+ subtypeOf: programFiniteStateMachineType
287
+ });
288
+ // programStateMachineType has Optional placeHolder for method "Halt", "Reset","Start","Suspend","Resume")
289
+ function addMethod(baseType, objectType, methodName) {
290
+ (0, node_opcua_assert_1.assert)(!objectType.getMethodByName(methodName));
291
+ const method = baseType.getMethodByName(methodName);
292
+ const m = method.clone({
293
+ namespace,
294
+ componentOf: objectType,
295
+ modellingRule: "Mandatory"
296
+ });
297
+ (0, node_opcua_assert_1.assert)(objectType.getMethodByName(methodName));
298
+ (0, node_opcua_assert_1.assert)(objectType.getMethodByName(methodName).modellingRule === "Mandatory");
299
+ }
300
+ addMethod(programFiniteStateMachineType, boilerStateMachineType, "Halt");
301
+ addMethod(programFiniteStateMachineType, boilerStateMachineType, "Reset");
302
+ addMethod(programFiniteStateMachineType, boilerStateMachineType, "Start");
303
+ addMethod(programFiniteStateMachineType, boilerStateMachineType, "Suspend");
304
+ addMethod(programFiniteStateMachineType, boilerStateMachineType, "Resume");
305
+ // --------------------------------------------------------------------------------
306
+ // BoilerType
307
+ // --------------------------------------------------------------------------------
308
+ const boilerType = namespace.addObjectType({
309
+ browseName: "BoilerType",
310
+ eventNotifier: 0x1
311
+ });
312
+ // BoilerType.CustomController (CustomControllerType)
313
+ const customController = customControllerType.instantiate({
314
+ browseName: "CustomController",
315
+ componentOf: boilerType,
316
+ modellingRule: "Mandatory"
317
+ });
318
+ // BoilerType.FlowController (FlowController)
319
+ const flowController = flowControllerType.instantiate({
320
+ browseName: "FlowController",
321
+ componentOf: boilerType,
322
+ modellingRule: "Mandatory"
323
+ });
324
+ // BoilerType.LevelController (LevelControllerType)
325
+ const levelController = levelControllerType.instantiate({
326
+ browseName: "LevelController",
327
+ componentOf: boilerType,
328
+ modellingRule: "Mandatory"
329
+ });
330
+ // BoilerType.LevelIndicator (BoilerInputPipeType)
331
+ const inputPipe = boilerInputPipeType.instantiate({
332
+ browseName: "InputPipe",
333
+ componentOf: boilerType,
334
+ modellingRule: "Mandatory",
335
+ notifierOf: boilerType
336
+ });
337
+ // BoilerType.BoilerDrum (BoilerDrumType)
338
+ const boilerDrum = boilerDrumType.instantiate({
339
+ browseName: "BoilerDrum",
340
+ componentOf: boilerType,
341
+ modellingRule: "Mandatory",
342
+ notifierOf: boilerType
343
+ });
344
+ // BoilerType.OutputPipe (BoilerOutputPipeType)
345
+ const outputPipe = boilerOutputPipeType.instantiate({
346
+ browseName: "OutputPipe",
347
+ componentOf: boilerType,
348
+ modellingRule: "Mandatory",
349
+ notifierOf: boilerType
350
+ });
351
+ // BoilerType.Simulation (BoilerStateMachineType)
352
+ const simulation = boilerStateMachineType.instantiate({
353
+ browseName: "Simulation",
354
+ componentOf: boilerType,
355
+ eventSourceOf: boilerType,
356
+ modellingRule: "Mandatory"
357
+ });
358
+ addRelation(inputPipe, flowTo, boilerDrum);
359
+ addRelation(boilerDrum, hotFlowTo, outputPipe);
360
+ (0, node_opcua_assert_1.assert)(boilerType.inputPipe.flowTransmitter);
361
+ (0, node_opcua_assert_1.assert)(boilerType.inputPipe.flowTransmitter.output);
362
+ (0, node_opcua_assert_1.assert)(boilerType.flowController.measurement);
363
+ addRelation(boilerType.inputPipe.flowTransmitter.output, signalTo, boilerType.flowController.measurement);
364
+ addRelation(boilerType.inputPipe.flowTransmitter.output, signalTo, boilerType.customController.input2);
365
+ addRelation(boilerType.flowController.controlOut, signalTo, boilerType.inputPipe.valve.input);
366
+ // indicates that the level controller gets its measurement from the drum's level indicator.
367
+ addRelation(boilerType.boilerDrum.levelIndicator.output, signalTo, boilerType.levelController.measurement);
368
+ addRelation(boilerType.outputPipe.flowTransmitter.output, signalTo, boilerType.customController.input3);
369
+ addRelation(boilerType.levelController.controlOut, signalTo, boilerType.customController.input1);
370
+ addRelation(boilerType.customController.controlOut, signalTo, boilerType.flowController.setPoint);
371
+ return boilerType;
372
+ }
373
+ exports.createBoilerType = createBoilerType;
374
+ function makeBoiler(addressSpace, options) {
375
+ const namespace = addressSpace.getOwnNamespace();
376
+ (0, node_opcua_assert_1.assert)(options);
377
+ let boilerType;
378
+ boilerType = namespace.findObjectType("BoilerType");
379
+ // istanbul ignore next
380
+ if (!boilerType) {
381
+ createBoilerType(namespace);
382
+ boilerType = namespace.findObjectType("BoilerType");
383
+ }
384
+ // now instantiate boiler
385
+ const boiler1 = boilerType.instantiate({
386
+ browseName: options.browseName,
387
+ organizedBy: addressSpace.rootFolder.objects
388
+ });
389
+ (0, __1.promoteToStateMachine)(boiler1.simulation);
390
+ const boilerStateMachine = boiler1.simulation;
391
+ const readyState = boilerStateMachine.getStateByName("Ready");
392
+ boilerStateMachine.setState(readyState);
393
+ return boiler1;
394
+ }
395
+ exports.makeBoiler = makeBoiler;
396
396
  //# sourceMappingURL=boiler_system.js.map