Multiple Processes

VisualApplets projects may include multiple processes. A process is the top level of a diagram and can include an arbitrary number of operators and hierarchical boxes. Each process can be started and stopped individually.

A good example where two processes are used is a two camera application. Have a look at the following figure. It shows two processes with a camera, a buffer and a DMA operator in each of the processes.

Applet with Two Processes

Figure 141. Applet with Two Processes


When the applet is used, both processes, i.e., both cameras can be started and stopped individually. If both cameras are in the same process, they have to be started and stopped simultaneously, as all DMAs of a process have always to be started.

To learn more about the usage of VisualApplets applets on hardware, see section 'Running Your Applet on Hardware', and/or the Framegrabber SDK documentation.

Managing Processes

To add a new process, click DesignNew Process or choose the icon in the Edit toolbar.

Creating a New Process

Figure 142. Creating a New Process


To remove a process first select any digram window belonging to the process and afterwards select DesignRemove Process or choose the icon in the Edit toolbar.

Processes always start with index 0 and have to be in ascending order. If a process is removed, processes with higher indices are shifted to fill the gap.

Processes without DMAs / Trigger Processes

As mentioned, an applet process can only be used on the hardware after all DMAs of the respective process have been started. However, if a process does not contain any DMA channels, it will be immediately started after initialization of the applet. This is useful for trigger and signal processing applications as they are used before the image acquisition is started.

To learn more about initialization and usage of VisualApplets applets on hardware, see section 'Running Your Applet on Hardware', and/or the Framegrabber SDK documentation.

Process Intercommunication

Image data between processes cannot be interchanged. However, using operators TxSignalLinks and RxSignalLinks, an interprocess communication for signals can be established.