Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
/**
*
* dataType: DataType.String
*
* As per spec OPCUA 1.03 part 9:
* ConditionName identifies the Condition instance that the Event originated from. It can be used
* together with the SourceName in a user display to distinguish between different Condition
* instances. If a ConditionSource has only one instance of a ConditionType, and the Server has
* no instance name, the Server shall supply the ConditionType browse name.
* @property conditionName
* @type {UAVariable}
*/
const conditionName = options.conditionName || "Unset Condition Name";
assert(_.isString(conditionName));
conditionNode.conditionName.setValueFromSource({
dataType: DataType.String,
value: conditionName
});
// set SourceNode and SourceName based on HasCondition node
const sourceNodes = conditionNode.findReferencesAsObject("HasCondition", false);
if (sourceNodes.length) {
assert(sourceNodes.length === 1);
conditionNode.setSourceNode(sourceNodes[0].nodeId);
conditionNode.setSourceName(sourceNodes[0].browseName.toString());
}
conditionNode.post_initialize();
const branch0 = conditionNode.currentBranch();
branch0.setRetain(false);
branch0.setComment("");
/**
*
* dataType: DataType.String
*
* As per spec OPCUA 1.03 part 9:
* ConditionName identifies the Condition instance that the Event originated from. It can be used
* together with the SourceName in a user display to distinguish between different Condition
* instances. If a ConditionSource has only one instance of a ConditionType, and the Server has
* no instance name, the Server shall supply the ConditionType browse name.
* @property conditionName
* @type {UAVariable}
*/
const conditionName = options.conditionName || "Unset Condition Name";
assert(_.isString(conditionName));
conditionNode.conditionName.setValueFromSource({
dataType: DataType.String,
value: conditionName
});
// set SourceNode and SourceName based on HasCondition node
const sourceNodes = conditionNode.findReferencesAsObject("HasCondition", false);
if (sourceNodes.length) {
assert(sourceNodes.length === 1);
conditionNode.setSourceNode(sourceNodes[0].nodeId);
conditionNode.setSourceName(sourceNodes[0].browseName.toString());
}
conditionNode.post_initialize();
const branch0 = conditionNode.currentBranch();
branch0.setRetain(false);
branch0.setComment("Initialized");
// eventId
assert(data.hasOwnProperty,"eventId","constructEventData : options object should not have eventId property");
data.eventId = data.eventId || addressSpace.generateEventId();
// eventType
data.eventType = { dataType: DataType.NodeId, value: eventTypeNode.nodeId};
// sourceNode
assert(data.hasOwnProperty("sourceNode"), "expecting a source node to be defined");
data.sourceNode = new Variant(data.sourceNode);
assert(data.sourceNode.dataType === DataType.NodeId);
// sourceName
const sourceNode = addressSpace.findNode(data.sourceNode.value);
data.sourceName = data.sourceName || { dataType: DataType.String, value: sourceNode.getDisplayName("en") };
const nowUTC = (new Date());
// time (UtcTime)
// TODO
data.time = data.time || { dataType: DataType.DateTime, value: nowUTC};
// receivedTime (UtcTime)
// TODO
data.receiveTime = data.receiveTime || { dataType: DataType.DateTime, value: nowUTC};
// localTime (UtcTime)
// TODO
data.localTime = data.localTime || { dataType: DataType.DateTime, value: nowUTC};
// message (LocalizedText)
) {
const addressSpace = variable.addressSpace;
const namespace = addressSpace.getNamespace(variable.nodeId.namespace);
if (options.hasOwnProperty("definition")) {
namespace.addVariable({
browseName: { name: "Definition", namespaceIndex: 0 },
dataType: "String",
description: definition_Description,
minimumSamplingInterval: 0,
modellingRule: options.modellingRule ? "Mandatory" : undefined,
propertyOf: variable,
typeDefinition: "PropertyType",
value: new Variant({ dataType: DataType.String, value: options.definition })
});
}
if (options.hasOwnProperty("valuePrecision")) {
assert(_.isNumber(options.valuePrecision));
namespace.addVariable({
browseName: { name: "ValuePrecision", namespaceIndex: 0 },
dataType: "Double",
description: valuePrecision_Description,
minimumSamplingInterval: 0,
modellingRule: options.modellingRule ? "Mandatory" : undefined,
propertyOf: variable,
typeDefinition: "PropertyType",
value: new Variant({ dataType: DataType.Double, value: options.valuePrecision })
function bindServerCapabilities() {
bindStandardArray(VariableIds.Server_ServerCapabilities_ServerProfileArray,
DataType.String, DataType.String, () => {
return engine.serverCapabilities.serverProfileArray;
});
bindStandardArray(VariableIds.Server_ServerCapabilities_LocaleIdArray,
DataType.String, "LocaleId", () => {
return engine.serverCapabilities.localeIdArray;
});
bindStandardScalar(VariableIds.Server_ServerCapabilities_MinSupportedSampleRate,
DataType.Double, () => {
return engine.serverCapabilities.minSupportedSampleRate;
});
bindStandardScalar(VariableIds.Server_ServerCapabilities_MaxBrowseContinuationPoints,
DataType.UInt16, () => {
return engine.serverCapabilities.maxBrowseContinuationPoints;
ConditionSnapshot.prototype.setClientUserId = function(userIdentity) {
const self = this;
return self._set_var("clientUserId", DataType.String, userIdentity.toString());
};
context: SessionContext
): Promise {
const certificateGroupIdVariant = inputArguments[0];
const certificateTypeIdVariant = inputArguments[1];
const subjectNameVariant = inputArguments[2];
const regeneratePrivateKeyVariant = inputArguments[3];
const nonceVariant = inputArguments[4];
if (!expected(certificateGroupIdVariant, DataType.NodeId, VariantArrayType.Scalar)) {
return { statusCode: StatusCodes.BadInvalidArgument };
}
if (!expected(certificateTypeIdVariant, DataType.NodeId, VariantArrayType.Scalar)) {
return { statusCode: StatusCodes.BadInvalidArgument };
}
if (!expected(subjectNameVariant, DataType.String, VariantArrayType.Scalar)) {
return { statusCode: StatusCodes.BadInvalidArgument };
}
if (!expected(regeneratePrivateKeyVariant, DataType.Boolean, VariantArrayType.Scalar)) {
return { statusCode: StatusCodes.BadInvalidArgument };
}
if (!expected(regeneratePrivateKeyVariant, DataType.Boolean, VariantArrayType.Scalar)) {
return { statusCode: StatusCodes.BadInvalidArgument };
}
if (!hasEncryptedChannel(context)) {
return { statusCode: StatusCodes.BadSecurityModeInsufficient };
}
if (!hasExpectedUserAccess(context)) {
return { statusCode: StatusCodes.BadUserAccessDenied };
}
get() {
const v = options.value.get();
if (v instanceof Variant) {
return new Variant({dataType: DataType.String, value: humanize.filesize(v.value)});
} else {
return v;
}
}
}
function bindServerCapabilities() {
bindStandardArray(VariableIds.Server_ServerCapabilities_ServerProfileArray,
DataType.String, "String", function () {
return engine.serverCapabilities.serverProfileArray;
});
bindStandardArray(VariableIds.Server_ServerCapabilities_LocaleIdArray,
DataType.String, "LocaleId", function () {
return engine.serverCapabilities.localeIdArray;
});
bindStandardScalar(VariableIds.Server_ServerCapabilities_MinSupportedSampleRate,
DataType.Double, function () {
return engine.serverCapabilities.minSupportedSampleRate;
});
bindStandardScalar(VariableIds.Server_ServerCapabilities_MaxBrowseContinuationPoints,
DataType.UInt16, function () {
return engine.serverCapabilities.maxBrowseContinuationPoints;
});
bindStandardScalar(VariableIds.Server_ServerCapabilities_MaxQueryContinuationPoints,
DataType.UInt16, function () {
return engine.serverCapabilities.maxQueryContinuationPoints;
public setSourceName(name: string): void {
assert(typeof name === "string");
const self = this;
self.sourceName.setValueFromSource(
new Variant({
dataType: DataType.String,
value: name
})
);
}