evoVIU Dokumentation

< Alle Themen

In this chapter you will find all the nodes together with explanations that you can use in the workflow.

1. events

Start

The nodes attached to a Start node are executed as soon as the Start button in the header bar is clicked.

Stop

The nodes that are attached to a Stop node are executed as soon as the Stop button in the header bar is clicked.

2. hardware

Camera

Grab Image

This node passes on images from a camera

  • Input: ICamera. The Grab Image node is expecting a camera. To do this, you must create a custom node with a camera under Components.

  • Output: Image. The images that the camera records or accesses are passed on.

Digital Write

Set Pin High

This node can be used to set a selected pin to high.

  • Input: IDigitalWritePin.

Set Pin Low

This node can be used to set a selected pin to low.

  • Input: IDigitalWritePin.

Set pin

This node can be used to set a selected pin to high or low.

  • Input:

    • Pin: IDigitalWritePin. Give this interface a pin.

    • High: Boolean. Select here whether the pin should be set to High (true).

GPIO

Read

You can use the Read node to read out the status of your GPIO input and pass it on as a Boolean.

  • Input: IGPIOInput: A GPIO input can be created under Components, loaded into the event graph with Get and then connected to the Read node.

  • Output: Boolean: It is passed on whether the input is true or false.

Toggle

You can use the toggle node to change the status of your GPIO output. When the node passes through, it is set to low if it was high and vice versa.

  • Input: IGpioOutput: A GPIO output can be created under Components, loaded into the event graph with Get and then connected to the toggle node.

Write

The GPIO output can be set with the Write node.

  • Input:

    • Output (IGpioOutput): A GPIO output must be assigned to this interface. A GPIO output can be created under Components, loaded into the event graph with Get and then connected to the Write node.

    • High (Boolean): Select whether the output should be set to High (true) or Low (false).

Lens

Set Focus

You can set the focus of your camera lens with the Focus Node set

  • Input:

    • Lens (ILens): A lens must be added to this interface. This can be created as a Liquid Lens Controller under Components, loaded into the event graph with Get and then connected to the Set Focus node.

    • Value (byte): You can assign a value between 0 and 255 to this interface to set the focus.

3. math

The nodes for Boolean, Byte, Float and Integer partially overlap. The data types are of course different, but the function of the nodes is similar. These are therefore summarized here.

Literal

Depending on the data type, you can enter values here, which are then passed on as literals.

  • Input: Value: Depending on the node, the node expects one of the specified data types.
  • Output: Depending on the node, this passes on one of the specified data types.

Add

You can use the Add node to add two values together.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the calculation is passed on in the respective data type.

Subtract

You can use the Subtract node to subtract one value from another.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the calculation is passed on in the respective data type.

Multiply

You can use the Multiply node to multiply two values together

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the calculation is passed on in the respective data type.

Divide

You can use the Divide node to divide one value by another.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the calculation is passed on in the respective data type.

Modulo

The modulo node works like a moduo operator. This returns the remainder of an integer division as the result.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the calculation is passed on in the respective data type.

Less

The Less node can be used to compare two values and return whether the value entered first is smaller than the second.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the comparison as true or false.

Less Equal

The Less Equal node can be used to compare two values and return whether the value entered first is less than or equal to the second.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the comparison as true or false.

Equal

The Equal node can be used to compare two values and return whether the two values are the same.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the comparison as true or false.

Greater Equal

The Greater Equal node can be used to compare two values and return whether the value entered first is greater than or equal to the second.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the comparison as true or false.

Greater

The Greater node can be used to compare two values and return whether the value entered first is greater than the second.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the comparison as true or false.

MIN

You can use the MIN node to compare two values and pass on the smaller of the two.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the comparison in the respective data type.

MAX

You can use the MAX node to compare two values and pass on the larger of the two.

  • Input: Depending on the node, either two bytes, float or Int values.
  • Output: The result of the comparison in the respective data type.

Clamp

You can use the clamp node to specify a lower and upper limit. If your transferred value is below or above this, the set minimum or maximum value is passed on. If your transferred value is within the limits, it will be passed on.

  • Input:
    • Value: Your transferred value
    • Min: Here you can set a lower limit for the value
    • Max: Here you can set an upper limit for the value
  • Output: Depending on the calculation, one of the three values is passed on

To Integer

You can use the To Integer node to convert the respective data type into an integer.

  • Input: The corresponding data type depending on the node. Either transferred from another node or you enter the value in the corresponding node window.
  • Output (string): The node passes on the entered value as an integer.

To Float

You can use the To Float node to convert the respective data type into a float.

  • Input: The corresponding data type depending on the node. Either transferred from another node or you enter the value in the corresponding node window.
  • Output (string): The node forwards the entered value as a float.

To String

You can use the To String node to convert the respective data type into a string.

  • Input: The corresponding data type depending on the node. Either transferred from another node or you enter the value in the corresponding node window.
  • Output (string): The node forwards the entered value as a string.

Boolean

AND / OR / NOT / NAND / NOR / XOR

These nodes are Boolean operators, i.e. nodes that function like operators that operate on truth values.

  • Inputs: The nodes each expect two Boolean values and …

  • Outputs: … return a truth value.

AND

Both values must be true for true to be passed on. If one of the two values is false, false is passed on.

OR

At least one of the two values must be true for true to be passed on. If both values are false, false is passed on.

NOT

The value is reversed and passed on.

NAND

If both values are true, false is passed on. In all other cases, true is passed on.

NOR

If both values are false, true is passed on. In all other cases, false is passed on.

XOR

Only if only one of the two values is true is true passed on. If both linked values are true, the result is false.

Byte

To ASCII String

You can use the To ASCII String node to convert the respective data type into a string.

  • Input: The input expects a byte array. Either transferred from another node or you enter the value in the corresponding node window. Here you can add further items to the array using the plus icon.
  • Output (string): The node forwards the entered value as an ASCII string.

Float

Nearly Equal

You can use the Nearly Equal node to compare two values and return as a Boolean whether these values are (nearly) equal or not. You can set the tolerance for this in the node.

  • Input:
    • Two values A and B of type Single. These two values are compared with each other.
    • Tolerance: Accepted deviation of the two values. Specify the deviation between the two values up to which the result should still be true.
  • Output: The result of the comparison as true or false.

