當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript node-opcua.resolveNodeId函數代碼示例

本文整理匯總了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);
                }
            }
        }
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:32,代碼來源:simple_client.ts

示例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;
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:60,代碼來源:simple_client.ts

示例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);
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:55,代碼來源:simple_client.ts

示例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);
    }
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:19,代碼來源:simple_client.ts

示例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) {
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:67,代碼來源:simple_client.ts


注:本文中的node-opcua.resolveNodeId函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。