Syntax
PXL_RETURN_CODE PxLSetFeature ( HANDLE hCamera, U32 featureId, U32 flags, U32 numParams, float const * pParams );
Description
This function sets the value and flags of the selected camera feature.
- hCamera is the camera handle. This value is returned by PxLInitializeEx. 
- featureId is the feature ID. For a list of the possible values, see PixeLINKTypes.h or feature types. 
- flags are the properties to be set for the feature. Feature flags are defined in the file PixeLINKTypes.h. 
Note : Exactly one of the following flags must be set when the function is called
- FEATURE_FLAG_MANUAL—The application is controlling the feature by sending parameters to the camera. 
- FEATURE_FLAG_AUTO—Ask the camera to automatically control the feature continuously. No intervention by the user is possible. 
- FEATURE_FLAG_OFF—The feature is disabled. The exact effect of turning a feature OFF depends on the camera and the specific feature. 
- FEATURE_FLAG_ONEPUSH—The camera sets the feature only once and then returns to manual operation. This flag will be cleared by the camera when the operation is finished. 
- numParams is the number of parameters in the pParams array 
- pParams is the pointer to the array of values for the feature. 
Usage
  U32 flags = 0;
  U32 numParams = 1;
  float* params;
  PXL_RETURN_CODE rc;
  // Determine the number of parameters
  // So that we can read the current parameters and flags
  rc = PxLGetFeature(hCamera, FEATURE_SHUTTER, &flags, &numParams, NULL);
  
  params = (float *)malloc(sizeof(float)*numParams);
  
  // Read the current flags and parameter setting
  rc = PxLGetFeature(hCamera, FEATURE_SHUTTER, &flags, &numParams, params);
  // Select a new exposure value.
  params[0] = 0.0001;
  rc = PxLSetFeature(hCamera, FEATURE_SHUTTER, FEATURE_FLAG_MANUAL, numParams, params);
  if (!API_SUCCESS(rc)) {
    // Error handling here.
  }
dotNET Usage
float[] newExposure = new float[1];
newExposure[0] = 0.0034;
ReturnCode rc = Api.SetFeature(hCamera, Feature.Shutter, FeatureFlags.Manual, 1, newExposure);
if(!Api.IsSuccess(rc)) {
   //Error handling here
}Comments, Restrictions and Limitations
Features
Features are camera dependent. The PxLGetCameraFeatures function should be used to identify the presence and range of all features present in the camera.
When using this function, remember to review the error return codes. Setting a value out of range, setting an unsupported flag or accessing an unsupported feature will cause an error. See PxLGetErrorReport.
The following features can only be set if the stream state is turned off (STOP_STREAM) or paused (PAUSED_STREAM). See PxLSetStreamState.
- FEATURE_LOOKUP_TABLE 
- FEATURE_FRAME_RATE 
- FEATURE_PIXEL_FORMAT 
- FEATURE_PIXEL_ADDRESSING 
- FEATURE_TRIGGER 
- FEATURE_ROI 
- FEATURE_IMAGER_CLK_DIVISOR 
Using PxLSetFeature with descriptors
PxLSetFeature can change the settings of any custom descriptors that are in use. Custom descriptors are managed using the advanced functions.
Note that if all descriptors are in focus at once (rather than just a single descriptor), calling PxLSetFeature will set the properties in all descriptors simultaneously.