Is Infinity

This node checks whether the transferred value is regarded as an infinite number.

  • Input: A (Single) The value to be checked
  • Output: The node returns true if A is considered infinite and false if not.

Is NaN

The is NaN check stands for “is Not a Number”. This node determines whether a variable has a value that cannot be interpreted as a valid numerical number.

  • Input: A(Single): The value to be checked
  • Output: Depending on the result, the node returns true or false.

Abs

This node is used to calculate the absolute value of a number. It returns the positive amount of the entered value by removing the sign.

  • Input: Value whose absolute value is to be calculated.
  • Output: The absolute value.

Sign

This node returns the sign of a number. If the number passed is positive, the node returns 1. If the number is negative, it returns -1. If the number is exactly zero, the node returns 0.

  • Input: Number for which the sign is to be checked.
  • Output: Either 1, -1 or 0 depending on the number entered

Ceil (Float)

This node rounds up the transferred float value to the next highest integer.

  • Input: X: Number to be rounded up
  • Output: Rounded number

Ceil To Int(Float)

This node rounds up the transferred float value to the next highest integer and passes it on as an integer.

  • Input: X: Number to be rounded up
  • Output: Rounded number as integer

Floor (Float)

This node rounds the transferred float value to the next smallest integer.

  • Input: X: Number to be rounded down
  • Output: Rounded number

Round (Float)

This node rounds the transferred float value to a number with the decimal places you have specified.

  • Input:
    • X: Number to be rounded
    • Digits: Number of decimal places
  • Output: Rounded number

Round To Int (Float)

This node rounds the transferred float value and passes it on as an integer.

  • Input: X: Number to be rounded
  • Output: Rounded number as integer

Sin (Float)

You can use this node to calculate the sine of the entered value.

  • Input: X: Number whose sine you want to calculate
  • Output: Result of the calculation

Cos (Float)

You can use this node to calculate the cosine of the entered value.

  • Input: X: Number whose cosine you want to calculate
  • Output: Result of the calculation

Sqrt (Float)

You can use this node to calculate the square root of the entered value.

  • Input: X: Number whose square root you want to calculate
  • Output: Result of the calculation

Integer

Bitwise AND, OR, NOT, XOR (integer)

You can use these nodes to compare two integers using their binary representation and pass on the result calculated by the respective logical link.

  • Input: Two Int values that are to be compared with each other.
  • Output: The calculated result as Int.

To Byte (Integer)

This node converts your entered integer value into a byte.

  • Input: Int Value which is to be converted.
  • Output: Converted value in bytes.

Min of Int Array (Integer)

With this node you can find out the smallest Int value of your Int array and return both the index and the value.

  • Input: Int array
  • Output:
    • Index: Index of the smallest integer in the array
    • Min Value: smallest Int value of the array

Max of Int Array (Integer)

With this node you can find out the largest Int value of your Int array and return both the index and the value.

  • Input: Int array
  • Output.
    • Index: Index of the largest integer in the array
    • Min Value: largest Int value of the array

Average of Int Array (Integer)

You can use this node to calculate the average value of all Int values contained in the array and return it as a single float.

  • Input: Int array
  • Output: Value of the average

Median of Int Array (Integer)

You can use this node to calculate the median of all Int values contained in the array and return it as a single float.

  • Input: Int array
  • Output: Median value

Random

Random integer, float or bool

You can use these nodes to produce arbitrary values. The respective data type is created.

  • Output: Return: Randomized value

Random Integer, Float In Range

You can use these nodes to produce arbitrary values within a predefined range. The respective data type is created.

  • Input:
    • Min: Lower limit of the range
    • Max: Upper limit of the rangers
  • Output: Return: Randomized value

Random Bool With Weight

You can use this node to generate a random Boolean value with a specific weighting. The weighting indicates how likely it is that the generated Boolean value is true or false.

  • Input: Weight: Value of the weighting. Enter a value between 0 and 1. The higher the value, the more likely it is that true will be returned.
  • Output: Return: Randomized value

Vector

Add (Vector 2D)

You can use this node to add two 2D vectors together and return the result of this calculation

  • Input:
    • A: The first vector
    • B: The second vector
  • Output: The result as a 2D vector

Scale (Vector 2D)

You can use this node to scale your 2D vector with a scalar. This means that both components (x,y) are multiplied by the scalar value you have entered. The vector is returned after the calculation.

  • Input:
    • Vector: Your 2D Vector
    • Scalar: Value by which the components of the vector are multiplied
  • Output: Vector after calculation

Length (Vector 2D)

You can use this node to calculate the length of your vector.

  • Input: Your 2D vector
  • Output: Length of your vector

4. vision

Code Recognition

Read Data Matrix Code

You can use these nodes to read a Data Matrix code on your image

  • Input: Image: An image must be given to the node
  • Output: The value stored in the code is passed on as a string array

Read Data Matrix Code

You can use these nodes to read a Data Matrix code on your image

  • Input: Image: An image must be given to the node
  • Output: The value stored in the code is passed on as a string array

Edge Detection

Sobel

This node makes it possible to identify changes in the intensity of an image, which is often associated with a change in color or brightness. The Sobel operator uses a convolution operation with kernels (convolution masks) to estimate the derivatives of the image intensity in the horizontal and vertical directions. In terms of edge detection, the Sobel operator works by calculating the gradients (derivatives) of the image in the horizontal and vertical directions. The gradients determined can then be combined to determine the overall edge thickness and direction.

  • Input:
    • Image: The image that is given to the node.
    • Order X: This parameter specifies the derivation order in the horizontal direction. A value of 1 means that the first derivative (the gradient) is calculated according to the horizontal direction. This means that the operator tends to recognize vertical edges in the image.
    • Order Y: This parameter specifies the derivation order in the vertical direction. A value of 1 means that the first derivative (the gradient) is calculated according to the vertical direction. This means that the operator tends to recognize horizontal edges in the image.
    • Kernel Size: This parameter specifies the size of the kernel that is applied to the image. The kernel is a small matrix that is moved over the image to perform the convolution operation. The size of the kernel influences how many pixels in the vicinity of each pixel are taken into account when calculating the gradient. A larger kernel size means that more neighboring pixels are included.
    • Scale: This parameter specifies how strongly the calculated gradients are to be scaled. The scaling influences the intensity of the detected edges. A higher scale value can lead to a stronger emphasis on the edges.
    • Delta: This parameter is a parameter that specifies the value that is added to the results of the convolution. This value is often used to increase the contrast of the edges.
  • Output: Image after processing

