Light Control#
此功能基於 SLP 協定,可讓相機與照明裝置直接相互通訊。
本主題說明 Basler ace 2、boost R 與 dart M 相機的 Light Control 功能。請參閱 Transition Period for ace 2, boost R, and dart M Cameras。
ace 2、boost R 與 dart M 相機的過渡期#
在過渡至 Peripheral Devices Control 功能期間,ace 2、boost R 與 dart M 相機出貨時可能會包含或不包含 Peripheral Devices Control 功能。
因此,共有兩個 Light Control 主題:
- Light Control (ace U/L):
本主題適用於繼續使用未包含 Peripheral Devices Control 功能之韌體的 ace U/L 相機。Basler ace U/L 相機將不會遷移至新的韌體架構。
它也適用於在過渡期間出貨且韌體未包含 Peripheral Devices Control 功能的 ace 2、boost R 與 dart M 相機。 - Light Control 主題:
本主題適用於執行包含 Peripheral Devices Control 功能之韌體的相機。Light Control 功能與 Optic Control 功能一同說明,因為這些功能在 Peripheral Devices Control 下共用相同的參數。 - 具有舊版韌體的 Basler ace 2、boost R 與 dart M 相機可以升級至較新的韌體版本。若要將相機遷移至新韌體,請聯絡 Basler 支援團隊。
資訊
作為導入 Peripheral Devices Control 功能(包含 Light Control 和 Optic Control 功能)的一部分,多個參數名稱已重新命名並重新組織。
使用舊版韌體(2026 年 9 月之前)的 Basler ace 2、boost R 與 dart M 相機使用本主題中所述的參數名稱,但基於相容性考量,也支援舊版參數名稱。
如需相關參數名稱變更的概覽,請參閱 Compatibility and Parameter Mapping 主題。
資訊
對於 dart M camera modules,目前只有在使用 Basler dart M 介面板(即 Interface Board dart M GigE RJ45 PoE 或 Interface Board dart M GigE RJ45 AUX)時,才能使用 Light Control 功能。
根據您所使用的 light,相機與燈光之間的通訊方式會有所不同:
- 如果您使用具備 ILC(智慧型燈光控制)的 Basler Light,或者 Basler Camera Light,則不需要額外的控制器,因為控制器功能已經內建。
- 如果您使用不具備 ILC(智慧型燈光控制)的 Basler Light 或其他製造商的 LED 照明解決方案,您需要外部控制器(例如 Basler SLP Strobe Controller),以便在相機與燈光之間建立通訊。
資訊
舊款 Basler Lights 與新款 Basler Lights:
- 較早世代的 Basler Lights 是不具備 ILC(不具備智慧型燈光控制)的燈光。這些燈光需要獨立的控制器來進行燈光控制。
目前的 Basler 產品說明文件中不再包含舊版 Basler 燈光(不具備 ILC)以及已停產之 Basler Camera Lights 的說明。如果您需要這些產品的相關資訊,請參考較早版本的離線說明文件,您可以按一下這裡進行下載。 - 若要確定安裝的是哪種類型的燈具,請檢查標記在 Basler Light 上的修訂版號(例如:2200000841-05)。訂單號碼後面的最後兩位數字表示燈具的修訂版。修訂版 05 及更新版本表示具備智慧型 Light Control (ILC) 的 Basler 燈具,也就是具有內建控制器。小於 05 的修訂版號表示不具備 ILC、因此也沒有內建控制器的舊款 Basler 燈具。
使用此功能#
若要使用 Light Control 功能,您需要具備下列項目:
- 具備智慧型燈光控制 (ILC) 的 Basler Light
- 適當的 Basler Sync Cable,用於將具備智慧型燈光控制 (ILC) 的 Basler Light 連接至相機。同步纜線可讓您連接燈光裝置,以及在需要時連接鏡頭,並透過相機的單一 GPIO 連接埠進行控制。您所需的 Basler Sync Cable 取決於您要操作的周邊裝置。
關於可用的纜線變體及其支援的使用情境的資訊,請參閱 Basler Sync Cables。 - 執行包含 Peripheral Devices Control 功能之韌體的相容相機
資訊
關於具備智慧型燈光控制 (ILC) 的 Basler Lights 所支援之不同燈光控制模式的資訊,請參閱 Controller Types and Light Control Modes 主題。
正在初始化 Light Devices#
資訊
本節適用於實作 Peripheral Control 功能並因此使用新參數名稱的相機。
若要初始化您的燈光裝置(具備 Peripheral Devices Control 功能的相機):
- 請按照 Preparing Peripheral Devices 和 Checking and Clearing Errors 中所述的步驟操作。
- 繼續進行 Configuring Light Devices。
設定光源裝置#
若要設定您的照明裝置:
- 如果您的環境中有 多個 照明裝置,請將
BslLightDeviceSelector參數設定為您要設定的裝置。
請確保裝置已正確連線,亦即BslLightDeviceErrorStatus參數傳回NoError. -
如果您使用 Basler SLP Strobe Controller:
關於何時使用 Basler SLP Controller 的資訊,請參閱 When is a Basler SLP Strobe Controller Required。- 將
BslLightDeviceControlMode參數設為Current. - 將
BslLightDeviceOperationMode參數設為Off. - 將
BslLightDeviceMaxCurrent參數設為燈光在持續運作下的標稱額定電流(以 mA 為單位)。
注意 – 指定過高的標稱額定電流會損壞您的燈光。
使用電流控制時,請務必指定您的燈光能夠承受的額定標稱電流。否則,您的燈光將會在運作期間受損。
- 將
-
將
BslLightDeviceBrightness參數調整至所需的亮度。
100.0 的值相當於您的燈光裝置額定標稱電流的 100 %。50 % 會將電流降低 2 倍。如果您處於選通模式,您可以將亮度設定為大於 100 %。這稱為 overdriving. - 將
BslLightDeviceOperationMode參數設定為所需的模式:On:使燈光持續發光。Strobe:將燈光設定為 strobe mode.
- 如果需要,將設定儲存至 user set。
頻閃模式#
strobe mode 允許您在需要時像閃光燈一樣操作燈光裝置,而不是持續操作。
使用 strobe mode 具有以下優點:
- 它有助於延長燈光的壽命。透過僅在需要時操作燈光,LED 中產生的熱量較少。這減緩了燈光的老化過程。
- 它僅在必要時才對場景進行照明,有助於降低功耗。由於曝光時間通常遠短於連續兩張影像之間的間隔時間,因此平均能耗可比連續運作時低得多。
- 在選通模式下,您可以透過將驅動電流提高至額定值的最多 500 %(取決於燈光控制器與工作週期)來超載燈光,從而提高光輸出。
若要啟用 strobe mode,請選擇一個燈光裝置並將 BslLightDeviceOperationMode 參數設為 Strobe.
設定觸發訊號與頻閃持續時間#
一般而言,在選通模式下觸發燈光裝置的運作方式如下:
- 最初,燈光處於 off 狀態。
- 燈光透過觸發訊號被切換至 on 狀態。
- 燈光會 保持開啟 一定時間,即 strobe duration。
- 在 strobe duration 結束後,燈光再次被切換至 off 狀態。
若要設定觸發訊號:
- 將
BslPeripheralTriggerSource參數設定為您要用來開啟連接燈光的來源,例如:FlashWindow. - 若適用,請將
BslPeripheralTriggerActivation參數設為下列其中一個值:RisingEdge(預設):當訊號出現時,所有連接的燈光都會開啟 上升,亦即當信號狀態由低變高時。FallingEdge:當信號 下降,亦即當信號狀態由高變低時。AnyEdge:當信號 下降或上升.
若要設定 Strobe Duration:
- 將
BslLightDeviceStrobeMode參數設為下列其中一個值:Automatic:閃光持續時間由相機的閃光視窗持續時間(BslFlashWindowDuration參數)控制。BslLightDeviceStrobeDuration參數將變為唯讀,並顯示計算出的閃光持續時間。Manual:您可以自行定義閃光持續時間,透過BslLightDeviceStrobeDuration參數的值。
- 如果您選擇
Manualstrobe mode,請將BslLightDeviceStrobeDuration參數設為所需的閃光持續時間(以微秒為單位)。
資訊
- 如果您正在使用 Trigger Width exposure mode 或 Exposure Auto 自動功能,請勿使用 Automatic strobe mode。否則,相機和燈光可能會出現無法預期的行為。
- 如果您正在使用 Sequencer 功能,則無法使用 Automatic strobe mode。
- 在 Automatic strobe mode 下,計算出的閃光持續時間可能會短於閃光視窗持續時間。這是為了補償燈光開啟所需的時間,亦即開啟延遲。
- 如果您在相機效能的極限狀態下運作,可能會發生 overtriggering。
超載驅動光源裝置#
燈光過載驅動是指在閃光模式下,您可以增加電流以提升光強度。
注意 – 過載驅動可能會損壞您的燈光。
請仔細閱讀本節中的說明,以避免損壞連接的燈光,並確保燈光不會過早老化。
若要過載驅動燈光裝置:
-
如果您使用的是 Legacy Basler Light 或第三方燈光裝置:
- 根據目前的工作週期(duty cycle)與閃光持續時間,計算您裝置允許的最大電流。在 Basler ace 2、boost R 和 dart M 相機上,您可以讀取
BslLightDeviceDutyCycle參數來決定目前的工作週期。 - 將
BslLightDeviceOverdriveLimit相應地設定參數。例如,如果您的燈光可以承受其標稱電流額定值的 200%,請將 Overdrive Limit 設定為 200.0。
對於舊版 Basler Camera Light,過載限制會自動計算,且
BslLightDeviceOverdriveLimit參數將無法使用。 - 根據目前的工作週期(duty cycle)與閃光持續時間,計算您裝置允許的最大電流。在 Basler ace 2、boost R 和 dart M 相機上,您可以讀取
-
將
BslLightDeviceBrightness設為大於 100.0 的值。
資訊
-
如果您將
BslLightDeviceBrightness若值大於 100%,則燈光可以在 Trigger Control Mode 中運作,同時保留大於 100% 的亮度值。
在此模式下操作燈光可消除與 SLP 控制的 Overdrive 操作相關的通訊負擔。因此,可以實現更高的最高影格率,特別是在需要高觸發頻率的應用中。 -
支援的範圍
BslLightDeviceBrightness參數值取決於工作週期和 Strobe Duration。如果請求的 Overdrive 值超過允許的限制,則無法套用。
若要增加可用的 Overdrive 範圍,請縮短 Strobe Duration 和/或降低影格率。
資訊
在 Intelligent Light Control 模式和 Trigger Control 模式下使用 Overdrive 功能:
在 Intelligent Light Control (ILC) 模式與 Trigger Control mode 之間切換時,任何已設定的 Overdrive 設定都會保留並繼續套用。這讓您無需進行額外設定即可受益於先前設定的 Overdrive 參數。此外,此模式支援比 Intelligent Light Control (ILC) 模式更高的閃光頻率,從而在高速成像應用中提供更大的靈活性。
為了確保可靠運作,整合的保護機制會持續監控運作條件並防止 LED 損壞,即使在使用 Overdrive 設定時也是如此。
如需關於如何在 Trigger Control 模式與 Intelligent Light Control 模式之間切換的資訊,請參閱切換 Trigger Control 與 Intelligent Light Control 模式。
當使用外部控制器(例如 SLP Strobe Controller)對燈光進行 Overdrive 時,請考慮以下事項以避免損壞燈光裝置:
- 如果您不確定燈光在 Strobe 模式下可以承受的最大電流,請參閱燈光製造商的規格或直接聯絡製造商。
- 由於增加的電流會導致 LED 產生更多熱量,因此請在各個閃光脈衝之間留出充足的冷卻時間。一般而言,較高的脈衝強度需要較長的脈衝間隔。
- 請將 Exposure Time 納入考量,因為它會直接影響脈衝持續時間,進而影響工作週期。
資訊
當需要極短的脈衝寬度、非常快的上升和下降時間,和/或非常高的 Overdrive 級別(通常高於 400 %)時,建議使用外部控制器進行 Overdrive 操作。
這類嚴苛應用的典型範例包括低於 24 µs 的響應時間以及短於 5 µs 的乾淨光脈衝。
在許多情況下,透過仔細最佳化脈衝時序,也可以使用配備 Intelligent Light Control (ILC) 的 Basler 燈光的整合式控制器來達到所需的時序精度和脈衝特性。然而,需要極高 Overdrive 級別的應用通常會受惠於外部控制器。
安全功能#
Basler 燈光裝置實作了下列安全功能,以避免損壞硬體:
SLP Light Controllers 上的安全功能#
資訊
如需關於何時使用 Basler SLP Controller 的資訊,請參閱何時需要 Basler SLP Strobe Controller。
大於 2 A 的電流若搭配長 Exposure Time 與高工作週期,可能會損壞控制器硬體。
為避免發生此情況,您無法將 Basler SLP Light Controllers 的 nominal current (BslLightDeviceMaxCurrent 參數) 設定為大於 2000 mA。
不過,如果您正在 overdriving 該裝置,可能會產生大於 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 產品說明文件中不再包含舊款不支援 ILC 的 Basler 照明設備以及已停產的 Basler Camera Lights 的說明。如果您需要這些產品的資訊,請參閱早期版本的離線說明文件,您可以點擊這裡進行下載。
GPIO 線路設定#
相機會透過其中一個相機的 GPIO 線路與燈光裝置進行通訊:
在 ace 2、boost R 與 dart M 相機,相機一律會使用 Line 3 進行光學通訊。因此,當啟用 Light Control 功能時, 行模式 Line 3 的會自動設定為 InOut 會設為 線路連接 且 LightControl.
光源裝置 ID#
透過 SLP 通訊協定連接的每個照明裝置都有一個照明裝置 ID。該 ID 儲存在裝置上。
有效的照明裝置 ID 為 1、2、3、4 和 7。所有裝置出廠時的 ID 皆設為 7(出廠預設值)。
當使用 BslPeripheralEnumerateDevices 或 BslLightControlEnumerateDevices 命令列舉裝置時,相機會自動搜尋 ID 設為 7 的裝置,並將 1 到 4 之間下一個可用的 ID 指派給它。
當使用一個以上的照明裝置時,必須確保其 ID 各不相同。使用 ID 相同的裝置會導致通訊錯誤。
提示
防止衝突的最佳方法是逐一連接裝置,並在連接裝置後始終指派新的唯一 ID。
- 範例 1:假設您連接了一個新的照明裝置並列舉裝置。相機會將 ID 1 指派給該裝置。然後,您中斷連接該裝置,連接下一個照明裝置,並再次列舉裝置。相機也會將 ID 1 指派給此裝置。
- 範例 2:假設您連接了兩個新的照明裝置並列舉裝置。相機會找到兩個 ID 設為 7 的裝置,並將下一個可用的 ID(即 1)分別指派給它們。
在這兩個範例中,當您將兩個照明裝置都連接到相機時,將會發生通訊錯誤。您必須變更其中一個 ID 以解決衝突。
變更光源裝置 ID#
若要變更照明裝置的 ID:
- 請確保燈光裝置已初始化;請參閱初始化燈光裝置。
- 將
BslLightDeviceOperationMode參數設為Off. - 將
BslLightDeviceSelector參數設為您要變更 ID 的 Basler 照明裝置。 - 將
BslLightDeviceChangeID參數設為所需的 ID,例如Device1. - 在 ace 2、boost R 與 dart M 相機,執行
BslLightDeviceNewIDSave命令。
使用 Light Control 功能時的注意事項#
- 當
BslLightControlMode且On上, Serial Communication 功能停用時。這是因為 Light Control 功能同時也會使用 Serial Communication。 - 避免使用非常短的 Flash Window 訊號。否則,所產生影像中的某些行可能會過亮,而其他行則會過暗。
- 在設定
BslLightControlMode參數設為On時,燈光裝置實際開啟會有最多 1 秒的延遲。因此,第一張影像可能會過暗。您可以放棄此影像,或者如果您需要所有影像,請在適當的延遲後開始影像擷取。 - Basler ace 2、boost R 和 dart M 相機:從 user set載入燈光裝置設定時,這些設定只有在執行
BslLightControlEnumerateDevices命令。
過度觸發#
如果您讓相機在其效能極限的高標下運行,可能會發生照明設備過度觸發(overtriggering)的情形。過度觸發是指照明設備在尚未準備就緒時就接收到觸發訊號,例如它仍處於關閉光源的過程中。這意味著觸發訊號將被忽略,且在下一次曝光時光源不會亮起。
在大多數情況下,照明發生過度觸發是因為持續的通訊(狀態檢查)或超頻(overdrive)冷卻。關閉光源幾乎絕不會花費超過 2 µs 的時間。
為了更好地理解這個問題,請考慮以下範例。
一台能夠達到 100 fps 的相機在運行時,Exposure Time 設定為 50 ms。在這種配置下,相機每秒擷取 20 個畫面,且連續曝光之間沒有間隙。因此,Light Control 觸發必須精確地發生在兩次曝光之間的轉換點上。
在實務上,這個運作點相當關鍵,因為可用的時間窗口極小。雖然光脈衝本身是以高度準確的時間來產生,但照明設備需要一小段時間來回報前一個脈衝已完成。由於此狀態更新延遲的變動(最高約 2 µs),相機偶爾可能會在照明回報準備就緒之前就觸發下一個脈衝。在這種情況下,觸發會被忽略,產生的影像可能會比預期更暗。
資訊
如果您注意到偶爾出現偏暗的影像,請考慮將照明設為連續模式運行。或者,您可以使用 Acquisition Frame Rate 功能稍微降低畫面更新率,以便在連續觸發之間引入額外的時間裕度。
監控過度觸發#
在 ace 2、boost R 與 dart M 相機上, BslLightControlOvertriggerCount 參數可用。它允許您監控發送了多少個觸發訊號,而此時至少有一個連接的燈光裝置尚未準備就緒。
範例: 假設有 4 個燈光裝置連接到您的相機。您在其中 3 個裝置尚未準備就緒時發送觸發訊號。因此, BslLightControlOvertriggerCount 參數增加 1。
該參數最多計數到 65 535 的最大值。之後,它會停止計數。
若要重設過度觸發計數器,請執行 BslLightControlOvertriggerCountReset 命令。
檢查與清除錯誤#
Basler ace 2、boost R 和 dart M 相機可以從連接的燈光裝置讀取以下錯誤資料:
- error status 可以幫助您自行修正錯誤。
- error code 提供有關錯誤類型的附加資訊,可由 Basler 支援團隊進行評估。
若要檢查並清除錯誤:
- 如果您連接了多個裝置:
- 檢查
BslPeripheralErrorSummary或BslLightControlErrorSummary參數以找出哪個裝置發生問題,例如Device2. - 將
BslLightDeviceSelector參數設定為發生問題的裝置。
- 檢查
- 取得
BslLightDeviceErrorStatus參數的值,並在下方的 Error Statuses 表中尋找其含義。 - 如果錯誤狀態為 "Hardware Error":
- 執行
BslLightDeviceErrorStatusReadAndClear命令。 - 取得
BslLightDeviceErrorCode參數的值,並在下方的 Error Codes table below. - 如果可能,請修正錯誤。
- 執行
- 如果錯誤狀態不是 "Hardware Error":
- 如果可能,請修正錯誤。
- 執行
BslLightDeviceErrorStatusReadAndClear命令以將錯誤狀態重設為NoError.
Error Statuses#
影像 BslLightDeviceErrorStatus 參數可接受下列值:
| Value | 含義 |
|---|---|
| Communication Error | 如果照明裝置與相機之間的資料傳輸發生故障,就會發生通訊錯誤。這可能是由於使用過長的纜線或線路上有太多雜訊所造成的。 |
| Connection Lost | 與先前連線的照明裝置已失去連線。例如,如果纜線鬆脫,就可能會發生這種情況。 |
| Hardware Error | 照明裝置發生技術故障。如需有關硬體錯誤類型的詳細資訊,請執行 BslLightDeviceErrorStatusReadAndClear 命令以擷取 error code.a |
| Light Device Error | 照明裝置發生內部錯誤。a |
| No Error | 未偵測到錯誤。 |
| Not Connected | 照明裝置未連線至相機,或尚未列舉。執行 BslLightControlEnumerateDevices 命令以列舉裝置。 |
| 不支援的裝置版本 | 此燈光裝置與目前的相機不相容。請聯絡支援團隊以確認是否有可用的韌體更新。 |
Error Codes (ILC Mode)#
當新的 Basler Light 在以下模式下運行: 智慧型光源控制模式 (ILC)上, BslLightDeviceErrorCode 參數可接受下列值:
| 程式碼 | 姓名 | 描述 |
|---|---|---|
| 0x01 | TemperatureTooHigh | 微控制器溫度大於 65 °C (149 °F)。 |
| 0x02 | SupplyVoltageTooHigh | 供應電壓大於 26 V。 |
| 0x03 | SupplyVoltageTooLow | 供應電壓小於 21.5 V。 |
| 0x04 | LEDDRIVERFAULT | LED 驅動器的綜合故障(短路、斷路、過溫) |
| 0x05 | UARTFrameError | 接收到有問題的 UART 訊框。 |
| 0x06 | UARTMessageParityError | UART 訊息中出現同位檢查 (Parity) 錯誤 |
| 0x07 | FREE1 | 保留 / 目前未使用 |
| 0x08 | FREE2 | 保留 / 目前未使用 |
| 0x09 | ReadBufferOverflow | 接收緩衝區已滿溢。 |
| 0x0A | SLPVoltageTooHigh | SLP 匯流排電壓大於 6 V(額定值 3.3 V)。 |
| 0x0B | DutyCycleOrPulseLength | 工作週期或脈衝長度超過過載 (overdrive) 表的限制。 |
| 0x0C | CurrentSettingToHighForOverdriveTable | 設定的電流超過過載表。 |
| 0x0D | CurrentSettingToHighForLEDDriver | 過載表允許的電流高於 LED 驅動器所能支援的電流。 |
Error Codes (Other Light Control Modes)#
當 Basler Light 在其他 Light Control 模式下運作時亦即 Trigger Control Mode 或 Current Control Mode上, BslLightDeviceErrorCode 參數可接受下列值:
| Value | 含義 |
|---|---|
| 0x30024 | Light Controller 的燈光連接器發生短路。這可能是由故障的燈光單元所引起的。 |
| 0x3002A | Light Controller 無法提供要求的電流。請嘗試降低 BslLightDeviceCurrent 參數值。 |
| (其他) | 請提供錯誤代碼並聯絡 Basler 支援團隊。 |
-
拔掉並重新連接電源供應器可能會解決此問題。為確保完成電源循環(power-cycling),控制器必須斷電五分鐘。這是正常現象。如果您使用的是多個控制器,其他控制器也必須進行電源循環,即使它們未發生任何故障。
範例程式碼#
ace 2, boost R, dart M 相機#
// Enable the light control mode
camera.BslPeripheralControlMode.SetValue(BslPeripheralControlMode_On);
//Enumerate the light devices
camera.BslPeripheralEnumerateDevices.Execute();
//Select light device 1
camera.BslPeripheralDeviceSelector.SetValue(BslPeripheralDeviceSelector_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, "BslPeripheralControlMode").SetValue("On");
// Enumerate the light devices
CCommandParameter(nodemap, "BslPeripheralEnumerateDevices").Execute();
// Select light device 1
CEnumParameter(nodemap, "BslPeripheralDeviceSelector_Device1").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.BslPeripheralControlMode].SetValue(PLCamera.BslPeripheralControlMode.On);
// Enumerate the light devices
camera.Parameters[PLCamera.BslPeripheralEnumerateDevices].Execute();
// Select light device 1
camera.Parameters[PLCamera.BslPeripheralDeviceSelector_Device1].SetValue(PLCamera.BslPeripheralDeviceSelector.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, "BslPeripheralControlMode", "On");
CHECK(errRes);
/* Enumerate the light devices */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslPeripheralEnumerateDevices");
CHECK(errRes);
/* Select light device 1 */
errRes = PylonDeviceFeatureFromString(hdev, "BslPeripheralDeviceSelector_Device1", "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.BslPeripheralControlMode.Value = "On"
# Enumerate the light devices
camera.BslPeripheralEnumerateDevices.Execute()
# Select light device 1
camera.BslPeripheralDeviceSelector_Device1.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 來輕鬆設定參數。