node-opcua-address-space 2.70.1 → 2.71.0

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 (369) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -118
  2. package/dist/source/address_space_ts.js +17 -17
  3. package/dist/source/continuation_points/continuation_point_manager.d.ts +32 -32
  4. package/dist/source/continuation_points/continuation_point_manager.js +195 -195
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +34 -34
  8. package/dist/source/helpers/argument_list.js +285 -285
  9. package/dist/source/helpers/call_helpers.d.ts +6 -6
  10. package/dist/source/helpers/call_helpers.js +70 -70
  11. package/dist/source/helpers/check_event_clause.d.ts +17 -17
  12. package/dist/source/helpers/check_event_clause.js +52 -52
  13. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  14. package/dist/source/helpers/coerce_enum_value.js +33 -33
  15. package/dist/source/helpers/dump_tools.d.ts +14 -14
  16. package/dist/source/helpers/dump_tools.js +78 -78
  17. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  18. package/dist/source/helpers/ensure_secure_access.js +76 -76
  19. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  20. package/dist/source/helpers/make_optionals_map.js +29 -29
  21. package/dist/source/helpers/multiform_func.d.ts +11 -11
  22. package/dist/source/helpers/multiform_func.js +73 -73
  23. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  24. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  25. package/dist/source/index.d.ts +40 -40
  26. package/dist/source/index.js +66 -66
  27. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +12 -12
  28. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  29. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.d.ts +23 -0
  30. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js +3 -0
  31. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js.map +1 -0
  32. package/dist/source/interfaces/data_access/ua_discrete_item.d.ts +6 -0
  33. package/dist/source/interfaces/data_access/ua_discrete_item.js +3 -0
  34. package/dist/source/interfaces/data_access/ua_discrete_item.js.map +1 -0
  35. package/dist/source/interfaces/data_access/ua_multistate_discrete.d.ts +25 -0
  36. package/dist/source/interfaces/data_access/ua_multistate_discrete.js +3 -0
  37. package/dist/source/interfaces/data_access/ua_multistate_discrete.js.map +1 -0
  38. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  39. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  40. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.d.ts +27 -0
  41. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js +3 -0
  42. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js.map +1 -0
  43. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  44. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  45. package/dist/source/interfaces/data_access/ua_two_state_discrete.d.ts +17 -0
  46. package/dist/source/interfaces/data_access/ua_two_state_discrete.js +3 -0
  47. package/dist/source/interfaces/data_access/ua_two_state_discrete.js.map +1 -0
  48. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  49. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  50. package/dist/source/interfaces/data_access/ua_y_array_item.d.ts +19 -0
  51. package/dist/source/interfaces/data_access/ua_y_array_item.js +3 -0
  52. package/dist/source/interfaces/data_access/ua_y_array_item.js.map +1 -0
  53. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  54. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  55. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.d.ts +11 -0
  56. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js +3 -0
  57. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js.map +1 -0
  58. package/dist/source/interfaces/state_machine/finite_state_machine.d.ts +70 -0
  59. package/dist/source/interfaces/state_machine/finite_state_machine.js +3 -0
  60. package/dist/source/interfaces/state_machine/finite_state_machine.js.map +1 -0
  61. package/dist/source/interfaces/state_machine/program_finite_state_machine.d.ts +74 -0
  62. package/dist/source/interfaces/state_machine/program_finite_state_machine.js +3 -0
  63. package/dist/source/interfaces/state_machine/program_finite_state_machine.js.map +1 -0
  64. package/dist/source/interfaces/state_machine/state_machine.d.ts +342 -0
  65. package/dist/source/interfaces/state_machine/state_machine.js +3 -0
  66. package/dist/source/interfaces/state_machine/state_machine.js.map +1 -0
  67. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  68. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  69. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  70. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  71. package/dist/source/interfaces/state_machine/ua_finite_state_variable.d.ts +18 -0
  72. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js +3 -0
  73. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js.map +1 -0
  74. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  75. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  76. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  77. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  78. package/dist/source/interfaces/state_machine/ua_state_variable.d.ts +29 -0
  79. package/dist/source/interfaces/state_machine/ua_state_variable.js +3 -0
  80. package/dist/source/interfaces/state_machine/ua_state_variable.js.map +1 -0
  81. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  82. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  83. package/dist/source/interfaces/state_machine/ua_two_state_variable.d.ts +26 -0
  84. package/dist/source/interfaces/state_machine/ua_two_state_variable.js +3 -0
  85. package/dist/source/interfaces/state_machine/ua_two_state_variable.js.map +1 -0
  86. package/dist/source/interfaces/subscription_diagnostics_variable.d.ts +41 -0
  87. package/dist/source/interfaces/subscription_diagnostics_variable.js +3 -0
  88. package/dist/source/interfaces/subscription_diagnostics_variable.js.map +1 -0
  89. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  90. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  91. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  92. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  93. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  94. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  95. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  96. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  97. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  98. package/dist/source/loader/load_nodeset2.js +1464 -1464
  99. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  100. package/dist/source/loader/make_xml_extension_object_parser.js +315 -315
  101. package/dist/source/loader/namespace_post_step.d.ts +6 -6
  102. package/dist/source/loader/namespace_post_step.js +47 -47
  103. package/dist/source/loader/register_node_promoter.d.ts +3 -3
  104. package/dist/source/loader/register_node_promoter.js +9 -9
  105. package/dist/source/namespace.d.ts +6 -6
  106. package/dist/source/namespace.js +2 -2
  107. package/dist/source/namespace_alarm_and_condition.d.ts +24 -24
  108. package/dist/source/namespace_alarm_and_condition.js +2 -2
  109. package/dist/source/namespace_data_access.d.ts +42 -42
  110. package/dist/source/namespace_data_access.js +2 -2
  111. package/dist/source/namespace_machine_state.d.ts +7 -7
  112. package/dist/source/namespace_machine_state.js +2 -2
  113. package/dist/source/pseudo_session.d.ts +55 -55
  114. package/dist/source/pseudo_session.js +203 -203
  115. package/dist/source/session_context.d.ts +111 -111
  116. package/dist/source/session_context.js +265 -265
  117. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  118. package/dist/source/set_namespace_meta_data.js +59 -59
  119. package/dist/source/ua_root_folder.d.ts +9 -9
  120. package/dist/source/ua_root_folder.js +2 -2
  121. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  122. package/dist/source/ua_two_state_variable_ex.js +2 -2
  123. package/dist/source/xml_writer.d.ts +9 -9
  124. package/dist/source/xml_writer.js +2 -2
  125. package/dist/src/address_space.d.ts +392 -392
  126. package/dist/src/address_space.js +1387 -1387
  127. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  128. package/dist/src/address_space_change_event_tools.js +149 -149
  129. package/dist/src/address_space_private.d.ts +43 -43
  130. package/dist/src/address_space_private.js +2 -2
  131. package/dist/src/alarms_and_conditions/base_event_type.d.ts +26 -0
  132. package/dist/src/alarms_and_conditions/base_event_type.js +41 -0
  133. package/dist/src/alarms_and_conditions/base_event_type.js.map +1 -0
  134. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -4
  135. package/dist/src/alarms_and_conditions/check_where_clause.js +109 -109
  136. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  137. package/dist/src/alarms_and_conditions/condition.js +80 -80
  138. package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -27
  139. package/dist/src/alarms_and_conditions/condition_info.js +54 -54
  140. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -233
  141. package/dist/src/alarms_and_conditions/condition_snapshot.js +666 -666
  142. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +21 -21
  143. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +46 -46
  144. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -10
  145. package/dist/src/alarms_and_conditions/extract_event_fields.js +89 -89
  146. package/dist/src/alarms_and_conditions/index.d.ts +18 -18
  147. package/dist/src/alarms_and_conditions/index.js +34 -34
  148. package/dist/src/alarms_and_conditions/shelving_state_machine.d.ts +22 -0
  149. package/dist/src/alarms_and_conditions/shelving_state_machine.js +241 -0
  150. package/dist/src/alarms_and_conditions/shelving_state_machine.js.map +1 -0
  151. package/dist/src/alarms_and_conditions/trip_alarm.d.ts +16 -0
  152. package/dist/src/alarms_and_conditions/trip_alarm.js +21 -0
  153. package/dist/src/alarms_and_conditions/trip_alarm.js.map +1 -0
  154. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.d.ts +54 -0
  155. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js +255 -0
  156. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js.map +1 -0
  157. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +62 -62
  158. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  159. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.d.ts +138 -0
  160. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js +460 -0
  161. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js.map +1 -0
  162. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +118 -118
  163. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +416 -416
  164. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +29 -29
  165. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  166. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.d.ts +35 -0
  167. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js +32 -0
  168. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js.map +1 -0
  169. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +21 -21
  170. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +25 -25
  171. package/dist/src/alarms_and_conditions/ua_condition_base.d.ts +191 -0
  172. package/dist/src/alarms_and_conditions/ua_condition_base.js +1029 -0
  173. package/dist/src/alarms_and_conditions/ua_condition_base.js.map +1 -0
  174. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +182 -182
  175. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1022 -1022
  176. package/dist/src/alarms_and_conditions/ua_discrete_alarm.d.ts +11 -0
  177. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js +58 -0
  178. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js.map +1 -0
  179. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +17 -17
  180. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +57 -57
  181. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.d.ts +24 -0
  182. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js +59 -0
  183. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js.map +1 -0
  184. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +27 -27
  185. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  186. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.d.ts +14 -0
  187. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js +17 -0
  188. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js.map +1 -0
  189. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +9 -9
  190. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  191. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.d.ts +22 -0
  192. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js +87 -0
  193. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js.map +1 -0
  194. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +38 -38
  195. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  196. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.d.ts +6 -0
  197. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js +11 -0
  198. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js.map +1 -0
  199. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +10 -10
  200. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  201. package/dist/src/alarms_and_conditions/ua_limit_alarm.d.ts +76 -0
  202. package/dist/src/alarms_and_conditions/ua_limit_alarm.js +237 -0
  203. package/dist/src/alarms_and_conditions/ua_limit_alarm.js.map +1 -0
  204. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +97 -97
  205. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  206. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.d.ts +27 -0
  207. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js +62 -0
  208. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js.map +1 -0
  209. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +28 -28
  210. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  211. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.d.ts +49 -0
  212. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js +176 -0
  213. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js.map +1 -0
  214. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +25 -25
  215. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  216. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.d.ts +47 -0
  217. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js +151 -0
  218. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js.map +1 -0
  219. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +39 -39
  220. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +135 -135
  221. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.d.ts +16 -0
  222. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js +18 -0
  223. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js.map +1 -0
  224. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +16 -16
  225. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  226. package/dist/src/apply_condition_refresh.d.ts +6 -6
  227. package/dist/src/apply_condition_refresh.js +27 -27
  228. package/dist/src/base_node.d.ts +270 -0
  229. package/dist/src/base_node.js +1299 -0
  230. package/dist/src/base_node.js.map +1 -0
  231. package/dist/src/base_node_impl.d.ts +281 -281
  232. package/dist/src/base_node_impl.js +1395 -1395
  233. package/dist/src/base_node_private.d.ts +61 -61
  234. package/dist/src/base_node_private.js +705 -705
  235. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  236. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  237. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  238. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  239. package/dist/src/data_access/ua_analog_item.d.ts +13 -0
  240. package/dist/src/data_access/ua_analog_item.js +37 -0
  241. package/dist/src/data_access/ua_analog_item.js.map +1 -0
  242. package/dist/src/data_access/ua_data_item.d.ts +16 -0
  243. package/dist/src/data_access/ua_data_item.js +66 -0
  244. package/dist/src/data_access/ua_data_item.js.map +1 -0
  245. package/dist/src/data_access/ua_multistate_discrete.d.ts +24 -0
  246. package/dist/src/data_access/ua_multistate_discrete.js +132 -0
  247. package/dist/src/data_access/ua_multistate_discrete.js.map +1 -0
  248. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  249. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  250. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -51
  251. package/dist/src/data_access/ua_multistate_value_discrete.js +249 -249
  252. package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -25
  253. package/dist/src/data_access/ua_two_state_discrete.js +153 -153
  254. package/dist/src/event_data.d.ts +29 -29
  255. package/dist/src/event_data.js +95 -95
  256. package/dist/src/extension_object_array_node.d.ts +61 -61
  257. package/dist/src/extension_object_array_node.js +276 -276
  258. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  259. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  260. package/dist/src/index_current.d.ts +45 -45
  261. package/dist/src/index_current.js +77 -77
  262. package/dist/src/namespace.d.ts +472 -0
  263. package/dist/src/namespace.js +1759 -0
  264. package/dist/src/namespace.js.map +1 -0
  265. package/dist/src/namespace_impl.d.ts +457 -457
  266. package/dist/src/namespace_impl.js +1733 -1733
  267. package/dist/src/namespace_private.d.ts +21 -21
  268. package/dist/src/namespace_private.js +32 -32
  269. package/dist/src/nodeid_manager.d.ts +36 -36
  270. package/dist/src/nodeid_manager.js +197 -197
  271. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  272. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  273. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  274. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  275. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  276. package/dist/src/nodeset_tools/nodeset_to_xml.js +1143 -1143
  277. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  278. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  279. package/dist/src/reference.d.ts +43 -0
  280. package/dist/src/reference.js +138 -0
  281. package/dist/src/reference.js.map +1 -0
  282. package/dist/src/reference_impl.d.ts +43 -43
  283. package/dist/src/reference_impl.js +139 -139
  284. package/dist/src/role_permissions.d.ts +2 -2
  285. package/dist/src/role_permissions.js +10 -10
  286. package/dist/src/session_context.d.ts +4 -0
  287. package/dist/src/session_context.js +9 -0
  288. package/dist/src/session_context.js.map +1 -0
  289. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  290. package/dist/src/state_machine/finite_state_machine.js +353 -353
  291. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +34 -34
  292. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  293. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  294. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  295. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  296. package/dist/src/tool_isSupertypeOf.js +108 -108
  297. package/dist/src/ua_condition_type.d.ts +8 -8
  298. package/dist/src/ua_condition_type.js +2 -2
  299. package/dist/src/ua_data_type.d.ts +81 -0
  300. package/dist/src/ua_data_type.js +259 -0
  301. package/dist/src/ua_data_type.js.map +1 -0
  302. package/dist/src/ua_data_type_impl.d.ts +93 -93
  303. package/dist/src/ua_data_type_impl.js +368 -368
  304. package/dist/src/ua_method.d.ts +33 -0
  305. package/dist/src/ua_method.js +194 -0
  306. package/dist/src/ua_method.js.map +1 -0
  307. package/dist/src/ua_method_impl.d.ts +41 -41
  308. package/dist/src/ua_method_impl.js +208 -208
  309. package/dist/src/ua_object.d.ts +27 -0
  310. package/dist/src/ua_object.js +153 -0
  311. package/dist/src/ua_object.js.map +1 -0
  312. package/dist/src/ua_object_impl.d.ts +33 -33
  313. package/dist/src/ua_object_impl.js +156 -156
  314. package/dist/src/ua_object_type.d.ts +49 -0
  315. package/dist/src/ua_object_type.js +123 -0
  316. package/dist/src/ua_object_type.js.map +1 -0
  317. package/dist/src/ua_object_type_impl.d.ts +48 -48
  318. package/dist/src/ua_object_type_impl.js +124 -124
  319. package/dist/src/ua_reference_type.d.ts +31 -0
  320. package/dist/src/ua_reference_type.js +108 -0
  321. package/dist/src/ua_reference_type.js.map +1 -0
  322. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  323. package/dist/src/ua_reference_type_impl.js +139 -139
  324. package/dist/src/ua_variable.d.ts +346 -0
  325. package/dist/src/ua_variable.js +1651 -0
  326. package/dist/src/ua_variable.js.map +1 -0
  327. package/dist/src/ua_variable_impl.d.ts +351 -351
  328. package/dist/src/ua_variable_impl.js +1604 -1604
  329. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  330. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  331. package/dist/src/ua_variable_type.d.ts +57 -0
  332. package/dist/src/ua_variable_type.js +530 -0
  333. package/dist/src/ua_variable_type.js.map +1 -0
  334. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  335. package/dist/src/ua_variable_type_impl.js +570 -564
  336. package/dist/src/ua_variable_type_impl.js.map +1 -1
  337. package/dist/src/ua_view.d.ts +16 -0
  338. package/dist/src/ua_view.js +41 -0
  339. package/dist/src/ua_view.js.map +1 -0
  340. package/dist/src/ua_view_impl.d.ts +15 -15
  341. package/dist/src/ua_view_impl.js +36 -36
  342. package/distHelpers/add_event_generator_object.d.ts +3 -3
  343. package/distHelpers/add_event_generator_object.js +65 -65
  344. package/distHelpers/alarms_and_conditions_demo.d.ts +10 -10
  345. package/distHelpers/alarms_and_conditions_demo.js +114 -114
  346. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  347. package/distHelpers/assertHasMatchingReference.js +40 -40
  348. package/distHelpers/boiler_system.d.ts +113 -113
  349. package/distHelpers/boiler_system.js +395 -395
  350. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  351. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  352. package/distHelpers/date_utils.d.ts +3 -3
  353. package/distHelpers/date_utils.js +9 -9
  354. package/distHelpers/dump_statemachine.js +127 -127
  355. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  356. package/distHelpers/get_address_space_fixture.js +30 -30
  357. package/distHelpers/get_mini_address_space.d.ts +7 -7
  358. package/distHelpers/get_mini_address_space.js +36 -36
  359. package/distHelpers/index.d.ts +12 -12
  360. package/distHelpers/index.js +28 -28
  361. package/distHelpers/mock_session.d.ts +14 -14
  362. package/distHelpers/mock_session.js +25 -25
  363. package/distNodeJS/generate_address_space.d.ts +4 -4
  364. package/distNodeJS/generate_address_space.js +41 -41
  365. package/distNodeJS/index.d.ts +1 -1
  366. package/distNodeJS/index.js +17 -17
  367. package/package.json +38 -38
  368. package/src/ua_variable_type_impl.ts +11 -4
  369. package/test_helpers/test_fixtures/eurange_issue.xml +73 -0