Canny

The Canny operator is an algorithm for edge detection in Machine Vision. It is known for its ability to detect edges well while minimizing noise

  • Input:
    • Image: The image that is given to the node.
    • Threshold1 and Threshold2: These are threshold values that are used to control edge detection. Pixels with gradient values above Threshold2 are safely considered edges, while pixels with gradient values below Threshold1 are safely considered non-edges. Pixels with gradient values between Threshold1 and Threshold2 are considered edges if they are connected to strong edge pixels.
    • Aperture Size: This is the size of the Sobel kernel used to calculate the gradients. The Sobel kernel is used to estimate the derivatives in horizontal and vertical direction. The size of the kernel influences the accuracy of the gradient calculation and the sensitivity to noise.
    • L 2 Gradient: This parameter is a Boolean value that specifies whether the L2 norm (Euclidean norm) should be used for the gradient calculation. If this parameter is set to true, the Euclidean norm is used, otherwise the L1 norm is used. The choice between L1 and L2 standard influences the calculation of the gradients and can affect the results.
  • Output: Image: Image after processing

Laplacian

The Laplace operator is a mathematical operator for edge detection. It calculates the second derivative of the intensity of an image, which indicates changes in intensity in the horizontal and vertical directions. The Laplace operator emphasizes structures with rapid intensity changes, such as edges.

  • Input:
    • Image: The image that is given to the node.
    • Kernel Size: This parameter specifies the size of the kernel that is applied to the image. The Laplace operator normally uses a kernel of size 3×3. The size of the kernel influences the accuracy of the calculation.
    • Scale: This parameter specifies how strongly the calculated values are to be scaled. The scaling influences the intensity of the detected edges. A higher scale value can lead to a stronger emphasis on the edges.
    • Delta: This parameter is an optional parameter that specifies the value that is added to the results of the convolution. This value is often used to increase the contrast of the edges.
  • Output: Image after processing

Image Filters

Bilateral filter

This node allows you to reduce noise while retaining edges in the image. Essentially, the bilateral filter smoothes the image by calculating the average of nearby pixels, but also takes into account the differences in intensity between pixels.

  • Input:
    • Image: The image that is given to the node.
    • Filter Size: This parameter specifies the size of the filter. This is an integer value that defines the range of the filter. A larger value results in more smoothing over a larger area, which tends to remove more detail.
    • Sigma Color: Sigma Color is a parameter that influences the color similarity between the pixels. A lower value for Sigma Color means that only pixels with similar colors are included in the calculation. A higher value increases the color similarity, which leads to less selective smoothing.
    • Sigma Space: Sigma Space influences the spatial proximity between the pixels. A smaller value for Sigma Space limits the influence on nearby pixels, while a larger value means that distant pixels are also taken into account. A larger sigma space leads to a more global smoothing.
  • Output: Image after processing

Box Blur

The box blur (also known as the average filter) is a simple smoothing filter. It calculates the average of the pixel values in a rectangular area, which reduces high-frequency noise. The box blur ensures uniform smoothing across the entire filter area.

  • Input:
    • Image: The image that is given to the node.
    • Size X: This parameter specifies the width of the filter kernel that is applied to the image. A larger value for Size X means that a wider region is included in the horizontal direction for the average.
    • Size Y: This parameter specifies the height of the filter kernel. A larger value for Size Y means that a larger region in the vertical direction is taken into account for the average.
  • Output: Image after processing

Gaussian Blur

The Gaussian Blur is a smoothing filter based on a Gaussian distribution kernel. In contrast to box blur, Gaussian blur takes into account the spatial weighting of the pixels, which means that it reacts more strongly to the proximity of the center of a kernel. This suppresses high-frequency components to a greater extent and the Gaussian blur produces a softer smoothing effect.

  • Input:
    • Image: The image that is given to the node.
    • Size X: This parameter specifies the width of the Gaussian kernel. A larger value for Size X means that the kernel becomes wider, which leads to greater smoothing.
    • Size Y: This parameter specifies the height of the Gaussian kernel. A larger value for Size Y means that the kernel becomes higher in the vertical direction.
  • Output: Image after processing

Enhance

This node allows you to adjust the contrast and brightness to improve the visual appearance of an image.

  • Input:
    • Image: The image that is given to the node
    • Contrast: Contrast describes the difference between the light and dark areas of an image. Increasing the contrast increases this difference, while reducing the contrast flattens out the differences.
    • Brightness: Brightness refers to the general light intensity of the image. Increasing the brightness results in a general brightening of the image, while reducing the brightness results in a darkening.
  • Output: Image after processing

Utils

Crop (Image)

You can use this node to crop your image.

  • Input:
    • Image: The image that is given to the node
    • X 1, Y 1: These are the coordinates of the top left corner of the cutting area.
    • X 2, Y 2: These are the coordinates of the bottom right-hand corner of the cropping area.
  • Output: The cropped image

Rotate (Image)

You can use this node to rotate your image by a certain angle around a point.

  • Input:
    • Image: The image that is given to the node
    • Cx, Cv: The coordinates of the center or point of rotation.
    • Angle Deg: The angle of rotation in degrees.
  • Output: The rotated image

To Grayscale (Image)

You can use this node to convert your image into a grayscale image.

  • Input:
    • Image: The image that is given to the node
  • Output: The processed image

Bitwise Not (Image)

This node uses the Bitwise NOT operator. This is applied to each bit of an image and inverts the state of the bit. If a bit has the value 1 in the original image, it becomes 0 in the inverted image, and if it has the value 0, it becomes 1.

  • Input:
    • Image: The image that is given to the node
  • Output: The image with inverted bits

Image to bmp (Image)

This node converts the image into an image in bmp format.

  • Input:
    • Image: The image that is given to the node
  • Output: The image in bmp format

Image to jpg (Image)

This node converts the image into a jpg image.

  • Input:
    • Image: The image that is given to the node
  • Output: The image in jpg format

