<?xml version="1.0" encoding="UTF-8"?>
<ModeConfig version="1">
  <Enabled>1</Enabled>
  <DaughterboardModel>2</DaughterboardModel>
  <LocalDigitalInputCount>1</LocalDigitalInputCount>
  <NetworkDigitalInputCount>4</NetworkDigitalInputCount>
  <HasExternalTempProbe>0</HasExternalTempProbe>
  <MainTempProbe>1</MainTempProbe>
  <ErrorRecoveryEnabled>1</ErrorRecoveryEnabled>
  <EventManagers>
    <EventManager>
      <Type>1</Type>
      <Enabled>1</Enabled>
      <Control>1</Control>
      <ControlId>0</ControlId>
      <Domain>1</Domain>
      <EncoderMode>4</EncoderMode>
      <Offset>0</Offset>
      <Count>1</Count>
      <Period>204800000</Period>
      <AutoPeriodEnabled>0</AutoPeriodEnabled>
      <GateEnabled>0</GateEnabled>
    </EventManager>
    <EventManager>
      <Type>2</Type>
      <Enabled>1</Enabled>
      <Control>2</Control>
      <ControlId>0</ControlId>
      <Domain>1</Domain>
      <EncoderMode>4</EncoderMode>
      <Offset>0</Offset>
      <Count>1</Count>
      <Period>204800000</Period>
      <AutoPeriodEnabled>0</AutoPeriodEnabled>
      <GateEnabled>0</GateEnabled>
    </EventManager>
    <EventManager>
      <Type>2</Type>
      <Enabled>1</Enabled>
      <Control>2</Control>
      <ControlId>0</ControlId>
      <Domain>1</Domain>
      <EncoderMode>4</EncoderMode>
      <Offset>0</Offset>
      <Count>1</Count>
      <Period>204800000</Period>
      <AutoPeriodEnabled>0</AutoPeriodEnabled>
      <GateEnabled>0</GateEnabled>
    </EventManager>
  </EventManagers>
  <Cameras>
    <Camera>
      <Model>2</Model>
      <Capabilities>
        <RamImage>1</RamImage>
        <Prnu>0</Prnu>
        <Fpn>0</Fpn>
        <SpotSort>0</SpotSort>
        <RangeLut8k>0</RangeLut8k>
        <RangeLut16k>0</RangeLut16k>
      </Capabilities>
      <PixelClockFrequency>215040000</PixelClockFrequency>
      <Algorithm>0</Algorithm>
      <Enabled>1</Enabled>
      <IsConnected>1</IsConnected>
      <Control>1</Control>
      <ControlId>0</ControlId>
      <InputCounterSource>1</InputCounterSource>
      <InputCounterSourceId>0</InputCounterSourceId>
      <RamImageEnabled>0</RamImageEnabled>
      <PrnuEnabled>0</PrnuEnabled>
      <FpnEnabled>0</FpnEnabled>
      <Extensions />
      <States>
        <State>
          <Left>0</Left>
          <Top>0</Top>
          <Width>1280</Width>
          <Height>1024</Height>
          <XSubsampling>1</XSubsampling>
          <XSubsamplingMode>1</XSubsamplingMode>
          <YSubsampling>1</YSubsampling>
          <YSubsamplingMode>1</YSubsamplingMode>
          <InvertX>0</InvertX>
          <InvertY>0</InvertY>
          <AutoBlackEnabled>1</AutoBlackEnabled>
          <BlackLevel>0</BlackLevel>
          <GainRed>0</GainRed>
          <GainGreen0>0</GainGreen0>
          <GainGreen1>0</GainGreen1>
          <GainBlue>0</GainBlue>
          <GainAnalog>0</GainAnalog>
          <GainDigital>128</GainDigital>
          <KneePoints />
          <ExposureMode>1</ExposureMode>
          <MaxBatchSize>0</MaxBatchSize>
          <Delay>0</Delay>
          <Exposure>102400000</Exposure>
          <Gap>1024000</Gap>
          <AutoGapEnabled>0</AutoGapEnabled>
          <AlgorithmEnabled>0</AlgorithmEnabled>
          <RamImageCount>1</RamImageCount>
        </State>
      </States>
    </Camera>
    <Camera>
      <Model>2</Model>
      <Capabilities>
        <RamImage>1</RamImage>
        <Prnu>0</Prnu>
        <Fpn>0</Fpn>
        <SpotSort>0</SpotSort>
        <RangeLut8k>0</RangeLut8k>
        <RangeLut16k>0</RangeLut16k>
      </Capabilities>
      <PixelClockFrequency>215040000</PixelClockFrequency>
      <Algorithm>0</Algorithm>
      <Enabled>0</Enabled>
      <IsConnected>0</IsConnected>
      <Control>1</Control>
      <ControlId>0</ControlId>
      <InputCounterSource>1</InputCounterSource>
      <InputCounterSourceId>0</InputCounterSourceId>
      <RamImageEnabled>0</RamImageEnabled>
      <PrnuEnabled>0</PrnuEnabled>
      <FpnEnabled>0</FpnEnabled>
      <Extensions />
      <States>
        <State>
          <Left>0</Left>
          <Top>0</Top>
          <Width>1280</Width>
          <Height>1024</Height>
          <XSubsampling>1</XSubsampling>
          <XSubsamplingMode>1</XSubsamplingMode>
          <YSubsampling>1</YSubsampling>
          <YSubsamplingMode>1</YSubsamplingMode>
          <InvertX>0</InvertX>
          <InvertY>0</InvertY>
          <AutoBlackEnabled>1</AutoBlackEnabled>
          <BlackLevel>0</BlackLevel>
          <GainRed>0</GainRed>
          <GainGreen0>0</GainGreen0>
          <GainGreen1>0</GainGreen1>
          <GainBlue>0</GainBlue>
          <GainAnalog>0</GainAnalog>
          <GainDigital>128</GainDigital>
          <KneePoints />
          <ExposureMode>1</ExposureMode>
          <MaxBatchSize>0</MaxBatchSize>
          <Delay>0</Delay>
          <Exposure>102400000</Exposure>
          <Gap>1024000</Gap>
          <AutoGapEnabled>0</AutoGapEnabled>
          <AlgorithmEnabled>0</AlgorithmEnabled>
          <RamImageCount>1</RamImageCount>
        </State>
      </States>
    </Camera>
  </Cameras>
  <Lights />
  <Projectors>
    <Projector>
      <Model>1</Model>
      <PixelClockFrequency>68056615.38</PixelClockFrequency>
      <Enabled>1</Enabled>
      <IsConnected>1</IsConnected>
      <Control>1</Control>
      <ControlId>0</ControlId>
      <FrameCount>1</FrameCount>
      <PatternMode>1</PatternMode>
      <Palette0>0</Palette0>
      <Palette1>255</Palette1>
      <Extensions />
      <States>
        <State>
          <Intensity>90</Intensity>
          <Exposure>2000000</Exposure>
          <Gap>1024000</Gap>
          <AutoGapEnabled>0</AutoGapEnabled>
        </State>
      </States>
    </Projector>
  </Projectors>
  <AnalogOutputs>
    <Analog>
      <Enabled>1</Enabled>
      <Control>1</Control>
      <ControlId>0</ControlId>
      <CalA0>0</CalA0>
      <CalA1>1</CalA1>
      <AnalogOutModel>1</AnalogOutModel>
    </Analog>
  </AnalogOutputs>
  <DigitalOutputs>
    <Digital>
      <Enabled>1</Enabled>
      <Control>1</Control>
      <ControlId>0</ControlId>
      <Polarity>1</Polarity>
      <Delay>0</Delay>
      <Exposure>0</Exposure>
      <Gap>0</Gap>
    </Digital>
    <Digital>
      <Enabled>1</Enabled>
      <Control>1</Control>
      <ControlId>0</ControlId>
      <Polarity>1</Polarity>
      <Delay>0</Delay>
      <Exposure>0</Exposure>
      <Gap>0</Gap>
    </Digital>
  </DigitalOutputs>
  <SerialOutputs>
    <Serial>
      <Enabled>1</Enabled>
      <Control>2</Control>
      <ControlId>0</ControlId>
      <Mode>1</Mode>
      <BitRate>115200</BitRate>
    </Serial>
  </SerialOutputs>
  <Encoder>
    <SnapshotSource>4</SnapshotSource>
    <SnapshotSourceId>0</SnapshotSourceId>
  </Encoder>
  <Pipe>
    <Engine>1</Engine>
    <ThreadCount>1</ThreadCount>
    <QueueCapacity>8388608</QueueCapacity>
    <MaxQueueSize>8388608</MaxQueueSize>
    <MaxQueueCount>4096</MaxQueueCount>
    <UserBlockTypes>
      <Type>
        <Name>kInvertBlock</Name>
        <Description>Allows the kImage pixel values of the message to be inverted when inversion is enabled.</Description>
      </Type>
      <Type>
        <Name>kForwardBlock</Name>
        <Description>Forwards messages from input port N to output port N.</Description>
      </Type>
      <Type>
        <Name>GvSurfaceEdgeBlock</Name>
        <Description>Surface edge measurements</Description>
      </Type>
      <Type>
        <Name>GvSurfaceCSHoleBlock</Name>
        <Description>Surface bounding box measurements</Description>
      </Type>
      <Type>
        <Name>GvSurfaceEllipseBlock</Name>
        <Description>Surface ellipse measurements</Description>
      </Type>
      <Type>
        <Name>GvSurfaceRotationBlock</Name>
        <Description>Surface rotation</Description>
      </Type>
      <Type>
        <Name>GvSurfaceBoundingBoxBlock</Name>
        <Description>Surface bounding box measurements</Description>
      </Type>
      <Type>
        <Name>GvSurfaceRadialBlock</Name>
        <Description>Surface Radial Inspection</Description>
      </Type>
      <Type>
        <Name>GvSurfaceStudBlock</Name>
        <Description>Surface Stud Location</Description>
      </Type>
      <Type>
        <Name>GvSurfaceOpeningBlock</Name>
        <Description>Surface hole location</Description>
      </Type>
      <Type>
        <Name>GvSurfacePositionBlock</Name>
        <Description>Surface position measurements</Description>
      </Type>
      <Type>
        <Name>GvSurfacePlaneBlock</Name>
        <Description>Surface bounding box measurements</Description>
      </Type>
      <Type>
        <Name>GvPartEdgeSmoothBlock</Name>
        <Description>Surface bounding box measurements</Description>
      </Type>
      <Type>
        <Name>GvPartMatchBoxBlock</Name>
        <Description>Bounding box part matching</Description>
      </Type>
      <Type>
        <Name>GvSurfaceResampleBlock</Name>
        <Description>Resample raw surface data to height map</Description>
      </Type>
      <Type>
        <Name>GvPartMatchBlock</Name>
        <Description>Match edges</Description>
      </Type>
      <Type>
        <Name>GvSurfaceGapFillBlock</Name>
        <Description>Surface filter</Description>
      </Type>
      <Type>
        <Name>GvSurfaceSubsampleBlock</Name>
        <Description>GvSurfaceSubsample</Description>
      </Type>
      <Type>
        <Name>GvSurfaceAlignBlock</Name>
        <Description>Surface plane alignment</Description>
      </Type>
      <Type>
        <Name>GvSurfaceMultiFilterBlock</Name>
        <Description>GvSurfaceMultiFilter</Description>
      </Type>
      <Type>
        <Name>GvSurfaceFilterBlock</Name>
        <Description>Surface filter</Description>
      </Type>
      <Type>
        <Name>GvGateBlock</Name>
        <Description>Performs gating.</Description>
      </Type>
      <Type>
        <Name>GvInputGateBlock</Name>
        <Description>Performs input gating.</Description>
      </Type>
      <Type>
        <Name>GvCombineFramesBlock</Name>
        <Description>Frame combiner block</Description>
      </Type>
      <Type>
        <Name>GvSpotFilterBlock</Name>
        <Description>Gocator transform block</Description>
      </Type>
      <Type>
        <Name>GvProfileClipBlock</Name>
        <Description>Profile clipper</Description>
      </Type>
      <Type>
        <Name>GvMeasurementStatsBlock</Name>
        <Description>Measurement mean, standard deviation, minimum, and maximum</Description>
      </Type>
      <Type>
        <Name>GvInvertImageBlock</Name>
        <Description>Gocator invert image block</Description>
      </Type>
      <Type>
        <Name>GvSorterBlock</Name>
        <Description>Receives frames from multiple inputs and outputs sequences in numerical order.</Description>
      </Type>
      <Type>
        <Name>GvSeqBlock</Name>
        <Description>Gocator sequencing block</Description>
      </Type>
      <Type>
        <Name>GvPartSelectorBlock</Name>
        <Description>Surface part selector block</Description>
      </Type>
      <Type>
        <Name>GvBandwidthFilterBlock</Name>
        <Description>Bandwidth Filter</Description>
      </Type>
      <Type>
        <Name>HdrBlock</Name>
        <Description>Create HDR image</Description>
      </Type>
      <Type>
        <Name>GvProfileMergeBlock</Name>
        <Description>Combines multiple raw profiles into a single array</Description>
      </Type>
      <Type>
        <Name>ProfileFilterBlock</Name>
        <Description>ProfileFilter</Description>
      </Type>
      <Type>
        <Name>GvSurfaceVolumeBlock</Name>
        <Description>Surface volume, area, and thickness measurements</Description>
      </Type>
      <Type>
        <Name>MergeSampledBlock</Name>
        <Description>Combines multiple resampled profiles into a single array</Description>
      </Type>
      <Type>
        <Name>GvForwardBlock</Name>
        <Description>Gocator forward block</Description>
      </Type>
      <Type>
        <Name>GvTransformBlock</Name>
        <Description>Gocator transform block</Description>
      </Type>
      <Type>
        <Name>GvStripeBlock</Name>
        <Description>Gocator stripe stereo block</Description>
      </Type>
      <Type>
        <Name>GvProfileAlignStationaryBlock</Name>
        <Description>Performs 2D tilt and offset correction using a calibration bar</Description>
      </Type>
      <Type>
        <Name>GvProfileAlignBarBlock</Name>
        <Description>Performs 2D tilt, offset correction and establishes object travel resolution using a bar calibration target</Description>
      </Type>
      <Type>
        <Name>GvProfileResampleBlock</Name>
        <Description>Resamples raw profile data to an even X interval</Description>
      </Type>
      <Type>
        <Name>GvProfileMatchBlock</Name>
        <Description>Aligns profile data to a captured template</Description>
      </Type>
      <Type>
        <Name>GvProfileSurfaceBlock</Name>
        <Description>Produce a surface from profiles</Description>
      </Type>
      <Type>
        <Name>GvProfileDualMergeBlock</Name>
        <Description>GvProfileDualMerge</Description>
      </Type>
      <Type>
        <Name>GvProfileDualDriftBlock</Name>
        <Description>GvProfileDualDrift</Description>
      </Type>
      <Type>
        <Name>GvProfileAlignDiskBlock</Name>
        <Description>Performs 2D tilt, offset correction and establishes object travel resolution using a disk calibration target</Description>
      </Type>
      <Type>
        <Name>GvRangeMeasureBlock</Name>
        <Description>Range measurements</Description>
      </Type>
      <Type>
        <Name>GvRangePartBlock</Name>
        <Description>Produce 1D parts from ranges</Description>
      </Type>
      <Type>
        <Name>GvRangeProfileBlock</Name>
        <Description>Produce a profile from ranges</Description>
      </Type>
      <Type>
        <Name>GvRangeAlignStationaryBlock</Name>
        <Description>Performs range offset correction</Description>
      </Type>
      <Type>
        <Name>GvRangeAlignMovingBlock</Name>
        <Description>Performs z offset correction and establishes object travel resolution using a bar calibration target</Description>
      </Type>
      <Type>
        <Name>GvProfileGapFillBlock</Name>
        <Description>GvProfileGapFill</Description>
      </Type>
      <Type>
        <Name>GvProfileSubsampleBlock</Name>
        <Description>GvProfileSubsample</Description>
      </Type>
      <Type>
        <Name>GvProfileBlock</Name>
        <Description>Converts spot data into ranges</Description>
      </Type>
      <Type>
        <Name>GvProfileMultiFilterBlock</Name>
        <Description>GvProfileMultiFilter</Description>
      </Type>
      <Type>
        <Name>GvProfileFilterBlock</Name>
        <Description>GvProfileFilter</Description>
      </Type>
      <Type>
        <Name>GvProfilePanelBlock</Name>
        <Description>Gap and flush measurement</Description>
      </Type>
      <Type>
        <Name>GvProfileStripBlock</Name>
        <Description>Finds flat strips</Description>
      </Type>
      <Type>
        <Name>GvProfile1DPartBlock</Name>
        <Description>Produce 1D parts a profile</Description>
      </Type>
      <Type>
        <Name>GvSurfacePartBlock</Name>
        <Description>Segment contiguous parts from surface</Description>
      </Type>
      <Type>
        <Name>GvPartModelBlock</Name>
        <Description>Find and save part edges</Description>
      </Type>
      <Type>
        <Name>GvProfilePartBlock</Name>
        <Description>Segment contiguous parts from profiles</Description>
      </Type>
      <Type>
        <Name>GvProfilePartSeqBlock</Name>
        <Description>Arranges multiple resampled profiles into format compatible with PartMeasureBlock</Description>
      </Type>
      <Type>
        <Name>GvProfileBridgeValueBlock</Name>
        <Description>Calculate bridge value</Description>
      </Type>
      <Type>
        <Name>GvProfileCircleBlock</Name>
        <Description>Performs a circle fit on designated regions within one or two profiles</Description>
      </Type>
      <Type>
        <Name>GvProfileDifferenceBlock</Name>
        <Description>Finds the maximum or area of the difference between a profile and the corresponding template.</Description>
      </Type>
      <Type>
        <Name>GvProfileAreaBlock</Name>
        <Description>Finds the area of a region of the profile</Description>
      </Type>
      <Type>
        <Name>GvProfileBoxBlock</Name>
        <Description>Bounding box of profile data</Description>
      </Type>
      <Type>
        <Name>GvProfileLineBlock</Name>
        <Description>Determines the deviation of profile points from a line</Description>
      </Type>
      <Type>
        <Name>GvProfileIntersectBlock</Name>
        <Description>Finds the intersection of two lines</Description>
      </Type>
      <Type>
        <Name>GvProfilePositionBlock</Name>
        <Description>Finds the position of a feature in a profile</Description>
      </Type>
      <Type>
        <Name>GvProfileDimensionBlock</Name>
        <Description>Finds the position of a feature in a profile</Description>
      </Type>
      <Type>
        <Name>GvProfileGrooveBlock</Name>
        <Description>Finds and measures grooves in profiles</Description>
      </Type>
      <Type>
        <Name>kMp3dTracheidBlock</Name>
        <Description>Converts spots centroid values into image moments and ranges</Description>
      </Type>
      <Type>
        <Name>kS3dStripeBlock</Name>
        <Description>Stripe stereo profiling block</Description>
      </Type>
      <Type>
        <Name>kL3dDetectionBlock</Name>
        <Description>Accumulates live range data into an evenly resampled height map</Description>
      </Type>
      <Type>
        <Name>kL3dLineCalBlock</Name>
        <Description>Assembles spot data from multiple lines and views into a single formatted 2D array</Description>
      </Type>
      <Type>
        <Name>kL3dRangesBlock</Name>
        <Description>Translates spots data into ranges</Description>
      </Type>
      <Type>
        <Name>kL3dSpotsBlock</Name>
        <Description>Translates Image, FpgaSpot, FpgaCG and FpgaCG2 to kSpot</Description>
      </Type>
      <Type>
        <Name>kL3dLineSamplerBlock</Name>
        <Description>Resamples input point cloud range data from one or multiple views to an even X step</Description>
      </Type>
      <Type>
        <Name>kL3dPrnuBlock</Name>
        <Description>Performs Pixel-by-Pixel correction</Description>
      </Type>
      <Type>
        <Name>GsTestBlock</Name>
        <Description>Gocator test block</Description>
      </Type>
      <Type>
        <Name>GsRangeDetectorBlock</Name>
        <Description>Range Detector</Description>
      </Type>
      <Type>
        <Name>GsToolBlock</Name>
        <Description>Tool Runner</Description>
      </Type>
      <Type>
        <Name>GsMeasurementFilterBlock</Name>
        <Description>Measurement Filter</Description>
      </Type>
    </UserBlockTypes>
    <UserBlocks />
    <Routes />
  </Pipe>
  <Actions>
    <ActionTypes>
      <Type>
        <Name>kStartAction</Name>
        <Description>Starts the local node or the entire system of nodes.</Description>
      </Type>
      <Type>
        <Name>kL3dLutAction</Name>
        <Description>Write FPGA lut using L3d calibration file.</Description>
      </Type>
      <Type>
        <Name>kP3dLutAction</Name>
        <Description>Write FPGA lut using P3d calibration file.</Description>
      </Type>
      <Type>
        <Name>kP3dFpnAction</Name>
        <Description>Write FPN using P3d calibration file.</Description>
      </Type>
    </ActionTypes>
    <Actions />
  </Actions>
  <Net>
    <DataOut>
      <PortCount>1</PortCount>
      <QueueCapacity>8388608</QueueCapacity>
      <MaxQueueSize>8388608</MaxQueueSize>
      <MaxQueueCount>4096</MaxQueueCount>
    </DataOut>
    <DataIn>
      <Ports />
    </DataIn>
    <Health />
  </Net>
</ModeConfig>
