node-opcua-client 2.74.0 → 2.76.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 (77) hide show
  1. package/dist/alarms_and_conditions/client_alarm.d.ts +49 -45
  2. package/dist/alarms_and_conditions/client_alarm.js +109 -101
  3. package/dist/alarms_and_conditions/client_alarm.js.map +1 -1
  4. package/dist/alarms_and_conditions/client_alarm_list.d.ts +25 -25
  5. package/dist/alarms_and_conditions/client_alarm_list.js +97 -97
  6. package/dist/alarms_and_conditions/client_alarm_list.js.map +1 -1
  7. package/dist/alarms_and_conditions/client_alarm_tools.d.ts +4 -4
  8. package/dist/alarms_and_conditions/client_alarm_tools.js +156 -152
  9. package/dist/alarms_and_conditions/client_alarm_tools.js.map +1 -1
  10. package/dist/alarms_and_conditions/client_alarm_tools_acknowledge_all_conditions.d.ts +18 -18
  11. package/dist/alarms_and_conditions/client_alarm_tools_acknowledge_all_conditions.js +192 -190
  12. package/dist/alarms_and_conditions/client_alarm_tools_acknowledge_all_conditions.js.map +1 -1
  13. package/dist/alarms_and_conditions/client_alarm_tools_dump_event.d.ts +9 -9
  14. package/dist/alarms_and_conditions/client_alarm_tools_dump_event.js +73 -73
  15. package/dist/alarms_and_conditions/client_alarm_tools_extractConditionFields.d.ts +3 -8
  16. package/dist/alarms_and_conditions/client_alarm_tools_extractConditionFields.js +118 -120
  17. package/dist/alarms_and_conditions/client_alarm_tools_extractConditionFields.js.map +1 -1
  18. package/dist/alarms_and_conditions/client_tools.d.ts +7 -7
  19. package/dist/alarms_and_conditions/client_tools.js +180 -180
  20. package/dist/client_base.d.ts +277 -277
  21. package/dist/client_base.js +14 -14
  22. package/dist/client_monitored_item.d.ts +21 -21
  23. package/dist/client_monitored_item.js +11 -11
  24. package/dist/client_monitored_item_base.d.ts +39 -39
  25. package/dist/client_monitored_item_base.js +2 -2
  26. package/dist/client_monitored_item_group.d.ts +18 -18
  27. package/dist/client_monitored_item_group.js +13 -13
  28. package/dist/client_monitored_item_toolbox.d.ts +15 -15
  29. package/dist/client_monitored_item_toolbox.js +117 -117
  30. package/dist/client_session.d.ts +484 -484
  31. package/dist/client_session.js +10 -10
  32. package/dist/client_session_keepalive_manager.d.ts +34 -34
  33. package/dist/client_session_keepalive_manager.js +150 -150
  34. package/dist/client_subscription.d.ts +241 -241
  35. package/dist/client_subscription.js +14 -14
  36. package/dist/client_utils.d.ts +22 -22
  37. package/dist/client_utils.js +88 -88
  38. package/dist/common.d.ts +17 -17
  39. package/dist/common.js +5 -5
  40. package/dist/index.d.ts +55 -55
  41. package/dist/index.js +93 -93
  42. package/dist/opcua_client.d.ts +132 -132
  43. package/dist/opcua_client.js +33 -33
  44. package/dist/private/client_base_impl.d.ts +157 -157
  45. package/dist/private/client_base_impl.js +1337 -1337
  46. package/dist/private/client_monitored_item_base_impl.d.ts +3 -3
  47. package/dist/private/client_monitored_item_base_impl.js +4 -4
  48. package/dist/private/client_monitored_item_group_impl.d.ts +53 -53
  49. package/dist/private/client_monitored_item_group_impl.js +159 -159
  50. package/dist/private/client_monitored_item_impl.d.ts +93 -93
  51. package/dist/private/client_monitored_item_impl.js +305 -304
  52. package/dist/private/client_monitored_item_impl.js.map +1 -1
  53. package/dist/private/client_publish_engine.d.ts +62 -62
  54. package/dist/private/client_publish_engine.js +408 -408
  55. package/dist/private/client_session_impl.d.ts +621 -621
  56. package/dist/private/client_session_impl.js +1302 -1302
  57. package/dist/private/client_subscription_impl.d.ts +93 -93
  58. package/dist/private/client_subscription_impl.js +748 -748
  59. package/dist/private/i_private_client.d.ts +18 -18
  60. package/dist/private/i_private_client.js +2 -2
  61. package/dist/private/opcua_client_impl.d.ts +169 -169
  62. package/dist/private/opcua_client_impl.js +981 -981
  63. package/dist/reconnection.d.ts +9 -9
  64. package/dist/reconnection.js +408 -408
  65. package/dist/tools/findservers.d.ts +20 -20
  66. package/dist/tools/findservers.js +61 -61
  67. package/dist/tools/read_history_server_capabilities.d.ts +6 -6
  68. package/dist/tools/read_history_server_capabilities.js +99 -99
  69. package/dist/verify.d.ts +5 -5
  70. package/dist/verify.js +134 -134
  71. package/package.json +46 -46
  72. package/source/alarms_and_conditions/client_alarm.ts +28 -17
  73. package/source/alarms_and_conditions/client_alarm_list.ts +1 -0
  74. package/source/alarms_and_conditions/client_alarm_tools.ts +33 -23
  75. package/source/alarms_and_conditions/client_alarm_tools_acknowledge_all_conditions.ts +10 -4
  76. package/source/alarms_and_conditions/client_alarm_tools_extractConditionFields.ts +11 -11
  77. package/source/private/client_monitored_item_impl.ts +4 -3