Morphology

Erode

You can use this node to erode the boundaries of objects in a binary image. The node works by moving a structure element (kernel) over the input image and replacing each pixel value with the minimum value of the pixels in the neighborhood area defined by the kernel.

  • Input:
    • Image: The image that is given to the node
    • Shape: Here you can set the shape of the kernel (rectangle, cross or ellipse)
    • Size: The size of the kernel determines the extent of the erosion.
    • Iterations: The number of times the erosion operation is applied. Each iteration makes the erosion effect more pronounced.
  • Output: The processed image

Dilate

You can use this node to expand objects in a binary screen. The node works by moving a structure element (kernel) over the input image and replacing each pixel value with the maximum value of the pixels in the neighborhood area defined by the kernel.

  • Input:
    • Image: The image that is given to the node
    • Shape: Here you can set the shape of the kernel (rectangle, cross or ellipse)
    • Size: The size of the kernel determines the extent of the dilation.
    • Iterations: The number of times the dilation operation is applied. Each iteration increases the dilation effect.
  • Output: The processed image

Morph

This node contains several morphological operations from which you can choose. The function of the node differs depending on the type.

  • Input:

    • Image: The image that is given to the node

    • Type:

      • Erode: The boundaries of objects in a binary image are removed. It causes objects to become smaller and sharpens edges.

      • Dilate: The objects in a binary image are expanded. The result is that objects become larger and small gaps are closed.

      • Open: Opening is a combination of erosion followed by dilation. It is used to remove small background objects, smooth edges and separate nearby objects.

      • Close: Closing is a combination of dilation followed by erosion. It is used to close small gaps in objects and connects nearby objects.

      • Gradient: Gradient is the difference between dilation and erosion of an image. It emphasizes the edges of objects and highlights edges.

      • TopHat: Top Hat is the difference between the original image and the image transformed by Opening. It emphasizes fine structures and small objects.

      • BlackHat: Black Hat is the difference between the image transformed by Closing and the original image. It emphasizes larger structures and objects in the background.

      • HitMiss: Hit or Miss is a morphological operation used to find specific patterns in a binary image. It is used to recognize specific structures or combinations of objects.

    • Shape: Here you can set the shape of the kernel (rectangle, cross or ellipse)

    • Size: The size of the kernel determines the scope of the operation.

    • Iterations: The number of times the operation is applied. Each iteration increases the effect.

  • Output: The processed image

Object Detection

Find Objects

You can use this node to find objects based on an area in your image.

  • Inputs:

    • Image: The image that is given to the node

    • Min Area: Minimum size of the object

    • Max Area: Maximum size of the object

  • Outputs:

    • Objects: The recognized object as an array

    • Debug: Image

Ocr

Read Text

You can use this node to read text on images.

  • Inputs:

    • Image: The image that is given to the node

  • Outputs:

    • Text: The recognized text as a string

    • Mean Confidence: Average confidence in the interpretation of recognized text elements. This value indicates how reliably the text is correctly recognized.

Threshold

Manual Threshold

You can use this node to perform a manual threshold operation on the image. This allows you to divide the image into two categories based on the threshold value set.

  • Inputs:

    • Image: The image that is given to the node

    • ObjectType: Choose between Bright Objects and Dark Objects. With Bright Objects, all pixels with intensity values above the threshold value are regarded as objects. For dark objects, all pixels with intensity values below the threshold value.

    • Threshold: Your defined threshold value.

  • Outputs: The processed image

Manual Threshold Range

You can use this node to perform a manual threshold operation on the image and specify a range. This allows you to divide the image into two categories based on the threshold value set.

  • Inputs:

    • Image: The image that is given to the node

    • Lower Limit: Lower limit of the threshold value.

    • Upper Limit: Upper limit of the threshold value.

  • Outputs: The processed image

Automatic Threshold

You can use this node to perform an automatic threshold operation on your image. Simply select your preferred method.

  • Inputs:

    • Image: The image that is given to the node

    • Method: You have the choice between Otsu and Triangle. Otsu’s method aims to find the threshold that maximizes the variance of both background and foreground pixels. It is based on the assumption that the image can be divided into two classes: Background and foreground. The optimum threshold value is selected so that the intra-class variance is minimal and the inter-class variance is maximum. The triangle method determines the threshold value by drawing a triangle between the brightness profile of the image and a line connecting the highest and lowest pixel values of the image. The threshold value is then set at the base of the triangle at which the maximum vertical distance between the triangle and the brightness profile exists.

  • Outputs: The processed image

Adaptive Threshold

You can use this node to perform adaptive thresholding. This is a technique in which the threshold value is not set globally for the entire image, but is adjusted for small, local areas of the image. This enables better handling of variations in lighting and contrast within the image.

  • Inputs:

    • Image: The image that is given to the node

    • Object Type: Similar to the manual threshold method, the object type is specified here, either Bright Objects or Dark Objects. With Bright Objects, all pixels with intensity values above the threshold value are regarded as objects. For dark objects, all pixels with intensity values below the threshold value.

    • Method: The adaptive method for calculating the threshold value. There are two main methods: Mean and Gaussian. With the Mean method, the threshold value for each pixel in the image is calculated by the local average of the intensity values in a rectangular window around the pixel. In the Gaussian method, the local average is also calculated in a window around each pixel, but here the intensity values in the window are assigned weights based on a Gaussian weight function.

    • Kernel Size: The size of the local area or kernel used to adjust the threshold for each pixel in the image.

    • C: A constant parameter that is added to or subtracted from the calculated threshold value. It is used to further adjust the threshold value.

  • Outputs: The processed image

5. dev tools

Load Image Color

You can use this node to specify a path on which an image is stored. The node reads the image in a color format and forwards the colored image.

  • Inputs:

    • Path: Path on which your image is stored.

  • Outputs: The loaded image

Load Image Grayscale

You can use this node to specify a path on which an image is stored. The node reads the image in a grayscale format and passes the image on.

  • Inputs:

    • Path: Path on which your image is stored.

  • Outputs: The loaded image

Save Image

You can use this node to save your image to a location of your choice.

  • Inputs:

    • Image: Your image that you want to save

    • Path: Location where you want to save your image

5. utils

Flow Control

Loop

For Each Loop

