Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function coerceAxisScale(value: any) {
const ret = AxisScaleEnumeration[value];
assert(!utils.isNullOrUndefined(ret));
return ret;
}
variable.setValueFromSource(options.value as Variant, StatusCodes.Good);
variable.euRange.setValueFromSource(new Variant({
dataType: DataType.ExtensionObject, value: new Range(options.engineeringUnitsRange)
}));
if (options.hasOwnProperty("instrumentRange")) {
variable.instrumentRange.setValueFromSource(new Variant({
dataType: DataType.ExtensionObject, value: new Range(options.instrumentRange)
}));
}
variable.title.setValueFromSource(new Variant({
dataType: DataType.LocalizedText, value: coerceLocalizedText(options.title || "")
}));
// Linear/Log/Ln
variable.axisScaleType.setValueFromSource(new Variant({
dataType: DataType.Int32, value: coerceAxisScale(options.axisScaleType)
}));
variable.xAxisDefinition.setValueFromSource(new Variant({
dataType: DataType.ExtensionObject, value: new AxisInformation(options.xAxisDefinition)
}));
const handler = variable.handle_semantic_changed.bind(variable);
euRange.on("value_changed", handler);
if (options.hasOwnProperty("instrumentRange")) {
const instrumentRange = namespace.addVariable({
accessLevel: "CurrentRead | CurrentWrite",
browseName: { name: "InstrumentRange", namespaceIndex: 0 },
dataType: "Range",
minimumSamplingInterval: 0,
modellingRule: options.modellingRule ? "Mandatory" : undefined,
propertyOf: variable,
typeDefinition: "PropertyType",
value: new Variant({
dataType: DataType.ExtensionObject, value: new Range(options.instrumentRange)
})
});
instrumentRange.on("value_changed", handler);
}
if (options.hasOwnProperty("engineeringUnits")) {
const engineeringUnits = new EUInformation(options.engineeringUnits);
assert(engineeringUnits instanceof EUInformation, "expecting engineering units");
// EngineeringUnits specifies the units for the DataItem‟s value (e.g., DEGC, hertz, seconds). The
// EUInformation type is specified in 5.6.3.
const eu = namespace.addVariable({
// Sensor or instrument failure or deactivation can result in a return ed item value which is actually
// outside of this range. Client software must be prepared to deal with this possibility. Similarly a client
// may attempt to write a value that is outside of this range back to the server. The exact behaviour
// (accept, reject, clamp, etc.) in this case is server - dependent. However , in general servers shall be
// prepared to handle this.
// Example: EURange ::= {-200.0,1400.0}
const euRange = namespace.addVariable({
browseName: { name: "EURange", namespaceIndex: 0 },
dataType: "Range",
minimumSamplingInterval: 0,
modellingRule: options.modellingRule,
propertyOf: variable,
typeDefinition: "PropertyType",
value: new Variant({
dataType: DataType.ExtensionObject, value: new Range(options.engineeringUnitsRange)
})
}) as UAVariable;
const handler = variable.handle_semantic_changed.bind(variable);
euRange.on("value_changed", handler);
if (options.hasOwnProperty("instrumentRange")) {
const instrumentRange = namespace.addVariable({
accessLevel: "CurrentRead | CurrentWrite",
browseName: { name: "InstrumentRange", namespaceIndex: 0 },
dataType: "Range",
minimumSamplingInterval: 0,
modellingRule: options.modellingRule ? "Mandatory" : undefined,
propertyOf: variable,
typeDefinition: "PropertyType",
browseName: options.browseName,
componentOf: options.componentOf,
dataType,
optionals
}) as YArrayItemVariable;
function coerceAxisScale(value: any) {
const ret = AxisScaleEnumeration[value];
assert(!utils.isNullOrUndefined(ret));
return ret;
}
variable.setValueFromSource(options.value as Variant, StatusCodes.Good);
variable.euRange.setValueFromSource(new Variant({
dataType: DataType.ExtensionObject, value: new Range(options.engineeringUnitsRange)
}));
if (options.hasOwnProperty("instrumentRange")) {
variable.instrumentRange.setValueFromSource(new Variant({
dataType: DataType.ExtensionObject, value: new Range(options.instrumentRange)
}));
}
variable.title.setValueFromSource(new Variant({
dataType: DataType.LocalizedText, value: coerceLocalizedText(options.title || "")
}));
// Linear/Log/Ln
variable.axisScaleType.setValueFromSource(new Variant({
dataType: DataType.Int32, value: coerceAxisScale(options.axisScaleType)
}));
init(this: any) {
this.range = new Range({});
},
parser: {