跳转到内容

Light Control#

Light Control 功能允许您控制多达 4 个光源设备。

该功能所基于的 SLP 协议支持相机和光源设备直接相互通信。

如果您使用 Basler Standard Light 或其他制造商提供的 LED 照明解决方案,您需要 Basler SLP Strobe Controller 来实现相机和光源之间的通信。

如果您使用 Basler Camera Light,由于其中已经包含了控制器功能,因此不需要单独的控制器。

信息

For dart M cameras, the Light Control feature is currently only available if you use a Basler dart M interface board (either the Interface Board ⁠dart M GigE RJ45 PoE or the ⁠Interface Board dart M GigE RJ45 AUX).

该功能的使用#

配置光源设备#

要配置您的光源设备:

  1. 使用 pylon Viewer 时,请确保选择了功能窗格中的轮询选项:

    pylon Viewer 中的轮询选项

  2. 确保相机空闲,即未在捕获图像。

  3. 如果尚未连接照明设备和控制器,请执行连接。
  4. BslLightControlMode 参数设置为 On
  5. 执行 BslLightControlEnumerateDevices 命令。
    这使得光源设备能够通过 GPIO 线路进行通信并分配光源设备 ID
  6. 如果您的环境中有多个光源设备,请将 BslLightDeviceSelector 参数设置为您要配置的设备。
    确保设备连接正确,即 BslLightDeviceErrorStatus 参数返回 NoError
  7. 如果您使用 Basler SLP Strobe Controller:

    1. 设置 BslLightDeviceControlMode 参数以指定您想要如何控制光源设备。
      每个光源都可以通过电流控制 (Current) 进行控制。对于设计用于 12 VDC 或 24 VDC 连接的光源,建议使用电压控制(Voltage12VVoltage24V)。
    2. BslLightDeviceOperationMode 参数设置为 Off
    3. BslLightDeviceMaxCurrent 参数设置为光源在连续工作时的标称额定电流(以 mA 为单位)。

      注意 – 指定过高的标称额定电流会损坏您的光源。

      使用电流控制时,请确保指定您的光源可以承受的标称额定电流。

      否则,您的光源会在工作时损坏。

  8. BslLightDeviceBrightness 参数设置为所需的亮度。
    值 100.0 对应于照明设备标称额定电流的 100%。50% 会将电流减小 1/2。您还可以将亮度设置为 100% 以上。这称为过载

  9. 设置 BslLightDeviceOperationMode 参数设置为所需模式:
    • On:将使光源连续发光。
    • Strobe:将光源设置为频闪模式
  10. 如果需要,请将设置保存在用户设置中。

信息

  • 如果您使用 Basler Camera Light,BslLightDeviceControlModeBslLightDeviceMaxCurrent 参数是自动设置的。
  • 在您每次从电流切换到电压时(反之亦然),控制器存在短暂的初始化阶段,在此期间,连接的光源设备将亮起。此阶段可能会持续长达 15 s,这是正常现象。

频闪模式#

频闪模式允许您在需要时操作闪光灯等照明设备,而不是连续操作它。

使用频闪模式具有以下优点:

  • 它可以帮助延长光源的预期寿命。通过仅在需要时打开光源,LED 中产生的热量更少。这减慢了光源的老化过程。
  • 在频闪模式下,您可以使光源过载,也就是说,将提供的电流最大增加到 500%(对于光源控制器),从而增加光源的亮度。

要启用频闪模式,请选择一个光源设备并将 BslLightDeviceOperationMode 参数设置为 Strobe

配置触发信号和频闪持续时间#

一般来说,触发光源设备的工作原理如下:

  • 最初,光源已关闭
  • 光源由触发信号打开
  • 光源保持打开一段时间,即频闪持续时间。
  • 频闪持续时间结束后,光源将再次关闭
ace 2, boost R, and dart M Cameras#