You can use this node to iterate through an array and perform an action for each element in the array.

  • Inputs:

    • Array: An array where the data type does not matter

  • Outputs:

    • Element: Single element in the array

    • Index: Related index for the element

  • Execution Ports:

    • Break: This can be used to end the loop prematurely

    • Body: Here are the actions that should happen within the loop

    • Complete: Actions that should happen after all elements of the array have passed through the loop

For Loop

You can use this node to create a For loop. You can use this to specify how often an action should be repeated.

  • Input:

    • First Index: Start of the loop

    • Last Index: End of the loop

  • Output:

    • Index: Current index value

  • Execution Ports:

    • Break: This can be used to end the loop prematurely

    • Body: Here are the actions that should happen within the loop

    • Complete: Actions that should happen after the loop has finished running

While Loop

You can create a while loop with this node. An action is carried out as long as the specified condition is met.

  • Input:

    • Condition: Your condition for executing the loop

  • Execution Ports:

    • Body: Here are the actions that should happen within the loop

    • Complete: Actions that should happen if the condition is no longer fulfilled.

Switch

Switch (...)

There are a number of switch nodes which all work in the same way. The switch node makes it possible to define several “cases”. Each case represents a possible value or state of the selection. A specific block of code or an action is defined for each case.

  • Input:

    • Selection: The condition for the switch case

  • Execution Ports:

    • The selection options are also available as execution ports for each switch node. The actions that are to take place after the switch case has arrived can follow here.

Industry

This node works like an if condition. If the entered condition is true, one function is executed; if it is false, the other is executed.

  • Input:

    • Condition: The condition that should be fulfilled

  • Execution Ports:

    • Then: Actions that follow if the condition is true

    • Else: Actions that follow if the condition is false

Struct

Break

There are a number of break nodes, which all work in the same way. With the node, the structs can be broken down into their individual elements and further processed individually.

  • Input:

    • Struct: The input of all break nodes is always a struct of the same type as in the name of the node

  • Output:

    • The number of outputs results from the number of elements that make up the structure.

Make

There are a number of Make nodes, which all work in the same way. Make nodes work in exactly the opposite way to break nodes. Structs can be assembled from their individual elements using the knot. The node then passes on the respective struct.

  • Input:

    • The number of inputs results from the number of elements that make up the structure. The data types also depend on the respective struct types.

  • Output:

    • The struct of the same type as in the name of the node

Array

Make Array

You can use this node to create an array.

  • Input:

    • Element: An element of a data type from which an array is created

  • Output: The created array

Make Range (Array)

You can use this node to create an Int array.

  • Input:

    • Start: The start value of your array

    • Count: How many elements the array should have

  • Output: The created array.

Add element (array)

You can use this node to add an element to an existing array. Logically, the data types must match.

  • Input:

    • Array: The array to which you want to add an element

    • Element: The element you want to add.

  • Output: The revised array.

Add Range (Array)

You can use this node to add further elements or another array to an existing array. Logically, the data types must match.

  • Input:

    • Array: The array to which you want to add further elements

    • Elements: The elements in the form of an array that you want to add.

  • Output: The revised array.

Set element (array)

You can use this node to set a value at a specific index in your array.

  • Input:

    • Array: The array you want to edit

    • Index: Index at which you want to set another element

    • Element: Element that is set at the selected index

  • Output: The revised array.

Insert element (array)

You can use this node to add a value to a specific index in your array. The existing values are moved by one index.

  • Input:

    • Array: The array you want to edit

    • Index: Index at which you want to set another element

    • Element: Element that is set at the selected index

  • Output: The revised array.

Insert Range (Array)

You can use this node to add several values or another array from a certain index in your array. The existing values in the array are moved accordingly.

  • Input:

    • Array: The array you want to edit

    • Index: Index at which you want to insert the other elements

    • Elements: Array of elements that are set at the selected index

  • Output: The revised array.

Get Element At (Array)

You can use this node to pass on an element of an array using the index.

  • Input:

    • Array: The array from which you want to pass on an element

    • Index: Index of the element you want to pass on

  • Output: Element at index

Get First Element At (Array)

You can use this node to pass on the first element of an array.

  • Input:

    • Array: The array from which you want to pass on the element

  • Output: First element of the array

Get Last Element At (Array)

You can use this node to pass on the last element of an array.

  • Input:

    • Array: The array from which you want to pass on the element

  • Output: Last element of the array

Get Length (Array)

You can use this node to pass on the length of your array.

  • Input:

    • Array: Array whose length you want to pass on

  • Output: Length of the array as Int value

Get Last Index At (Array)

You can use this node to pass on the value of the last index of an array.

  • Input:

    • Array: The array whose last index value you want to output

  • Output: Last index of the array as Int value

Remove At (Array)

You can use this node to delete a value at a specific index in your array.

  • Input:

    • Array: The array you want to edit

    • Index: Index at which you want to delete an element

  • Output: The revised array.

Remove Range (Array)

You can use this node to delete several values from a certain index in your array.

  • Input:

    • Array: The array you want to edit

    • Index: Index from which you want to delete elements

    • Length: Number of values you want to delete

  • Output: The revised array.

Reverse (Array)

You can use this node to reverse your array.

  • Input:

    • Array: The array you want to invert

  • Output: The inverted array

Contains (Array)

You can use this node to check whether your array contains a specific value.

  • Input:

    • Array: The array you want to check

    • Element: The element that you want to check whether it is contained in the array

  • Output: Boolean value, depending on whether the check was successful or not true or false

Index Of (Array)

You can use this node to pass on the index of an element in the array.

  • Input:

    • Array: The array containing the element

    • Element: Element whose index you want to output

  • Output: The index of the element in the array

Last Index Of (Array)

You can use this node to return the index at which a particular element was the last to occur.

  • Input:

    • Array: The array containing the element

    • Element: Element whose index you want to output

  • Output: The index of the position at which the element occurs last in the array

Take Elements (Array)

You can use this node to output any number of elements in an array as a further array.

  • Input:

    • Array: The array whose elements you want to pass on as an array

    • Count: Number of elements that the new array should contain

  • Output: The processed array

Skip Elements (Array)

