本文整理汇总了TypeScript中node-opcua-client.ClientSubscription类的典型用法代码示例。如果您正苦于以下问题:TypeScript ClientSubscription类的具体用法?TypeScript ClientSubscription怎么用?TypeScript ClientSubscription使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ClientSubscription类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: callback
(err: Error | null, subscription?: ClientSubscription) => {
if (err) {
return callback(err);
}
this.subscription = subscription!;
this.subscription.on("terminated", () => {
this.subscription = undefined;
});
callback();
});
示例2: test2
async function test2() {
console.log("----------------------------------------------------");
try {
await client.connect("opc.tcp://opcuademo.sterfive.com:26543");
const session: ClientSession = await client.createSession({
type: UserTokenType.UserName,
password: "password1",
userName: "user1"
});
const subscription = ClientSubscription.create(session, {
maxNotificationsPerPublish: 1000,
publishingEnabled: true,
requestedLifetimeCount: 100,
requestedMaxKeepAliveCount: 10,
requestedPublishingInterval: 500
});
subscription.on("error", (err) => {
console.log(" Error :", err);
});
subscription.on("keepalive", () => {
console.log(" Keep Alive");
});
const parameters1: MonitoringParametersOptions = {
discardOldest: true,
queueSize: 100,
samplingInterval: 250
};
const itemToMonitor1: ReadValueIdLike = {
attributeId: AttributeIds.Value,
nodeId: "ns=1;s=PumpSpeed"
};
const item1 = ClientMonitoredItem.create(subscription, itemToMonitor1, parameters1, TimestampsToReturn.Both);
item1
.on("changed", (dataValue: DataValue) => {
console.log(" Value1 has changed : ", dataValue.toString());
})
.on("terminated", () => {
console.log("item1 has been terminated");
});
const itemToMonitor2: ReadValueIdLike = {
attributeId: AttributeIds.Value,
nodeId: "ns=1;s=FanSpeed"
};
const item2 = ClientMonitoredItem.create(subscription, itemToMonitor2, parameters1, TimestampsToReturn.Both);
item2
.on("changed", (dataValue: DataValue) => {
console.log(" Value2 has changed : ", dataValue.toString());
})
.on("terminated", () => {
console.log("item2 has been terminated");
});
await timeout(10000);
await subscription.terminate();
await client.disconnect();
console.log(" Done!");
} catch (e) {
// Deal with the fact the chain failed
console.log(chalk.red("Error !"), e);
process.exit(-1);
}
}
示例3: stop
public stop(...args: any[]): any {
const callback = args[0] as (err?: Error) => void;
if (this.subscription) {
this.subscription.terminate(() => {
this.subscription = undefined;
callback();
});
} else {
callback(new Error("UAProxyManager already stopped ?"));
}
}
示例4: _monitor_execution_flag
public _monitor_execution_flag(
proxyObject: any,
callback: (err?: Error) => void
) {
// note : proxyObject must wrap a method
assert(_.isFunction(callback));
assert(proxyObject.nodeId instanceof NodeId);
if (!this.subscription) {
// some server do not provide subscription support, do not treat this as an error.
return callback(); // new Error("No subscription"));
}
const itemToMonitor = { // ReadValueId
attributeId: AttributeIds.Executable,
nodeId: proxyObject.nodeId,
};
const monitoringParameters = { // MonitoringParameters
discardOldest: true,
queueSize: 10,
samplingInterval: 0, /* event-based */
};
const requestedParameters = TimestampsToReturn.Neither;
this.subscription.monitor(
itemToMonitor, monitoringParameters, requestedParameters,
(err: Error | null, monitoredItem?: ClientMonitoredItemBase) => {
Object.defineProperty(
proxyObject,
"__monitoredItem_execution_flag",
{value: monitoredItem, enumerable: false});
proxyObject.__monitoredItem_execution_flag.on("changed", (dataValue: DataValue) => {
proxyObject.executableFlag = dataValue.value.value;
});
callback(err!);
});
}
示例5: _monitor_value
public _monitor_value(
proxyObject: any,
callback: ErrorCallback
) {
if (!this.subscription) {
// some server do not provide subscription support, do not treat this as an error.
return callback(); // new Error("No subscription"));
}
const itemToMonitor = { // ReadValueId
attributeId: AttributeIds.Value,
nodeId: proxyObject.nodeId,
};
const monitoringParameters = { // MonitoringParameters
discardOldest: true,
queueSize: 10,
samplingInterval: 0, /* event-based */
};
const requestedParameters = TimestampsToReturn.Both;
this.subscription.monitor(
itemToMonitor, monitoringParameters, requestedParameters,
(err: Error | null, monitoredItem?: ClientMonitoredItemBase) => {
Object.defineProperty(proxyObject, "__monitoredItem", {value: monitoredItem, enumerable: false});
proxyObject.__monitoredItem.on("changed", (dataValue: DataValue) => {
proxyObject.dataValue = dataValue;
proxyObject.emit("value_changed", dataValue);
});
callback(err!);
});
}