核心概念#
擷取生命週期#
Mental Model#
- 相機以非同步方式執行。
- Python 以同步方式擷取。
- 緩衝區將兩個網域解耦。
阻擋行為#
GenICam Nodes#
什麼是 GenICam Node?#
一個 GenICam node 代表相機的單一可設定功能或 Property。Node 在 GenICam 標準中定義,該標準提供了一種統一的方式來存取相機功能,而與硬體供應商無關。
每個 node 的行為類似於強型別參數,並公開各種資訊:
- 名稱(例如:
ExposureTime) - 資料類型(例如 Float、Integer、Enumeration 等)
- 存取權限(唯讀或讀/寫)
- 有效的值範圍或選項
在 pypylon 中,node 是作為 camera 物件的屬性來存取,並提供以下等方法:
exposure_time = camera.ExposureTime # Read exposure time in microseconds.
camera.ExposureTime.Value = 3000 # Value is in microseconds. Check Increment and ValueRange for valid values.
常見的 Node 類型#
| Property | 範例 | 描述 |
|---|---|---|
| Float | ExposureTime | 對應至離散硬體設定的連續值 |
| Integer | Width | 離散值 |
| 列舉 | TriggerMode | 預定義字串值 |
| Boolean | AcquisitionFrameRateEnable | True/False |
| 指令 | ExecuteSoftwareTrigger | 執行動作 |
理解節點至關重要,因為 pypylon 中的所有相機組態都是透過節點進行的。
pylon Parameters#
pylon parameters 包裝了 GenICam 節點,並提供了一個擴充且一致的介面來讀取和寫入值。它們還能處理型別轉換、範圍檢查和存取模式處理。
如果找不到節點,將傳回 pylon.PlaceholderParameter 這可讓您的程式碼順利處理遺失的節點。在不同相機型號或韌體版本可能具有不同可用功能的設定中,這通常是一種常見的情境。