<xs:element name="bitflow_config">
<xs:complexType>
<xs:sequence>
<xs:element name="camera" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="features" minOccurs="0">
<xs:complexType>
<xs:all>
<xs:element name="standard" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Indicates where this is a Camera Link or CoaXPress configuratoin file. This node is optional for CoaXPress (to allow for backward compatbility) but is manditory for CL models.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="CoaXPress" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="make" type="xs:string" minOccurs="1">
<xs:annotation>
<xs:documentation>The name of the camera manufacturer.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="model" type="xs:string" minOccurs="1">
<xs:annotation>
<xs:documentation>The model number and/or name of the camera.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="scan_type" minOccurs="0">
<xs:annotation>
<xs:documentation>This field indicates if the camera is a line scan or an area scan camera. Slightly different front end settings are needed for line scan cameras.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Area scan" />
<xs:enumeration value="Line scan" />
<xs:enumeration value="Area Scan" />
<xs:enumeration value="Line Scan" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="xsize" type="xs:string" minOccurs="1">
<xs:annotation>
<xs:documentation>The width of the image in pixels. This should be the maximum possible output width, i.e. the width of the sensor (not an ROI). Set to "Default" to get the XSize from the camera.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ysize" type="xs:string" minOccurs="1">
<xs:annotation>
<xs:documentation>The height of the image in lines. This should be the maximum possible output height, i.e. the height of the sensor (not an ROI). Set to "Default" to get the YSize from the camera.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="format" type="xs:string" minOccurs="1">
<xs:annotation>
<xs:documentation>This node describes the default Camera Link output tap format. This node should be in the standard CL tap format syntax:
[ZoneX]X[TapX][ExtX]-[ZoneY]Y[TapY][ExtY]
For example "2X2-1Y" means "Two zones (segments) eash with two interleave pixels"
Note: CoaXPress only supports the following formats
1X-1Y (Standard)
1X-2Y
1X-2YE</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="bitdepth" minOccurs="1">
<xs:annotation>
<xs:documentation>Number of bits per pixel. Set to "Default" to get the BitDepth from the camera.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="bitdepth_option" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Normal" />
<xs:enumeration value="RGBSwap" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="packed" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="no" />
<xs:enumeration value="yes" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="link_speed" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This speed to run the links. The system will run at the default link speed of the camera if the speed is not specified here.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Default" />
<xs:enumeration value="1.25" />
<xs:enumeration value="2.50" />
<xs:enumeration value="3.125" />
<xs:enumeration value="5.00" />
<xs:enumeration value="6.25" />
<xs:enumeration value="12.50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sync_mode" minOccurs="0">
<xs:annotation>
<xs:documentation>This item can be used to tell the driver to use an alternate CXP sync mode.
The following settings are supported:
Default - This mode uses the LinkReset register to reset the link and to determine when the link has been succesfully reset
LinkResetWO - This mode use the LinkReset register to reset the link but uses DeviceLinkID to determine when the link has been successfullyu reset
PreReset - Reset the channel before starting discovery
PreResetAndLinkResetWO - Both of the above two options</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Default" />
<xs:enumeration value="LinkResetWO" />
<xs:enumeration value="PreReset" />
<xs:enumeration value="PreResetAndLinkResetWO" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="acquisition_timeout" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>This timeout is used as the default timeout when the system is in free-running mode (i.e. not triggered). In this mode, the system expects to see an image from the camera or an error is raised. This timeout is only use in some applications.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="cxp_timeout" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>This is the amount of time to wait for the camera to respond after PoCXP power is applied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="link_align_timeout" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Amount of time in milliseconds to wait for the links to acheive alignment</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="num_links" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is the number of links used by this camera. Set to "Default" to get the number of links from the camera.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="stream_packet_data_size" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This optional node overrides the default CXP StreamPacketDataSize. Size is in Bytes. Default is 2048 bytes. Use with caution.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="control_packet_data_size" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This node overrides the default CXP ControlPacketDataSize. Size is in bytes. Default is set by the camera. Use with caution.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="control_packet_response_timeout" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This optionsl node overwrites the default CXP control packet response timeout. Units are milliseconds. Default is 300 msec. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="power_links" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>This item provides power control on a link by link basis. The following settings are supported:
default - power link or not as determine by the electrical characteristic of the link
disable - do not power link</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="cxp_discovery" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This token can be used to turn CXP discovery off for this camera. Turning CXP discovery off is for use in debugging camera comunications issues.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="on" />
<xs:enumeration value="off" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="aq_off_when_closing" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Set this token to 'on' to turn a CXP camera acquisition off when the board is closed. By default, this is not done.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="on" />
<xs:enumeration value="off" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="multi_line_chunk" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Use this element to support cameras that output to multiple frame grabbers and each frame grabber gets a chunk of lines. A chunk can be from 1 to N lines long.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="modes" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="mode" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:all>
<xs:element name="comments" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>This should be a short description of the mode. The mode comment is displayed in some application.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mode_roi" minOccurs="0">
<xs:annotation>
<xs:documentation>If this mode acquires a smaller resolution image than the camera puts out, this section can be used to specify the ROI.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element name="format" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This node describes the default Camera Link output tap format. This node should be in the standard CL tap format syntax:
[ZoneX]X[TapX][ExtX]-[ZoneY]Y[TapY][ExtY]
For example "2X2-1Y" means "Two zones (segments) eash with two interleave pixels"
Note: CoaXPress only supports the following formats
1X-1Y (Standard)
1X-2Y
1X-2YE</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="xsize" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Width of the ROI in pixels. Set to "Default" to get the XSize from the camera.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ysize" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Height of this ROI in lines. Set to "Default" to get the YSize from the camera.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="xoffset" type="xs:unsignedInt" minOccurs="0">
<xs:annotation>
<xs:documentation>X-Offset from the first pixel in the frame. Units are pixels.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="yoffset" type="xs:unsignedInt" minOccurs="0">
<xs:annotation>
<xs:documentation>Y-Offset from the first line in the image. Units are lines.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="bitdepth" minOccurs="0">
<xs:annotation>
<xs:documentation>This can be used to specify the pixel bit depth if this mode uses a different depth than the default. Set to "Default" to get the BitDepth from the camera.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="packed" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="no" />
<xs:enumeration value="yes" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="bitdepth_option" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Normal" />
<xs:enumeration value="RGBSwap" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="multi_line_chunk" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Use this element to support cameras that output to multiple frame grabbers and each frame grabber gets a chunk of lines. A chunk can be from 1 to N lines long.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="io" minOccurs="0">
<xs:annotation>
<xs:documentation>This section can be use to specify the I/O routing.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element name="trigger_src" minOccurs="0">
<xs:annotation>
<xs:documentation>This node selects the source of the internal trigger signal. The internal trigger signal can be routed to a number of different cicuits.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="source" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="None" />
<xs:enumeration value="Low" />
<xs:enumeration value="High" />
<xs:enumeration value="Diff" />
<xs:enumeration value="TTL" />
<xs:enumeration value="VFG0Trig" />
<xs:enumeration value="TSCT0" />
<xs:enumeration value="Button" />
<xs:enumeration value="CXPTrig" />
<xs:enumeration value="SoftwareTrig" />
<xs:enumeration value="ScanStep" />
<xs:enumeration value="VFG0TSCT0" />
<xs:enumeration value="BoxInTTL0" />
<xs:enumeration value="BoxInTTL1" />
<xs:enumeration value="BoxInTTL2" />
<xs:enumeration value="BoxInTTL3" />
<xs:enumeration value="BoxInTTL4" />
<xs:enumeration value="BoxInTTL5" />
<xs:enumeration value="BoxInTTL6" />
<xs:enumeration value="BoxInTTL7" />
<xs:enumeration value="BoxInTTL8" />
<xs:enumeration value="BoxInTTL9" />
<xs:enumeration value="BoxInTTL10" />
<xs:enumeration value="BoxInTTL11" />
<xs:enumeration value="BoxInDiff0" />
<xs:enumeration value="BoxInDiff1" />
<xs:enumeration value="BoxInDiff2" />
<xs:enumeration value="BoxInDiff3" />
<xs:enumeration value="BoxInDiff4" />
<xs:enumeration value="BoxInDiff5" />
<xs:enumeration value="BoxInDiff6" />
<xs:enumeration value="BoxInDiff7" />
<xs:enumeration value="BoxInDiff8" />
<xs:enumeration value="BoxInDiff9" />
<xs:enumeration value="BoxInDiff10" />
<xs:enumeration value="BoxInDiff11" />
<xs:enumeration value="BoxInOpto0" />
<xs:enumeration value="BoxInOpto1" />
<xs:enumeration value="BoxInOpto2" />
<xs:enumeration value="BoxInOpto3" />
<xs:enumeration value="BoxInOpto4" />
<xs:enumeration value="BoxInOpto5" />
<xs:enumeration value="BoxInOpto6" />
<xs:enumeration value="BoxInOpto7" />
<xs:enumeration value="BoxIn24V0" />
<xs:enumeration value="BoxIn24V1" />
<xs:enumeration value="BoxIn24V2" />
<xs:enumeration value="BoxIn24V3" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="encoder_a_src" minOccurs="0">
<xs:annotation>
<xs:documentation>This node selects the source of the internal encoder A signal. The internal encoder A signal can be routed to a number of different cicuits.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="source" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="None" />
<xs:enumeration value="Low" />
<xs:enumeration value="High" />
<xs:enumeration value="Diff" />
<xs:enumeration value="TTL" />
<xs:enumeration value="VFG0EncA" />
<xs:enumeration value="TSCT0" />
<xs:enumeration value="Button" />
<xs:enumeration value="CXPTrig" />
<xs:enumeration value="SoftwareEncA" />
<xs:enumeration value="VFG0TSCT0" />
<xs:enumeration value="BoxInTTL0" />
<xs:enumeration value="BoxInTTL1" />
<xs:enumeration value="BoxInTTL2" />
<xs:enumeration value="BoxInTTL3" />
<xs:enumeration value="BoxInTTL4" />
<xs:enumeration value="BoxInTTL5" />
<xs:enumeration value="BoxInTTL6" />
<xs:enumeration value="BoxInTTL7" />
<xs:enumeration value="BoxInTTL8" />
<xs:enumeration value="BoxInTTL9" />
<xs:enumeration value="BoxInTTL10" />
<xs:enumeration value="BoxInTTL11" />
<xs:enumeration value="BoxInDiff0" />
<xs:enumeration value="BoxInDiff1" />
<xs:enumeration value="BoxInDiff2" />
<xs:enumeration value="BoxInDiff3" />
<xs:enumeration value="BoxInDiff4" />
<xs:enumeration value="BoxInDiff5" />
<xs:enumeration value="BoxInDiff6" />
<xs:enumeration value="BoxInDiff7" />
<xs:enumeration value="BoxInDiff8" />
<xs:enumeration value="BoxInDiff9" />
<xs:enumeration value="BoxInDiff10" />
<xs:enumeration value="BoxInDiff11" />
<xs:enumeration value="BoxInOpto0" />
<xs:enumeration value="BoxInOpto1" />
<xs:enumeration value="BoxInOpto2" />
<xs:enumeration value="BoxInOpto3" />
<xs:enumeration value="BoxInOpto4" />
<xs:enumeration value="BoxInOpto5" />
<xs:enumeration value="BoxInOpto6" />
<xs:enumeration value="BoxInOpto7" />
<xs:enumeration value="BoxIn24V0" />
<xs:enumeration value="BoxIn24V1" />
<xs:enumeration value="BoxIn24V2" />
<xs:enumeration value="BoxIn24V3" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="encoder_b_src" minOccurs="0">
<xs:annotation>
<xs:documentation>This node selects the source of the internal encoder B signal. The internal encoder B signal can be routed to a number of different cicuits.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="source" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="None" />
<xs:enumeration value="Low" />
<xs:enumeration value="High" />
<xs:enumeration value="Diff" />
<xs:enumeration value="TTL" />
<xs:enumeration value="VFG0EncB" />
<xs:enumeration value="TSCT0" />
<xs:enumeration value="Button" />
<xs:enumeration value="CXPTrig" />
<xs:enumeration value="SoftwareEncB" />
<xs:enumeration value="VFG0TSCT0" />
<xs:enumeration value="BoxInTTL0" />
<xs:enumeration value="BoxInTTL1" />
<xs:enumeration value="BoxInTTL2" />
<xs:enumeration value="BoxInTTL3" />
<xs:enumeration value="BoxInTTL4" />
<xs:enumeration value="BoxInTTL5" />
<xs:enumeration value="BoxInTTL6" />
<xs:enumeration value="BoxInTTL7" />
<xs:enumeration value="BoxInTTL8" />
<xs:enumeration value="BoxInTTL9" />
<xs:enumeration value="BoxInTTL10" />
<xs:enumeration value="BoxInTTL11" />
<xs:enumeration value="BoxInDiff0" />
<xs:enumeration value="BoxInDiff1" />
<xs:enumeration value="BoxInDiff2" />
<xs:enumeration value="BoxInDiff3" />
<xs:enumeration value="BoxInDiff4" />
<xs:enumeration value="BoxInDiff5" />
<xs:enumeration value="BoxInDiff6" />
<xs:enumeration value="BoxInDiff7" />
<xs:enumeration value="BoxInDiff8" />
<xs:enumeration value="BoxInDiff9" />
<xs:enumeration value="BoxInDiff10" />
<xs:enumeration value="BoxInDiff11" />
<xs:enumeration value="BoxInOpto0" />
<xs:enumeration value="BoxInOpto1" />
<xs:enumeration value="BoxInOpto2" />
<xs:enumeration value="BoxInOpto3" />
<xs:enumeration value="BoxInOpto4" />
<xs:enumeration value="BoxInOpto5" />
<xs:enumeration value="BoxInOpto6" />
<xs:enumeration value="BoxInOpto7" />
<xs:enumeration value="BoxIn24V0" />
<xs:enumeration value="BoxIn24V1" />
<xs:enumeration value="BoxIn24V2" />
<xs:enumeration value="BoxIn24V3" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="cc1_src" minOccurs="0">
<xs:annotation>
<xs:documentation>This node selects the source of the output signal CC1.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="source" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="None" />
<xs:enumeration value="Low" />
<xs:enumeration value="High" />
<xs:enumeration value="CT0" />
<xs:enumeration value="CT1" />
<xs:enumeration value="CT2" />
<xs:enumeration value="CT3" />
<xs:enumeration value="TrigSel" />
<xs:enumeration value="EncASel" />
<xs:enumeration value="EncBSel" />
<xs:enumeration value="VFG0CT0" />
<xs:enumeration value="VFG0CT1" />
<xs:enumeration value="VFG0CT2" />
<xs:enumeration value="VFG0CT3" />
<xs:enumeration value="EncoderDivider" />
<xs:enumeration value="EncoderQuadrature" />
<xs:enumeration value="AuxCT0" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="cc2_src" minOccurs="0">
<xs:annotation>
<xs:documentation>This node selects the source of the output signal CC2.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="source" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="None" />
<xs:enumeration value="Low" />
<xs:enumeration value="High" />
<xs:enumeration value="CT0" />
<xs:enumeration value="CT1" />
<xs:enumeration value="CT2" />
<xs:enumeration value="CT3" />
<xs:enumeration value="TrigSel" />
<xs:enumeration value="EncASel" />
<xs:enumeration value="EncBSel" />
<xs:enumeration value="VFG0CT0" />
<xs:enumeration value="VFG0CT1" />
<xs:enumeration value="VFG0CT2" />
<xs:enumeration value="VFG0CT3" />
<xs:enumeration value="EncoderDivider" />
<xs:enumeration value="EncoderQuadrature" />
<xs:enumeration value="AuxCT0" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="cc3_src" minOccurs="0">
<xs:annotation>
<xs:documentation>This node selects the source of the output signal CC3.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="source" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Low" />
<xs:enumeration value="High" />
<xs:enumeration value="CT0" />
<xs:enumeration value="CT1" />
<xs:enumeration value="CT2" />
<xs:enumeration value="CT3" />
<xs:enumeration value="TrigSel" />
<xs:enumeration value="EncASel" />
<xs:enumeration value="EncBSel" />
<xs:enumeration value="VFG0CT0" />
<xs:enumeration value="VFG0CT1" />
<xs:enumeration value="VFG0CT2" />
<xs:enumeration value="VFG0CT3" />
<xs:enumeration value="EncoderDivider" />
<xs:enumeration value="EncoderQuadrature" />
<xs:enumeration value="AuxCT0" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="cc4_src" minOccurs="0">
<xs:annotation>
<xs:documentation>This node selects the source of the output signal CC4.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="source" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Low" />
<xs:enumeration value="High" />
<xs:enumeration value="CT0" />
<xs:enumeration value="CT1" />
<xs:enumeration value="CT2" />
<xs:enumeration value="CT3" />
<xs:enumeration value="TrigSel" />
<xs:enumeration value="EncASel" />
<xs:enumeration value="EncBSel" />
<xs:enumeration value="VFG0CT0" />
<xs:enumeration value="VFG0CT1" />
<xs:enumeration value="VFG0CT2" />
<xs:enumeration value="VFG0CT3" />
<xs:enumeration value="EncoderDivider" />
<xs:enumeration value="EncoderQuadrature" />
<xs:enumeration value="AuxCT0" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="acquisition_timeout" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>This node can be use to set the acquisition timeout for this mode.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="bitbox" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Contains BitBox routing instructions</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="bbx_out_route" minOccurs="1" maxOccurs="72">
<xs:annotation>
<xs:documentation>One routing instruction with a source and a destination</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="source">
<xs:annotation>
<xs:documentation>Source for the routing instruction</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Low" />
<xs:enumeration value="High" />
<xs:enumeration value="VFG0CC1" />
<xs:enumeration value="VFG0CC2" />
<xs:enumeration value="VFG0CC3" />
<xs:enumeration value="VFG0CC4" />
<xs:enumeration value="VFG1CC1" />
<xs:enumeration value="VFG1CC2" />
<xs:enumeration value="VFG1CC3" />
<xs:enumeration value="VFG1CC4" />
<xs:enumeration value="VFG2CC1" />
<xs:enumeration value="VFG2CC2" />
<xs:enumeration value="VFG2CC3" />
<xs:enumeration value="VFG2CC4" />
<xs:enumeration value="VFG3CC1" />
<xs:enumeration value="VFG3CC2" />
<xs:enumeration value="VFG3CC3" />
<xs:enumeration value="VFG3CC4" />
<xs:enumeration value="VFG0ATSCT0" />
<xs:enumeration value="VFG0ATSCT1" />
<xs:enumeration value="VFG0ATSCT2" />
<xs:enumeration value="VFG0ATSCT3" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="destination">
<xs:annotation>
<xs:documentation>Destination for the routing instruction</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="BoxOutTTL0" />
<xs:enumeration value="BoxOutTTL1" />
<xs:enumeration value="BoxOutTTL2" />
<xs:enumeration value="BoxOutTTL3" />
<xs:enumeration value="BoxOutTTL4" />
<xs:enumeration value="BoxOutTTL5" />
<xs:enumeration value="BoxOutTTL6" />
<xs:enumeration value="BoxOutTTL7" />
<xs:enumeration value="BoxOutTTL8" />
<xs:enumeration value="BoxOutTTL9" />
<xs:enumeration value="BoxOutTTL10" />
<xs:enumeration value="BoxOutTTL11" />
<xs:enumeration value="BoxOutDiff0" />
<xs:enumeration value="BoxOutDiff1" />
<xs:enumeration value="BoxOutDiff2" />
<xs:enumeration value="BoxOutDiff3" />
<xs:enumeration value="BoxOutDiff4" />
<xs:enumeration value="BoxOutDiff5" />
<xs:enumeration value="BoxOutDiff6" />
<xs:enumeration value="BoxOutDiff7" />
<xs:enumeration value="BoxOutDiff8" />
<xs:enumeration value="BoxOutDiff9" />
<xs:enumeration value="BoxOutDiff10" />
<xs:enumeration value="BoxOutDiff11" />
<xs:enumeration value="BoxOutOpto0" />
<xs:enumeration value="BoxOutOpto1" />
<xs:enumeration value="BoxOutOpto2" />
<xs:enumeration value="BoxOutOpto3" />
<xs:enumeration value="BoxOutOpto4" />
<xs:enumeration value="BoxOutOpto5" />
<xs:enumeration value="BoxOutOpto6" />
<xs:enumeration value="BoxOutOpto7" />
<xs:enumeration value="BoxOutOC0" />
<xs:enumeration value="BoxOutOC1" />
<xs:enumeration value="BoxOutOC2" />
<xs:enumeration value="BoxOutOC3" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="bitflow_regs" minOccurs="0">
<xs:annotation>
<xs:documentation>This sections lists registers on the frame grabber that need to be set different than the default. These registers are written after the board is initialized.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element name="reg" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="address" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This should be the name (e.g. CL_CHAN_EN) of the register in the frame grabber that you wish to modify.
The "data" field will be written to this is address.
Note that this can also be the word "delay", in which case the "data" field will be a delay in milliseconds.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="data" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This contains the value that will be written to the "address" field above.
If the address field is set to "delay" this this field contains the number of milliseconds to wait.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="comment" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="device_commands" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>An ordered list of commands</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="command" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Entry defining a single command operation</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element name="feature" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Name or address to be set</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Value to set</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="comment" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>An arbitrary description of the command</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute name="interface">
<xs:annotation>
<xs:documentation>The target or device on which the command operates</xs:documentation>
<xs:appinfo>order:0</xs:appinfo>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="camera_gentl" />
<xs:enumeration value="bitflow_reg" />
<xs:enumeration value="cxp_reg" />
<xs:enumeration value="bitflow_control" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="invoke">
<xs:annotation>
<xs:documentation>Specifies when the command will be invoked</xs:documentation>
<xs:appinfo>order:1</xs:appinfo>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="after_setup" />
<xs:enumeration value="before_setup" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cxp_regs_before" minOccurs="0">
<xs:annotation>
<xs:documentation>This section lists registers on the camera that need to be written to camera before re-configuration of the acquisition system. Often these are used to stop the camera from outputting frames.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="reg" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="address" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This should be the address (in hex) of the register in the camera that you wish to modify.
The "data" field will be written to this is address.
Note that this can also be the word "delay", in which case the "data" field will be a delay in milliseconds.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="data" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This contains the value that will be written to the "address" field above.
If the address field is set to "delay" this this field contains the number of milliseconds to wait.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="comment" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cxp_regs_after" minOccurs="0">
<xs:annotation>
<xs:documentation>This section lists registers on the camera that need to be written to camera after re-configuration of the acquisition system. Usually one of these items starts the camera outputting frames.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="reg" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="address" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This should be the address (in hex) of the register in the camera that you wish to modify.
The "data" field will be written to this is address.
Note that this can also be the word "delay", in which case the "data" field will be a delay in milliseconds.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="data" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This contains the value that will be written to the "address" field above.
If the address field is set to "delay" this this field contains the number of milliseconds to wait.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="comment" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="timing_sequencer" minOccurs="0">
<xs:annotation>
<xs:documentation>This section is used to program the timing sequencer for this mode. The timing sequencer is made up of a sequence of segments.
Each segments lasts for a fixed period of time, set by the ts_period. Each segment sets the state of one of the internal control signals.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ts_segment" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>This holds the parameters for one segment. Each segment can be triggered or not.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ts_period" type="xs:decimal" minOccurs="0">
<xs:annotation>
<xs:documentation>This is the duration of this segment in milliseconds.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ts_ct0_state" minOccurs="0">
<xs:annotation>
<xs:documentation>The is the state of the CT0 output. It must be 0 (low) or 1 (high). </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:unsignedByte">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ts_ct1_state" minOccurs="0">
<xs:annotation>
<xs:documentation>The is the state of the CT1 output. It must be 0 (low) or 1 (high). </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:unsignedByte">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ts_ct2_state" minOccurs="0">
<xs:annotation>
<xs:documentation>The is the state of the CT2 output. It must be 0 (low) or 1 (high). </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:unsignedByte">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ts_ct3_state" minOccurs="0">
<xs:annotation>
<xs:documentation>The is the state of the CT3 output. It must be 0 (low) or 1 (high). </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:unsignedByte">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="trigger" use="optional">
<xs:annotation>
<xs:documentation>What part of the trigger signal will cause this segment to execute. Use "NoWait" if you want this segment to automatically execute.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="NoWait" />
<xs:enumeration value="RisingEdge" />
<xs:enumeration value="FallingEdge" />
<xs:enumeration value="High" />
<xs:enumeration value="Low" />
<xs:enumeration value="EitherEdge" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="trigger_source" use="optional">
<xs:annotation>
<xs:appinfo>order:0</xs:appinfo>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="TrigSel" />
<xs:enumeration value="EncASel" />
<xs:enumeration value="EncBSel" />
<xs:enumeration value="EncoderQuadrature" />
<xs:enumeration value="GatedTrigger" />
<xs:enumeration value="EncoderDivider" />
<xs:enumeration value="StartOfFrame" />
<xs:enumeration value="StartOfLine" />
<xs:enumeration value="EndOfFrame" />
<xs:enumeration value="EndOfLine" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="timing_sequencer_aux" minOccurs="0">
<xs:annotation>
<xs:documentation>This section is used to program the auxiliary timing sequencer for this mode. The timing sequencer is made up of a sequence of segments.
Each segments lasts for a fixed period of time, set by the ts_period. Each segment sets the state of one of the internal control signals.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ts_segment" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>This holds the parameters for one segment. Each segment can be triggered or not.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ts_period" type="xs:decimal" minOccurs="0">
<xs:annotation>
<xs:documentation>This is the duration of this segment in milliseconds.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ts_ct0_state" minOccurs="0">
<xs:annotation>
<xs:documentation>The is the state of the CT0 output. It must be 0 (low) or 1 (high). </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:unsignedByte">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ts_ct1_state" minOccurs="0">
<xs:annotation>
<xs:documentation>The is the state of the CT1 output. It must be 0 (low) or 1 (high). </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:unsignedByte">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ts_ct2_state" minOccurs="0">
<xs:annotation>
<xs:documentation>The is the state of the CT2 output. It must be 0 (low) or 1 (high). </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:unsignedByte">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ts_ct3_state" minOccurs="0">
<xs:annotation>
<xs:documentation>The is the state of the CT3 output. It must be 0 (low) or 1 (high). </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:unsignedByte">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="trigger" use="optional">
<xs:annotation>
<xs:documentation>What part of the trigger signal will cause this segment to execute. Use "NoWait" if you want this segment to automatically execute.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="NoWait" />
<xs:enumeration value="RisingEdge" />
<xs:enumeration value="FallingEdge" />
<xs:enumeration value="High" />
<xs:enumeration value="Low" />
<xs:enumeration value="EitherEdge" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="trigger_source" use="optional">
<xs:annotation>
<xs:appinfo>order:0</xs:appinfo>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="TrigSel" />
<xs:enumeration value="EncASel" />
<xs:enumeration value="EncBSel" />
<xs:enumeration value="EncoderQuadrature" />
<xs:enumeration value="GatedTrigger" />
<xs:enumeration value="EncoderDivider" />
<xs:enumeration value="StartOfFrame" />
<xs:enumeration value="StartOfLine" />
<xs:enumeration value="EndOfFrame" />
<xs:enumeration value="EndOfLine" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="name" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>This should be a short name for the mode.
Note: spaces are not allowed</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
|