Action Control
Current action command implementation supports both immediate execution of received action commands and scheduled execution of action commands. In order to execute an action immediately, the primary/secondary application has to set the legacy bit (i.e., action time available bit in flag field) in the corresponding ACTION_CMD packet to zero. In this case the device will execute the command at the earliest time possible. Also if the primary/secondary application set the action time available bit to true and provides a time tag which is in the past (i.e., comparing to the device timestamp), the device will execute the command at the earliest time possible and returns the GEV_STATUS_ACTION_LATE acknowledge message if the Extended Status Code 2.0 bit in GVCP configuration register is set to one, otherwise returns GEV_STATUS_ERROR acknowledge message.
Action Signal Size and Queue
Current implementation supports one action command (i.e., ActionSignalSize is equal to 1) and it is represented by "Action Signal 0". Camera can queue up maximum of 10 scheduled actions (i.e., ActionQueueSize is equal to 10) and will remove each action from the queue when their respective execution time has passed. Executing ActionQueueEmpty command node will also empty the action command queue no matter how many actions are stored in the queue.
"Action Signal 0" can be used as the source of trigger. This feature gives the user the ability to schedule the start of an acquisition (e.g., acquisition start, frame start and frame burst start) at any arbitrary time in the future and the devcie will assert the trigger at the scheduled time.
Action Commands and IEEE1588
If the device reference time is not synchronized to any master clock, then upon the receipt of an scheduled action command the device will return an acknowledge message with a GEV_STATUS_NO_REF_TIME status code if the Extended Status Code 2.0 bit in GVCP configuration register is set to one, otherwise returns GEV_STATUS_ERROR acknowledge message. In situations where there is no master clock on the network, enabling IEEE1588 mode on the device will make it a local master clock and will fix the action command packet rejection issue.
Implementation Details
When device's queue is full and it receives an additional action command, it will returns an acknowledge message with GEV_STATUS_OVERFLOW status code if the Extended Status Code 2.0 bit in GVCP configuration register is set to one, otherwise returns GEV_STATUS_ERROR status code.
If host tries to send an scheduled action command packet which is already existed in the queue, then the device will quietly ignore the duplicate packet.
The device does not support execution of actions which are less than 100us apart. Hence if host sends an scheduled action command packet which has an execution time closer than 100us to any of the actions in the queue, the device will ignore the packet (i.e., treats as if it is already existed).
It is recommended to set/enable the Extended Status Code 2.0 bit on GVCP configuration register in order to receive more detailed acknowledge messages from the device. If the Extended Status Code 2.0 is not set, the device will response with general GEV_STATUS_ERROR acknowledge message in case of any failures in the scheduling/execution process.
Summary Table
Name | Interface | Access | Visibility | Description |
---|---|---|---|---|
Action Unconditional Mode | IEnumeration | RW | Guru | Enables the unconditional action command mode where action commands are processed even when the primary control channel is closed. |
Action Signal Size | IInteger | RO | Guru | Indicates the number of seperate action commands supported by this device. |
Action Queue Empty | ICommand | WO | Guru | Removes all action commands in the queue. |
Action Device Key | IInteger | WO | Guru | Provides the device key that allows the device to check the validity of action commands. The device internal assertion of an action signal is only authorized if the ActionDeviceKey and the action device key value in the protocol message are equal. |
Action Queue Size | IInteger | RO | Guru | Indicates the size of the scheduled action commands queue. This number represents the maximum number of scheduled action commands that can be pending at a given point in time. |
IInteger | RO | Guru | ||
Action Group Mask [] | IInteger | RW | Guru | Provides the mask that the device will use to validate the action on reception of the action protocol message. |
Action Group Key [] | IInteger | RW | Guru | Provides the key that the device will use to validate the action on reception of the action protocol message. |
Action Control Features
Action Unconditional Mode
Enables the unconditional action command mode where action commands are processed even when the primary control channel is closed.
Property | Value |
---|---|
Name | ActionUnconditionalMode |
Interface | IEnumeration |
Access | RW |
Visibility | Guru |
Enumeration Values |
---|
Off |
On |
Action Signal Size
Indicates the number of seperate action commands supported by this device.
Property | Value |
---|---|
Name | ActionSignalSize |
Interface | IInteger |
Access | RO |
Unit | |
Visibility | Guru |
Action Queue Empty
Removes all action commands in the queue.
Property | Value |
---|---|
Name | ActionQueueEmpty |
Interface | ICommand |
Access | WO |
Visibility | Guru |
Action Device Key
Provides the device key that allows the device to check the validity of action commands. The device internal assertion of an action signal is only authorized if the ActionDeviceKey and the action device key value in the protocol message are equal.
Property | Value |
---|---|
Name | ActionDeviceKey |
Interface | IInteger |
Access | WO |
Unit | |
Visibility | Guru |
Action Queue Size
Indicates the size of the scheduled action commands queue. This number represents the maximum number of scheduled action commands that can be pending at a given point in time.
Property | Value |
---|---|
Name | ActionQueueSize |
Interface | IInteger |
Access | RO |
Unit | |
Visibility | Guru |
Property | Value |
---|---|
Name | ActionSelector |
Interface | IInteger |
Access | RO |
Unit | |
Visibility | Guru |
Value | 0 |
Action Group Mask
Provides the mask that the device will use to validate the action on reception of the action protocol message.
Property | Value |
---|---|
Name | ActionGroupMask [] |
Interface | IInteger |
Access | RW |
Unit | |
Visibility | Guru |
Action Group Key
Provides the key that the device will use to validate the action on reception of the action protocol message.
Property | Value |
---|---|
Name | ActionGroupKey [] |
Interface | IInteger |
Access | RW |
Unit | |
Visibility | Guru |