node-opcua-aggregates 2.183.1 → 2.184.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/aggregates.d.ts +1 -0
- package/dist/aggregates.d.ts.map +1 -0
- package/dist/aggregates.js +34 -43
- package/dist/aggregates.js.map +1 -1
- package/dist/average.d.ts +1 -0
- package/dist/average.d.ts.map +1 -0
- package/dist/average.js +15 -18
- package/dist/average.js.map +1 -1
- package/dist/calculate_bad_good.d.ts +1 -0
- package/dist/calculate_bad_good.d.ts.map +1 -0
- package/dist/calculate_bad_good.js +22 -25
- package/dist/calculate_bad_good.js.map +1 -1
- package/dist/common.d.ts +1 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +19 -23
- package/dist/common.js.map +1 -1
- package/dist/count.d.ts +1 -0
- package/dist/count.d.ts.map +1 -0
- package/dist/count.js +19 -22
- package/dist/count.js.map +1 -1
- package/dist/duration_bad.d.ts +1 -0
- package/dist/duration_bad.d.ts.map +1 -0
- package/dist/duration_bad.js +13 -16
- package/dist/duration_bad.js.map +1 -1
- package/dist/duration_good.d.ts +1 -0
- package/dist/duration_good.d.ts.map +1 -0
- package/dist/duration_good.js +13 -16
- package/dist/duration_good.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -41
- package/dist/index.js.map +1 -1
- package/dist/interpolate.d.ts +1 -0
- package/dist/interpolate.d.ts.map +1 -0
- package/dist/interpolate.js +28 -32
- package/dist/interpolate.js.map +1 -1
- package/dist/interval.d.ts +1 -0
- package/dist/interval.d.ts.map +1 -0
- package/dist/interval.js +13 -23
- package/dist/interval.js.map +1 -1
- package/dist/minmax.d.ts +1 -0
- package/dist/minmax.d.ts.map +1 -0
- package/dist/minmax.js +19 -25
- package/dist/minmax.js.map +1 -1
- package/dist/percent_bad.d.ts +1 -0
- package/dist/percent_bad.d.ts.map +1 -0
- package/dist/percent_bad.js +10 -13
- package/dist/percent_bad.js.map +1 -1
- package/dist/percent_good.d.ts +1 -0
- package/dist/percent_good.d.ts.map +1 -0
- package/dist/percent_good.js +14 -17
- package/dist/percent_good.js.map +1 -1
- package/dist/read_processed_details.d.ts +1 -0
- package/dist/read_processed_details.d.ts.map +1 -0
- package/dist/read_processed_details.js +39 -42
- package/dist/read_processed_details.js.map +1 -1
- package/distHelpers/create_historizing_variables.d.ts +1 -0
- package/distHelpers/create_historizing_variables.d.ts.map +1 -0
- package/distHelpers/create_historizing_variables.js +60 -66
- package/distHelpers/create_historizing_variables.js.map +1 -1
- package/distHelpers/helpers.d.ts +1 -0
- package/distHelpers/helpers.d.ts.map +1 -0
- package/distHelpers/helpers.js +9 -13
- package/distHelpers/helpers.js.map +1 -1
- package/distHelpers/index.d.ts +1 -0
- package/distHelpers/index.d.ts.map +1 -0
- package/distHelpers/index.js +2 -18
- package/distHelpers/index.js.map +1 -1
- package/package.json +18 -17
- package/testHelpers.js +1 -1
package/dist/interval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interval.js","sourceRoot":"","sources":["../source/interval.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interval.js","sourceRoot":"","sources":["../source/interval.ts"],"names":[],"mappings":"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"}
|
package/dist/minmax.d.ts
CHANGED
|
@@ -16,3 +16,4 @@ export declare function calculateIntervalMaxValue(interval: Interval, options: A
|
|
|
16
16
|
*/
|
|
17
17
|
export declare function getMinData(node: UAVariable, processingInterval: number, startDate: Date, endDate: Date, callback: (err: Error | null, dataValues?: DataValue[]) => void): void;
|
|
18
18
|
export declare function getMaxData(node: UAVariable, processingInterval: number, startDate: Date, endDate: Date, callback: (err: Error | null, dataValues?: DataValue[]) => void): void;
|
|
19
|
+
//# sourceMappingURL=minmax.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minmax.d.ts","sourceRoot":"","sources":["../source/minmax.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoDH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKlD,OAAO,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAmF7E,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAA6B,GAAG,SAAS,CAI/G;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAA6B,GAAG,SAAS,CAI/G;AAkDD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACtB,IAAI,EAAE,UAAU,EAChB,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,IAAI,GAChE,IAAI,CAEN;AAED,wBAAgB,UAAU,CACtB,IAAI,EAAE,UAAU,EAChB,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,IAAI,GAChE,IAAI,CAEN"}
|
package/dist/minmax.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.calculateIntervalMaxValue = calculateIntervalMaxValue;
|
|
5
|
-
exports.getMinData = getMinData;
|
|
6
|
-
exports.getMaxData = getMaxData;
|
|
7
|
-
const node_opcua_data_value_1 = require("node-opcua-data-value");
|
|
8
|
-
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
9
|
-
const common_js_1 = require("./common.js");
|
|
1
|
+
import { DataValue } from "node-opcua-data-value";
|
|
2
|
+
import { StatusCode, StatusCodes } from "node-opcua-status-code";
|
|
3
|
+
import { getAggregateData } from "./common.js";
|
|
10
4
|
function calculateIntervalMinOrMaxValue(interval, _options, predicate) {
|
|
11
5
|
// debugLog(interval.toString());
|
|
12
6
|
const indexStart = interval.index;
|
|
@@ -18,7 +12,7 @@ function calculateIntervalMinOrMaxValue(interval, _options, predicate) {
|
|
|
18
12
|
let hasBad = false;
|
|
19
13
|
for (let i = indexStart; i < indexStart + interval.count; i++) {
|
|
20
14
|
const dataValue = interval.dataValues[i];
|
|
21
|
-
if (dataValue.statusCode.equals(
|
|
15
|
+
if (dataValue.statusCode.equals(StatusCodes.BadNoData)) {
|
|
22
16
|
isPartial = true;
|
|
23
17
|
continue;
|
|
24
18
|
}
|
|
@@ -45,41 +39,41 @@ function calculateIntervalMinOrMaxValue(interval, _options, predicate) {
|
|
|
45
39
|
}
|
|
46
40
|
}
|
|
47
41
|
if (!selectedValue) {
|
|
48
|
-
return new
|
|
42
|
+
return new DataValue({
|
|
49
43
|
sourceTimestamp: interval.startTime,
|
|
50
|
-
statusCode:
|
|
44
|
+
statusCode: StatusCodes.BadNoData
|
|
51
45
|
});
|
|
52
46
|
}
|
|
53
47
|
if (isRaw) {
|
|
54
48
|
if (hasBad) {
|
|
55
|
-
statusCode =
|
|
49
|
+
statusCode = StatusCodes.UncertainDataSubNormal;
|
|
56
50
|
}
|
|
57
51
|
else {
|
|
58
|
-
statusCode =
|
|
52
|
+
statusCode = StatusCodes.Good;
|
|
59
53
|
}
|
|
60
54
|
}
|
|
61
55
|
else if (hasBad) {
|
|
62
|
-
statusCode =
|
|
56
|
+
statusCode = StatusCode.makeStatusCode(StatusCodes.UncertainDataSubNormal, "HistorianCalculated");
|
|
63
57
|
}
|
|
64
58
|
else {
|
|
65
|
-
statusCode =
|
|
59
|
+
statusCode = StatusCode.makeStatusCode(StatusCodes.Good, "HistorianCalculated");
|
|
66
60
|
}
|
|
67
61
|
if (counter > 1) {
|
|
68
|
-
statusCode =
|
|
62
|
+
statusCode = StatusCode.makeStatusCode(statusCode, "HistorianMultiValue");
|
|
69
63
|
}
|
|
70
64
|
if (isPartial || interval.isPartial) {
|
|
71
|
-
statusCode =
|
|
65
|
+
statusCode = StatusCode.makeStatusCode(statusCode, "HistorianPartial");
|
|
72
66
|
}
|
|
73
|
-
return new
|
|
67
|
+
return new DataValue({
|
|
74
68
|
sourceTimestamp: interval.startTime,
|
|
75
69
|
statusCode: statusCode,
|
|
76
70
|
value: selectedValue
|
|
77
71
|
});
|
|
78
72
|
}
|
|
79
|
-
function calculateIntervalMinValue(interval, options) {
|
|
73
|
+
export function calculateIntervalMinValue(interval, options) {
|
|
80
74
|
return calculateIntervalMinOrMaxValue(interval, options, (a, b) => a.value > b.value ? "select" : a.value === b.value ? "equal" : "reject");
|
|
81
75
|
}
|
|
82
|
-
function calculateIntervalMaxValue(interval, options) {
|
|
76
|
+
export function calculateIntervalMaxValue(interval, options) {
|
|
83
77
|
return calculateIntervalMinOrMaxValue(interval, options, (a, b) => a.value < b.value ? "select" : a.value === b.value ? "equal" : "reject");
|
|
84
78
|
}
|
|
85
79
|
// From OPC Unified Architecture, Part 13 26 Release 1.04
|
|
@@ -138,10 +132,10 @@ function calculateIntervalMaxValue(interval, options) {
|
|
|
138
132
|
* @param endDate
|
|
139
133
|
* @param callback
|
|
140
134
|
*/
|
|
141
|
-
function getMinData(node, processingInterval, startDate, endDate, callback) {
|
|
142
|
-
|
|
135
|
+
export function getMinData(node, processingInterval, startDate, endDate, callback) {
|
|
136
|
+
getAggregateData(node, processingInterval, startDate, endDate, calculateIntervalMinValue, callback);
|
|
143
137
|
}
|
|
144
|
-
function getMaxData(node, processingInterval, startDate, endDate, callback) {
|
|
145
|
-
|
|
138
|
+
export function getMaxData(node, processingInterval, startDate, endDate, callback) {
|
|
139
|
+
getAggregateData(node, processingInterval, startDate, endDate, calculateIntervalMaxValue, callback);
|
|
146
140
|
}
|
|
147
141
|
//# sourceMappingURL=minmax.js.map
|
package/dist/minmax.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minmax.js","sourceRoot":"","sources":["../source/minmax.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"minmax.js","sourceRoot":"","sources":["../source/minmax.ts"],"names":[],"mappings":"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"}
|
package/dist/percent_bad.d.ts
CHANGED
|
@@ -2,3 +2,4 @@ import type { UAVariable } from "node-opcua-address-space";
|
|
|
2
2
|
import { DataValue } from "node-opcua-data-value";
|
|
3
3
|
/**Retrieve the percentage of data (0 to 100) in the interval which has Bad StatusCode. */
|
|
4
4
|
export declare function getPercentBadData(node: UAVariable, processingInterval: number, startDate: Date, endDate: Date, callback: (err: Error | null, dataValues?: DataValue[]) => void): void;
|
|
5
|
+
//# sourceMappingURL=percent_bad.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"percent_bad.d.ts","sourceRoot":"","sources":["../source/percent_bad.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAkBlD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,UAAU,EAChB,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,IAAI,GAChE,IAAI,CAEN"}
|
package/dist/percent_bad.js
CHANGED
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
6
|
-
const calculate_bad_good_js_1 = require("./calculate_bad_good.js");
|
|
7
|
-
const common_js_1 = require("./common.js");
|
|
1
|
+
import { DataValue } from "node-opcua-data-value";
|
|
2
|
+
import { DataType } from "node-opcua-variant";
|
|
3
|
+
import { calculateBadAndGood } from "./calculate_bad_good.js";
|
|
4
|
+
import { getAggregateData } from "./common.js";
|
|
8
5
|
function calculatePercentBad(interval, options) {
|
|
9
|
-
const { percentBad, statusCode } =
|
|
6
|
+
const { percentBad, statusCode } = calculateBadAndGood(interval, options);
|
|
10
7
|
const value = percentBad;
|
|
11
8
|
if (statusCode.isGoodish()) {
|
|
12
|
-
return new
|
|
9
|
+
return new DataValue({
|
|
13
10
|
sourceTimestamp: interval.startTime,
|
|
14
11
|
statusCode,
|
|
15
|
-
value: { dataType:
|
|
12
|
+
value: { dataType: DataType.Double, value }
|
|
16
13
|
});
|
|
17
14
|
}
|
|
18
|
-
return new
|
|
15
|
+
return new DataValue({ sourceTimestamp: interval.startTime, statusCode, value: { dataType: DataType.Null } });
|
|
19
16
|
}
|
|
20
17
|
/**Retrieve the percentage of data (0 to 100) in the interval which has Bad StatusCode. */
|
|
21
|
-
function getPercentBadData(node, processingInterval, startDate, endDate, callback) {
|
|
22
|
-
|
|
18
|
+
export function getPercentBadData(node, processingInterval, startDate, endDate, callback) {
|
|
19
|
+
getAggregateData(node, processingInterval, startDate, endDate, calculatePercentBad, callback);
|
|
23
20
|
}
|
|
24
21
|
//# sourceMappingURL=percent_bad.js.map
|
package/dist/percent_bad.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"percent_bad.js","sourceRoot":"","sources":["../source/percent_bad.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"percent_bad.js","sourceRoot":"","sources":["../source/percent_bad.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,SAAS,mBAAmB,CAAC,QAAkB,EAAE,OAAsC;IACnF,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,UAAU,CAAC;IACzB,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC;QACzB,OAAO,IAAI,SAAS,CAAC;YACjB,eAAe,EAAE,QAAQ,CAAC,SAAS;YACnC,UAAU;YACV,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE;SAC9C,CAAC,CAAC;IACP,CAAC;IACD,OAAO,IAAI,SAAS,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAClH,CAAC;AACD,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAC7B,IAAgB,EAChB,kBAA0B,EAC1B,SAAe,EACf,OAAa,EACb,QAA+D;IAE/D,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AAClG,CAAC"}
|
package/dist/percent_good.d.ts
CHANGED
|
@@ -5,3 +5,4 @@ import { DataValue } from "node-opcua-data-value";
|
|
|
5
5
|
* @param node Retrieve the percentage of data (0 to 100) in the interval which has Good StatusCode.
|
|
6
6
|
*/
|
|
7
7
|
export declare function getPercentGoodData(node: UAVariable, processingInterval: number, startDate: Date, endDate: Date, callback: (err: Error | null, dataValues?: DataValue[]) => void): void;
|
|
8
|
+
//# sourceMappingURL=percent_good.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"percent_good.d.ts","sourceRoot":"","sources":["../source/percent_good.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAwClD;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,UAAU,EAChB,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,IAAI,GAChE,IAAI,CAEN"}
|
package/dist/percent_good.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
7
|
-
const calculate_bad_good_js_1 = require("./calculate_bad_good.js");
|
|
8
|
-
const common_js_1 = require("./common.js");
|
|
1
|
+
import { DataValue } from "node-opcua-data-value";
|
|
2
|
+
import { StatusCodes } from "node-opcua-status-code";
|
|
3
|
+
import { DataType } from "node-opcua-variant";
|
|
4
|
+
import { calculateBadAndGood } from "./calculate_bad_good.js";
|
|
5
|
+
import { getAggregateData } from "./common.js";
|
|
9
6
|
function calculatePercentGood(interval, options) {
|
|
10
7
|
//
|
|
11
8
|
// The PercentGood Aggregate defined in Table 44 performs the following calculation:
|
|
@@ -19,30 +16,30 @@ function calculatePercentGood(interval, options) {
|
|
|
19
16
|
// calculation.
|
|
20
17
|
// Each Aggregate is returned with timestamp of the start of the interval. StatusCodes are Good, Calculated.
|
|
21
18
|
//
|
|
22
|
-
const { percentGood, statusCode } =
|
|
19
|
+
const { percentGood, statusCode } = calculateBadAndGood(interval, options);
|
|
23
20
|
if (percentGood < 0) {
|
|
24
21
|
// special case ! to indicate that no good pointhas been found in the interval
|
|
25
|
-
return new
|
|
22
|
+
return new DataValue({
|
|
26
23
|
sourceTimestamp: interval.startTime,
|
|
27
|
-
statusCode:
|
|
28
|
-
value: { dataType:
|
|
24
|
+
statusCode: StatusCodes.Bad,
|
|
25
|
+
value: { dataType: DataType.Null }
|
|
29
26
|
});
|
|
30
27
|
}
|
|
31
28
|
const value = percentGood;
|
|
32
29
|
if (statusCode.isGoodish()) {
|
|
33
|
-
return new
|
|
30
|
+
return new DataValue({
|
|
34
31
|
sourceTimestamp: interval.startTime,
|
|
35
32
|
statusCode,
|
|
36
|
-
value: { dataType:
|
|
33
|
+
value: { dataType: DataType.Double, value }
|
|
37
34
|
});
|
|
38
35
|
}
|
|
39
|
-
return new
|
|
36
|
+
return new DataValue({ sourceTimestamp: interval.startTime, statusCode, value: { dataType: DataType.Null } });
|
|
40
37
|
}
|
|
41
38
|
/**
|
|
42
39
|
*
|
|
43
40
|
* @param node Retrieve the percentage of data (0 to 100) in the interval which has Good StatusCode.
|
|
44
41
|
*/
|
|
45
|
-
function getPercentGoodData(node, processingInterval, startDate, endDate, callback) {
|
|
46
|
-
|
|
42
|
+
export function getPercentGoodData(node, processingInterval, startDate, endDate, callback) {
|
|
43
|
+
getAggregateData(node, processingInterval, startDate, endDate, calculatePercentGood, callback);
|
|
47
44
|
}
|
|
48
45
|
//# sourceMappingURL=percent_good.js.map
|
package/dist/percent_good.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"percent_good.js","sourceRoot":"","sources":["../source/percent_good.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"percent_good.js","sourceRoot":"","sources":["../source/percent_good.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,SAAS,oBAAoB,CAAC,QAAkB,EAAE,OAAsC;IACpF,EAAE;IACF,oFAAoF;IACpF,EAAE;IACF,4DAA4D;IAC5D,SAAS;IACT,EAAE;IACF,0IAA0I;IAC1I,kDAAkD;IAClD,sGAAsG;IACtG,eAAe;IACf,4GAA4G;IAC5G,EAAE;IACF,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QAClB,8EAA8E;QAC9E,OAAO,IAAI,SAAS,CAAC;YACjB,eAAe,EAAE,QAAQ,CAAC,SAAS;YACnC,UAAU,EAAE,WAAW,CAAC,GAAG;YAC3B,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;SACrC,CAAC,CAAC;IACP,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC;IAC1B,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC;QACzB,OAAO,IAAI,SAAS,CAAC;YACjB,eAAe,EAAE,QAAQ,CAAC,SAAS;YACnC,UAAU;YACV,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE;SAC9C,CAAC,CAAC;IACP,CAAC;IACD,OAAO,IAAI,SAAS,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAClH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAC9B,IAAgB,EAChB,kBAA0B,EAC1B,SAAe,EACf,OAAa,EACb,QAA+D;IAE/D,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AACnG,CAAC"}
|
|
@@ -4,3 +4,4 @@ import type { NumericRange } from "node-opcua-numeric-range";
|
|
|
4
4
|
import { HistoryReadResult, type ReadProcessedDetails } from "node-opcua-service-history";
|
|
5
5
|
import { type CallbackT } from "node-opcua-status-code";
|
|
6
6
|
export declare function readProcessedDetails(variable: UAVariable, _context: ISessionContext, historyReadDetails: ReadProcessedDetails, _indexRange: NumericRange | null, _dataEncoding: QualifiedNameLike | null, _continuationData: ContinuationData, callback: CallbackT<HistoryReadResult>): void;
|
|
7
|
+
//# sourceMappingURL=read_processed_details.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read_processed_details.d.ts","sourceRoot":"","sources":["../source/read_processed_details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAe,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvG,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,wBAAwB,CAAC;AA4ErE,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,eAAe,EACzB,kBAAkB,EAAE,oBAAoB,EACxC,WAAW,EAAE,YAAY,GAAG,IAAI,EAChC,aAAa,EAAE,iBAAiB,GAAG,IAAI,EACvC,iBAAiB,EAAE,gBAAgB,EACnC,QAAQ,EAAE,SAAS,CAAC,iBAAiB,CAAC,GACvC,IAAI,CAyEN"}
|
|
@@ -1,26 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const minmax_js_1 = require("./minmax.js");
|
|
13
|
-
const percent_bad_js_1 = require("./percent_bad.js");
|
|
14
|
-
const percent_good_js_1 = require("./percent_good.js");
|
|
1
|
+
import { AggregateFunction } from "node-opcua-constants";
|
|
2
|
+
import { HistoryData, HistoryReadResult } from "node-opcua-service-history";
|
|
3
|
+
import { StatusCodes } from "node-opcua-status-code";
|
|
4
|
+
import { getAverageData } from "./average.js";
|
|
5
|
+
import { getCountData } from "./count.js";
|
|
6
|
+
import { getDurationBadData } from "./duration_bad.js";
|
|
7
|
+
import { getDurationGoodData } from "./duration_good.js";
|
|
8
|
+
import { getInterpolatedData } from "./interpolate.js";
|
|
9
|
+
import { getMaxData, getMinData } from "./minmax.js";
|
|
10
|
+
import { getPercentBadData } from "./percent_bad.js";
|
|
11
|
+
import { getPercentGoodData } from "./percent_good.js";
|
|
15
12
|
function _buildResult(err, dataValues, callback2) {
|
|
16
13
|
if (err) {
|
|
17
|
-
return callback2(null, new
|
|
14
|
+
return callback2(null, new HistoryReadResult({ statusCode: StatusCodes.BadInternalError }));
|
|
18
15
|
}
|
|
19
|
-
const result = new
|
|
20
|
-
historyData: new
|
|
16
|
+
const result = new HistoryReadResult({
|
|
17
|
+
historyData: new HistoryData({
|
|
21
18
|
dataValues
|
|
22
19
|
}),
|
|
23
|
-
statusCode:
|
|
20
|
+
statusCode: StatusCodes.Good
|
|
24
21
|
});
|
|
25
22
|
return callback2(null, result);
|
|
26
23
|
}
|
|
@@ -33,45 +30,45 @@ function applyAggregate(variable, processingInterval, startTime, endTime, aggreg
|
|
|
33
30
|
};
|
|
34
31
|
if (aggregateType.namespace === 0) {
|
|
35
32
|
switch (aggregateType.value) {
|
|
36
|
-
case
|
|
37
|
-
|
|
33
|
+
case AggregateFunction.Minimum:
|
|
34
|
+
getMinData(variable, processingInterval, startTime, endTime, buildResult);
|
|
38
35
|
break;
|
|
39
|
-
case
|
|
40
|
-
|
|
36
|
+
case AggregateFunction.Maximum:
|
|
37
|
+
getMaxData(variable, processingInterval, startTime, endTime, buildResult);
|
|
41
38
|
break;
|
|
42
|
-
case
|
|
43
|
-
|
|
39
|
+
case AggregateFunction.Interpolative:
|
|
40
|
+
getInterpolatedData(variable, processingInterval, startTime, endTime, buildResult);
|
|
44
41
|
break;
|
|
45
|
-
case
|
|
46
|
-
|
|
42
|
+
case AggregateFunction.Average:
|
|
43
|
+
getAverageData(variable, processingInterval, startTime, endTime, buildResult);
|
|
47
44
|
break;
|
|
48
|
-
case
|
|
49
|
-
|
|
45
|
+
case AggregateFunction.DurationGood:
|
|
46
|
+
getDurationGoodData(variable, processingInterval, startTime, endTime, buildResult);
|
|
50
47
|
break;
|
|
51
|
-
case
|
|
52
|
-
|
|
48
|
+
case AggregateFunction.DurationBad:
|
|
49
|
+
getDurationBadData(variable, processingInterval, startTime, endTime, buildResult);
|
|
53
50
|
break;
|
|
54
|
-
case
|
|
55
|
-
|
|
51
|
+
case AggregateFunction.PercentBad:
|
|
52
|
+
getPercentBadData(variable, processingInterval, startTime, endTime, buildResult);
|
|
56
53
|
break;
|
|
57
|
-
case
|
|
58
|
-
|
|
54
|
+
case AggregateFunction.PercentGood:
|
|
55
|
+
getPercentGoodData(variable, processingInterval, startTime, endTime, buildResult);
|
|
59
56
|
break;
|
|
60
|
-
case
|
|
61
|
-
|
|
57
|
+
case AggregateFunction.Count:
|
|
58
|
+
getCountData(variable, processingInterval, startTime, endTime, buildResult);
|
|
62
59
|
break;
|
|
63
60
|
default:
|
|
64
61
|
// todo provide correct implementation
|
|
65
|
-
return callback2(null, new
|
|
62
|
+
return callback2(null, new HistoryReadResult({ statusCode: StatusCodes.BadAggregateNotSupported }));
|
|
66
63
|
}
|
|
67
64
|
}
|
|
68
65
|
else {
|
|
69
66
|
// custom aggregate added by some companion specification
|
|
70
67
|
// to do
|
|
71
|
-
return callback2(null, new
|
|
68
|
+
return callback2(null, new HistoryReadResult({ statusCode: StatusCodes.BadAggregateNotSupported }));
|
|
72
69
|
}
|
|
73
70
|
}
|
|
74
|
-
function readProcessedDetails(variable, _context, historyReadDetails, _indexRange, _dataEncoding, _continuationData, callback) {
|
|
71
|
+
export function readProcessedDetails(variable, _context, historyReadDetails, _indexRange, _dataEncoding, _continuationData, callback) {
|
|
75
72
|
// OPC Unified Architecture, Part 11 27 Release 1.03
|
|
76
73
|
//
|
|
77
74
|
// This structure is used to compute Aggregate values, qualities, and timestamps from data in
|
|
@@ -123,13 +120,13 @@ function readProcessedDetails(variable, _context, historyReadDetails, _indexRang
|
|
|
123
120
|
const startTime = historyReadDetails.startTime;
|
|
124
121
|
const endTime = historyReadDetails.endTime;
|
|
125
122
|
if (!startTime || !endTime) {
|
|
126
|
-
callback(null, new
|
|
123
|
+
callback(null, new HistoryReadResult({ statusCode: StatusCodes.BadInvalidArgument }));
|
|
127
124
|
return;
|
|
128
125
|
}
|
|
129
126
|
if (startTime.getTime() === endTime.getTime()) {
|
|
130
127
|
// Start = End Int = Anything No intervals. Returns a Bad_InvalidArgument StatusCode,
|
|
131
128
|
// regardless of whether there is data at the specified time or not
|
|
132
|
-
callback(null, new
|
|
129
|
+
callback(null, new HistoryReadResult({ statusCode: StatusCodes.BadInvalidArgument }));
|
|
133
130
|
return;
|
|
134
131
|
}
|
|
135
132
|
const aggregateTypes = historyReadDetails.aggregateType || [];
|
|
@@ -137,7 +134,7 @@ function readProcessedDetails(variable, _context, historyReadDetails, _indexRang
|
|
|
137
134
|
// starting at startTime and ending at endTime.
|
|
138
135
|
const processingInterval = historyReadDetails.processingInterval || endTime.getTime() - startTime.getTime();
|
|
139
136
|
if (historyReadDetails.aggregateType?.length !== 1) {
|
|
140
|
-
callback(null, new
|
|
137
|
+
callback(null, new HistoryReadResult({ statusCode: StatusCodes.BadInternalError }));
|
|
141
138
|
return;
|
|
142
139
|
}
|
|
143
140
|
applyAggregate(variable, processingInterval, startTime, endTime, aggregateTypes[0], callback);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read_processed_details.js","sourceRoot":"","sources":["../source/read_processed_details.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"read_processed_details.js","sourceRoot":"","sources":["../source/read_processed_details.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,3 +3,4 @@ export declare function createHistorian1(addressSpace: AddressSpace): UAVariable
|
|
|
3
3
|
export declare function createHistorian2(addressSpace: AddressSpace): UAVariable;
|
|
4
4
|
export declare function createHistorian3(addressSpace: AddressSpace): UAVariable;
|
|
5
5
|
export declare function createHistorian4(addressSpace: AddressSpace): UAVariable;
|
|
6
|
+
//# sourceMappingURL=create_historizing_variables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_historizing_variables.d.ts","sourceRoot":"","sources":["../test_helpers/create_historizing_variables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAgDzE,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU,CA6CvE;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU,CA8CvE;AA4DD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU,CA8CvE;AA6BD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU,CAoCvE"}
|