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,380 +1,380 @@
1
- import { BindExtensionObjectOptions, CloneExtraInfo, ContinuationData, VariableDataValueSetterWithCallback } from "node-opcua-address-space-base";
2
- import { QualifiedNameLike, NodeClass, AccessLevelFlag, AttributeIds, QualifiedName } from "node-opcua-data-model";
3
- import { DataValue, DataValueT } from "node-opcua-data-value";
4
- import { PreciseClock } from "node-opcua-date-time";
5
- import { ExtensionObject } from "node-opcua-extension-object";
6
- import { NodeId } from "node-opcua-nodeid";
7
- import { NumericRange } from "node-opcua-numeric-range";
8
- import { StatusCode, CallbackT } from "node-opcua-status-code";
9
- import { HistoryReadDetails, HistoryReadResult, ReadAtTimeDetails, ReadEventDetails, ReadProcessedDetails, ReadRawModifiedDetails, WriteValueOptions } from "node-opcua-types";
10
- import { Variant, VariantLike, DataType } from "node-opcua-variant";
11
- import { StatusCodeCallback } from "node-opcua-status-code";
12
- import { BindVariableOptions, IVariableHistorian, TimestampGetFunc, UADataType, UAVariable, UAVariableType, CloneOptions, CloneFilter, ISessionContext, UAVariableT } from "node-opcua-address-space-base";
13
- import { UAHistoricalDataConfiguration } from "node-opcua-nodeset-ua";
14
- import { BaseNodeImpl, InternalBaseNodeOptions } from "./base_node_impl";
15
- import { EnumerationInfo, IEnumItem } from "./ua_data_type_impl";
16
- import { ConditionRefreshCache } from "./apply_condition_refresh";
17
- export declare function adjust_accessLevel(accessLevel: string | number | null): AccessLevelFlag;
18
- export declare function adjust_userAccessLevel(userAccessLevel: string | number | null | undefined, accessLevel: string | number | null): AccessLevelFlag | undefined;
19
- interface UAVariableOptions extends InternalBaseNodeOptions {
20
- value?: any;
21
- dataType: NodeId | string;
22
- /**
23
- * This attribute indicates whether the Value attribute of the Variableis an array and how many dimensions the array has.
24
- * It may have the following values:
25
- * * n > 1: the Value is an array with the specified number of dimensions.
26
- * * OneDimension (1): The value is an array with one dimension.
27
- * * OneOrMoreDimensions (0): The value is an array with one or more dimensions.
28
- * * Scalar (−1): The value is not an array.
29
- * * Any (−2): The value can be a scalar or an array with any number of dimensions.
30
- * * ScalarOrOneDimension (−3): The value can be a scalar or a one dimensional array.
31
- * * All DataTypes are considered to be scalar, even if they have array-like semantics like ByteString and String.
32
- */
33
- valueRank?: number;
34
- arrayDimensions?: null | number[];
35
- accessLevel?: any;
36
- userAccessLevel?: any;
37
- minimumSamplingInterval?: number;
38
- historizing?: number;
39
- }
40
- /**
41
- * A OPCUA Variable Node
42
- *
43
- * @class UAVariable
44
- * @constructor
45
- * @extends BaseNode
46
- * The AccessLevel Attribute is used to indicate how the Value of a Variable can be accessed (read/write) and if it
47
- * contains current and/or historic data. The AccessLevel does not take any user access rights into account,
48
- * i.e. although the Variable is writable this may be restricted to a certain user / user group.
49
- * The AccessLevel is an 8-bit unsigned integer with the structure defined in the following table:
50
- *
51
- * Field Bit Description
52
- * CurrentRead 0 Indicates if the current value is readable
53
- * (0 means not readable, 1 means readable).
54
- * CurrentWrite 1 Indicates if the current value is writable
55
- * (0 means not writable, 1 means writable).
56
- * HistoryRead 2 Indicates if the history of the value is readable
57
- * (0 means not readable, 1 means readable).
58
- * HistoryWrite 3 Indicates if the history of the value is writable (0 means not writable, 1 means writable).
59
- * SemanticChange 4 Indicates if the Variable used as Property generates SemanticChangeEvents (see 9.31).
60
- * Reserved 5:7 Reserved for future use. Shall always be zero.
61
- *
62
- * The first two bits also indicate if a current value of this Variable is available and the second two bits
63
- * indicates if the history of the Variable is available via the OPC UA server.
64
- *
65
- */
66
- export declare class UAVariableImpl extends BaseNodeImpl implements UAVariable {
67
- readonly nodeClass = NodeClass.Variable;
68
- dataType: NodeId;
69
- private _basicDataType?;
70
- $extensionObject?: any;
71
- $set_ExtensionObject?: (newValue: ExtensionObject, sourceTimestamp: PreciseClock, cache: Set<UAVariableImpl>) => void;
72
- $historicalDataConfiguration?: UAHistoricalDataConfiguration;
73
- varHistorian?: IVariableHistorian;
74
- /**
75
- * @internal @private
76
- */
77
- $dataValue: DataValue;
78
- accessLevel: number;
79
- userAccessLevel?: number;
80
- valueRank: number;
81
- minimumSamplingInterval: number;
82
- historizing: boolean;
83
- semantic_version: number;
84
- arrayDimensions: null | number[];
85
- _timestamped_get_func?: TimestampGetFunc | null;
86
- _timestamped_set_func?: VariableDataValueSetterWithCallback | null;
87
- _get_func: any;
88
- _set_func: any;
89
- refreshFunc?: (callback: CallbackT<DataValue>) => void;
90
- __waiting_callbacks?: any[];
91
- get typeDefinitionObj(): UAVariableType;
92
- get typeDefinition(): NodeId;
93
- constructor(options: UAVariableOptions);
94
- private checkAccessLevelPrivate;
95
- private checkPermissionPrivate;
96
- private checkPermissionAndAccessLevelPrivate;
97
- isReadable(context: ISessionContext): boolean;
98
- isUserReadable(context: ISessionContext): boolean;
99
- isWritable(context: ISessionContext): boolean;
100
- isUserWritable(context: ISessionContext): boolean;
101
- canUserReadHistory(context: ISessionContext): boolean;
102
- canUserWriteHistorizingAttribute(context: ISessionContext): boolean;
103
- canUserInsertHistory(context: ISessionContext): boolean;
104
- canUserModifyHistory(context: ISessionContext): boolean;
105
- canUserDeleteHistory(context: ISessionContext): boolean;
106
- /**
107
- *
108
- *
109
- * from OPC.UA.Spec 1.02 part 4
110
- * 5.10.2.4 StatusCodes
111
- * Table 51 defines values for the operation level statusCode contained in the DataValue structure of
112
- * each values element. Common StatusCodes are defined in Table 166.
113
- *
114
- * Table 51 Read Operation Level Result Codes
115
- *
116
- * | Symbolic Id | Description
117
- * |-----------------------------|---------------------------------------------------------------------------------------------|
118
- * |BadNodeIdInvalid | The syntax of the node id is not valid.|
119
- * |BadNodeIdUnknown |The node id refers to a node that does not exist in the server address space.|
120
- * |BadAttributeIdInvalid | BadAttributeIdInvalid The attribute is not supported for the specified node.|
121
- * |BadIndexRangeInvalid | The syntax of the index range parameter is invalid.|
122
- * |BadIndexRangeNoData | No data exists within the range of indexes specified.|
123
- * |BadDataEncodingInvalid | The data encoding is invalid.|
124
- * | | This result is used if no dataEncoding can be applied because an Attribute other|
125
- * | | than Value was requested or the DataType of the Value Attribute is not a subtype|
126
- * | | of the Structure DataType.|
127
- * |BadDataEncodingUnsupported | The server does not support the requested data encoding for the node. |
128
- * | | This result is used if a dataEncoding can be applied but the passed data encoding |
129
- * | | is not known to the Server. |
130
- * |BadNotReadable | The access level does not allow reading or subscribing to the Node.|
131
- * |BadUserAccessDenied | User does not have permission to perform the requested operation. (table 165)|
132
- */
133
- readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
134
- isEnumeration(): boolean;
135
- /**
136
- * return true if the DataType is of type Extension object
137
- * this is not taking into account the valueRank of the variable
138
- */
139
- isExtensionObject(): boolean;
140
- _getEnumerationInfo(): EnumerationInfo;
141
- asyncRefresh(oldestDate: Date, callback: CallbackT<DataValue>): void;
142
- asyncRefresh(oldestDate: Date): Promise<DataValue>;
143
- readEnumValue(): IEnumItem;
144
- writeEnumValue(value: string | number): void;
145
- readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
146
- getBasicDataType(): DataType;
147
- adjustVariant(variant: Variant): Variant;
148
- verifyVariantCompatibility(variant: Variant): void;
149
- /**
150
- * setValueFromSource is used to let the device sets the variable values
151
- * this method also records the current time as sourceTimestamp and serverTimestamp.
152
- . *
153
- * The method will raise an exception if the value is not compatible with the dataType and expected dimension
154
- *
155
- * @method setValueFromSource
156
- * @param variant {Variant}
157
- * @param [statusCode {StatusCode} = StatusCodes.Good]
158
- * @param [sourceTimestamp= Now]
159
- */
160
- setValueFromSource(variant: VariantLike, statusCode?: StatusCode, sourceTimestamp?: Date): void;
161
- writeValue(context: ISessionContext, dataValue: DataValue, indexRange: string | NumericRange | null, callback: StatusCodeCallback): void;
162
- writeValue(context: ISessionContext, dataValue: DataValue, callback: StatusCodeCallback): void;
163
- writeValue(context: ISessionContext, dataValue: DataValue, indexRange?: string | NumericRange | null): Promise<StatusCode>;
164
- writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions, callback: StatusCodeCallback): void;
165
- writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions): Promise<StatusCode>;
166
- /**
167
- * @method checkVariantCompatibility
168
- * note:
169
- * this method is overridden in address-space-data-access
170
- * @return {StatusCode}
171
- */
172
- checkVariantCompatibility(value: Variant): StatusCode;
173
- /**
174
- * touch the source timestamp of a Variable and cascade up the change
175
- * to the parent variable if any.
176
- */
177
- touchValue(optionalNow?: PreciseClock): void;
178
- /**
179
- * bind a variable with a get and set functions.
180
- *
181
- * properties:
182
- * - value: a Variant or a status code
183
- * - sourceTimestamp
184
- * - sourcePicoseconds
185
- * @param [options.timestamped_set]
186
- * @param [options.refreshFunc] the variable asynchronous getter function.
187
- * @param [overwrite {Boolean} = false] set overwrite to true to overwrite existing binding
188
- * @return void
189
- *
190
- *
191
- * ### Providing read access to the underlying value
192
- *
193
- * #### Variation 1
194
- *
195
- * In this variation, the user provides a function that returns a Variant with the current value.
196
- *
197
- * The sourceTimestamp will be set automatically.
198
- *
199
- * The get function is called synchronously.
200
- *
201
- * @example
202
- *
203
- *
204
- * ```javascript
205
- * ...
206
- * var options = {
207
- * get : () => {
208
- * return new Variant({...});
209
- * },
210
- * set : function(variant) {
211
- * // store the variant somewhere
212
- * return StatusCodes.Good;
213
- * }
214
- * };
215
- * ...
216
- * engine.bindVariable(nodeId,options):
217
- * ...
218
- * ```
219
- *
220
- *
221
- * #### Variation 2:
222
- *
223
- * This variation can be used when the user wants to specify a specific '''sourceTimestamp''' associated
224
- * with the current value of the UAVariable.
225
- *
226
- * The provided ```timestamped_get``` function should return an object with three properties:
227
- * * value: containing the variant value or a error StatusCode,
228
- * * sourceTimestamp
229
- * * sourcePicoseconds
230
- *
231
- * ```javascript
232
- * ...
233
- * var myDataValue = new DataValue({
234
- * value: {dataType: DataType.Double , value: 10.0},
235
- * sourceTimestamp : new Date(),
236
- * sourcePicoseconds: 0
237
- * });
238
- * ...
239
- * var options = {
240
- * timestamped_get : () => { return myDataValue; }
241
- * };
242
- * ...
243
- * engine.bindVariable(nodeId,options):
244
- * ...
245
- * // record a new value
246
- * myDataValue.value.value = 5.0;
247
- * myDataValue.sourceTimestamp = new Date();
248
- * ...
249
- * ```
250
- *
251
- *
252
- * #### Variation 3:
253
- *
254
- * This variation can be used when the value associated with the variables requires a asynchronous function call to be
255
- * extracted. In this case, the user should provide an async method ```refreshFunc```.
256
- *
257
- *
258
- * The ```refreshFunc``` shall do whatever is necessary to fetch the most up to date version of the variable value, and
259
- * call the ```callback``` function when the data is ready.
260
- *
261
- *
262
- * The ```callback``` function follow the standard callback function signature:
263
- * * the first argument shall be **null** or **Error**, depending of the outcome of the fetch operation,
264
- * * the second argument shall be a DataValue with the new UAVariable Value, a StatusCode, and time stamps.
265
- *
266
- *
267
- * Optionally, it is possible to pass a sourceTimestamp and a sourcePicoseconds value as a third and fourth arguments
268
- * of the callback. When sourceTimestamp and sourcePicoseconds are missing, the system will set their default value
269
- * to the current time..
270
- *
271
- *
272
- * ```javascript
273
- * ...
274
- * var options = {
275
- * refreshFunc : function(callback) {
276
- * ... do_some_async_stuff_to_get_the_new_variable_value
277
- * var dataValue = new DataValue({
278
- * value: new Variant({...}),
279
- * statusCode: StatusCodes.Good,
280
- * sourceTimestamp: new Date()
281
- * });
282
- * callback(null,dataValue);
283
- * }
284
- * };
285
- * ...
286
- * variable.bindVariable(nodeId,options):
287
- * ...
288
- * ```
289
- *
290
- * ### Providing write access to the underlying value
291
- *
292
- * #### Variation1 - provide a simple synchronous set function
293
- *
294
- *
295
- * #### Notes
296
- * to do : explain return StatusCodes.GoodCompletesAsynchronously;
297
- *
298
- */
299
- bindVariable(options?: BindVariableOptions, overwrite?: boolean): void;
300
- /**
301
- * @method readValueAsync
302
- */
303
- readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValue>): void;
304
- readValueAsync(context: ISessionContext | null): Promise<DataValue>;
305
- getWriteMask(): number;
306
- getUserWriteMask(): number;
307
- clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAVariable;
308
- getDataTypeNode(): UADataType;
309
- get dataTypeObj(): UADataType;
310
- checkExtensionObjectIsCorrect(extObj: ExtensionObject | ExtensionObject[] | null): boolean;
311
- /**
312
- * @private
313
- * install UAVariable to exposed th
314
- *
315
- * precondition:
316
- */
317
- installExtensionObjectVariables(): void;
318
- /**
319
- * @method bindExtensionObject
320
- * @return {ExtensionObject}
321
- */
322
- bindExtensionObjectScalar(optionalExtensionObject?: ExtensionObject, options?: BindExtensionObjectOptions): ExtensionObject | null;
323
- bindExtensionObjectArray(optionalExtensionObject?: ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject[] | null;
324
- bindExtensionObject(optionalExtensionObject?: ExtensionObject | ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject | ExtensionObject[] | null;
325
- updateExtensionObjectPartial(partialExtensionObject?: {
326
- [key: string]: any;
327
- }): ExtensionObject;
328
- incrementExtensionObjectPartial(path: string | string[]): void;
329
- toString(): string;
330
- historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData): Promise<HistoryReadResult>;
331
- historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
332
- _historyReadRaw(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
333
- _historyReadRawModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback?: CallbackT<HistoryReadResult>): any;
334
- _historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
335
- _historyPush(newDataValue: DataValue): any;
336
- _historyReadRawAsync(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): any;
337
- _historyReadModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): any;
338
- _update_startOfOnlineArchive(newDate: Date): void;
339
- _update_startOfArchive(newDate: Date): void;
340
- _validate_DataType(variantDataType: DataType): boolean;
341
- _internal_set_value(value: Variant): void;
342
- _internal_set_dataValue(dataValue: DataValue, indexRange?: NumericRange | null): void;
343
- /**
344
- * @private
345
- */
346
- _inner_replace_dataValue(dataValue: DataValue, indexRange?: NumericRange | null): void;
347
- _conditionRefresh(_cache?: ConditionRefreshCache): void;
348
- handle_semantic_changed(): void;
349
- private _readDataType;
350
- private _readValueRank;
351
- private _readArrayDimensions;
352
- private _readAccessLevel;
353
- private _readAccessLevelEx;
354
- private _readUserAccessLevel;
355
- private _readMinimumSamplingInterval;
356
- private _readHistorizing;
357
- }
358
- export interface UAVariableImplExtArray {
359
- $$variableType?: UAVariableType;
360
- $$dataType: UADataType;
361
- $$getElementBrowseName: (extObject: ExtensionObject, index: number | number[]) => QualifiedName;
362
- $$extensionObjectArray: ExtensionObject[];
363
- $$indexPropertyName: string;
364
- }
365
- export interface UAVariableImpl extends UAVariableImplExtArray {
366
- }
367
- export interface UAVariableImplT<T, DT extends DataType> extends UAVariableImpl, UAVariableT<T, DT> {
368
- on(): any;
369
- once(): any;
370
- readValueAsync(context: ISessionContext | null): Promise<DataValueT<T, DT>>;
371
- readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValueT<T, DT>>): void;
372
- readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
373
- readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
374
- writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange: NumericRange | null, callback: StatusCodeCallback): void;
375
- writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, callback: StatusCodeCallback): void;
376
- writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange?: NumericRange | null): Promise<StatusCode>;
377
- }
378
- export declare class UAVariableImplT<T, DT extends DataType> extends UAVariableImpl {
379
- }
380
- export {};
1
+ import { BindExtensionObjectOptions, CloneExtraInfo, ContinuationData, VariableDataValueSetterWithCallback } from "node-opcua-address-space-base";
2
+ import { QualifiedNameLike, NodeClass, AccessLevelFlag, AttributeIds, QualifiedName } from "node-opcua-data-model";
3
+ import { DataValue, DataValueT } from "node-opcua-data-value";
4
+ import { PreciseClock } from "node-opcua-date-time";
5
+ import { ExtensionObject } from "node-opcua-extension-object";
6
+ import { NodeId } from "node-opcua-nodeid";
7
+ import { NumericRange } from "node-opcua-numeric-range";
8
+ import { StatusCode, CallbackT } from "node-opcua-status-code";
9
+ import { HistoryReadDetails, HistoryReadResult, ReadAtTimeDetails, ReadEventDetails, ReadProcessedDetails, ReadRawModifiedDetails, WriteValueOptions } from "node-opcua-types";
10
+ import { Variant, VariantLike, DataType } from "node-opcua-variant";
11
+ import { StatusCodeCallback } from "node-opcua-status-code";
12
+ import { BindVariableOptions, IVariableHistorian, TimestampGetFunc, UADataType, UAVariable, UAVariableType, CloneOptions, CloneFilter, ISessionContext, UAVariableT } from "node-opcua-address-space-base";
13
+ import { UAHistoricalDataConfiguration } from "node-opcua-nodeset-ua";
14
+ import { BaseNodeImpl, InternalBaseNodeOptions } from "./base_node_impl";
15
+ import { EnumerationInfo, IEnumItem } from "./ua_data_type_impl";
16
+ import { ConditionRefreshCache } from "./apply_condition_refresh";
17
+ export declare function adjust_accessLevel(accessLevel: string | number | null): AccessLevelFlag;
18
+ export declare function adjust_userAccessLevel(userAccessLevel: string | number | null | undefined, accessLevel: string | number | null): AccessLevelFlag | undefined;
19
+ interface UAVariableOptions extends InternalBaseNodeOptions {
20
+ value?: any;
21
+ dataType: NodeId | string;
22
+ /**
23
+ * This attribute indicates whether the Value attribute of the Variableis an array and how many dimensions the array has.
24
+ * It may have the following values:
25
+ * * n > 1: the Value is an array with the specified number of dimensions.
26
+ * * OneDimension (1): The value is an array with one dimension.
27
+ * * OneOrMoreDimensions (0): The value is an array with one or more dimensions.
28
+ * * Scalar (−1): The value is not an array.
29
+ * * Any (−2): The value can be a scalar or an array with any number of dimensions.
30
+ * * ScalarOrOneDimension (−3): The value can be a scalar or a one dimensional array.
31
+ * * All DataTypes are considered to be scalar, even if they have array-like semantics like ByteString and String.
32
+ */
33
+ valueRank?: number;
34
+ arrayDimensions?: null | number[];
35
+ accessLevel?: any;
36
+ userAccessLevel?: any;
37
+ minimumSamplingInterval?: number;
38
+ historizing?: number;
39
+ }
40
+ /**
41
+ * A OPCUA Variable Node
42
+ *
43
+ * @class UAVariable
44
+ * @constructor
45
+ * @extends BaseNode
46
+ * The AccessLevel Attribute is used to indicate how the Value of a Variable can be accessed (read/write) and if it
47
+ * contains current and/or historic data. The AccessLevel does not take any user access rights into account,
48
+ * i.e. although the Variable is writable this may be restricted to a certain user / user group.
49
+ * The AccessLevel is an 8-bit unsigned integer with the structure defined in the following table:
50
+ *
51
+ * Field Bit Description
52
+ * CurrentRead 0 Indicates if the current value is readable
53
+ * (0 means not readable, 1 means readable).
54
+ * CurrentWrite 1 Indicates if the current value is writable
55
+ * (0 means not writable, 1 means writable).
56
+ * HistoryRead 2 Indicates if the history of the value is readable
57
+ * (0 means not readable, 1 means readable).
58
+ * HistoryWrite 3 Indicates if the history of the value is writable (0 means not writable, 1 means writable).
59
+ * SemanticChange 4 Indicates if the Variable used as Property generates SemanticChangeEvents (see 9.31).
60
+ * Reserved 5:7 Reserved for future use. Shall always be zero.
61
+ *
62
+ * The first two bits also indicate if a current value of this Variable is available and the second two bits
63
+ * indicates if the history of the Variable is available via the OPC UA server.
64
+ *
65
+ */
66
+ export declare class UAVariableImpl extends BaseNodeImpl implements UAVariable {
67
+ readonly nodeClass = NodeClass.Variable;
68
+ dataType: NodeId;
69
+ private _basicDataType?;
70
+ $extensionObject?: any;
71
+ $set_ExtensionObject?: (newValue: ExtensionObject, sourceTimestamp: PreciseClock, cache: Set<UAVariableImpl>) => void;
72
+ $historicalDataConfiguration?: UAHistoricalDataConfiguration;
73
+ varHistorian?: IVariableHistorian;
74
+ /**
75
+ * @internal @private
76
+ */
77
+ $dataValue: DataValue;
78
+ accessLevel: number;
79
+ userAccessLevel?: number;
80
+ valueRank: number;
81
+ minimumSamplingInterval: number;
82
+ historizing: boolean;
83
+ semantic_version: number;
84
+ arrayDimensions: null | number[];
85
+ _timestamped_get_func?: TimestampGetFunc | null;
86
+ _timestamped_set_func?: VariableDataValueSetterWithCallback | null;
87
+ _get_func: any;
88
+ _set_func: any;
89
+ refreshFunc?: (callback: CallbackT<DataValue>) => void;
90
+ __waiting_callbacks?: any[];
91
+ get typeDefinitionObj(): UAVariableType;
92
+ get typeDefinition(): NodeId;
93
+ constructor(options: UAVariableOptions);
94
+ private checkAccessLevelPrivate;
95
+ private checkPermissionPrivate;
96
+ private checkPermissionAndAccessLevelPrivate;
97
+ isReadable(context: ISessionContext): boolean;
98
+ isUserReadable(context: ISessionContext): boolean;
99
+ isWritable(context: ISessionContext): boolean;
100
+ isUserWritable(context: ISessionContext): boolean;
101
+ canUserReadHistory(context: ISessionContext): boolean;
102
+ canUserWriteHistorizingAttribute(context: ISessionContext): boolean;
103
+ canUserInsertHistory(context: ISessionContext): boolean;
104
+ canUserModifyHistory(context: ISessionContext): boolean;
105
+ canUserDeleteHistory(context: ISessionContext): boolean;
106
+ /**
107
+ *
108
+ *
109
+ * from OPC.UA.Spec 1.02 part 4
110
+ * 5.10.2.4 StatusCodes
111
+ * Table 51 defines values for the operation level statusCode contained in the DataValue structure of
112
+ * each values element. Common StatusCodes are defined in Table 166.
113
+ *
114
+ * Table 51 Read Operation Level Result Codes
115
+ *
116
+ * | Symbolic Id | Description
117
+ * |-----------------------------|---------------------------------------------------------------------------------------------|
118
+ * |BadNodeIdInvalid | The syntax of the node id is not valid.|
119
+ * |BadNodeIdUnknown |The node id refers to a node that does not exist in the server address space.|
120
+ * |BadAttributeIdInvalid | BadAttributeIdInvalid The attribute is not supported for the specified node.|
121
+ * |BadIndexRangeInvalid | The syntax of the index range parameter is invalid.|
122
+ * |BadIndexRangeNoData | No data exists within the range of indexes specified.|
123
+ * |BadDataEncodingInvalid | The data encoding is invalid.|
124
+ * | | This result is used if no dataEncoding can be applied because an Attribute other|
125
+ * | | than Value was requested or the DataType of the Value Attribute is not a subtype|
126
+ * | | of the Structure DataType.|
127
+ * |BadDataEncodingUnsupported | The server does not support the requested data encoding for the node. |
128
+ * | | This result is used if a dataEncoding can be applied but the passed data encoding |
129
+ * | | is not known to the Server. |
130
+ * |BadNotReadable | The access level does not allow reading or subscribing to the Node.|
131
+ * |BadUserAccessDenied | User does not have permission to perform the requested operation. (table 165)|
132
+ */
133
+ readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
134
+ isEnumeration(): boolean;
135
+ /**
136
+ * return true if the DataType is of type Extension object
137
+ * this is not taking into account the valueRank of the variable
138
+ */
139
+ isExtensionObject(): boolean;
140
+ _getEnumerationInfo(): EnumerationInfo;
141
+ asyncRefresh(oldestDate: Date, callback: CallbackT<DataValue>): void;
142
+ asyncRefresh(oldestDate: Date): Promise<DataValue>;
143
+ readEnumValue(): IEnumItem;
144
+ writeEnumValue(value: string | number): void;
145
+ readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
146
+ getBasicDataType(): DataType;
147
+ adjustVariant(variant: Variant): Variant;
148
+ verifyVariantCompatibility(variant: Variant): void;
149
+ /**
150
+ * setValueFromSource is used to let the device sets the variable values
151
+ * this method also records the current time as sourceTimestamp and serverTimestamp.
152
+ . *
153
+ * The method will raise an exception if the value is not compatible with the dataType and expected dimension
154
+ *
155
+ * @method setValueFromSource
156
+ * @param variant {Variant}
157
+ * @param [statusCode {StatusCode} = StatusCodes.Good]
158
+ * @param [sourceTimestamp= Now]
159
+ */
160
+ setValueFromSource(variant: VariantLike, statusCode?: StatusCode, sourceTimestamp?: Date): void;
161
+ writeValue(context: ISessionContext, dataValue: DataValue, indexRange: string | NumericRange | null, callback: StatusCodeCallback): void;
162
+ writeValue(context: ISessionContext, dataValue: DataValue, callback: StatusCodeCallback): void;
163
+ writeValue(context: ISessionContext, dataValue: DataValue, indexRange?: string | NumericRange | null): Promise<StatusCode>;
164
+ writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions, callback: StatusCodeCallback): void;
165
+ writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions): Promise<StatusCode>;
166
+ /**
167
+ * @method checkVariantCompatibility
168
+ * note:
169
+ * this method is overridden in address-space-data-access
170
+ * @return {StatusCode}
171
+ */
172
+ checkVariantCompatibility(value: Variant): StatusCode;
173
+ /**
174
+ * touch the source timestamp of a Variable and cascade up the change
175
+ * to the parent variable if any.
176
+ */
177
+ touchValue(optionalNow?: PreciseClock): void;
178
+ /**
179
+ * bind a variable with a get and set functions.
180
+ *
181
+ * properties:
182
+ * - value: a Variant or a status code
183
+ * - sourceTimestamp
184
+ * - sourcePicoseconds
185
+ * @param [options.timestamped_set]
186
+ * @param [options.refreshFunc] the variable asynchronous getter function.
187
+ * @param [overwrite {Boolean} = false] set overwrite to true to overwrite existing binding
188
+ * @return void
189
+ *
190
+ *
191
+ * ### Providing read access to the underlying value
192
+ *
193
+ * #### Variation 1
194
+ *
195
+ * In this variation, the user provides a function that returns a Variant with the current value.
196
+ *
197
+ * The sourceTimestamp will be set automatically.
198
+ *
199
+ * The get function is called synchronously.
200
+ *
201
+ * @example
202
+ *
203
+ *
204
+ * ```javascript
205
+ * ...
206
+ * var options = {
207
+ * get : () => {
208
+ * return new Variant({...});
209
+ * },
210
+ * set : function(variant) {
211
+ * // store the variant somewhere
212
+ * return StatusCodes.Good;
213
+ * }
214
+ * };
215
+ * ...
216
+ * engine.bindVariable(nodeId,options):
217
+ * ...
218
+ * ```
219
+ *
220
+ *
221
+ * #### Variation 2:
222
+ *
223
+ * This variation can be used when the user wants to specify a specific '''sourceTimestamp''' associated
224
+ * with the current value of the UAVariable.
225
+ *
226
+ * The provided ```timestamped_get``` function should return an object with three properties:
227
+ * * value: containing the variant value or a error StatusCode,
228
+ * * sourceTimestamp
229
+ * * sourcePicoseconds
230
+ *
231
+ * ```javascript
232
+ * ...
233
+ * var myDataValue = new DataValue({
234
+ * value: {dataType: DataType.Double , value: 10.0},
235
+ * sourceTimestamp : new Date(),
236
+ * sourcePicoseconds: 0
237
+ * });
238
+ * ...
239
+ * var options = {
240
+ * timestamped_get : () => { return myDataValue; }
241
+ * };
242
+ * ...
243
+ * engine.bindVariable(nodeId,options):
244
+ * ...
245
+ * // record a new value
246
+ * myDataValue.value.value = 5.0;
247
+ * myDataValue.sourceTimestamp = new Date();
248
+ * ...
249
+ * ```
250
+ *
251
+ *
252
+ * #### Variation 3:
253
+ *
254
+ * This variation can be used when the value associated with the variables requires a asynchronous function call to be
255
+ * extracted. In this case, the user should provide an async method ```refreshFunc```.
256
+ *
257
+ *
258
+ * The ```refreshFunc``` shall do whatever is necessary to fetch the most up to date version of the variable value, and
259
+ * call the ```callback``` function when the data is ready.
260
+ *
261
+ *
262
+ * The ```callback``` function follow the standard callback function signature:
263
+ * * the first argument shall be **null** or **Error**, depending of the outcome of the fetch operation,
264
+ * * the second argument shall be a DataValue with the new UAVariable Value, a StatusCode, and time stamps.
265
+ *
266
+ *
267
+ * Optionally, it is possible to pass a sourceTimestamp and a sourcePicoseconds value as a third and fourth arguments
268
+ * of the callback. When sourceTimestamp and sourcePicoseconds are missing, the system will set their default value
269
+ * to the current time..
270
+ *
271
+ *
272
+ * ```javascript
273
+ * ...
274
+ * var options = {
275
+ * refreshFunc : function(callback) {
276
+ * ... do_some_async_stuff_to_get_the_new_variable_value
277
+ * var dataValue = new DataValue({
278
+ * value: new Variant({...}),
279
+ * statusCode: StatusCodes.Good,
280
+ * sourceTimestamp: new Date()
281
+ * });
282
+ * callback(null,dataValue);
283
+ * }
284
+ * };
285
+ * ...
286
+ * variable.bindVariable(nodeId,options):
287
+ * ...
288
+ * ```
289
+ *
290
+ * ### Providing write access to the underlying value
291
+ *
292
+ * #### Variation1 - provide a simple synchronous set function
293
+ *
294
+ *
295
+ * #### Notes
296
+ * to do : explain return StatusCodes.GoodCompletesAsynchronously;
297
+ *
298
+ */
299
+ bindVariable(options?: BindVariableOptions, overwrite?: boolean): void;
300
+ /**
301
+ * @method readValueAsync
302
+ */
303
+ readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValue>): void;
304
+ readValueAsync(context: ISessionContext | null): Promise<DataValue>;
305
+ getWriteMask(): number;
306
+ getUserWriteMask(): number;
307
+ clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAVariable;
308
+ getDataTypeNode(): UADataType;
309
+ get dataTypeObj(): UADataType;
310
+ checkExtensionObjectIsCorrect(extObj: ExtensionObject | ExtensionObject[] | null): boolean;
311
+ /**
312
+ * @private
313
+ * install UAVariable to exposed th
314
+ *
315
+ * precondition:
316
+ */
317
+ installExtensionObjectVariables(): void;
318
+ /**
319
+ * @method bindExtensionObject
320
+ * @return {ExtensionObject}
321
+ */
322
+ bindExtensionObjectScalar(optionalExtensionObject?: ExtensionObject, options?: BindExtensionObjectOptions): ExtensionObject | null;
323
+ bindExtensionObjectArray(optionalExtensionObject?: ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject[] | null;
324
+ bindExtensionObject(optionalExtensionObject?: ExtensionObject | ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject | ExtensionObject[] | null;
325
+ updateExtensionObjectPartial(partialExtensionObject?: {
326
+ [key: string]: any;
327
+ }): ExtensionObject;
328
+ incrementExtensionObjectPartial(path: string | string[]): void;
329
+ toString(): string;
330
+ historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData): Promise<HistoryReadResult>;
331
+ historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
332
+ _historyReadRaw(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
333
+ _historyReadRawModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback?: CallbackT<HistoryReadResult>): any;
334
+ _historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
335
+ _historyPush(newDataValue: DataValue): any;
336
+ _historyReadRawAsync(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): any;
337
+ _historyReadModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): any;
338
+ _update_startOfOnlineArchive(newDate: Date): void;
339
+ _update_startOfArchive(newDate: Date): void;
340
+ _validate_DataType(variantDataType: DataType): boolean;
341
+ _internal_set_value(value: Variant): void;
342
+ _internal_set_dataValue(dataValue: DataValue, indexRange?: NumericRange | null): void;
343
+ /**
344
+ * @private
345
+ */
346
+ _inner_replace_dataValue(dataValue: DataValue, indexRange?: NumericRange | null): void;
347
+ _conditionRefresh(_cache?: ConditionRefreshCache): void;
348
+ handle_semantic_changed(): void;
349
+ private _readDataType;
350
+ private _readValueRank;
351
+ private _readArrayDimensions;
352
+ private _readAccessLevel;
353
+ private _readAccessLevelEx;
354
+ private _readUserAccessLevel;
355
+ private _readMinimumSamplingInterval;
356
+ private _readHistorizing;
357
+ }
358
+ export interface UAVariableImplExtArray {
359
+ $$variableType?: UAVariableType;
360
+ $$dataType: UADataType;
361
+ $$getElementBrowseName: (extObject: ExtensionObject, index: number | number[]) => QualifiedName;
362
+ $$extensionObjectArray: ExtensionObject[];
363
+ $$indexPropertyName: string;
364
+ }
365
+ export interface UAVariableImpl extends UAVariableImplExtArray {
366
+ }
367
+ export interface UAVariableImplT<T, DT extends DataType> extends UAVariableImpl, UAVariableT<T, DT> {
368
+ on(): any;
369
+ once(): any;
370
+ readValueAsync(context: ISessionContext | null): Promise<DataValueT<T, DT>>;
371
+ readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValueT<T, DT>>): void;
372
+ readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
373
+ readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
374
+ writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange: NumericRange | null, callback: StatusCodeCallback): void;
375
+ writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, callback: StatusCodeCallback): void;
376
+ writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange?: NumericRange | null): Promise<StatusCode>;
377
+ }
378
+ export declare class UAVariableImplT<T, DT extends DataType> extends UAVariableImpl {
379
+ }
380
+ export {};