Types of Filters
Read before: Introduction to Data Flow Programming.
Most filters are functional, i.e. their outputs depend solely on the input values. Some filters however can store information between consecutive iterations to compute aggregate results, communicate with external devices or generate a loop in the program. Depending on the side effects they cause, filters are classified as:
A filter which computes the output values always from and only from the input values. Typical examples: AddIntegers, SmoothImage_Gauss.
A filter which stores information between consecutive iterations. Its output values can be computed from input values that have appeared in this iteration as well as in all previous iterations. Typical examples: AccumulateElements, AddIntegers_OfLoop.
A filter which exchanges information with elements external to the program. Typical examples: GenICam_SetDigitalOutputs, DAQmx_ConfigureTiming.
A filter which inserted to a program makes it work in a loop. Typical examples: EnumerateIntegers, Loop.
I/O Loop Generator
A filter which inserted to a program makes it work in a loop and, like an I/O Function, exchanges information with external elements. Typical examples: WebCamera_GrabImage, GigEVision_GrabImage.
The icon depicting the filter type is displayed in the Program Editor at the top-left corner of the filter's icon:
Remark: The state of Loop Accumulators and Loop Generators actually belongs to the containing Task macrofilter. The filters are reset only when the execution enters the Task and then it is updated in all iterations.
Here is a list of constraints related to some of the filter types:
- Loop generators cannot be executed in the array mode.
- Loop generators, loop accumulators and I/O functions cannot be re-executed when the program is paused.
|Previous: Conditional Execution
|Next: Generic Filters