@@ -5,7 +5,6 @@ import { CreateSubscriptionRequestOptions, MonitoringParametersOptions } from "n
5
5
  import { StatusCode, StatusCodes } from "node-opcua-status-code";
6
6
  import { DataType, Variant } from "node-opcua-variant";
7
7
  import { checkDebugFlag, make_debugLog, make_errorLog } from "node-opcua-debug";
8
- import { ClientMonitoredItem } from "../client_monitored_item";
9
8
  import { ClientSession } from "../client_session";
10
9
  import { EventStuff, fieldsToJson } from "./client_alarm";
11
10
  import { extractConditionFields } from "./client_alarm_tools_extractConditionFields";
@@ -22,6 +21,7 @@ const errorLog = make_errorLog(__filename);
22
21
  * @param comment
23
22
  */
24
23
  export async function acknowledgeCondition(session: ClientSession, eventStuff: EventStuff, comment: string): Promise<StatusCode> {
24
+
25
25
  try {
26
26
  const conditionId = eventStuff.conditionId.value;
27
27
  const eventId = eventStuff.eventId.value;
@@ -65,7 +65,9 @@ export async function findActiveConditions(session: ClientSession): Promise<Even
65
65
 
66
66
  const fields = await extractConditionFields(session, "AcknowledgeableConditionType");
67
67
 
68
- const eventFilter = constructEventFilter(fields, [resolveNodeId("AcknowledgeableConditionType")]);
68
+ // note: we may want to have this select clause
69
+ // Or(OfType("AcknowledgeableConditionType"), OfType("RefreshStartEventType"), OfType("RefreshEndEventType"))
70
+ const eventFilter = constructEventFilter(fields);
69
71
 
70
72
  const monitoringParameters: MonitoringParametersOptions = {
71
73
  discardOldest: false,
@@ -88,13 +90,17 @@ export async function findActiveConditions(session: ClientSession): Promise<Even
88
90
  // now create a event monitored Item
89
91
  event_monitoringItem.on("changed", (_eventFields: any) => {
90
92
  const eventFields = _eventFields as Variant[];
93
+
91
94
  try {
92
95
  if (RefreshEndEventHasBeenReceived) {
93
96
  return;
94
97
  }
98
+
99
+
95
100
  // dumpEvent(session, fields, eventFields);
96
101
  const pojo = fieldsToJson(fields, eventFields) as any;
97
- // console.log(pojo.eventType.value.toString(), RefreshEndEventType, RefreshStartEventType);
102
+
103
+ // console.log(pojo.eventType.value.toString({ addressSpace}), RefreshEndEventType, RefreshStartEventType);
98
104
 
99
105
  // make sure we only start recording event after the RefreshStartEvent has been received
100
106
  if (!refreshStartEventHasBeenReceived) {
@@ -147,7 +153,7 @@ export async function acknwoledgeAllConditions(session: ClientSession, message:
147
153
  // filter acknowledgable conditions (no acked yet)
148
154
  conditions = conditions.filter((pojo) => pojo.ackedState.id.value === false);
149
155
 
150
- const promises: Array<Promise<any>> = [];
156
+ const promises: Array<Promise<StatusCode>> = [];
151
157
  for (const eventStuff of conditions) {
152
158
  promises.push(acknowledgeCondition(session, eventStuff, message));
153
159
  }
@@ -2,15 +2,11 @@ import { BrowseDirection, NodeClassMask, QualifiedName } from "node-opcua-data-m
2
2
  import { NodeId, NodeIdLike, resolveNodeId } from "node-opcua-nodeid";
3
3
  import { IBasicSession } from "node-opcua-pseudo-session";
4
4
  import { BrowseDescriptionOptions } from "node-opcua-service-browse";
5
+ import { NodeClass } from "node-opcua-types";
5
6
 
6
- /**
7
- *
8
- * @param session
9
- * @param conditionNodeId
10
- */
11
7
  export async function extractConditionFields(session: IBasicSession, conditionNodeId: NodeIdLike): Promise<string[]> {
12
8
  // conditionNodeId could be a Object of type ConditionType
13
- // or it could be directly a ObhectType which is a subType of ConditionType
9
+ // or it could be directly a ObjectType which is a subType of ConditionType
14
10
 
15
11
  const _duplicateMap: any = {};
16
12
  const fields1: string[] = [];
@@ -63,7 +59,9 @@ export async function extractConditionFields(session: IBasicSession, conditionNo
63
59
 
64
60
  for (const ref of result.references) {
65
61
  const n = name + "." + ref.browseName.toString();
66
- addField(n);
62
+ if (ref.nodeClass === NodeClass.Variable) {
63
+ addField(n);
64
+ }
67
65
  deferObjectOrVariableInvestigation(ref.nodeId, n);
68
66
  }
69
67
  }
@@ -83,8 +81,10 @@ export async function extractConditionFields(session: IBasicSession, conditionNo
83
81
  const nodeToBrowse2: BrowseDescriptionOptions = {
84
82
  browseDirection: BrowseDirection.Forward,
85
83
  includeSubtypes: true,
84
+
86
85
  // tslint:disable-next-line: no-bitwise
87
86
  nodeClassMask: NodeClassMask.Object | NodeClassMask.Variable,
87
+
88
88
  nodeId: conditionNodeId,
89
89
  referenceTypeId: resolveNodeId("HasChild"),
90
90
  resultMask: 63
@@ -92,12 +92,11 @@ export async function extractConditionFields(session: IBasicSession, conditionNo
92
92
  const nodesToBrowse = [nodeToBrowse1, nodeToBrowse2];
93
93
  const browseResults = await session.browse(nodesToBrowse);
94
94
 
95
- // console.log(browseResults[0].toString());
96
- // console.log(browseResults[1].toString());
97
-
98
95
  if (browseResults[1] && browseResults[1].references) {
99
96
  for (const ref of browseResults[1].references) {
100
- addField(ref.browseName.toString());
97
+ if (ref.nodeClass === NodeClass.Variable) {
98
+ addField(ref.browseName.toString());
99
+ }
101
100
  deferObjectOrVariableInvestigation(ref.nodeId, ref.browseName.toString());
102
101
  }
103
102
  }
@@ -115,5 +114,6 @@ export async function extractConditionFields(session: IBasicSession, conditionNo
115
114
 
116
115
  // add this field which will always be added
117
116
  addField("ConditionId");
117
+
118
118
  return fields1;
119
119
  }
@@ -8,7 +8,7 @@ import { assert } from "node-opcua-assert";
8
8
 
9
9
  import { AttributeIds } from "node-opcua-data-model";
10
10
  import { DataValue, coerceTimestampsToReturn } from "node-opcua-data-value";
11
- import { checkDebugFlag, make_debugLog } from "node-opcua-debug";
11
+ import { checkDebugFlag, make_debugLog, make_warningLog } from "node-opcua-debug";
12
12
  import { ExtensionObject } from "node-opcua-extension-object";
13
13
  import { EventFilter } from "node-opcua-service-filter";
14
14
  import { ReadValueId, ReadValueIdOptions, TimestampsToReturn } from "node-opcua-service-read";
@@ -29,6 +29,7 @@ import { ClientSubscription } from "../client_subscription";
29
29
  import { ClientMonitoredItem_create, ClientSubscriptionImpl } from "./client_subscription_impl";
30
30
 
31
31
  const debugLog = make_debugLog(__filename);
32
+ const warningLog = make_warningLog(__filename);
32
33
  const doDebug = checkDebugFlag(__filename);
33
34
 
34
35
  export type PrepareForMonitoringResult =
@@ -216,8 +217,8 @@ export class ClientMonitoredItemImpl extends EventEmitter implements ClientMonit
216
217
  try {
217
218
  this.emit("changed", eventFields);
218
219
  } catch (err) {
219
- debugLog("Exception raised inside the event handler called by ClientMonitoredItem.on('change')", err);
220
- debugLog("Please verify the application using this node-opcua client");
220
+ warningLog("Exception raised inside the event handler called by ClientMonitoredItem.on('change')", err);
221
+ warningLog("Please verify the application using this node-opcua client");
221
222
  }
222
223
  }
223
224