You can use this node to omit any number of elements in an array. You specify the number of elements to be omitted individually

  • Input:

    • Array: The array from which you want to omit elements

    • Count: Number of elements that should not be passed on. The start is at index 0.

  • Output: The processed array

Get Range (Array)

You can use this node to pass on any number of elements in an array starting from a specific index.

  • Input:

    • Array: The array where you only want to pass on a certain number of elements in an array

    • First Index: Position of the first element from which the array elements are to be passed on

    • Count: Quantity of elements that are to be passed on

  • Output: The processed array

Swap (Array)

You can use this node to exchange the index of two elements.

  • Input:

    • Array: The array in which you want to change the order of two elements

    • First Index: Position of the first element to be exchanged with the other element

    • Second Index: Position of the second element to be exchanged with the other element

  • Output: The processed array

Color

To Linear Color

You can use this node to convert the color information from the non-linear color space to the linear color space. Linear color information often facilitates mathematical operations such as lighting calculations and color manipulations.

  • Input:

    • Color: Color from a non-linear color space.

  • Output: Linear color

Date Time

Now (DateTime)

You can use this node to pass on the current date and time together with a time offset.

  • Output: current date/time

Utc Now (DateTime)

You can use this node to pass on the current date and time in UTC time. UTC time is a standardized, globally valid time that serves as a reference point for the synchronization of time in different regions.

  • Output: current date/time

Day (DateTime)

You can use this node to pass on the current day.

  • Input: Current date and time (from Node Now or Utc Now)

  • Output: Current day

Month (DateTime)

You can use this node to pass on the current month.

  • Input: Current date and time (from Node Now or Utc Now)

  • Output: Current month

Year (DateTime)

With this node you can pass on the current year.

  • Input: Current date and time (from Node Now or Utc Now)

  • Output: Current year

Hour (DateTime)

You can use this node to pass on the current hour.

  • Input: Current date and time (from Node Now or Utc Now)

  • Output: Current hour

Minute (DateTime)

You can use this node to pass on the current minute.

  • Input: Current date and time (from Node Now or Utc Now)

  • Output: Current minute

Second (DateTime)

You can use this node to pass on the current second.

  • Input: Current date and time (from Node Now or Utc Now)

  • Output: Current second

Millisecond (DateTime)

You can use this node to pass on the current millisecond.

  • Input: Current date and time (from Node Now or Utc Now)

  • Output: Current millisecond

To String (DateTime)

You can use this node to pass on the current date and time as a string.

  • Input:

    • Date Time: Current date and time (from Node Now or Utc Now)

    • Format: Here you can specify a format in which the date and time should be displayed. Examples:

      • Date and time:

        • "yyyy-MM-dd HH:mm:ss"

        • "dd/MM/yyyy HH:mm:ss"

        • "MMMM dd, yyyy HH:mm:ss"

      • Date only:

        • "yyyy-MM-dd": 2022-03-12

        • "dd/MM/yyyy": 12/03/2022

        • "MMMM dd, yyyy": March 12, 2022

      • Time only:

        • "HH:mm:ss": 15:30:45

        • "hh:mm tt": 03:30 PM

      • User-defined combinations:

        • "yyyy-MM-dd hh:mm tt": 2022-03-12 03:30 PM

        • "MMMM dd, yyyy 'um' HH:mm:ss"March 12, 2022 at 15:30:45

Serialization

Serialize Json

You can use this node to convert an object (e.g. a list or a user-defined struct) into a JSON string

  • Input: Your object

  • Output: JSON string as string

Deserialize Json

You can use this node to convert a JSON string into a data structure or an object

  • Input: JSON string as string

  • Output: The converted object

Linear Color

Add (Linear Color)

With this node you can add two linear colors to each other.

  • Input: The two linear colors

  • Output: The addition of the two linear colors

Add Scalar (Linear Color)

With this node, you can perform an addition of your linear color with a scalar value to obtain your desired linear color.

  • Input:

    • Linear Color: This is the linear color to which the addition is applied. A linear color represents the color values in a linear color space, which is used especially in Machine Vision for precise calculations.

    • Scalar: The scalar value is a single number that is added to each channel of the linear color. Each color channel (e.g. red, green, blue) is increased by the corresponding value of the scalar.

  • Output: The result of the addition is calculated as a new linear color

Misc

Delay

You can use this node to add a delay to a defined time. The action after this node is only carried out after the set time.

  • Input: Time of the delay

Dump Image

You can use this node to output an image in the Output window.

  • Input:

    • Image: Image to be output

    • Text: Optional text for the image, which should also be output

Print

You can use this node to output a text in the output window.

  • Input:

    • Text: Text to be output

String

Literal (String)

This node acts as a kind of placeholder or input element for a fixed text value. It expects a predefined string as input and provides the same value as output.

  • Input: Predefined string

  • Output: The same string value that was specified as input is provided as output.

Append (String)

You can use this node to merge two strings

  • Input: The two strings

  • Output: The assembled string

Length (String)

You can use this node to pass on the length of the string as an Int value.

  • Input: Your string

  • Output: Length of the string as Int value

Substring (String)

You can only pass on part of your string with this node.

  • Input:

    • Value: Your string

    • Start Index: Position from which you want to pass on your string

    • Length: Number of digits/letters that you want to pass on

  • Output: The processed string

Split (String)

You can use this node to separate your string into individual strings based on a separator. A separator can be a comma or a period, for example.

  • Input:

    • Value: String that you want to split into individual strings

    • Separator: String or character that is suitable as a separator

  • Output: The individual parts of the string as a string array

Join (String)

You can use this node to convert a string array into a single string and place a character such as a comma between the individual strings.

  • Input:

    • Array: String Array

    • Separator: String or character that is suitable as a separator between the strings in the array

  • Output: The individual parts of the array as a single string

To Lower (String)

You can use this node to ensure that all characters in a string are capitalized.

  • Input: String whose characters are to be capitalized

  • Output: The processed string

To Upper (String)

With this node you can ensure that all characters in a string are capitalized.

  • Input: String whose characters are to be capitalized

  • Output: The processed string

Starts With (String)

You can use this node to check whether a string begins with a specific prefix. You can also specify whether upper and lower case should be ignored during the check.

  • Input:

    • Value: The main string to be checked.

    • Prefix: The prefix string with which the main string is compared.

    • Ignore Case: A Boolean specification as to whether upper and lower case should be ignored during the check.

  • Output: A boolean value (True/False) that indicates whether the main string begins with the specified prefix.

