Workflow about extraction of snapshot properties

There are two ways to query a snapshot state, manually querying with method GetSnapshotState, or joining a change group and polling its changes. Based on the working principle of a change group, the polling function will only report to the changed control within a polling cycle. In some cases, it is impossible to determine a snapshot state. (e.g. a snapshot changes from "loaded" to "changed", then the Q-SYS device will only report that the control "match" changed from "true" to "false". The other related control "last" remains "true".) However, each time the method GetSnapshotState is used, every related control of a requested snapshot will be queried. With the complete information the snapshot state can always be determined.

Because of the fact that each snapshot property which is queried by a polling function(Poll or AutoPoll), is stored internally, the Clear method of the function block FB_QRC_ResExtract can be used to release this storage.

After a response frame by a Q-SYS device arrived, all of snapshot controls' properties, which are queried by polling method, will be stored internally. (The attribute bSavOldRes has NO impact on this.) The snapshot control properties will be updated. With the help of the Clear method these properties can be deleted.

Workflow about extraction of snapshot properties 1:

This logic has no impact to the bSavOldRes logic, which was described in the section Attribute bSavOldRes. However users can also set bSavOldRes to TRUE to save control properties at aCtrlProp.

To get a better understanding of this behavior, there is an example shown underneath.

Step 1: After snapshot 1 and 3 (Name of Snapshot Bank is "Bank1", name of snapshot component is "Snapshot1".) has joined in the change group ("ChangeGroup 1"), the response frame was received:

Workflow about extraction of snapshot properties 2:

All related informations will be stored internally in an array. Snapshots' states are determined.

Step 2: In case some snapshot contained controls were changed within a polling cycle, a polling frame is arrived:

Workflow about extraction of snapshot properties 3:

The property "match.1" will be updated in the internal array and the snapshot "Snapshot 1" changes its state from "loaded" to "changed". (aCtrlProp[0])

Step 3: Snapshot 3 is triggered.

Workflow about extraction of snapshot properties 4:

The "Snapshot 3" was just triggered and the polling frame was received. Related control properties will be updated.

Step 4: Clear the internal array.

If users want to poll another snapshots' state and the stored properties are no longer useful, the method Clear should be used to reset the internal array.

Workflow about extraction of snapshot properties 5:

After the clear operation the internal array and the array aCtrlProp are both empty.