本文整理匯總了TypeScript中node-opcua.resolveNodeId函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript resolveNodeId函數的具體用法?TypeScript resolveNodeId怎麽用?TypeScript resolveNodeId使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了resolveNodeId函數的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: worker
async function worker(element: any) {
const nodeToBrowse = {
nodeId: element.nodeId,
referenceTypeId: resolveNodeId("HierarchicalReferences"),
browseDirection: BrowseDirection.Forward,
includeSubtypes: true,
nodeClassMask: 0x1, // Objects
resultMask: 63
};
const browseResult = await session1.browse(nodeToBrowse);
for (const ref of browseResult.references!) {
if (isConditionEventType(ref.typeDefinition)) {
//
const alarm = {
parent: element.nodeId,
alarmNodeId: ref.nodeId,
browseName: ref.browseName,
typeDefinition: ref.typeDefinition,
typeDefinitionName: conditions[ref.typeDefinition.toString()]
};
found.push(alarm);
} else {
await worker(ref.nodeId);
}
}
}
示例2: enumerateAllConditionTypes
async function enumerateAllConditionTypes(session: ClientSession) {
const tree: any = {};
const conditionEventTypes: any = {};
async function findAllNodeOfType(
tree1: any,
typeNodeId1: NodeId,
browseName: string) {
const browseDesc1 = {
nodeId: typeNodeId1,
referenceTypeId: resolveNodeId("HasSubtype"),
browseDirection: BrowseDirection.Forward,
includeSubtypes: true,
resultMask: 63
};
const browseDesc2 = {
nodeId: typeNodeId1,
referenceTypeId: resolveNodeId("HasTypeDefinition"),
browseDirection: BrowseDirection.Inverse,
includeSubtypes: true,
resultMask: 63
};
const browseDesc3 = {
nodeId: typeNodeId1,
referenceTypeId: resolveNodeId("HasTypeDefinition"),
browseDirection: BrowseDirection.Forward,
includeSubtypes: true,
resultMask: 63
};
const nodesToBrowse = [
browseDesc1,
browseDesc2,
browseDesc3
];
const browseResults = await session.browse(nodesToBrowse);
tree1[browseName] = {};
browseResults[0].references = browseResults[0].references || [];
for (const reference of browseResults[0].references) {
conditionEventTypes[reference.nodeId.toString()] = reference.browseName.toString();
await findAllNodeOfType(tree1[browseName], reference.nodeId, reference.browseName.toString());
}
}
const typeNodeId = resolveNodeId("ConditionType");
await findAllNodeOfType(tree, typeNodeId, "ConditionType");
return tree;
}
示例3: enumerateAllAlarmAndConditionInstances
async function enumerateAllAlarmAndConditionInstances(session: ClientSession): Promise<any[]> {
const conditions: any = {};
const found: any = [];
function isConditionEventType(nodeId: NodeId): boolean {
return conditions.hasOwnProperty(nodeId.toString());
}
async function exploreForObjectOfType(session1: ClientSession, nodeId: NodeId) {
async function worker(element: any) {
const nodeToBrowse = {
nodeId: element.nodeId,
referenceTypeId: resolveNodeId("HierarchicalReferences"),
browseDirection: BrowseDirection.Forward,
includeSubtypes: true,
nodeClassMask: 0x1, // Objects
resultMask: 63
};
const browseResult = await session1.browse(nodeToBrowse);
for (const ref of browseResult.references!) {
if (isConditionEventType(ref.typeDefinition)) {
//
const alarm = {
parent: element.nodeId,
alarmNodeId: ref.nodeId,
browseName: ref.browseName,
typeDefinition: ref.typeDefinition,
typeDefinitionName: conditions[ref.typeDefinition.toString()]
};
found.push(alarm);
} else {
await worker(ref.nodeId);
}
}
}
await worker(nodeId);
}
await enumerateAllConditionTypes(session);
await exploreForObjectOfType(session, resolveNodeId("RootFolder"));
return Object.values(conditions);
}
示例4: _getAllEventTypes
async function _getAllEventTypes(session: ClientSession, baseNodeId: NodeId, tree: any) {
const browseDesc1 = {
nodeId: baseNodeId,
referenceTypeId: resolveNodeId("HasSubtype"),
browseDirection: BrowseDirection.Forward,
includeSubtypes: true,
nodeClassMask: NodeClassMask.ObjectType, // Objects
resultMask: 63
};
const browseResult = await session.browse(browseDesc1);
// to do continuation points
for (const reference of browseResult.references!) {
const subtree = { nodeId: reference.nodeId.toString() };
tree[reference.browseName.toString()] = subtree;
await _getAllEventTypes(session, reference.nodeId, subtree);
}
}
示例5: main
//.........這裏部分代碼省略.........
"Message",
"Severity",
// ConditionType
"ConditionClassId",
"ConditionClassName",
"ConditionName",
"BranchId",
"Retain",
"EnabledState",
"Quality",
"LastSeverity",
"Comment",
"ClientUserId",
// AcknowledgeConditionType
"AckedState",
"ConfirmedState",
// AlarmConditionType
"ActiveState",
"InputNode",
"SuppressedState",
"HighLimit",
"LowLimit",
"HighHighLimit",
"LowLowLimit",
"Value"
];
const eventFilter = constructEventFilter(fields, [
resolveNodeId("ConditionType")
]);
const event_monitoringItem = ClientMonitoredItem.create(
the_subscription,
{
attributeId: AttributeIds.EventNotifier,
nodeId: serverObjectId
},
{
discardOldest: true,
filter: eventFilter,
queueSize: 100000
}
);
event_monitoringItem.on("initialized", () => {
console.log("event_monitoringItem initialized");
});
event_monitoringItem.on("changed", (eventFields: Variant[]) => {
dumpEvent(the_session, fields, eventFields);
});
event_monitoringItem.on("err", (err_message: string) => {
console.log(chalk.red("event_monitoringItem ", baseEventTypeId, " ERROR"), err_message);
});
console.log("--------------------------------------------- Monitoring alarms");
const alarmNodeId = coerceNodeId("ns=2;s=1:Colours/EastTank?Green");
await monitorAlarm(the_subscription, alarmNodeId);
console.log("Starting timer ", timeout);
if (timeout > 0) {