node-opcua-address-space 2.76.1 → 2.76.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 (289) 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 +33 -33
  8. package/dist/source/helpers/argument_list.js +258 -258
  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 -0
  12. package/dist/source/helpers/check_event_clause.js +53 -0
  13. package/dist/source/helpers/check_event_clause.js.map +1 -0
  14. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  15. package/dist/source/helpers/coerce_enum_value.js +33 -33
  16. package/dist/source/helpers/dump_tools.d.ts +14 -14
  17. package/dist/source/helpers/dump_tools.js +78 -78
  18. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  19. package/dist/source/helpers/ensure_secure_access.js +76 -76
  20. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  21. package/dist/source/helpers/make_optionals_map.js +29 -29
  22. package/dist/source/helpers/multiform_func.d.ts +11 -11
  23. package/dist/source/helpers/multiform_func.js +75 -75
  24. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  25. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  26. package/dist/source/index.d.ts +56 -56
  27. package/dist/source/index.js +83 -83
  28. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
  29. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  30. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
  31. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
  32. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
  33. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
  34. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
  35. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
  36. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
  44. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
  45. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
  46. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
  47. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
  48. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
  49. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
  50. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
  51. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
  52. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
  53. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
  54. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
  55. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
  56. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
  57. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
  58. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +42 -42
  59. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
  60. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
  61. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
  62. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
  63. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
  64. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
  65. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
  66. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
  67. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
  68. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
  69. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
  70. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
  71. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
  72. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  73. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  74. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  75. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  76. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  77. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  78. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  79. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  80. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  81. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  82. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  83. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  84. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  85. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  86. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
  87. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
  88. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  89. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  90. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  91. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  92. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  93. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  94. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  95. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  96. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  97. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  98. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  99. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  100. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  101. package/dist/source/loader/load_nodeset2.js +1461 -1461
  102. package/dist/source/loader/make_semver_compatible.d.ts +6 -6
  103. package/dist/source/loader/make_semver_compatible.js +25 -25
  104. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  105. package/dist/source/loader/make_xml_extension_object_parser.js +325 -325
  106. package/dist/source/loader/namespace_post_step.d.ts +10 -10
  107. package/dist/source/loader/namespace_post_step.js +61 -61
  108. package/dist/source/loader/register_node_promoter.d.ts +2 -2
  109. package/dist/source/loader/register_node_promoter.js +9 -9
  110. package/dist/source/namespace.d.ts +6 -6
  111. package/dist/source/namespace.js +2 -2
  112. package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
  113. package/dist/source/namespace_alarm_and_condition.js +2 -2
  114. package/dist/source/namespace_data_access.d.ts +42 -42
  115. package/dist/source/namespace_data_access.js +2 -2
  116. package/dist/source/namespace_machine_state.d.ts +7 -7
  117. package/dist/source/namespace_machine_state.js +2 -2
  118. package/dist/source/pseudo_session.d.ts +55 -55
  119. package/dist/source/pseudo_session.js +203 -203
  120. package/dist/source/session_context.d.ts +111 -111
  121. package/dist/source/session_context.js +265 -265
  122. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  123. package/dist/source/set_namespace_meta_data.js +59 -59
  124. package/dist/source/ua_root_folder.d.ts +9 -9
  125. package/dist/source/ua_root_folder.js +2 -2
  126. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  127. package/dist/source/ua_two_state_variable_ex.js +2 -2
  128. package/dist/source/xml_writer.d.ts +9 -9
  129. package/dist/source/xml_writer.js +2 -2
  130. package/dist/src/address_space.d.ts +392 -392
  131. package/dist/src/address_space.js +1392 -1392
  132. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  133. package/dist/src/address_space_change_event_tools.js +149 -149
  134. package/dist/src/address_space_private.d.ts +43 -43
  135. package/dist/src/address_space_private.js +2 -2
  136. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -0
  137. package/dist/src/alarms_and_conditions/check_where_clause.js +110 -0
  138. package/dist/src/alarms_and_conditions/check_where_clause.js.map +1 -0
  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.d.ts +27 -0
  142. package/dist/src/alarms_and_conditions/condition_info.js +55 -0
  143. package/dist/src/alarms_and_conditions/condition_info.js.map +1 -0
  144. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
  145. package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
  146. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -0
  147. package/dist/src/alarms_and_conditions/condition_snapshot.js +667 -0
  148. package/dist/src/alarms_and_conditions/condition_snapshot.js.map +1 -0
  149. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
  150. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
  151. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
  152. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -61
  153. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -0
  154. package/dist/src/alarms_and_conditions/extract_event_fields.js +90 -0
  155. package/dist/src/alarms_and_conditions/extract_event_fields.js.map +1 -0
  156. package/dist/src/alarms_and_conditions/index.d.ts +16 -16
  157. package/dist/src/alarms_and_conditions/index.js +32 -32
  158. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
  159. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  160. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
  161. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -419
  162. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
  163. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  164. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
  165. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
  166. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +153 -153
  167. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
  168. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
  169. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
  170. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
  171. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  172. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
  173. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  174. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
  175. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  176. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
  177. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  178. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
  179. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  180. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
  181. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  182. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
  183. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  184. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
  185. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -166
  186. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
  187. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  188. package/dist/src/apply_condition_refresh.d.ts +6 -6
  189. package/dist/src/apply_condition_refresh.js +27 -27
  190. package/dist/src/base_node_impl.d.ts +281 -281
  191. package/dist/src/base_node_impl.js +1395 -1395
  192. package/dist/src/base_node_private.d.ts +61 -61
  193. package/dist/src/base_node_private.js +705 -705
  194. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  195. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  196. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  197. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  198. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  199. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  200. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -0
  201. package/dist/src/data_access/ua_multistate_value_discrete.js +250 -0
  202. package/dist/src/data_access/ua_multistate_value_discrete.js.map +1 -0
  203. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +51 -51
  204. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +249 -249
  205. package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -0
  206. package/dist/src/data_access/ua_two_state_discrete.js +154 -0
  207. package/dist/src/data_access/ua_two_state_discrete.js.map +1 -0
  208. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
  209. package/dist/src/data_access/ua_two_state_discrete_impl.js +153 -153
  210. package/dist/src/event_data.d.ts +34 -34
  211. package/dist/src/event_data.js +64 -64
  212. package/dist/src/extension_object_array_node.d.ts +61 -61
  213. package/dist/src/extension_object_array_node.js +276 -276
  214. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  215. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  216. package/dist/src/index_current.d.ts +43 -43
  217. package/dist/src/index_current.js +74 -74
  218. package/dist/src/namespace_impl.d.ts +461 -461
  219. package/dist/src/namespace_impl.js +1732 -1732
  220. package/dist/src/namespace_private.d.ts +21 -21
  221. package/dist/src/namespace_private.js +32 -32
  222. package/dist/src/nodeid_manager.d.ts +36 -36
  223. package/dist/src/nodeid_manager.js +197 -197
  224. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  225. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  226. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  227. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  228. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  229. package/dist/src/nodeset_tools/nodeset_to_xml.js +1155 -1155
  230. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  231. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  232. package/dist/src/reference_impl.d.ts +43 -43
  233. package/dist/src/reference_impl.js +139 -139
  234. package/dist/src/role_permissions.d.ts +2 -2
  235. package/dist/src/role_permissions.js +10 -10
  236. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  237. package/dist/src/state_machine/finite_state_machine.js +353 -353
  238. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
  239. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  240. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  241. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  242. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  243. package/dist/src/tool_isSupertypeOf.js +108 -108
  244. package/dist/src/ua_condition_type.d.ts +8 -8
  245. package/dist/src/ua_condition_type.js +2 -2
  246. package/dist/src/ua_data_type_impl.d.ts +93 -93
  247. package/dist/src/ua_data_type_impl.js +371 -371
  248. package/dist/src/ua_method_impl.d.ts +41 -41
  249. package/dist/src/ua_method_impl.js +208 -208
  250. package/dist/src/ua_object_impl.d.ts +35 -35
  251. package/dist/src/ua_object_impl.js +161 -161
  252. package/dist/src/ua_object_type_impl.d.ts +48 -48
  253. package/dist/src/ua_object_type_impl.js +124 -124
  254. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  255. package/dist/src/ua_reference_type_impl.js +139 -139
  256. package/dist/src/ua_variable_impl.d.ts +351 -351
  257. package/dist/src/ua_variable_impl.js +1604 -1604
  258. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  259. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  260. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  261. package/dist/src/ua_variable_type_impl.js +570 -570
  262. package/dist/src/ua_view_impl.d.ts +19 -19
  263. package/dist/src/ua_view_impl.js +43 -43
  264. package/distHelpers/add_event_generator_object.d.ts +3 -3
  265. package/distHelpers/add_event_generator_object.js +64 -64
  266. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
  267. package/distHelpers/alarms_and_conditions_demo.js +115 -115
  268. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  269. package/distHelpers/assertHasMatchingReference.js +40 -40
  270. package/distHelpers/boiler_system.d.ts +113 -113
  271. package/distHelpers/boiler_system.js +395 -395
  272. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  273. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  274. package/distHelpers/date_utils.d.ts +3 -3
  275. package/distHelpers/date_utils.js +9 -9
  276. package/distHelpers/dump_statemachine.js +127 -127
  277. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  278. package/distHelpers/get_address_space_fixture.js +30 -30
  279. package/distHelpers/get_mini_address_space.d.ts +7 -7
  280. package/distHelpers/get_mini_address_space.js +36 -36
  281. package/distHelpers/index.d.ts +12 -12
  282. package/distHelpers/index.js +28 -28
  283. package/distHelpers/mock_session.d.ts +14 -14
  284. package/distHelpers/mock_session.js +25 -25
  285. package/distNodeJS/generate_address_space.d.ts +4 -4
  286. package/distNodeJS/generate_address_space.js +41 -41
  287. package/distNodeJS/index.d.ts +1 -1
  288. package/distNodeJS/index.js +17 -17
  289. package/package.json +36 -35
