pylon

package
v0.0.0-...-2e23759 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 9, 2020 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Specialized very simple Registry of call-backs to support frame grabbing. It follows the idea of https://github.com/golang/go/wiki/cgo Perhaps, more generic https://github.com/yamnikov-oleg/cgo-callback is better Check for `export`ed `Go_fetch_callback` function.

EPixelType is an `enum` (i.e. `int`). It is supposed to have 32 bits like 0xabCD1234 where 0xab000000 is "pixel class" (mono/color/custom), 0x00CD0000 is "pixel width" (bits per pixel), and 0x00001234 is "pixel subtype" (just serial number). See $PYLON_HOME/include/pylon/PixelType.h for details

Provide a mean to inject EXIF metadata into fresh image *before* writing

As the `RetrieveAndSave` does not work for me. So, I follow the code from $PYLON_HOME/Samples/C++/Grab/Grab.cpp - it works. Plus, I prefer to handle grabbed image on "application level" and not bury it hardcoded somewhere in C++ underpants. So, the callback implementation.

Save to .JPEG using vanilla Go library

Save to .JPEG using MagicWand from ImageMagick
* Use as:
*
*	mw := im_setup(); defer im_cleanup(mw)
*	...
*	if e := im_save2jpeg(mw, ...); if e != nil { t.Fatalf("save: %v", e); }
*	...
*

converted from $PYLON_HOME/include/pylon/PixelType.h

Index

Constants

View Source
const (
	PixelType_Undefined = EPixelType(0x0ffffffff)

	PixelType_Mono8        = EPixelType(eptMn | ept08 | 0x0001)
	PixelType_Mono8signed  = EPixelType(eptMn | ept08 | 0x0002)
	PixelType_Mono10       = EPixelType(eptMn | ept16 | 0x0003)
	PixelType_Mono10packed = EPixelType(eptMn | ept12 | 0x0004)
	PixelType_Mono10p      = EPixelType(eptMn | ept10 | 0x0046)
	PixelType_Mono12       = EPixelType(eptMn | ept16 | 0x0005)
	PixelType_Mono12packed = EPixelType(eptMn | ept12 | 0x0006)
	PixelType_Mono12p      = EPixelType(eptMn | ept12 | 0x0047)
	PixelType_Mono16       = EPixelType(eptMn | ept16 | 0x0007)

	PixelType_BayerGR8 = EPixelType(eptMn | ept08 | 0x0008)
	PixelType_BayerRG8 = EPixelType(eptMn | ept08 | 0x0009)
	PixelType_BayerGB8 = EPixelType(eptMn | ept08 | 0x000a)
	PixelType_BayerBG8 = EPixelType(eptMn | ept08 | 0x000b)

	PixelType_Mono1packed = EPixelType(eptCM | ept01 | 0x000c)
	PixelType_Mono2packed = EPixelType(eptCM | ept02 | 0x000d)
	PixelType_Mono4packed = EPixelType(eptCM | ept04 | 0x000e)

	PixelType_BayerGR10 = EPixelType(eptMn | ept16 | 0x000c)
	PixelType_BayerRG10 = EPixelType(eptMn | ept16 | 0x000d)
	PixelType_BayerGB10 = EPixelType(eptMn | ept16 | 0x000e)
	PixelType_BayerBG10 = EPixelType(eptMn | ept16 | 0x000f)

	PixelType_BayerGR12 = EPixelType(eptMn | ept16 | 0x0010)
	PixelType_BayerRG12 = EPixelType(eptMn | ept16 | 0x0011)
	PixelType_BayerGB12 = EPixelType(eptMn | ept16 | 0x0012)
	PixelType_BayerBG12 = EPixelType(eptMn | ept16 | 0x0013)

	PixelType_RGB8packed = EPixelType(eptCr | ept24 | 0x0014)
	PixelType_BGR8packed = EPixelType(eptCr | ept24 | 0x0015)

	PixelType_RGBA8packed = EPixelType(eptCr | ept32 | 0x0016)
	PixelType_BGRA8packed = EPixelType(eptCr | ept32 | 0x0017)

	PixelType_RGB10packed = EPixelType(eptCr | ept48 | 0x0018)
	PixelType_BGR10packed = EPixelType(eptCr | ept48 | 0x0019)

	PixelType_RGB12packed = EPixelType(eptCr | ept48 | 0x001a)
	PixelType_BGR12packed = EPixelType(eptCr | ept48 | 0x001b)

	PixelType_RGB16packed = EPixelType(eptCr | ept48 | 0x0033)

	PixelType_BGR10V1packed = EPixelType(eptCr | ept32 | 0x001c)
	PixelType_BGR10V2packed = EPixelType(eptCr | ept32 | 0x001d)

	PixelType_YUV411packed = EPixelType(eptCr | ept12 | 0x001e)
	PixelType_YUV422packed = EPixelType(eptCr | ept16 | 0x001f)
	PixelType_YUV444packed = EPixelType(eptCr | ept24 | 0x0020)

	PixelType_RGB8planar  = EPixelType(eptCr | ept24 | 0x0021)
	PixelType_RGB10planar = EPixelType(eptCr | ept48 | 0x0022)
	PixelType_RGB12planar = EPixelType(eptCr | ept48 | 0x0023)
	PixelType_RGB16planar = EPixelType(eptCr | ept48 | 0x0024)

	PixelType_YUV422_YUYV_Packed = EPixelType(eptCr | ept16 | 0x0032)
	PixelType_YUV444planar       = EPixelType(eptCC | ept24 | 0x0044)
	PixelType_YUV422planar       = EPixelType(eptCC | ept16 | 0x0042)
	PixelType_YUV420planar       = EPixelType(eptCC | ept12 | 0x0040)

	PixelType_YCbCr422_8_YY_CbCr_Semiplanar = EPixelType(eptCr | ept16 | 0x0113)
	PixelType_YCbCr420_8_YY_CbCr_Semiplanar = EPixelType(eptCr | ept12 | 0x0112)

	PixelType_BayerGR12Packed = EPixelType(eptMn | ept12 | 0x002A)
	PixelType_BayerRG12Packed = EPixelType(eptMn | ept12 | 0x002B)
	PixelType_BayerGB12Packed = EPixelType(eptMn | ept12 | 0x002C)
	PixelType_BayerBG12Packed = EPixelType(eptMn | ept12 | 0x002D)

	PixelType_BayerGR10p = EPixelType(eptMn | ept10 | 0x0056)
	PixelType_BayerRG10p = EPixelType(eptMn | ept10 | 0x0058)
	PixelType_BayerGB10p = EPixelType(eptMn | ept10 | 0x0054)
	PixelType_BayerBG10p = EPixelType(eptMn | ept10 | 0x0052)

	PixelType_BayerGR12p = EPixelType(eptMn | ept12 | 0x0057)
	PixelType_BayerRG12p = EPixelType(eptMn | ept12 | 0x0059)
	PixelType_BayerGB12p = EPixelType(eptMn | ept12 | 0x0055)
	PixelType_BayerBG12p = EPixelType(eptMn | ept12 | 0x0053)

	PixelType_BayerGR16 = EPixelType(eptMn | ept16 | 0x002E)
	PixelType_BayerRG16 = EPixelType(eptMn | ept16 | 0x002F)
	PixelType_BayerGB16 = EPixelType(eptMn | ept16 | 0x0030)
	PixelType_BayerBG16 = EPixelType(eptMn | ept16 | 0x0031)

	PixelType_RGB12V1packed = EPixelType(eptCr | ept36 | 0x0034)

	PixelType_Double = EPixelType(eptCM | ept48 | 0x0100)
)
View Source
const (
	PCF_BayerRG   = iota ///<red green
	PCF_BayerGB          ///<green blue
	PCF_BayerGR          ///<green red
	PCF_BayerBG          ///<blue green
	PCF_Undefined        ///< undefined color filter or not applicable
)
View Source
const JpegFileSuffix = ".jpg"
View Source
const MAX_REG = 128

I do not want uncontrolled growth of the Registry. So, impose the limit.

Variables