Ends With (String)

You can use this node to check whether a string ends with a specific suffix. You can also specify whether upper and lower case should be ignored during the check.

  • Input:

    • Value: The main string to be checked.

    • Suffix: The suffix string with which the main string is compared.

    • Ignore Case: A Boolean specification as to whether upper and lower case should be ignored during the check.

  • Output: A boolean value (True/False) that indicates whether the main string ends with the specified suffix.

Trim Start (String)

You can use this node to trim the beginning of a string of leading spaces or certain characters.

  • Input: The main string to be processed.

  • Output: The processed string after removing leading spaces or specific characters at the beginning of the main string.

Trim End (String)

You can use this node to trim the end of a string of trailing spaces or certain characters.

  • Input: The main string to be processed.

  • Output: The processed string after removing trailing spaces or specific characters at the end of the main string.

Trim (String)

You can use this node to remove spaces or certain characters at the beginning and end of a string.

  • Input: The main string to be processed.

  • Output: The processed string after removing leading and trailing spaces or specific characters at the beginning and end of the main string.

Equal (String)

You can use this node to check whether two strings are the same. You can also specify whether upper and lower case should be ignored during the check.

  • Input:

    • A: The first string to be compared.

    • B: The second string to be compared.

    • Ignore Case: A Boolean specification as to whether upper and lower case should be ignored during the check.

  • Output: A Boolean value (True/False) that indicates whether the two strings are the same.

Not Equal (String)

You can use this node to check whether two strings are not the same. You can also specify whether upper and lower case should be ignored during the check.

  • Input:

    • A: The first string to be compared.

    • B: The second string to be compared.

    • Ignore Case: A Boolean specification as to whether upper and lower case should be ignored during the check.

  • Output: A Boolean value (True/False) that indicates whether the two strings are not equal.

Replace (String)

You can use this node to replace a specific part of a string with a new value. You can also specify whether upper and lower case should be ignored when replacing.

  • Input:

    • Value: The main string in which the replacement is to be made.

    • Old Value: The part of the main string to be replaced.

    • New Value: The new value with which the old value is to be replaced.

    • Ignore Case: A Boolean specification as to whether upper and lower case should be ignored during replacement.

  • Output: The processed string after the replacement has been carried out.

Reverse (String)

You can use this node to reverse the order of the characters in a string.

  • Input: The main string whose characters are to be reversed.

  • Output: The processed string in which the order of the characters has been reversed.

To ASCII Bytes (String)

You can use this node to convert a string into a byte array, whereby each character in the string is assigned its corresponding ASCII value.

  • Input: The string to be converted into a byte array.

  • Output: A byte array representing the ASCII values of the characters in the input string.

Enum

To String (...)

There are a number of To String nodes for enums, which all behave in the same way. These nodes can be used to convert enums into strings.

  • Input: An enum that is to be converted into a string

  • Output: The enum as a string

Literal (...)

This node acts as a kind of placeholder or input element for a fixed enum value. It expects an enum as input and provides the same value as output.

  • Input: Predefined enum

  • Output: The same enum as a literal

Select (...)

You can use this node to select and pass on a parameter value of your enum.

  • Input: As input, there are the respective parameters of the enum and a selection field in which you have to choose which selection you want to pass on.

  • Output: The value of the selected selection.

6. connection

AWS

Upload (AWS S3 Storage)

You can use this node to upload data as a payload (byte array) to an Amazon S3 storage.

  • Input:

    • Payload: The data to be uploaded as a byte array.

    • Region: The AWS region of the S3 storage.

    • Bucket: The name of the S3 bucket to which the data is to be uploaded.

    • Access Key Id: The access key ID for AWS authentication.

    • Secret Access Key: The secret access key for AWS authentication.

    • Directory: The directory in the S3 bucket to which the data is to be uploaded.

    • Filename: The name to be given to the uploaded data in the S3 storage.

    • Timeout: The maximum duration in seconds that the upload process may take.

  • Output:

    • Success: A Boolean value that indicates whether the upload process was successful (True) or not (False).

    • Message: A message containing further information about the upload process. If successful, this could be a confirmation message, otherwise an error message.

Azure

Upload (Azure Storage Blob)

You can use this node to upload data as a byte array to an Azure Storage Blob.

  • Inputs:

    • Payload: The data to be uploaded as a byte array.

    • Address: The address for the Azure Storage Blob endpoint.

    • Token: The authentication token for accessing the blob.

    • Container: The name of the Azure Storage Container to which the data is to be uploaded.

    • Directory: The directory in the blob container to which the data is to be uploaded.

    • Filename: The name to be given to the uploaded data in the blob.

    • Timeout: The maximum duration in milliseconds that the upload process may take.

  • Output:

    • Success: A Boolean value that indicates whether the upload process was successful (True) or not (False).

    • Status code: The status code of the upload process, which contains further details about the process.

    • Message: A message that contains additional information about the upload process. If successful, this could be a confirmation message, otherwise an error message.

FTP

Upload (FTP)

You can use this node to upload data as a byte array via FTP (File Transfer Protocol).

  • Inputs:

    • Payload: The data to be uploaded as a byte array.

    • Address: The address of the FTP server.

    • Port: The port of the FTP server.

    • Username: The user name for FTP authentication.

    • Password: The password for FTP authentication.

    • Directory: The directory on the FTP server to which the data is to be uploaded.

    • Filename: The name to be given to the uploaded data on the FTP server.

    • Timeout: The maximum duration in milliseconds that the upload process may take.

  • Outputs:

    • Success: A Boolean value that indicates whether the upload process was successful (True) or not (False).

    • Message: A message that contains additional information about the upload process. If successful, this could be a confirmation message, otherwise an error message.

HTTP

Get (HTTP)

You can use this node to send an HTTP GET request to a specific address.

  • Inputs:

    • Address: The URL or IP address to which the GET request is sent.

    • Headers: An array of header elements to be added to the GET request. Each header element consists of a name-value pair.

    • Timeout: The maximum duration in milliseconds to wait for the response to the GET request.

  • Outputs:

    • Http Response: The HTTP response to the GET request, which contains information such as status code, header and the content of the response.

