7. The processing chain 81
The following example shows how to enable the LineEncoderPosition32 chunk data eld (the same
procedure can be done for FrameEncoderPosition32):
Example Code 7.6 | Enable encoder position chunk data
device.EnableChunkData = true;
device.EnableChunkDataField(ChunkDataField.LineEncoderPosition32);
A 16-bit unsigned versionof the encoder position can be retrievedenabling LineEncoderPosition16
instead of LineEncoderPosition32.
7.2.5 Input Status
The InputStatusis the input status biteld, sampled at the line-start trigger event (LineInputStatus)
or at the rst line-start trigger event (FrameInputStatus) of the acquired frame.
Example Code 7.7 | Enable input status chunk data captured at frame-start trigger event
device.EnableChunkData = true;
device.EnableChunkDataField(ChunkDataField.FrameInputStatus);
7.2.6 Conguration example
Example Code 7.8 | Congure chunk data, capture a frame and display the relevant data
// Enable chunk data transmission
device.EnableChunkData = true;
device.SetEnabledChunkDataFields(new ChunkDataField[] {
ChunkDataField.FrameNumber,
ChunkDataField.FrameTimeStamp,
ChunkDataField.LineNumber,
ChunkDataField.LineEncoderPosition,
ChunkDataField.LineInputStatus
});
// Start acquisition
device.Acquire = true;
// Wait for a frame and extract chunk data
var objPair = device.GetImageChunk(true);
var chunkData = objPair.Second;
Debug.WriteLine("Frame number: " + chunkData.FrameNumber);
Debug.WriteLine("Timestamp: " + chunkData.FrameTimeStamp);
foreach (var line in chunkData.Lines)
{
Debug.WriteLine("Line number: " + line.LineNumber);
Debug.WriteLine(" Encoder: " + line.LineEncoderPosition);
for (byte i = 0; i < line.LineInputStatus.Length; i++)
Debug.WriteLine(
" Input[" + i.ToString() + "]: " + line.LineInputStatus[i]
);
}