node-opcua-address-space 2.97.0 → 2.98.1

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 (342) 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 +91 -91
  4. package/dist/source/continuation_points/continuation_point_manager.js +200 -200
  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 +33 -33
  8. package/dist/source/helpers/argument_list.js +254 -254
  9. package/dist/source/helpers/call_helpers.d.ts +6 -6
  10. package/dist/source/helpers/call_helpers.js +71 -71
  11. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  12. package/dist/source/helpers/coerce_enum_value.js +33 -33
  13. package/dist/source/helpers/dump_tools.d.ts +14 -14
  14. package/dist/source/helpers/dump_tools.js +78 -78
  15. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  16. package/dist/source/helpers/ensure_secure_access.js +76 -76
  17. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  18. package/dist/source/helpers/make_optionals_map.js +29 -29
  19. package/dist/source/helpers/multiform_func.d.ts +11 -11
  20. package/dist/source/helpers/multiform_func.js +75 -75
  21. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  22. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  23. package/dist/source/index.d.ts +61 -61
  24. package/dist/source/index.js +89 -89
  25. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
  26. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  27. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
  28. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
  29. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
  30. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
  31. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
  32. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
  33. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
  34. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
  35. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
  36. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
  44. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
  45. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
  46. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
  47. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
  48. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
  49. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
  50. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
  51. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
  52. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
  53. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
  54. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
  55. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +45 -42
  56. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
  57. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
  58. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
  59. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
  60. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
  61. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
  62. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
  63. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
  64. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
  65. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
  66. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
  67. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
  68. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
  69. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  70. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  71. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  72. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  73. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  74. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  75. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  76. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  77. package/dist/source/interfaces/extension_object_constructor.d.ts +10 -10
  78. package/dist/source/interfaces/extension_object_constructor.js +2 -2
  79. package/dist/source/interfaces/nodeset_loader_options.d.ts +4 -4
  80. package/dist/source/interfaces/nodeset_loader_options.js +2 -2
  81. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  82. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  83. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  84. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  85. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  86. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  87. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
  88. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
  89. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +234 -234
  90. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  91. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  92. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  93. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  94. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  95. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  96. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  97. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  98. package/dist/source/loader/ensure_datatype_extracted.js +70 -70
  99. package/dist/source/loader/generateAddressSpaceRaw.d.ts +11 -11
  100. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  101. package/dist/source/loader/load_nodeset2.d.ts +17 -17
  102. package/dist/source/loader/load_nodeset2.js +1483 -1483
  103. package/dist/source/loader/make_semver_compatible.d.ts +6 -6
  104. package/dist/source/loader/make_semver_compatible.js +25 -25
  105. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  106. package/dist/source/loader/make_xml_extension_object_parser.js +326 -326
  107. package/dist/source/loader/namespace_post_step.d.ts +10 -10
  108. package/dist/source/loader/namespace_post_step.js +61 -61
  109. package/dist/source/loader/register_node_promoter.d.ts +2 -2
  110. package/dist/source/loader/register_node_promoter.js +9 -9
  111. package/dist/source/namespace.d.ts +6 -6
  112. package/dist/source/namespace.js +2 -2
  113. package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
  114. package/dist/source/namespace_alarm_and_condition.js +2 -2
  115. package/dist/source/namespace_data_access.d.ts +42 -42
  116. package/dist/source/namespace_data_access.js +2 -2
  117. package/dist/source/namespace_machine_state.d.ts +8 -8
  118. package/dist/source/namespace_machine_state.js +2 -2
  119. package/dist/source/pseudo_session.d.ts +72 -72
  120. package/dist/source/pseudo_session.js +254 -254
  121. package/dist/source/session_context.d.ts +111 -111
  122. package/dist/source/session_context.js +264 -264
  123. package/dist/source/session_context.js.map +1 -1
  124. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  125. package/dist/source/set_namespace_meta_data.js +59 -59
  126. package/dist/source/ua_root_folder.d.ts +9 -9
  127. package/dist/source/ua_root_folder.js +2 -2
  128. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  129. package/dist/source/ua_two_state_variable_ex.js +2 -2
  130. package/dist/source/xml_writer.d.ts +18 -18
  131. package/dist/source/xml_writer.js +2 -2
  132. package/dist/src/address_space.d.ts +387 -387
  133. package/dist/src/address_space.js +1385 -1385
  134. package/dist/src/address_space.js.map +1 -1
  135. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  136. package/dist/src/address_space_change_event_tools.js +152 -152
  137. package/dist/src/address_space_private.d.ts +43 -43
  138. package/dist/src/address_space_private.js +2 -2
  139. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  140. package/dist/src/alarms_and_conditions/condition.js +78 -78
  141. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
  142. package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
  143. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
  144. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
  145. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
  146. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
  147. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +60 -60
  148. package/dist/src/alarms_and_conditions/index.d.ts +16 -16
  149. package/dist/src/alarms_and_conditions/index.js +32 -32
  150. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
  151. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  152. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
  153. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +418 -418
  154. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  155. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
  156. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  157. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
  158. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
  159. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +155 -153
  160. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
  161. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  162. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
  163. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
  164. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
  165. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  166. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
  167. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  168. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
  169. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  170. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
  171. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  172. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
  173. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  174. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
  175. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  176. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
  177. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  178. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
  179. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +165 -165
  180. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
  181. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  182. package/dist/src/apply_condition_refresh.d.ts +6 -6
  183. package/dist/src/apply_condition_refresh.js +27 -27
  184. package/dist/src/base_node_impl.d.ts +284 -284
  185. package/dist/src/base_node_impl.js +1454 -1454
  186. package/dist/src/base_node_private.d.ts +81 -81
  187. package/dist/src/base_node_private.js +832 -803
  188. package/dist/src/base_node_private.js.map +1 -1
  189. package/dist/src/check_value_rank_compatibility.d.ts +15 -15
  190. package/dist/src/check_value_rank_compatibility.js +81 -81
  191. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  192. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  193. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  194. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  195. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  196. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  197. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +52 -52
  198. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +253 -253
  199. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
  200. package/dist/src/data_access/ua_two_state_discrete_impl.js +155 -155
  201. package/dist/src/event_data.d.ts +34 -34
  202. package/dist/src/event_data.js +64 -64
  203. package/dist/src/extension_object_array_node.d.ts +23 -23
  204. package/dist/src/extension_object_array_node.js +248 -248
  205. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  206. package/dist/src/historical_access/address_space_historical_data_node.js +652 -652
  207. package/dist/src/idx_iterator.d.ts +8 -8
  208. package/dist/src/idx_iterator.js +50 -50
  209. package/dist/src/index_current.d.ts +46 -46
  210. package/dist/src/index_current.js +77 -77
  211. package/dist/src/namespace_impl.d.ts +456 -456
  212. package/dist/src/namespace_impl.js +1762 -1762
  213. package/dist/src/namespace_impl.js.map +1 -1
  214. package/dist/src/namespace_private.d.ts +23 -23
  215. package/dist/src/namespace_private.js +32 -32
  216. package/dist/src/nodeid_manager.d.ts +37 -37
  217. package/dist/src/nodeid_manager.js +183 -183
  218. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  219. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  220. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +18 -18
  221. package/dist/src/nodeset_tools/construct_namespace_dependency.js +140 -140
  222. package/dist/src/nodeset_tools/dump_to_bsd.d.ts +2 -2
  223. package/dist/src/nodeset_tools/dump_to_bsd.js +164 -164
  224. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +10 -10
  225. package/dist/src/nodeset_tools/nodeset_to_xml.js +1287 -1287
  226. package/dist/src/private_namespace.d.ts +5 -5
  227. package/dist/src/private_namespace.js +19 -19
  228. package/dist/src/reference_impl.d.ts +43 -43
  229. package/dist/src/reference_impl.js +139 -139
  230. package/dist/src/role_permissions.d.ts +2 -2
  231. package/dist/src/role_permissions.js +10 -10
  232. package/dist/src/state_machine/finite_state_machine.d.ts +81 -81
  233. package/dist/src/state_machine/finite_state_machine.js +388 -388
  234. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
  235. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  236. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  237. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  238. package/dist/src/tool_isSubtypeOf.d.ts +18 -18
  239. package/dist/src/tool_isSubtypeOf.js +124 -124
  240. package/dist/src/ua_condition_type.d.ts +8 -8
  241. package/dist/src/ua_condition_type.js +2 -2
  242. package/dist/src/ua_data_type_impl.d.ts +89 -89
  243. package/dist/src/ua_data_type_impl.js +368 -368
  244. package/dist/src/ua_method_impl.d.ts +42 -42
  245. package/dist/src/ua_method_impl.js +217 -217
  246. package/dist/src/ua_object_impl.d.ts +35 -35
  247. package/dist/src/ua_object_impl.js +168 -168
  248. package/dist/src/ua_object_type_impl.d.ts +50 -50
  249. package/dist/src/ua_object_type_impl.js +126 -126
  250. package/dist/src/ua_reference_type_impl.d.ts +45 -45
  251. package/dist/src/ua_reference_type_impl.js +141 -141
  252. package/dist/src/ua_variable_impl.d.ts +380 -380
  253. package/dist/src/ua_variable_impl.js +1738 -1738
  254. package/dist/src/ua_variable_impl_ext_obj.d.ts +23 -23
  255. package/dist/src/ua_variable_impl_ext_obj.js +670 -670
  256. package/dist/src/ua_variable_type_impl.d.ts +74 -74
  257. package/dist/src/ua_variable_type_impl.js +597 -581
  258. package/dist/src/ua_variable_type_impl.js.map +1 -1
  259. package/dist/src/ua_view_impl.d.ts +19 -19
  260. package/dist/src/ua_view_impl.js +43 -43
  261. package/dist/tsconfig_common.tsbuildinfo +1 -0
  262. package/distHelpers/add_event_generator_object.d.ts +3 -3
  263. package/distHelpers/add_event_generator_object.js +64 -64
  264. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
  265. package/distHelpers/alarms_and_conditions_demo.js +115 -115
  266. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  267. package/distHelpers/assertHasMatchingReference.js +40 -40
  268. package/distHelpers/boiler_system.d.ts +113 -113
  269. package/distHelpers/boiler_system.js +395 -395
  270. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  271. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  272. package/distHelpers/date_utils.d.ts +3 -3
  273. package/distHelpers/date_utils.js +9 -9
  274. package/distHelpers/dump_statemachine.js +127 -127
  275. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  276. package/distHelpers/get_address_space_fixture.js +30 -30
  277. package/distHelpers/get_mini_address_space.d.ts +7 -7
  278. package/distHelpers/get_mini_address_space.js +36 -36
  279. package/distHelpers/index.d.ts +12 -12
  280. package/distHelpers/index.js +28 -28
  281. package/distHelpers/mock_session.d.ts +10 -10
  282. package/distHelpers/mock_session.js +25 -25
  283. package/distNodeJS/generate_address_space.d.ts +6 -6
  284. package/distNodeJS/generate_address_space.js +52 -52
  285. package/distNodeJS/index.d.ts +1 -1
  286. package/distNodeJS/index.js +17 -17
  287. package/package.json +51 -40
  288. package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +4 -3
  289. package/src/alarms_and_conditions/ua_condition_impl.ts +14 -9
  290. package/src/base_node_private.ts +73 -28
  291. package/src/ua_variable_type_impl.ts +35 -17
  292. package/.mocharc.yml +0 -12
  293. package/dist/src/tool_isSupertypeOf.d.ts +0 -18
  294. package/dist/src/tool_isSupertypeOf.js +0 -125
  295. package/dist/src/tool_isSupertypeOf.js.map +0 -1
  296. package/generate.js +0 -1
  297. package/source_nodejs/generate_address_space.ts +0 -60
  298. package/source_nodejs/index.ts +0 -1
  299. package/test_helpers/add_event_generator_object.ts +0 -71
  300. package/test_helpers/alarms_and_conditions_demo.ts +0 -151
  301. package/test_helpers/assertHasMatchingReference.ts +0 -43
  302. package/test_helpers/boiler_system.ts +0 -610
  303. package/test_helpers/create_minimalist_address_space_nodeset.ts +0 -208
  304. package/test_helpers/date_utils.ts +0 -5
  305. package/test_helpers/dump_statemachine.ts +0 -155
  306. package/test_helpers/get_address_space_fixture.ts +0 -30
  307. package/test_helpers/get_mini_address_space.ts +0 -42
  308. package/test_helpers/index.ts +0 -12
  309. package/test_helpers/mock_session.ts +0 -34
  310. package/test_helpers/test_fixtures/dataType_in_separateNamespace.xml +0 -150
  311. package/test_helpers/test_fixtures/dataType_in_separateNamespace_basic.xml +0 -57
  312. package/test_helpers/test_fixtures/dataType_in_separateNamespace_mix.xml +0 -136
  313. package/test_helpers/test_fixtures/dataType_issue.xml +0 -80
  314. package/test_helpers/test_fixtures/dataType_withEnumeration.xml +0 -82
  315. package/test_helpers/test_fixtures/dataType_with_isOptionSet.xml +0 -194
  316. package/test_helpers/test_fixtures/dataType_with_qualifiedname.xml +0 -71
  317. package/test_helpers/test_fixtures/dataType_with_recursive_structure.xml +0 -155
  318. package/test_helpers/test_fixtures/dataType_with_structures.xml +0 -605
  319. package/test_helpers/test_fixtures/dataType_with_union.xml +0 -90
  320. package/test_helpers/test_fixtures/datatype_as_per_1.04.xml +0 -118
  321. package/test_helpers/test_fixtures/datatype_with_allow_subtype.xml +0 -104
  322. package/test_helpers/test_fixtures/eurange_issue.xml +0 -74
  323. package/test_helpers/test_fixtures/example_issue1096.xml +0 -267
  324. package/test_helpers/test_fixtures/fixture_empty_nodeset2.xml +0 -106
  325. package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +0 -1305
  326. package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +0 -370
  327. package/test_helpers/test_fixtures/issue_1132_variable_with_nodeid_value.xml +0 -68
  328. package/test_helpers/test_fixtures/issue_846.xml +0 -3172
  329. package/test_helpers/test_fixtures/issue_899_variable_with_nodeid_value.xml +0 -33
  330. package/test_helpers/test_fixtures/mini.Node.Set2.xml +0 -4736
  331. package/test_helpers/test_fixtures/mini.nodeset.withVariousVariables.xml +0 -196
  332. package/test_helpers/test_fixtures/minimalist_nodeset_with_models.xml +0 -8
  333. package/test_helpers/test_fixtures/minimalist_nodeset_with_models_more_complex.xml +0 -20
  334. package/test_helpers/test_fixtures/nodeset_no_aliases.xml +0 -30
  335. package/test_helpers/test_fixtures/nodeset_no_aliases_with_aliases.xml +0 -31
  336. package/test_helpers/test_fixtures/nodeset_with_analog_items.xml +0 -45
  337. package/test_helpers/test_fixtures/nodeset_with_guid.xml +0 -1442
  338. package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +0 -31
  339. package/test_helpers/test_fixtures/nodeset_with_special_char.xml +0 -34
  340. package/test_helpers/test_fixtures/nodeset_with_utf8_special_characters.xml +0 -20
  341. package/test_helpers/test_fixtures/variable_with_value.xml +0 -143
  342. package/test_helpers/test_fixtures/variabletype_with_value.xml +0 -324
