核心概念#
采集生命周期#
心智模型#
- 相机异步运行。
- Python 同步检索。
- Buffer 解耦了这两个域。
阻塞行为#
GenICam Nodes#
什么是 GenICam Node?#
一个 GenICam node 代表相机的单个可配置功能或 Property。Node 在 GenICam 标准中定义,它提供了一种独立于硬件供应商访问相机功能的统一方法。
每个 node 的行为类似于强类型参数,并公开各种信息:
- 名称(例如:
ExposureTime) - 数据类型(例如 Float、Integer、Enumeration 等)
- 访问权限(只读或读/写)
- 有效值范围或选项
在 pypylon 中,node 作为相机对象的属性进行访问,并提供以下方法:
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 类型#
| 参数 | 示例 | 描述 |
|---|---|---|
| Float | ExposureTime | 映射到离散硬件设置的连续值 |
| Integer | Width | 离散值 |
| Enumeration | TriggerMode | 预定义的字符串值 |
| Boolean | AcquisitionFrameRateEnable | True/False |
| 命令 | ExecuteSoftwareTrigger | 执行操作 |
理解节点至关重要,因为 pypylon 中的所有相机配置都是通过它们完成的。
pylon Parameters#
pylon parameters 封装了 GenICam 节点,并为读取和写入值提供了扩展且一致的接口。它们还处理类型转换、范围检查和访问模式处理。
如果未找到节点,将返回 pylon.PlaceholderParameter ,这允许您的代码妥善处理缺失的节点。在不同相机型号或固件版本可能具有不同可用功能的设置中,这种情况经常出现。