Put (HTTP)

You can use this node to send an HTTP PUT request to a specific address.

  • Inputs:

    • Json: The data to be used as a JSON payload for the PUT request.

    • Address: The URL or IP address to which the PUT request is sent.

    • Headers: An array of header elements to be added to the PUT request. Each header element consists of a name-value pair.

    • Timeout: The maximum duration in milliseconds to wait for the response to the PUT request.

  • Output:

    • Http Response: The HTTP response to the PUT request, which contains information such as status code, header and the content of the response.

Mail (HTTP)

You can use this node to send an HTTP POST request to a specific address.

  • Inputs:

    • Json: The data to be used as a JSON payload for the POST request.

    • Address: The URL or IP address to which the POST request is sent.

    • Headers: An array of header elements to be added to the POST request. Each header element consists of a name-value pair.

    • Timeout: The maximum duration in milliseconds to wait for the response to the POST request.

  • Output:

    • Http Response: The HTTP response to the POST request, which contains information such as status code, header and the content of the response.

MQTT

Publish (MQTT)

his node allows you to send an MQTT publish message to an MQTT broker.

  • Inputs:

    • Address: The address of the MQTT broker.

    • Port: The port of the MQTT broker.

    • Username: The user name for authentication with the MQTT broker.

    • Password: The password for authentication with the MQTT broker.

    • Timeout: The maximum duration in seconds that the system waits for confirmation of the publish message.

    • Topic: The MQTT topic on which the message is to be published.

    • Payload: The data to be used as the payload of the publish message.

  • Output:

    • Success: A Boolean value that indicates whether the publishing of the message was successful (True) or not (False).

    • Message: A message that contains additional information about the publish process. If successful, this could be a confirmation message, otherwise an error message.

PLC

DB Read String (S7 PLC)

You can use this node to read a string from an S7 PLC data block.

  • Inputs:

    • Plc: PLC instance from which the data is to be read.

    • Data Block: The data block in the S7-PLC from which the character string is to be read.

    • Start Address: The start address in the data block from which the character string is to be read.

  • Output: The character string read from the specified data block and the start address.

DB Read Characters (S7 PLC)

You can use this node to read a string of a specific length from an S7 PLC data block.

  • Inputs:

    • Plc: The PLC instance from which the data is to be read.

    • Data block: The data block in the S7-PLC from which the character string is to be read.

    • Start address: The start address in the data block from which the character string is to be read.

    • Length: The length of the character string to be read.

  • Output: The read character string from the specified data block, the start address and the specified length.

DB Write Characters (S7 PLC)

You can use this node to write a string to an S7 PLC data block.

  • Inputs:

    • Plc: The PLC instance on which the data is to be written.

    • Data block: The data block in the S7-PLC in which the character string is to be written.

    • Start address: The start address in the data block from which the character string is to be written.

    • Payload: The string to be written to the specified data block and start address.

DB Read Bool (S7 PLC)

You can use this node to read a Boolean value from a specific bit of an S7 PLC data block.

  • Inputs:

    • Plc: The PLC instance from which the data is to be read.

    • Data block: The data block in the S7 PLC from which the Boolean value is to be read.

    • Start address: The start address in the data block from which the Boolean value is to be read.

    • Bit: The bit in the specified start address that is to be interpreted as a Boolean value.

  • Output: The read Boolean value from the specified data block, the start address and the specified bit.

DB Write Bool (S7 PLC)

You can use this node to write a Boolean value to a specific bit of an S7 PLC data block.

  • Inputs:

    • Plc: The PLC instance to which the data is to be written.

    • Data block: The data block in the S7 PLC in which the Boolean value is to be written.

    • Start address: The start address in the data block from which the Boolean value is to be written.

    • Bit: The bit in the specified start address to which the Boolean value is to be written.

    • Level: The Boolean value to be written to the specified bit of the data block and the start address.

DB Read Int (S7 PLC)

You can use this node to read an integer value from an S7 PLC data block.

  • Inputs:

    • Plc: The PLC instance from which the data is to be read.

    • Data block: The data block in the S7-PLC from which the integer value is to be read.

    • Start address: The start address in the data block from which the integer value is to be read

  • Output: The integer value read from the specified data block and the start address.

DB Write Int (S7 PLC)

You can use this node to write an integer value to an S7 PLC data block.

  • Inputs:

    • Plc: The PLC instance on which the data is to be written.

    • Data block: The data block in the S7 PLC in which the integer value is to be written.

    • Start address: The start address in the data block from which the integer value is to be written.

    • Value: The integer value to be written to the specified data block and the start address.

SFTP

Upload (SFTP)

You can use this node to upload data as a byte array via SFTP (Secure File Transfer Protocol).

  • Inputs:

    • Payload: The data to be uploaded as a byte array.

    • Directory: The directory on the SFTP server to which the data is to be uploaded.

    • Filename: The name to be given to the uploaded data on the SFTP server.

    • SFTP: The SFTP client instance for the connection to the SFTP server

  • Output:

    • Success: A Boolean value that indicates whether the upload process was successful (True) or not (False).

    • Message: A message that contains additional information about the upload process. If successful, this could be a confirmation message, otherwise an error message.

TCP

Send (TCP)

You can use this node to send data as a byte array via the TCP protocol.

  • Inputs:

    • Payload: The data to be sent as a byte array.

    • Start Characters: The start characters that can mark the start of the data marking.

    • Stop Characters: The stop characters that can mark the end of the data marker.

    • Client: The client for the TCP connection

  • Output:

    • Success: A Boolean value that indicates whether the sending process was successful (True) or not (False).

    • Message: A message that contains additional information about the sending process. If successful, this could be a confirmation message, otherwise an error message.

UDP

Send (UDP)

You can use this node to send data as a byte array via the UDP protocol.

  • Inputs:

    • Payload: The data to be sent as a byte array.

    • Hostname: The hostname or IP address of the UDP destination host.

    • Port: The port via which the UDP data is to be sent.

  • Outputs:

    • Success: A Boolean value that indicates whether the sending process was successful (True) or not (False).

    • Message: A message that contains additional information about the sending process. If successful, this could be a confirmation message, otherwise an error message.

Übersicht