@@ -1,610 +0,0 @@
1
- /* eslint-disable max-statements */
2
- /**
3
- * @module node-opcua-address-space
4
- */
5
- import { assert } from "node-opcua-assert";
6
- import { NodeClass } from "node-opcua-data-model";
7
- import { StatusCodes } from "node-opcua-status-code";
8
- import { CallMethodResultOptions } from "node-opcua-types";
9
- import { lowerFirstLetter } from "node-opcua-utils";
10
- import { VariantLike, DataType } from "node-opcua-variant";
11
- import { UAFolder, UAAnalogItem } from "node-opcua-nodeset-ua";
12
- import {
13
- AddressSpace,
14
- BaseNode,
15
- InstantiateObjectOptions,
16
- Namespace,
17
- UATransitionEventType,
18
- UAMethod,
19
- UAObject,
20
- UAObjectType,
21
- UAReferenceType,
22
- UAVariable,
23
- promoteToStateMachine,
24
- ISessionContext,
25
- UAProgramStateMachineEx
26
- } from "..";
27
-
28
- import { UAStateMachineImpl } from "../src/state_machine/finite_state_machine";
29
-
30
- export interface FlowToReference extends UAReferenceType {}
31
-
32
- export interface HotFlowToReference extends UAReferenceType {}
33
-
34
- export interface SignalToReference extends UAReferenceType {}
35
-
36
- export interface BoilerHaltedEventType extends UATransitionEventType {}
37
-
38
- export interface CustomControllerB {
39
- input1: UAVariable;
40
- input2: UAVariable;
41
- input3: UAVariable;
42
- controlOut: UAVariable;
43
- // conflict here ! description: UAVariable;
44
- }
45
-
46
- export interface CustomControllerType extends CustomControllerB, UAObjectType {}
47
-
48
- export interface CustomController extends CustomControllerB, UAObject {}
49
-
50
- export interface GenericSensorB {
51
- output: UAAnalogItem<number, DataType.Double>;
52
- }
53
-
54
- export interface GenericSensorType extends GenericSensorB, UAObjectType {}
55
-
56
- export interface GenericSensor extends GenericSensorB, UAObject {}
57
-
58
- export interface GenericControllerB {
59
- controlOut: UAVariable;
60
- measurement: UAVariable;
61
- setPoint: UAVariable;
62
- }
63
-
64
- export interface GenericControllerType extends GenericControllerB, UAObjectType {}
65
-
66
- export interface GenericController extends GenericControllerB, UAObject {}
67
-
68
- export interface FlowControllerType extends GenericControllerType {}
69
-
70
- export interface FlowController extends GenericController {}
71
-
72
- export interface LevelControllerType extends GenericControllerType {}
73
-
74
- export interface LevelController extends GenericController {}
75
-
76
- export interface FlowTransmitterType extends GenericSensorType {}
77
-
78
- export interface FlowTransmitter extends GenericSensor {}
79
-
80
- export interface LevelIndicatorType extends GenericSensorType {}
81
-
82
- export interface LevelIndicator extends GenericSensor {}
83
-
84
- export interface GenericActuatorType extends UAObjectType {
85
- input: UAAnalogItem<number, DataType.Double>;
86
- }
87
-
88
- export interface GenericActuator extends UAObject {
89
- input: UAAnalogItem<number, DataType.Double>;
90
- }
91
-
92
- export interface ValveType extends GenericActuatorType {}
93
-
94
- export interface Valve extends GenericActuator {}
95
-
96
- export interface BoilerInputPipeType extends UAObjectType {
97
- flowTransmitter: FlowTransmitter;
98
- valve: Valve;
99
- }
100
-
101
- export interface BoilerInputPipe extends UAFolder {
102
- flowTransmitter: FlowTransmitter;
103
- valve: Valve;
104
- }
105
-
106
- export interface BoilerOutputPipeType extends UAObjectType {
107
- flowTransmitter: FlowTransmitter;
108
- }
109
-
110
- export interface BoilerOutputPipe extends UAFolder {
111
- flowTransmitter: FlowTransmitter;
112
- }
113
-
114
- export interface BoilerDrumType extends UAObjectType {
115
- levelIndicator: LevelIndicator;
116
- }
117
-
118
- export interface BoilerDrum extends UAFolder {
119
- levelIndicator: LevelIndicator;
120
- }
121
-
122
- export interface BoilerStateMachineType extends UAObjectType {}
123
-
124
- export interface BoilerStateMachine extends UAObject, UAProgramStateMachineEx {}
125
-
126
- export interface BoilerType extends UAObjectType {
127
- customController: CustomController;
128
- flowController: FlowController;
129
- levelController: LevelController;
130
- inputPipe: BoilerInputPipe;
131
- boilerDrum: BoilerDrum;
132
- outputPipe: BoilerOutputPipe;
133
- boilerDrum2: BoilerDrum;
134
- simulation: BoilerStateMachine;
135
-
136
- instantiate(options: InstantiateObjectOptions): Boiler;
137
- }
138
-
139
- export interface Boiler extends UAObject {
140
- customController: CustomController;
141
- flowController: FlowController;
142
- levelController: LevelController;
143
- inputPipe: BoilerInputPipe;
144
- boilerDrum: BoilerDrum;
145
- outputPipe: BoilerOutputPipe;
146
- boilerDrum2: BoilerDrum;
147
- simulation: BoilerStateMachine;
148
- }
149
-
150
- function MygetExecutableFlag(method: UAMethod, toState: string, methodName: string) {
151
- const stateMachineW = promoteToStateMachine(method.parent!);
152
- return stateMachineW.isValidTransition(toState);
153
- }
154
-
155
- function implementProgramStateMachine(programStateMachine: UAObject): void {
156
- function installMethod(methodName: string, toState: string) {
157
- let method = programStateMachine.getMethodByName(methodName);
158
-
159
- if (!method) {
160
- // 'method' has ModellingRule=OptionalPlaceholder and should be created from the type definition
161
- let methodToClone = programStateMachine.typeDefinitionObj.getMethodByName(methodName);
162
- if (!methodToClone) {
163
- methodToClone = programStateMachine.typeDefinitionObj!.subtypeOfObj!.getMethodByName(methodName)!;
164
- }
165
- methodToClone.clone({
166
- namespace: programStateMachine.namespace,
167
- componentOf: programStateMachine
168
- });
169
- method = programStateMachine.getMethodByName(methodName)!;
170
- assert(method !== null, "Method clone should cause parent object to be extended");
171
- }
172
- assert(method.nodeClass === NodeClass.Method);
173
-
174
- method._getExecutableFlag = function (/* sessionContext: SessionContext */) {
175
- // must use a function here to capture 'this'
176
- return MygetExecutableFlag(this as UAMethod, toState, methodName);
177
- };
178
-
179
- method.bindMethod(function (
180
- this: UAMethod,
181
- inputArguments: VariantLike[],
182
- context: ISessionContext,
183
- callback: (err: Error | null, callMethodResult: CallMethodResultOptions) => void
184
- ) {
185
- const stateMachineW = this.parent! as UAStateMachineImpl;
186
- stateMachineW.setState(toState);
187
- callback(null, {
188
- outputArguments: [],
189
- statusCode: StatusCodes.Good
190
- });
191
- });
192
-
193
- assert(
194
- programStateMachine.getMethodByName(methodName) !== null,
195
- "Method " + methodName + " should be added to parent object (checked with getMethodByName)"
196
- );
197
- const lc_name = lowerFirstLetter(methodName);
198
- }
199
-
200
- installMethod("Halt", "Halted");
201
- installMethod("Reset", "Ready");
202
- installMethod("Start", "Running");
203
- installMethod("Suspend", "Suspended");
204
- installMethod("Resume", "Running");
205
- }
206
-
207
- function addRelation(srcNode: BaseNode, referenceType: UAReferenceType | string, targetNode: BaseNode) {
208
- assert(srcNode, "expecting srcNode !== null");
209
- assert(targetNode, "expecting targetNode !== null");
210
- if (typeof referenceType === "string") {
211
- const nodes = srcNode.findReferencesAsObject(referenceType, true);
212
- assert(nodes.length === 1);
213
- referenceType = nodes[0] as UAReferenceType;
214
- }
215
- srcNode.addReference({ referenceType: referenceType.nodeId, nodeId: targetNode });
216
- }
217
-
218
- export function createBoilerType(namespace: Namespace): BoilerType {
219
- // istanbul ignore next
220
- if (namespace.findObjectType("BoilerType")) {
221
- console.warn("createBoilerType has already been called");
222
- return namespace.findObjectType("BoilerType") as BoilerType;
223
- }
224
- // --------------------------------------------------------
225
- // referenceTypes
226
- // --------------------------------------------------------
227
- // create new reference Type FlowTo HotFlowTo & SignalTo
228
-
229
- const flowTo = namespace.addReferenceType({
230
- browseName: "FlowTo",
231
- description: "a reference that indicates a flow between two objects",
232
- inverseName: "FlowFrom",
233
- subtypeOf: "NonHierarchicalReferences"
234
- }) as FlowToReference;
235
-
236
- const hotFlowTo = namespace.addReferenceType({
237
- browseName: "HotFlowTo",
238
- description: "a reference that indicates a high temperature flow between two objects",
239
- inverseName: "HotFlowFrom",
240
- subtypeOf: flowTo
241
- }) as HotFlowToReference;
242
-
243
- const signalTo = namespace.addReferenceType({
244
- browseName: "SignalTo",
245
- description: "a reference that indicates an electrical signal between two variables",
246
- inverseName: "SignalFrom",
247
- subtypeOf: "NonHierarchicalReferences"
248
- }) as SignalToReference;
249
-
250
- const addressSpace = namespace.addressSpace;
251
- flowTo.isSubtypeOf(addressSpace.findReferenceType("References")!);
252
- flowTo.isSubtypeOf(addressSpace.findReferenceType("NonHierarchicalReferences")!);
253
- hotFlowTo.isSubtypeOf(addressSpace.findReferenceType("References")!);
254
- hotFlowTo.isSubtypeOf(addressSpace.findReferenceType("NonHierarchicalReferences")!);
255
- hotFlowTo.isSubtypeOf(addressSpace.findReferenceType("FlowTo", namespace.index)!);
256
-
257
- const NonHierarchicalReferences = addressSpace.findReferenceType("NonHierarchicalReferences");
258
-
259
- // --------------------------------------------------------
260
- // EventTypes
261
- // --------------------------------------------------------
262
- const boilerHaltedEventType = namespace.addEventType({
263
- browseName: "BoilerHaltedEventType",
264
- subtypeOf: "TransitionEventType"
265
- }) as BoilerHaltedEventType;
266
-
267
- // --------------------------------------------------------
268
- // CustomControllerType
269
- // --------------------------------------------------------
270
- const customControllerType = namespace.addObjectType({
271
- browseName: "CustomControllerType",
272
- description: "a custom PID controller with 3 inputs"
273
- }) as CustomControllerType;
274
-
275
- const input1: UAVariable = namespace.addVariable({
276
- browseName: "Input1",
277
- dataType: "Double",
278
- description: "a reference that indicates an electrical signal between two variables",
279
- modellingRule: "Mandatory",
280
- propertyOf: customControllerType
281
- });
282
-
283
- const input2: UAVariable = namespace.addVariable({
284
- browseName: "Input2",
285
- dataType: "Double",
286
- modellingRule: "Mandatory",
287
- propertyOf: customControllerType
288
- });
289
-
290
- const input3: UAVariable = namespace.addVariable({
291
- browseName: "Input3",
292
- dataType: "Double",
293
- modellingRule: "Mandatory",
294
- propertyOf: customControllerType
295
- });
296
-
297
- const controlOut: UAVariable = namespace.addVariable({
298
- browseName: "ControlOut",
299
- dataType: "Double",
300
- modellingRule: "Mandatory",
301
- propertyOf: customControllerType
302
- });
303
-
304
- const description: UAVariable = namespace.addVariable({
305
- browseName: "Description",
306
- dataType: "LocalizedText",
307
- modellingRule: "Mandatory",
308
- propertyOf: customControllerType
309
- });
310
-
311
- // --------------------------------------------------------
312
- // GenericSensorType
313
- // --------------------------------------------------------
314
- const genericSensorType = namespace.addObjectType({
315
- browseName: "GenericSensorType"
316
- });
317
- namespace.addAnalogDataItem({
318
- browseName: "Output",
319
- componentOf: genericSensorType,
320
- dataType: "Double",
321
- engineeringUnitsRange: { low: -100, high: 200 },
322
- modellingRule: "Mandatory"
323
- });
324
-
325
- genericSensorType.install_extra_properties();
326
-
327
- genericSensorType.getComponentByName("Output");
328
- assert(genericSensorType.getComponentByName("Output")!.modellingRule === "Mandatory");
329
-
330
- // --------------------------------------------------------
331
- // GenericSensorType <---- GenericControllerType
332
- // --------------------------------------------------------
333
- const genericControllerType = namespace.addObjectType({
334
- browseName: "GenericControllerType"
335
- });
336
- namespace.addVariable({
337
- browseName: "ControlOut",
338
- dataType: "Double",
339
- modellingRule: "Mandatory",
340
- propertyOf: genericControllerType
341
- });
342
- namespace.addVariable({
343
- browseName: "Measurement",
344
- dataType: "Double",
345
- modellingRule: "Mandatory",
346
- propertyOf: genericControllerType
347
- });
348
- namespace.addVariable({
349
- browseName: "SetPoint",
350
- dataType: "Double",
351
- modellingRule: "Mandatory",
352
- propertyOf: genericControllerType
353
- });
354
-
355
- // --------------------------------------------------------------------------------
356
- // GenericSensorType <---- GenericControllerType <--- FlowControllerType
357
- // --------------------------------------------------------------------------------
358
-
359
- const flowControllerType = namespace.addObjectType({
360
- browseName: "FlowControllerType",
361
- subtypeOf: genericControllerType
362
- });
363
-
364
- // --------------------------------------------------------------------------------
365
- // GenericSensorType <---- GenericControllerType <--- LevelControllerType
366
- // --------------------------------------------------------------------------------
367
- const levelControllerType = namespace.addObjectType({
368
- browseName: "LevelControllerType",
369
- subtypeOf: genericControllerType
370
- });
371
-
372
- // --------------------------------------------------------------------------------
373
- // GenericSensorType <---- FlowTransmitterType
374
- // --------------------------------------------------------------------------------
375
- const flowTransmitterType = namespace.addObjectType({
376
- browseName: "FlowTransmitterType",
377
- subtypeOf: genericSensorType
378
- });
379
-
380
- // --------------------------------------------------------------------------------
381
- // GenericSensorType <---- LevelIndicatorType
382
- // --------------------------------------------------------------------------------
383
- const levelIndicatorType = namespace.addObjectType({
384
- browseName: "LevelIndicatorType",
385
- subtypeOf: genericSensorType
386
- });
387
-
388
- // --------------------------------------------------------------------------------
389
- // GenericActuatorType
390
- // --------------------------------------------------------------------------------
391
- const genericActuatorType = namespace.addObjectType({
392
- browseName: "GenericActuatorType"
393
- });
394
- namespace.addAnalogDataItem({
395
- browseName: "Input",
396
- componentOf: genericActuatorType,
397
- dataType: "Double",
398
- engineeringUnitsRange: { low: -100, high: 200 },
399
- modellingRule: "Mandatory"
400
- });
401
-
402
- // --------------------------------------------------------------------------------
403
- // GenericActuatorType <---- ValveType
404
- // --------------------------------------------------------------------------------
405
- const valveType = namespace.addObjectType({
406
- browseName: "ValveType",
407
- subtypeOf: genericActuatorType
408
- });
409
-
410
- // --------------------------------------------------------------------------------
411
- // FolderType <---- BoilerInputPipeType
412
- // --------------------------------------------------------------------------------
413
- const boilerInputPipeType = namespace.addObjectType({
414
- browseName: "BoilerInputPipeType",
415
- subtypeOf: "FolderType"
416
- });
417
-
418
- const ftx1 = flowTransmitterType.instantiate({
419
- browseName: "FlowTransmitter",
420
- componentOf: boilerInputPipeType,
421
- modellingRule: "Mandatory",
422
- notifierOf: boilerInputPipeType
423
- }) as FlowTransmitter;
424
- assert(ftx1.output.browseName.toString() === `${namespace.index}:Output`);
425
-
426
- const valve1 = valveType.instantiate({
427
- browseName: "Valve",
428
- componentOf: boilerInputPipeType,
429
- modellingRule: "Mandatory"
430
- }) as Valve;
431
-
432
- // --------------------------------------------------------------------------------
433
- // FolderType <---- BoilerOutputPipeType
434
- // --------------------------------------------------------------------------------
435
-
436
- const boilerOutputPipeType = namespace.addObjectType({
437
- browseName: "BoilerOutputPipeType",
438
- subtypeOf: "FolderType"
439
- });
440
- const ftx2 = flowTransmitterType.instantiate({
441
- browseName: "FlowTransmitter",
442
- componentOf: boilerOutputPipeType,
443
- modellingRule: "Mandatory",
444
- notifierOf: boilerOutputPipeType
445
- }) as FlowTransmitter;
446
-
447
- ftx2.getComponentByName("Output")!.browseName.toString();
448
-
449
- // --------------------------------)------------------------------------------------
450
- // FolderType <---- BoilerDrumType
451
- // --------------------------------------------------------------------------------
452
- const boilerDrumType = namespace.addObjectType({
453
- browseName: "BoilerDrumType",
454
- subtypeOf: "FolderType"
455
- });
456
-
457
- const levelIndicator = levelIndicatorType.instantiate({
458
- browseName: "LevelIndicator",
459
- componentOf: boilerDrumType,
460
- modellingRule: "Mandatory",
461
- notifierOf: boilerDrumType
462
- }) as LevelIndicator;
463
-
464
- const programFiniteStateMachineType = addressSpace.findObjectType("ProgramStateMachineType")!;
465
-
466
- // --------------------------------------------------------
467
- // define boiler State Machine
468
- // --------------------------------------------------------
469
- const boilerStateMachineType = namespace.addObjectType({
470
- browseName: "BoilerStateMachineType",
471
- postInstantiateFunc: implementProgramStateMachine,
472
- subtypeOf: programFiniteStateMachineType!
473
- }) as BoilerStateMachineType;
474
-
475
- // programStateMachineType has Optional placeHolder for method "Halt", "Reset","Start","Suspend","Resume")
476
-
477
- function addMethod(baseType: UAObjectType, objectType: UAObjectType, methodName: string) {
478
- assert(!objectType.getMethodByName(methodName));
479
- const method = baseType.getMethodByName(methodName)!;
480
- const m = method.clone({
481
- namespace,
482
- componentOf: objectType,
483
- modellingRule: "Mandatory"
484
- });
485
- assert(objectType.getMethodByName(methodName));
486
- assert(objectType.getMethodByName(methodName)!.modellingRule === "Mandatory");
487
- }
488
-
489
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Halt");
490
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Reset");
491
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Start");
492
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Suspend");
493
- addMethod(programFiniteStateMachineType, boilerStateMachineType, "Resume");
494
-
495
- // --------------------------------------------------------------------------------
496
- // BoilerType
497
- // --------------------------------------------------------------------------------
498
- const boilerType = namespace.addObjectType({
499
- browseName: "BoilerType",
500
- eventNotifier: 0x1
501
- }) as BoilerType;
502
-
503
- // BoilerType.CustomController (CustomControllerType)
504
- const customController = customControllerType.instantiate({
505
- browseName: "CustomController",
506
- componentOf: boilerType,
507
- modellingRule: "Mandatory"
508
- }) as CustomController;
509
-
510
- // BoilerType.FlowController (FlowController)
511
- const flowController = flowControllerType.instantiate({
512
- browseName: "FlowController",
513
- componentOf: boilerType,
514
- modellingRule: "Mandatory"
515
- }) as FlowController;
516
-
517
- // BoilerType.LevelController (LevelControllerType)
518
- const levelController = levelControllerType.instantiate({
519
- browseName: "LevelController",
520
- componentOf: boilerType,
521
- modellingRule: "Mandatory"
522
- }) as LevelController;
523
-
524
- // BoilerType.LevelIndicator (BoilerInputPipeType)
525
- const inputPipe = boilerInputPipeType.instantiate({
526
- browseName: "InputPipe",
527
- componentOf: boilerType,
528
- modellingRule: "Mandatory",
529
- notifierOf: boilerType
530
- }) as BoilerInputPipe;
531
-
532
- // BoilerType.BoilerDrum (BoilerDrumType)
533
- const boilerDrum = boilerDrumType.instantiate({
534
- browseName: "BoilerDrum",
535
- componentOf: boilerType,
536
- modellingRule: "Mandatory",
537
- notifierOf: boilerType
538
- }) as BoilerDrum;
539
-
540
- // BoilerType.OutputPipe (BoilerOutputPipeType)
541
- const outputPipe = boilerOutputPipeType.instantiate({
542
- browseName: "OutputPipe",
543
- componentOf: boilerType,
544
- modellingRule: "Mandatory",
545
- notifierOf: boilerType
546
- }) as BoilerOutputPipe;
547
-
548
- // BoilerType.Simulation (BoilerStateMachineType)
549
- const simulation = boilerStateMachineType.instantiate({
550
- browseName: "Simulation",
551
- componentOf: boilerType,
552
- eventSourceOf: boilerType,
553
- modellingRule: "Mandatory"
554
- }) as BoilerStateMachine;
555
-
556
- addRelation(inputPipe, flowTo, boilerDrum);
557
- addRelation(boilerDrum, hotFlowTo, outputPipe);
558
-
559
- assert(boilerType.inputPipe.flowTransmitter);
560
- assert(boilerType.inputPipe.flowTransmitter.output);
561
- assert(boilerType.flowController.measurement);
562
-
563
- addRelation(boilerType.inputPipe.flowTransmitter.output, signalTo, boilerType.flowController.measurement);
564
- addRelation(boilerType.inputPipe.flowTransmitter.output, signalTo, boilerType.customController.input2);
565
- addRelation(boilerType.flowController.controlOut, signalTo, boilerType.inputPipe.valve.input);
566
-
567
- // indicates that the level controller gets its measurement from the drum's level indicator.
568
- addRelation(boilerType.boilerDrum.levelIndicator.output, signalTo, boilerType.levelController.measurement);
569
-
570
- addRelation(boilerType.outputPipe.flowTransmitter.output, signalTo, boilerType.customController.input3);
571
-
572
- addRelation(boilerType.levelController.controlOut, signalTo, boilerType.customController.input1);
573
-
574
- addRelation(boilerType.customController.controlOut, signalTo, boilerType.flowController.setPoint);
575
-
576
- return boilerType;
577
- }
578
-
579
- export function makeBoiler(
580
- addressSpace: AddressSpace,
581
- options: {
582
- browseName: string;
583
- organizedBy: BaseNode;
584
- }
585
- ): Boiler {
586
- const namespace = addressSpace.getOwnNamespace();
587
-
588
- assert(options);
589
- let boilerType: UAObjectType | null;
590
- boilerType = namespace.findObjectType("BoilerType");
591
-
592
- // istanbul ignore next
593
- if (!boilerType) {
594
- createBoilerType(namespace);
595
- boilerType = namespace.findObjectType("BoilerType")!;
596
- }
597
- // now instantiate boiler
598
- const boiler1 = boilerType.instantiate({
599
- browseName: options.browseName,
600
- organizedBy: addressSpace.rootFolder.objects
601
- }) as Boiler;
602
-
603
- promoteToStateMachine(boiler1.simulation);
604
-
605
- const boilerStateMachine = boiler1.simulation;
606
- const readyState = boilerStateMachine.getStateByName("Ready")!;
607
- boilerStateMachine.setState(readyState);
608
-
609
- return boiler1;
610
- }