To configure the trigger signals and strobe duration on ace 2, boost R, and dart M cameras:

  1. BslLightControlTriggerSource 参数设置为您要用于打开所连接光源的源,例如 FlashWindow
  2. 如果适用,请设置 BslLightControlTriggerActivation 参数设置为以下值:
    • RisingEdge(默认值):当信号上升时,即当信号状态从低电平变为高电平时,所有连接的光源都会打开。
    • FallingEdge:当信号下降时,即当信号状态从高电平变为低电平时,所有连接的光源都会打开。
    • AnyEdge:当信号下降或上升时,所有连接的光源都会打开。
  3. 设置 BslLightDeviceStrobeMode 参数设置为以下值:
    • Automatic:频闪持续时间由相机的闪烁窗口持续时间(BslFlashWindowDuration 参数)控制。BslLightDeviceStrobeDuration 参数会变为只读并显示计算出的频闪持续时间。
    • Manual:您可以使用 BslLightDeviceStrobeDuration 参数自行定义频闪持续时间。
  4. 如果选择 Manual 频闪模式,请将 BslLightDeviceStrobeDuration 参数设置为所需的频闪持续时间(以微秒为单位)。

信息

  • 如果您使用的是触发宽度 Exposure ModeExposure Auto Auto Functions,请勿使用自动频闪模式。否则,相机和光源可能会表现出不可预测的行为。
  • 如果您使用的是 Sequencer 功能,则自动频闪模式不可用。
  • 在自动频闪模式下,计算出的频闪持续时间可能比闪烁窗口持续时间短。这样做是为了补偿光源打开所需的时间,即打开延迟。
  • 如果您在达到相机性能上限时操作相机,则可能会出现过度触发
ace U/L 相机#

要配置 ace U/L 相机上的触发信号和频闪持续时间:

  1. 如果您使用的是卷帘快门相机,请将 BslLightControlTriggerMode 参数设置为以下值之一:

    • ExposureActive:曝光开始时,所有连接的光源都会打开。仅当图像采集不重叠时才使用此模式。
    • FlashWindow:当相机的 闪烁窗口信号上升时,所有连接的光源都会打开。如果您使用此模式,请确保“闪烁窗口”信号适用于您的相机型号。

    全局快门相机上,曝光开始时所有连接的光源总是会打开。

  2. BslLightDeviceStrobeMode 参数设置为以下值之一:

    • Automatic:频闪持续时间由相机的 ExposureTime 参数控制。
    • Manual:您可以使用 BslLightDeviceStrobeDuration 参数自行定义频闪持续时间。
  3. 如果选择 Manual 频闪模式,请将 BslLightDeviceStrobeDuration 参数设置为所需的频闪持续时间。

信息

使光源设备过载#

注意 – 过载可能会损坏您的光源。

请仔细阅读本节中的说明,以免损坏连接的光源,并确保光源不会过早老化。

使光源过载意味着您可以增加电流,从而在光源处于频闪模式时提高光源强度。

要使光源设备过载:

  1. 如果您使用的是 Basler Standard Light 或第三方光源设备:

    1. Calculate the maximum allowed current for your device given the current duty cycle and strobe duration. On Basler ace 2, boost R, and dart M cameras, you can read the BslLightDeviceDutyCycle parameter to determine the current duty cycle.
    2. BslLightDeviceOverdriveLimit 参数设置为相应的值。例如,如果您的光源可以承受其标称额定电流的 200%,请将过载限制设置为 200.0。

    如果您使用的是 Basler Camera Light,则会自动计算过载限制,并且 BslLightDeviceOverdriveLimit 参数不可用。

  2. BslLightDeviceBrightness 设置为大于 100.0 的值。

过载时,请考虑以下几个方面,以免损坏您的光源:

  • 如果不确定光源在频闪模式下可以承受的最大电流,请与光源的制造商联系。
  • 由于增加的电流会导致 LED 发热量增大,因此必须在各次频闪脉冲之间留出足够的时间,以保证光源再次冷却。根据经验,脉冲强度越高,两次脉冲之间应留出的时间越长。
  • 考虑曝光时间,因为这会影响脉冲的长度和占空比。

安全功能#

以下安全功能在 Basler 照明设备中实现,以避免损坏硬件:

SLP Light Controller 上的安全功能#

大于 2 A 的电流以及较长的 Exposure Time 和高占空比可能会损坏控制器硬件。

为了避免这种情况,您不能将 Basler SLP Light Controller 的标称电流(BslLightDeviceMaxCurrent 参数)设置为超过 2000 mA 的值。

不过,如果使设备过载,最终电流可能会超过 2 A。