@@ -1,351 +1,351 @@
1
- import { BindExtensionObjectOptions, CloneExtraInfo, ContinuationData, VariableDataValueSetterWithCallback } from "node-opcua-address-space-base";
2
- import { QualifiedNameLike, NodeClass, AccessLevelFlag, AttributeIds } 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
- valueRank?: number;
23
- arrayDimensions?: null | number[];
24
- accessLevel?: any;
25
- userAccessLevel?: any;
26
- minimumSamplingInterval?: number;
27
- historizing?: number;
28
- }
29
- /**
30
- * A OPCUA Variable Node
31
- *
32
- * @class UAVariable
33
- * @constructor
34
- * @extends BaseNode
35
- * The AccessLevel Attribute is used to indicate how the Value of a Variable can be accessed (read/write) and if it
36
- * contains current and/or historic data. The AccessLevel does not take any user access rights into account,
37
- * i.e. although the Variable is writable this may be restricted to a certain user / user group.
38
- * The AccessLevel is an 8-bit unsigned integer with the structure defined in the following table:
39
- *
40
- * Field Bit Description
41
- * CurrentRead 0 Indicates if the current value is readable
42
- * (0 means not readable, 1 means readable).
43
- * CurrentWrite 1 Indicates if the current value is writable
44
- * (0 means not writable, 1 means writable).
45
- * HistoryRead 2 Indicates if the history of the value is readable
46
- * (0 means not readable, 1 means readable).
47
- * HistoryWrite 3 Indicates if the history of the value is writable (0 means not writable, 1 means writable).
48
- * SemanticChange 4 Indicates if the Variable used as Property generates SemanticChangeEvents (see 9.31).
49
- * Reserved 5:7 Reserved for future use. Shall always be zero.
50
- *
51
- * The first two bits also indicate if a current value of this Variable is available and the second two bits
52
- * indicates if the history of the Variable is available via the OPC UA server.
53
- *
54
- */
55
- export declare class UAVariableImpl extends BaseNodeImpl implements UAVariable {
56
- readonly nodeClass = NodeClass.Variable;
57
- dataType: NodeId;
58
- private _basicDataType?;
59
- $extensionObject?: any;
60
- $historicalDataConfiguration?: UAHistoricalDataConfiguration;
61
- varHistorian?: IVariableHistorian;
62
- /**
63
- * @internal @private
64
- */
65
- $dataValue: DataValue;
66
- accessLevel: number;
67
- userAccessLevel?: number;
68
- valueRank: number;
69
- minimumSamplingInterval: number;
70
- historizing: boolean;
71
- semantic_version: number;
72
- arrayDimensions: null | number[];
73
- _timestamped_get_func?: TimestampGetFunc | null;
74
- _timestamped_set_func?: VariableDataValueSetterWithCallback | null;
75
- _get_func: any;
76
- _set_func: any;
77
- refreshFunc?: (callback: CallbackT<DataValue>) => void;
78
- __waiting_callbacks?: any[];
79
- get typeDefinitionObj(): UAVariableType;
80
- get typeDefinition(): NodeId;
81
- constructor(options: UAVariableOptions);
82
- private checkPermissionAndAccessLevelPrivate;
83
- isReadable(context: ISessionContext): boolean;
84
- isUserReadable(context: ISessionContext): boolean;
85
- isWritable(context: ISessionContext): boolean;
86
- isUserWritable(context: ISessionContext): boolean;
87
- /**
88
- *
89
- *
90
- * from OPC.UA.Spec 1.02 part 4
91
- * 5.10.2.4 StatusCodes
92
- * Table 51 defines values for the operation level statusCode contained in the DataValue structure of
93
- * each values element. Common StatusCodes are defined in Table 166.
94
- *
95
- * Table 51 Read Operation Level Result Codes
96
- *
97
- * Symbolic Id Description
98
- *
99
- * BadNodeIdInvalid The syntax of the node id is not valid.
100
- * BadNodeIdUnknown The node id refers to a node that does not exist in the server address space.
101
- * BadAttributeIdInvalid BadAttributeIdInvalid The attribute is not supported for the specified node.
102
- * BadIndexRangeInvalid The syntax of the index range parameter is invalid.
103
- * BadIndexRangeNoData No data exists within the range of indexes specified.
104
- * BadDataEncodingInvalid The data encoding is invalid.
105
- * This result is used if no dataEncoding can be applied because an Attribute other
106
- * than Value was requested or the DataType of the Value Attribute is not a subtype
107
- * of the Structure DataType.
108
- * BadDataEncodingUnsupported The server does not support the requested data encoding for the node.
109
- * This result is used if a dataEncoding can be applied but the passed data encoding
110
- * is not known to the Server.
111
- * BadNotReadable The access level does not allow reading or subscribing to the Node.
112
- * BadUserAccessDenied User does not have permission to perform the requested operation. (table 165)
113
- */
114
- readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
115
- isEnumeration(): boolean;
116
- isExtensionObject(): boolean;
117
- _getEnumerationInfo(): EnumerationInfo;
118
- asyncRefresh(oldestDate: Date, callback: CallbackT<DataValue>): void;
119
- asyncRefresh(oldestDate: Date): Promise<DataValue>;
120
- readEnumValue(): IEnumItem;
121
- writeEnumValue(value: string | number): void;
122
- readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
123
- getBasicDataType(): DataType;
124
- adjustVariant(variant: Variant): Variant;
125
- verifyVariantCompatibility(variant: Variant): void;
126
- /**
127
- * setValueFromSource is used to let the device sets the variable values
128
- * this method also records the current time as sourceTimestamp and serverTimestamp.
129
- . *
130
- * The method will raise an exception if the value is not compatible with the dataType and expected dimension
131
- *
132
- * @method setValueFromSource
133
- * @param variant {Variant}
134
- * @param [statusCode {StatusCode} = StatusCodes.Good]
135
- * @param [sourceTimestamp= Now]
136
- */
137
- setValueFromSource(variant: VariantLike, statusCode?: StatusCode, sourceTimestamp?: Date): void;
138
- writeValue(context: ISessionContext, dataValue: DataValue, indexRange: string | NumericRange | null, callback: StatusCodeCallback): void;
139
- writeValue(context: ISessionContext, dataValue: DataValue, callback: StatusCodeCallback): void;
140
- writeValue(context: ISessionContext, dataValue: DataValue, indexRange?: string | NumericRange | null): Promise<StatusCode>;
141
- writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions, callback: StatusCodeCallback): void;
142
- writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions): Promise<StatusCode>;
143
- /**
144
- * @method checkVariantCompatibility
145
- * note:
146
- * this method is overridden in address-space-data-access
147
- * @return {StatusCode}
148
- */
149
- checkVariantCompatibility(value: Variant): StatusCode;
150
- /**
151
- * touch the source timestamp of a Variable and cascade up the change
152
- * to the parent variable if any.
153
- */
154
- touchValue(optionalNow?: PreciseClock): void;
155
- /**
156
- * bind a variable with a get and set functions.
157
- *
158
- * properties:
159
- * - value: a Variant or a status code
160
- * - sourceTimestamp
161
- * - sourcePicoseconds
162
- * @param [options.timestamped_set]
163
- * @param [options.refreshFunc] the variable asynchronous getter function.
164
- * @param [overwrite {Boolean} = false] set overwrite to true to overwrite existing binding
165
- * @return void
166
- *
167
- *
168
- * ### Providing read access to the underlying value
169
- *
170
- * #### Variation 1
171
- *
172
- * In this variation, the user provides a function that returns a Variant with the current value.
173
- *
174
- * The sourceTimestamp will be set automatically.
175
- *
176
- * The get function is called synchronously.
177
- *
178
- * @example
179
- *
180
- *
181
- * ```javascript
182
- * ...
183
- * var options = {
184
- * get : () => {
185
- * return new Variant({...});
186
- * },
187
- * set : function(variant) {
188
- * // store the variant somewhere
189
- * return StatusCodes.Good;
190
- * }
191
- * };
192
- * ...
193
- * engine.bindVariable(nodeId,options):
194
- * ...
195
- * ```
196
- *
197
- *
198
- * #### Variation 2:
199
- *
200
- * This variation can be used when the user wants to specify a specific '''sourceTimestamp''' associated
201
- * with the current value of the UAVariable.
202
- *
203
- * The provided ```timestamped_get``` function should return an object with three properties:
204
- * * value: containing the variant value or a error StatusCode,
205
- * * sourceTimestamp
206
- * * sourcePicoseconds
207
- *
208
- * ```javascript
209
- * ...
210
- * var myDataValue = new DataValue({
211
- * value: {dataType: DataType.Double , value: 10.0},
212
- * sourceTimestamp : new Date(),
213
- * sourcePicoseconds: 0
214
- * });
215
- * ...
216
- * var options = {
217
- * timestamped_get : () => { return myDataValue; }
218
- * };
219
- * ...
220
- * engine.bindVariable(nodeId,options):
221
- * ...
222
- * // record a new value
223
- * myDataValue.value.value = 5.0;
224
- * myDataValue.sourceTimestamp = new Date();
225
- * ...
226
- * ```
227
- *
228
- *
229
- * #### Variation 3:
230
- *
231
- * This variation can be used when the value associated with the variables requires a asynchronous function call to be
232
- * extracted. In this case, the user should provide an async method ```refreshFunc```.
233
- *
234
- *
235
- * The ```refreshFunc``` shall do whatever is necessary to fetch the most up to date version of the variable value, and
236
- * call the ```callback``` function when the data is ready.
237
- *
238
- *
239
- * The ```callback``` function follow the standard callback function signature:
240
- * * the first argument shall be **null** or **Error**, depending of the outcome of the fetch operation,
241
- * * the second argument shall be a DataValue with the new UAVariable Value, a StatusCode, and time stamps.
242
- *
243
- *
244
- * Optionally, it is possible to pass a sourceTimestamp and a sourcePicoseconds value as a third and fourth arguments
245
- * of the callback. When sourceTimestamp and sourcePicoseconds are missing, the system will set their default value
246
- * to the current time..
247
- *
248
- *
249
- * ```javascript
250
- * ...
251
- * var options = {
252
- * refreshFunc : function(callback) {
253
- * ... do_some_async_stuff_to_get_the_new_variable_value
254
- * var dataValue = new DataValue({
255
- * value: new Variant({...}),
256
- * statusCode: StatusCodes.Good,
257
- * sourceTimestamp: new Date()
258
- * });
259
- * callback(null,dataValue);
260
- * }
261
- * };
262
- * ...
263
- * variable.bindVariable(nodeId,options):
264
- * ...
265
- * ```
266
- *
267
- * ### Providing write access to the underlying value
268
- *
269
- * #### Variation1 - provide a simple synchronous set function
270
- *
271
- *
272
- * #### Notes
273
- * to do : explain return StatusCodes.GoodCompletesAsynchronously;
274
- *
275
- */
276
- bindVariable(options?: BindVariableOptions, overwrite?: boolean): void;
277
- /**
278
- * @method readValueAsync
279
- */
280
- readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValue>): void;
281
- readValueAsync(context: ISessionContext | null): Promise<DataValue>;
282
- getWriteMask(): number;
283
- getUserWriteMask(): number;
284
- clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAVariable;
285
- getDataTypeNode(): UADataType;
286
- get dataTypeObj(): UADataType;
287
- checkExtensionObjectIsCorrect(extObj: ExtensionObject | ExtensionObject[] | null): boolean;
288
- /**
289
- * @private
290
- * install UAVariable to exposed th
291
- *
292
- * precondition:
293
- */
294
- installExtensionObjectVariables(): void;
295
- /**
296
- * @method bindExtensionObject
297
- * @return {ExtensionObject}
298
- */
299
- bindExtensionObjectScalar(optionalExtensionObject: ExtensionObject, options?: BindExtensionObjectOptions): ExtensionObject | null;
300
- bindExtensionObjectArray(optionalExtensionObject: ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject[] | null;
301
- bindExtensionObject(optionalExtensionObject?: ExtensionObject | ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject | ExtensionObject[] | null;
302
- updateExtensionObjectPartial(partialExtensionObject?: {
303
- [key: string]: any;
304
- }): ExtensionObject;
305
- incrementExtensionObjectPartial(path: string | string[]): void;
306
- toString(): string;
307
- historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData): Promise<HistoryReadResult>;
308
- historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
309
- _historyReadRaw(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
310
- _historyReadRawModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback?: CallbackT<HistoryReadResult>): any;
311
- _historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
312
- _historyPush(newDataValue: DataValue): any;
313
- _historyReadRawAsync(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): any;
314
- _historyReadModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): any;
315
- _update_startOfOnlineArchive(newDate: Date): void;
316
- _update_startOfArchive(newDate: Date): void;
317
- _validate_DataType(variantDataType: DataType): boolean;
318
- _internal_set_value(value: Variant): void;
319
- _internal_set_dataValue(dataValue: DataValue, indexRange?: NumericRange | null): void;
320
- _conditionRefresh(_cache?: ConditionRefreshCache): void;
321
- handle_semantic_changed(): void;
322
- private _readDataType;
323
- private _readValueRank;
324
- private _readArrayDimensions;
325
- private _readAccessLevel;
326
- private _readAccessLevelEx;
327
- private _readUserAccessLevel;
328
- private _readMinimumSamplingInterval;
329
- private _readHistorizing;
330
- }
331
- export interface UAVariableImpl {
332
- $$variableType?: any;
333
- $$dataType?: any;
334
- $$getElementBrowseName: any;
335
- $$extensionObjectArray: any;
336
- $$indexPropertyName: any;
337
- }
338
- export interface UAVariableImplT<T, DT extends DataType> extends UAVariableImpl, UAVariableT<T, DT> {
339
- on(): any;
340
- once(): any;
341
- readValueAsync(context: ISessionContext | null): Promise<DataValueT<T, DT>>;
342
- readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValueT<T, DT>>): void;
343
- readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
344
- readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
345
- writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange: NumericRange | null, callback: StatusCodeCallback): void;
346
- writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, callback: StatusCodeCallback): void;
347
- writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange?: NumericRange | null): Promise<StatusCode>;
348
- }
349
- export declare class UAVariableImplT<T, DT extends DataType> extends UAVariableImpl {
350
- }
351
- export {};
1
+ import { BindExtensionObjectOptions, CloneExtraInfo, ContinuationData, VariableDataValueSetterWithCallback } from "node-opcua-address-space-base";
2
+ import { QualifiedNameLike, NodeClass, AccessLevelFlag, AttributeIds } 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
+ valueRank?: number;
23
+ arrayDimensions?: null | number[];
24
+ accessLevel?: any;
25
+ userAccessLevel?: any;
26
+ minimumSamplingInterval?: number;
27
+ historizing?: number;
28
+ }
29
+ /**
30
+ * A OPCUA Variable Node
31
+ *
32
+ * @class UAVariable
33
+ * @constructor
34
+ * @extends BaseNode
35
+ * The AccessLevel Attribute is used to indicate how the Value of a Variable can be accessed (read/write) and if it
36
+ * contains current and/or historic data. The AccessLevel does not take any user access rights into account,
37
+ * i.e. although the Variable is writable this may be restricted to a certain user / user group.
38
+ * The AccessLevel is an 8-bit unsigned integer with the structure defined in the following table:
39
+ *
40
+ * Field Bit Description
41
+ * CurrentRead 0 Indicates if the current value is readable
42
+ * (0 means not readable, 1 means readable).
43
+ * CurrentWrite 1 Indicates if the current value is writable
44
+ * (0 means not writable, 1 means writable).
45
+ * HistoryRead 2 Indicates if the history of the value is readable
46
+ * (0 means not readable, 1 means readable).
47
+ * HistoryWrite 3 Indicates if the history of the value is writable (0 means not writable, 1 means writable).
48
+ * SemanticChange 4 Indicates if the Variable used as Property generates SemanticChangeEvents (see 9.31).
49
+ * Reserved 5:7 Reserved for future use. Shall always be zero.
50
+ *
51
+ * The first two bits also indicate if a current value of this Variable is available and the second two bits
52
+ * indicates if the history of the Variable is available via the OPC UA server.
53
+ *
54
+ */
55
+ export declare class UAVariableImpl extends BaseNodeImpl implements UAVariable {
56
+ readonly nodeClass = NodeClass.Variable;
57
+ dataType: NodeId;
58
+ private _basicDataType?;
59
+ $extensionObject?: any;
60
+ $historicalDataConfiguration?: UAHistoricalDataConfiguration;
61
+ varHistorian?: IVariableHistorian;
62
+ /**
63
+ * @internal @private
64
+ */
65
+ $dataValue: DataValue;
66
+ accessLevel: number;
67
+ userAccessLevel?: number;
68
+ valueRank: number;
69
+ minimumSamplingInterval: number;
70
+ historizing: boolean;
71
+ semantic_version: number;
72
+ arrayDimensions: null | number[];
73
+ _timestamped_get_func?: TimestampGetFunc | null;
74
+ _timestamped_set_func?: VariableDataValueSetterWithCallback | null;
75
+ _get_func: any;
76
+ _set_func: any;
77
+ refreshFunc?: (callback: CallbackT<DataValue>) => void;
78
+ __waiting_callbacks?: any[];
79
+ get typeDefinitionObj(): UAVariableType;
80
+ get typeDefinition(): NodeId;
81
+ constructor(options: UAVariableOptions);
82
+ private checkPermissionAndAccessLevelPrivate;
83
+ isReadable(context: ISessionContext): boolean;
84
+ isUserReadable(context: ISessionContext): boolean;
85
+ isWritable(context: ISessionContext): boolean;
86
+ isUserWritable(context: ISessionContext): boolean;
87
+ /**
88
+ *
89
+ *
90
+ * from OPC.UA.Spec 1.02 part 4
91
+ * 5.10.2.4 StatusCodes
92
+ * Table 51 defines values for the operation level statusCode contained in the DataValue structure of
93
+ * each values element. Common StatusCodes are defined in Table 166.
94
+ *
95
+ * Table 51 Read Operation Level Result Codes
96
+ *
97
+ * Symbolic Id Description
98
+ *
99
+ * BadNodeIdInvalid The syntax of the node id is not valid.
100
+ * BadNodeIdUnknown The node id refers to a node that does not exist in the server address space.
101
+ * BadAttributeIdInvalid BadAttributeIdInvalid The attribute is not supported for the specified node.
102
+ * BadIndexRangeInvalid The syntax of the index range parameter is invalid.
103
+ * BadIndexRangeNoData No data exists within the range of indexes specified.
104
+ * BadDataEncodingInvalid The data encoding is invalid.
105
+ * This result is used if no dataEncoding can be applied because an Attribute other
106
+ * than Value was requested or the DataType of the Value Attribute is not a subtype
107
+ * of the Structure DataType.
108
+ * BadDataEncodingUnsupported The server does not support the requested data encoding for the node.
109
+ * This result is used if a dataEncoding can be applied but the passed data encoding
110
+ * is not known to the Server.
111
+ * BadNotReadable The access level does not allow reading or subscribing to the Node.
112
+ * BadUserAccessDenied User does not have permission to perform the requested operation. (table 165)
113
+ */
114
+ readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
115
+ isEnumeration(): boolean;
116
+ isExtensionObject(): boolean;
117
+ _getEnumerationInfo(): EnumerationInfo;
118
+ asyncRefresh(oldestDate: Date, callback: CallbackT<DataValue>): void;
119
+ asyncRefresh(oldestDate: Date): Promise<DataValue>;
120
+ readEnumValue(): IEnumItem;
121
+ writeEnumValue(value: string | number): void;
122
+ readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
123
+ getBasicDataType(): DataType;
124
+ adjustVariant(variant: Variant): Variant;
125
+ verifyVariantCompatibility(variant: Variant): void;
126
+ /**
127
+ * setValueFromSource is used to let the device sets the variable values
128
+ * this method also records the current time as sourceTimestamp and serverTimestamp.
129
+ . *
130
+ * The method will raise an exception if the value is not compatible with the dataType and expected dimension
131
+ *
132
+ * @method setValueFromSource
133
+ * @param variant {Variant}
134
+ * @param [statusCode {StatusCode} = StatusCodes.Good]
135
+ * @param [sourceTimestamp= Now]
136
+ */
137
+ setValueFromSource(variant: VariantLike, statusCode?: StatusCode, sourceTimestamp?: Date): void;
138
+ writeValue(context: ISessionContext, dataValue: DataValue, indexRange: string | NumericRange | null, callback: StatusCodeCallback): void;
139
+ writeValue(context: ISessionContext, dataValue: DataValue, callback: StatusCodeCallback): void;
140
+ writeValue(context: ISessionContext, dataValue: DataValue, indexRange?: string | NumericRange | null): Promise<StatusCode>;
141
+ writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions, callback: StatusCodeCallback): void;
142
+ writeAttribute(context: ISessionContext | null, writeValue: WriteValueOptions): Promise<StatusCode>;
143
+ /**
144
+ * @method checkVariantCompatibility
145
+ * note:
146
+ * this method is overridden in address-space-data-access
147
+ * @return {StatusCode}
148
+ */
149
+ checkVariantCompatibility(value: Variant): StatusCode;
150
+ /**
151
+ * touch the source timestamp of a Variable and cascade up the change
152
+ * to the parent variable if any.
153
+ */
154
+ touchValue(optionalNow?: PreciseClock): void;
155
+ /**
156
+ * bind a variable with a get and set functions.
157
+ *
158
+ * properties:
159
+ * - value: a Variant or a status code
160
+ * - sourceTimestamp
161
+ * - sourcePicoseconds
162
+ * @param [options.timestamped_set]
163
+ * @param [options.refreshFunc] the variable asynchronous getter function.
164
+ * @param [overwrite {Boolean} = false] set overwrite to true to overwrite existing binding
165
+ * @return void
166
+ *
167
+ *
168
+ * ### Providing read access to the underlying value
169
+ *
170
+ * #### Variation 1
171
+ *
172
+ * In this variation, the user provides a function that returns a Variant with the current value.
173
+ *
174
+ * The sourceTimestamp will be set automatically.
175
+ *
176
+ * The get function is called synchronously.
177
+ *
178
+ * @example
179
+ *
180
+ *
181
+ * ```javascript
182
+ * ...
183
+ * var options = {
184
+ * get : () => {
185
+ * return new Variant({...});
186
+ * },
187
+ * set : function(variant) {
188
+ * // store the variant somewhere
189
+ * return StatusCodes.Good;
190
+ * }
191
+ * };
192
+ * ...
193
+ * engine.bindVariable(nodeId,options):
194
+ * ...
195
+ * ```
196
+ *
197
+ *
198
+ * #### Variation 2:
199
+ *
200
+ * This variation can be used when the user wants to specify a specific '''sourceTimestamp''' associated
201
+ * with the current value of the UAVariable.
202
+ *
203
+ * The provided ```timestamped_get``` function should return an object with three properties:
204
+ * * value: containing the variant value or a error StatusCode,
205
+ * * sourceTimestamp
206
+ * * sourcePicoseconds
207
+ *
208
+ * ```javascript
209
+ * ...
210
+ * var myDataValue = new DataValue({
211
+ * value: {dataType: DataType.Double , value: 10.0},
212
+ * sourceTimestamp : new Date(),
213
+ * sourcePicoseconds: 0
214
+ * });
215
+ * ...
216
+ * var options = {
217
+ * timestamped_get : () => { return myDataValue; }
218
+ * };
219
+ * ...
220
+ * engine.bindVariable(nodeId,options):
221
+ * ...
222
+ * // record a new value
223
+ * myDataValue.value.value = 5.0;
224
+ * myDataValue.sourceTimestamp = new Date();
225
+ * ...
226
+ * ```
227
+ *
228
+ *
229
+ * #### Variation 3:
230
+ *
231
+ * This variation can be used when the value associated with the variables requires a asynchronous function call to be
232
+ * extracted. In this case, the user should provide an async method ```refreshFunc```.
233
+ *
234
+ *
235
+ * The ```refreshFunc``` shall do whatever is necessary to fetch the most up to date version of the variable value, and
236
+ * call the ```callback``` function when the data is ready.
237
+ *
238
+ *
239
+ * The ```callback``` function follow the standard callback function signature:
240
+ * * the first argument shall be **null** or **Error**, depending of the outcome of the fetch operation,
241
+ * * the second argument shall be a DataValue with the new UAVariable Value, a StatusCode, and time stamps.
242
+ *
243
+ *
244
+ * Optionally, it is possible to pass a sourceTimestamp and a sourcePicoseconds value as a third and fourth arguments
245
+ * of the callback. When sourceTimestamp and sourcePicoseconds are missing, the system will set their default value
246
+ * to the current time..
247
+ *
248
+ *
249
+ * ```javascript
250
+ * ...
251
+ * var options = {
252
+ * refreshFunc : function(callback) {
253
+ * ... do_some_async_stuff_to_get_the_new_variable_value
254
+ * var dataValue = new DataValue({
255
+ * value: new Variant({...}),
256
+ * statusCode: StatusCodes.Good,
257
+ * sourceTimestamp: new Date()
258
+ * });
259
+ * callback(null,dataValue);
260
+ * }
261
+ * };
262
+ * ...
263
+ * variable.bindVariable(nodeId,options):
264
+ * ...
265
+ * ```
266
+ *
267
+ * ### Providing write access to the underlying value
268
+ *
269
+ * #### Variation1 - provide a simple synchronous set function
270
+ *
271
+ *
272
+ * #### Notes
273
+ * to do : explain return StatusCodes.GoodCompletesAsynchronously;
274
+ *
275
+ */
276
+ bindVariable(options?: BindVariableOptions, overwrite?: boolean): void;
277
+ /**
278
+ * @method readValueAsync
279
+ */
280
+ readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValue>): void;
281
+ readValueAsync(context: ISessionContext | null): Promise<DataValue>;
282
+ getWriteMask(): number;
283
+ getUserWriteMask(): number;
284
+ clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAVariable;
285
+ getDataTypeNode(): UADataType;
286
+ get dataTypeObj(): UADataType;
287
+ checkExtensionObjectIsCorrect(extObj: ExtensionObject | ExtensionObject[] | null): boolean;
288
+ /**
289
+ * @private
290
+ * install UAVariable to exposed th
291
+ *
292
+ * precondition:
293
+ */
294
+ installExtensionObjectVariables(): void;
295
+ /**
296
+ * @method bindExtensionObject
297
+ * @return {ExtensionObject}
298
+ */
299
+ bindExtensionObjectScalar(optionalExtensionObject: ExtensionObject, options?: BindExtensionObjectOptions): ExtensionObject | null;
300
+ bindExtensionObjectArray(optionalExtensionObject: ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject[] | null;
301
+ bindExtensionObject(optionalExtensionObject?: ExtensionObject | ExtensionObject[], options?: BindExtensionObjectOptions): ExtensionObject | ExtensionObject[] | null;
302
+ updateExtensionObjectPartial(partialExtensionObject?: {
303
+ [key: string]: any;
304
+ }): ExtensionObject;
305
+ incrementExtensionObjectPartial(path: string | string[]): void;
306
+ toString(): string;
307
+ historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData): Promise<HistoryReadResult>;
308
+ historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
309
+ _historyReadRaw(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
310
+ _historyReadRawModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback?: CallbackT<HistoryReadResult>): any;
311
+ _historyRead(context: ISessionContext, historyReadDetails: HistoryReadDetails | ReadRawModifiedDetails | ReadEventDetails | ReadProcessedDetails | ReadAtTimeDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
312
+ _historyPush(newDataValue: DataValue): any;
313
+ _historyReadRawAsync(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): any;
314
+ _historyReadModify(context: ISessionContext, historyReadRawModifiedDetails: ReadRawModifiedDetails, indexRange: NumericRange | null, dataEncoding: QualifiedNameLike | null, continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): any;
315
+ _update_startOfOnlineArchive(newDate: Date): void;
316
+ _update_startOfArchive(newDate: Date): void;
317
+ _validate_DataType(variantDataType: DataType): boolean;
318
+ _internal_set_value(value: Variant): void;
319
+ _internal_set_dataValue(dataValue: DataValue, indexRange?: NumericRange | null): void;
320
+ _conditionRefresh(_cache?: ConditionRefreshCache): void;
321
+ handle_semantic_changed(): void;
322
+ private _readDataType;
323
+ private _readValueRank;
324
+ private _readArrayDimensions;
325
+ private _readAccessLevel;
326
+ private _readAccessLevelEx;
327
+ private _readUserAccessLevel;
328
+ private _readMinimumSamplingInterval;
329
+ private _readHistorizing;
330
+ }
331
+ export interface UAVariableImpl {
332
+ $$variableType?: any;
333
+ $$dataType?: any;
334
+ $$getElementBrowseName: any;
335
+ $$extensionObjectArray: any;
336
+ $$indexPropertyName: any;
337
+ }
338
+ export interface UAVariableImplT<T, DT extends DataType> extends UAVariableImpl, UAVariableT<T, DT> {
339
+ on(): any;
340
+ once(): any;
341
+ readValueAsync(context: ISessionContext | null): Promise<DataValueT<T, DT>>;
342
+ readValueAsync(context: ISessionContext | null, callback: CallbackT<DataValueT<T, DT>>): void;
343
+ readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
344
+ readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<T, DT>;
345
+ writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange: NumericRange | null, callback: StatusCodeCallback): void;
346
+ writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, callback: StatusCodeCallback): void;
347
+ writeValue(context: ISessionContext, dataValue: DataValueT<T, DT>, indexRange?: NumericRange | null): Promise<StatusCode>;
348
+ }
349
+ export declare class UAVariableImplT<T, DT extends DataType> extends UAVariableImpl {
350
+ }
351
+ export {};