Polybench® Reference
Variables that contain a list of editable or read-only parameters

Parameter List

Overview

When using Actions, not only single values can be communicated between objects, but also lists of values. Such a list is called a Parameter List. Parameter Lists can be displayed in the List Viewer ("List Viewer").

Details

Parameter Lists are often used in the Variable Parameters of an object in Polybench (if that object has variable parameters at all). Such a list looks like a single parameter, but in fact it is a list of multiple values that can be addressed separately.

For example, take the Channel Name Splitter ("Channel Name Splitter"). It has a variable parameter called ChannelNames. If you have a Polybench project and if you put on the Design page a Channel Name Splitter that is connected to signals and that has defined channels at its output, then you can use this variable parameter to display the channels in a List Viewer ("List Viewer").
The List Viewer will take as address $Design.Channel Name Splitter.ChannelNames and display the channels, but also offer the user to change the channels.

If you would then try to display that address in a Variable Viewer ("Variable Viewer"), nothing will be displayed, because the variable viewer expects single value parameters. However, it does display a single channel's name, so if the Channel Name Splitter would have a channel called Channel 1, then the variable viewer could display the address $Design.Channel Name Splitter.ChannelNames.Channel 1.

Referring to individual items in a list

The values inside a parameter list can be addressed individually. In the properties or variables dialogs in Polybench Designer, lists can be unfolded to show all items. Items in a list may have different names, or ordered names with an index value.

Generally, list items can also be addressed by a zero-based index. As an example:

$Design.Device X.Status is a Paremeter List containing:
$Design.Device X.Status.Battery$
$Design.Device X.Status.Faults$
$Design.Device X.Status.Throughput$

These items can also be addressed by index:
$Design.Device X.Status.0$
$Design.Device X.Status.1$
$Design.Device X.Status.2$