在这种情况下,相机会自动调整某些照明设备设置的最大值。请参阅下表。

输出电流(标称电流 x 亮度 %) 最大频闪持续时间 最大占空比
2 A 以下 - 100 %
2 A to <3 A 5 ms 15 %
3 A to <4 A 5 ms 8 %
4 A to <5 A 5 ms 6 %
5 A to <6 A 5 ms 4 %
6 A to <8 A 1 ms 4 %
8 A to <9 A 1 ms 3 %
9 A to <10 A 1 ms 2 %
Camera Lights 上的安全功能#

在 Basler Camera Lights 上,如果所选亮度相对于频闪持续时间和占空比过高,则频闪持续时间将减少,或者触发将被忽略。请参阅下表。

所需亮度 最大频闪持续时间 最大占空比
0–100 % - 100 %
101-200 % 30 ms 30 %
201-300 % 10 ms 20 %
301-500 % 2 ms 10 %
501-1000 % 1 ms 5 %

GPIO 线路配置#

相机通过相机的一条 GPIO 线路与照明设备通信:

  • On ace 2, boost R, and dart M cameras, the camera always uses Line 3 for light communication. Accordingly, when the Light Control feature is enabled, the line mode of Line 3 is set to InOut and the line connection is set to LightControl.

  • ace U/L 相机上,BslLightControlSource 参数会显示相机使用哪条 GPIO 线路进行光源通信。

光源设备 ID#

每个通过 SLP 协议连接的光源设备都有一个光源设备 ID。ID 存储在设备上。

有效的光源设备 ID 为 1、2、3、4 和 7。所有设备随附的 ID 均设置为 7(出厂设置)。

使用 BslLightControlEnumerateDevices 命令枚举设备时,相机会自动搜索 ID 设置为 7 的设备,并为其分配 1 到 4 之间的下一个可用 ID。

如果使用多个光源设备,则必须确保它们的 ID 都不同。使用具有相同 ID 的设备会导致通信错误。

  • 示例 1:假设您连接一个新的光源设备并枚举设备。相机将 ID 1 分配给设备。然后,断开该设备的连接,连接下一个光源设备,然后再次枚举设备。相机还会将 ID 1 分配给该设备。
  • 示例 2:假设您连接两个新的光源设备并枚举设备。相机找到两个 ID 设置为 7 的设备,并将下一个可用 ID 分配给每个设备,即 1。

在这两个示例中,当您将两个照明设备连接到相机时,都会发生通信错误。您必须更改其中一个 ID 才能解决冲突。

提示

防止冲突的最佳方法是依次连接设备,并在连接设备后始终分配一个新的唯一 ID

更改光源设备 ID#

要更改光源的 ID:

  1. BslLightControlMode 参数设置为 On
  2. BslLightDeviceOperationMode 参数设置为 Off
  3. BslLightDeviceSelector 参数设置为您要更改其 ID 的 Basler 光源设备。
  4. BslLightDeviceChangeID 参数设置为所需的 ID,例如 Device1
    ace U/L 相机上,ID 会立即更改。
  5. On ace 2, boost R, and dart M cameras, execute the BslLightDeviceNewIDSave command.

Light Control 功能使用注意事项#

  • 如果 BslLightControlMode 设置为 On,则串行通信功能会被禁用。这是因为 Light Control 功能也使用串行通信。
  • Basler Camera Lights use pulse width modulation (PWM), the Basler SLP Strobe Controller doesn't. If you're using very short exposure times (<500 µs) and a brightness value other than 100 %, PWM can lead to brightness fluctuations or to stripes in rolling shutter cameras.
  • 避免使用非常短的闪烁窗口信号。否则,生成的图像中的某些线条可能太亮,而另一些线条可能太暗。
  • BslLightControlMode 参数设置为 On 时,在实际打开光源设备之前最多会有 1 秒的延迟。因此,第一张图像可能过暗。可以丢弃该图像,或者,如果需要所有图像,则在适当的延迟之后开始图像采集。
  • 如果使 Basler Camera Light 过载,请不要以超过每秒 60 帧的速度操作相机。否则,相机和光源设备可能会表现出不可预测的行为。
  • Basler ace 2, boost R, and dart M cameras: When loading the light device settings from a user set, the settings are only applied after executing the BslLightControlEnumerateDevices command.

