is_PowerDelivery

uEye Kamera-Handbuch Version 4.92


is_PowerDelivery

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)

Beschreibung

USB Power Delivery (PD) erweitert das USB-System um ein sehr flexibles Stromversorgungsmanagement, das neben der Datenverbindung über dasselbe Kabel realisiert wird. Die Rollenverteilung in Stromlieferant und Verbraucher mitsamt der begrenzten Spannung und Stromstärke gibt es damit nicht mehr. PD-fähige Geräte handeln ihre Fähigkeiten und Anforderungen bezüglich der Versorgungsspannung über ein genormtes Protokoll aus.

IDS Imaging Development Systems GmbH führt USB Power Delivery erstmals mit den Kamerafamilien mit USB Type-C Stecker ein. Die PD-fähige Kamera fordert als PD-Consumer mehr Leistung an, als sie für sich selbst benötigt. Die zusätzliche Spannung wird verwendet, um z. B. über den I/O-Stecker der Kamera eine LED-Beleuchtung mit Strom zu versorgen.

Voraussetzung hierfür ist, dass der Host-PC ebenfalls USB Power Delivery unterstützt und entsprechend mehr Leistung zur Verfügung stellt. Beachten Sie, dass die Stromübertragung über USB Power Delivery nur mit Type-C auf Type-C-Kabeln ("Full Featured"-Kabel) möglich ist.

Mit der Funktion is_PowerDelivery() fragen Sie ab, welche USB Power Delivery Profile die Kamera in Verbindung mit dem Host-PC unterstützt und setzen das entsprechende Profil. Beachten Sie, dass bei einem Reconnect das Profil neu gesetzt werden muss. Das Umschalten zwischen Power Delivery-Profilen sollte vor dem Start des Bildeinzugs durchgeführt werden. Ist der Bildeinzug bereits gestartet, wird dieser beim Umschalten kurzzeitig gestoppt.

hint_info

Achten Sie darauf, dass beim Umschalten zwischen verschiedenen Power Delivery-Profilen das angeschlossene Peripheriegerät keine Leistung aufnimmt. Ist beim Umschalten die Stromaufnahme des Peripheriegeräts zu groß, kann es vorkommen, dass der Host die Kameras abschaltet. Dies führt zu einem Neustart der Kamera mit dem Fallback-Profil.

Über den Übergabeparameter nCommand wird dabei der Funktionsmodus gewählt. Der Übergabeparameter pParam ist abhängig vom Funktionsmodus unterschiedlich belegt; bei Funktionen zum Setzen oder Rücklesen eines Wertes enthält pParam einen Zeiger auf eine Variable vom Typ UINT. Die Größe des Speicherbereichs, auf den pParam verweist, wird im Übergabeparameter cbSizeOfParam angegeben.

Übergabeparameter

hCam

Handle auf Kamera

pParam

Zeiger auf Funktionsparameter, der abhängig von nCommand unterschiedlich belegt ist.

cbSizeOfParam

Größe des Speicherbereichs in Byte, auf den pParam verweist.

Rückgabewert

IS_INVALID_PARAMETER

Einer der übergebenen Parameter ist außerhalb des gültigen Bereichs, oder für diesen Sensor nicht unterstützt, bzw. in diesem Modus nicht zugänglich.

IS_NO_SUCCESS

Allgemeine Fehlermeldung

IS_NOT_SUPPORTED

Das verwendete Kameramodell unterstützt diese Funktion oder Einstellung nicht.

IS_SUCCESS

Funktion erfolgreich

Beispiel 1

/* Check if power delivery is supported */
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 */
}

Beispiel 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 */
  }
}

Beispiel 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 */
  }
}

Beispiel 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 */
}

Haben Sie Verbesserungshinweise? Senden Sie ein kurzes Feedback zu diesem Kapitel. Vielen Dank!
Bei technischen Fragen wenden Sie sich bitte an Ihren lokalen Händler oder nutzen Sie das Support-Formular auf unserer Internetseite.


© 2019 IDS Imaging Development Systems GmbH
https://de.ids-imaging.com