node-opcua-client 2.74.0 → 2.75.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.
- package/dist/alarms_and_conditions/client_alarm.d.ts +5 -1
- package/dist/alarms_and_conditions/client_alarm.js +23 -15
- package/dist/alarms_and_conditions/client_alarm.js.map +1 -1
- package/dist/alarms_and_conditions/client_alarm_list.js.map +1 -1
- package/dist/alarms_and_conditions/client_alarm_tools.js +22 -18
- package/dist/alarms_and_conditions/client_alarm_tools.js.map +1 -1
- package/dist/alarms_and_conditions/client_alarm_tools_acknowledge_all_conditions.js +4 -2
- package/dist/alarms_and_conditions/client_alarm_tools_acknowledge_all_conditions.js.map +1 -1
- package/dist/alarms_and_conditions/client_alarm_tools_extractConditionFields.d.ts +0 -5
- package/dist/alarms_and_conditions/client_alarm_tools_extractConditionFields.js +8 -10
- package/dist/alarms_and_conditions/client_alarm_tools_extractConditionFields.js.map +1 -1
- package/dist/private/client_monitored_item_impl.js +3 -2
- package/dist/private/client_monitored_item_impl.js.map +1 -1
- package/package.json +28 -28
- package/source/alarms_and_conditions/client_alarm.ts +28 -17
- package/source/alarms_and_conditions/client_alarm_list.ts +1 -0
- package/source/alarms_and_conditions/client_alarm_tools.ts +33 -23
- package/source/alarms_and_conditions/client_alarm_tools_acknowledge_all_conditions.ts +10 -4
- package/source/alarms_and_conditions/client_alarm_tools_extractConditionFields.ts +11 -11
- package/source/private/client_monitored_item_impl.ts +4 -3
|
@@ -19,6 +19,7 @@ export interface EventStuff {
|
|
|
19
19
|
activeState: TTwoStateStatus;
|
|
20
20
|
ackedState: TTwoStateStatus;
|
|
21
21
|
confirmedState: TTwoStateStatus;
|
|
22
|
+
conditionName?: TVariant<string>;
|
|
22
23
|
}
|
|
23
24
|
export interface ClientAlarm {
|
|
24
25
|
conditionId: NodeId;
|
|
@@ -42,4 +43,7 @@ export declare class ClientAlarm extends EventEmitter {
|
|
|
42
43
|
getRetain(): boolean;
|
|
43
44
|
toString(): string;
|
|
44
45
|
}
|
|
45
|
-
|
|
46
|
+
/**
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
export declare function fieldsToJson(fields: string[], eventFields: Variant[], flat?: boolean): EventStuff;
|
|
@@ -12,9 +12,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.fieldsToJson = exports.ClientAlarm = void 0;
|
|
13
13
|
const events_1 = require("events");
|
|
14
14
|
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
15
|
+
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
15
16
|
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
16
17
|
const node_opcua_utils_1 = require("node-opcua-utils");
|
|
17
18
|
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
19
|
+
const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
|
|
18
20
|
/**
|
|
19
21
|
* describes a OPCUA Alarm as seen in the client side
|
|
20
22
|
*/
|
|
@@ -64,38 +66,44 @@ class ClientAlarm extends events_1.EventEmitter {
|
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
68
|
exports.ClientAlarm = ClientAlarm;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
/**
|
|
70
|
+
* @private
|
|
71
|
+
*/
|
|
72
|
+
function fieldsToJson(fields, eventFields, flat) {
|
|
69
73
|
function setProperty(_data, fieldName, value) {
|
|
70
74
|
let name;
|
|
71
75
|
if (!fieldName || value === null) {
|
|
72
76
|
return;
|
|
73
77
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
if (!flat) {
|
|
79
|
+
const f = fieldName.split(".");
|
|
80
|
+
if (f.length === 1) {
|
|
81
|
+
fieldName = (0, node_opcua_utils_1.lowerFirstLetter)(fieldName);
|
|
82
|
+
_data[fieldName] = value;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
for (let i = 0; i < f.length - 1; i++) {
|
|
86
|
+
name = (0, node_opcua_utils_1.lowerFirstLetter)(f[i]);
|
|
87
|
+
_data[name] = _data[name] || {};
|
|
88
|
+
_data = _data[name];
|
|
89
|
+
}
|
|
90
|
+
name = (0, node_opcua_utils_1.lowerFirstLetter)(f[f.length - 1]);
|
|
91
|
+
_data[name] = value;
|
|
92
|
+
}
|
|
78
93
|
}
|
|
79
94
|
else {
|
|
80
|
-
|
|
81
|
-
name = (0, node_opcua_utils_1.lowerFirstLetter)(f[i]);
|
|
82
|
-
_data[name] = _data[name] || {};
|
|
83
|
-
_data = _data[name];
|
|
84
|
-
}
|
|
85
|
-
name = (0, node_opcua_utils_1.lowerFirstLetter)(f[f.length - 1]);
|
|
95
|
+
const name = fieldName.split(".").map(node_opcua_utils_1.lowerFirstLetter).join(".");
|
|
86
96
|
_data[name] = value;
|
|
87
97
|
}
|
|
88
98
|
}
|
|
89
99
|
if (fields.length > eventFields.length) {
|
|
90
|
-
|
|
91
|
-
console.log("warning fields.length !== eventFields.length", fields.length, eventFields.length);
|
|
100
|
+
warningLog("warning fields.length !== eventFields.length", fields.length, eventFields.length);
|
|
92
101
|
}
|
|
93
102
|
const data = {};
|
|
94
103
|
for (let index = 0; index < fields.length; index++) {
|
|
95
104
|
const variant = eventFields[index];
|
|
96
105
|
setProperty(data, fields[index], variant);
|
|
97
106
|
}
|
|
98
|
-
setProperty(data, "conditionId", eventFields[eventFields.length - 1]);
|
|
99
107
|
return data;
|
|
100
108
|
}
|
|
101
109
|
exports.fieldsToJson = fieldsToJson;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_alarm.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAsC;AACtC,yDAA2C;AAC3C,yDAA0D;AAE1D,uDAAoD;AACpD,2DAAuD;
|
|
1
|
+
{"version":3,"file":"client_alarm.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_alarm_list.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm_list.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,yDAA2C;
|
|
1
|
+
{"version":3,"file":"client_alarm_list.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm_list.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,yDAA2C;AAG3C,iDAAyD;AAWzD,4CAA4C;AAC5C,MAAa,eAAgB,SAAQ,qBAAY;IAG7C;QACI,KAAK,EAAE,CAAC;QAHJ,SAAI,GAAmC,EAAE,CAAC;IAIlD,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO;YACH,IAAI;gBACA,IAAI,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE;oBAC9B,OAAO;wBACH,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;qBAC/B,CAAC;iBACL;qBAAM;oBACH,OAAO;wBACH,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;qBAC/B,CAAC;iBACL;YACL,CAAC;SACJ,CAAC;IACN,CAAC;IAEM,MAAM;QACT,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,UAAsB;QAChC,aAAa;QACb,sFAAsF;QACtF,kFAAkF;QAClF,WAAW;QAEX,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QAC9C,IAAA,0BAAM,EAAC,WAAW,EAAE,8EAA8E,CAAC,CAAC;QACpG,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,IAAI,0BAAW,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;SACvC;aAAM;YACH,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;SACpC;IACL,CAAC;IACM,WAAW,CAAC,UAAsB;QACrC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;IAED,IAAW,MAAM;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;IACM,iBAAiB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE;gBACpB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC5B;SACJ;IACL,CAAC;IAEO,YAAY,CAAC,KAAkB;QACnC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAEO,OAAO,CAAC,WAAmB,EAAE,SAAiB;QAClD,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC/D,CAAC;IACO,SAAS,CAAC,WAAmB,EAAE,SAAiB;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,EAAE,IAAI,IAAI,CAAC;IACtB,CAAC;IACO,WAAW,CAAC,WAAmB,EAAE,SAAiB;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,EAAE,EAAE;YACJ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA/FD,0CA+FC"}
|
|
@@ -14,6 +14,7 @@ const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
|
14
14
|
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
15
15
|
const node_opcua_service_filter_1 = require("node-opcua-service-filter");
|
|
16
16
|
const node_opcua_service_read_1 = require("node-opcua-service-read");
|
|
17
|
+
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
17
18
|
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
18
19
|
const client_alarm_1 = require("./client_alarm");
|
|
19
20
|
const client_alarm_list_1 = require("./client_alarm_list");
|
|
@@ -21,6 +22,7 @@ const client_alarm_tools_extractConditionFields_1 = require("./client_alarm_tool
|
|
|
21
22
|
const client_tools_1 = require("./client_tools");
|
|
22
23
|
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)("A&E");
|
|
23
24
|
const debugLog = (0, node_opcua_debug_1.make_debugLog)("A&E");
|
|
25
|
+
const warningLog = (0, node_opcua_debug_1.make_warningLog)("A&E");
|
|
24
26
|
function r(_key, o) {
|
|
25
27
|
if (o && o.dataType === "Null") {
|
|
26
28
|
return undefined;
|
|
@@ -65,7 +67,7 @@ function installAlarmMonitoring(session) {
|
|
|
65
67
|
const clientAlarmList = new client_alarm_list_1.ClientAlarmList();
|
|
66
68
|
_sessionPriv.$clientAlarmList = clientAlarmList;
|
|
67
69
|
const request = {
|
|
68
|
-
maxNotificationsPerPublish:
|
|
70
|
+
maxNotificationsPerPublish: 100,
|
|
69
71
|
priority: 6,
|
|
70
72
|
publishingEnabled: true,
|
|
71
73
|
requestedLifetimeCount: 10000,
|
|
@@ -79,17 +81,16 @@ function installAlarmMonitoring(session) {
|
|
|
79
81
|
nodeId: (0, node_opcua_nodeid_1.resolveNodeId)("Server") // i=2253
|
|
80
82
|
};
|
|
81
83
|
const fields = yield (0, client_alarm_tools_extractConditionFields_1.extractConditionFields)(session, "AlarmConditionType");
|
|
82
|
-
const
|
|
84
|
+
const AcknowledgeableConditionType = (0, node_opcua_nodeid_1.resolveNodeId)("AcknowledgeableConditionType");
|
|
85
|
+
const eventFilter = (0, node_opcua_service_filter_1.constructEventFilter)(fields, (0, node_opcua_service_filter_1.ofType)(AcknowledgeableConditionType));
|
|
83
86
|
const monitoringParameters = {
|
|
84
87
|
discardOldest: false,
|
|
85
88
|
filter: eventFilter,
|
|
86
|
-
queueSize:
|
|
89
|
+
queueSize: 1000,
|
|
87
90
|
samplingInterval: 0
|
|
88
91
|
};
|
|
89
92
|
// now create a event monitored Item
|
|
90
93
|
const eventMonitoringItem = yield subscription.monitor(itemToMonitor, monitoringParameters, node_opcua_service_read_1.TimestampsToReturn.Both);
|
|
91
|
-
const RefreshStartEventType = (0, node_opcua_nodeid_1.resolveNodeId)("RefreshStartEventType").toString();
|
|
92
|
-
const RefreshEndEventType = (0, node_opcua_nodeid_1.resolveNodeId)("RefreshEndEventType").toString();
|
|
93
94
|
const queueEvent = [];
|
|
94
95
|
function flushQueue() {
|
|
95
96
|
const q = [...queueEvent];
|
|
@@ -100,17 +101,17 @@ function installAlarmMonitoring(session) {
|
|
|
100
101
|
}
|
|
101
102
|
let inInit = true;
|
|
102
103
|
eventMonitoringItem.on("changed", (eventFields) => {
|
|
103
|
-
|
|
104
|
+
var _a, _b;
|
|
104
105
|
const pojo = (0, client_alarm_1.fieldsToJson)(fields, eventFields);
|
|
106
|
+
const { eventType, eventId, conditionId, conditionName } = pojo;
|
|
107
|
+
debugLog("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ---- ALARM RECEIVED " +
|
|
108
|
+
eventType.value.toString() +
|
|
109
|
+
" " +
|
|
110
|
+
((_a = eventId.value) === null || _a === void 0 ? void 0 : _a.toString("hex")));
|
|
105
111
|
try {
|
|
106
|
-
if (
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
if (pojo.eventType.value.toString() === RefreshEndEventType) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (!pojo.conditionId || !pojo.conditionId.value || pojo.conditionId.dataType === 0) {
|
|
112
|
+
if (!conditionId || !conditionId.value || conditionId.dataType === node_opcua_variant_1.DataType.Null) {
|
|
113
113
|
// not a acknowledgeable condition
|
|
114
|
+
warningLog(" not acknowledgeable condition ---- " + eventType.value.toString() + " ", conditionId, conditionName === null || conditionName === void 0 ? void 0 : conditionName.value, " " + ((_b = eventId.value) === null || _b === void 0 ? void 0 : _b.toString("hex")));
|
|
114
115
|
return;
|
|
115
116
|
}
|
|
116
117
|
queueEvent.push(pojo);
|
|
@@ -119,10 +120,8 @@ function installAlarmMonitoring(session) {
|
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
122
|
catch (err) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
// tslint:disable-next-line: no-console
|
|
125
|
-
console.log("Error !!", err);
|
|
123
|
+
warningLog(JSON.stringify(pojo, r, " "));
|
|
124
|
+
warningLog("Error !!", err);
|
|
126
125
|
}
|
|
127
126
|
// Release 1.04 8 OPC Unified Architecture, Part 9
|
|
128
127
|
// 4.5 Condition state synchronization
|
|
@@ -140,7 +139,12 @@ function installAlarmMonitoring(session) {
|
|
|
140
139
|
yield (0, client_tools_1.callConditionRefresh)(subscription);
|
|
141
140
|
}
|
|
142
141
|
catch (err) {
|
|
143
|
-
|
|
142
|
+
if (err.message.match(/BadNothingToDo/)) {
|
|
143
|
+
/** fine! nothing to do */
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
warningLog("Server may not implement condition refresh", err.message);
|
|
147
|
+
}
|
|
144
148
|
}
|
|
145
149
|
_sessionPriv.$monitoredItemForAlarmList = eventMonitoringItem;
|
|
146
150
|
setTimeout(() => flushQueue(), 10);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_alarm_tools.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm_tools.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAAqD;AACrD,yDAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"client_alarm_tools.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm_tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,7 +76,9 @@ function findActiveConditions(session) {
|
|
|
76
76
|
nodeId: (0, node_opcua_nodeid_1.resolveNodeId)("Server") // i=2253
|
|
77
77
|
};
|
|
78
78
|
const fields = yield (0, client_alarm_tools_extractConditionFields_1.extractConditionFields)(session, "AcknowledgeableConditionType");
|
|
79
|
-
|
|
79
|
+
// note: we may want to have this select clause
|
|
80
|
+
// Or(OfType("AcknowledgeableConditionType"), OfType("RefreshStartEventType"), OfType("RefreshEndEventType"))
|
|
81
|
+
const eventFilter = (0, node_opcua_service_filter_1.constructEventFilter)(fields);
|
|
80
82
|
const monitoringParameters = {
|
|
81
83
|
discardOldest: false,
|
|
82
84
|
filter: eventFilter,
|
|
@@ -99,7 +101,7 @@ function findActiveConditions(session) {
|
|
|
99
101
|
}
|
|
100
102
|
// dumpEvent(session, fields, eventFields);
|
|
101
103
|
const pojo = (0, client_alarm_1.fieldsToJson)(fields, eventFields);
|
|
102
|
-
// console.log(pojo.eventType.value.toString(), RefreshEndEventType, RefreshStartEventType);
|
|
104
|
+
// console.log(pojo.eventType.value.toString({ addressSpace}), RefreshEndEventType, RefreshStartEventType);
|
|
103
105
|
// make sure we only start recording event after the RefreshStartEvent has been received
|
|
104
106
|
if (!refreshStartEventHasBeenReceived) {
|
|
105
107
|
if (pojo.eventType.value.toString() === RefreshStartEventType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_alarm_tools_acknowledge_all_conditions.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm_tools_acknowledge_all_conditions.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAkD;AAClD,yEAAiE;AACjE,qEAA+F;AAE/F,mEAAiE;AACjE,2DAAuD;AACvD,uDAAgF;
|
|
1
|
+
{"version":3,"file":"client_alarm_tools_acknowledge_all_conditions.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm_tools_acknowledge_all_conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
1
|
import { NodeIdLike } from "node-opcua-nodeid";
|
|
2
2
|
import { IBasicSession } from "node-opcua-pseudo-session";
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
* @param session
|
|
6
|
-
* @param conditionNodeId
|
|
7
|
-
*/
|
|
8
3
|
export declare function extractConditionFields(session: IBasicSession, conditionNodeId: NodeIdLike): Promise<string[]>;
|
|
@@ -12,15 +12,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.extractConditionFields = void 0;
|
|
13
13
|
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
14
14
|
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
15
|
-
|
|
16
|
-
*
|
|
17
|
-
* @param session
|
|
18
|
-
* @param conditionNodeId
|
|
19
|
-
*/
|
|
15
|
+
const node_opcua_types_1 = require("node-opcua-types");
|
|
20
16
|
function extractConditionFields(session, conditionNodeId) {
|
|
21
17
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
18
|
// conditionNodeId could be a Object of type ConditionType
|
|
23
|
-
// or it could be directly a
|
|
19
|
+
// or it could be directly a ObjectType which is a subType of ConditionType
|
|
24
20
|
const _duplicateMap = {};
|
|
25
21
|
const fields1 = [];
|
|
26
22
|
function addField(name) {
|
|
@@ -64,7 +60,9 @@ function extractConditionFields(session, conditionNodeId) {
|
|
|
64
60
|
}
|
|
65
61
|
for (const ref of result.references) {
|
|
66
62
|
const n = name + "." + ref.browseName.toString();
|
|
67
|
-
|
|
63
|
+
if (ref.nodeClass === node_opcua_types_1.NodeClass.Variable) {
|
|
64
|
+
addField(n);
|
|
65
|
+
}
|
|
68
66
|
deferObjectOrVariableInvestigation(ref.nodeId, n);
|
|
69
67
|
}
|
|
70
68
|
}
|
|
@@ -93,11 +91,11 @@ function extractConditionFields(session, conditionNodeId) {
|
|
|
93
91
|
};
|
|
94
92
|
const nodesToBrowse = [nodeToBrowse1, nodeToBrowse2];
|
|
95
93
|
const browseResults = yield session.browse(nodesToBrowse);
|
|
96
|
-
// console.log(browseResults[0].toString());
|
|
97
|
-
// console.log(browseResults[1].toString());
|
|
98
94
|
if (browseResults[1] && browseResults[1].references) {
|
|
99
95
|
for (const ref of browseResults[1].references) {
|
|
100
|
-
|
|
96
|
+
if (ref.nodeClass === node_opcua_types_1.NodeClass.Variable) {
|
|
97
|
+
addField(ref.browseName.toString());
|
|
98
|
+
}
|
|
101
99
|
deferObjectOrVariableInvestigation(ref.nodeId, ref.browseName.toString());
|
|
102
100
|
}
|
|
103
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_alarm_tools_extractConditionFields.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm_tools_extractConditionFields.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAAsF;AACtF,yDAAsE;
|
|
1
|
+
{"version":3,"file":"client_alarm_tools_extractConditionFields.js","sourceRoot":"","sources":["../../source/alarms_and_conditions/client_alarm_tools_extractConditionFields.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ const client_monitored_item_1 = require("../client_monitored_item");
|
|
|
19
19
|
const client_monitored_item_toolbox_1 = require("../client_monitored_item_toolbox");
|
|
20
20
|
const client_subscription_impl_1 = require("./client_subscription_impl");
|
|
21
21
|
const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
|
|
22
|
+
const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
|
|
22
23
|
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
|
|
23
24
|
/**
|
|
24
25
|
* ClientMonitoredItem
|
|
@@ -143,8 +144,8 @@ class ClientMonitoredItemImpl extends events_1.EventEmitter {
|
|
|
143
144
|
this.emit("changed", eventFields);
|
|
144
145
|
}
|
|
145
146
|
catch (err) {
|
|
146
|
-
|
|
147
|
-
|
|
147
|
+
warningLog("Exception raised inside the event handler called by ClientMonitoredItem.on('change')", err);
|
|
148
|
+
warningLog("Please verify the application using this node-opcua client");
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_monitored_item_impl.js","sourceRoot":"","sources":["../../source/private/client_monitored_item_impl.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,oCAAoC;AACpC,0BAA0B;AAC1B,mCAAsC;AACtC,yDAA2C;AAE3C,iEAAqD;AACrD,iEAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"client_monitored_item_impl.js","sourceRoot":"","sources":["../../source/private/client_monitored_item_impl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-client",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.75.0",
|
|
4
4
|
"description": "pure nodejs OPCUA SDK - module -client",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"clean": "npx rimraf dist *.tsbuildinfo certificates",
|
|
@@ -25,49 +25,49 @@
|
|
|
25
25
|
"node-opcua-basic-types": "2.74.0",
|
|
26
26
|
"node-opcua-buffer-utils": "2.74.0",
|
|
27
27
|
"node-opcua-certificate-manager": "2.74.0",
|
|
28
|
-
"node-opcua-client-dynamic-extension-object": "2.
|
|
29
|
-
"node-opcua-common": "2.
|
|
28
|
+
"node-opcua-client-dynamic-extension-object": "2.75.0",
|
|
29
|
+
"node-opcua-common": "2.75.0",
|
|
30
30
|
"node-opcua-constants": "2.74.0",
|
|
31
31
|
"node-opcua-crypto": "^1.11.0",
|
|
32
|
-
"node-opcua-data-model": "2.
|
|
33
|
-
"node-opcua-data-value": "2.
|
|
32
|
+
"node-opcua-data-model": "2.75.0",
|
|
33
|
+
"node-opcua-data-value": "2.75.0",
|
|
34
34
|
"node-opcua-date-time": "2.74.0",
|
|
35
35
|
"node-opcua-debug": "2.74.0",
|
|
36
|
-
"node-opcua-extension-object": "2.
|
|
36
|
+
"node-opcua-extension-object": "2.75.0",
|
|
37
37
|
"node-opcua-hostname": "2.74.0",
|
|
38
38
|
"node-opcua-nodeid": "2.74.0",
|
|
39
39
|
"node-opcua-object-registry": "2.74.0",
|
|
40
40
|
"node-opcua-pki": "^2.17.0",
|
|
41
|
-
"node-opcua-pseudo-session": "2.
|
|
42
|
-
"node-opcua-schemas": "2.
|
|
43
|
-
"node-opcua-secure-channel": "2.
|
|
44
|
-
"node-opcua-service-browse": "2.
|
|
45
|
-
"node-opcua-service-call": "2.
|
|
46
|
-
"node-opcua-service-discovery": "2.
|
|
47
|
-
"node-opcua-service-endpoints": "2.
|
|
48
|
-
"node-opcua-service-filter": "2.
|
|
49
|
-
"node-opcua-service-history": "2.
|
|
50
|
-
"node-opcua-service-query": "2.
|
|
51
|
-
"node-opcua-service-read": "2.
|
|
52
|
-
"node-opcua-service-register-node": "2.
|
|
53
|
-
"node-opcua-service-secure-channel": "2.
|
|
54
|
-
"node-opcua-service-session": "2.
|
|
55
|
-
"node-opcua-service-subscription": "2.
|
|
56
|
-
"node-opcua-service-translate-browse-path": "2.
|
|
57
|
-
"node-opcua-service-write": "2.
|
|
41
|
+
"node-opcua-pseudo-session": "2.75.0",
|
|
42
|
+
"node-opcua-schemas": "2.75.0",
|
|
43
|
+
"node-opcua-secure-channel": "2.75.0",
|
|
44
|
+
"node-opcua-service-browse": "2.75.0",
|
|
45
|
+
"node-opcua-service-call": "2.75.0",
|
|
46
|
+
"node-opcua-service-discovery": "2.75.0",
|
|
47
|
+
"node-opcua-service-endpoints": "2.75.0",
|
|
48
|
+
"node-opcua-service-filter": "2.75.0",
|
|
49
|
+
"node-opcua-service-history": "2.75.0",
|
|
50
|
+
"node-opcua-service-query": "2.75.0",
|
|
51
|
+
"node-opcua-service-read": "2.75.0",
|
|
52
|
+
"node-opcua-service-register-node": "2.75.0",
|
|
53
|
+
"node-opcua-service-secure-channel": "2.75.0",
|
|
54
|
+
"node-opcua-service-session": "2.75.0",
|
|
55
|
+
"node-opcua-service-subscription": "2.75.0",
|
|
56
|
+
"node-opcua-service-translate-browse-path": "2.75.0",
|
|
57
|
+
"node-opcua-service-write": "2.75.0",
|
|
58
58
|
"node-opcua-status-code": "2.74.0",
|
|
59
|
-
"node-opcua-types": "2.
|
|
59
|
+
"node-opcua-types": "2.75.0",
|
|
60
60
|
"node-opcua-utils": "2.74.0",
|
|
61
|
-
"node-opcua-variant": "2.
|
|
61
|
+
"node-opcua-variant": "2.75.0",
|
|
62
62
|
"once": "^1.4.0",
|
|
63
63
|
"thenify": "^3.3.1",
|
|
64
64
|
"underscore": "^1.13.4"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"dequeue": "^1.0.5",
|
|
68
|
-
"node-opcua-address-space": "2.
|
|
68
|
+
"node-opcua-address-space": "2.75.0",
|
|
69
69
|
"node-opcua-binary-stream": "2.74.0",
|
|
70
|
-
"node-opcua-factory": "2.
|
|
70
|
+
"node-opcua-factory": "2.75.0",
|
|
71
71
|
"node-opcua-leak-detector": "2.74.0",
|
|
72
72
|
"node-opcua-nodesets": "2.74.0",
|
|
73
73
|
"should": "^13.2.3",
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
"internet of things"
|
|
94
94
|
],
|
|
95
95
|
"homepage": "http://node-opcua.github.io/",
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "5ccb835ca480c2a8a591ae61b5949a9d8bad4017"
|
|
97
97
|
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
2
|
import { assert } from "node-opcua-assert";
|
|
3
|
+
import { make_warningLog } from "node-opcua-debug";
|
|
3
4
|
import { NodeId, resolveNodeId } from "node-opcua-nodeid";
|
|
4
|
-
import { StatusCode
|
|
5
|
+
import { StatusCode } from "node-opcua-status-code";
|
|
5
6
|
import { lowerFirstLetter } from "node-opcua-utils";
|
|
6
7
|
import { DataType, Variant } from "node-opcua-variant";
|
|
7
8
|
import { ClientSession } from "../client_session";
|
|
8
9
|
|
|
10
|
+
const warningLog = make_warningLog(__filename);
|
|
11
|
+
|
|
9
12
|
export interface TVariant<T> extends Variant {
|
|
10
13
|
value: T;
|
|
11
14
|
}
|
|
@@ -20,6 +23,7 @@ export interface EventStuff {
|
|
|
20
23
|
activeState: TTwoStateStatus;
|
|
21
24
|
ackedState: TTwoStateStatus;
|
|
22
25
|
confirmedState: TTwoStateStatus;
|
|
26
|
+
conditionName?: TVariant<string>;
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
export interface ClientAlarm {
|
|
@@ -84,36 +88,43 @@ export class ClientAlarm extends EventEmitter {
|
|
|
84
88
|
}
|
|
85
89
|
}
|
|
86
90
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
91
|
+
/**
|
|
92
|
+
* @private
|
|
93
|
+
*/
|
|
94
|
+
export function fieldsToJson(fields: string[], eventFields: Variant[], flat?: boolean): EventStuff {
|
|
95
|
+
|
|
96
|
+
function setProperty(_data: Record<string, unknown>, fieldName: string, value: Variant) {
|
|
90
97
|
let name: string;
|
|
91
98
|
if (!fieldName || value === null) {
|
|
92
99
|
return;
|
|
93
100
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
if (!flat) {
|
|
102
|
+
const f = fieldName.split(".");
|
|
103
|
+
if (f.length === 1) {
|
|
104
|
+
fieldName = lowerFirstLetter(fieldName);
|
|
105
|
+
_data[fieldName] = value;
|
|
106
|
+
} else {
|
|
107
|
+
for (let i = 0; i < f.length - 1; i++) {
|
|
108
|
+
name = lowerFirstLetter(f[i]);
|
|
109
|
+
_data[name] = _data[name] || {};
|
|
110
|
+
_data = _data[name] as Record<string, unknown>;
|
|
111
|
+
}
|
|
112
|
+
name = lowerFirstLetter(f[f.length - 1]);
|
|
113
|
+
_data[name] = value;
|
|
103
114
|
}
|
|
104
|
-
|
|
115
|
+
} else {
|
|
116
|
+
const name = fieldName.split(".").map(lowerFirstLetter).join(".");
|
|
105
117
|
_data[name] = value;
|
|
106
118
|
}
|
|
107
119
|
}
|
|
108
120
|
if (fields.length > eventFields.length) {
|
|
109
|
-
|
|
110
|
-
console.log("warning fields.length !== eventFields.length", fields.length, eventFields.length);
|
|
121
|
+
warningLog("warning fields.length !== eventFields.length", fields.length, eventFields.length);
|
|
111
122
|
}
|
|
112
123
|
const data: any = {};
|
|
113
124
|
for (let index = 0; index < fields.length; index++) {
|
|
114
125
|
const variant = eventFields[index];
|
|
115
126
|
setProperty(data, fields[index], variant);
|
|
116
127
|
}
|
|
117
|
-
|
|
128
|
+
|
|
118
129
|
return data;
|
|
119
130
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AttributeIds } from "node-opcua-data-model";
|
|
2
2
|
import { resolveNodeId } from "node-opcua-nodeid";
|
|
3
|
-
import { constructEventFilter } from "node-opcua-service-filter";
|
|
3
|
+
import { constructEventFilter, ofType } from "node-opcua-service-filter";
|
|
4
4
|
import { ReadValueIdOptions, TimestampsToReturn } from "node-opcua-service-read";
|
|
5
5
|
import { CreateSubscriptionRequestOptions, MonitoringParametersOptions } from "node-opcua-service-subscription";
|
|
6
|
-
import { Variant } from "node-opcua-variant";
|
|
7
|
-
import { checkDebugFlag, make_debugLog } from "node-opcua-debug";
|
|
6
|
+
import { DataType, Variant } from "node-opcua-variant";
|
|
7
|
+
import { checkDebugFlag, make_debugLog, make_warningLog } from "node-opcua-debug";
|
|
8
8
|
|
|
9
9
|
import { ClientMonitoredItem } from "../client_monitored_item";
|
|
10
10
|
import { ClientSubscription } from "../client_subscription";
|
|
@@ -16,6 +16,7 @@ import { callConditionRefresh } from "./client_tools";
|
|
|
16
16
|
|
|
17
17
|
const doDebug = checkDebugFlag("A&E");
|
|
18
18
|
const debugLog = make_debugLog("A&E");
|
|
19
|
+
const warningLog = make_warningLog("A&E");
|
|
19
20
|
|
|
20
21
|
function r(_key: string, o: { dataType?: unknown; value?: unknown }) {
|
|
21
22
|
if (o && o.dataType === "Null") {
|
|
@@ -67,7 +68,7 @@ export async function installAlarmMonitoring(session: ClientSession): Promise<Cl
|
|
|
67
68
|
_sessionPriv.$clientAlarmList = clientAlarmList;
|
|
68
69
|
|
|
69
70
|
const request: CreateSubscriptionRequestOptions = {
|
|
70
|
-
maxNotificationsPerPublish:
|
|
71
|
+
maxNotificationsPerPublish: 100,
|
|
71
72
|
priority: 6,
|
|
72
73
|
publishingEnabled: true,
|
|
73
74
|
requestedLifetimeCount: 10000,
|
|
@@ -84,21 +85,20 @@ export async function installAlarmMonitoring(session: ClientSession): Promise<Cl
|
|
|
84
85
|
|
|
85
86
|
const fields = await extractConditionFields(session, "AlarmConditionType");
|
|
86
87
|
|
|
87
|
-
const
|
|
88
|
+
const AcknowledgeableConditionType = resolveNodeId("AcknowledgeableConditionType");
|
|
89
|
+
|
|
90
|
+
const eventFilter = constructEventFilter(fields, ofType(AcknowledgeableConditionType));
|
|
88
91
|
|
|
89
92
|
const monitoringParameters: MonitoringParametersOptions = {
|
|
90
93
|
discardOldest: false,
|
|
91
94
|
filter: eventFilter,
|
|
92
|
-
queueSize:
|
|
95
|
+
queueSize: 1000,
|
|
93
96
|
samplingInterval: 0
|
|
94
97
|
};
|
|
95
98
|
|
|
96
99
|
// now create a event monitored Item
|
|
97
100
|
const eventMonitoringItem = await subscription.monitor(itemToMonitor, monitoringParameters, TimestampsToReturn.Both);
|
|
98
101
|
|
|
99
|
-
const RefreshStartEventType = resolveNodeId("RefreshStartEventType").toString();
|
|
100
|
-
const RefreshEndEventType = resolveNodeId("RefreshEndEventType").toString();
|
|
101
|
-
|
|
102
102
|
const queueEvent: EventStuff[] = [];
|
|
103
103
|
function flushQueue() {
|
|
104
104
|
const q = [...queueEvent];
|
|
@@ -110,17 +110,25 @@ export async function installAlarmMonitoring(session: ClientSession): Promise<Cl
|
|
|
110
110
|
|
|
111
111
|
let inInit = true;
|
|
112
112
|
eventMonitoringItem.on("changed", (eventFields: Variant[]) => {
|
|
113
|
-
|
|
114
|
-
const pojo = fieldsToJson(fields, eventFields)
|
|
113
|
+
|
|
114
|
+
const pojo = fieldsToJson(fields, eventFields);
|
|
115
|
+
const { eventType, eventId, conditionId, conditionName } = pojo;
|
|
116
|
+
|
|
117
|
+
debugLog(
|
|
118
|
+
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ---- ALARM RECEIVED " +
|
|
119
|
+
eventType.value.toString() +
|
|
120
|
+
" " +
|
|
121
|
+
eventId.value?.toString("hex")
|
|
122
|
+
);
|
|
115
123
|
try {
|
|
116
|
-
if (
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
if (pojo.eventType.value.toString() === RefreshEndEventType) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (!pojo.conditionId || !pojo.conditionId.value || pojo.conditionId.dataType === 0) {
|
|
124
|
+
if (!conditionId || !conditionId.value || conditionId.dataType === DataType.Null) {
|
|
123
125
|
// not a acknowledgeable condition
|
|
126
|
+
warningLog(
|
|
127
|
+
" not acknowledgeable condition ---- " + eventType.value.toString() + " ",
|
|
128
|
+
conditionId,
|
|
129
|
+
conditionName?.value,
|
|
130
|
+
" " + eventId.value?.toString("hex")
|
|
131
|
+
);
|
|
124
132
|
return;
|
|
125
133
|
}
|
|
126
134
|
queueEvent.push(pojo);
|
|
@@ -128,10 +136,8 @@ export async function installAlarmMonitoring(session: ClientSession): Promise<Cl
|
|
|
128
136
|
setTimeout(() => flushQueue(), 10);
|
|
129
137
|
}
|
|
130
138
|
} catch (err) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
// tslint:disable-next-line: no-console
|
|
134
|
-
console.log("Error !!", err);
|
|
139
|
+
warningLog(JSON.stringify(pojo, r, " "));
|
|
140
|
+
warningLog("Error !!", err);
|
|
135
141
|
}
|
|
136
142
|
|
|
137
143
|
// Release 1.04 8 OPC Unified Architecture, Part 9
|
|
@@ -150,7 +156,11 @@ export async function installAlarmMonitoring(session: ClientSession): Promise<Cl
|
|
|
150
156
|
try {
|
|
151
157
|
await callConditionRefresh(subscription);
|
|
152
158
|
} catch (err) {
|
|
153
|
-
|
|
159
|
+
if ((err as Error).message.match(/BadNothingToDo/)) {
|
|
160
|
+
/** fine! nothing to do */
|
|
161
|
+
} else {
|
|
162
|
+
warningLog("Server may not implement condition refresh", (<Error>err).message);
|
|
163
|
+
}
|
|
154
164
|
}
|
|
155
165
|
_sessionPriv.$monitoredItemForAlarmList = eventMonitoringItem;
|
|
156
166
|
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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<
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
220
|
-
|
|
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
|
|