过度触发#

如果您在达到相机性能上限时操作相机,则可能会发生光源设备的过度触发。过度触发表示光源设备接收到未准备好接收的触发,例如,因为其仍处在关闭光源的过程中。这意味着触发将被忽略且该光源在下次曝光时不会亮起。

为了更好地理解此问题,请参考以下示例。

具有 100 fps 速度的相机在 Exposure Time 设置为 50 ms 的情况下运行。因此,相机可以每秒 20 帧进行快速连续采集,而曝光之间不会暂停。这意味着必须正好在两次曝光之间的边沿触发光源设备。

实际上,这几乎是无法实现的,因为固有抖动会造成以下情况:有时在触发信号达到时,光源仍关闭。在这种情况下,触发将被忽略且生成的图像太暗。

由于抖动是不规则的,没有精确的方法可防止此情况的发生。如果您注意到其中一些图像比其他的要暗,请考虑以连续模式操作光源。您还可以尝试使用 Acquisition Frame Rate 功能调整帧速率。

监控过度触发#

On ace 2, boost R, and dart M cameras, the BslLightControlOvertriggerCount parameter is available. It allows you to monitor how many trigger signals were sent while at least one of the connected light devices wasn't ready for it.

示例:假设您的相机连接了 4 个光源设备。当您发送触发信号时,其中 3 个设备尚未准备好。因此,BslLightControlOvertriggerCount 参数增加 1。

该参数计数到最大值 65 535,然后停止计数。

要重置过度触发计数器,请执行 BslLightControlOvertriggerCountReset 命令。

检查和清除错误#

ace 2, boost R, and dart M Cameras#

Basler ace 2, boost R, and dart M cameras can read the following error data from connected light devices:

  • 错误状态可以帮助您自行更正错误。
  • 错误代码提供了有关错误类型的附加信息,且可以由 Basler 支持人员进行评估。

要检查并清除错误:

  1. 如果您连接了多个设备:
    1. 检查 BslLightControlErrorSummary 参数以找出哪个设备遇到问题,例如 Device2
    2. BslLightDeviceSelector 参数设置为遇到问题的设备。
  2. 获取 BslLightDeviceErrorStatus 参数的值并在下面的错误状态表中查找其含义。
  3. 如果错误状态为“硬件错误”:
    1. 执行 BslLightDeviceErrorStatusReadAndClear 命令。
    2. 获取 BslLightDeviceErrorCode 参数的值并在下面的 Error Codes 表中查找其含义。
    3. 如果可能的话,请更正错误。
  4. If the error status is not "Hardware Error":
    1. 如果可能的话,请更正错误。
    2. 执行 BslLightDeviceErrorStatusReadAndClear 命令将错误状态重置为 NoError
错误状态#

BslLightDeviceErrorStatus 参数可以采用以下值:

含义
通信故障 如果光源设备和相机之间的数据传输错误,则会发生通信错误。原因可能是使用了过长的线缆或线路上的噪音过大。
连接丢失 与先前连接的光源设备的连接已丢失。例如,如果电缆松动,就会发生这种情况。
硬件错误 光源设备出现技术故障。如需详细了解硬件错误类型,请执行 BslLightDeviceErrorStatusReadAndClear 命令以检索错误代码a
光源设备错误 光源设备遇到内部错误。a
无错误 未检测到错误。
未连接 光源设备未连接到相机或尚未枚举。请执行 BslLightControlEnumerateDevices 命令枚举设备。
不支持的设备版本 该光源设备与当前相机不兼容。请联系支持人员以了解固件更新是否可用。
Error Codes#

BslLightDeviceErrorCode 参数可以采用以下值:

含义
0x30024 光源控制器的照明连接器存在短路。这可能是由于光源设备故障造成的。
0x3002A 光源控制器无法提供请求的电流。请尝试降低 BslLightDeviceCurrent 参数值。
(其他) 请联系 Basler 支持人员并提供该错误代码。

ace U/L 相机#

Basler ace U/L 相机可以从连接的光源设备读取错误列表。

最多可以存储 25 个错误。如果发生第 26 个错误,则最早的错误将被覆盖,依此类推。

检查和清除错误是一个反复迭代过程,具体取决于发生了多少个错误。

要检查并清除错误:

  1. 如果您连接了多个设备:
    1. 检查 BslLightControlErrorStatus 参数以找出哪个设备遇到问题,例如 Device2
    2. BslLightDeviceSelector 参数设置为遇到问题的设备。
  2. 获取 BslLightDeviceLastError 参数的值并在下表中查找其含义。
  3. 更正相应的错误。
  4. 要从错误列表中删除最后一个错误,请执行 BslLightDeviceClearLastError 命令。
  5. 不断获取并删除最后一个错误,直到 BslLightDeviceLastError 参数显示 NoError 为止。
含义
通信故障 如果光源设备和相机之间的数据传输错误,则会发生通信错误。原因可能是使用了过长的线缆或线路上的噪音过大。
连接错误 如果光源设备和相机之间的连接断开或发生了通信错误,则会发生连接错误。其他原因还可能包括连接松动或控制器完全断开。
硬件错误 光源设备出现技术故障。a
电流不足 光源控制器无法提供请求的电流。请尝试降低 LightDeviceMaxCurrent 参数值。
无错误 自上次清除错误内存以来,光源设备未检测到任何错误。
短路 光源控制器的照明连接器存在短路。这可能是由于光源设备故障造成的。

  1. 断开并重新连接电源可以解决此问题。为确保重启,需要将控制器断开电源五分钟。这是正常现象。如果您使用多个控制器,即使其他控制器没有遇到任何故障,也必须重启其他控制器的电源。

示例代码#

ace 2, boost R, dart M Cameras#
// Enable the light control mode
camera.BslLightControlMode.SetValue(BslLightControlMode_On);
//Enumerate the light devices
camera.BslLightControlEnumerateDevices.Execute();
//Select light device 1
camera.BslLightDeviceSelector.SetValue(BslLightDeviceSelector_Device1);
//Set the nominal current of device 1 to 100 mA
camera.BslLightDeviceCurrent.SetValue(100.0);
//Set the brightness to 100 %
camera.BslLightDeviceBrightness.SetValue(100.0);
//Set the operation mode to Strobe
camera.BslLightDeviceOperationMode.SetValue(BslLightDeviceOperationMode_Strobe);
INodeMap& nodemap = camera.GetNodeMap();
// Enable the light control mode
CEnumParameter(nodemap, "BslLightControlMode").SetValue("On");
// Enumerate the light devices
CCommandParameter(nodemap, "BslLightControlEnumerateDevices").Execute();
// Select light device 1
CEnumParameter(nodemap, "BslLightDeviceSelector").SetValue("Device1");
// Set the nominal current of device 1 to 100 mA
CFloatParameter(nodemap, "BslLightDeviceCurrent").SetValue(100.0);
// Set the brightness to 100 %
CFloatParameter(nodemap, "BslLightDeviceBrightness").SetValue(100.0);
// Set the operation mode to Strobe
CEnumParameter(nodemap, "BslLightDeviceOperationMode").SetValue("Strobe");
// Enable the light control mode
camera.Parameters[PLCamera.BslLightControlMode].SetValue(PLCamera.BslLightControlMode.On);
// Enumerate the light devices
camera.Parameters[PLCamera.BslLightControlEnumerateDevices].Execute();
// Select light device 1
camera.Parameters[PLCamera.BslLightDeviceSelector].SetValue(PLCamera.BslLightDeviceSelector.Device1);
// Set the nominal current of device 1 to 100 mA
camera.Parameters[PLCamera.BslLightDeviceCurrent].SetValue(100.0);
// Set the brightness to 100 %
camera.Parameters[PLCamera.BslLightDeviceBrightness].SetValue(100.0);
// Set the operation mode to Strobe
camera.Parameters[PLCamera.BslLightDeviceOperationMode].SetValue(PLCamera.BslLightDeviceOperationMode.Strobe);
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
/* Enable the light control mode */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightControlMode", "On");
CHECK(errRes);
/* Enumerate the light devices */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslLightControlEnumerateDevices");
CHECK(errRes);
/* Select light device 1 */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceSelector", "Device1");
CHECK(errRes);
/* Set the nominal current of device 1 to 100 mA */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceCurrent", 100.0);
CHECK(errRes);
/* Set the brightness to 100 % */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceBrightness", 100.0);
CHECK(errRes);
/* Set the operation mode to Strobe */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceOperationMode", "Strobe");
CHECK(errRes);
# Enable the light control mode
camera.BslLightControlMode.Value = "On"
# Enumerate the light devices
camera.BslLightControlEnumerateDevices.Execute()
# Select light device 1
camera.BslLightDeviceSelector.Value = "Device1"
# Set the nominal current of device 1 to 100 mA
camera.BslLightDeviceCurrent.Value = 100.0
# Set the brightness to 100 %
camera.BslLightDeviceBrightness.Value = 100.0
# Set the operation mode to Strobe
camera.BslLightDeviceOperationMode.Value = "Strobe"