View Source
var (

	// SequenceControl - This category includes items that control the sequencer feature
	SequenceEnable         = Param{Name: "SequenceEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the sequencer.", Group: SequenceControl}
	SequenceAsyncRestart   = Param{Name: "SequenceAsyncRestart", OriginalType: OriginalTypeGenApiICommand, Description: "Allows asynchronous restart of the sequence of sequence sets.", Group: SequenceControl}
	SequenceAsyncAdvance   = Param{Name: "SequenceAsyncAdvance", OriginalType: OriginalTypeGenApiICommand, Description: "Allows asynchronous advance from one sequence set to the next.", Group: SequenceControl}
	SequenceCurrentSet     = Param{Name: "SequenceCurrentSet", OriginalType: OriginalTypeGenApiIInteger, Description: "Current sequence set.", Group: SequenceControl}
	SequenceSetTotalNumber = Param{Name: "SequenceSetTotalNumber", OriginalType: OriginalTypeGenApiIInteger, Description: "Total number of sequence sets.", Group: SequenceControl}
	SequenceSetIndex       = Param{Name: "SequenceSetIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Selects the index number of a sequence set.", Group: SequenceControl}
	SequenceSetLoad        = Param{Name: "SequenceSetLoad", OriginalType: OriginalTypeGenApiICommand, Description: "Loads a sequence set.", Group: SequenceControl}
	SequenceSetStore       = Param{Name: "SequenceSetStore", OriginalType: OriginalTypeGenApiICommand, Description: "Stores the current sequence set.", Group: SequenceControl}
	SequenceSetExecutions  = Param{Name: "SequenceSetExecutions", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the number of sequence set executions.", Group: SequenceControl}

	// SequenceControlConfiguration - This category includes items that control the sequence set advance
	SequenceAdvanceMode        = Param{Name: "SequenceAdvanceMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the sequence set advance mode.", Group: SequenceControlConfiguration, OriginalEnumType: "SequenceAdvanceModeEnums"}
	SequenceControlSelector    = Param{Name: "SequenceControlSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects between sequence restart or sequence set advance.", Group: SequenceControlConfiguration, OriginalEnumType: "SequenceControlSelectorEnums"}
	SequenceControlSource      = Param{Name: "SequenceControlSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the source for sequence control.", Group: SequenceControlConfiguration, OriginalEnumType: "SequenceControlSourceEnums"}
	SequenceAddressBitSelector = Param{Name: "SequenceAddressBitSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects a bit of the sequence set address.", Group: SequenceControlConfiguration, OriginalEnumType: "SequenceAddressBitSelectorEnums"}
	SequenceAddressBitSource   = Param{Name: "SequenceAddressBitSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the source for the selected bit of the sequence set address.", Group: SequenceControlConfiguration, OriginalEnumType: "SequenceAddressBitSourceEnums"}

	// AnalogControls - This category includes items that control the analog characteristics of the video signal
	GainAuto           = Param{Name: "GainAuto", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Gain Auto is the 'automatic' counterpart of the manual gain feature.", Group: AnalogControls, OriginalEnumType: "GainAutoEnums"}
	GainRaw            = Param{Name: "GainRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "This is an integer value that sets the selected gain control in device specific units.", Group: AnalogControls}
	GainAbs            = Param{Name: "GainAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "This is a float value that sets the selected gain control in dB.", Group: AnalogControls}
	GainSelector       = Param{Name: "GainSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the gain control to configure.", Group: AnalogControls, OriginalEnumType: "GainSelectorEnums"}
	BlackLevelRaw      = Param{Name: "BlackLevelRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the value of the selected black level control as an integer.", Group: AnalogControls}
	BlackLevelAbs      = Param{Name: "BlackLevelAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the value of the selected black level control as a float.", Group: AnalogControls}
	BlackLevelSelector = Param{Name: "BlackLevelSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selcts a black level control to configure.", Group: AnalogControls, OriginalEnumType: "BlackLevelSelectorEnums"}
	GammaEnable        = Param{Name: "GammaEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the gamma correction.", Group: AnalogControls}
	GammaSelector      = Param{Name: "GammaSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "This enumeration selects the type of gamma to apply.", Group: AnalogControls, OriginalEnumType: "GammaSelectorEnums"}
	Gamma              = Param{Name: "Gamma", OriginalType: OriginalTypeGenApiIFloat, Description: "This feature is used to perform gamma correction of pixel intensity.", Group: AnalogControls}
	DigitalShift       = Param{Name: "DigitalShift", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the value of the selected digital shift control.", Group: AnalogControls}
	SubstrateVoltage   = Param{Name: "SubstrateVoltage", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the substrate voltage.", Group: AnalogControls}

	// ImageFormat - This category includes items that control the size of the acquired image and the format of the transferred pixel data
	PixelFormat                   = Param{Name: "PixelFormat", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the format of the pixel data transmitted for acquired images.", Group: ImageFormat, OriginalEnumType: "PixelFormatEnums"}
	PixelCoding                   = Param{Name: "PixelCoding", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the color coding of the pixels in the acquired images.", Group: ImageFormat, OriginalEnumType: "PixelCodingEnums"}
	PixelSize                     = Param{Name: "PixelSize", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Indicates the depth of the pixel values in the image in bits per pixel.", Group: ImageFormat, OriginalEnumType: "PixelSizeEnums"}
	PixelColorFilter              = Param{Name: "PixelColorFilter", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Indicates the alignment of the camera's Bayer filter to the pixels in the acquired images.", Group: ImageFormat, OriginalEnumType: "PixelColorFilterEnums"}
	ProcessedRawEnable            = Param{Name: "ProcessedRawEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables color improved RGB raw output.", Group: ImageFormat}
	SpatialCorrection             = Param{Name: "SpatialCorrection", OriginalType: OriginalTypeGenApiIInteger, Description: "Specifies the direction of imaging and the separation (consecutive numbers) of related line captures.", Group: ImageFormat}
	SpatialCorrectionAmount       = Param{Name: "SpatialCorrectionAmount", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Invisible", Group: ImageFormat}
	SpatialCorrectionStartingLine = Param{Name: "SpatialCorrectionStartingLine", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "<b>Visibility</b> = Invisible", Group: ImageFormat, OriginalEnumType: "SpatialCorrectionStartingLineEnums"}
	SensorBitDepth                = Param{Name: "SensorBitDepth", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "This feature selects the amount of data bits the sensor produces for one sample.", Group: ImageFormat, OriginalEnumType: "SensorBitDepthEnums"}
	ReverseX                      = Param{Name: "ReverseX", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the horizontal flipping of the image.", Group: ImageFormat}
	ReverseY                      = Param{Name: "ReverseY", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the vertical flipping of the image.", Group: ImageFormat}
	PixelDynamicRangeMin          = Param{Name: "PixelDynamicRangeMin", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the minimum possible pixel value that could be transferred from the camera.", Group: ImageFormat}
	PixelDynamicRangeMax          = Param{Name: "PixelDynamicRangeMax", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the maximum possible pixel value that could be transferred from the camera.", Group: ImageFormat}
	FieldOutputMode               = Param{Name: "FieldOutputMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the mode to output the fields.", Group: ImageFormat, OriginalEnumType: "FieldOutputModeEnums"}
	TestImageSelector             = Param{Name: "TestImageSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selecting a test image from the list will enable the test image.", Group: ImageFormat, OriginalEnumType: "TestImageSelectorEnums"}
	SensorDigitizationTaps        = Param{Name: "SensorDigitizationTaps", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "This feature represents the number of digitized samples outputted simultaneously by the camera A/D conversion stage.", Group: ImageFormat, OriginalEnumType: "SensorDigitizationTapsEnums"}

	// DeviceInformation - This category includes items that describe the device and its sensor
	SensorWidth            = Param{Name: "SensorWidth", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the width of the camera's sensor in pixels.", Group: DeviceInformation}
	SensorHeight           = Param{Name: "SensorHeight", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the height of the camera's sensor in pixels.", Group: DeviceInformation}
	WidthMax               = Param{Name: "WidthMax", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the maximum allowed width of the image in pixels.", Group: DeviceInformation}
	HeightMax              = Param{Name: "HeightMax", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the maximum allowed height of the image in pixels.", Group: DeviceInformation}
	DeviceVendorName       = Param{Name: "DeviceVendorName", OriginalType: OriginalTypeGenApiIString, Description: "Indicates the name of the device's vendor.", Group: DeviceInformation}
	DeviceModelName        = Param{Name: "DeviceModelName", OriginalType: OriginalTypeGenApiIString, Description: "Indicates the model name of the device.", Group: DeviceInformation}
	DeviceManufacturerInfo = Param{Name: "DeviceManufacturerInfo", OriginalType: OriginalTypeGenApiIString, Description: "Provides additional information from the vendor about the device.", Group: DeviceInformation}
	DeviceVersion          = Param{Name: "DeviceVersion", OriginalType: OriginalTypeGenApiIString, Description: "Indicates the version of the device.", Group: DeviceInformation}
	DeviceFirmwareVersion  = Param{Name: "DeviceFirmwareVersion", OriginalType: OriginalTypeGenApiIString, Description: "Indicates the version of the device's firmware and software.", Group: DeviceInformation}
	DeviceID               = Param{Name: "DeviceID", OriginalType: OriginalTypeGenApiIString, Description: "A unique identifier for the device such as a serial number or a GUID.", Group: DeviceInformation}
	DeviceUserID           = Param{Name: "DeviceUserID", OriginalType: OriginalTypeGenApiIString, Description: "A device ID that is user programmable.", Group: DeviceInformation}
	DeviceReset            = Param{Name: "DeviceReset", OriginalType: OriginalTypeGenApiICommand, Description: "Immediately resets and reboots the device.", Group: DeviceInformation}
	DeviceScanType         = Param{Name: "DeviceScanType", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Indicates the scan type of the device's sensor.", Group: DeviceInformation, OriginalEnumType: "DeviceScanTypeEnums"}
	LastError              = Param{Name: "LastError", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Indicates the error that was detected last.", Group: DeviceInformation, OriginalEnumType: "LastErrorEnums"}
	ClearLastError         = Param{Name: "ClearLastError", OriginalType: OriginalTypeGenApiICommand, Description: "Erases the last error and possibly reveals a previous error.", Group: DeviceInformation}
	TemperatureSelector    = Param{Name: "TemperatureSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Lists the temperature sources available for readout.", Group: DeviceInformation, OriginalEnumType: "TemperatureSelectorEnums"}
	TemperatureAbs         = Param{Name: "TemperatureAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Shows the current temperature of the selected target in degrees centigrade.", Group: DeviceInformation}
	TemperatureState       = Param{Name: "TemperatureState", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Temperature State.", Group: DeviceInformation, OriginalEnumType: "TemperatureStateEnums"}
	CriticalTemperature    = Param{Name: "CriticalTemperature", OriginalType: OriginalTypeGenApiIBoolean, Description: "Shows the over temperature state of the selected target.", Group: DeviceInformation}
	OverTemperature        = Param{Name: "OverTemperature", OriginalType: OriginalTypeGenApiIBoolean, Description: "Shows the over temperature state of the selected target.", Group: DeviceInformation}

	// ColorImprovementsControl - This category includes items that control color improvement
	ColorTransformationSelector        = Param{Name: "ColorTransformationSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the matrix color transformation between color spaces.", Group: ColorImprovementsControl, OriginalEnumType: "ColorTransformationSelectorEnums"}
	LightSourceSelector                = Param{Name: "LightSourceSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the type of light source to be considered for matrix color transformation.", Group: ColorImprovementsControl, OriginalEnumType: "LightSourceSelectorEnums"}
	ColorTransformationMatrixFactor    = Param{Name: "ColorTransformationMatrixFactor", OriginalType: OriginalTypeGenApiIFloat, Description: "Defines the extent to which the selected light source will be considered (float)", Group: ColorImprovementsControl}
	ColorTransformationMatrixFactorRaw = Param{Name: "ColorTransformationMatrixFactorRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Defines the extent to which the selected light source will be considered (integer)", Group: ColorImprovementsControl}
	ColorTransformationValueSelector   = Param{Name: "ColorTransformationValueSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the element to be entered in the color transformation matrix.", Group: ColorImprovementsControl, OriginalEnumType: "ColorTransformationValueSelectorEnums"}
	ColorTransformationValue           = Param{Name: "ColorTransformationValue", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets a floating point value for the selected element in the color transformation matrix.", Group: ColorImprovementsControl}
	ColorTransformationValueRaw        = Param{Name: "ColorTransformationValueRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets an integer value for the selected element in the color transformation matrix.", Group: ColorImprovementsControl}
	ColorAdjustmentEnable              = Param{Name: "ColorAdjustmentEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables color adjustment.", Group: ColorImprovementsControl}
	ColorAdjustmentReset               = Param{Name: "ColorAdjustmentReset", OriginalType: OriginalTypeGenApiICommand, Description: "Allows returning to previous settings.", Group: ColorImprovementsControl}
	ColorAdjustmentSelector            = Param{Name: "ColorAdjustmentSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the color for color adjustment.", Group: ColorImprovementsControl, OriginalEnumType: "ColorAdjustmentSelectorEnums"}
	ColorAdjustmentHue                 = Param{Name: "ColorAdjustmentHue", OriginalType: OriginalTypeGenApiIFloat, Description: "Adjustment of hue of the selected color (float)", Group: ColorImprovementsControl}
	ColorAdjustmentHueRaw              = Param{Name: "ColorAdjustmentHueRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Adjustment of hue of the selected color (integer)", Group: ColorImprovementsControl}
	ColorAdjustmentSaturation          = Param{Name: "ColorAdjustmentSaturation", OriginalType: OriginalTypeGenApiIFloat, Description: "Adjustment of saturation of the selected color (float)", Group: ColorImprovementsControl}
	ColorAdjustmentSaturationRaw       = Param{Name: "ColorAdjustmentSaturationRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Adjustment of saturation of the selected color (integer)", Group: ColorImprovementsControl}
	BalanceWhiteReset                  = Param{Name: "BalanceWhiteReset", OriginalType: OriginalTypeGenApiICommand, Description: "Allows returning to previous settings.", Group: ColorImprovementsControl}
	BalanceWhiteAuto                   = Param{Name: "BalanceWhiteAuto", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Balance White Auto is the 'automatic' counterpart of the manual white balance feature.", Group: ColorImprovementsControl, OriginalEnumType: "BalanceWhiteAutoEnums"}
	BalanceRatioSelector               = Param{Name: "BalanceRatioSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects a balance ratio to configure.", Group: ColorImprovementsControl, OriginalEnumType: "BalanceRatioSelectorEnums"}
	BalanceRatioAbs                    = Param{Name: "BalanceRatioAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the value of the selected balance ratio control as a float.", Group: ColorImprovementsControl}
	BalanceRatioRaw                    = Param{Name: "BalanceRatioRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the value of the selected balance ratio control as an integer.", Group: ColorImprovementsControl}

	// AOI - This category includes items used to set the size and position of the area of interest
	Width                 = Param{Name: "Width", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the width of the area of interest in pixels.", Group: AOI}
	Height                = Param{Name: "Height", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the height of the area of interest in pixels.", Group: AOI}
	OffsetX               = Param{Name: "OffsetX", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the X offset (left offset) of the area of interest in pixels.", Group: AOI}
	OffsetY               = Param{Name: "OffsetY", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the Y offset (top offset) for the area of interest in pixels.", Group: AOI}
	CenterX               = Param{Name: "CenterX", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the horizontal centering of the image.", Group: AOI}
	CenterY               = Param{Name: "CenterY", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the vertical centering of the image.", Group: AOI}
	BinningModeVertical   = Param{Name: "BinningModeVertical", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the vertical binning mode.", Group: AOI, OriginalEnumType: "BinningModeVerticalEnums"}
	BinningModeHorizontal = Param{Name: "BinningModeHorizontal", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the horizontal binning mode.", Group: AOI, OriginalEnumType: "BinningModeHorizontalEnums"}
	BinningVertical       = Param{Name: "BinningVertical", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the number of adjacent vertical pixes to be summed.", Group: AOI}
	BinningHorizontal     = Param{Name: "BinningHorizontal", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the number of adjacent horizontal pixes to be summed.", Group: AOI}
	LegacyBinningVertical = Param{Name: "LegacyBinningVertical", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the vertical binning feature.", Group: AOI, OriginalEnumType: "LegacyBinningVerticalEnums"}
	DecimationVertical    = Param{Name: "DecimationVertical", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets vertical sub-sampling.", Group: AOI}
	DecimationHorizontal  = Param{Name: "DecimationHorizontal", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets horizontal sub-sampling.", Group: AOI}

	// StackedZoneImaging -
	StackedZoneImagingEnable      = Param{Name: "StackedZoneImagingEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the stacked zone imaging feature.", Group: StackedZoneImaging}
	StackedZoneImagingIndex       = Param{Name: "StackedZoneImagingIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "This value sets the zone to access.", Group: StackedZoneImaging}
	StackedZoneImagingZoneEnable  = Param{Name: "StackedZoneImagingZoneEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the selected zone.", Group: StackedZoneImaging}
	StackedZoneImagingZoneOffsetY = Param{Name: "StackedZoneImagingZoneOffsetY", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the Y offset (top offset) for the selected zone.", Group: StackedZoneImaging}
	StackedZoneImagingZoneHeight  = Param{Name: "StackedZoneImagingZoneHeight", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the height for the selected zone.", Group: StackedZoneImaging}

	// AcquisitionTrigger - This category includes items used to set the image acquisition parameters and to start and stop acquisition
	EnableBurstAcquisition       = Param{Name: "EnableBurstAcquisition", OriginalType: OriginalTypeGenApiIBoolean, Description: "When enabled, the maximum frame rate does not depend on the image transfer rate out of the camera.", Group: AcquisitionTrigger}
	AcquisitionMode              = Param{Name: "AcquisitionMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the image acquisition mode.", Group: AcquisitionTrigger, OriginalEnumType: "AcquisitionModeEnums"}
	AcquisitionStart             = Param{Name: "AcquisitionStart", OriginalType: OriginalTypeGenApiICommand, Description: "Starts the acquisition of images.", Group: AcquisitionTrigger}
	AcquisitionStop              = Param{Name: "AcquisitionStop", OriginalType: OriginalTypeGenApiICommand, Description: "Stops the acquisition of images.", Group: AcquisitionTrigger}
	AcquisitionAbort             = Param{Name: "AcquisitionAbort", OriginalType: OriginalTypeGenApiICommand, Description: "Immediately aborts the acquisition of images.", Group: AcquisitionTrigger}
	AcquisitionFrameCount        = Param{Name: "AcquisitionFrameCount", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the number of frames acquired in the multiframe acquisition mode.", Group: AcquisitionTrigger}
	TriggerControlImplementation = Param{Name: "TriggerControlImplementation", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "<b>Visibility</b> = Expert", Group: AcquisitionTrigger, OriginalEnumType: "TriggerControlImplementationEnums"}
	TriggerSelector              = Param{Name: "TriggerSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the trigger type to configure.", Group: AcquisitionTrigger, OriginalEnumType: "TriggerSelectorEnums"}
	TriggerMode                  = Param{Name: "TriggerMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the mode for the selected trigger.", Group: AcquisitionTrigger, OriginalEnumType: "TriggerModeEnums"}
	TriggerSoftware              = Param{Name: "TriggerSoftware", OriginalType: OriginalTypeGenApiICommand, Description: "Generates a software trigger signal that is used when the trigger source is set to 'software'.", Group: AcquisitionTrigger}
	TriggerSource                = Param{Name: "TriggerSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the signal source for the selected trigger.", Group: AcquisitionTrigger, OriginalEnumType: "TriggerSourceEnums"}
	TriggerActivation            = Param{Name: "TriggerActivation", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the signal transition needed to activate the selected trigger.", Group: AcquisitionTrigger, OriginalEnumType: "TriggerActivationEnums"}
	TriggerPartialClosingFrame   = Param{Name: "TriggerPartialClosingFrame", OriginalType: OriginalTypeGenApiIBoolean, Description: "Determines whether a partial or complete frame is transmitted when the frame start trigger prematurely transitions.", Group: AcquisitionTrigger}
	TriggerDelayAbs              = Param{Name: "TriggerDelayAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the trigger delay time in microseconds.", Group: AcquisitionTrigger}
	TriggerDelaySource           = Param{Name: "TriggerDelaySource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the kind of trigger delay.", Group: AcquisitionTrigger, OriginalEnumType: "TriggerDelaySourceEnums"}
	TriggerDelayLineTriggerCount = Param{Name: "TriggerDelayLineTriggerCount", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the trigger delay expressed as number of line triggers.", Group: AcquisitionTrigger}
	ExposureStartDelayRaw        = Param{Name: "ExposureStartDelayRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Beginner", Group: AcquisitionTrigger}
	ExposureStartDelayAbs        = Param{Name: "ExposureStartDelayAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "<b>Visibility</b> = Beginner", Group: AcquisitionTrigger}
	ExposureAuto                 = Param{Name: "ExposureAuto", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Exposure Auto is the 'automatic' counterpart to manually setting an 'absolute' exposure time.", Group: AcquisitionTrigger, OriginalEnumType: "ExposureAutoEnums"}
	ExposureTimeRaw              = Param{Name: "ExposureTimeRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the 'raw' exposure time.", Group: AcquisitionTrigger}
	ExposureTimeAbs              = Param{Name: "ExposureTimeAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Directly sets the camera's exposure time in microseconds.", Group: AcquisitionTrigger}
	ExposureTimeBaseAbs          = Param{Name: "ExposureTimeBaseAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the time base (in microseconds) that is used when the exposure time is set with the 'exposure time raw' setting.", Group: AcquisitionTrigger}
	ExposureTimeBaseAbsEnable    = Param{Name: "ExposureTimeBaseAbsEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the use of the exposure time base.", Group: AcquisitionTrigger}
	AcquisitionLineRateAbs       = Param{Name: "AcquisitionLineRateAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the camera's acquisition line rate in lines per second.", Group: AcquisitionTrigger}
	ResultingLinePeriodAbs       = Param{Name: "ResultingLinePeriodAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Indicates the minimum allowed line acquisition period (in microseconds) given the current settings for the area of interest, exposure time, and bandwidth.", Group: AcquisitionTrigger}
	ResultingLineRateAbs         = Param{Name: "ResultingLineRateAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Indicates the maximum allowed line acquisition rate (in lines per second) given the current settings for the area of interest, exposure time, and bandwidth.", Group: AcquisitionTrigger}
	AcquisitionFrameRateAbs      = Param{Name: "AcquisitionFrameRateAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "If the acquisition frame rate feature is enabled, this value sets the camera's acquisition frame rate in frames per second.", Group: AcquisitionTrigger}
	AcquisitionFrameRateEnable   = Param{Name: "AcquisitionFrameRateEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables setting the camera's acquisition frame rate to a specified value.", Group: AcquisitionTrigger}
	ResultingFramePeriodAbs      = Param{Name: "ResultingFramePeriodAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Indicates the minimum allowed frame acquisition period (in microseconds) given the current settings for the area of interest, exposure time, and bandwidth.", Group: AcquisitionTrigger}
	ResultingFrameRateAbs        = Param{Name: "ResultingFrameRateAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Indicates the maximum allowed frame acquisition rate (in frames per second) given the current settings for the area of interest, exposure time, and bandwidth.", Group: AcquisitionTrigger}
	ExposureMode                 = Param{Name: "ExposureMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the exposure mode.", Group: AcquisitionTrigger, OriginalEnumType: "ExposureModeEnums"}
	GlobalResetReleaseModeEnable = Param{Name: "GlobalResetReleaseModeEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enable the Global Reset Release Mode.", Group: AcquisitionTrigger}
	ShutterMode                  = Param{Name: "ShutterMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the shutter mode.", Group: AcquisitionTrigger, OriginalEnumType: "ShutterModeEnums"}
	ExposureOverlapTimeMaxRaw    = Param{Name: "ExposureOverlapTimeMaxRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the maximum overlap of the sensor exposure with the sensor readout in TriggerWidth exposure mode in raw units.", Group: AcquisitionTrigger}
	InterlacedIntegrationMode    = Param{Name: "InterlacedIntegrationMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the Interlaced Integration Mode.", Group: AcquisitionTrigger, OriginalEnumType: "InterlacedIntegrationModeEnums"}
	ExposureOverlapTimeMaxAbs    = Param{Name: "ExposureOverlapTimeMaxAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the maximum overlap of the sensor exposure with sensor readout in TriggerWidth exposure mode in microseconds.", Group: AcquisitionTrigger}
	ReadoutTimeAbs               = Param{Name: "ReadoutTimeAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Indicates the sensor readout time given the current settings.", Group: AcquisitionTrigger}
	AcquisitionStatusSelector    = Param{Name: "AcquisitionStatusSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "This enumeration is used to select which internal acquisition signal to read using AcquisitionStatus.", Group: AcquisitionTrigger, OriginalEnumType: "AcquisitionStatusSelectorEnums"}
	AcquisitionStatus            = Param{Name: "AcquisitionStatus", OriginalType: OriginalTypeGenApiIBoolean, Description: "Reads the selected acquisition status.", Group: AcquisitionTrigger}
	FrameTimeoutEnable           = Param{Name: "FrameTimeoutEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the frame timeout.", Group: AcquisitionTrigger}
	FrameTimeoutAbs              = Param{Name: "FrameTimeoutAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the frame timeout in microseconds.", Group: AcquisitionTrigger}

	// DigitalIO - This category includes items used to control the operation of the camera's digital I/O lines
	LineSelector           = Param{Name: "LineSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the I/O line to configure.", Group: DigitalIO, OriginalEnumType: "LineSelectorEnums"}
	LineInverter           = Param{Name: "LineInverter", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the signal inverter function for the selected input or output line.", Group: DigitalIO}
	LineTermination        = Param{Name: "LineTermination", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the termination resistor for the selected input line.", Group: DigitalIO}
	LineDebouncerTimeRaw   = Param{Name: "LineDebouncerTimeRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the raw value of the selected line debouncer time.", Group: DigitalIO}
	LineDebouncerTimeAbs   = Param{Name: "LineDebouncerTimeAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the absolute value of the selected line debouncer time in microseconds.", Group: DigitalIO}
	MinOutPulseWidthRaw    = Param{Name: "MinOutPulseWidthRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the raw value for the minimum signal width of an output signal.", Group: DigitalIO}
	MinOutPulseWidthAbs    = Param{Name: "MinOutPulseWidthAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the absolute value (in microseconds) for the minimum signal width of an output signal.", Group: DigitalIO}
	LineStatus             = Param{Name: "LineStatus", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates the current logical state for the selected line.", Group: DigitalIO}
	LineStatusAll          = Param{Name: "LineStatusAll", OriginalType: OriginalTypeGenApiIInteger, Description: "A single bitfield indicating the current logical state of all available line signals at time of polling.", Group: DigitalIO}
	UserOutputValue        = Param{Name: "UserOutputValue", OriginalType: OriginalTypeGenApiIBoolean, Description: "Sets the state of the selected user settable output signal.", Group: DigitalIO}
	UserOutputValueAll     = Param{Name: "UserOutputValueAll", OriginalType: OriginalTypeGenApiIInteger, Description: "A single bitfield that sets the state of all user settable output signals in one access.", Group: DigitalIO}
	UserOutputValueAllMask = Param{Name: "UserOutputValueAllMask", OriginalType: OriginalTypeGenApiIInteger, Description: "Defines a mask that is used when the User Output Value All setting is used to set all of the user settable output signals in one access.", Group: DigitalIO}
	SyncUserOutputValue    = Param{Name: "SyncUserOutputValue", OriginalType: OriginalTypeGenApiIBoolean, Description: "Sets the state of the selected user settable synchronous output signal.", Group: DigitalIO}
	SyncUserOutputValueAll = Param{Name: "SyncUserOutputValueAll", OriginalType: OriginalTypeGenApiIInteger, Description: "A single bitfield that sets the state of all user settable synchronous output signals in one access.", Group: DigitalIO}
	LineMode               = Param{Name: "LineMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the mode for the selected line.", Group: DigitalIO, OriginalEnumType: "LineModeEnums"}
	LineSource             = Param{Name: "LineSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the source signal for the selected line (if the selected line is an output)", Group: DigitalIO, OriginalEnumType: "LineSourceEnums"}
	LineLogic              = Param{Name: "LineLogic", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "<b>Visibility</b> = Beginner", Group: DigitalIO, OriginalEnumType: "LineLogicEnums"}
	LineFormat             = Param{Name: "LineFormat", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the electrical configuration of the selected line.", Group: DigitalIO, OriginalEnumType: "LineFormatEnums"}
	UserOutputSelector     = Param{Name: "UserOutputSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the user settable output signal to configure.", Group: DigitalIO, OriginalEnumType: "UserOutputSelectorEnums"}
	SyncUserOutputSelector = Param{Name: "SyncUserOutputSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "<b>Visibility</b> = Beginner", Group: DigitalIO, OriginalEnumType: "SyncUserOutputSelectorEnums"}

	// VirtualInput - This category includes items used to control the operation of the camera’s virtual input I/O lines
	VInpSignalSource            = Param{Name: "VInpSignalSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the I/O line on which the camera receives the virtual input signal.", Group: VirtualInput, OriginalEnumType: "VInpSignalSourceEnums"}
	VInpBitLength               = Param{Name: "VInpBitLength", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the length of the input bit.", Group: VirtualInput}
	VInpSamplingPoint           = Param{Name: "VInpSamplingPoint", OriginalType: OriginalTypeGenApiIInteger, Description: "Time span between the beginning of the input bit and the time when the high/low status is evaluated.", Group: VirtualInput}
	VInpSignalReadoutActivation = Param{Name: "VInpSignalReadoutActivation", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects when to start the signal evaluation.", Group: VirtualInput, OriginalEnumType: "VInpSignalReadoutActivationEnums"}

	// ShaftEncoderModule - This category provides controls for operating the camera's shaft encoder module.
	ShaftEncoderModuleLineSelector        = Param{Name: "ShaftEncoderModuleLineSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the phase of the shaft encoder.", Group: ShaftEncoderModule, OriginalEnumType: "ShaftEncoderModuleLineSelectorEnums"}
	ShaftEncoderModuleLineSource          = Param{Name: "ShaftEncoderModuleLineSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the input line as signal source for the shaft encoder module.", Group: ShaftEncoderModule, OriginalEnumType: "ShaftEncoderModuleLineSourceEnums"}
	ShaftEncoderModuleMode                = Param{Name: "ShaftEncoderModuleMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the circumstances for the shaft encoder module to output trigger signals.", Group: ShaftEncoderModule, OriginalEnumType: "ShaftEncoderModuleModeEnums"}
	ShaftEncoderModuleCounterMode         = Param{Name: "ShaftEncoderModuleCounterMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the counting mode of the tick counter.", Group: ShaftEncoderModule, OriginalEnumType: "ShaftEncoderModuleCounterModeEnums"}
	ShaftEncoderModuleCounter             = Param{Name: "ShaftEncoderModuleCounter", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the current value of the tick counter.", Group: ShaftEncoderModule}
	ShaftEncoderModuleCounterMax          = Param{Name: "ShaftEncoderModuleCounterMax", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the maximum value for the tick counter.", Group: ShaftEncoderModule}
	ShaftEncoderModuleCounterReset        = Param{Name: "ShaftEncoderModuleCounterReset", OriginalType: OriginalTypeGenApiICommand, Description: "Resets the tick counter to 0.", Group: ShaftEncoderModule}
	ShaftEncoderModuleReverseCounterMax   = Param{Name: "ShaftEncoderModuleReverseCounterMax", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the maximum value for the reverse counter.", Group: ShaftEncoderModule}
	ShaftEncoderModuleReverseCounterReset = Param{Name: "ShaftEncoderModuleReverseCounterReset", OriginalType: OriginalTypeGenApiICommand, Description: "Resets the reverse counter to 0.", Group: ShaftEncoderModule}

	// FrequencyConverter - This category includes items used to control the operation of the camera's frequency converter module
	FrequencyConverterInputSource        = Param{Name: "FrequencyConverterInputSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the input source.", Group: FrequencyConverter, OriginalEnumType: "FrequencyConverterInputSourceEnums"}
	FrequencyConverterSignalAlignment    = Param{Name: "FrequencyConverterSignalAlignment", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the signal transition relationships between received and generated signals.", Group: FrequencyConverter, OriginalEnumType: "FrequencyConverterSignalAlignmentEnums"}
	FrequencyConverterPreDivider         = Param{Name: "FrequencyConverterPreDivider", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the pre-divider value for the pre-divider sub-module.", Group: FrequencyConverter}
	FrequencyConverterMultiplier         = Param{Name: "FrequencyConverterMultiplier", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the multiplier value for the multiplier sub-module.", Group: FrequencyConverter}
	FrequencyConverterPostDivider        = Param{Name: "FrequencyConverterPostDivider", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the post-divider value for the post-divider sub-module.", Group: FrequencyConverter}
	FrequencyConverterPreventOvertrigger = Param{Name: "FrequencyConverterPreventOvertrigger", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables overtriggering protection.", Group: FrequencyConverter}

	// TimerControls - This category includes items used to control the operation of the camera's timers
	TimerDurationTimebaseAbs = Param{Name: "TimerDurationTimebaseAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the time base (in microseconds) that is used when a timer duration is set with the 'timer duration raw' setting.", Group: TimerControls}
	TimerDelayTimebaseAbs    = Param{Name: "TimerDelayTimebaseAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the time base (in microseconds) that is used when a timer delay is set with the 'timer delay raw' setting.", Group: TimerControls}
	TimerSelector            = Param{Name: "TimerSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the timer to configure.", Group: TimerControls, OriginalEnumType: "TimerSelectorEnums"}
	TimerDurationAbs         = Param{Name: "TimerDurationAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Directly sets the duration for the selected timer in microseconds.", Group: TimerControls}
	TimerDurationRaw         = Param{Name: "TimerDurationRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the 'raw' duration for the selected timer.", Group: TimerControls}
	TimerDelayAbs            = Param{Name: "TimerDelayAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Directly sets the delay for the selected timer in microseconds.", Group: TimerControls}
	TimerDelayRaw            = Param{Name: "TimerDelayRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the 'raw' delay for the selected timer.", Group: TimerControls}
	TimerTriggerSource       = Param{Name: "TimerTriggerSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the internal camera signal used to trigger the selected timer.", Group: TimerControls, OriginalEnumType: "TimerTriggerSourceEnums"}
	TimerTriggerActivation   = Param{Name: "TimerTriggerActivation", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the type of signal transistion that will start the timer.", Group: TimerControls, OriginalEnumType: "TimerTriggerActivationEnums"}
	CounterSelector          = Param{Name: "CounterSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the counter to configure.", Group: TimerControls, OriginalEnumType: "CounterSelectorEnums"}
	CounterEventSource       = Param{Name: "CounterEventSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the event that will be the source to increment the counter.", Group: TimerControls, OriginalEnumType: "CounterEventSourceEnums"}
	CounterResetSource       = Param{Name: "CounterResetSource", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the source of the reset for the selected counter.", Group: TimerControls, OriginalEnumType: "CounterResetSourceEnums"}
	CounterReset             = Param{Name: "CounterReset", OriginalType: OriginalTypeGenApiICommand, Description: "Immediately resets the selected counter.", Group: TimerControls}

	// TimerSequence -
	TimerSequenceEnable            = Param{Name: "TimerSequenceEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "<b>Visibility</b> = Guru", Group: TimerSequence}
	TimerSequenceLastEntryIndex    = Param{Name: "TimerSequenceLastEntryIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Guru", Group: TimerSequence}
	TimerSequenceCurrentEntryIndex = Param{Name: "TimerSequenceCurrentEntryIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Guru", Group: TimerSequence}
	TimerSequenceEntrySelector     = Param{Name: "TimerSequenceEntrySelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "<b>Visibility</b> = Guru", Group: TimerSequence, OriginalEnumType: "TimerSequenceEntrySelectorEnums"}
	TimerSequenceTimerSelector     = Param{Name: "TimerSequenceTimerSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "<b>Visibility</b> = Guru", Group: TimerSequence, OriginalEnumType: "TimerSequenceTimerSelectorEnums"}
	TimerSequenceTimerEnable       = Param{Name: "TimerSequenceTimerEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "<b>Visibility</b> = Guru", Group: TimerSequence}
	TimerSequenceTimerInverter     = Param{Name: "TimerSequenceTimerInverter", OriginalType: OriginalTypeGenApiIBoolean, Description: "<b>Visibility</b> = Guru", Group: TimerSequence}
	TimerSequenceTimerDelayRaw     = Param{Name: "TimerSequenceTimerDelayRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Guru", Group: TimerSequence}
	TimerSequenceTimerDurationRaw  = Param{Name: "TimerSequenceTimerDurationRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Guru", Group: TimerSequence}

	// LUTControls - This category includes items used to control the operation of the camera's lookup table (LUT)
	LUTEnable   = Param{Name: "LUTEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the selected LUT.", Group: LUTControls}
	LUTIndex    = Param{Name: "LUTIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the LUT element to access.", Group: LUTControls}
	LUTValue    = Param{Name: "LUTValue", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the value of the LUT element at the LUT index.", Group: LUTControls}
	LUTValueAll = Param{Name: "LUTValueAll", OriginalType: OriginalTypeGenApiIRegister, Description: "Accesses the entire content of the selected LUT in one chunk access.", Group: LUTControls}
	LUTSelector = Param{Name: "LUTSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the lookup table (LUT) to configure.", Group: LUTControls, OriginalEnumType: "LUTSelectorEnums"}

	// TransportLayer - This category includes items related to the GigE Vision transport layer
	PixelFormatLegacy                         = Param{Name: "PixelFormatLegacy", OriginalType: OriginalTypeGenApiIBoolean, Description: "Select legacy pixel format encoding.", Group: TransportLayer}
	PayloadSize                               = Param{Name: "PayloadSize", OriginalType: OriginalTypeGenApiIInteger, Description: "Size of the payload in bytes.", Group: TransportLayer}
	GevInterfaceSelector                      = Param{Name: "GevInterfaceSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the physical network interface to configure.", Group: TransportLayer, OriginalEnumType: "GevInterfaceSelectorEnums"}
	GevVersionMajor                           = Param{Name: "GevVersionMajor", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the major version number of the GigE Vision specification supported by this device.", Group: TransportLayer}
	GevVersionMinor                           = Param{Name: "GevVersionMinor", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the minor version number of the GigE Vision specification supported by this device.", Group: TransportLayer}
	GevDeviceModeIsBigEndian                  = Param{Name: "GevDeviceModeIsBigEndian", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates the endianess of the bootstrap registers.", Group: TransportLayer}
	GevDeviceModeCharacterSet                 = Param{Name: "GevDeviceModeCharacterSet", OriginalType: OriginalTypeGenApiIInteger, Description: "Indictes the character set.", Group: TransportLayer}
	GevMACAddress                             = Param{Name: "GevMACAddress", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the MAC address for the selected network interface.", Group: TransportLayer}
	GevSupportedIPConfigurationLLA            = Param{Name: "GevSupportedIPConfigurationLLA", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether the selected network interface supports auto IP addressing (also known as LLA)", Group: TransportLayer}
	GevSupportedIPConfigurationDHCP           = Param{Name: "GevSupportedIPConfigurationDHCP", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether the selected network interface supports DHCP IP addressing.", Group: TransportLayer}
	GevSupportedIPConfigurationPersistentIP   = Param{Name: "GevSupportedIPConfigurationPersistentIP", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether the selected network interface supports fixed IP addressing (also known as persistent IP addressing)", Group: TransportLayer}
	GevCurrentIPConfiguration                 = Param{Name: "GevCurrentIPConfiguration", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the current IP configuration of the selected network interface.", Group: TransportLayer}
	GevCurrentIPAddress                       = Param{Name: "GevCurrentIPAddress", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the current IP address for the selected network interface.", Group: TransportLayer}
	GevCurrentSubnetMask                      = Param{Name: "GevCurrentSubnetMask", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the current subnet mask for the selected network interface.", Group: TransportLayer}
	GevCurrentDefaultGateway                  = Param{Name: "GevCurrentDefaultGateway", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the current default gateway for the selected network interface.", Group: TransportLayer}
	GevPersistentIPAddress                    = Param{Name: "GevPersistentIPAddress", OriginalType: OriginalTypeGenApiIInteger, Description: "If fixed (persistent) IP addressing is supported by the device and enabled, sets the fixed IP address for the selected network interface.", Group: TransportLayer}
	GevPersistentSubnetMask                   = Param{Name: "GevPersistentSubnetMask", OriginalType: OriginalTypeGenApiIInteger, Description: "If fixed (persistent) IP addressing is supported by the device and enabled, sets the fixed subnet mask for the selected network interface.", Group: TransportLayer}
	GevPersistentDefaultGateway               = Param{Name: "GevPersistentDefaultGateway", OriginalType: OriginalTypeGenApiIInteger, Description: "If fixed (persistent) IP addressing is supported by the device and enabled, sets the fixed default gateway for the selected network interface.", Group: TransportLayer}
	GevLinkSpeed                              = Param{Name: "GevLinkSpeed", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the connection speed in Mbps for the selected network interface.", Group: TransportLayer}
	GevLinkMaster                             = Param{Name: "GevLinkMaster", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether the selected network interface is the clock master.", Group: TransportLayer}
	GevLinkFullDuplex                         = Param{Name: "GevLinkFullDuplex", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether the selected network interface operates in full-duplex mode.", Group: TransportLayer}
	GevLinkCrossover                          = Param{Name: "GevLinkCrossover", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates the state of medium-dependent interface crossover (MDIX) for the selected network interface.", Group: TransportLayer}
	GevFirstURL                               = Param{Name: "GevFirstURL", OriginalType: OriginalTypeGenApiIString, Description: "Indicates the first URL to the XML device description file.", Group: TransportLayer}
	GevSecondURL                              = Param{Name: "GevSecondURL", OriginalType: OriginalTypeGenApiIString, Description: "Indicates the second URL to the XML device description file.", Group: TransportLayer}
	GevNumberOfInterfaces                     = Param{Name: "GevNumberOfInterfaces", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the number of network interfaces on the device.", Group: TransportLayer}
	GevMessageChannelCount                    = Param{Name: "GevMessageChannelCount", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the number of message channels supported by the device.", Group: TransportLayer}
	GevStreamChannelCount                     = Param{Name: "GevStreamChannelCount", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the number of stream channels supported by the device.", Group: TransportLayer}
	GevSupportedOptionalCommandsEVENTDATA     = Param{Name: "GevSupportedOptionalCommandsEVENTDATA", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether EVENTDATA_CMD and EVENTDATA_ACK are supported.", Group: TransportLayer}
	GevSupportedOptionalCommandsEVENT         = Param{Name: "GevSupportedOptionalCommandsEVENT", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether EVENT_CMD and EVENT_ACK are supported.", Group: TransportLayer}
	GevSupportedOptionalCommandsPACKETRESEND  = Param{Name: "GevSupportedOptionalCommandsPACKETRESEND", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether PACKETRESEND_CMD is supported.", Group: TransportLayer}
	GevSupportedOptionalCommandsWRITEMEM      = Param{Name: "GevSupportedOptionalCommandsWRITEMEM", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether WRITEMEM_CMD and WRITEMEM_ACK are supported.", Group: TransportLayer}
	GevSupportedOptionalCommandsConcatenation = Param{Name: "GevSupportedOptionalCommandsConcatenation", OriginalType: OriginalTypeGenApiIBoolean, Description: "Indicates whether multiple operations in a single message are supported.", Group: TransportLayer}
	GevHeartbeatTimeout                       = Param{Name: "GevHeartbeatTimeout", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the heartbeat timeout in milliseconds.", Group: TransportLayer}
	GevTimestampTickFrequency                 = Param{Name: "GevTimestampTickFrequency", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the number of timestamp clock ticks in 1 second.", Group: TransportLayer}
	GevTimestampControlReset                  = Param{Name: "GevTimestampControlReset", OriginalType: OriginalTypeGenApiICommand, Description: "Resets the timestamp value for the device.", Group: TransportLayer}
	GevTimestampControlLatch                  = Param{Name: "GevTimestampControlLatch", OriginalType: OriginalTypeGenApiICommand, Description: "Latches the current timestamp value of the device.", Group: TransportLayer}
	GevTimestampControlLatchReset             = Param{Name: "GevTimestampControlLatchReset", OriginalType: OriginalTypeGenApiICommand, Description: "Resets the timestamp control latch.", Group: TransportLayer}
	GevTimestampValue                         = Param{Name: "GevTimestampValue", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the latched value of the timestamp.", Group: TransportLayer}
	GevCCP                                    = Param{Name: "GevCCP", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the control channel privilege feature.", Group: TransportLayer, OriginalEnumType: "GevCCPEnums"}
	GevStreamChannelSelector                  = Param{Name: "GevStreamChannelSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the stream channel to configure.", Group: TransportLayer, OriginalEnumType: "GevStreamChannelSelectorEnums"}
	GevSCPInterfaceIndex                      = Param{Name: "GevSCPInterfaceIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the index of the network interface to use.", Group: TransportLayer}
	GevSCPHostPort                            = Param{Name: "GevSCPHostPort", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the port to which the device must send data streams.", Group: TransportLayer}
	GevSCPSFireTestPacket                     = Param{Name: "GevSCPSFireTestPacket", OriginalType: OriginalTypeGenApiICommand, Description: "<b>Visibility</b> = Guru", Group: TransportLayer}
	GevSCPSDoNotFragment                      = Param{Name: "GevSCPSDoNotFragment", OriginalType: OriginalTypeGenApiIBoolean, Description: "<b>Visibility</b> = Guru", Group: TransportLayer}
	GevSCPSBigEndian                          = Param{Name: "GevSCPSBigEndian", OriginalType: OriginalTypeGenApiIBoolean, Description: "<b>Visibility</b> = Guru", Group: TransportLayer}
	GevSCPSPacketSize                         = Param{Name: "GevSCPSPacketSize", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the packet size in bytes for the selected stream channel.", Group: TransportLayer}
	GevSCDA                                   = Param{Name: "GevSCDA", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the stream channel destination IPv4 address for the selected stream channel.", Group: TransportLayer}
	GevSCPD                                   = Param{Name: "GevSCPD", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the inter-packet delay (in ticks) for the selected stream channel.", Group: TransportLayer}
	GevSCFTD                                  = Param{Name: "GevSCFTD", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the frame transfer start delay (in ticks) for the selected stream channel.", Group: TransportLayer}
	GevSCBWR                                  = Param{Name: "GevSCBWR", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets a percentage of the Ethernet bandwidth assigned to the camera to be held in reserve.", Group: TransportLayer}
	GevSCBWRA                                 = Param{Name: "GevSCBWRA", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets a multiplier for the Bandwidth Reserve parameter.", Group: TransportLayer}
	GevSCBWA                                  = Param{Name: "GevSCBWA", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the bandwidth (in bytes per second) that will be used by the camera to transmit image and chunk feature data and to handle resends and control data transmissions.", Group: TransportLayer}
	GevSCDMT                                  = Param{Name: "GevSCDMT", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the maximum amount of data (in bytes per second) that the camera could generate given its current settings and ideal conditions, i.e., unlimited bandwidth and no packet resends.", Group: TransportLayer}
	GevSCDCT                                  = Param{Name: "GevSCDCT", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the actual bandwidth (in bytes per second) that the camera will use to transmit image data and chunk data given the current AOI settings, chunk feature settings, and the pixel format setting.", Group: TransportLayer}
	GevSCFJM                                  = Param{Name: "GevSCFJM", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the maximum time (in ticks) that the next frame transmission could be delayed due to a burst of resends.", Group: TransportLayer}
	TLParamsLocked                            = Param{Name: "TLParamsLocked", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates whether a live grab is under way.", Group: TransportLayer}

	// ActionControl - This category includes items that control the action control feature
	ActionSelector     = Param{Name: "ActionSelector", OriginalType: OriginalTypeGenApiIInteger, Description: "Selects the action command to configure.", Group: ActionControl}
	ActionDeviceKey    = Param{Name: "ActionDeviceKey", OriginalType: OriginalTypeGenApiIInteger, Description: "Authorization key.", Group: ActionControl}
	ActionCommandCount = Param{Name: "ActionCommandCount", OriginalType: OriginalTypeGenApiIInteger, Description: "Number of action command interfaces.", Group: ActionControl}
	ActionGroupKey     = Param{Name: "ActionGroupKey", OriginalType: OriginalTypeGenApiIInteger, Description: "Defines a group of devices.", Group: ActionControl}
	ActionGroupMask    = Param{Name: "ActionGroupMask", OriginalType: OriginalTypeGenApiIInteger, Description: "Filters out particular devices from its group.", Group: ActionControl}

	// DeviceControl -
	DeviceRegistersStreamingStart = Param{Name: "DeviceRegistersStreamingStart", OriginalType: OriginalTypeGenApiICommand, Description: "Prepare the device for registers streaming.", Group: DeviceControl}
	DeviceRegistersStreamingEnd   = Param{Name: "DeviceRegistersStreamingEnd", OriginalType: OriginalTypeGenApiICommand, Description: "Announce the end of registers streaming.", Group: DeviceControl}

	// UserSets - This category includes items that control the configuration sets feature that is used to save sets of parameters in the camera
	UserSetLoad            = Param{Name: "UserSetLoad", OriginalType: OriginalTypeGenApiICommand, Description: "Loads the selected configuration into the camera's volatile memory and makes it the active configuration set.", Group: UserSets}
	UserSetSave            = Param{Name: "UserSetSave", OriginalType: OriginalTypeGenApiICommand, Description: "Saves the current active configuration set into the selected user set.", Group: UserSets}
	UserSetSelector        = Param{Name: "UserSetSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the configuration set to load, save, or configure.", Group: UserSets, OriginalEnumType: "UserSetSelectorEnums"}
	UserSetDefaultSelector = Param{Name: "UserSetDefaultSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the configuration set to be used as the default startup set.", Group: UserSets, OriginalEnumType: "UserSetDefaultSelectorEnums"}
	DefaultSetSelector     = Param{Name: "DefaultSetSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the which factory setting will be used as default set.", Group: UserSets, OriginalEnumType: "DefaultSetSelectorEnums"}

	// AutoFunctions - This category includes items that parameterize the Auto Functions
	AutoTargetValue                  = Param{Name: "AutoTargetValue", OriginalType: OriginalTypeGenApiIInteger, Description: "Target average grey value for Gain Auto and Exposure Auto.", Group: AutoFunctions}
	GrayValueAdjustmentDampingAbs    = Param{Name: "GrayValueAdjustmentDampingAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Gray value adjustment damping for Gain Auto and Exposure Auto.", Group: AutoFunctions}
	GrayValueAdjustmentDampingRaw    = Param{Name: "GrayValueAdjustmentDampingRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Gray value adjustment damping for Gain Auto and Exposure Auto.", Group: AutoFunctions}
	BalanceWhiteAdjustmentDampingAbs = Param{Name: "BalanceWhiteAdjustmentDampingAbs", OriginalType: OriginalTypeGenApiIFloat, Description: "Balance White adjustment damping for Balance White Auto.", Group: AutoFunctions}
	BalanceWhiteAdjustmentDampingRaw = Param{Name: "BalanceWhiteAdjustmentDampingRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Balance White adjustment damping for Balance White Auto.", Group: AutoFunctions}
	AutoGainRawLowerLimit            = Param{Name: "AutoGainRawLowerLimit", OriginalType: OriginalTypeGenApiIInteger, Description: "Lower limit of the Auto Gain (Raw) parameter.", Group: AutoFunctions}
	AutoGainRawUpperLimit            = Param{Name: "AutoGainRawUpperLimit", OriginalType: OriginalTypeGenApiIInteger, Description: "Upper limit of the Auto Gain (Raw) parameter.", Group: AutoFunctions}
	AutoExposureTimeAbsLowerLimit    = Param{Name: "AutoExposureTimeAbsLowerLimit", OriginalType: OriginalTypeGenApiIFloat, Description: "Lower limit of the Auto Exposure Time (Abs) [us] parameter.", Group: AutoFunctions}
	AutoExposureTimeAbsUpperLimit    = Param{Name: "AutoExposureTimeAbsUpperLimit", OriginalType: OriginalTypeGenApiIFloat, Description: "Upper limit of the Auto Exposure Time (Abs) [us] parameter.", Group: AutoFunctions}
	AutoFunctionProfile              = Param{Name: "AutoFunctionProfile", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the strategy for controlling gain and shutter simultaneously.", Group: AutoFunctions, OriginalEnumType: "AutoFunctionProfileEnums"}

	// AutoFunctionAOIs - Portion of the sensor array used for auto function control
	AutoFunctionAOIWidth                   = Param{Name: "AutoFunctionAOIWidth", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the width of the auto function area of interest in pixels.", Group: AutoFunctionAOIs}
	AutoFunctionAOIHeight                  = Param{Name: "AutoFunctionAOIHeight", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the height of the auto function area of interest in pixels.", Group: AutoFunctionAOIs}
	AutoFunctionAOIOffsetX                 = Param{Name: "AutoFunctionAOIOffsetX", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the starting column of the auto function area of interest in pixels.", Group: AutoFunctionAOIs}
	AutoFunctionAOIOffsetY                 = Param{Name: "AutoFunctionAOIOffsetY", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the starting line of the auto function area of interest in pixels.", Group: AutoFunctionAOIs}
	AutoFunctionAOIUsageIntensity          = Param{Name: "AutoFunctionAOIUsageIntensity", OriginalType: OriginalTypeGenApiIBoolean, Description: "<b>Visibility</b> = Beginner", Group: AutoFunctionAOIs}
	AutoFunctionAOIUsageWhiteBalance       = Param{Name: "AutoFunctionAOIUsageWhiteBalance", OriginalType: OriginalTypeGenApiIBoolean, Description: "<b>Visibility</b> = Beginner", Group: AutoFunctionAOIs}
	AutoFunctionAOIUsageRedLightCorrection = Param{Name: "AutoFunctionAOIUsageRedLightCorrection", OriginalType: OriginalTypeGenApiIBoolean, Description: "<b>Visibility</b> = Beginner", Group: AutoFunctionAOIs}
	AutoFunctionAOISelector                = Param{Name: "AutoFunctionAOISelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the Auto Function AOI.", Group: AutoFunctionAOIs, OriginalEnumType: "AutoFunctionAOISelectorEnums"}

	// ColorOverexposureCompensation - Compensates for deviations of hue resulting from overexposure
	ColorOverexposureCompensationAOISelector  = Param{Name: "ColorOverexposureCompensationAOISelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selcts the AOI for color overexposure compensation.", Group: ColorOverexposureCompensation, OriginalEnumType: "ColorOverexposureCompensationAOISelectorEnums"}
	ColorOverexposureCompensationAOIEnable    = Param{Name: "ColorOverexposureCompensationAOIEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables color overexposure compensation.", Group: ColorOverexposureCompensation}
	ColorOverexposureCompensationAOIFactor    = Param{Name: "ColorOverexposureCompensationAOIFactor", OriginalType: OriginalTypeGenApiIFloat, Description: "Sets the color overexposure compensation factor for the selected C.O.C.", Group: ColorOverexposureCompensation}
	ColorOverexposureCompensationAOIFactorRaw = Param{Name: "ColorOverexposureCompensationAOIFactorRaw", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the raw value for the color overexposure compensation factor.", Group: ColorOverexposureCompensation}
	ColorOverexposureCompensationAOIWidth     = Param{Name: "ColorOverexposureCompensationAOIWidth", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the width for the selected C.O.C.", Group: ColorOverexposureCompensation}
	ColorOverexposureCompensationAOIHeight    = Param{Name: "ColorOverexposureCompensationAOIHeight", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the height for the selected C.O.C.", Group: ColorOverexposureCompensation}
	ColorOverexposureCompensationAOIOffsetX   = Param{Name: "ColorOverexposureCompensationAOIOffsetX", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the X offset for the selected C.O.C.", Group: ColorOverexposureCompensation}
	ColorOverexposureCompensationAOIOffsetY   = Param{Name: "ColorOverexposureCompensationAOIOffsetY", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the Y offset for the selected C.O.C.", Group: ColorOverexposureCompensation}

	// Shading - Includes items used to control the operation of the camera's shading correction.
	ShadingSelector           = Param{Name: "ShadingSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the kind of shading correction.", Group: Shading, OriginalEnumType: "ShadingSelectorEnums"}
	ShadingEnable             = Param{Name: "ShadingEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the selected kind of shading correction.", Group: Shading}
	ShadingStatus             = Param{Name: "ShadingStatus", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Indicates error statuses related to shading correction.", Group: Shading, OriginalEnumType: "ShadingStatusEnums"}
	ShadingSetDefaultSelector = Param{Name: "ShadingSetDefaultSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the bootup shading set.", Group: Shading, OriginalEnumType: "ShadingSetDefaultSelectorEnums"}
	ShadingSetSelector        = Param{Name: "ShadingSetSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the shading set to which the activate command will be applied.", Group: Shading, OriginalEnumType: "ShadingSetSelectorEnums"}
	ShadingSetActivate        = Param{Name: "ShadingSetActivate", OriginalType: OriginalTypeGenApiICommand, Description: "Activates the selected shading set.", Group: Shading}
	ShadingSetCreate          = Param{Name: "ShadingSetCreate", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Creates a shading set.", Group: Shading, OriginalEnumType: "ShadingSetCreateEnums"}

	// UserDefinedValues -
	UserDefinedValueSelector = Param{Name: "UserDefinedValueSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "<b>Visibility</b> = Guru", Group: UserDefinedValues, OriginalEnumType: "UserDefinedValueSelectorEnums"}
	UserDefinedValue         = Param{Name: "UserDefinedValue", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Guru", Group: UserDefinedValues}

	// FeatureSets -
	GenicamXmlFileDefault = Param{Name: "GenicamXmlFileDefault", OriginalType: OriginalTypeGenApiIInteger, Description: "Select default genicam XML file.", Group: FeatureSets}
	FeatureSet            = Param{Name: "FeatureSet", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Select a camera description file.", Group: FeatureSets, OriginalEnumType: "FeatureSetEnums"}

	// RemoveParamLimits - This category includes items that allow removing the limits of camera parameters
	RemoveLimits      = Param{Name: "RemoveLimits", OriginalType: OriginalTypeGenApiIBoolean, Description: "Removes the factory-set limits of the selected parameter.", Group: RemoveParamLimits}
	ParameterSelector = Param{Name: "ParameterSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the parameter to configure.", Group: RemoveParamLimits, OriginalEnumType: "ParameterSelectorEnums"}
	Prelines          = Param{Name: "Prelines", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the number of prelines.", Group: RemoveParamLimits}

	// ExpertFeatureAccess -
	ExpertFeatureAccessSelector = Param{Name: "ExpertFeatureAccessSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the feature to configure.", Group: ExpertFeatureAccess, OriginalEnumType: "ExpertFeatureAccessSelectorEnums"}
	ExpertFeatureAccessKey      = Param{Name: "ExpertFeatureAccessKey", OriginalType: OriginalTypeGenApiIInteger, Description: "Sets the key to access the selected feature.", Group: ExpertFeatureAccess}
	ExpertFeatureEnable         = Param{Name: "ExpertFeatureEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enable the selected Feature.", Group: ExpertFeatureAccess}

	// ChunkDataStreams - This category includes items that control the chunk features available on the camera.
	ChunkModeActive = Param{Name: "ChunkModeActive", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the chunk mode.", Group: ChunkDataStreams}
	ChunkEnable     = Param{Name: "ChunkEnable", OriginalType: OriginalTypeGenApiIBoolean, Description: "Enables the inclusion of the selected chunk in the payload data.", Group: ChunkDataStreams}
	ChunkSelector   = Param{Name: "ChunkSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects chunks for enabling.", Group: ChunkDataStreams, OriginalEnumType: "ChunkSelectorEnums"}

	// ChunkData - This category includes items related to the chunk data that can be appended to the image data
	ChunkStride                              = Param{Name: "ChunkStride", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the number of bytes of data between the beginning of one line in the acquired image and the beginning of the next line in the acquired image.", Group: ChunkData}
	ChunkSequenceSetIndex                    = Param{Name: "ChunkSequenceSetIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the sequence set index number related to the acquired image.", Group: ChunkData}
	ChunkOffsetX                             = Param{Name: "ChunkOffsetX", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the X offset of the area of interest represented in the acquired image.", Group: ChunkData}
	ChunkOffsetY                             = Param{Name: "ChunkOffsetY", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the Y offset of the area of interest represented in the acquired image.", Group: ChunkData}
	ChunkWidth                               = Param{Name: "ChunkWidth", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the widtth of the area of interest represented in the acquired image.", Group: ChunkData}
	ChunkHeight                              = Param{Name: "ChunkHeight", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the height of the area of interest represented in the acquired image.", Group: ChunkData}
	ChunkDynamicRangeMin                     = Param{Name: "ChunkDynamicRangeMin", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the minimum possible pixel value in the acquired image.", Group: ChunkData}
	ChunkDynamicRangeMax                     = Param{Name: "ChunkDynamicRangeMax", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the maximum possible pixel value in the acquired image.", Group: ChunkData}
	ChunkPixelFormat                         = Param{Name: "ChunkPixelFormat", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Indicates the format of the pixel data in the acquired image.", Group: ChunkData, OriginalEnumType: "ChunkPixelFormatEnums"}
	ChunkTimestamp                           = Param{Name: "ChunkTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the value of the timestamp when the image was acquired.", Group: ChunkData}
	ChunkFramecounter                        = Param{Name: "ChunkFramecounter", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the value of the frame counter when the image was acquired.", Group: ChunkData}
	ChunkLineStatusAll                       = Param{Name: "ChunkLineStatusAll", OriginalType: OriginalTypeGenApiIInteger, Description: "A bit field that indicates the status of all of the camera's input and output lines when the image was acquired.", Group: ChunkData}
	ChunkVirtLineStatusAll                   = Param{Name: "ChunkVirtLineStatusAll", OriginalType: OriginalTypeGenApiIInteger, Description: "A bit field that indicates the status of all of the camera's virtual input and output lines when the image was acquired.", Group: ChunkData}
	ChunkTriggerinputcounter                 = Param{Name: "ChunkTriggerinputcounter", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the value of the trigger input counter when the image was acquired.", Group: ChunkData}
	ChunkLineTriggerIgnoredCounter           = Param{Name: "ChunkLineTriggerIgnoredCounter", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Beginner", Group: ChunkData}
	ChunkFrameTriggerIgnoredCounter          = Param{Name: "ChunkFrameTriggerIgnoredCounter", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Beginner", Group: ChunkData}
	ChunkLineTriggerEndToEndCounter          = Param{Name: "ChunkLineTriggerEndToEndCounter", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Beginner", Group: ChunkData}
	ChunkFrameTriggerCounter                 = Param{Name: "ChunkFrameTriggerCounter", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Beginner", Group: ChunkData}
	ChunkFramesPerTriggerCounter             = Param{Name: "ChunkFramesPerTriggerCounter", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Beginner", Group: ChunkData}
	ChunkInputStatusAtLineTriggerBitsPerLine = Param{Name: "ChunkInputStatusAtLineTriggerBitsPerLine", OriginalType: OriginalTypeGenApiIInteger, Description: "Number of bits per status.", Group: ChunkData}
	ChunkInputStatusAtLineTriggerIndex       = Param{Name: "ChunkInputStatusAtLineTriggerIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Used to select a certain status.", Group: ChunkData}
	ChunkInputStatusAtLineTriggerValue       = Param{Name: "ChunkInputStatusAtLineTriggerValue", OriginalType: OriginalTypeGenApiIInteger, Description: "Value of the status selected by 'Index'.", Group: ChunkData}
	ChunkShaftEncoderCounter                 = Param{Name: "ChunkShaftEncoderCounter", OriginalType: OriginalTypeGenApiIInteger, Description: "Shaft encoder counter at frame trigger.", Group: ChunkData}
	ChunkPayloadCRC16                        = Param{Name: "ChunkPayloadCRC16", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the value of CRC checksum.", Group: ChunkData}
	ChunkExposureTime                        = Param{Name: "ChunkExposureTime", OriginalType: OriginalTypeGenApiIFloat, Description: "<b>Visibility</b> = Beginner", Group: ChunkData}
	ChunkGainAll                             = Param{Name: "ChunkGainAll", OriginalType: OriginalTypeGenApiIInteger, Description: "<b>Visibility</b> = Beginner", Group: ChunkData}

	// EventsGeneration - This category includes items that control event generation by the camera.
	EventSelector     = Param{Name: "EventSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the type of event for enabling.", Group: EventsGeneration, OriginalEnumType: "EventSelectorEnums"}
	EventNotification = Param{Name: "EventNotification", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Sets the notification type that will be sent to the host application for the selected event.", Group: EventsGeneration, OriginalEnumType: "EventNotificationEnums"}

	// ExposureEndEventData - This category includes items available for an exposure end event
	ExposureEndEventStreamChannelIndex = Param{Name: "ExposureEndEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an exposure end event.", Group: ExposureEndEventData}
	ExposureEndEventFrameID            = Param{Name: "ExposureEndEventFrameID", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the frame ID for an exposure end event.", Group: ExposureEndEventData}
	ExposureEndEventTimestamp          = Param{Name: "ExposureEndEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for an exposure end event.", Group: ExposureEndEventData}

	// LineStartOvertriggerEventData - This category includes items available for an line start overtrigger event
	LineStartOvertriggerEventStreamChannelIndex = Param{Name: "LineStartOvertriggerEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an line start overtrigger event.", Group: LineStartOvertriggerEventData}
	LineStartOvertriggerEventTimestamp          = Param{Name: "LineStartOvertriggerEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for an line start overtrigger event.", Group: LineStartOvertriggerEventData}

	// FrameStartOvertriggerEventData - This category includes items available for an frame start overtrigger event
	FrameStartOvertriggerEventStreamChannelIndex = Param{Name: "FrameStartOvertriggerEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an frame start overtrigger event.", Group: FrameStartOvertriggerEventData}
	FrameStartOvertriggerEventTimestamp          = Param{Name: "FrameStartOvertriggerEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for an frame start overtrigger event.", Group: FrameStartOvertriggerEventData}

	// FrameStartEventData - This category includes items available for an frame start event
	FrameStartEventStreamChannelIndex = Param{Name: "FrameStartEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an frame start event.", Group: FrameStartEventData}
	FrameStartEventTimestamp          = Param{Name: "FrameStartEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for an frame start event.", Group: FrameStartEventData}

	// AcquisitionStartEventData - This category includes items available for an acquisition start event
	AcquisitionStartEventStreamChannelIndex = Param{Name: "AcquisitionStartEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an acquisition start event.", Group: AcquisitionStartEventData}
	AcquisitionStartEventTimestamp          = Param{Name: "AcquisitionStartEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for an acquisition start event.", Group: AcquisitionStartEventData}

	// AcquisitionStartOvertriggerEventData - This category includes items available for an acquisition start overtrigger event
	AcquisitionStartOvertriggerEventStreamChannelIndex = Param{Name: "AcquisitionStartOvertriggerEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an acquisition start overtrigger event.", Group: AcquisitionStartOvertriggerEventData}
	AcquisitionStartOvertriggerEventTimestamp          = Param{Name: "AcquisitionStartOvertriggerEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for an Acquisition start overtrigger event.", Group: AcquisitionStartOvertriggerEventData}

	// FrameTimeoutEventData - This category includes items available for an frame timeout event
	FrameTimeoutEventStreamChannelIndex = Param{Name: "FrameTimeoutEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an frame timeout event.", Group: FrameTimeoutEventData}
	FrameTimeoutEventTimestamp          = Param{Name: "FrameTimeoutEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for an frame timeout event.", Group: FrameTimeoutEventData}

	// EventOverrunEventData - This category includes items available for an event overrun event
	EventOverrunEventStreamChannelIndex = Param{Name: "EventOverrunEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an event overrun event.", Group: EventOverrunEventData}
	EventOverrunEventFrameID            = Param{Name: "EventOverrunEventFrameID", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the frame ID for an event overrun event.", Group: EventOverrunEventData}
	EventOverrunEventTimestamp          = Param{Name: "EventOverrunEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for an event overrun event.", Group: EventOverrunEventData}

	// CriticalTemperatureEventData - This category includes items available for a critical temperature event
	CriticalTemperatureEventStreamChannelIndex = Param{Name: "CriticalTemperatureEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for a critical temperature event.", Group: CriticalTemperatureEventData}
	CriticalTemperatureEventTimestamp          = Param{Name: "CriticalTemperatureEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for a critical temperature event.", Group: CriticalTemperatureEventData}

	// OverTemperatureEventData - This category includes items available for an over temperature event
	OverTemperatureEventStreamChannelIndex = Param{Name: "OverTemperatureEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an over temperature event.", Group: OverTemperatureEventData}
	OverTemperatureEventTimestamp          = Param{Name: "OverTemperatureEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for an over temperature event.", Group: OverTemperatureEventData}

	// Line1RisingEdgeEventData - This category includes items available for an io line 1 rising edge event
	Line1RisingEdgeEventStreamChannelIndex = Param{Name: "Line1RisingEdgeEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an io line 1 rising edge event.", Group: Line1RisingEdgeEventData}
	Line1RisingEdgeEventTimestamp          = Param{Name: "Line1RisingEdgeEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for a line 1 rising edge event.", Group: Line1RisingEdgeEventData}

	// Line2RisingEdgeEventData - This category includes items available for an io line 2 rising edge event
	Line2RisingEdgeEventStreamChannelIndex = Param{Name: "Line2RisingEdgeEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an io line 2 rising edge event.", Group: Line2RisingEdgeEventData}
	Line2RisingEdgeEventTimestamp          = Param{Name: "Line2RisingEdgeEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for a line 2 rising edge event.", Group: Line2RisingEdgeEventData}

	// Line3RisingEdgeEventData - This category includes items available for an io line 3 rising edge event
	Line3RisingEdgeEventStreamChannelIndex = Param{Name: "Line3RisingEdgeEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an io line 3 rising edge event.", Group: Line3RisingEdgeEventData}
	Line3RisingEdgeEventTimestamp          = Param{Name: "Line3RisingEdgeEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for a line 3 rising edge event.", Group: Line3RisingEdgeEventData}

	// Line4RisingEdgeEventData - This category includes items available for an io line 4 rising edge event
	Line4RisingEdgeEventStreamChannelIndex = Param{Name: "Line4RisingEdgeEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an io line 4 rising edge event.", Group: Line4RisingEdgeEventData}
	Line4RisingEdgeEventTimestamp          = Param{Name: "Line4RisingEdgeEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for a line 4 rising edge event.", Group: Line4RisingEdgeEventData}

	// VirtualLine1RisingEdgeEventData - This category includes items available for an io virtual line 1 rising edge event
	VirtualLine1RisingEdgeEventStreamChannelIndex = Param{Name: "VirtualLine1RisingEdgeEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an io virtual line 1 rising edge event.", Group: VirtualLine1RisingEdgeEventData}
	VirtualLine1RisingEdgeEventTimestamp          = Param{Name: "VirtualLine1RisingEdgeEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for a virtual line 1 rising edge event.", Group: VirtualLine1RisingEdgeEventData}

	// VirtualLine2RisingEdgeEventData - This category includes items available for an io virtual line 2 rising edge event
	VirtualLine2RisingEdgeEventStreamChannelIndex = Param{Name: "VirtualLine2RisingEdgeEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an io virtual line 2 rising edge event.", Group: VirtualLine2RisingEdgeEventData}
	VirtualLine2RisingEdgeEventTimestamp          = Param{Name: "VirtualLine2RisingEdgeEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for a virtual line 2 rising edge event.", Group: VirtualLine2RisingEdgeEventData}

	// VirtualLine3RisingEdgeEventData - This category includes items available for an io virtual line 3 rising edge event
	VirtualLine3RisingEdgeEventStreamChannelIndex = Param{Name: "VirtualLine3RisingEdgeEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an io virtual line 3 rising edge event.", Group: VirtualLine3RisingEdgeEventData}
	VirtualLine3RisingEdgeEventTimestamp          = Param{Name: "VirtualLine3RisingEdgeEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for a virtual line 3 rising edge event.", Group: VirtualLine3RisingEdgeEventData}

	// VirtualLine4RisingEdgeEventData - This category includes items available for an io virtual line 4 rising edge event
	VirtualLine4RisingEdgeEventStreamChannelIndex = Param{Name: "VirtualLine4RisingEdgeEventStreamChannelIndex", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the stream channel index for an io virtual line 4 rising edge event.", Group: VirtualLine4RisingEdgeEventData}
	VirtualLine4RisingEdgeEventTimestamp          = Param{Name: "VirtualLine4RisingEdgeEventTimestamp", OriginalType: OriginalTypeGenApiIInteger, Description: "Indicates the time stamp for a virtual line 4 rising edge event.", Group: VirtualLine4RisingEdgeEventData}

	// FileAccessControl - This category includes items used to conduct file operations
	FileSelector          = Param{Name: "FileSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "This feature selects the target file in the device.", Group: FileAccessControl, OriginalEnumType: "FileSelectorEnums"}
	FileOperationSelector = Param{Name: "FileOperationSelector", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the target operation for the selected file.", Group: FileAccessControl, OriginalEnumType: "FileOperationSelectorEnums"}
	FileOpenMode          = Param{Name: "FileOpenMode", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Selects the access mode in which a file is opened.", Group: FileAccessControl, OriginalEnumType: "FileOpenModeEnums"}
	FileAccessBuffer      = Param{Name: "FileAccessBuffer", OriginalType: OriginalTypeGenApiIRegister, Description: "Defines the intermediate access buffer.", Group: FileAccessControl}
	FileAccessOffset      = Param{Name: "FileAccessOffset", OriginalType: OriginalTypeGenApiIInteger, Description: "Controls the mapping between the device file storage and the FileAccessBuffer.", Group: FileAccessControl}
	FileAccessLength      = Param{Name: "FileAccessLength", OriginalType: OriginalTypeGenApiIInteger, Description: "Controls the mapping between the device file storage and the FileAccessBuffer.", Group: FileAccessControl}
	FileOperationStatus   = Param{Name: "FileOperationStatus", OriginalType: OriginalTypeGenApiIEnumerationT, Description: "Represents the file operation execution status.", Group: FileAccessControl, OriginalEnumType: "FileOperationStatusEnums"}
	FileOperationResult   = Param{Name: "FileOperationResult", OriginalType: OriginalTypeGenApiIInteger, Description: "Represents the file operation result.", Group: FileAccessControl}
	FileSize              = Param{Name: "FileSize", OriginalType: OriginalTypeGenApiIInteger, Description: "Represents the size of the selected file.", Group: FileAccessControl}
	FileOperationExecute  = Param{Name: "FileOperationExecute", OriginalType: OriginalTypeGenApiICommand, Description: "Executes the selected operation.", Group: FileAccessControl}
)
View Source
var (
	SequencerMode = Param{Name: "SequencerMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "SequencerModeEnums",
		Group:            SequencerControl,
		Description:      "Sets whether the sequencer can be used for image acquisition. Applies to: ace"}
	SequencerSetActive = Param{Name: "SequencerSetActive",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        SequencerControl,
		Description:  "Index number of the currently active sequencer set. Applies to: ace"}
	SequencerConfigurationMode = Param{Name: "SequencerConfigurationMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "SequencerConfigurationModeEnums",
		Group:            SequencerControl,
		Description:      "Sets whether the sequencer can be configured. Applies to: ace"}
	SequencerSetStart = Param{Name: "SequencerSetStart",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        SequencerControl,
		Description:  "Sequencer set that will be used with the first frame start trigger after SequencerMode was set to On. Applies to: ace"}
	SequencerSetSelector = Param{Name: "SequencerSetSelector",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        SequencerControl,
		Description:  "Sets a sequencer set by its index number. Applies to: ace"}
	SequencerSetLoad = Param{Name: "SequencerSetLoad",
		OriginalType: OriginalTypeGenApiICommand,
		Group:        SequencerControl,
		Description:  "Loads the parameter values of a sequencer set into the active set. Applies to: ace"}
	SequencerSetSave = Param{Name: "SequencerSetSave",
		OriginalType: OriginalTypeGenApiICommand,
		Group:        SequencerControl,
		Description:  "Saves the sequencer parameter values that are currently in the active set. Applies to: ace"}
	SequencerPathSelector = Param{Name: "SequencerPathSelector",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        SequencerControl,
		Description:  "Sets the sequencer path. Applies to: ace"}
	SequencerSetNext = Param{Name: "SequencerSetNext",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        SequencerControl,
		Description:  "Next sequencer set to follow after the current one. Applies to: ace"}
	SequencerTriggerSource = Param{Name: "SequencerTriggerSource",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "SequencerTriggerSourceEnums",
		Group:            SequencerControl,
		Description:      "Sets the trigger source for sequencer set advance. Applies to: ace"}
	SequencerTriggerActivation = Param{Name: "SequencerTriggerActivation",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "SequencerTriggerActivationEnums",
		Group:            SequencerControl,
		Description:      "Sets the effective logical level for sequencer set advance. Applies to: ace"}
	/*
	   SensorWidth = Param{Name: "SensorWidth",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Width of the camera's sensor in pixels. Applies to: ace, dart, pulse"}

	   SensorHeight = Param{Name: "SensorHeight",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Height of the camera's sensor in pixels. Applies to: ace, dart, pulse"}

	   WidthMax = Param{Name: "WidthMax",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Maximum allowed width of the region of interest in pixels. Applies to: ace, dart, pulse"}

	   HeightMax = Param{Name: "HeightMax",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Maximum allowed height of the region of interest in pixels. Applies to: ace, dart, pulse"}

	   Width = Param{Name: "Width",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Width of the camera's region of interest in pixels. Applies to: ace, dart, pulse"}

	   Height = Param{Name: "Height",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Height of the camera's region of interest in pixels. Applies to: ace, dart, pulse"}

	   OffsetX = Param{Name: "OffsetX",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Horizontal offset from the left side of the sensor to the region of interest (in pixels). Applies to: ace, dart, pulse"}

	   OffsetY = Param{Name: "OffsetY",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Vertical offset from the top of the sensor to the region of interest (in pixels). Applies to: ace, dart, pulse"}
	*/
	LinePitchEnable = Param{Name: "LinePitchEnable",
		OriginalType: OriginalTypeGenApiIBoolean,
		Group:        ImageFormatControl,
		Description:  "Enables the line pitch feature. Applies to: ace"}
	LinePitch = Param{Name: "LinePitch",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        ImageFormatControl,
		Description:  "Number of bytes separating the starting pixels of two consecutive lines. Applies to: ace"}
	/*
	   CenterX = Param{Name: "CenterX",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: ImageFormatControl,
	   	Description: "Enables horizontal centering of the image. Applies to: ace"}

	   CenterY = Param{Name: "CenterY",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: ImageFormatControl,
	   	Description: "Enables vertical centering of the image. Applies to: ace"}
	*/
	BinningHorizontalMode = Param{Name: "BinningHorizontalMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "BinningHorizontalModeEnums",
		Group:            ImageFormatControl,
		Description:      "Sets the binning horizontal mode. Applies to: ace, dart, pulse"}
	/*
	   BinningHorizontal = Param{Name: "BinningHorizontal",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Number of adjacent horizontal pixels to be summed. Applies to: ace, dart, pulse"}
	*/
	BinningVerticalMode = Param{Name: "BinningVerticalMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "BinningVerticalModeEnums",
		Group:            ImageFormatControl,
		Description:      "Sets the binning vertical mode. Applies to: ace, dart, pulse"}
	/*
	   BinningVertical = Param{Name: "BinningVertical",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Number of adjacent vertical pixels to be summed. Applies to: ace, dart, pulse"}

	   DecimationHorizontal = Param{Name: "DecimationHorizontal",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Horizontal decimation factor. Applies to: ace"}

	   DecimationVertical = Param{Name: "DecimationVertical",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Vertical decimation factor. Applies to: ace"}
	*/
	ScalingHorizontal = Param{Name: "ScalingHorizontal",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        ImageFormatControl,
		Description:  "Horizontal scaling factor. Applies to: ace"}
	ScalingVertical = Param{Name: "ScalingVertical",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        ImageFormatControl,
		Description:  "Vertical scaling factor. Applies to: ace"}
	/*
	   ReverseX = Param{Name: "ReverseX",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: ImageFormatControl,
	   	Description: "Enables horizontal mirroring of the image. Applies to: ace, dart, pulse"}

	   ReverseY = Param{Name: "ReverseY",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: ImageFormatControl,
	   	Description: "Enables vertical mirroring of the image. Applies to: ace, dart, pulse"}

	   PixelFormat = Param{Name: "PixelFormat",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "PixelFormatEnums",
	   	Group: ImageFormatControl,
	   	Description: "Sets the format of the pixel data transmitted by the camera. Applies to: ace, dart, pulse"}

	   PixelSize = Param{Name: "PixelSize",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "PixelSizeEnums",
	   	Group: ImageFormatControl,
	   	Description: "Returns the depth of the pixel values in the image (in bits per pixel). Applies to: ace, dart, pulse"}

	   PixelColorFilter = Param{Name: "PixelColorFilter",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "PixelColorFilterEnums",
	   	Group: ImageFormatControl,
	   	Description: "Returns the alignment of the camera's Bayer filter to the pixels in the acquired images. Applies to: ace, dart, pulse"}

	   PixelDynamicRangeMin = Param{Name: "PixelDynamicRangeMin",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Minimum possible pixel value that could be transferred from the camera. Applies to: ace, dart, pulse"}

	   PixelDynamicRangeMax = Param{Name: "PixelDynamicRangeMax",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ImageFormatControl,
	   	Description: "Maximum possible pixel value that could be transferred from the camera. Applies to: ace, dart, pulse"}

	   TestImageSelector = Param{Name: "TestImageSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "TestImageSelectorEnums",
	   	Group: ImageFormatControl,
	   	Description: "Sets the test image to display. Applies to: ace"}
	*/
	TestImageResetAndHold = Param{Name: "TestImageResetAndHold",
		OriginalType: OriginalTypeGenApiIBoolean,
		Group:        ImageFormatControl,
		Description:  "Holds all moving test images at their starting position. Applies to: ace"}
	TestPattern = Param{Name: "TestPattern",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "TestPatternEnums",
		Group:            ImageFormatControl,
		Description:      "Selects the type of image test pattern that is generated by the device. Applies to: dart, pulse"}
	ROIZoneSelector = Param{Name: "ROIZoneSelector",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "ROIZoneSelectorEnums",
		Group:            ImageFormatControl,
		Description:      "Sets a ROI zone"}
	ROIZoneMode = Param{Name: "ROIZoneMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "ROIZoneModeEnums",
		Group:            ImageFormatControl,
		Description:      "Provides for enabling/disabling a ROI zone."}
	ROIZoneSize = Param{Name: "ROIZoneSize",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        ImageFormatControl,
		Description:  "Sets a ROI zone size"}
	ROIZoneOffset = Param{Name: "ROIZoneOffset",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        ImageFormatControl,
		Description:  "Sets a ROI zone offset"}
	/*
	   GainAuto = Param{Name: "GainAuto",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "GainAutoEnums",
	   	Group: AnalogControl,
	   	Description: "Sets the operation mode of the gain auto function. Applies to: ace, dart, pulse"}

	   GainSelector = Param{Name: "GainSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "GainSelectorEnums",
	   	Group: AnalogControl,
	   	Description: "Sets the gain channel or tap to be adjusted. Applies to: ace, dart, pulse"}
	*/
	Gain = Param{Name: "Gain",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AnalogControl,
		Description:  "Value of the currently selected gain control in dB. Applies to: ace, dart, pulse"}
	/*
	   BlackLevelSelector = Param{Name: "BlackLevelSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "BlackLevelSelectorEnums",
	   	Group: AnalogControl,
	   	Description: "Sets the black level channel or tap to be adjusted. Applies to: ace, dart, pulse"}
	*/
	BlackLevel = Param{Name: "BlackLevel",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AnalogControl,
		Description:  "Value of the currently selected black level channel or tap. Applies to: ace, dart, pulse"}
	/*
	   Gamma = Param{Name: "Gamma",

	   	OriginalType: OriginalTypeGenApiIFloat,
	   	Group: AnalogControl,
	   	Description: "Gamma correction value. Applies to: ace, dart, pulse"}
	*/
	ColorSpace = Param{Name: "ColorSpace",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "ColorSpaceEnums",
		Group:            AnalogControl,
		Description:      "Returns the color space set for image acquisitions. Applies to: ace"}
	/*
	   DigitalShift = Param{Name: "DigitalShift",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: AnalogControl,
	   	Description: "Value set for digital shift. Applies to: ace"}
	*/
	BslColorSpaceMode = Param{Name: "BslColorSpaceMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "BslColorSpaceModeEnums",
		Group:            AnalogControl,
		Description:      "Sets the color space for image acquisition. Applies to: dart, pulse"}
	LightSourcePreset = Param{Name: "LightSourcePreset",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "LightSourcePresetEnums",
		Group:            ImageQualityControl,
		Description:      "Sets the light source preset. Applies to: ace, dart, pulse"}
	/*
	   BalanceWhiteAuto = Param{Name: "BalanceWhiteAuto",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "BalanceWhiteAutoEnums",
	   	Group: ImageQualityControl,
	   	Description: "Sets the operation mode of the balance white auto function. Applies to: ace, dart, pulse"}

	   BalanceRatioSelector = Param{Name: "BalanceRatioSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "BalanceRatioSelectorEnums",
	   	Group: ImageQualityControl,
	   	Description: "Sets the color channel to be adjusted for manual white balance. Applies to: ace, dart, pulse"}
	*/
	BalanceRatio = Param{Name: "BalanceRatio",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        ImageQualityControl,
		Description:  "Value of the currently selected balance ratio channel or tap. Applies to: ace, dart, pulse"}
	/*
	   ColorAdjustmentSelector = Param{Name: "ColorAdjustmentSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "ColorAdjustmentSelectorEnums",
	   	Group: ImageQualityControl,
	   	Description: "Sets the color for color adjustment. Applies to: ace"}

	   ColorAdjustmentHue = Param{Name: "ColorAdjustmentHue",

	   	OriginalType: OriginalTypeGenApiIFloat,
	   	Group: ImageQualityControl,
	   	Description: "Hue adjustment value for the currently selected color. Applies to: ace"}

	   ColorAdjustmentSaturation = Param{Name: "ColorAdjustmentSaturation",

	   	OriginalType: OriginalTypeGenApiIFloat,
	   	Group: ImageQualityControl,
	   	Description: "Saturation adjustment value for the currently selected color. Applies to: ace"}

	   ColorTransformationSelector = Param{Name: "ColorTransformationSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "ColorTransformationSelectorEnums",
	   	Group: ImageQualityControl,
	   	Description: "Sets the type of color transformation that will be performed. Applies to: ace"}

	   ColorTransformationValueSelector = Param{Name: "ColorTransformationValueSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "ColorTransformationValueSelectorEnums",
	   	Group: ImageQualityControl,
	   	Description: "Sets the element to be entered in the color transformation matrix. Applies to: ace"}

	   ColorTransformationValue = Param{Name: "ColorTransformationValue",

	   	OriginalType: OriginalTypeGenApiIFloat,
	   	Group: ImageQualityControl,
	   	Description: "Transformation value for the selected element in the color transformation matrix. Applies to: ace"}
	*/
	BslContrastMode = Param{Name: "BslContrastMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "BslContrastModeEnums",
		Group:            ImageQualityControl,
		Description:      "Sets the contrast mode. Applies to: dart, pulse"}
	BslBrightness = Param{Name: "BslBrightness",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        ImageQualityControl,
		Description:  "Amount of brightness to be applied. Applies to: dart, pulse"}
	BslContrast = Param{Name: "BslContrast",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        ImageQualityControl,
		Description:  "Amount of contrast to be applied. Applies to: dart, pulse"}
	DefectPixelCorrectionMode = Param{Name: "DefectPixelCorrectionMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "DefectPixelCorrectionModeEnums",
		Group:            ImageQualityControl,
		Description:      "Identifies outlier pixels and adjusts their intensity value. Applies to: dart, pulse"}
	BslHue = Param{Name: "BslHue",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        ImageQualityControl,
		Description:  "Hue shift to be applied."}
	BslHueValue = Param{Name: "BslHueValue",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        ImageQualityControl,
		Description:  "Hue shift to be applied. Applies to: dart, pulse"}
	BslSaturation = Param{Name: "BslSaturation",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        ImageQualityControl,
		Description:  "Saturation to be applied."}
	BslSaturationValue = Param{Name: "BslSaturationValue",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        ImageQualityControl,
		Description:  "Amount of saturation to be applied. Applies to: dart, pulse"}
	DemosaicingMode = Param{Name: "DemosaicingMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "DemosaicingModeEnums",
		Group:            PGIControl,
		Description:      "Sets the demosaicing mode. Applies to: ace"}
	PgiMode = Param{Name: "PgiMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "PgiModeEnums",
		Group:            PGIControl,
		Description:      "Enables Basler PGI image optimizations."}
	NoiseReduction = Param{Name: "NoiseReduction",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        PGIControl,
		Description:  "Amount of noise reduction to apply. Applies to: ace"}
	SharpnessEnhancement = Param{Name: "SharpnessEnhancement",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        PGIControl,
		Description:  "Amount of sharpening to apply. Applies to: ace, dart, pulse"}
	/*
	   AcquisitionMode = Param{Name: "AcquisitionMode",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "AcquisitionModeEnums",
	   	Group: AcquisitionControl,
	   	Description: "Sets the image acquisition mode. Applies to: ace, dart, pulse"}

	   AcquisitionStart = Param{Name: "AcquisitionStart",

	   	OriginalType: OriginalTypeGenApiICommand,
	   	Group: AcquisitionControl,
	   	Description: "Starts the acquisition of images. Applies to: ace, dart, pulse"}

	   AcquisitionStop = Param{Name: "AcquisitionStop",

	   	OriginalType: OriginalTypeGenApiICommand,
	   	Group: AcquisitionControl,
	   	Description: "Stops the acquisition of images. Applies to: ace, dart, pulse"}

	   ShutterMode = Param{Name: "ShutterMode",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "ShutterModeEnums",
	   	Group: AcquisitionControl,
	   	Description: "Sets the shutter mode. Applies to: ace"}

	   ExposureAuto = Param{Name: "ExposureAuto",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "ExposureAutoEnums",
	   	Group: AcquisitionControl,
	   	Description: "Sets the operation mode of the exposure auto function. Applies to: ace, dart, pulse"}

	   ExposureMode = Param{Name: "ExposureMode",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "ExposureModeEnums",
	   	Group: AcquisitionControl,
	   	Description: "Sets the exposure mode. Applies to: ace, dart, pulse"}
	*/
	ExposureTime = Param{Name: "ExposureTime",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AcquisitionControl,
		Description:  "Exposure time of the camera in microseconds. Applies to: ace, dart, pulse"}
	ExposureOverlapTimeMode = Param{Name: "ExposureOverlapTimeMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "ExposureOverlapTimeModeEnums",
		Group:            AcquisitionControl,
		Description:      "Sets the exposure overlap time mode. Applies to: ace"}
	ExposureOverlapTimeMax = Param{Name: "ExposureOverlapTimeMax",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AcquisitionControl,
		Description:  "Maximum overlap of the sensor exposure with sensor readout in TriggerWidth exposure mode (in microseconds). Applies to: ace"}
	SensorReadoutMode = Param{Name: "SensorReadoutMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "SensorReadoutModeEnums",
		Group:            AcquisitionControl,
		Description:      "Sets the sensor readout mode. Applies to: ace"}
	AcquisitionBurstFrameCount = Param{Name: "AcquisitionBurstFrameCount",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        AcquisitionControl,
		Description:  "Number of frames to acquire for each FrameBurstStart trigger. Applies to: ace"}
	/*
	   TriggerSelector = Param{Name: "TriggerSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "TriggerSelectorEnums",
	   	Group: AcquisitionControl,
	   	Description: "Sets the trigger type to be configured. Applies to: ace, dart, pulse"}

	   TriggerMode = Param{Name: "TriggerMode",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "TriggerModeEnums",
	   	Group: AcquisitionControl,
	   	Description: "Sets the mode for the currently selected trigger. Applies to: ace, dart, pulse"}

	   TriggerSoftware = Param{Name: "TriggerSoftware",

	   	OriginalType: OriginalTypeGenApiICommand,
	   	Group: AcquisitionControl,
	   	Description: "Generates a software trigger signal. Applies to: ace, dart, pulse"}

	   TriggerSource = Param{Name: "TriggerSource",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "TriggerSourceEnums",
	   	Group: AcquisitionControl,
	   	Description: "Sets the signal source for the selected trigger. Applies to: ace, dart, pulse"}

	   TriggerActivation = Param{Name: "TriggerActivation",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "TriggerActivationEnums",
	   	Group: AcquisitionControl,
	   	Description: "Sets the signal transition that activates the selected trigger. Applies to: ace, dart, pulse"}
	*/
	TriggerDelay = Param{Name: "TriggerDelay",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AcquisitionControl,
		Description:  "Trigger delay time in microseconds. Applies to: ace"}
	/*
	   AcquisitionFrameRateEnable = Param{Name: "AcquisitionFrameRateEnable",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: AcquisitionControl,
	   	Description: "Enables setting the camera's acquisition frame rate to a specified value. Applies to: ace"}
	*/
	AcquisitionFrameRate = Param{Name: "AcquisitionFrameRate",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AcquisitionControl,
		Description:  "Acquisition frame rate of the camera in frames per second. Applies to: ace, dart, pulse"}
	ResultingFrameRate = Param{Name: "ResultingFrameRate",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AcquisitionControl,
		Description:  "Maximum allowed frame acquisition rate. Applies to: ace, dart, pulse"}
	SensorReadoutTime = Param{Name: "SensorReadoutTime",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AcquisitionControl,
		Description:  "Sensor readout time given the current settings. Applies to: ace"}
	/*
	   AcquisitionStatusSelector = Param{Name: "AcquisitionStatusSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "AcquisitionStatusSelectorEnums",
	   	Group: AcquisitionControl,
	   	Description: "Sets the acquisition status to be checked. Applies to: ace"}

	   AcquisitionStatus = Param{Name: "AcquisitionStatus",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: AcquisitionControl,
	   	Description: "Indicates the status (true or false) of the currently selected acquisition signal. Applies to: ace"}
	*/
	SensorShutterMode = Param{Name: "SensorShutterMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "SensorShutterModeEnums",
		Group:            AcquisitionControl,
		Description:      "Sets the shutter mode of the device. Applies to: dart, pulse"}
	OverlapMode = Param{Name: "OverlapMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "OverlapModeEnums",
		Group:            AcquisitionControl,
		Description:      "Configures overlapping exposure and image readout. Applies to: dart, pulse"}
	BslImmediateTriggerMode = Param{Name: "BslImmediateTriggerMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "BslImmediateTriggerModeEnums",
		Group:            AcquisitionControl,
		Description:      "Sets the immediate trigger mode. Applies to: dart, pulse"}
	AutoTargetBrightness = Param{Name: "AutoTargetBrightness",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AutoFunctionControl,
		Description:  "Target average brightness for the gain auto function and the exposure auto function. Applies to: ace, dart, pulse"}
	/*
	   AutoFunctionProfile = Param{Name: "AutoFunctionProfile",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "AutoFunctionProfileEnums",
	   	Group: AutoFunctionControl,
	   	Description: "Sets how gain and exposure time will be balanced when the device is making automatic adjustments. Applies to: ace, dart, pulse"}
	*/
	AutoGainLowerLimit = Param{Name: "AutoGainLowerLimit",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AutoFunctionControl,
		Description:  "Lower limit for the Gain parameter when the gain auto function is active. Applies to: ace, dart, pulse"}
	AutoGainUpperLimit = Param{Name: "AutoGainUpperLimit",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AutoFunctionControl,
		Description:  "Upper limit for the Gain parameter when the gain auto function is active. Applies to: ace, dart, pulse"}
	AutoExposureTimeLowerLimit = Param{Name: "AutoExposureTimeLowerLimit",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AutoFunctionControl,
		Description:  "Lower limit for the ExposureTime parameter when the exposure auto function is active. Applies to: ace, dart, pulse"}
	AutoExposureTimeUpperLimit = Param{Name: "AutoExposureTimeUpperLimit",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AutoFunctionControl,
		Description:  "Upper limit for the ExposureTime parameter when the exposure auto function is active. Applies to: ace, dart, pulse"}
	AutoBacklightCompensation = Param{Name: "AutoBacklightCompensation",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        AutoFunctionControl,
		Description:  "Sets the backlight compensation. Applies to: dart, pulse"}
	AutoFunctionROISelector = Param{Name: "AutoFunctionROISelector",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "AutoFunctionROISelectorEnums",
		Group:            AutoFunctionROIControl,
		Description:      "Sets which auto function ROI can be adjusted. Applies to: ace, dart, pulse"}
	AutoFunctionROIWidth = Param{Name: "AutoFunctionROIWidth",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        AutoFunctionROIControl,
		Description:  "Width of the auto function ROI (in pixels). Applies to: ace, dart, pulse"}
	AutoFunctionROIHeight = Param{Name: "AutoFunctionROIHeight",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        AutoFunctionROIControl,
		Description:  "Height of the auto function ROI (in pixels). Applies to: ace, dart, pulse"}
	AutoFunctionROIOffsetX = Param{Name: "AutoFunctionROIOffsetX",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        AutoFunctionROIControl,
		Description:  "Horizontal offset from the left side of the sensor to the auto function ROI (in pixels). Applies to: ace, dart, pulse"}
	AutoFunctionROIOffsetY = Param{Name: "AutoFunctionROIOffsetY",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        AutoFunctionROIControl,
		Description:  "Vertical offset from the top of the sensor to the auto function ROI (in pixels). Applies to: ace, dart, pulse"}
	AutoFunctionROIUseBrightness = Param{Name: "AutoFunctionROIUseBrightness",
		OriginalType: OriginalTypeGenApiIBoolean,
		Group:        AutoFunctionROIControl,
		Description:  "Assigns the Gain Auto and the Exposure Auto functions to the currently selected auto function ROI. Applies to: ace, dart, pulse"}
	AutoFunctionROIUseWhiteBalance = Param{Name: "AutoFunctionROIUseWhiteBalance",
		OriginalType: OriginalTypeGenApiIBoolean,
		Group:        AutoFunctionROIControl,
		Description:  "Assigns the Balance White auto function to the currently selected auto function ROI. Applies to: ace, dart, pulse"}
	/*
	   AutoFunctionAOISelector = Param{Name: "AutoFunctionAOISelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "AutoFunctionAOISelectorEnums",
	   	Group: AutoFunctionAOIControl,
	   	Description: "This feature has been \b deprecated. Sets which auto function AOI can be adjusted."}

	   AutoFunctionAOIWidth = Param{Name: "AutoFunctionAOIWidth",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: AutoFunctionAOIControl,
	   	Description: "This feature has been \b deprecated. Width of the auto function AOI (in pixels)."}

	   AutoFunctionAOIHeight = Param{Name: "AutoFunctionAOIHeight",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: AutoFunctionAOIControl,
	   	Description: "This feature has been \b deprecated. Height of the auto function AOI (in pixels)."}

	   AutoFunctionAOIOffsetX = Param{Name: "AutoFunctionAOIOffsetX",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: AutoFunctionAOIControl,
	   	Description: "This feature has been \b deprecated. Horizontal offset from the left side of the sensor to the auto function AOI (in pixels)."}

	   AutoFunctionAOIOffsetY = Param{Name: "AutoFunctionAOIOffsetY",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: AutoFunctionAOIControl,
	   	Description: "This feature has been \b deprecated. Vertical offset from the top of the sensor to the auto function AOI (in pixels)."}
	*/
	AutoFunctionAOIUseBrightness = Param{Name: "AutoFunctionAOIUseBrightness",
		OriginalType: OriginalTypeGenApiIBoolean,
		Group:        AutoFunctionAOIControl,
		Description:  "This feature has been \b deprecated. Assigns the Gain Auto and the Exposure Auto functions to the currently selected auto function AOI."}
	AutoFunctionAOIUseWhiteBalance = Param{Name: "AutoFunctionAOIUseWhiteBalance",
		OriginalType: OriginalTypeGenApiIBoolean,
		Group:        AutoFunctionAOIControl,
		Description:  "This feature has been \b deprecated. Assigns the Balance White auto function to the currently selected auto function AOI."}
	/*
	   LUTSelector = Param{Name: "LUTSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "LUTSelectorEnums",
	   	Group: LUTControl,
	   	Description: "Sets the lookup table (LUT) to be configured. Applies to: ace"}

	   LUTEnable = Param{Name: "LUTEnable",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: LUTControl,
	   	Description: "Enables the selected lookup table (LUT). Applies to: ace"}

	   LUTIndex = Param{Name: "LUTIndex",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: LUTControl,
	   	Description: "Index of the LUT element to access. Applies to: ace"}

	   LUTValue = Param{Name: "LUTValue",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: LUTControl,
	   	Description: "Value of the LUT element at the LUT index position. Applies to: ace"}

	   LUTValueAll = Param{Name: "LUTValueAll",

	   	OriginalType: OriginalTypeGenApiIRegister,
	   	Group: LUTControl,
	   	Description: "A single register that lets you access all LUT coefficients. Applies to: ace"}

	   LineSelector = Param{Name: "LineSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "LineSelectorEnums",
	   	Group: DigitalIOControl,
	   	Description: "Sets the I/O line to be configured. Applies to: ace, dart"}

	   LineMode = Param{Name: "LineMode",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "LineModeEnums",
	   	Group: DigitalIOControl,
	   	Description: "Sets the mode for the selected line. Applies to: ace, dart"}

	   LineFormat = Param{Name: "LineFormat",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "LineFormatEnums",
	   	Group: DigitalIOControl,
	   	Description: "Returns the electrical configuration of the currently selected line. Applies to: ace, dart"}

	   LineLogic = Param{Name: "LineLogic",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "LineLogicEnums",
	   	Group: DigitalIOControl,
	   	Description: "Returns the line logic of the currently selected line. Applies to: ace"}

	   LineSource = Param{Name: "LineSource",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "LineSourceEnums",
	   	Group: DigitalIOControl,
	   	Description: "Sets the source signal for the currently selected line. Applies to: ace, dart"}

	   LineInverter = Param{Name: "LineInverter",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: DigitalIOControl,
	   	Description: "Enables the signal inverter function for the currently selected input or output line. Applies to: ace, dart"}
	*/
	LineDebouncerTime = Param{Name: "LineDebouncerTime",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        DigitalIOControl,
		Description:  "Value of the selected line debouncer time in microseconds. Applies to: ace, dart"}
	LineMinimumOutputPulseWidth = Param{Name: "LineMinimumOutputPulseWidth",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        DigitalIOControl,
		Description:  "Value for the minimum signal width of an output signal (in microseconds) . Applies to: ace"}
	LineOverloadStatus = Param{Name: "LineOverloadStatus",
		OriginalType: OriginalTypeGenApiIBoolean,
		Group:        DigitalIOControl,
		Description:  "Indicates whether an overload condition was detected on the selected line. Applies to: ace"}
	LineOverloadReset = Param{Name: "LineOverloadReset",
		OriginalType: OriginalTypeGenApiICommand,
		Group:        DigitalIOControl,
		Description:  "Resets the overload status of the selected line. Applies to: ace"}
	/*
	   LineStatus = Param{Name: "LineStatus",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: DigitalIOControl,
	   	Description: "Indicates the current logical state of the selected line. Applies to: ace, dart"}

	   LineStatusAll = Param{Name: "LineStatusAll",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: DigitalIOControl,
	   	Description: "A single bit field indicating the current logical state of all available line signals at time of polling. Applies to: ace, dart"}

	   UserOutputSelector = Param{Name: "UserOutputSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "UserOutputSelectorEnums",
	   	Group: DigitalIOControl,
	   	Description: "Sets the user settable output signal to be configured. Applies to: ace, dart"}

	   UserOutputValue = Param{Name: "UserOutputValue",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: DigitalIOControl,
	   	Description: "Enables the selected user settable output line. Applies to: ace, dart"}

	   UserOutputValueAll = Param{Name: "UserOutputValueAll",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: DigitalIOControl,
	   	Description: "A single bit field that sets the state of all user settable output signals in one access. Applies to: ace"}
	*/
	SoftwareSignalSelector = Param{Name: "SoftwareSignalSelector",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "SoftwareSignalSelectorEnums",
		Group:            SoftwareSignalControl,
		Description:      "Sets the software signal to control. Applies to: ace"}
	SoftwareSignalPulse = Param{Name: "SoftwareSignalPulse",
		OriginalType: OriginalTypeGenApiICommand,
		Group:        SoftwareSignalControl,
		Description:  "Generates a signal that can be used as a software trigger. Applies to: ace"}
	/*
	   TimerSelector = Param{Name: "TimerSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "TimerSelectorEnums",
	   	Group: CounterAndTimerControl,
	   	Description: "Sets the timer to be configured. Applies to: ace"}
	*/
	TimerDuration = Param{Name: "TimerDuration",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        CounterAndTimerControl,
		Description:  "Duration of the currently selected timer in microseconds. Applies to: ace"}
	TimerDelay = Param{Name: "TimerDelay",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        CounterAndTimerControl,
		Description:  "Delay of the currently selected timer in microseconds. Applies to: ace"}
	/*
	   TimerTriggerSource = Param{Name: "TimerTriggerSource",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "TimerTriggerSourceEnums",
	   	Group: CounterAndTimerControl,
	   	Description: "Sets the internal camera signal used to trigger the selected timer. Applies to: ace"}

	   CounterSelector = Param{Name: "CounterSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "CounterSelectorEnums",
	   	Group: CounterAndTimerControl,
	   	Description: "Sets the counter to be configured. Applies to: ace"}

	   CounterEventSource = Param{Name: "CounterEventSource",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "CounterEventSourceEnums",
	   	Group: CounterAndTimerControl,
	   	Description: "Sets the event that increments the currently selected counter. Applies to: ace"}

	   CounterResetSource = Param{Name: "CounterResetSource",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "CounterResetSourceEnums",
	   	Group: CounterAndTimerControl,
	   	Description: "Sets the source signal that can reset the currently selected counter. Applies to: ace"}
	*/
	CounterResetActivation = Param{Name: "CounterResetActivation",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "CounterResetActivationEnums",
		Group:            CounterAndTimerControl,
		Description:      "Sets the signal on which the counter will be reset. Applies to: ace"}
	/*
	   CounterReset = Param{Name: "CounterReset",

	   	OriginalType: OriginalTypeGenApiICommand,
	   	Group: CounterAndTimerControl,
	   	Description: "Immediately resets the selected counter. Applies to: ace"}
	*/
	CounterDuration = Param{Name: "CounterDuration",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        CounterAndTimerControl,
		Description:  "Duration (or number of events) before the CounterEnd event is generated. Applies to: ace"}
	/*
	   UserSetSelector = Param{Name: "UserSetSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "UserSetSelectorEnums",
	   	Group: UserSetControl,
	   	Description: "Sets the user set or the factory set to load, save or configure. Applies to: ace, dart, pulse"}

	   UserSetLoad = Param{Name: "UserSetLoad",

	   	OriginalType: OriginalTypeGenApiICommand,
	   	Group: UserSetControl,
	   	Description: "Loads the selected set into the camera's volatile memory and makes it the active configuration set. Applies to: ace, dart, pulse"}

	   UserSetSave = Param{Name: "UserSetSave",

	   	OriginalType: OriginalTypeGenApiICommand,
	   	Group: UserSetControl,
	   	Description: "Saves the current active set into the selected user set. Applies to: ace, dart, pulse"}
	*/
	UserSetDefault = Param{Name: "UserSetDefault",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "UserSetDefaultEnums",
		Group:            UserSetControl,
		Description:      "Sets the user set or the factory set to be used as the startup set. Applies to: ace, dart, pulse"}
	/*
	   ChunkModeActive = Param{Name: "ChunkModeActive",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: ChunkDataControl,
	   	Description: "Enables the chunk mode. Applies to: ace"}

	   ChunkSelector = Param{Name: "ChunkSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "ChunkSelectorEnums",
	   	Group: ChunkDataControl,
	   	Description: "Sets the chunk to be enabled. Applies to: ace"}

	   ChunkEnable = Param{Name: "ChunkEnable",

	   	OriginalType: OriginalTypeGenApiIBoolean,
	   	Group: ChunkDataControl,
	   	Description: "Enables the inclusion of the currently selected chunk in the payload data. Applies to: ace"}
	*/
	ChunkGainSelector = Param{Name: "ChunkGainSelector",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "ChunkGainSelectorEnums",
		Group:            ChunkDataControl,
		Description:      "Sets which gain channel to retrieve chunk data from. Applies to: ace"}
	ChunkGain = Param{Name: "ChunkGain",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        ChunkDataControl,
		Description:  "Gain used to acquire the image. Applies to: ace"}
	/*
	   ChunkExposureTime = Param{Name: "ChunkExposureTime",

	   	OriginalType: OriginalTypeGenApiIFloat,
	   	Group: ChunkDataControl,
	   	Description: "Exposure time used to acquire the image. Applies to: ace"}

	   ChunkTimestamp = Param{Name: "ChunkTimestamp",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ChunkDataControl,
	   	Description: "Value of the timestamp when the image was acquired. Applies to: ace"}

	   ChunkLineStatusAll = Param{Name: "ChunkLineStatusAll",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ChunkDataControl,
	   	Description: "A bit field that indicates the status of all of the camera's input and output lines when the image was acquired. Applies to: ace"}
	*/
	ChunkCounterSelector = Param{Name: "ChunkCounterSelector",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "ChunkCounterSelectorEnums",
		Group:            ChunkDataControl,
		Description:      "Sets which counter to retrieve chunk data from. Applies to: ace"}
	ChunkCounterValue = Param{Name: "ChunkCounterValue",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        ChunkDataControl,
		Description:  "Value of the selected chunk counter. Applies to: ace"}
	ChunkSequencerSetActive = Param{Name: "ChunkSequencerSetActive",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        ChunkDataControl,
		Description:  "Index of the active sequencer set. Applies to: ace"}
	/*
	   ChunkPayloadCRC16 = Param{Name: "ChunkPayloadCRC16",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: ChunkDataControl,
	   	Description: "CRC checksum of the acquired image. Applies to: ace"}

	   EventSelector = Param{Name: "EventSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "EventSelectorEnums",
	   	Group: EventControl,
	   	Description: "Sets the event notification to be enabled. Applies to: ace"}

	   EventNotification = Param{Name: "EventNotification",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "EventNotificationEnums",
	   	Group: EventControl,
	   	Description: "Enables event notifications for the currently selected event. Applies to: ace"}
	*/
	TriggerEventTest = Param{Name: "TriggerEventTest",
		OriginalType: OriginalTypeGenApiICommand,
		Group:        EventControl,
		Description:  "Generates an event test signal."}
	EventExposureEnd = Param{Name: "EventExposureEnd",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventExposureEndData,
		Description:  "Unique identifier of the exposure end event. Applies to: ace"}
	EventExposureEndTimestamp = Param{Name: "EventExposureEndTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventExposureEndData,
		Description:  "Time stamp of the exposure end event. Applies to: ace"}
	EventExposureEndFrameID = Param{Name: "EventExposureEndFrameID",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventExposureEndData,
		Description:  "Frame ID of the exposure end event. Applies to: ace"}
	EventFrameStart = Param{Name: "EventFrameStart",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameStartData,
		Description:  "Unique identifier of the frame start event. Applies to: ace"}
	EventFrameStartTimestamp = Param{Name: "EventFrameStartTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameStartData,
		Description:  "Time stamp of the frame start event. Applies to: ace"}
	EventFrameStartFrameID = Param{Name: "EventFrameStartFrameID",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameStartData,
		Description:  "Frame ID of the frame start event. Applies to: ace"}
	EventFrameBurstStart = Param{Name: "EventFrameBurstStart",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameBurstStartData,
		Description:  "Unique identifier of the frame burst start event. Applies to: ace"}
	EventFrameBurstStartTimestamp = Param{Name: "EventFrameBurstStartTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameBurstStartData,
		Description:  "Time stamp of the frame burst start event. Applies to: ace"}
	EventFrameBurstStartFrameID = Param{Name: "EventFrameBurstStartFrameID",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameBurstStartData,
		Description:  "Frame ID of the frame burst start event. Applies to: ace"}
	EventFrameStartOvertrigger = Param{Name: "EventFrameStartOvertrigger",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameStartOvertriggerData,
		Description:  "Unique identifier of the frame start overtrigger event. Applies to: ace"}
	EventFrameStartOvertriggerTimestamp = Param{Name: "EventFrameStartOvertriggerTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameStartOvertriggerData,
		Description:  "Time stamp of the frame start overtrigger event. Applies to: ace"}
	EventFrameStartOvertriggerFrameID = Param{Name: "EventFrameStartOvertriggerFrameID",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameStartOvertriggerData,
		Description:  "Frame ID of the frame start overtrigger event. Applies to: ace"}
	EventFrameBurstStartOvertrigger = Param{Name: "EventFrameBurstStartOvertrigger",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameBurstStartOvertriggerData,
		Description:  "Unique identifier of the frame burst start overtrigger event. Applies to: ace"}
	EventFrameBurstStartOvertriggerTimestamp = Param{Name: "EventFrameBurstStartOvertriggerTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameBurstStartOvertriggerData,
		Description:  "Time stamp of the frame burst start overtrigger event. Applies to: ace"}
	EventFrameBurstStartOvertriggerFrameID = Param{Name: "EventFrameBurstStartOvertriggerFrameID",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameBurstStartOvertriggerData,
		Description:  "Frame ID of the frame burst start overtrigger event. Applies to: ace"}
	EventTest = Param{Name: "EventTest",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventTestData,
		Description:  "Unique identifier of the test event."}
	EventTestTimestamp = Param{Name: "EventTestTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventTestData,
		Description:  "Time stamp of the test event."}
	EventCriticalTemperature = Param{Name: "EventCriticalTemperature",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventCriticalTemperatureData,
		Description:  "Unique identifier of the critical temperature event. Applies to: ace"}
	EventCriticalTemperatureTimestamp = Param{Name: "EventCriticalTemperatureTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventCriticalTemperatureData,
		Description:  "Time stamp of the crititical temperature event. Applies to: ace"}
	EventOverTemperature = Param{Name: "EventOverTemperature",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventOverTemperatureData,
		Description:  "Unique identifier of the over temperature event. Applies to: ace"}
	EventOverTemperatureTimestamp = Param{Name: "EventOverTemperatureTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventOverTemperatureData,
		Description:  "Time stamp of the over temperature event. Applies to: ace"}
	EventFrameStartWait = Param{Name: "EventFrameStartWait",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameStartWaitData,
		Description:  "Unique identifier of the frame start wait event. Applies to: ace"}
	EventFrameStartWaitTimestamp = Param{Name: "EventFrameStartWaitTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameStartWaitData,
		Description:  "Time stamp of the frame start wait event. Applies to: ace"}
	EventFrameBurstStartWait = Param{Name: "EventFrameBurstStartWait",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameBurstStartWaitData,
		Description:  "Unique identifier of the frame burst start wait event. Applies to: ace"}
	EventFrameBurstStartWaitTimestamp = Param{Name: "EventFrameBurstStartWaitTimestamp",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        EventFrameBurstStartWaitData,
		Description:  "Time stamp of the frame brust start wait event. Applies to: ace"}
	/*
	   PayloadSize = Param{Name: "PayloadSize",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: TransportLayerControl,
	   	Description: "Size of the payload in bytes. Applies to: ace, dart, pulse"}
	*/
	BslUSBSpeedMode = Param{Name: "BslUSBSpeedMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "BslUSBSpeedModeEnums",
		Group:            TransportLayerControl,
		Description:      "Returns the speed mode of the USB port. Applies to: ace, dart, pulse"}
	SIPayloadTransferSize = Param{Name: "SIPayloadTransferSize",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  "Expected size of a single payload transfer. Applies to: ace"}
	SIPayloadTransferCount = Param{Name: "SIPayloadTransferCount",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  "Expected number of payload transfers. Applies to: ace"}
	SIPayloadFinalTransfer1Size = Param{Name: "SIPayloadFinalTransfer1Size",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  "Size of the first final payload transfer. Applies to: ace"}
	SIPayloadFinalTransfer2Size = Param{Name: "SIPayloadFinalTransfer2Size",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  "Size of the second final payload transfer. Applies to: ace"}
	TestPendingAck = Param{Name: "TestPendingAck",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  "Test pending acknowledging time in milliseconds. Applies to: dart, pulse"}
	PayloadTransferBlockDelay = Param{Name: "PayloadTransferBlockDelay",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  ""}
	PayloadTransferSize = Param{Name: "PayloadTransferSize",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  "Payload Transfer Size. Applies to: dart, pulse"}
	PayloadTransferCount = Param{Name: "PayloadTransferCount",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  "Payload Transfer Count. Applies to: dart, pulse"}
	PayloadFinalTransfer1Size = Param{Name: "PayloadFinalTransfer1Size",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  "Payload Final Transfer 1 Size. Applies to: dart, pulse"}
	PayloadFinalTransfer2Size = Param{Name: "PayloadFinalTransfer2Size",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        TransportLayerControl,
		Description:  "Payload Final Transfer 2 Size. Applies to: dart, pulse"}
	/*
	   DeviceVendorName = Param{Name: "DeviceVendorName",

	   	OriginalType: OriginalTypeGenApiIString,
	   	Group: DeviceControl,
	   	Description: "Name of the device's vendor. Applies to: ace, dart, pulse"}

	   DeviceModelName = Param{Name: "DeviceModelName",

	   	OriginalType: OriginalTypeGenApiIString,
	   	Group: DeviceControl,
	   	Description: "Model name of the device. Applies to: ace, dart, pulse"}

	   DeviceManufacturerInfo = Param{Name: "DeviceManufacturerInfo",

	   	OriginalType: OriginalTypeGenApiIString,
	   	Group: DeviceControl,
	   	Description: "Additional information from the vendor about the camera. Applies to: ace, dart, pulse"}

	   DeviceVersion = Param{Name: "DeviceVersion",

	   	OriginalType: OriginalTypeGenApiIString,
	   	Group: DeviceControl,
	   	Description: "Version of the device. Applies to: ace, dart, pulse"}

	   DeviceFirmwareVersion = Param{Name: "DeviceFirmwareVersion",

	   	OriginalType: OriginalTypeGenApiIString,
	   	Group: DeviceControl,
	   	Description: "Version of the device's firmware. Applies to: ace, dart, pulse"}
	*/
	DeviceSerialNumber = Param{Name: "DeviceSerialNumber",
		OriginalType: OriginalTypeGenApiIString,
		Group:        DeviceControl,
		Description:  "Serial number of the device. Applies to: ace, dart, pulse"}
	/*
	   DeviceUserID = Param{Name: "DeviceUserID",

	   	OriginalType: OriginalTypeGenApiIString,
	   	Group: DeviceControl,
	   	Description: "User-settable ID of the device. Applies to: ace, dart, pulse"}

	   DeviceScanType = Param{Name: "DeviceScanType",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "DeviceScanTypeEnums",
	   	Group: DeviceControl,
	   	Description: "Returns the scan type of the device's sensor (area or line scan). Applies to: ace, dart, pulse"}
	*/
	TimestampLatch = Param{Name: "TimestampLatch",
		OriginalType: OriginalTypeGenApiICommand,
		Group:        DeviceControl,
		Description:  "Latches the current timestamp counter and stores its value in TimestampLatchValue. Applies to: ace"}
	TimestampLatchValue = Param{Name: "TimestampLatchValue",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        DeviceControl,
		Description:  "Latched value of the timestamp counter. Applies to: ace"}
	DeviceLinkSelector = Param{Name: "DeviceLinkSelector",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        DeviceControl,
		Description:  "Sets which link of the device to control. Applies to: ace, dart, pulse"}
	DeviceLinkSpeed = Param{Name: "DeviceLinkSpeed",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        DeviceControl,
		Description:  "Speed of transmission negotiated on the selected link. Applies to: ace, dart, pulse"}
	DeviceLinkThroughputLimitMode = Param{Name: "DeviceLinkThroughputLimitMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "DeviceLinkThroughputLimitModeEnums",
		Group:            DeviceControl,
		Description:      "Controls if the device link throughput limit is active. Applies to: ace, dart, pulse"}
	DeviceLinkThroughputLimit = Param{Name: "DeviceLinkThroughputLimit",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        DeviceControl,
		Description:  "Value set to limit the maximum bandwidth of the data that will be streamed out by the device (in bytes per second). Applies to: ace, dart, pulse"}
	DeviceLinkCurrentThroughput = Param{Name: "DeviceLinkCurrentThroughput",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        DeviceControl,
		Description:  "Actual bandwidth the camera will use. Applies to: ace"}
	DeviceTemperatureSelector = Param{Name: "DeviceTemperatureSelector",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "DeviceTemperatureSelectorEnums",
		Group:            DeviceControl,
		Description:      "Sets the location within the device where the temperature will be measured. Applies to: ace"}
	DeviceTemperature = Param{Name: "DeviceTemperature",
		OriginalType: OriginalTypeGenApiIFloat,
		Group:        DeviceControl,
		Description:  "Temperature of the selected location within the device (in degrees centigrade). Applies to: ace"}
	/*
	   TemperatureState = Param{Name: "TemperatureState",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "TemperatureStateEnums",
	   	Group: DeviceControl,
	   	Description: "Returns the temperature state. Applies to: ace"}

	   DeviceReset = Param{Name: "DeviceReset",

	   	OriginalType: OriginalTypeGenApiICommand,
	   	Group: DeviceControl,
	   	Description: "Immediately resets and reboots the device. Applies to: ace, dart, pulse"}
	*/
	DeviceSFNCVersionMajor = Param{Name: "DeviceSFNCVersionMajor",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        DeviceControl,
		Description:  "Major version number of the SFNC specification that the device is compatible with. Applies to: ace, dart, pulse"}
	DeviceSFNCVersionMinor = Param{Name: "DeviceSFNCVersionMinor",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        DeviceControl,
		Description:  "Minor version number of the SFNC specification that the device is compatible with. Applies to: ace, dart, pulse"}
	DeviceSFNCVersionSubMinor = Param{Name: "DeviceSFNCVersionSubMinor",
		OriginalType: OriginalTypeGenApiIInteger,
		Group:        DeviceControl,
		Description:  "Subminor version number of the SFNC specification that the device is compatible with. Applies to: ace, dart, pulse"}
	DeviceIndicatorMode = Param{Name: "DeviceIndicatorMode",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "DeviceIndicatorModeEnums",
		Group:            DeviceControl,
		Description:      "Controls the behavior of the indicators (such as LEDs) showing the status of the device. Applies to: dart"}
	/*
	   DeviceRegistersStreamingStart = Param{Name: "DeviceRegistersStreamingStart",

	   	OriginalType: OriginalTypeGenApiICommand,
	   	Group: DeviceControl,
	   	Description: "Prepare the device for registers streaming without checking for consistency. Applies to: dart, pulse"}

	   DeviceRegistersStreamingEnd = Param{Name: "DeviceRegistersStreamingEnd",

	   	OriginalType: OriginalTypeGenApiICommand,
	   	Group: DeviceControl,
	   	Description: "Announce the end of registers streaming. Applies to: dart, pulse"}

	   UserDefinedValueSelector = Param{Name: "UserDefinedValueSelector",

	   	OriginalType: OriginalTypeGenApiIEnumerationT,
	   	OriginalEnumType: "UserDefinedValueSelectorEnums",
	   	Group: UserDefinedValueControl,
	   	Description: "Sets the user-defined value to set or read. Applies to: ace"}

	   UserDefinedValue = Param{Name: "UserDefinedValue",

	   	OriginalType: OriginalTypeGenApiIInteger,
	   	Group: UserDefinedValueControl,
	   	Description: "A user defined value. Applies to: ace"}
	*/
	RemoveParameterLimitSelector = Param{Name: "RemoveParameterLimitSelector",
		OriginalType:     OriginalTypeGenApiIEnumerationT,
		OriginalEnumType: "RemoveParameterLimitSelectorEnums",
		Group:            RemoveParameterLimitControl,
		Description:      "Sets the parameter whose factory limits should be removed. Applies to: ace"}
	RemoveParameterLimit = Param{Name: "RemoveParameterLimit",
		OriginalType: OriginalTypeGenApiIBoolean,
		Group:        RemoveParameterLimitControl,
		Description:  "Removes the factory limit of the selected parameter. Applies to: ace"}
)
View Source
var ByteOrder = binary.LittleEndian // binary.BigEndian // == exif.TestDefaultByteOrder
View Source
var (
	GigEParams = ParamList{}/* 396 elements not displayed */

)
View Source
var GoJpegOptions = jpeg.Options{Quality: jpeg.DefaultQuality} // sorta const, yeah

save to JPEG using Go's builtin facility

View Source
var PixelTypeName = map[EPixelType]string{
	PixelType_Undefined: "Undefined",

	PixelType_Mono8:        "Mono8",
	PixelType_Mono8signed:  "Mono8signed",
	PixelType_Mono10:       "Mono10",
	PixelType_Mono10packed: "Mono10packed",
	PixelType_Mono10p:      "Mono10p",
	PixelType_Mono12:       "Mono12",
	PixelType_Mono12packed: "Mono12packed",
	PixelType_Mono12p:      "Mono12p",
	PixelType_Mono16:       "Mono16",

	PixelType_BayerGR8: "BayerGR8",
	PixelType_BayerRG8: "BayerRG8",
	PixelType_BayerGB8: "BayerGB8",
	PixelType_BayerBG8: "BayerBG8",

	PixelType_Mono1packed: "Mono1packed",
	PixelType_Mono2packed: "Mono2packed",
	PixelType_Mono4packed: "Mono4packed",

	PixelType_BayerGR10: "BayerGR10",
	PixelType_BayerRG10: "BayerRG10",
	PixelType_BayerGB10: "BayerGB10",
	PixelType_BayerBG10: "BayerBG10",

	PixelType_BayerGR12: "BayerGR12",
	PixelType_BayerRG12: "BayerRG12",
	PixelType_BayerGB12: "BayerGB12",
	PixelType_BayerBG12: "BayerBG12",

	PixelType_RGB8packed: "RGB8packed",
	PixelType_BGR8packed: "BGR8packed",

	PixelType_RGBA8packed: "RGBA8packed",
	PixelType_BGRA8packed: "BGRA8packed",

	PixelType_RGB10packed: "RGB10packed",
	PixelType_BGR10packed: "BGR10packed",

	PixelType_RGB12packed: "RGB12packed",
	PixelType_BGR12packed: "BGR12packed",

	PixelType_RGB16packed: "RGB16packed",

	PixelType_BGR10V1packed: "BGR10V1packed",
	PixelType_BGR10V2packed: "BGR10V2packed",

	PixelType_YUV411packed: "YUV411packed",
	PixelType_YUV422packed: "YUV422packed",
	PixelType_YUV444packed: "YUV444packed",

	PixelType_RGB8planar:  "RGB8planar",
	PixelType_RGB10planar: "RGB10planar",
	PixelType_RGB12planar: "RGB12planar",
	PixelType_RGB16planar: "RGB16planar",

	PixelType_YUV422_YUYV_Packed: "YUV422_YUYV_Packed",
	PixelType_YUV444planar:       "YUV444planar",
	PixelType_YUV422planar:       "YUV422planar",
	PixelType_YUV420planar:       "YUV420planar",

	PixelType_YCbCr422_8_YY_CbCr_Semiplanar: "YCbCr422_8_YY_CbCr_Semiplanar",
	PixelType_YCbCr420_8_YY_CbCr_Semiplanar: "YCbCr420_8_YY_CbCr_Semiplanar",

	PixelType_BayerGR12Packed: "BayerGR12Packed",
	PixelType_BayerRG12Packed: "BayerRG12Packed",
	PixelType_BayerGB12Packed: "BayerGB12Packed",
	PixelType_BayerBG12Packed: "BayerBG12Packed",

	PixelType_BayerGR10p: "BayerGR10p",
	PixelType_BayerRG10p: "BayerRG10p",
	PixelType_BayerGB10p: "BayerGB10p",
	PixelType_BayerBG10p: "BayerBG10p",

	PixelType_BayerGR12p: "BayerGR12p",
	PixelType_BayerRG12p: "BayerRG12p",
	PixelType_BayerGB12p: "BayerGB12p",
	PixelType_BayerBG12p: "BayerBG12p",

	PixelType_BayerGR16: "BayerGR16",
	PixelType_BayerRG16: "BayerRG16",
	PixelType_BayerGB16: "BayerGB16",
	PixelType_BayerBG16: "BayerBG16",

	PixelType_RGB12V1packed: "RGB12V1packed",

	PixelType_Double: "Double",
}
View Source
var UsbParams = ParamList{}/* 253 elements not displayed */

Functions

func GetPixelIncrementX

func GetPixelIncrementX(pixelType EPixelType) uint32

/ Returns the minimum step size expressed in pixels for extracting an AOI.

func GetPixelIncrementY

func GetPixelIncrementY(pixelType EPixelType) uint32

/ Returns the minimum step size expressed in pixels for extracting an AOI.

func GetPixelTypesForUnpacking

func GetPixelTypesForUnpacking(pixelTypeSource EPixelType,
	pixelTypeToImpose *EPixelType,
	pixelTypeTarget *EPixelType) bool

! \brief Returns the pixel types needed for conversion from packed to unpacked image formats using the CImageFormatConverter class.

The following pixel types are supported: <ul> <li> source: PixelType_Mono1packed target: PixelType_Mono8 <li> source: PixelType_Mono2packed target: PixelType_Mono8 <li> source: PixelType_Mono4packed target: PixelType_Mono8 <li> source: PixelType_Mono10packed target: PixelType_Mono16 <li> source: PixelType_Mono10p target: PixelType_Mono16 <li> source: PixelType_Mono12packed target: PixelType_Mono16 <li> source: PixelType_Mono12p target: PixelType_Mono16 <li> source: PixelType_BayerGB12Packed imposed: PixelType_Mono12packed target: PixelType_Mono16 <li> source: PixelType_BayerGR12Packed imposed: PixelType_Mono12packed target: PixelType_Mono16 <li> source: PixelType_BayerRG12Packed imposed: PixelType_Mono12packed target: PixelType_Mono16 <li> source: PixelType_BayerBG12Packed imposed: PixelType_Mono12packed target: PixelType_Mono16 <li> source: PixelType_BayerGB10p imposed: PixelType_Mono10p target: PixelType_Mono16 <li> source: PixelType_BayerGR10p imposed: PixelType_Mono10p target: PixelType_Mono16 <li> source: PixelType_BayerRG10p imposed: PixelType_Mono10p target: PixelType_Mono16 <li> source: PixelType_BayerBG10p imposed: PixelType_Mono10p target: PixelType_Mono16 <li> source: PixelType_BayerGB12p imposed: PixelType_Mono12p target: PixelType_Mono16 <li> source: PixelType_BayerGR12p imposed: PixelType_Mono12p target: PixelType_Mono16 <li> source: PixelType_BayerRG12p imposed: PixelType_Mono12p target: PixelType_Mono16 <li> source: PixelType_BayerBG12p imposed: PixelType_Mono12p target: PixelType_Mono16 </ul>

\param[in] pixelTypeSource The source pixel type. \param[out] pixelTypeToImpose The pixel type that is used for conversion instead of the source pixel type.

Returns \c pixelTypeSource if changing the source pixel type is not needed.
Returns PixelType_Undefined if no unpacking is needed.

\param[out] pixelTypeTarget The pixel type to which the image pixel data are converted.

Returns PixelType_Undefined if no unpacking is needed.

\return Returns true if the source \c pixelTypeSource is in packed image format and a conversion is possible.

func Go_fetch_callback

func Go_fetch_callback(i C.int,
	w C.int, h C.int, pxt C.int,
	size C.int, buffer *C.char,
) C.int

func HasAlpha

func HasAlpha(pixelType EPixelType) bool

/ Returns true when an the image using the given pixel type has an alpha channel.

func IsBGR

func IsBGR(pixelType EPixelType) bool

/ Returns true when the pixel type represents a BGR or BGRA format.

func IsBGRA

func IsBGRA(pixelType EPixelType) bool

/ Returns true when the pixel type represents a BGRA format.

func IsBGRPacked

func IsBGRPacked(pixelType EPixelType) bool

Returns true if the pixel type is BGR and the pixel values are not byte aligned.

func IsBayer

func IsBayer(pixelType EPixelType) bool

/ Returns true when the pixel type represents a Bayer format.

func IsBayerPacked

func IsBayerPacked(pixelType EPixelType) bool

Returns true if the pixel type is Bayer and the pixel values are not byte aligned.

func IsColorImage

func IsColorImage(pixelType EPixelType) bool

/ Returns true when an image using the given pixel type is a color image (RGB/BGR/RGBA/BGRA/ etc or Bayer.

func IsMono

func IsMono(pixelType EPixelType) bool

/ Returns true when a given pixel is monochrome, e.g. PixelType_Mono8 or PixelType_BayerGR8.

func IsMonoImage

func IsMonoImage(pixelType EPixelType) bool

/ Returns true when an image using the given pixel type is monochrome, e.g. PixelType_Mono8.

func IsMonoPacked

func IsMonoPacked(pixelType EPixelType) bool

Returns true if the pixel type is Mono and the pixel values are not byte aligned.

func IsPacked

func IsPacked(pixelType EPixelType) bool

Returns true if the pixels of the given pixel type are not byte aligned.

func IsPackedInLsbFormat

func IsPackedInLsbFormat(pixelType EPixelType) bool

Returns true if the pixel type is packed in lsb packed format. For lsb packed format, the data is filled lsb first in the lowest address byte (byte 0) starting with the first pixel and continued in the lsb of byte 1 (and so on). See the camera User's Manual or the Pixel Format Naming Convention (PFNC) of the GenICam standard group for more information.

func IsPlanar

func IsPlanar(pixelType EPixelType) bool

Returns true if images of the pixel type are divided into multiple planes.

func IsRGB

func IsRGB(pixelType EPixelType) bool

/ Returns true when the pixel type represents an RGB or RGBA format.

func IsRGBA

func IsRGBA(pixelType EPixelType) bool

/ Returns true when the pixel type represents an RGBA format.

func IsRGBPacked

func IsRGBPacked(pixelType EPixelType) bool

Returns true if the pixel type is RGB and the pixel values are not byte aligned.

func IsYUV

func IsYUV(pixelType EPixelType) bool

/ Returns true when the pixel type represents a YUV format.

func PlaneCount

func PlaneCount(pixelType EPixelType) uint32

Returns number of planes in the image composed of the pixel type.

func RationalExifTagValue

func RationalExifTagValue(num uint32, den uint32) []exif.Rational

func SRationalExifTagValue

func SRationalExifTagValue(num int32, den int32) []exif.SignedRational

func ShortExifTagValue

func ShortExifTagValue(value uint16) []uint16

func StringExifTagValue

func StringExifTagValue(value string) string

func TimestampExifTagValue

func TimestampExifTagValue(value time.Time) string

func UserCommentExifTagValue

func UserCommentExifTagValue(value string) exif.TagUnknownType_9298_UserComment

Types

type Camera

type Camera struct {
	// contains filtered or unexported fields
}

func (*Camera) AttachDevice

func (cam *Camera) AttachDevice() error

func (*Camera) CloseCamera

func (cam *Camera) CloseCamera() error

func (*Camera) ConfigureCamera

func (cam *Camera) ConfigureCamera() error

func (*Camera) Fetch

func (cam *Camera) Fetch(cb func(c *Camera, w, h, pt, size int, buffer []byte) int) error
Sample usage:

import (

"fmt"
"time"
...

) import "pylon"

func do() {
	cam := &pylon.Camera{}

	if e := cam.AttachDevice(); e != nil { fmt.Fatalf("cam.AttachDevice(): %v", e); }
	if e := cam.OpenCamera(); e != nil { fmt.Fatalf("cam.OpenCamera(): %v", e); }
	defer cam.CloseCamera()
	if e := cam.ConfigureCamera(); e != nil { fmt.Fatalf("cam.ConfigureCamera(): %v", e); }

	var saved []string
	const savePathPrefix = "/a/b/c/d"
	const savePathSuffix = ".jpg"

	FrameCallback := func(w, h, pxt, size int, buffer []byte) int {
		pt := pylon.EPixelType(pxt)
		fmt.Printf("FrameCallback(w=%#v, h=%#v, pt=%08x=%s, size=%#v, buffer=%#v...)\n",
			   w, h, pxt, pt.String(), size, buffer[0])
		t1 := time.Now()

		path := createFilePath(savePathPrefix, t1, savePathSuffix)

		if e := save2jpeg(path, w, h, buffer); e != nil {
			fmt.Fatalf("Cannot save to %#v: %v", path, e)
		}
		saved = append(saved, path)

		fmt.Printf("FrameCallback taken %v\n\n", time.Now().Sub(t1))
		return 0
	}

	cam.SetFetchTimeout(5000) // ms
	cam.SetFetchCount(10)

	cb := pylon.FrameCallbackType(FrameCallback)

	if e := cam.Fetch(cb); e != nil { fmt.Fatalf("Fetch failed: %v", e); }

	if len(saved) > 0 {
		// HANDLE SAVED FILES
	}
}

func (*Camera) GetParam

func (cam *Camera) GetParam(p Param) (value interface{}, e error)

func (*Camera) Info

func (cam *Camera) Info() (*CameraInfo, error)

func (*Camera) IsGrabbing

func (cam *Camera) IsGrabbing() bool

func (*Camera) OpenCamera

func (cam *Camera) OpenCamera() error

func (*Camera) Pointer

func (cam *Camera) Pointer() unsafe.Pointer

func (*Camera) RetrieveAndSave

func (cam *Camera) RetrieveAndSave(batch, timeout int, outputPath string) error

func (*Camera) SetFetchCount

func (cam *Camera) SetFetchCount(v uint)

func (*Camera) SetFetchTimeout

func (cam *Camera) SetFetchTimeout(v uint)

func (*Camera) SetHardwareTriggerConfiguration

func (cam *Camera) SetHardwareTriggerConfiguration() error

func (*Camera) SetParam

func (cam *Camera) SetParam(p Param, value interface{}) error

func (*Camera) StartCapture

func (cam *Camera) StartCapture(max int) error

func (*Camera) StopCapture

func (cam *Camera) StopCapture() error

type CameraInfo

type CameraInfo struct {
	FullName, VendorName, ModelName, SerialNumber, DeviceVersion string
	ProductId, VendorId, Width, Height                           int
}

type EPixelColorFilter

type EPixelColorFilter int

/ Lists the Bayer color filter types.

func GetPixelColorFilter

func GetPixelColorFilter(pixelType EPixelType) EPixelColorFilter

/ Returns the Bayer color filter type.

type EPixelType

type EPixelType uint32

func GetPlanePixelType

func GetPlanePixelType(pixelType EPixelType) EPixelType

/ Returns the pixel type of a plane.

func NewEPixelType

func NewEPixelType(class, bits, subtype int) EPixelType

func (*EPixelType) Bits

func (pt *EPixelType) Bits() int

func (*EPixelType) Class

func (pt *EPixelType) Class() int

func (*EPixelType) ClassName

func (pt *EPixelType) ClassName() string

func (*EPixelType) IsColor

func (pt *EPixelType) IsColor() bool

func (*EPixelType) IsCustom

func (pt *EPixelType) IsCustom() bool

func (*EPixelType) IsMono

func (pt *EPixelType) IsMono() bool

func (*EPixelType) IsUndefined

func (pt *EPixelType) IsUndefined() bool

func (*EPixelType) IsValid

func (pt *EPixelType) IsValid() bool

func (*EPixelType) String

func (pt *EPixelType) String() string

func (*EPixelType) Type

func (pt *EPixelType) Type() int

type Exif

type Exif map[string]interface{}

******************************************************************************

  • types to carry lists of EXIF tags to be injected

type ExifInjector

type ExifInjector struct {
	Jpeg []byte
	Tags ExifTagList
	// contains filtered or unexported fields
}

"class" to handle EXIF data and insertion of tags

func NewExifInjector

func NewExifInjector(data []byte) (*ExifInjector, error)

NewExifInjector: constructor; I don't want to see uninitialized injectors

func (*ExifInjector) AddTag

func (self *ExifInjector) AddTag(path, name string, value interface{})

AddTag: adds an EXIF tag to be .Inject()ed

func (*ExifInjector) AddTagList

func (self *ExifInjector) AddTagList(list *ExifTagList)

AddTagList: adds an entire bunch of EXIF tags to be .Inject()ed

func (*ExifInjector) AddTags

func (self *ExifInjector) AddTags(list map[string]interface{})

func (*ExifInjector) HasDQT

func (self *ExifInjector) HasDQT() bool

do we still have a DQT?

func (*ExifInjector) Inject

func (self *ExifInjector) Inject() error

Inject: will inject tags added with .AddTag() and/or .AddTagList() calls

func (*ExifInjector) LoadBytes

func (self *ExifInjector) LoadBytes(data []byte) error

Normally you don't need to call LoadBytes() as it is called from NewExifInjector() The call sets .Jpeg and initializes interim data structures for .Inject()ion.

type ExifTag

type ExifTag struct {
	Path  string
	Name  string
	Value interface{}
}

func NewExifTag

func NewExifTag(path, name string, value interface{}) *ExifTag

empty ("") `path` means "search for path yourself"

func RationalExifTag

func RationalExifTag(path, name string, num uint32, den uint32) *ExifTag

func SRationalExifTag

func SRationalExifTag(path, name string, num int32, den int32) *ExifTag

func ShortExifTag

func ShortExifTag(path, name string, value uint16) *ExifTag

func StringExifTag

func StringExifTag(path, name string, value string) *ExifTag

func UserCommentExifTag

func UserCommentExifTag(path, name string, value string) *ExifTag

type ExifTagList

type ExifTagList []*ExifTag

type FrameCallbackType

type FrameCallbackType func(c *Camera, w, h, pxt, size int, buffer []byte) int

The type of callback function. It recieves the grabbed image with width of `w`, height of `h`, and pixel type of `pxt` in `buffer` of `size` bytes.

type IBoolean

type IBoolean string

type ICommand

type ICommand string

type IEnumerationT

type IEnumerationT string

type IFloat

type IFloat string

type IInteger

type IInteger string

type IRegister

type IRegister string

type IString

type IString string

type Param

type Param struct {
	Name             string
	Group            ParamGroup
	Description      string
	OriginalType     string
	OriginalEnumType string
}

type ParamGroup

type ParamGroup int
const (
	SequenceControl ParamGroup = iota
	SequenceControlConfiguration
	AnalogControls
	ImageFormat
	DeviceInformation
	ColorImprovementsControl
	AOI
	StackedZoneImaging
	AcquisitionTrigger
	DigitalIO
	VirtualInput
	ShaftEncoderModule
	FrequencyConverter
	TimerControls
	TimerSequence
	LUTControls
	TransportLayer
	ActionControl
	DeviceControl
	UserSets
	AutoFunctions
	AutoFunctionAOIs
	ColorOverexposureCompensation
	Shading
	UserDefinedValues
	FeatureSets
	RemoveParamLimits
	ExpertFeatureAccess
	ChunkDataStreams
	ChunkData
	EventsGeneration
	ExposureEndEventData
	LineStartOvertriggerEventData
	FrameStartOvertriggerEventData
	FrameStartEventData
	AcquisitionStartEventData
	AcquisitionStartOvertriggerEventData
	FrameTimeoutEventData
	EventOverrunEventData
	CriticalTemperatureEventData
	OverTemperatureEventData
	Line1RisingEdgeEventData
	Line2RisingEdgeEventData
	Line3RisingEdgeEventData
	Line4RisingEdgeEventData
	VirtualLine1RisingEdgeEventData
	VirtualLine2RisingEdgeEventData
	VirtualLine3RisingEdgeEventData
	VirtualLine4RisingEdgeEventData
	FileAccessControl

	SequencerControl // USB specific
	PGIControl
	AutoFunctionROIControl
	SoftwareSignalControl
	EventExposureEndData
	EventFrameStartData
	EventFrameBurstStartData
	EventFrameStartOvertriggerData
	EventFrameBurstStartOvertriggerData
	EventTestData
	EventCriticalTemperatureData
	EventOverTemperatureData
	EventFrameStartWaitData
	EventFrameBurstStartWaitData
	RemoveParameterLimitControl

	ImageFormatControl     = DeviceInformation // WTF?
	AnalogControl          = AnalogControls
	ImageQualityControl    = ColorImprovementsControl
	AcquisitionControl     = AcquisitionTrigger
	AutoFunctionControl    = AutoFunctions
	AutoFunctionAOIControl = AutoFunctionAOIs
	DigitalIOControl       = DigitalIO
	CounterAndTimerControl = TimerControls
	UserSetControl         = UserSets
	ChunkDataControl       = ChunkDataStreams
	EventControl           = EventsGeneration
	TransportLayerControl  = TransportLayer

	OriginalTypeGenApiIBoolean      = "GenApi::IBoolean"
	OriginalTypeGenApiICommand      = "GenApi::ICommand"
	OriginalTypeGenApiIInteger      = "GenApi::IInteger"
	OriginalTypeGenApiIEnumerationT = "GenApi::IEnumerationT"
	OriginalTypeGenApiIFloat        = "GenApi::IFloat"
	OriginalTypeGenApiIString       = "GenApi::IString"
	OriginalTypeGenApiIRegister     = "GenApi::IRegister"
)

func (ParamGroup) Description

func (p ParamGroup) Description() string

func (ParamGroup) String

func (p ParamGroup) String() string

type ParamList

type ParamList []Param

func (ParamList) ParamByName

func (pl ParamList) ParamByName(n string) *Param

func (ParamList) ParamGroup

func (pl ParamList) ParamGroup(pg ParamGroup) ParamList

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

It is expected to be sorta "singleton" object, but one can use more.

func (*Registry) Add

func (r *Registry) Add(f FrameCallbackType) int

Adds a callback to the registry within MAX_REG limit. Returns the index of added entry. Note: there is no "remove" operation.

func (*Registry) Annotate

func (r *Registry) Annotate(i int, a interface{})

func (*Registry) Get

func (r *Registry) Get(i int) (FrameCallbackType, interface{})

Retruns the registered callback for given index, if any.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL