Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
public monitor_item(treeItem: any) {
if (!this.subscription) return;
const node = treeItem.node;
this.subscription.monitor({
nodeId: node.nodeId,
attributeId: AttributeIds.Value
//, dataEncoding: { namespaceIndex: 0, name:null }
}, {
samplingInterval: 1000,
discardOldest: true,
queueSize: 100
},
TimestampsToReturn.Both,
(err: Error | null, monitoredItem: ClientMonitoredItem) => {
if (err) {
console.log("cannot create monitored item", err.message);
return;
}
node.monitoredItem = monitoredItem;
const monitoredItemData = [node.browseName, node.nodeId.toString(), "Q"];
this.monitoredItemsListData.push(monitoredItemData);
this.emit("monitoredItemListUpdated", this.monitoredItemsListData);
// xxx monitoredItemsList.setRows(monitoredItemsListData);
attributeId: AttributeIds.Value,
nodeId: resolveNodeId("ns=3;s=AirConditioner_3.Temperature")
},
{
attributeId: AttributeIds.Value,
nodeId: resolveNodeId("ns=3;s=AirConditioner_4.Temperature")
}
];
const optionsGroup = {
discardOldest: true,
queueSize: 1,
samplingInterval: 10
};
const monitoredItemGroup = ClientMonitoredItemGroup.create(subscription, itemsToMonitor, optionsGroup, TimestampsToReturn.Both);
// subscription.on("item_added",function(monitoredItem){
monitoredItemGroup.on("initialized", async () => {
console.log(" Initialized !");
});
monitoredItemGroup.on("changed", (monitoredItem: ClientMonitoredItemBase, dataValue: DataValue, index: number) => {
console.log("Changed on ", index, dataValue.value.toString());
});
await new Promise((resolve) => setTimeout(resolve, 1000000));
await monitoredItemGroup.terminate();
await session.close();
await client.disconnect();
discardOldest: true,
queueSize: 100,
samplingInterval: 100,
filter: new DataChangeFilter({
deadbandType: DeadbandType.Absolute,
deadbandValue: 0.1,
trigger: DataChangeTrigger.StatusValueTimestamp
})
};
const itemToMonitor1: ReadValueIdLike = {
attributeId: AttributeIds.Value,
nodeId: "ns=1;s=FanSpeed"
};
const item1 = await subscription.monitor(itemToMonitor1, parameters1, TimestampsToReturn.Both);
console.log(" Item1 = ", item1.result!.statusCode.toString());
item1.on("changed", (dataValue: DataValue) => {
console.log(" Value1 has changed : ", dataValue.toString());
});
const itemToMonitor2: ReadValueIdLike = {
attributeId: AttributeIds.EventNotifier,
nodeId: "i=2258"
};
const parameters2: MonitoringParametersOptions = {
discardOldest: true,
filter: new EventFilter({}),
queueSize: 100,
samplingInterval: 0
};