@@ -0,0 +1,667 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConditionSnapshot = void 0;
4
+ /**
5
+ * @module node-opcua-address-space.AlarmsAndConditions
6
+ */
7
+ const events_1 = require("events");
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_debug_1 = require("node-opcua-debug");
11
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
12
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
13
+ const node_opcua_types_1 = require("node-opcua-types");
14
+ const utils = require("node-opcua-utils");
15
+ const node_opcua_variant_1 = require("node-opcua-variant");
16
+ const event_data_1 = require("../event_data");
17
+ const ua_two_state_variable_1 = require("../state_machine/ua_two_state_variable");
18
+ const condition_1 = require("./condition");
19
+ const ua_condition_impl_1 = require("./ua_condition_impl");
20
+ const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
21
+ const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
22
+ function normalizeName(str) {
23
+ return str.split(".").map(utils.lowerFirstLetter).join(".");
24
+ }
25
+ function _visit(self, node, prefix) {
26
+ const aggregates = node.getAggregates();
27
+ for (const aggregate of aggregates) {
28
+ if (aggregate.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
29
+ let name = aggregate.browseName.toString();
30
+ name = utils.lowerFirstLetter(name);
31
+ const key = prefix + name;
32
+ // istanbul ignore next
33
+ if (doDebug) {
34
+ debugLog("adding key =", key);
35
+ }
36
+ const aggregateVariable = aggregate;
37
+ self._map[key] = aggregateVariable.readValue().value;
38
+ self._node_index[key] = aggregateVariable;
39
+ _visit(self, aggregate, prefix + name + ".");
40
+ }
41
+ }
42
+ }
43
+ function _record_condition_state(self, condition) {
44
+ self._map = {};
45
+ self._node_index = {};
46
+ (0, node_opcua_assert_1.assert)(condition instanceof ua_condition_impl_1.UAConditionImpl);
47
+ _visit(self, condition, "");
48
+ }
49
+ function _installOnChangeEventHandlers(self, node, prefix) {
50
+ const aggregates = node.getAggregates();
51
+ for (const aggregate of aggregates) {
52
+ if (aggregate.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
53
+ let name = aggregate.browseName.toString();
54
+ name = utils.lowerFirstLetter(name);
55
+ const key = prefix + name;
56
+ // istanbul ignore next
57
+ if (doDebug) {
58
+ debugLog("adding key =", key);
59
+ }
60
+ aggregate.on("value_changed", (newDataValue) => {
61
+ self._map[key] = newDataValue.value;
62
+ self._node_index[key] = aggregate;
63
+ });
64
+ _installOnChangeEventHandlers(self, aggregate, prefix + name + ".");
65
+ }
66
+ }
67
+ }
68
+ function _ensure_condition_values_correctness(self, node, prefix, error) {
69
+ const displayError = !!error;
70
+ error = error || [];
71
+ const aggregates = node.getAggregates();
72
+ for (const aggregate of aggregates) {
73
+ if (aggregate.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
74
+ let name = aggregate.browseName.toString();
75
+ name = utils.lowerFirstLetter(name);
76
+ const key = prefix + name;
77
+ const snapshot_value = self._map[key].toString();
78
+ const aggregateVariable = aggregate;
79
+ const condition_value = aggregateVariable.readValue().value.toString();
80
+ if (snapshot_value !== condition_value) {
81
+ error.push(" Condition Branch0 is not in sync with node values for " +
82
+ key +
83
+ "\n v1= " +
84
+ snapshot_value +
85
+ "\n v2= " +
86
+ condition_value);
87
+ }
88
+ self._node_index[key] = aggregate;
89
+ _ensure_condition_values_correctness(self, aggregate, prefix + name + ".", error);
90
+ }
91
+ }
92
+ if (displayError && error.length) {
93
+ throw new Error(error.join("\n"));
94
+ }
95
+ }
96
+ const disabledVar = new node_opcua_variant_1.Variant({
97
+ dataType: "StatusCode",
98
+ value: node_opcua_status_code_1.StatusCodes.BadConditionDisabled
99
+ });
100
+ // list of Condition variables that should not be published as BadConditionDisabled when the condition
101
+ // is in a disabled state.
102
+ const _varTable = {
103
+ branchId: 1,
104
+ conditionClassId: 1,
105
+ conditionClassName: 1,
106
+ conditionName: 1,
107
+ enabledState: 1,
108
+ "enabledState.effectiveDisplayName": 1,
109
+ "enabledState.id": 1,
110
+ "enabledState.transitionTime": 1,
111
+ eventId: 1,
112
+ eventType: 1,
113
+ localTime: 1,
114
+ sourceName: 1,
115
+ sourceNode: 1,
116
+ time: 1
117
+ };
118
+ class ConditionSnapshot extends events_1.EventEmitter {
119
+ /**
120
+ * @class ConditionSnapshot
121
+ * @extends EventEmitter
122
+ * @param condition
123
+ * @param branchId
124
+ * @constructor
125
+ */
126
+ constructor(condition, branchId) {
127
+ super();
128
+ this.eventData = null;
129
+ this.branchId = null;
130
+ this._map = {};
131
+ this._node_index = {};
132
+ (0, node_opcua_assert_1.assert)(branchId instanceof node_opcua_nodeid_1.NodeId);
133
+ // xx self.branchId = branchId;
134
+ this.condition = condition;
135
+ this.eventData = new event_data_1.EventData(condition);
136
+ // a nodeId/Variant map
137
+ _record_condition_state(this, condition);
138
+ if ((0, node_opcua_nodeid_1.sameNodeId)(branchId, node_opcua_nodeid_1.NodeId.nullNodeId)) {
139
+ _installOnChangeEventHandlers(this, condition, "");
140
+ }
141
+ this._set_var("branchId", node_opcua_variant_1.DataType.NodeId, branchId);
142
+ }
143
+ _constructEventData() {
144
+ if (this.branchId && (0, node_opcua_nodeid_1.sameNodeId)(this.branchId, node_opcua_nodeid_1.NodeId.nullNodeId)) {
145
+ _ensure_condition_values_correctness(this, this.condition, "", []);
146
+ }
147
+ const c = this.condition;
148
+ const isDisabled = !c.getEnabledState();
149
+ const eventData = new event_data_1.EventData(this.condition);
150
+ for (const key of Object.keys(this._map)) {
151
+ const node = this._node_index[key];
152
+ if (!node) {
153
+ debugLog("cannot node for find key", key);
154
+ continue;
155
+ }
156
+ if (isDisabled && !Object.prototype.hasOwnProperty.call(_varTable, key)) {
157
+ eventData.setValue(key, node, disabledVar);
158
+ }
159
+ else {
160
+ eventData.setValue(key, node, this._map[key]);
161
+ }
162
+ }
163
+ return eventData;
164
+ }
165
+ /**
166
+ * @method resolveSelectClause
167
+ * @param selectClause {SelectClause}
168
+ */
169
+ resolveSelectClause(selectClause) {
170
+ var _a;
171
+ return ((_a = this.eventData) === null || _a === void 0 ? void 0 : _a.resolveSelectClause(selectClause)) || null;
172
+ }
173
+ /**
174
+ *
175
+ */
176
+ readValue(sessionContext, nodeId, selectClause) {
177
+ var _a;
178
+ const c = this.condition;
179
+ const isDisabled = !c.getEnabledState();
180
+ if (isDisabled) {
181
+ return disabledVar;
182
+ }
183
+ const key = nodeId.toString();
184
+ const variant = this._map[key];
185
+ if (!variant) {
186
+ // the value is not handled by us .. let's delegate
187
+ // to the eventData helper object
188
+ return ((_a = this.eventData) === null || _a === void 0 ? void 0 : _a.readValue(sessionContext, nodeId, selectClause)) || disabledVar;
189
+ }
190
+ return variant;
191
+ }
192
+ _get_var(varName) {
193
+ const c = this.condition;
194
+ if (!c.getEnabledState() && !Object.prototype.hasOwnProperty.call(_varTable, varName)) {
195
+ // xx console.log("ConditionSnapshot#_get_var condition enabled =", self.condition.getEnabledState());
196
+ return disabledVar;
197
+ }
198
+ const key = normalizeName(varName);
199
+ const variant = this._map[key];
200
+ return variant.value;
201
+ }
202
+ _set_var(varName, dataType, value) {
203
+ const key = normalizeName(varName);
204
+ // istanbul ignore next
205
+ if (!Object.prototype.hasOwnProperty.call(this._map, key)) {
206
+ if (doDebug) {
207
+ debugLog(" cannot find node " + varName);
208
+ debugLog(" map=", Object.keys(this._map).join(" "));
209
+ }
210
+ }
211
+ this._map[key] = new node_opcua_variant_1.Variant({
212
+ dataType,
213
+ value
214
+ });
215
+ if (this._map[key + ".sourceTimestamp"]) {
216
+ this._map[key + ".sourceTimestamp"] = new node_opcua_variant_1.Variant({
217
+ dataType: node_opcua_variant_1.DataType.DateTime,
218
+ value: new Date()
219
+ });
220
+ }
221
+ const variant = this._map[key];
222
+ const node = this._node_index[key];
223
+ if (!node) {
224
+ // for instance localTime is optional
225
+ debugLog("Cannot serVar " + varName + " dataType " + node_opcua_variant_1.DataType[dataType]);
226
+ return;
227
+ }
228
+ (0, node_opcua_assert_1.assert)(node.nodeClass === node_opcua_data_model_1.NodeClass.Variable);
229
+ this.emit("value_changed", node, variant);
230
+ }
231
+ /**
232
+ * @method getBrandId
233
+ * @return {NodeId}
234
+ */
235
+ getBranchId() {
236
+ return this._get_var("branchId");
237
+ }
238
+ /**
239
+ * @method getEventId
240
+ * @return {ByteString}
241
+ */
242
+ getEventId() {
243
+ return this._get_var("eventId");
244
+ }
245
+ /**
246
+ * @method getRetain
247
+ * @return {Boolean}
248
+ */
249
+ getRetain() {
250
+ return this._get_var("retain");
251
+ }
252
+ /**
253
+ *
254
+ * @method setRetain
255
+ * @param retainFlag {Boolean}
256
+ */
257
+ setRetain(retainFlag) {
258
+ retainFlag = !!retainFlag;
259
+ return this._set_var("retain", node_opcua_variant_1.DataType.Boolean, retainFlag);
260
+ }
261
+ /**
262
+ * @method renewEventId
263
+ *
264
+ */
265
+ renewEventId() {
266
+ const addressSpace = this.condition.addressSpace;
267
+ // create a new event Id for this new condition
268
+ const eventId = addressSpace.generateEventId();
269
+ const ret = this._set_var("eventId", node_opcua_variant_1.DataType.ByteString, eventId.value);
270
+ // xx var branch = self; console.log("MMMMMMMMrenewEventId branch " +
271
+ // branch.getBranchId().toString() + " eventId = " + branch.getEventId().toString("hex"));
272
+ return ret;
273
+ }
274
+ /**
275
+ * @method getEnabledState
276
+ * @return {Boolean}
277
+ */
278
+ getEnabledState() {
279
+ return this._get_twoStateVariable("enabledState");
280
+ }
281
+ /**
282
+ * @method setEnabledState
283
+ * @param value {Boolean}
284
+ * @return void
285
+ */
286
+ setEnabledState(value) {
287
+ return this._set_twoStateVariable("enabledState", value);
288
+ }
289
+ /**
290
+ * @method getEnabledStateAsString
291
+ * @return {String}
292
+ */
293
+ getEnabledStateAsString() {
294
+ return this._get_var("enabledState").text;
295
+ }
296
+ /**
297
+ * @method getComment
298
+ * @return {LocalizedText}
299
+ */
300
+ getComment() {
301
+ return this._get_var("comment");
302
+ }
303
+ /**
304
+ * Set condition comment
305
+ *
306
+ * Comment contains the last comment provided for a certain state (ConditionBranch). It may
307
+ * have been provided by an AddComment Method, some other Method or in some other
308
+ * manner. The initial value of this Variable is null, unless it is provided in some other manner. If
309
+ * a Method provides as an option the ability to set a Comment, then the value of this Variable is
310
+ * reset to null if an optional comment is not provided.
311
+ *
312
+ * @method setComment
313
+ * @param txtMessage {LocalizedText}
314
+ */
315
+ setComment(txtMessage) {
316
+ const txtMessage1 = (0, node_opcua_data_model_1.coerceLocalizedText)(txtMessage);
317
+ this._set_var("comment", node_opcua_variant_1.DataType.LocalizedText, txtMessage1);
318
+ }
319
+ /**
320
+ *
321
+ * @method setMessage
322
+ * @param txtMessage {LocalizedText}
323
+ */
324
+ setMessage(txtMessage) {
325
+ const txtMessage1 = (0, node_opcua_data_model_1.coerceLocalizedText)(txtMessage);
326
+ return this._set_var("message", node_opcua_variant_1.DataType.LocalizedText, txtMessage1);
327
+ }
328
+ /**
329
+ * @method setClientUserId
330
+ * @param userIdentity {String}
331
+ */
332
+ setClientUserId(userIdentity) {
333
+ return this._set_var("clientUserId", node_opcua_variant_1.DataType.String, userIdentity.toString());
334
+ }
335
+ /*
336
+ *
337
+ *
338
+ * as per spec 1.0.3 - Part 9
339
+ *
340
+ * Quality reveals the status of process values or other resources that this Condition instance is
341
+ * based upon. If, for example, a process value is “Uncertain”, the associated “LevelAlarm”
342
+ * Condition is also questionable. Values for the Quality can be any of the OPC StatusCodes
343
+ * defined in Part 8 as well as Good, Uncertain and Bad as defined in Part 4. These
344
+ * StatusCodes are similar to but slightly more generic than the description of data quality in the
345
+ * various field bus specifications. It is the responsibility of the Server to map internal status
346
+ * information to these codes. A Server which supports no quality information shall return Good.
347
+ * This quality can also reflect the communication status associated with the system that this
348
+ * value or resource is based on and from which this Alarm was received. For communication
349
+ * errors to the underlying system, especially those that result in some unavailable Event fields,
350
+ * the quality shall be BadNoCommunication error.
351
+ *
352
+ * Quality refers to the quality of the data value(s) upon which this Condition is based. Since a
353
+ * Condition is usually based on one or more Variables, the Condition inherits the quality of
354
+ * these Variables. E.g., if the process value is “Uncertain”, the “LevelAlarm” Condition is also
355
+ * questionable. If more than one variable is represented by a given condition or if the condition
356
+ * is from an underlining system and no direct mapping to a variable is available, it is up to the
357
+ * application to determine what quality is displayed as part of the condition.
358
+ */
359
+ /**
360
+ * set the condition quality
361
+ * @method setQuality
362
+ * @param quality {StatusCode}
363
+ */
364
+ setQuality(quality) {
365
+ this._set_var("quality", node_opcua_variant_1.DataType.StatusCode, quality);
366
+ }
367
+ /**
368
+ * @method getQuality
369
+ * @return {StatusCode}
370
+ */
371
+ getQuality() {
372
+ return this._get_var("quality");
373
+ }
374
+ /*
375
+ * as per spec 1.0.3 - Part 9
376
+ * The Severity of a Condition is inherited from the base Event model defined in Part 5. It
377
+ * indicates the urgency of the Condition and is also commonly called ‘priority’, especially in
378
+ * relation to Alarms in the ProcessConditionClass.
379
+ *
380
+ * as per spec 1.0.3 - PArt 5
381
+ * Severity is an indication of the urgency of the Event. This is also commonly called “priority”.
382
+ * Values will range from 1 to 1 000, with 1 being the lowest severity and 1 000 being the highest.
383
+ * Typically, a severity of 1 would indicate an Event which is informational in nature, while a value
384
+ * of 1 000 would indicate an Event of catastrophic nature, which could potentially result in severe
385
+ * financial loss or loss of life.
386
+ * It is expected that very few Server implementations will support 1 000 distinct severity levels.
387
+ * Therefore, Server developers are responsible for distributing their severity levels across the
388
+ * 1 to 1 000 range in such a manner that clients can assume a linear distribution. For example, a
389
+ * client wishing to present five severity levels to a user should be able to do the following
390
+ * mapping:
391
+ * Client Severity OPC Severity
392
+ * HIGH 801 – 1 000
393
+ * MEDIUM HIGH 601 – 800
394
+ * MEDIUM 401 – 600
395
+ * MEDIUM LOW 201 – 400
396
+ * LOW 1 – 200
397
+ * In many cases a strict linear mapping of underlying source severities to the OPC Severity range
398
+ * is not appropriate. The Server developer will instead intelligently map the underlying source
399
+ * severities to the 1 to 1 000 OPC Severity range in some other fashion. In particular, it is
400
+ * recommended that Server developers map Events of high urgency into the OPC severity range
401
+ * of 667 to 1 000, Events of medium urgency into the OPC severity range of 334 to 666 and
402
+ * Events of low urgency into OPC severities of 1 to 333.
403
+ */
404
+ /**
405
+ * @method setSeverity
406
+ * @param severity {UInt16}
407
+ */
408
+ setSeverity(severity) {
409
+ (0, node_opcua_assert_1.assert)(isFinite(severity), "expecting a UInt16");
410
+ // record automatically last severity
411
+ const lastSeverity = this.getSeverity();
412
+ this.setLastSeverity(lastSeverity);
413
+ this._set_var("severity", node_opcua_variant_1.DataType.UInt16, severity);
414
+ }
415
+ /**
416
+ * @method getSeverity
417
+ * @return {UInt16}
418
+ */
419
+ getSeverity() {
420
+ const c = this.condition;
421
+ (0, node_opcua_assert_1.assert)(c.getEnabledState(), "condition must be enabled");
422
+ const value = this._get_var("severity");
423
+ return +value;
424
+ }
425
+ /*
426
+ * as per spec 1.0.3 - part 9:
427
+ * LastSeverity provides the previous severity of the ConditionBranch. Initially this Variable
428
+ * contains a zero value; it will return a value only after a severity change. The new severity is
429
+ * supplied via the Severity Property which is inherited from the BaseEventType.
430
+ *
431
+ */
432
+ /**
433
+ * @method setLastSeverity
434
+ * @param severity {UInt16}
435
+ */
436
+ setLastSeverity(severity) {
437
+ severity = +severity;
438
+ return this._set_var("lastSeverity", node_opcua_variant_1.DataType.UInt16, severity);
439
+ }
440
+ /**
441
+ * @method getLastSeverity
442
+ * @return {UInt16}
443
+ */
444
+ getLastSeverity() {
445
+ const value = this._get_var("lastSeverity");
446
+ return +value;
447
+ }
448
+ /**
449
+ * setReceiveTime
450
+ *
451
+ * (as per OPCUA 1.0.3 part 5)
452
+ *
453
+ * ReceiveTime provides the time the OPC UA Server received the Event from the underlying
454
+ * device of another Server.
455
+ *
456
+ * ReceiveTime is analogous to ServerTimestamp defined in Part 4, i.e.
457
+ * in the case where the OPC UA Server gets an Event from another OPC UA Server, each Server
458
+ * applies its own ReceiveTime. That implies that a Client may get the same Event, having the
459
+ * same EventId, from different Servers having different values of the ReceiveTime.
460
+ *
461
+ * The ReceiveTime shall always be returned as value and the Server is not allowed to return a
462
+ * StatusCode for the ReceiveTime indicating an error.
463
+ *
464
+ * @method setReceiveTime
465
+ * @param time {Date} : UTCTime
466
+ */
467
+ setReceiveTime(time) {
468
+ (0, node_opcua_assert_1.assert)(time instanceof Date);
469
+ return this._set_var("receiveTime", node_opcua_variant_1.DataType.DateTime, time);
470
+ }
471
+ /**
472
+ * (as per OPCUA 1.0.3 part 5)
473
+ * Time provides the time the Event occurred. This value is set as close to the event generator as
474
+ * possible. It often comes from the underlying system or device. Once set, intermediate OPC UA
475
+ * Servers shall not alter the value.
476
+ *
477
+ * @method setTime
478
+ * @param time {Date}
479
+ */
480
+ setTime(time) {
481
+ (0, node_opcua_assert_1.assert)(time instanceof Date);
482
+ return this._set_var("time", node_opcua_variant_1.DataType.DateTime, time);
483
+ }
484
+ /**
485
+ * LocalTime is a structure containing the Offset and the DaylightSavingInOffset flag. The Offset
486
+ * specifies the time difference (in minutes) between the Time Property and the time at the location
487
+ * in which the event was issued. If DaylightSavingInOffset is TRUE, then Standard/Daylight
488
+ * savings time (DST) at the originating location is in effect and Offset includes the DST c orrection.
489
+ * If FALSE then the Offset does not include DST correction and DST may or may not have been
490
+ * in effect.
491
+ * @method setLocalTime
492
+ * @param localTime {TimeZone}
493
+ */
494
+ setLocalTime(localTime) {
495
+ (0, node_opcua_assert_1.assert)(localTime instanceof node_opcua_types_1.TimeZoneDataType);
496
+ return this._set_var("localTime", node_opcua_variant_1.DataType.ExtensionObject, new node_opcua_types_1.TimeZoneDataType(localTime));
497
+ }
498
+ // read only !
499
+ getSourceName() {
500
+ return this._get_var("sourceName");
501
+ }
502
+ /**
503
+ * @method getSourceNode
504
+ * return {NodeId}
505
+ */
506
+ getSourceNode() {
507
+ return this._get_var("sourceNode");
508
+ }
509
+ /**
510
+ * @method getEventType
511
+ * return {NodeId}
512
+ */
513
+ getEventType() {
514
+ return this._get_var("eventType");
515
+ }
516
+ getMessage() {
517
+ return this._get_var("message");
518
+ }
519
+ isCurrentBranch() {
520
+ return (0, node_opcua_nodeid_1.sameNodeId)(this._get_var("branchId"), node_opcua_nodeid_1.NodeId.nullNodeId);
521
+ }
522
+ // -- ACKNOWLEDGEABLE -------------------------------------------------------------------
523
+ getAckedState() {
524
+ const acknowledgeableCondition = this.condition;
525
+ if (!acknowledgeableCondition.ackedState) {
526
+ throw new Error("Node " +
527
+ acknowledgeableCondition.browseName.toString() +
528
+ " of type " +
529
+ acknowledgeableCondition.typeDefinitionObj.browseName.toString() +
530
+ " has no AckedState");
531
+ }
532
+ return this._get_twoStateVariable("ackedState");
533
+ }
534
+ setAckedState(ackedState) {
535
+ ackedState = !!ackedState;
536
+ return (0, condition_1._setAckedState)(this, ackedState);
537
+ }
538
+ getConfirmedState() {
539
+ const acknowledgeableCondition = this.condition;
540
+ (0, node_opcua_assert_1.assert)(acknowledgeableCondition.confirmedState, "Must have a confirmed state");
541
+ return this._get_twoStateVariable("confirmedState");
542
+ }
543
+ setConfirmedStateIfExists(confirmedState) {
544
+ confirmedState = !!confirmedState;
545
+ const acknowledgeableCondition = this.condition;
546
+ if (!acknowledgeableCondition.confirmedState) {
547
+ // no condition node has been defined (this is valid)
548
+ // confirm state cannot be set
549
+ return;
550
+ }
551
+ // todo deal with Error code BadConditionBranchAlreadyConfirmed
552
+ return this._set_twoStateVariable("confirmedState", confirmedState);
553
+ }
554
+ setConfirmedState(confirmedState) {
555
+ const acknowledgeableCondition = this.condition;
556
+ (0, node_opcua_assert_1.assert)(acknowledgeableCondition.confirmedState, "Must have a confirmed state. Add ConfirmedState to the optionals");
557
+ return this.setConfirmedStateIfExists(confirmedState);
558
+ }
559
+ // ---- Shelving
560
+ /**
561
+ * @class ConditionSnapshot
562
+ */
563
+ /**
564
+ * @method getSuppressedState
565
+ * @return {Boolean}
566
+ */
567
+ getSuppressedState() {
568
+ return this._get_twoStateVariable("suppressedState");
569
+ }
570
+ /**
571
+ * @method setSuppressedState
572
+ * @param suppressed {Boolean}
573
+ */
574
+ setSuppressedState(suppressed) {
575
+ suppressed = !!suppressed;
576
+ this._set_twoStateVariable("suppressedState", suppressed);
577
+ }
578
+ getActiveState() {
579
+ return this._get_twoStateVariable("activeState");
580
+ }
581
+ setActiveState(newActiveState) {
582
+ // xx var activeState = self.getActiveState();
583
+ // xx if (activeState === newActiveState) {
584
+ // xx return StatusCodes.Bad;
585
+ // xx }
586
+ this._set_twoStateVariable("activeState", newActiveState);
587
+ return node_opcua_status_code_1.StatusCodes.Good;
588
+ }
589
+ // tslint:disable:no-empty
590
+ setShelvingState() {
591
+ // todo
592
+ }
593
+ toString() {
594
+ // public condition: any = null;
595
+ // public eventData: any = null;
596
+ // public branchId: NodeId | null = null;
597
+ const t = this.condition.addressSpace.findNode(this.condition.typeDefinition);
598
+ return ("" +
599
+ "condition: " +
600
+ (this.condition.browseName.toString() + " " + this.condition.nodeId.toString()) +
601
+ ", type: " +
602
+ (t.browseName.toString() + " " + t.nodeId.toString()) +
603
+ ", branchId: " +
604
+ (this.branchId ? this.branchId.toString() : "<null>") +
605
+ ", acked: " +
606
+ this.getAckedState() +
607
+ ", confirmed: " +
608
+ this.getConfirmedState() +
609
+ ", activeState: " +
610
+ this.getActiveState() +
611
+ // + ", suppressed: " + this.getSuppressedState()
612
+ ", retain: " +
613
+ this.getRetain() +
614
+ ", message: " +
615
+ this.getMessage() +
616
+ ", comment: " +
617
+ this.getComment());
618
+ }
619
+ /**
620
+ * @class ConditionSnapshot
621
+ * @param varName
622
+ * @param value
623
+ * @private
624
+ */
625
+ _set_twoStateVariable(varName, value) {
626
+ value = !!value;
627
+ const hrKey = ConditionSnapshot.normalizeName(varName);
628
+ const idKey = ConditionSnapshot.normalizeName(varName) + ".id";
629
+ const variant = new node_opcua_variant_1.Variant({ dataType: node_opcua_variant_1.DataType.Boolean, value });
630
+ this._map[idKey] = variant;
631
+ // also change varName with human readable text
632
+ const twoStateNode = this._node_index[hrKey];
633
+ if (!twoStateNode) {
634
+ throw new Error("Cannot find twoState Variable with name " + varName);
635
+ }
636
+ if (!(twoStateNode instanceof ua_two_state_variable_1.UATwoStateVariableImpl)) {
637
+ throw new Error("Cannot find twoState Variable with name " + varName + " " + twoStateNode);
638
+ }
639
+ const hrValue = new node_opcua_variant_1.Variant({
640
+ dataType: node_opcua_variant_1.DataType.LocalizedText,
641
+ value: value ? twoStateNode.getTrueState() : twoStateNode.getFalseState()
642
+ });
643
+ this._map[hrKey] = hrValue;
644
+ const node = this._node_index[idKey];
645
+ // also change ConditionNode if we are on currentBranch
646
+ if (this.isCurrentBranch()) {
647
+ (0, node_opcua_assert_1.assert)(twoStateNode instanceof ua_two_state_variable_1.UATwoStateVariableImpl);
648
+ twoStateNode.setValue(value);
649
+ // xx console.log("Is current branch", twoStateNode.toString(),variant.toString());
650
+ // xx console.log(" = ",twoStateNode.getValue());
651
+ }
652
+ this.emit("value_changed", node, variant);
653
+ }
654
+ _get_twoStateVariable(varName) {
655
+ const key = ConditionSnapshot.normalizeName(varName) + ".id";
656
+ const variant = this._map[key];
657
+ // istanbul ignore next
658
+ if (!variant) {
659
+ return "???";
660
+ // throw new Error("Cannot find TwoStateVariable with name " + varName);
661
+ }
662
+ return variant.value;
663
+ }
664
+ }
665
+ exports.ConditionSnapshot = ConditionSnapshot;
666
+ ConditionSnapshot.normalizeName = normalizeName;
667
+ //# sourceMappingURL=condition_snapshot.js.map