User Actions Tool & User Output Register
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
GenICam 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 GenICam feature to execute immediately all the actions defined in the User Actions
Set. |
● | Using the ScheduleUserActions GenICam 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
GenICam feature:
● | InternalTime selects the Coaxlink card 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. |
Important: For correct operation of the UAS with a position reference, the position counter must increment monotonically and not faster than every microsecond.
Note: 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 GenICam
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 GenICam 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.
Note: 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 products provide a User Output Register where
bits are named UserOutput0
… UserOutput7
.
Note:
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.
See also in the GenICam Reference (Interface Module)