您也可以使用 pylon Viewer 轻松设置参数。

ace U/L 相机#
// Enable the light control mode
camera.BslLightControlMode.SetValue(BslLightControlMode_On);
//Enumerate the light devices
camera.BslLightControlEnumerateDevices.Execute();
//Select light device 1
camera.BslLightDeviceSelector.SetValue(BslLightDeviceSelector_Device1);
//Set the nominal current of device 1 to 100 mA
camera.BslLightDeviceMaxCurrent.SetValue(100.0);
//Set the brightness to 100 %
camera.BslLightDeviceBrightness.SetValue(100.0);
//Set the operation mode to Strobe
camera.BslLightDeviceOperationMode.SetValue(BslLightDeviceOperationMode_Strobe);
INodeMap& nodemap = camera.GetNodeMap();
// Enable the light control mode
CEnumParameter(nodemap, "BslLightControlMode").SetValue("On");
// Enumerate the light devices
CCommandParameter(nodemap, "BslLightControlEnumerateDevices").Execute();
// Select light device 1
CEnumParameter(nodemap, "BslLightDeviceSelector").SetValue("Device1");
// Set the nominal current of device 1 to 100 mA
CFloatParameter(nodemap, "BslLightDeviceMaxCurrent").SetValue(100.0);
// Set the brightness to 100 %
CFloatParameter(nodemap, "BslLightDeviceBrightness").SetValue(100.0);
// Set the operation mode to Strobe
CEnumParameter(nodemap, "BslLightDeviceOperationMode").SetValue("Strobe");
// Enable the light control mode
camera.Parameters[PLCamera.BslLightControlMode].SetValue(PLCamera.BslLightControlMode.On);
// Enumerate the light devices
camera.Parameters[PLCamera.BslLightControlEnumerateDevices].Execute();
// Select light device 1
camera.Parameters[PLCamera.BslLightDeviceSelector].SetValue(PLCamera.BslLightDeviceSelector.Device1);
// Set the nominal current of device 1 to 100 mA
camera.Parameters[PLCamera.BslLightDeviceMaxCurrent].SetValue(100.0);
// Set the brightness to 100 %
camera.Parameters[PLCamera.BslLightDeviceBrightness].SetValue(100.0);
// Set the operation mode to Strobe
camera.Parameters[PLCamera.BslLightDeviceOperationMode].SetValue(PLCamera.BslLightDeviceOperationMode.Strobe);
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
/* Enable the light control mode */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightControlMode", "On");
CHECK(errRes);
/* Enumerate the light devices */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslLightControlEnumerateDevices");
CHECK(errRes);
/* Select light device 1 */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceSelector", "Device1");
CHECK(errRes);
/* Set the nominal current of device 1 to 100 mA */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceMaxCurrent", 100.0);
CHECK(errRes);
/* Set the brightness to 100 % */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceBrightness", 100.0);
CHECK(errRes);
/* Set the operation mode to Strobe */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceOperationMode", "Strobe");
CHECK(errRes);
# Enable the light control mode
camera.BslLightControlMode.Value = "On"
# Enumerate the light devices
camera.BslLightControlEnumerateDevices.Execute()
# Select light device 1
camera.BslLightDeviceSelector.Value = "Device1"
# Set the nominal current of device 1 to 100 mA
camera.BslLightDeviceMaxCurrent.Value = 100.0
# Set the brightness to 100 %
camera.BslLightDeviceBrightness.Value = 100.0
# Set the operation mode to Strobe
camera.BslLightDeviceOperationMode.Value = "Strobe"