The areas on this tab allow you to interact with the vTool currently selected in the Workbench and to manage connections.
Preview Pin Data#
This area displays a preview of the input and output data of the vTool currently selected in the Workbench when running a recipe. For a larger view, open a pin data view via the Workbench toolbar. This displays only the output data.
This area allows you to change the identifier of a vTool to a name of your choice. Names can be composed of alphanumeric characters [A-Z, a-z, 0-9]. Underscores '_' are allowed but not as a leading character. Numbers are also not allowed as leading characters.
This area allows you to open the settings dialog of the vTool to configure the vTool. Alternatively, you can double-click a vTool to open its settings.
This area becomes available if you select a connection in a recipe. Here, you can change the name of the connection and specify how it works.
A connection is like a queue for items to be processed by the recipe, e.g., image buffers. The configuration of connections has a great impact on how a recipe is executed.
Example: A camera has a finite number of image buffers and captures images at a certain rate. If subsequent vTools in the recipe take longer to process image buffers than the camera takes to capture images, buffers will queue up at the "slow" vTool until no more buffers are available for the camera. The result would be dropped images.
Depending on your application, dropped images may be acceptable or you may want to prevent image loss. By using the different queue modes and specifying a queue size, you can configure the desired behavior.
The following queue modes are available:
- Blocking: The Queue Size setting specifies how many queue items can be held by a connection. Once the subsequent vTool is ready to process new data, the item moves from the connection to the vTool and will be processed.
Example: If your queue size is 2 and there are two items in the queue already, the previous vTool in the recipe is blocked from sending more items. You may still experience dropped images, though, because the Camera vTool will keep capturing images at its specified frame rate. In general, though, selecting Blocking for all connections in your recipe and specifying a queue size according to the slowest vTool in the recipe will minimize dropped images.
- Unlimited: The number of items in the queue is unlimited. Be aware that if there is a "slow" vTool in your recipe, buffers may not be returned to the camera quickly enough for the camera to keep capturing images at its specified frame rate. Therefore, you may still experience dropped images due to a buffer underrun. Consider your use case, the camera settings, and the performance of the vTools when selecting Unlimited.
- Drop Oldest: The Queue Size setting specifies how many queue items can be held by a connection. If the queue is full and an additional item is added to the queue, the oldest item in the queue is dropped to create enough space for the new item.
- Drop Newest: The Queue Size setting specifies how many queue items can be held by a connection. If the queue is full and an additional item arrives at the queue, this new item will be discarded.
You can use the Statistics tab to measure the execution times of your vTools and identify any vTools that may slow down processing.
The default setting is Blocking and a queue size of 1.
The Statistics tab allows you to measure the execution times of vTools to check whether your timing requirements are met. The recipe must be running to be able to collect the statistical data.
You can measure the execution times of a single vTool or all vTools in the recipe. The execution times of all vTools are recorded in a CSV file. You can use a spreadsheet application to analyze the data.
CPUs may run with different frequencies depending on the current load, e.g., due to CPU throttling or dynamic frequency scaling. Therefore, the times measured may vary depending on the configuration of your system and the overall CPU load.
Windows: If you want to eliminate the effect of CPU throttling, set the power plan to Best performance.
The Optimization tab allows you to optimize thread handling.
A recipe provides a pool of worker threads. A worker thread from this thread pool is used for data processing tasks of the vTools. On the Optimization tab, you can specify the thread count, e.g., to match it to the actual number of CPUs. The optimum setting depends on the hardware used and the maximum number of vTools working in parallel.
A vTool may use additional internal threads. This depends on the underlying implementation of the individual vTool.