More PSO Functions

PSO Reset

The PSO Reset module is a manager module that resets all other PSO modules to their default configuration state. It consists of a single AeroScript function: PsoReset(). You can use this function to ensure that all prior PSO configuration options are cleared and returned to default.

function PsoReset($axis as axis)

Resets all PSO configuration, which restores all PSO settings to their default values.

Arguments

$axis  The axis on which to reset the PSO configuration.

PSO Laser

You can use the PSO Laser module to generate an event each time the Galvo Laser Output turns on. Use the PsoLaserEventsOn() function to enable the generation of events when the Galvo Laser Output activates. Use the PsoLaserEventsOff() function to disable these events. See the Galvo and IFOV Functions topic for more information on the Galvo Laser Output.

function PsoLaserEventsOn($axis as axis)

Configures the PSO to generate an event when the laser command bit turns on.

Arguments

$axis  The axis on which to generate laser PSO events.

function PsoLaserEventsOff($axis as axis)

Disables PSO laser events.

Arguments

$axis  The axis on which to disable PSO laser events.

PSO Bit

The PSO Bit module allows you to specify a sequence of binary values, 1 or 0, each known as a bit. Each time the output event from the PSO Event module occurs, the PSO Bit module updates the active bit with the next value in the sequence. The PSO Output module can use the active bit to directly drive the PSO output. The PSO Bit module can also use the active bit as an additional mask, which will allow or prevent the PSO Event module from triggering a waveform.

The PSO Bit module reads the bit data from the drive array as a sequence of 32-bit words and consumes each word in a most significant bit (MSB) first fashion. When the module uses the 32nd bit of the active word, the module loads the next 32-bit word from the drive array.

When you use the mask functionality of the PSO Bit module, it is important to note that the module will apply the bit mask after all other configured PSO Event masking options have been applied. For example, if an active window state masking option prevents an input event from driving the output event of the PSO Event module, that event will not cause the PSO Bit module to update to the next bit value in the sequence, and therefore the bit mask will not be applied. Whenever the output event from the PSO Event module causes a PSO bit value update, the PSO bit module immediately masks the event with the new bit state, potentially preventing the PSO Event module output event from triggering a waveform.

Use the PsoBitmapConfigureArray() function to instruct the PSO Bit module to begin using data from the drive array as the sequence of bit values. Before you use this function, ensure that you have already written the desired bit values, in 32-bit words, to the drive array locations you specify with the $driveArrayStartIndex and $numberOfWords arguments. To write values to the drive array to be used as bit values, use the DriveArrayWrite() function and specify DriveArrayType.PsoBitmapBits as the $driveArrayType argument. For more information on writing values to the drive array, see the DriveArrayWrite() function in the Device Functions topic. When you use bit values from the drive array, the PSO Bit module uses the MSB of the first specified 32-bit word as the active bit. When the 32nd bit of the active word is used, the module uses the MSB of the next 32-bit word in the drive array as the active bit. The module continues using values in the drive array in this fashion until the configured number of bit value words is used. You can also use the $enableRepeat argument to instruct the module to use an infinite number of drive array values. In this mode, the module will return to the value at the $driveArrayStartIndex and use the same set of values again after the module uses the last bit value word in the drive array.

function PsoBitmapConfigureArray($axis as axis, $driveArrayStartAddress as integer, $numberOfPoints as integer, $enableRepeat as integer)

Configures an array of PSO bit data words, where each word is a 32-bit integer.

Arguments

$axis  The axis on which to configure the bit data.

$driveArrayStartAddress  The byte-addressable index of the drive array where the first word of bit data is stored.

$numberOfPoints  The number of bit data words to be read from the drive array.

$enableRepeat  Configures PSO to continue to use bit data words after the last word in the array is used, starting over at the first word.