Documentation

ProfileExportProcessor extends AbstractProfileProcessor
in package
uses ApiServiceTrait

Table of Contents

Constants

OPC_TYPES  = ['Objects' => \TiqUtilities\Enums\OpcType::OBJECT, 'String' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Integer' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Double' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Boolean' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'DateTime' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Duration' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Enumeration' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'FolderType' => \TiqUtilities\Enums\OpcType::OBJECT_TYPE, 'BaseObjectType' => \TiqUtilities\Enums\OpcType::OBJECT_TYPE, 'BaseDataVariableType' => \TiqUtilities\Enums\OpcType::VARIABLE_TYPE]

Properties

$logger  : AlertLogger
$currentDate  : string
The date that the nodeset model was created
$library  : Library
The library that is being processed
$libraryDescription  : string
$libraryDisplayName  : string
$libraryId  : string
The library ID that is being processed
$localModelUris  : array<string|int, mixed>
$namespaceUri  : string
$opcBaseProfile  : array<string|int, mixed>
This serves as a hash table for the base OPC UA types
$opcUaClient  : OPCWebApiService
The OPC Web API client that is used to communicate with the OPC Web API
$opcUaCustomSubTypes  : array<string|int, mixed>
The custom sub types that are created for the ThinkIQ library types
$opcUaCustomTypes  : array<string|int, mixed>
An array of custom OPC UA types that represent the ThinkIQ library types, helps as a hash table for working with event objects and references types
$projectId  : string
The project ID that the OPC Web API uses to keep track of the nodeset models
$requiredModels  : array<string|int, mixed>
A collection of the required models that are needed for this nodeset model
$targetNodesetNamespaceKey  : string
The namespace key for the main nodeset model
$thinkIqApiFactory  : mixed
$thinkIqTypes  : array<string|int, mixed>
An array of custom OPC UA types that represent the base types such as Event Object, Reference, geopoint, ThinkIQ Scripts
$thinkIqTypesToOpcUaType  : array<string|int, mixed>
Serves as a container for thinkiq types and the base opc ua types
$tiqOpcUaLibraries  : array<string|int, mixed>
A collection of the ThinkIQ library namespaces as we process them in the nodeset models
$types  : array<string|int, mixed>
The types that are being processed
$version  : string
The version of the nodeset model

Methods

__construct()  : mixed
downloadInfoModel()  : array<string|int, mixed>|string
Download the infomodel
exportTypesToNodesetXml()  : string
This method is responsible for exporting the ThinkIQ types to the OPC UA nodeset model.
findMatchingDataType()  : string
Find matching data type
getInfomodelNamespaces()  : array<string|int, mixed>|string
Get the infomodel namespaces
getInfoModels()  : array<string|int, mixed>|string
Get the infomodels from the API service
getLibraryDescription()  : string
getLibraryDisplayName()  : string
getLogger()  : AlertLogger
Get the alert logger instance
getNamespace()  : string
getProjectId()  : string
getRequiredModels()  : array<string|int, mixed>
getThinkIqLocalEnumTypes()  : array<string|int, mixed>
Get local enumeration types
getThinkIqLocalLibraries()  : array<string|int, mixed>
Get local libraries
loadUaNodes()  : array<string|int, mixed>
Creates a dictionary of UA nodes from the given project name space keys and project ID
mapChildrenToNodes()  : array<string|int, mixed>
removeProject()  : bool
uploadInfomodel()  : int
Upload an infomodel to the API service
createAndProcessThinkIqLibraryScripts()  : void
Create and process the ThinkIQ library scripts.
createOpcType()  : array<string|int, mixed>
Helper method to create OPC UA Types
findNodesetNamespace()  : string
Find the namespace for the nodeset model for the given library ID.
findOrMakeCustomType()  : string
Find or make a custom type for the given ThinkIQ type.
handleBulckPropertyCreation()  : void
Handle the bulk property creation.
handleBulckScriptCreation()  : void
Handle the bulk script creation.
handleSubTypeCreation()  : bool
This method is responsible for handling the creation of subTypes in the OPC UA server.
processTypeReference()  : bool
Processes a type by validating its existence, resolving dependencies if necessary, and creating or assigning its reference in the system.

Constants

OPC_TYPES

public mixed OPC_TYPES = ['Objects' => \TiqUtilities\Enums\OpcType::OBJECT, 'String' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Integer' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Double' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Boolean' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'DateTime' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Duration' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'Enumeration' => \TiqUtilities\Enums\OpcType::DATA_TYPE, 'FolderType' => \TiqUtilities\Enums\OpcType::OBJECT_TYPE, 'BaseObjectType' => \TiqUtilities\Enums\OpcType::OBJECT_TYPE, 'BaseDataVariableType' => \TiqUtilities\Enums\OpcType::VARIABLE_TYPE]

Properties

$localModelUris

private array<string|int, mixed> $localModelUris = []
  • Contains the local model URIs that are loaded from the OPC UA client

$opcBaseProfile

This serves as a hash table for the base OPC UA types

private array<string|int, mixed> $opcBaseProfile = []

$opcUaCustomSubTypes

The custom sub types that are created for the ThinkIQ library types

private array<string|int, mixed> $opcUaCustomSubTypes = []

$opcUaCustomTypes

An array of custom OPC UA types that represent the ThinkIQ library types, helps as a hash table for working with event objects and references types

private array<string|int, mixed> $opcUaCustomTypes = []

$projectId

The project ID that the OPC Web API uses to keep track of the nodeset models

private string $projectId

$requiredModels

A collection of the required models that are needed for this nodeset model

private array<string|int, mixed> $requiredModels = []

$targetNodesetNamespaceKey

The namespace key for the main nodeset model

private string $targetNodesetNamespaceKey

$thinkIqTypes

An array of custom OPC UA types that represent the base types such as Event Object, Reference, geopoint, ThinkIQ Scripts

private array<string|int, mixed> $thinkIqTypes = []

$thinkIqTypesToOpcUaType

Serves as a container for thinkiq types and the base opc ua types

private array<string|int, mixed> $thinkIqTypesToOpcUaType = []

$tiqOpcUaLibraries

A collection of the ThinkIQ library namespaces as we process them in the nodeset models

private array<string|int, mixed> $tiqOpcUaLibraries = []

Methods

__construct()

public __construct(mixed $type, mixed $libraryId) : mixed
Parameters
$type : mixed
$libraryId : mixed

downloadInfoModel()

Download the infomodel

public downloadInfoModel(ApiServiceFactory $apiService, int $nodesetId[, bool $nodesetXMLOnly = false ][, bool $metadataOnly = false ]) : array<string|int, mixed>|string
Parameters
$apiService : ApiServiceFactory
  • The API service
$nodesetId : int
  • The nodeset ID
$nodesetXMLOnly : bool = false
  • Whether to download only the nodeset XML
$metadataOnly : bool = false
Return values
array<string|int, mixed>|string —
  • The response from the request

exportTypesToNodesetXml()

This method is responsible for exporting the ThinkIQ types to the OPC UA nodeset model.

public exportTypesToNodesetXml() : string

It processes each type and its attributes, creating the corresponding OPC UA types and variables.

Return values
string —

The generated nodeset XML as a string.

findMatchingDataType()

Find matching data type

public findMatchingDataType(string $aOriginalDataTypeNodeId, mixed $projectNodeDictionary) : string
Parameters
$aOriginalDataTypeNodeId : string
  • The original data type node ID
$projectNodeDictionary : mixed
Return values
string —
  • The matching data type

getInfomodelNamespaces()

Get the infomodel namespaces

public getInfomodelNamespaces(ApiServiceFactory $apiService) : array<string|int, mixed>|string
Parameters
$apiService : ApiServiceFactory
  • The API service
Return values
array<string|int, mixed>|string —
  • The infomodel namespaces

getInfoModels()

Get the infomodels from the API service

public getInfoModels(ApiServiceFactory $apiService) : array<string|int, mixed>|string
Parameters
$apiService : ApiServiceFactory
  • The API service
Return values
array<string|int, mixed>|string

getRequiredModels()

public getRequiredModels() : array<string|int, mixed>
Return values
array<string|int, mixed>

getThinkIqLocalEnumTypes()

Get local enumeration types

public getThinkIqLocalEnumTypes() : array<string|int, mixed>
Return values
array<string|int, mixed>

getThinkIqLocalLibraries()

Get local libraries

public getThinkIqLocalLibraries() : array<string|int, mixed>
Return values
array<string|int, mixed>

loadUaNodes()

Creates a dictionary of UA nodes from the given project name space keys and project ID

public loadUaNodes(array<string|int, mixed> $projectNameSpaceKeys, string $projectId, OPCWebApiService $OPCWebApiService, OpcType $projectTypes) : array<string|int, mixed>
Parameters
$projectNameSpaceKeys : array<string|int, mixed>
  • The project name space keys
$projectId : string
  • The project ID
$OPCWebApiService : OPCWebApiService
  • The OPC Web API service
$projectTypes : OpcType
  • The project types
Return values
array<string|int, mixed> —

$results - The results of the loaded nodes

mapChildrenToNodes()

public static mapChildrenToNodes(array<string|int, mixed> $children, string $parentNodeId, array<string|int, mixed> $objectTypeNodeIdDic, string $baseNode) : array<string|int, mixed>
Parameters
$children : array<string|int, mixed>
$parentNodeId : string
$objectTypeNodeIdDic : array<string|int, mixed>
$baseNode : string
Return values
array<string|int, mixed>

removeProject()

public removeProject(string $projectId) : bool
Parameters
$projectId : string
Return values
bool

uploadInfomodel()

Upload an infomodel to the API service

public uploadInfomodel(ApiServiceFactory $apiService, array<string|int, mixed> $body[, bool $overwrite = false ]) : int
Parameters
$apiService : ApiServiceFactory
  • The API service
$body : array<string|int, mixed>
  • The body of the request containing the infomodel data
$overwrite : bool = false
  • Whether to overwrite an existing infomodel with the same name
Return values
int —
  • The ID of the uploaded infomodel

createAndProcessThinkIqLibraryScripts()

Create and process the ThinkIQ library scripts.

private createAndProcessThinkIqLibraryScripts(string $namespace) : void
Parameters
$namespace : string

The namespace where the scripts will be created.

createOpcType()

Helper method to create OPC UA Types

private createOpcType(string $namespace, BaseNode $type) : array<string|int, mixed>
Parameters
$namespace : string

The namespace for the OPC UA Type

$type : BaseNode

The OPC UA Type to create

Return values
array<string|int, mixed> —

The created OPC UA Type

findNodesetNamespace()

Find the namespace for the nodeset model for the given library ID.

private findNodesetNamespace(string $libraryId, string $typeName) : string
Parameters
$libraryId : string

The library ID that needs to be checked.

$typeName : string

The name of the type that we are trying to resolve

Return values
string —

The Namespace of the Nodeset Model that the type name was found in.

findOrMakeCustomType()

Find or make a custom type for the given ThinkIQ type.

private findOrMakeCustomType(string $thinkIqType, string $namespace, bool $opcUaType, string $basedOpcUaType) : string
Parameters
$thinkIqType : string

The ThinkIQ type that needs to be checked.

$namespace : string

The namespace where the custom type will be created.

$opcUaType : bool

TRUE indicates if the type is an OPC UA type, FALSE indicates a custom type.

$basedOpcUaType : string

The base OPC UA type to be used for creating the custom type.

Return values
string —

The node ID of the custom type.

handleBulckPropertyCreation()

Handle the bulk property creation.

private handleBulckPropertyCreation(string $namespace, string $parentNodeId, array<string|int, mixed> $properties) : void
Parameters
$namespace : string

The namespace where the properties will be created.

$parentNodeId : string

The Node Id of the type that this new type will inherit from

$properties : array<string|int, mixed>

The properties to be created.

handleBulckScriptCreation()

Handle the bulk script creation.

private handleBulckScriptCreation(string $parentNodeId, string $namespace, array<string|int, mixed> $scripts) : void
Parameters
$parentNodeId : string

The parent node ID where the scripts will be created.

$namespace : string

The namespace where the scripts will be created.

$scripts : array<string|int, mixed>

The scripts to be created.

handleSubTypeCreation()

This method is responsible for handling the creation of subTypes in the OPC UA server.

private handleSubTypeCreation(string $subTypeId, string $typeName) : bool

It checks if the subType already exists, and if not, it creates it.

Parameters
$subTypeId : string

The type ID of the subType.

$typeName : string

The name of the type that we are trying to create

Return values
bool —

True if we need to resolve the dependency first, false if we don't need to resolve it

processTypeReference()

Processes a type by validating its existence, resolving dependencies if necessary, and creating or assigning its reference in the system.

private processTypeReference(string $typeId) : bool
Parameters
$typeId : string

The ID of the type to process.

Return values
bool —

Returns true if dependency resolution is required before proceeding, false otherwise.


        
On this page

Search results