Please enable JavaScript to view this site.

IDS Software Suite 4.96.1

Windows_Logo
Linux_Logo

uEye LE USB 3.1 Gen 1

uEye SE USB 3.1 Gen 1

uEye LE USB 3.1 Gen 1

uEye SE USB 3.1 Gen 1

Syntax

INT is_PowerDelivery(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParams)

Description

USB Power Delivery (PD) expands the USB system with a very flexible power supply management which is implemented in addition to the data connection via the same cable. The distribution of roles in power supplier and consumer with limited voltage and current thus no longer exists. PD-capable devices negotiate their capabilities and requirements concerning supply voltage over a standardized protocol.

IDS Imaging Development Systems GmbH introduces USB Power Delivery for the first time with the camera families with USB Type-C connectors. The PD-capable camera requests as a PD consumer more power than it needs for itself. The additional voltages are used, for example to power an LED light via the camera's I/O connector.

The prerequisite is that the host PC also supports USB Power Delivery and correspondingly provides more power. Note that power transmission via USB Power Delivery is only possible with "Full Featured" USB Type-C to Type-C cables.

Via the is_PowerDelivery() function, you can query which USB Power Delivery profiles are supported by the camera in combination with the host PC and set the appropriate profile. Note that the profile has to be set again after a reconnect. Switching between power delivery profiles should be performed before image acquisition starts. If image acquisition is already started, it is stopped briefly when switching.

hint_info

Make sure that the connected peripheral devices does not receive any power when switching between different power delivery profiles. If the power consumption of the peripheral device is too high during switching, the host may turn off the cameras. This will restart the camera with the fallback profile.

The nCommand input parameter is used to select the function mode. The pParam input parameter depends on the selected function mode. If you select functions for setting or returning a value, pParam contains a pointer to a variable of the UINT type. The size of the memory area to which pParam refers is specified in the cbSizeOfParam input parameter.

Input parameter

hCam

Camera handle

pParam

Pointer to a function parameter, whose function depends on nCommand.

cbSizeOfParam

Size (in bytes) of the memory area to which pParam refers.

Return values

IS_INVALID_PARAMETER

One of the submitted parameters is outside the valid range or is not supported for this sensor or is not available in this mode.

IS_NO_SUCCESS

General error message

IS_NOT_SUPPORTED

The camera model used here does not support this function or setting.

IS_SUCCESS

Function executed successfully

Example 1

/* Check if power delivery is supported. Note that value 'BOOL' is not a boolean value but a typedef int! */
BOOL bPowerDeliverySupported = FALSE;
INT nRet = is_PowerDelivery(m_hCam, IS_POWER_DELIVERY_GET_SUPPORTED, (void*)&bPowerDeliverySupported, sizeof(bPowerDeliverySupported));
if ((nRet == IS_SUCCESS) && bPowerDeliverySupported)
{
  /* Power delivery supported */
}

Example 2

/* Get the available profiles */
UINT nProfiles = IS_POWER_DELIVERY_PROFILE_INVALID;
INT nRet = is_PowerDelivery(m_hCam, IS_POWER_DELIVERY_CMD_GET_SUPPORTED_PROFILES, (void*)&nProfiles, sizeof(nProfiles));
if (nRet == IS_SUCCESS)
{
  if ((nProfiles & IS_POWER_DELIVERY_PROFILE_15V) == IS_POWER_DELIVERY_PROFILE_15V)
  {
      /* 15V power profile is supported */
  }
}

Example 3

/* Get the current power delivery mode */
UINT nProfile = IS_POWER_DELIVERY_PROFILE_INVALID;
INT nRet = is_PowerDelivery(m_hCam, IS_POWER_DELIVERY_CMD_GET_PROFILE, (void*)&nProfile, sizeof(nProfile));
if (nRet == IS_SUCCESS)
{
  /* nProfile holdes one of the profiles defined in POWER_DELIVERY_PROFILES in ueye.h, check for your needs e.g. for the 15V profile: */
  if ((nProfile & IS_POWER_DELIVERY_PROFILE_15V) == IS_POWER_DELIVERY_PROFILE_15V)
  {
      /* Current Profile is 15V */
  }
}

Example 4

/* Set the selected profile */
UINT nProfile = IS_POWER_DELIVERY_PROFILE_15V;
INT nRet = is_PowerDelivery(m_pMainView->GetCameraHandle(), IS_POWER_DELIVERY_CMD_SET_PROFILE, (void*)&nProfile, sizeof(nProfile));
if (nRet == IS_SUCCESS)
{
  /* 15V profile is set */
}

© 2022 IDS Imaging Development Systems GmbH