User Actions Scheduler Tool & User Output Register
(1-camera), (1-camera, line-scan), (2-camera), (2-camera, line-scan)
(1-camera), (1-camera, line-scan), (2-camera)
(1-camera)
(1-camera), (1-camera, line-scan), (2-camera), (2-camera, line-scan)
(1-camera), (1-camera, line-scan), (2-camera)
(1-camera), (1-camera, 4-data-stream), (1-camera, line-scan), (1-slm-camera), (1-sls-camera), (2-camera), (2-camera, bayer), (2-camera, line-scan), (3-camera), (4-camera), (4-camera, line-scan)
(1-camera), (1-df-camera), (1-camera, line-scan), (1-df-camera, line-scan)
(1-camera)
(1-camera), (1-camera, custom-logic), (1-camera, line-scan), (2-camera), (2-camera, line-scan), (2-camera, line-scan, custom-logic), (3-camera), (4-camera), (4-camera, line-scan), (5-camera), (5-camera, 5D22211), (8-camera)
(1-camera), (1-camera, custom-logic), (1-camera, line-scan), (1-camera, line-scan, custom-logic), (2-camera), (2-camera, custom-logic), (2-camera, line-scan), (2-camera, line-scan, custom-logic), (4-camera), (4-camera, custom-logic)
(4-camera)
(1-camera), (1-camera, line-scan)
(1-camera), (1-camera, line-scan), (2-camera), (2-camera, line-scan)
(1-camera), (1-camera, line-scan), (2-camera), (2-camera, line-scan), (4-camera), (4-camera, line-scan)
(1-camera), (1-camera, custom-logic), (1-camera, line-scan)

UAS tool functional and wiring block diagram
The User Actions Tool (UAS) allows the application software to perform the following User Actions:
● | Generate events on any User Events source. |
● | Setting high any bit of the User Output Register. |
● | Setting low any bit of the User Output Register |
● | Toggling any bit of the User Output Register. |
With the ClearUserActions and AddUserActions GenApi features, the user application can define a User Actions Set composed with all the actions to be executed simultaneously.
After having defined the User Actions Set, the application software has two options for its execution:
● | Using the ExecuteUserActions GenApi feature to execute immediately all the actions defined in the User Actions Set. |
● | Using the ScheduleUserActions GenApi feature to delegate the execution of the User Actions Set to the User Actions Scheduler. |

User actions scheduler functional diagram
The UAS function block allows an application software to postpone the execution of the actions.

Prior to using the User Actions Scheduler, the user application has to select a 32-bit reference counter. This is achieved by assigning one of the following three values to the UserActionsSchedulerReference GenApi feature:
● | InternalTime selects the frame grabber local time: A monotonic time base that increments by 1 every 1 microsecond and wraps around after about 71 minutes when it reaches the maximum value of 4,294,967,295. |
● | QDC1Position and QDC2Position selects the Position Counter of the Quadrature Decoder tools QDC1 and QDC2 respectively. |
For correct operation of the UAS with a position reference, the position counter must increment monotonically and not faster than every microsecond.
To ensure monotonic increments of the QDC position counter:
● | Set properly QuadratureDecoderToolForwardDirection such that the counter increments when the object moves in the forward direction. |
● | If it exists any backward motion, prevent the position counter to decrement by setting the QuadratureDecoderToolOutputMode to ForwardOnly or to FirstPassForwardOnly. |

The Scheduled User Actions Pool is a memory area where the Scheduled User Actions Sets are stored by the user application. The pool has 64 locations.
To add a new Scheduled User Actions to the Pool, the user application must:
1. | Ensure that there is at least one free location by getting the value of the ScheduledUserActionsPoolStatus GenApi feature, |
2. | Define a User Actions Set, |
3. | Determines the time/position 32-bit value when the actions are to be executed, |
4. | Set this value to ScheduledUserActions GenApi feature. |
Scheduled User Actions are removed from the pool when they are executed.
The pool can be cleared at any time by executing the DiscardScheduledUserActions GenICam command.

At every increment of the 32-bit (time or position) reference counter, the Scanner reads all the locations and compares the scheduled reference time/position with the current time/position count value.
When the values are identical, the Scheduled User Actions Set is elected for execution at the end of the scan and removed from the pool.
When multiple sets are elected for execution, their actions are merged.
Merging a set low and a set high action on the same User Output Register bit results into a toggle action.
At the end of the scan: the merged elected actions are executed simultaneously. The time delay from the reference tick up to the execution of the elected actions is very small ( sub-microsecond) and constant.

There are User Events sources named UserEvent1
…
UserEvent4
.
Any User Event can be used:
● | As Cycle Trigger source by all the Camera and Illumination Controllers. |
● | As Cycle Sequence Trigger source by all the Camera and Illumination Controllers. |
● | As event source by all the Divider tools of the I/O Toolbox. |
● | As event source by all the Multiplier/Divider tools of the I/O Toolbox |
● | As event source for both channels of all the Delay) tools of the I/O Toolbox. |

Coaxlink and Grablink Duo frame grabbers provide a User Output Register where
bits are named UserOutput0
… UserOutput7
.
1630 Coaxlink Mono implements only the 4 lowest bits!
Any User Output Register bit can be used asa signal source by any output-capable GPIO line.
The user application has two options to define the state of the User Output Register bits:
● | The User Actions option allows to change the state of each bit individually. |
● | Setting a value to the UserOutputValueAll to define the state of all bits. |
Getting the value of UserOutputValueAll allows the user application to get the state of all bits.