node-opcua-address-space 2.182.0 → 2.183.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/api/helpers/argument_list.ts +8 -9
- package/api/helpers/call_helpers.ts +2 -0
- package/api/index.ts +14 -0
- package/api/interfaces/alarms_and_conditions/promote_to_alarm_options.ts +24 -0
- package/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.ts +33 -0
- package/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.ts +18 -0
- package/api/loader/nodeset_record.ts +2 -2
- package/api/loader/nodeset_record_applier.ts +1 -0
- package/api/loader/nodeset_xml_producer.ts +5 -1
- package/api/namespace_of.ts +28 -0
- package/dist/api/helpers/argument_list.js +8 -7
- package/dist/api/helpers/argument_list.js.map +1 -1
- package/dist/api/helpers/call_helpers.js +2 -0
- package/dist/api/helpers/call_helpers.js.map +1 -1
- package/dist/api/index.d.ts +11 -0
- package/dist/api/index.js +16 -3
- package/dist/api/index.js.map +1 -1
- package/dist/api/interfaces/alarms_and_conditions/promote_to_alarm_options.d.ts +23 -0
- package/dist/api/interfaces/alarms_and_conditions/promote_to_alarm_options.js +3 -0
- package/dist/api/interfaces/alarms_and_conditions/promote_to_alarm_options.js.map +1 -0
- package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +31 -0
- package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +17 -0
- package/dist/api/loader/nodeset_record.d.ts +1 -1
- package/dist/api/loader/nodeset_record.js +1 -1
- package/dist/api/loader/nodeset_record_applier.js +1 -0
- package/dist/api/loader/nodeset_record_applier.js.map +1 -1
- package/dist/api/loader/nodeset_xml_producer.js +7 -1
- package/dist/api/loader/nodeset_xml_producer.js.map +1 -1
- package/dist/api/namespace_of.d.ts +23 -0
- package/dist/api/namespace_of.js +29 -0
- package/dist/api/namespace_of.js.map +1 -0
- package/dist/impl/address_space_change_event_tools.js +4 -1
- package/dist/impl/address_space_change_event_tools.js.map +1 -1
- package/dist/impl/address_space_private.d.ts +6 -6
- package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +7 -0
- package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +47 -37
- package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
- package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.d.ts +72 -2
- package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js +220 -101
- package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
- package/dist/impl/alarms_and_conditions/ua_condition_impl.d.ts +19 -0
- package/dist/impl/alarms_and_conditions/ua_condition_impl.js +71 -16
- package/dist/impl/alarms_and_conditions/ua_condition_impl.js.map +1 -1
- package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +1 -1
- package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +2 -2
- package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
- package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +2 -2
- package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +4 -4
- package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
- package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.d.ts +13 -2
- package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js +21 -5
- package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
- package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +1 -1
- package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +2 -2
- package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
- package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +1 -1
- package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +2 -2
- package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
- package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +1 -1
- package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js +2 -2
- package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
- package/dist/impl/base_node_impl.d.ts +2 -0
- package/dist/impl/base_node_impl.js +28 -0
- package/dist/impl/base_node_impl.js.map +1 -1
- package/dist/impl/base_node_private.d.ts +2 -0
- package/dist/impl/base_node_private.js.map +1 -1
- package/dist/impl/data_access/adjust_datavalue_status_code.d.ts +2 -2
- package/dist/impl/data_access/adjust_datavalue_status_code.js +35 -4
- package/dist/impl/data_access/adjust_datavalue_status_code.js.map +1 -1
- package/dist/impl/data_access/semantics_changed.d.ts +31 -0
- package/dist/impl/data_access/semantics_changed.js +77 -0
- package/dist/impl/data_access/semantics_changed.js.map +1 -0
- package/dist/impl/data_access/ua_multistate_discrete_impl.js +0 -2
- package/dist/impl/data_access/ua_multistate_discrete_impl.js.map +1 -1
- package/dist/impl/data_access/ua_two_state_discrete_impl.js +6 -15
- package/dist/impl/data_access/ua_two_state_discrete_impl.js.map +1 -1
- package/dist/impl/historical_access/read_processed_details_hook.d.ts +22 -0
- package/dist/impl/historical_access/read_processed_details_hook.js +12 -0
- package/dist/impl/historical_access/read_processed_details_hook.js.map +1 -0
- package/dist/impl/namespace_impl.js +2 -4
- package/dist/impl/namespace_impl.js.map +1 -1
- package/dist/impl/ua_object_impl.js +13 -1
- package/dist/impl/ua_object_impl.js.map +1 -1
- package/dist/impl/ua_variable_impl.js +12 -1
- package/dist/impl/ua_variable_impl.js.map +1 -1
- package/dist/tsconfig_base.tsbuildinfo +1 -1
- package/distHelpers/get_address_space_fixture.js +2 -1
- package/distHelpers/get_address_space_fixture.js.map +1 -1
- package/distHelpers/index.d.ts +1 -0
- package/distHelpers/index.js +1 -0
- package/distHelpers/index.js.map +1 -1
- package/distNodeJS/generate_address_space.js +5 -1
- package/distNodeJS/generate_address_space.js.map +1 -1
- package/impl/address_space_change_event_tools.ts +4 -1
- package/impl/address_space_private.ts +5 -17
- package/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +53 -41
- package/impl/alarms_and_conditions/ua_alarm_condition_impl.ts +262 -111
- package/impl/alarms_and_conditions/ua_condition_impl.ts +94 -20
- package/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +2 -2
- package/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +4 -4
- package/impl/alarms_and_conditions/ua_limit_alarm_impl.ts +22 -5
- package/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +2 -2
- package/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +2 -2
- package/impl/alarms_and_conditions/ua_off_normal_alarm_impl.ts +2 -2
- package/impl/base_node_impl.ts +31 -0
- package/impl/base_node_private.ts +2 -0
- package/impl/data_access/adjust_datavalue_status_code.ts +36 -7
- package/impl/data_access/semantics_changed.ts +102 -0
- package/impl/data_access/ua_multistate_discrete_impl.ts +0 -2
- package/impl/data_access/ua_two_state_discrete_impl.ts +6 -16
- package/impl/historical_access/read_processed_details_hook.ts +35 -0
- package/impl/namespace_impl.ts +2 -6
- package/impl/ua_object_impl.ts +13 -1
- package/impl/ua_variable_impl.ts +12 -1
- package/package.json +39 -39
- package/source_nodejs/generate_address_space.ts +6 -1
|
@@ -293,15 +293,14 @@ export function verifyArguments_ArgumentList(
|
|
|
293
293
|
return { inputArgumentResults, statusCode: StatusCodes.BadTooManyArguments };
|
|
294
294
|
}
|
|
295
295
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
: StatusCodes.Good;
|
|
296
|
+
// Part 4 5.11.2 (Call): when one of the input arguments is not valid the
|
|
297
|
+
// operation statusCode is BadInvalidArgument and inputArgumentResults[i]
|
|
298
|
+
// carries the per-argument reason (BadTypeMismatch for a wrong DataType or
|
|
299
|
+
// ValueRank, BadOutOfRange for a value outside the range). A per-argument
|
|
300
|
+
// code is never promoted to the operation level (CTT Method Call Err-004,
|
|
301
|
+
// Subscription Durable Err-004).
|
|
302
|
+
const hasInvalidArgument = inputArgumentResults.some((s) => s.isNotGood());
|
|
303
|
+
const statusCode = hasInvalidArgument ? StatusCodes.BadInvalidArgument : StatusCodes.Good;
|
|
305
304
|
|
|
306
305
|
return {
|
|
307
306
|
inputArgumentResults,
|
|
@@ -25,6 +25,8 @@ import { resolveOpaqueOnAddressSpace } from "./resolve_opaque_on_address_space.j
|
|
|
25
25
|
//
|
|
26
26
|
// BadMethodInvalid The method id does not refer to a method for the specified object.
|
|
27
27
|
// BadOutOfRange Used to indicate that an input argument is outside the acceptable range.
|
|
28
|
+
// BadInvalidArgument One of the input arguments is not valid; inputArgumentResults[i] says why:
|
|
29
|
+
// BadOutOfRange Used to indicate that an input argument is outside the acceptable range.
|
|
28
30
|
// BadTypeMismatch Used to indicate that an input argument does not have the correct data type.
|
|
29
31
|
// A ByteString is structurally the same as a one dimensional array of Byte.
|
|
30
32
|
// A server shall accept a ByteString if an array of Byte is expected.
|
package/api/index.ts
CHANGED
|
@@ -45,6 +45,14 @@ export {
|
|
|
45
45
|
UANonExclusiveLimitAlarmImpl,
|
|
46
46
|
UANonExclusiveLimitAlarmImplBase
|
|
47
47
|
} from "../impl/alarms_and_conditions/index.js";
|
|
48
|
+
/**
|
|
49
|
+
* Upgrading a node to the typed view of what it already is.
|
|
50
|
+
*
|
|
51
|
+
* An alarm built by `objectType.instantiate` or loaded from a nodeset has the children of an alarm
|
|
52
|
+
* and none of the behaviour; promoting it retypes the node in place and installs the machinery
|
|
53
|
+
* `namespace.instantiateAlarmCondition` would have installed.
|
|
54
|
+
*/
|
|
55
|
+
export { promoteToAlarm } from "../impl/alarms_and_conditions/ua_alarm_condition_impl.js";
|
|
48
56
|
export { instantiateCertificateExpirationAlarm } from "../impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js";
|
|
49
57
|
/** The event name a node emits when one of its attributes changes. */
|
|
50
58
|
export { childAccessorNamesShadowedBy, makeAttributeEventName } from "../impl/base_node_impl.js";
|
|
@@ -84,6 +92,10 @@ export * from "../impl/event_data.js";
|
|
|
84
92
|
export { addElement, bindExtObjArrayNode, createExtObjArrayNode, removeElement } from "../impl/extension_object_array_node.js";
|
|
85
93
|
/** The default historian, installed through {@link AddressSpace.historizerFactory}. */
|
|
86
94
|
export { VariableHistorian } from "../impl/historical_access/address_space_historical_data_node.js";
|
|
95
|
+
export {
|
|
96
|
+
installReadProcessedDetails,
|
|
97
|
+
type ReadProcessedDetailsFunc
|
|
98
|
+
} from "../impl/historical_access/read_processed_details_hook.js";
|
|
87
99
|
/** @internal */
|
|
88
100
|
export { isNonEmptyQualifiedName, NamespaceImpl } from "../impl/namespace_impl.js";
|
|
89
101
|
/** How node ids are assigned within a namespace. */
|
|
@@ -130,6 +142,7 @@ export * from "./interfaces/alarms_and_conditions/instantiate_condition_options.
|
|
|
130
142
|
export * from "./interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js";
|
|
131
143
|
export * from "./interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js";
|
|
132
144
|
export * from "./interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js";
|
|
145
|
+
export * from "./interfaces/alarms_and_conditions/promote_to_alarm_options.js";
|
|
133
146
|
export * from "./interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js";
|
|
134
147
|
export * from "./interfaces/alarms_and_conditions/ua_alarm_condition_ex.js";
|
|
135
148
|
export * from "./interfaces/alarms_and_conditions/ua_base_event_ex.js";
|
|
@@ -231,6 +244,7 @@ export * from "./loader/register_node_promoter.js";
|
|
|
231
244
|
export * from "./namespace.js";
|
|
232
245
|
export type { INamespaceAlarmAndCondition } from "./namespace_alarm_and_condition.js";
|
|
233
246
|
export * from "./namespace_data_access.js";
|
|
247
|
+
export * from "./namespace_of.js";
|
|
234
248
|
export * from "./pseudo_session.js";
|
|
235
249
|
export * from "./session_context.js";
|
|
236
250
|
export * from "./set_namespace_meta_data.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { BaseNode, UAObject, UAVariable } from "node-opcua-address-space-base";
|
|
2
|
+
import type { NodeId } from "node-opcua-nodeid";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The options {@link promoteToAlarm} accepts.
|
|
6
|
+
*
|
|
7
|
+
* The names are the ones `instantiateAlarmCondition` already uses, so the two routes to a working
|
|
8
|
+
* alarm read the same. Everything is optional here: a node being promoted usually already carries
|
|
9
|
+
* the children and references the factory would have created.
|
|
10
|
+
*/
|
|
11
|
+
export interface PromoteToAlarmOptions {
|
|
12
|
+
/**
|
|
13
|
+
* The node this alarm reports on. Wired as a backward HasCondition reference and used to fill
|
|
14
|
+
* SourceNode and SourceName, exactly as at instantiation time. The node has to be an event
|
|
15
|
+
* source, otherwise the events the alarm raises reach no one.
|
|
16
|
+
*/
|
|
17
|
+
conditionSource?: UAObject | BaseNode | NodeId | null;
|
|
18
|
+
/** The variable whose value drives the alarm; monitoring is installed when it is given. */
|
|
19
|
+
inputNode?: UAVariable | NodeId;
|
|
20
|
+
/** Defaults to the ConditionType, as at instantiation time. */
|
|
21
|
+
conditionClass?: UAObject | BaseNode | NodeId | null;
|
|
22
|
+
conditionName?: string;
|
|
23
|
+
maxTimeShelved?: number;
|
|
24
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BaseNode, ListenerSignature, UAVariable } from "node-opcua-address-space-base";
|
|
2
|
+
import type { DataValue } from "node-opcua-data-value";
|
|
2
3
|
import type { NodeId } from "node-opcua-nodeid";
|
|
3
4
|
import type { UAAlarmCondition_Base } from "node-opcua-nodeset-ua";
|
|
4
5
|
import type { UATwoStateVariableEx } from "../../ua_two_state_variable_ex.js";
|
|
@@ -51,6 +52,38 @@ export interface UAAlarmConditionHelper extends UAAcknowledgeableConditionHelper
|
|
|
51
52
|
value: string,
|
|
52
53
|
oldConditionInfo: ConditionInfo
|
|
53
54
|
): ConditionInfo;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* What the alarm does when the value of its input node changes. Assign to it to give an
|
|
58
|
+
* alarm a behaviour of its own, without deriving from an implementation class:
|
|
59
|
+
*
|
|
60
|
+
* ```ts
|
|
61
|
+
* alarm.onInputDataValueChange = (newValue) => {
|
|
62
|
+
* const tooHot = newValue.value.value > 80;
|
|
63
|
+
* if (tooHot !== alarm.activeState.getValue()) {
|
|
64
|
+
* alarm.signalNewCondition(tooHot ? "Active" : "Inactive", tooHot, `${newValue.value.value}`);
|
|
65
|
+
* }
|
|
66
|
+
* };
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* The default does nothing: a plain AlarmConditionType cannot know what its input means.
|
|
70
|
+
* Alarm types that do know (limit alarms, off-normal alarms) already define it, so
|
|
71
|
+
* assigning to one of those replaces the behaviour it came with.
|
|
72
|
+
*
|
|
73
|
+
* The old name `_onInputDataValueChange` still works and is deprecated.
|
|
74
|
+
*/
|
|
75
|
+
onInputDataValueChange(newValue: DataValue): void;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Raise a new condition event for this alarm, moving it to the given state.
|
|
79
|
+
*
|
|
80
|
+
* Call this only when the condition has actually changed: it throws when the ConditionInfo
|
|
81
|
+
* it computes is equal to the current one, because an event that reports nothing new is a
|
|
82
|
+
* bug in the caller rather than a state the alarm can represent.
|
|
83
|
+
*
|
|
84
|
+
* The old name `_signalNewCondition` still works and is deprecated.
|
|
85
|
+
*/
|
|
86
|
+
signalNewCondition(stateName: string | null, isActive: boolean, value: string): void;
|
|
54
87
|
}
|
|
55
88
|
|
|
56
89
|
export interface UALarmConditionEvents extends UAAcknowledgeableConditionEvents {}
|
|
@@ -12,6 +12,24 @@ export interface UALimitAlarmHelper extends UAAlarmConditionHelper {
|
|
|
12
12
|
getHighLimit(): number;
|
|
13
13
|
getLowLimit(): number;
|
|
14
14
|
getLowLowLimit(): number;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* How the alarm turns the value of its input node into limit states. Assign to it to give
|
|
18
|
+
* a limit alarm a rule of its own:
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* alarm.setStateBasedOnInputValue = (value) => {
|
|
22
|
+
* const isActive = value > alarm.getHighLimit();
|
|
23
|
+
* alarm.signalNewCondition(isActive ? "High" : null, isActive, value.toFixed(3));
|
|
24
|
+
* };
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* Every concrete limit alarm type already defines this, so assigning to one replaces the
|
|
28
|
+
* rule it came with; the base LimitAlarmType has no limit states of its own and throws.
|
|
29
|
+
*
|
|
30
|
+
* The old name `_setStateBasedOnInputValue` still works and is deprecated.
|
|
31
|
+
*/
|
|
32
|
+
setStateBasedOnInputValue(value: number): void;
|
|
15
33
|
}
|
|
16
34
|
export interface UALimitAlarmEx extends UALimitAlarm_Base, UAAlarmConditionEx, UALimitAlarmHelper {
|
|
17
35
|
enabledState: UATwoStateVariableEx;
|
|
@@ -29,7 +29,7 @@ import type { EnumFieldOptions, StructureFieldOptions } from "node-opcua-xml2jso
|
|
|
29
29
|
* was built from, and nothing else would ever invalidate it. The source digest cannot: the source
|
|
30
30
|
* did not change. This number is the only lever.
|
|
31
31
|
*/
|
|
32
|
-
export const NODESET_RECORD_SCHEMA =
|
|
32
|
+
export const NODESET_RECORD_SCHEMA = 5;
|
|
33
33
|
|
|
34
34
|
export interface NodesetModelRecord {
|
|
35
35
|
modelUri: string;
|
|
@@ -127,7 +127,7 @@ export interface NodesetNodeRecord {
|
|
|
127
127
|
symmetric?: boolean;
|
|
128
128
|
// views
|
|
129
129
|
containsNoLoops?: boolean;
|
|
130
|
-
// variables,
|
|
130
|
+
// objects, variables, methods and views: the `ParentNodeId` attribute, the declared parent
|
|
131
131
|
parentNodeId?: NodeId | null;
|
|
132
132
|
// variables and variable types
|
|
133
133
|
dataType?: NodeId | null;
|
|
@@ -607,6 +607,7 @@ export class NodesetRecordApplier implements NodesetRecordConsumer {
|
|
|
607
607
|
this.createNode(
|
|
608
608
|
{
|
|
609
609
|
...this.common(record),
|
|
610
|
+
parentNodeId: this.translateOrNull(record.parentNodeId),
|
|
610
611
|
isAbstract: record.isAbstract,
|
|
611
612
|
eventNotifier: record.eventNotifier,
|
|
612
613
|
symbolicName: record.symbolicName ?? null,
|
|
@@ -194,6 +194,7 @@ export function makeXmlNodesetRecordReader(): XmlNodesetRecordReader {
|
|
|
194
194
|
this.obj.isAbstract = coerceBoolean(attrs.IsAbstract);
|
|
195
195
|
this.obj.eventNotifier = coerceByte(attrs.EventNotifier) || 0;
|
|
196
196
|
if (attrs.SymbolicName) this.obj.symbolicName = attrs.SymbolicName;
|
|
197
|
+
if (attrs.ParentNodeId) this.obj.parentNodeId = nodeIdOf(attrs.ParentNodeId);
|
|
197
198
|
},
|
|
198
199
|
...emit,
|
|
199
200
|
parser: common_parser
|
|
@@ -265,7 +266,9 @@ export function makeXmlNodesetRecordReader(): XmlNodesetRecordReader {
|
|
|
265
266
|
const record = baseRecord(nodeClass, attrs);
|
|
266
267
|
const valueRank = attrs.ValueRank === undefined ? -1 : coerceInt32(attrs.ValueRank);
|
|
267
268
|
record.parentNodeId = nodeIdOrNull(attrs.ParentNodeId);
|
|
268
|
-
|
|
269
|
+
// the UANodeSet schema defaults an omitted DataType to BaseDataType (i=24); a null
|
|
270
|
+
// NodeId here became i=0 on the wire (CTT Base Info Selection List 001 on i=16309)
|
|
271
|
+
record.dataType = attrs.DataType ? nodeIdOf(attrs.DataType) : resolveNodeId(DataTypeIds.BaseDataType);
|
|
269
272
|
record.valueRank = valueRank;
|
|
270
273
|
record.arrayDimensions = valueRank <= 0 ? null : stringToUInt32Array(attrs.ArrayDimensions);
|
|
271
274
|
record.minimumSamplingInterval = attrs.MinimumSamplingInterval ? parseInt(attrs.MinimumSamplingInterval, 10) : 0;
|
|
@@ -316,6 +319,7 @@ export function makeXmlNodesetRecordReader(): XmlNodesetRecordReader {
|
|
|
316
319
|
this.obj = baseRecord(NodeClass.View, attrs);
|
|
317
320
|
if (attrs.ContainsNoLoops !== undefined) this.obj.containsNoLoops = coerceBoolean(attrs.ContainsNoLoops);
|
|
318
321
|
this.obj.eventNotifier = coerceByte(attrs.EventNotifier) || 0;
|
|
322
|
+
if (attrs.ParentNodeId) this.obj.parentNodeId = nodeIdOf(attrs.ParentNodeId);
|
|
319
323
|
},
|
|
320
324
|
...emit,
|
|
321
325
|
parser: common_parser
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { BaseNode } from "node-opcua-address-space-base";
|
|
2
|
+
import type { Namespace } from "./namespace.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The namespace a node belongs to, seen through the published {@link Namespace}.
|
|
6
|
+
*
|
|
7
|
+
* `BaseNode.namespace` is declared in node-opcua-address-space-base, which cannot name the
|
|
8
|
+
* alarm-and-condition, data-access and machine-state methods this package adds without
|
|
9
|
+
* depending on it. So a caller holding only a node saw the narrower `INamespace`, and reaching
|
|
10
|
+
* `instantiateAlarmCondition` meant asserting the type at every call site.
|
|
11
|
+
*
|
|
12
|
+
* The same mismatch was already corrected for `AddressSpace.getOwnNamespace()`, which used to
|
|
13
|
+
* return the narrower interface and hide those methods. This closes the remaining case: the
|
|
14
|
+
* assertion happens once, here, where both types are in scope.
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* const alarm = namespaceOf(deviceNode).instantiateAlarmCondition(alarmType, {
|
|
18
|
+
* browseName: "FailureAlarm",
|
|
19
|
+
* conditionSource: deviceNode,
|
|
20
|
+
* inputNode: deviceHealthNode
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function namespaceOf(node: BaseNode): Namespace {
|
|
25
|
+
// every namespace in this address space is a NamespaceImpl, which satisfies Namespace;
|
|
26
|
+
// only the declaration BaseNode can reach is narrower
|
|
27
|
+
return node.namespace as Namespace;
|
|
28
|
+
}
|
|
@@ -248,13 +248,14 @@ function verifyArguments_ArgumentList(addressSpace, methodInputArguments, inputA
|
|
|
248
248
|
inputArguments.length);
|
|
249
249
|
return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadTooManyArguments };
|
|
250
250
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
251
|
+
// Part 4 5.11.2 (Call): when one of the input arguments is not valid the
|
|
252
|
+
// operation statusCode is BadInvalidArgument and inputArgumentResults[i]
|
|
253
|
+
// carries the per-argument reason (BadTypeMismatch for a wrong DataType or
|
|
254
|
+
// ValueRank, BadOutOfRange for a value outside the range). A per-argument
|
|
255
|
+
// code is never promoted to the operation level (CTT Method Call Err-004,
|
|
256
|
+
// Subscription Durable Err-004).
|
|
257
|
+
const hasInvalidArgument = inputArgumentResults.some((s) => s.isNotGood());
|
|
258
|
+
const statusCode = hasInvalidArgument ? node_opcua_status_code_1.StatusCodes.BadInvalidArgument : node_opcua_status_code_1.StatusCodes.Good;
|
|
258
259
|
return {
|
|
259
260
|
inputArgumentResults,
|
|
260
261
|
statusCode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argument_list.js","sourceRoot":"","sources":["../../../api/helpers/argument_list.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA0BH,kDAgCC;AAED,kDAiCC;AAED,oEAQC;AAED,8EAmCC;AAuCD,0CA2DC;AAID,
|
|
1
|
+
{"version":3,"file":"argument_list.js","sourceRoot":"","sources":["../../../api/helpers/argument_list.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ const resolve_opaque_on_address_space_js_1 = require("./resolve_opaque_on_addres
|
|
|
21
21
|
//
|
|
22
22
|
// BadMethodInvalid The method id does not refer to a method for the specified object.
|
|
23
23
|
// BadOutOfRange Used to indicate that an input argument is outside the acceptable range.
|
|
24
|
+
// BadInvalidArgument One of the input arguments is not valid; inputArgumentResults[i] says why:
|
|
25
|
+
// BadOutOfRange Used to indicate that an input argument is outside the acceptable range.
|
|
24
26
|
// BadTypeMismatch Used to indicate that an input argument does not have the correct data type.
|
|
25
27
|
// A ByteString is structurally the same as a one dimensional array of Byte.
|
|
26
28
|
// A server shall accept a ByteString if an array of Byte is expected.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call_helpers.js","sourceRoot":"","sources":["../../../api/helpers/call_helpers.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"call_helpers.js","sourceRoot":"","sources":["../../../api/helpers/call_helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -5,6 +5,14 @@ export * from "node-opcua-address-space-base";
|
|
|
5
5
|
export * from "node-opcua-nodeset-ua";
|
|
6
6
|
/** @internal */
|
|
7
7
|
export { ConditionInfoImpl, ConditionSnapshotImpl, OneDayDuration, promoteToCertificateExpirationAlarm, TwoWeeksDuration, UAAcknowledgeableConditionImpl, UAAcknowledgeableConditionImplBase, UAAlarmConditionImpl, UAAlarmConditionImplBase, UACertificateExpirationAlarmImpl, UAConditionImpl, UAConditionImplBase, UADiscreteAlarmImpl, UADiscreteAlarmImplBase, UAExclusiveDeviationAlarmImpl, UAExclusiveDeviationAlarmImplBase, UAExclusiveLevelAlarmImpl, UAExclusiveLimitAlarmImpl, UAExclusiveLimitAlarmImplBase, UALimitAlarmImpl, UALimitAlarmImplBase, UANonExclusiveDeviationAlarmImpl, UANonExclusiveDeviationAlarmImplBase, UANonExclusiveLimitAlarmImpl, UANonExclusiveLimitAlarmImplBase } from "../impl/alarms_and_conditions/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Upgrading a node to the typed view of what it already is.
|
|
10
|
+
*
|
|
11
|
+
* An alarm built by `objectType.instantiate` or loaded from a nodeset has the children of an alarm
|
|
12
|
+
* and none of the behaviour; promoting it retypes the node in place and installs the machinery
|
|
13
|
+
* `namespace.instantiateAlarmCondition` would have installed.
|
|
14
|
+
*/
|
|
15
|
+
export { promoteToAlarm } from "../impl/alarms_and_conditions/ua_alarm_condition_impl.js";
|
|
8
16
|
export { instantiateCertificateExpirationAlarm } from "../impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js";
|
|
9
17
|
/** The event name a node emits when one of its attributes changes. */
|
|
10
18
|
export { childAccessorNamesShadowedBy, makeAttributeEventName } from "../impl/base_node_impl.js";
|
|
@@ -26,6 +34,7 @@ export * from "../impl/event_data.js";
|
|
|
26
34
|
export { addElement, bindExtObjArrayNode, createExtObjArrayNode, removeElement } from "../impl/extension_object_array_node.js";
|
|
27
35
|
/** The default historian, installed through {@link AddressSpace.historizerFactory}. */
|
|
28
36
|
export { VariableHistorian } from "../impl/historical_access/address_space_historical_data_node.js";
|
|
37
|
+
export { installReadProcessedDetails, type ReadProcessedDetailsFunc } from "../impl/historical_access/read_processed_details_hook.js";
|
|
29
38
|
/** @internal */
|
|
30
39
|
export { isNonEmptyQualifiedName, NamespaceImpl } from "../impl/namespace_impl.js";
|
|
31
40
|
/** How node ids are assigned within a namespace. */
|
|
@@ -66,6 +75,7 @@ export * from "./interfaces/alarms_and_conditions/instantiate_condition_options.
|
|
|
66
75
|
export * from "./interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js";
|
|
67
76
|
export * from "./interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js";
|
|
68
77
|
export * from "./interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js";
|
|
78
|
+
export * from "./interfaces/alarms_and_conditions/promote_to_alarm_options.js";
|
|
69
79
|
export * from "./interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js";
|
|
70
80
|
export * from "./interfaces/alarms_and_conditions/ua_alarm_condition_ex.js";
|
|
71
81
|
export * from "./interfaces/alarms_and_conditions/ua_base_event_ex.js";
|
|
@@ -110,6 +120,7 @@ export * from "./loader/register_node_promoter.js";
|
|
|
110
120
|
export * from "./namespace.js";
|
|
111
121
|
export type { INamespaceAlarmAndCondition } from "./namespace_alarm_and_condition.js";
|
|
112
122
|
export * from "./namespace_data_access.js";
|
|
123
|
+
export * from "./namespace_of.js";
|
|
113
124
|
export * from "./pseudo_session.js";
|
|
114
125
|
export * from "./session_context.js";
|
|
115
126
|
export * from "./set_namespace_meta_data.js";
|
package/dist/api/index.js
CHANGED
|
@@ -17,9 +17,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
17
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.
|
|
21
|
-
exports.
|
|
22
|
-
exports.xmlNodesetRecords = exports.makeXmlNodesetRecordReader = exports.sliceHeader = exports.parseDependencies = void 0;
|
|
20
|
+
exports.VariableHistorian = exports.removeElement = exports.createExtObjArrayNode = exports.bindExtObjArrayNode = exports.addElement = exports.UATwoStateDiscreteImplBase = exports.UATwoStateDiscreteImpl = exports.promoteToTwoStateDiscrete = exports._addTwoStateDiscrete = exports.validateIsNumericDataType = exports.validateDataType = exports.UAMultiStateValueDiscreteImplBase = exports.UAMultiStateValueDiscreteImpl = exports.promoteToMultiStateValueDiscrete = exports._addMultiStateValueDiscrete = exports.UAMultiStateDiscreteImplBase = exports.UAMultiStateDiscreteImpl = exports.promoteToMultiStateDiscrete = exports._addMultiStateDiscrete = exports.adjustDataValueStatusCode = exports.add_dataItem_stuff = exports.makeAttributeEventName = exports.childAccessorNamesShadowedBy = exports.instantiateCertificateExpirationAlarm = exports.promoteToAlarm = exports.UANonExclusiveLimitAlarmImplBase = exports.UANonExclusiveLimitAlarmImpl = exports.UANonExclusiveDeviationAlarmImplBase = exports.UANonExclusiveDeviationAlarmImpl = exports.UALimitAlarmImplBase = exports.UALimitAlarmImpl = exports.UAExclusiveLimitAlarmImplBase = exports.UAExclusiveLimitAlarmImpl = exports.UAExclusiveLevelAlarmImpl = exports.UAExclusiveDeviationAlarmImplBase = exports.UAExclusiveDeviationAlarmImpl = exports.UADiscreteAlarmImplBase = exports.UADiscreteAlarmImpl = exports.UAConditionImplBase = exports.UAConditionImpl = exports.UACertificateExpirationAlarmImpl = exports.UAAlarmConditionImplBase = exports.UAAlarmConditionImpl = exports.UAAcknowledgeableConditionImplBase = exports.UAAcknowledgeableConditionImpl = exports.TwoWeeksDuration = exports.promoteToCertificateExpirationAlarm = exports.OneDayDuration = exports.ConditionSnapshotImpl = exports.ConditionInfoImpl = void 0;
|
|
21
|
+
exports.sha256Hex = exports.recordsToNodeset2XML = exports.XmlExtensionObjectFragment = exports.recordBytes = exports.NODESET_RECORD_SCHEMA = exports.sharedMemoryNodesetImageStore = exports.nodesetImageKey = exports.MemoryNodesetImageStore = exports.encodeValue = exports.decodeValue = exports.setImageInflater = exports.setImageDeflater = exports.readNodesetImageInfo = exports.nodesetImageProblem = exports.NodesetImageWriter = exports.NodesetImageError = exports.isNodesetImage = exports.inflatedImageLines = exports.imageNodesetRecords = exports.imageLinesToRecords = exports.registerNodesetFormat = exports.nodesetFormats = exports.nodesetFormatByName = exports.findNodesetFormat = exports.registerBuiltinNodesetFormats = exports.NODESET2_XML_FORMAT = exports.NDJSON_IMAGE_FORMAT = exports.isNdjsonHeaderLine = exports.narrowInstanceDataTypes = exports.ensureDatatypeExtractedWithCallback = exports.ensureDatatypeExtracted = exports.resolveOpaqueOnAddressSpace = exports.adjustBrowseDirection = exports.ContinuationPointManager = exports.validateDataTypeCorrectness = exports.promoteToStateMachineType = exports.promoteToStateMachine = exports.resolveReferenceType = exports.resolveReferenceNode = exports.sortByBrowseName = exports.namespaceToRecords = exports.namespaceToImage = exports.NodesetExportError = exports.dumpToBSD = exports.adjustNamespaceArray = exports.NodeIdManager = exports.NamespaceOptions = exports.NamespaceImpl = exports.isNonEmptyQualifiedName = exports.installReadProcessedDetails = void 0;
|
|
22
|
+
exports.xmlNodesetRecords = exports.makeXmlNodesetRecordReader = exports.sliceHeader = exports.parseDependencies = exports.headerComplete = exports.nodesetToImage = void 0;
|
|
23
23
|
__exportStar(require("node-opcua-address-space-base"), exports);
|
|
24
24
|
__exportStar(require("node-opcua-nodeset-ua"), exports);
|
|
25
25
|
// ---------------------------------------------------------------------------------------
|
|
@@ -62,6 +62,15 @@ Object.defineProperty(exports, "UANonExclusiveDeviationAlarmImpl", { enumerable:
|
|
|
62
62
|
Object.defineProperty(exports, "UANonExclusiveDeviationAlarmImplBase", { enumerable: true, get: function () { return index_js_1.UANonExclusiveDeviationAlarmImplBase; } });
|
|
63
63
|
Object.defineProperty(exports, "UANonExclusiveLimitAlarmImpl", { enumerable: true, get: function () { return index_js_1.UANonExclusiveLimitAlarmImpl; } });
|
|
64
64
|
Object.defineProperty(exports, "UANonExclusiveLimitAlarmImplBase", { enumerable: true, get: function () { return index_js_1.UANonExclusiveLimitAlarmImplBase; } });
|
|
65
|
+
/**
|
|
66
|
+
* Upgrading a node to the typed view of what it already is.
|
|
67
|
+
*
|
|
68
|
+
* An alarm built by `objectType.instantiate` or loaded from a nodeset has the children of an alarm
|
|
69
|
+
* and none of the behaviour; promoting it retypes the node in place and installs the machinery
|
|
70
|
+
* `namespace.instantiateAlarmCondition` would have installed.
|
|
71
|
+
*/
|
|
72
|
+
var ua_alarm_condition_impl_js_1 = require("../impl/alarms_and_conditions/ua_alarm_condition_impl.js");
|
|
73
|
+
Object.defineProperty(exports, "promoteToAlarm", { enumerable: true, get: function () { return ua_alarm_condition_impl_js_1.promoteToAlarm; } });
|
|
65
74
|
var ua_certificate_expiration_alarm_impl_js_1 = require("../impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js");
|
|
66
75
|
Object.defineProperty(exports, "instantiateCertificateExpirationAlarm", { enumerable: true, get: function () { return ua_certificate_expiration_alarm_impl_js_1.instantiateCertificateExpirationAlarm; } });
|
|
67
76
|
/** The event name a node emits when one of its attributes changes. */
|
|
@@ -108,6 +117,8 @@ Object.defineProperty(exports, "removeElement", { enumerable: true, get: functio
|
|
|
108
117
|
/** The default historian, installed through {@link AddressSpace.historizerFactory}. */
|
|
109
118
|
var address_space_historical_data_node_js_1 = require("../impl/historical_access/address_space_historical_data_node.js");
|
|
110
119
|
Object.defineProperty(exports, "VariableHistorian", { enumerable: true, get: function () { return address_space_historical_data_node_js_1.VariableHistorian; } });
|
|
120
|
+
var read_processed_details_hook_js_1 = require("../impl/historical_access/read_processed_details_hook.js");
|
|
121
|
+
Object.defineProperty(exports, "installReadProcessedDetails", { enumerable: true, get: function () { return read_processed_details_hook_js_1.installReadProcessedDetails; } });
|
|
111
122
|
/** @internal */
|
|
112
123
|
var namespace_impl_js_1 = require("../impl/namespace_impl.js");
|
|
113
124
|
Object.defineProperty(exports, "isNonEmptyQualifiedName", { enumerable: true, get: function () { return namespace_impl_js_1.isNonEmptyQualifiedName; } });
|
|
@@ -166,6 +177,7 @@ __exportStar(require("./interfaces/alarms_and_conditions/instantiate_condition_o
|
|
|
166
177
|
__exportStar(require("./interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js"), exports);
|
|
167
178
|
__exportStar(require("./interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js"), exports);
|
|
168
179
|
__exportStar(require("./interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js"), exports);
|
|
180
|
+
__exportStar(require("./interfaces/alarms_and_conditions/promote_to_alarm_options.js"), exports);
|
|
169
181
|
__exportStar(require("./interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js"), exports);
|
|
170
182
|
__exportStar(require("./interfaces/alarms_and_conditions/ua_alarm_condition_ex.js"), exports);
|
|
171
183
|
__exportStar(require("./interfaces/alarms_and_conditions/ua_base_event_ex.js"), exports);
|
|
@@ -245,6 +257,7 @@ Object.defineProperty(exports, "xmlNodesetRecords", { enumerable: true, get: fun
|
|
|
245
257
|
__exportStar(require("./loader/register_node_promoter.js"), exports);
|
|
246
258
|
__exportStar(require("./namespace.js"), exports);
|
|
247
259
|
__exportStar(require("./namespace_data_access.js"), exports);
|
|
260
|
+
__exportStar(require("./namespace_of.js"), exports);
|
|
248
261
|
__exportStar(require("./pseudo_session.js"), exports);
|
|
249
262
|
__exportStar(require("./session_context.js"), exports);
|
|
250
263
|
__exportStar(require("./set_namespace_meta_data.js"), exports);
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { BaseNode, UAObject, UAVariable } from "node-opcua-address-space-base";
|
|
2
|
+
import type { NodeId } from "node-opcua-nodeid";
|
|
3
|
+
/**
|
|
4
|
+
* The options {@link promoteToAlarm} accepts.
|
|
5
|
+
*
|
|
6
|
+
* The names are the ones `instantiateAlarmCondition` already uses, so the two routes to a working
|
|
7
|
+
* alarm read the same. Everything is optional here: a node being promoted usually already carries
|
|
8
|
+
* the children and references the factory would have created.
|
|
9
|
+
*/
|
|
10
|
+
export interface PromoteToAlarmOptions {
|
|
11
|
+
/**
|
|
12
|
+
* The node this alarm reports on. Wired as a backward HasCondition reference and used to fill
|
|
13
|
+
* SourceNode and SourceName, exactly as at instantiation time. The node has to be an event
|
|
14
|
+
* source, otherwise the events the alarm raises reach no one.
|
|
15
|
+
*/
|
|
16
|
+
conditionSource?: UAObject | BaseNode | NodeId | null;
|
|
17
|
+
/** The variable whose value drives the alarm; monitoring is installed when it is given. */
|
|
18
|
+
inputNode?: UAVariable | NodeId;
|
|
19
|
+
/** Defaults to the ConditionType, as at instantiation time. */
|
|
20
|
+
conditionClass?: UAObject | BaseNode | NodeId | null;
|
|
21
|
+
conditionName?: string;
|
|
22
|
+
maxTimeShelved?: number;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promote_to_alarm_options.js","sourceRoot":"","sources":["../../../../api/interfaces/alarms_and_conditions/promote_to_alarm_options.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BaseNode, ListenerSignature, UAVariable } from "node-opcua-address-space-base";
|
|
2
|
+
import type { DataValue } from "node-opcua-data-value";
|
|
2
3
|
import type { NodeId } from "node-opcua-nodeid";
|
|
3
4
|
import type { UAAlarmCondition_Base } from "node-opcua-nodeset-ua";
|
|
4
5
|
import type { UATwoStateVariableEx } from "../../ua_two_state_variable_ex.js";
|
|
@@ -40,6 +41,36 @@ export interface UAAlarmConditionHelper extends UAAcknowledgeableConditionHelper
|
|
|
40
41
|
* deprecated.
|
|
41
42
|
*/
|
|
42
43
|
calculateConditionInfo(stateName: string | null, isActive: boolean, value: string, oldConditionInfo: ConditionInfo): ConditionInfo;
|
|
44
|
+
/**
|
|
45
|
+
* What the alarm does when the value of its input node changes. Assign to it to give an
|
|
46
|
+
* alarm a behaviour of its own, without deriving from an implementation class:
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* alarm.onInputDataValueChange = (newValue) => {
|
|
50
|
+
* const tooHot = newValue.value.value > 80;
|
|
51
|
+
* if (tooHot !== alarm.activeState.getValue()) {
|
|
52
|
+
* alarm.signalNewCondition(tooHot ? "Active" : "Inactive", tooHot, `${newValue.value.value}`);
|
|
53
|
+
* }
|
|
54
|
+
* };
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* The default does nothing: a plain AlarmConditionType cannot know what its input means.
|
|
58
|
+
* Alarm types that do know (limit alarms, off-normal alarms) already define it, so
|
|
59
|
+
* assigning to one of those replaces the behaviour it came with.
|
|
60
|
+
*
|
|
61
|
+
* The old name `_onInputDataValueChange` still works and is deprecated.
|
|
62
|
+
*/
|
|
63
|
+
onInputDataValueChange(newValue: DataValue): void;
|
|
64
|
+
/**
|
|
65
|
+
* Raise a new condition event for this alarm, moving it to the given state.
|
|
66
|
+
*
|
|
67
|
+
* Call this only when the condition has actually changed: it throws when the ConditionInfo
|
|
68
|
+
* it computes is equal to the current one, because an event that reports nothing new is a
|
|
69
|
+
* bug in the caller rather than a state the alarm can represent.
|
|
70
|
+
*
|
|
71
|
+
* The old name `_signalNewCondition` still works and is deprecated.
|
|
72
|
+
*/
|
|
73
|
+
signalNewCondition(stateName: string | null, isActive: boolean, value: string): void;
|
|
43
74
|
}
|
|
44
75
|
export interface UALarmConditionEvents extends UAAcknowledgeableConditionEvents {
|
|
45
76
|
}
|
|
@@ -11,6 +11,23 @@ export interface UALimitAlarmHelper extends UAAlarmConditionHelper {
|
|
|
11
11
|
getHighLimit(): number;
|
|
12
12
|
getLowLimit(): number;
|
|
13
13
|
getLowLowLimit(): number;
|
|
14
|
+
/**
|
|
15
|
+
* How the alarm turns the value of its input node into limit states. Assign to it to give
|
|
16
|
+
* a limit alarm a rule of its own:
|
|
17
|
+
*
|
|
18
|
+
* ```ts
|
|
19
|
+
* alarm.setStateBasedOnInputValue = (value) => {
|
|
20
|
+
* const isActive = value > alarm.getHighLimit();
|
|
21
|
+
* alarm.signalNewCondition(isActive ? "High" : null, isActive, value.toFixed(3));
|
|
22
|
+
* };
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* Every concrete limit alarm type already defines this, so assigning to one replaces the
|
|
26
|
+
* rule it came with; the base LimitAlarmType has no limit states of its own and throws.
|
|
27
|
+
*
|
|
28
|
+
* The old name `_setStateBasedOnInputValue` still works and is deprecated.
|
|
29
|
+
*/
|
|
30
|
+
setStateBasedOnInputValue(value: number): void;
|
|
14
31
|
}
|
|
15
32
|
export interface UALimitAlarmEx extends UALimitAlarm_Base, UAAlarmConditionEx, UALimitAlarmHelper {
|
|
16
33
|
enabledState: UATwoStateVariableEx;
|
|
@@ -28,7 +28,7 @@ import type { EnumFieldOptions, StructureFieldOptions } from "node-opcua-xml2jso
|
|
|
28
28
|
* was built from, and nothing else would ever invalidate it. The source digest cannot: the source
|
|
29
29
|
* did not change. This number is the only lever.
|
|
30
30
|
*/
|
|
31
|
-
export declare const NODESET_RECORD_SCHEMA =
|
|
31
|
+
export declare const NODESET_RECORD_SCHEMA = 5;
|
|
32
32
|
export interface NodesetModelRecord {
|
|
33
33
|
modelUri: string;
|
|
34
34
|
version: string;
|
|
@@ -11,7 +11,7 @@ exports.recordBytes = exports.XmlExtensionObjectFragment = exports.NODESET_RECOR
|
|
|
11
11
|
* was built from, and nothing else would ever invalidate it. The source digest cannot: the source
|
|
12
12
|
* did not change. This number is the only lever.
|
|
13
13
|
*/
|
|
14
|
-
exports.NODESET_RECORD_SCHEMA =
|
|
14
|
+
exports.NODESET_RECORD_SCHEMA = 5;
|
|
15
15
|
/**
|
|
16
16
|
* an extension object the reader could not decode on the spot: its XML body waits in the value
|
|
17
17
|
* until the data types are known, then a consumer decodes it
|
|
@@ -479,6 +479,7 @@ class NodesetRecordApplier {
|
|
|
479
479
|
case node_opcua_data_model_1.NodeClass.Object:
|
|
480
480
|
this.createNode({
|
|
481
481
|
...this.common(record),
|
|
482
|
+
parentNodeId: this.translateOrNull(record.parentNodeId),
|
|
482
483
|
isAbstract: record.isAbstract,
|
|
483
484
|
eventNotifier: record.eventNotifier,
|
|
484
485
|
symbolicName: record.symbolicName ?? null,
|