| 接口: | GigEVision2 |
| 修订: | 20.11.16 |
| 日期: | 2023-04-06 |
请注意,当前版本的接口只支持单流设备,并且总是打开第一个可用的流。如果将来增加了对多图像流设备的支持,打开设备的格式可能会扩展为流条目。
RemoteFile=%PATH_TO_GENICAM_FILE_OF_THE_DEVICE% SystemFile=%PATH_TO_GENICAM_FILE_OF_THE_SYSTEM_MODULE% InterfaceFile=%PATH_TO_GENICAM_FILE_OF_THE_INTERFACE_MODULE% DeviceFile=%PATH_TO_GENICAM_FILE_OF_THE_LOCAL_DEVICE_MODULE% StreamFile=%PATH_TO_GENICAM_FILE_OF_THE_STREAM_MODULE%可重复使用相同的 ini 文件格式,强制 HALCON 采集接口为其中一个或多个实体加载替代 XML 文件。这在更新或故障排除等方面非常有用。ini 文件中列出的文件将用于给定实体,而不是原始文件。对于 ini 文件中排除的实体,将按常规方式搜索和加载 GenICam 描述文件。要应用 ini 文件,请在 "CameraType" 参数中将其完整路径传递给 open_framegrabber。
RemotePersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_DEVICE% SystemPersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_SYSTEM_MODULE% InterfacePersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_INTERFACE_MODULE% DevicePersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_LOCAL_DEVICE_MODULE% StreamPersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_STREAM_MODULE%如果特定设备不支持持久功能(或根本不支持),可使用 GenICam 的 UserSetSave/UserSetLoad 功能(如果设备支持)。这些功能允许在设备的非易失性存储器中存储/加载设备设置。
支持从相机(另见 PFNC)到接口(另见本文档中的 "color_space" 参数)的以下转换:
|
||||||||||||||
|
G = (G1 + G2) / 2。
R = Y' + 1.4020 * (Cr- M)
G = Y' - 0.34414 * (Cb- M) -0.71414 * (Cr- M)
B = Y' + 1.7720 * (Cb - M)
Y' = 0.299 * R + 0.587 * G + 0.114 * B
Cb = -0.16874 * R - 0.33126 * G + 0.5 * B + M
Cr = 0.5 * R - 0.41869 * G - 0.08131 * B + M
Y' = 0.299 * R + 0.587 * G + 0.114 * B
M = 128 表示 8 位原始数据,和 M = 32768 表示 16 位原始数据。| 参数 | 值列表 | 类型 | 方式 | 描述 |
|---|---|---|---|---|
| 'bits_per_channel' | [-1, 8, 10, 12, 14, 16] | 整数 | 预定义 | 每个通道的比特值。 |
| 'camera_type' | ['CAMFILE:', 'ini;xml', '<path>', 'default'] | 字符串 | 预定义 | 连接配置文件的语法和默认值。 |
| 'color_space' | ['default', 'gray', 'raw', 'rgb', 'yuv'] | 字符串 | 预定义 | 值。 |
| 'defaults' | [0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1.0, 'false', 'default', '0', 0, 0] | 混合型 | 预定义 | open_framegrabber 的默认值。 |
| 'device' | [' | device:<device id> | unique_name:<unique name> | user_name:<user-defined name> | interface:<interface id> | producer:Esen | device_ip:<device ip> | device_sn:<serial number>'] | 字符串 | 动态 | 系统中发现的 GigE Vision 设备列表,包含设备 ID、唯一名称、用户定义名称、连接接口和图像采集接口标识符等信息。参见 "设备打开" 一节 的完整描述。仅列出当前可打开的设备。 |
| 'external_trigger' | [] | 忽略。 | ||
| 'field' | [] | 未使用。 | ||
| 'general' | [] | 字符串 | 预定义 | 有关 HALCON GigEVision2 接口的信息。 |
| 'generic' | ['', 'num_buffers=<num>' , 'direct_connection=<mode>' , 'force_ip=<interface_ip/device_mac/force_device_ip/force_device_mask[/force_device_gateway/force_command_timeout]>' , 'force_sockdrv=1' , 'streaming_mode=0' , 'device_event_handling=0' ] | 字符串 | 预定义 | 通用参数的值列表。 |
| 'horizontal_resolution' | [0, 1] | 整数 | 预定义 | 水平分辨率的值列表。 |
| 'image_height' | [] | 不支持查询。 | ||
| 'image_width' | [] | 不支持查询。 | ||
| 'info_boards' | [' | device:<device_id> | unique_name:<unique_name> | user_name:<user_defined_name> | interface:<interface_id> | producer:Esen | vendor:<device_vendor> | model:<device_model> | device_ip:<device_ip> | device_sn:<device_serial_number> | interface_ip:<interface_ip> | status:<device_status> | suggestion:<generic_param>'] | 字符串 | 动态 | 系统中发现的 GigE Vision 设备列表,包含字符串形式的附加信息。某些值只有在可用时才会显示。对于配置错误的设备(如子网 IP 错误的设备),建议使用相应的通用参数来解决问题。
|
| 'parameters' | ['<parameters>'] | 字符串 | 预定义 | HALCON 接口的预定义参数。 |
| 'parameters_readonly' | ['<parameters>'] | 字符串 | 预定义 | HALCON 接口的预定义只读参数。 |
| 'parameters_writeonly' | ['<parameters>'] | 字符串 | 预定义 | HALCON 接口的预定义只写参数。 |
| 'port' | [] | 未使用。 | ||
| 'revision' | '<revision>' | 字符串 | 预定义 | GigEVision2 接口的版本号。 |
| 'start_column' | [] | 不支持查询。 | ||
| 'start_row' | [] | 不支持查询。 | ||
| 'vertical_resolution' | [0, 1] | 整数 | 预定义 | 垂直分辨率的值列表。 |
| 参数 | 值 | 默认值 | 类型 | 描述 |
|---|---|---|---|---|
| Name | 'GigEVision2' | 字符串 | HALCON 接口的名称。 | |
| HorizontalResolution | 0, 1, resolution | 1 | 整数 | 设置所需的相机图像水平分辨率:
|
| VerticalResolution | 0, 1, resolution | 1 | 整数 | 设置所需的相机图像垂直分辨率:
|
| ImageWidth | --- | 0 | 忽略。 | |
| ImageHeight | --- | 0 | 忽略。 | |
| StartRow | --- | 0 | 忽略。通过设备参数配置图像大小。 | |
| StartColumn | --- | 0 | 忽略。通过设备参数配置图像大小。 | |
| Field | --- | 忽略。 | ||
| BitsPerChannel | -1, 8, 10, 12, 14, 16 | -1 | 整数 | 生成的 HALCON 图像每个通道的比特数。如果为-1,则使用各采集缓冲区的比特深度。如果指定的值大于 8,抓取的图像将以 uint2 图像的形式传输。 |
| ColorSpace | 'default', 'gray', 'raw', 'rgb', 'yuv' | 'default' | 字符串 | 指定所需的,从而指定生成的 HALCON 图像的图像通道数。如果单色像素格式为 "默认",则设为 "灰度",否则设为 "rgb"(未知像素格式设为 "原始")。 |
| Generic | '', ['num_buffers=<num>' , 'direct_connection=<mode>' , 'force_ip=<interface_ip/device_mac/force_device_ip/force_device_mask[/force_device_gateway/force_command_timeout]>' , 'force_sockdrv=1' , 'streaming_mode=0' , 'device_event_handling=0' ], -1 | -1 | 混合型 | 通过通用参数,可以在相机初始化之前设置一些重要的值。请注意,包括值在内的参数名称必须是字符串,例如 "num_buffers=5" 将缓冲区的数量设置为 5。 可使用以下参数:
|
| ExternalTrigger | --- | 忽略。要配置触发模式,请使用带有相机通用(SFNC)触发参数的 set_framegrabber_param。 | ||
| CameraType | 'default', <ini/xml filename> | 'default' | 字符串 | 配置文件的完整路径,其中指定了要为设备和 GigE Vision 生产者加载的其他 GenICam 描述文件,参见 有关设备打开一节 的详细描述。 |
| Device | ' | device:<device id> | unique_name:<unique name> | user_name:<user-defined name> | interface:<interface id> | producer:Esen | device_ip:<device ip> | device_sn:<serial number>', '<device id>' | 字符串 | 要打开相机,可以使用 iinfo_framegrabber(...'device'...) 或 info_framegrabber(...'info_boards'...) 中显示的设备名称。某些字符串条目可能会被跳过或设置为 "默认"。要打开特定相机,必须设置设备、用户名、唯一名称、序列号或设备的 IP 地址。最好明确指定所提供的参数,例如 "user_name:MyCamera" 或 "device_ip:192.168.1.1" 。当 device_ip 与通用参数 "direct_connection=enable" 结合使用时,将跳过设备发现过程,从而缩短连接时间。 作为一种快捷方式,可以只指定唯一的设备 ID,而不指定任何限定符。也可以使用字符串 "默认",接口将返回检测到的第一个设备。参见 "打开设备 "一节 的完整描述。 |
|
| Port | --- | 未使用。 | ||
| LineIn | --- | 忽略。 |
| 参数 | 值 | 默认值 | 类型 | 描述 |
|---|---|---|---|---|
| '[Consumer]exposure' | 实数 | 指定曝光时间。曝光时间通常以微秒为单位。不过,相机可能会偏离这一标准。有关更多详细信息,请参阅您相机的说明文档。如果 [Consumer]exposure_auto 未设置为 "关",则 [Consumer]exposure 访问为只读或不可用。此外,此 EasyParam 还取决于相机参数 ExposureMode。如果 [Consumer]exposure 不可用,您可能需要手动将 ExposureMode 更改为 "Timed" 。 | ||
| '[Consumer]exposure_auto' | 'Off', 'Continuous', 'Once' | 字符串 | 指定曝光时间是由用户手动设置还是由相机自动设置。
|
|
| '[Consumer]gain' | 实数 | 允许通过应用放大系数来增加图像亮度。有关更多详细信息,请查阅您的相机文档。如果 [Consumer]gain_auto 未设置为 "关",则 [Consumer]gain 访问权限为只读或不可用。 | ||
| '[Consumer]gain_auto' | 'Off', 'Continuous', 'Once' | 字符串 | 指定增益是由用户手动设置还是由相机自动设置。
|
|
| '[Consumer]trigger' | 'Off', 'Software', 'Line<x>' | 字符串 | 指定触发图像采集的模式。
|
|
| '[Consumer]trigger_activation' | 'RisingEdge', 'FallingEdge', 'AnyEdge', 'LevelHigh', 'LevelLow' | 字符串 | 指定触发器的激活模式。此 EasyParam 在使用硬件触发器(即 [Consumer]trigger 为 "Line<x>")且设备支持的情况下可用。
|
|
| '[Consumer]trigger_delay' | 实数 | 指定接收到触发器后激活图像采集前的延迟时间。延迟单位通常为微秒。不过,相机可能会偏离这一标准。详细信息请查阅相机的文档。 | ||
| '[Consumer]trigger_software' | 整数 | 产生内部信号。[Consumer]trigger 必须设置为 "软件",否则 EasyParam 无法使用。 | ||
| '[Device]DeviceEventsThreadApplyPriority' | --- | 整数 | 将通过 "[Device]DeviceEventsThreadPriority" 和 "[Device]DeviceEventsThreadSchedulingPolicy" 参数配置的线程优先级和调度策略(如果适用于给定的操作系统)应用到事件处理线程。如果线程正在运行,则直接应用这些值。如果线程暂时未运行,则会存储这些值,并在线程再次启动时立即应用。应用程序有责任确保调用进程有足够的权限。 如果设备不支持设备事件,或使用 "device_event_handling=0" 通用参数禁用了事件处理功能,则无法使用该功能。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| '[Device]DeviceEventsThreadPriority' | <thread_priority> | 整数 | 用于内部事件处理线程的操作系统特定线程优先级值。实际值直接是操作系统的优先级标识符,例如 Windows 下的 THREAD_PRIORITY_HIGHEST 或 Linux 下的实时优先级值。 只有在执行 "[Device]DeviceEventsThreadApplyPriority" 命令参数后,才会应用实际优先级,如果适用于 给定系统,还可能连同 "[Device]DeviceEventsThreadSchedulingPolicy" 值一起应用。 应用程序有责任确保调用进程有足够权限应用优先级更改,并确保写入参数的值是有效的优先级标识符。应用 "[Device]DeviceEventsThreadApplyPriority" 后,应用程序可以读回优先级值,以验证是否正确应用。 请注意,在打开设备时,GigE Vision 生产者会尝试将线程优先级提升到合适的值。 如果设备不支持设备事件,或使用 "device_event_handling=0" 通用参数禁用了事件处理功能,则无法使用该功能。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| '[Device]DeviceEventsThreadSchedulingPolicy' | <scheduling_policy> | 整数 | 用于内部事件处理线程的操作系统特定调度策略值。实际值直接是操作系统的优先级标识符,例如 Linux 下的 SCHED_FIFO。请注意,Windows 下不提供此功能。 只有在执行 "[Device]DeviceEventsThreadApplyPriority" 命令参数和 "[Device]DeviceEventsThreadPriority" 值后,才会应用实际调度策略。 应用程序有责任确保调用进程有足够的权限应用调度策略,并确保写入参数的值是有效的调度策略标识符。应用 "[Device]DeviceEventsThreadApplyPriority" 后,应用程序可以读回调度策略值,以验证是否正确应用。 如果设备不支持设备事件,或使用 "device_event_handling=0" 通用参数禁用了事件处理,则无法使用该功能。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| '[Device]DeviceLinkHeartbeatMode' | 'Off', 'On' | 'Off' | 字符串 | 允许禁用设备上的心跳控制。该参数只有在给定设备支持时才会出现。通常只有在调试程序时才禁用心跳(以防止在遇到断点时丢失设备连接)。在禁用且未重新启用设备时,如果应用程序未能正确关闭连接(例如在崩溃或调试器硬停止时),设备将不会认为连接已过期,而必须重新启动。在大多数情况下,保持默认值不变是最佳解决方案。一个可能的例外是,如果给定的设备不支持禁用心跳,那么在调试时可以大大延长超时时间。 |
| '[Device]DeviceLinkHeartbeatTimeout' | <timeout> | 整数 | 心跳超时(单位微秒),如果应用程序无法维持心跳协议,设备将在超时后断开连接。大多数情况下,保持默认值不变是最佳解决方案。一个可能的例外情况是,如果给定设备不支持禁用心跳,调试时可以大幅延长超时时间。 | |
| '[Device]DeviceMessageChannelKeepAliveTimeout' | 30000 | 浮点数 | 在监听设备事件时向设备的消息通道端口发送保持接收数据包的间隔(单位毫秒),以模拟事件流量是出站流量而不是入站流量,从而有助于在有防火墙的情况下可靠地接收事件。实际所需的时间间隔可能取决于实际使用的防火墙。零表示完全不发送任何 keep-alive 数据包。 | |
| '[Device]EventNotification' | 'Off', 'On' | 'Off' | 字符串 | 启用/禁用在 "[Device]EventSelector" 中选择的 GigE Vision 生产者设备模块事件的传送。 |
| '[Device]EventSelector' | 'DeviceLost' | 字符串 | 使用 "[Device]EventNotification" 选择要启用/禁用的 GigE Vision 生产者设备模块事件。 | |
| '[Device]LinkCommandRetryCount' | 3 | 整数 | 指定 HALCON GigEVision2 在未收到设备的相应命令确认(假设命令丢失)时,尝试向设备重发给定控制命令的次数。与 "[Device]LinkCommandTimeout" 一起使用,通常应保持不变。 | |
| '[Device]LinkCommandTimeout' | 200000 | 整数 | 指定 HALCON GigEVision2 在假定命令丢失并尝试再次发送之前,等待设备确认单个控制命令的超时(单位微秒)。与 "[Device]LinkCommandRetryCount" 一起使用,通常应保持不变。 | |
| '[Interface]GevDeviceForceGateway' | <gateway> | 整数 | 在 "[Interface]DeviceSelector" 中选择的设备要强制使用的默认网关(连同 IP 地址)。该参数仅用于为设备准备所需的 IP 配置值(与 "[Interface]GevDeviceForceIPAddress" 和 "[Interface]GevDeviceForceSubnetMask" 一起),这些设置实际上是通过 "[Interface]GevDeviceForceIP" 一起应用的。 请谨慎使用,使用与设备连接的接口不匹配的配置可能会导致设备无法访问。旨在解决此类情况。仅适用于当前未打开的设备。 请注意,open_framegrabber 中的 "force_ip" 通用参数也有类似作用。 |
|
| '[Interface]GevDeviceForceIP' | 0, 1 | 整数 | 向 "[Interface]DeviceSelector" 中选择的设备发送更改当前 IP 设置(IP 地址、子网掩码和默认网关)的请求。请求的新设置是先前存储在参数 "[Interface]GevDeviceForceIPAddress"、"[Interface]GevDeviceForceSubnetMask" 和 "[Interface]GevDeviceForceGateway" 中的设置。请谨慎使用,使用与设备连接的接口不匹配的配置可能会导致设备无法连接。旨在解决此类情况。仅适用于当前未打开的设备,已打开的设备将忽略该请求。设置不会在设备的电源循环中持续存在。 该操作可能会耗费大量时间(秒),等待操作完成的超时可由 "[Interface]GevDeviceForceIPTimeout" 控制,详情请查看其文档。要查询操作状态,请在启动操作后读取 "[Interface]GevDeviceForceIP" 参数的值: 0 表示 "尚未完成",1 表示 "操作已完成"。一旦 "完成",可使用"[Interface]GevDeviceLastForceIPSuccess" 读取操作的实际成功率。 请注意,open_framegrabber 中的 "force_ip" 通用参数也有类似作用。 |
|
| '[Interface]GevDeviceForceIPAddress' | <ip_address> | 整数 | 在"[Interface]DeviceSelector" 中选择的设备要强制使用的 IP 地址(连同子网掩码和网关)。该参数仅用于为设备准备所需的 IP 配置值(与 "[Interface]GevDeviceForceSubnetMask" 和 "[Interface]GevDeviceForceGateway" 一起,这些设置实际上是通过 "[Interface]GevDeviceForceIP" 一起应用的。 请谨慎使用,使用与设备所连接接口不匹配的配置可能会导致设备无法连接。旨在解决此类情况。仅适用于当前未打开的设备。 使用 "[Interface]GevDeviceProposeIP" 可自动为该参数填充合适的值。 请注意,open_framegrabber 中的 "force_ip" 通用参数也有类似作用。 |
|
| '[Interface]GevDeviceForceIPTimeout' | [10000, 10000000] | 7000000 | 整数 | 等待 "[Interface]GevDeviceForceIP" 操作结果的超时(单位微秒)。请注意,遵守 GigE Vision 规范建议的设备将通过 ARP 机制验证所需 IP 地址的可用性(冲突),这意味着它可能需要等待长达 7 秒的 ARP 响应。因此,7 秒是超时值的默认值。 |
| '[Interface]GevDeviceForceSubnetMask' | <subnet_mask> | 整数 | 在 "[Interface]GevDeviceForceGateway" 中所选设备中强制使用的子网掩码(与 IP 地址一起)。该参数仅用于为设备准备所需的 IP 配置值(与 "[Interface]GevDeviceForceIPAddress" 和 "[Interface]GevDeviceForceGateway" 一起,使用 "[Interface]GevDeviceForceIP" 实际应用这些设置。 请谨慎使用,使用与设备所连接接口不匹配的配置可能会导致设备无法连接。旨在解决此类情况。仅适用于当前未打开的设备。 请注意,open_framegrabber 中的 "force_ip" 通用参数也有类似作用。 |
|
| '[Interface]GevDeviceProposeIP' | --- | 整数 | 为在 "[Interface]DeviceSelector" 中选择的设备生成合适的 IP 设置建议(IP 地址、子网掩码和默认网关)。建议的设置与设备所连接接口的子网相匹配,以便设备可以直接连接。 建议的设置存储在参数 "[Interface]GevDeviceForceIPAddress"、"[Interface]GevDeviceForceSubnetMask" 和 "[Interface]GevDeviceForceGateway" 中,并可使用 "[Interface]GevDeviceForceIP" 应用到设备。 |
|
| '[Stream]DeviceStreamChannelKeepAliveTimeout' | 30000 | 浮点数 | 活动流传输期间向设备的流通道端口发送保持连接数据包的间隔(单位毫秒),以模拟流流量是出站流量而不是入站流量,从而有助于在有防火墙的情况下可靠地进行流传输。实际所需的时间间隔可能取决于实际使用的防火墙。零表示完全不发送 keep-alive 数据包。 | |
| '[Stream]DeviceStreamChannelNegotiatePacketSize' | --- | 整数 | 根据远程设备、主机及其连接路径,开始协商最佳数据包大小。协商结果将应用于设备,并反映在 "[Stream]DeviceStreamChannelPacketSize" 中。如果协商失败,算法会尝试将配置恢复为初始数据包大小值。 请注意,协商会在打开设备时自动应用。 |
|
| '[Stream]DeviceStreamChannelPacketSize' | <packet_size> | 整数 | 为设备数据流通道配置的数据包大小(类似功能也可能出现在远程设备本身的功能设置中)。同时配置远程设备和 GigE Vision 生产者。 | |
| '[Stream]DeviceStreamChannelPacketSizeInc' | --- | 整数 | 控制用于流通道的数据包大小功能的预期增量。它既影响数据包大小的直接控制("[Stream]DeviceStreamChannelPacketSize"),也影响协商算法("[Stream]DeviceStreamChannelNegotiatePacketSize")。 除非有理由应用更严格的限制,否则该限制通常应与设备本身施加的实际限制同步设置。当设备限制未知时,初始值设置为 4。 |
|
| '[Stream]DeviceStreamChannelPacketSizeMax' | --- | 整数 | 控制流通道所需的最大数据包大小。它既影响数据包大小的直接控制("[Stream]DeviceStreamChannelPacketSize"),也影响协商算法("[Stream]DeviceStreamChannelNegotiatePacketSize")。 除非有理由应用更严格的限制,否则该限制通常应与设备本身施加的实际限制同步设置。当设备限制未知时,初始值将设置为设备连接的网络接口所接受的 MTU 大小。 |
|
| '[Stream]DeviceStreamChannelPacketSizeMin' | --- | 整数 | 控制流通道所需的最小数据包大小。它既影响数据包大小的直接控制("[Stream]DeviceStreamChannelPacketSize"),也影响协商算法("[Stream]DeviceStreamChannelNegotiatePacketSize")。 限值通常应与设备本身规定的实际限值同步设置,除非有理由适用更严格的限值。当设备限制未知时,初始值设置为 46。 |
|
| '[Stream]EventNotification' | 'Off', 'On' | 'Off' | 字符串 | 启用/禁用在 "[Stream]EventSelector" 中选择的 GigE Vision 生产者数据流模块事件的传输。 |
| '[Stream]EventSelector' | 'TransferEnd' | 字符串 | 使用 "[Stream]EventNotification" 选择要启用/禁用的 GigE Vision 生产者数据流模块事件。 | |
| '[Stream]GevStreamAbortCheckPeriod' | 300000 | 浮点数 | 以微秒为单位的时间间隔,定义数据包处理线程检查停止请求的频率。时间越短,获取停止的速度越快,但意味着空闲时线程活动越多。 | |
| '[Stream]GevStreamDeliverIncompleteBlocks' | 0, 1 | 1 | 整数 | 标志,表示不完整的缓冲区(有一个或多个数据包丢失)应被传送还是丢弃。需要注意的是,如果一个数据块的首部或尾部丢失,它还是会被丢弃。 |
| '[Stream]GevStreamFullBlockTerminatesPrev' | 0, 1 | 0 | 整数 | 标志,指示接收到完整缓冲区后,是否立即终止获取队列中之前的任何缓冲区,无论这些缓冲区是否仍在等待重发,从而避免阻塞完整缓冲区。 |
| '[Stream]GevStreamMaxBlockDuration' | 0 | 浮点数 | 数据块的最长持续时间("在线"),单位为微秒。过期时,引擎将假定已收到数据块预告片(数据块尾随控制数据包),如果支持数据包重发,则会要求重发。
零表示无限制,例如适用于具有稀疏行触发器的行扫描设备。
注:对于过滤器驱动程序,该值四舍五入为毫秒。如果过期,则检查最早的数据块是否可以发送。如果不能,则请求重新发送最早的数据块。如果丢失的数据包多于尾部数据包,则该数据块也会被标记为送达。当计时器第二次过期时,标记的数据块要么被丢弃,要么被发送。 |
|
| '[Stream]GevStreamMaxPacketGaps' | 30 | 整数 | 套接字驱动程序: 一个数据块中数据包间隙的最大数量。影响分配给重发机制的资源量。 过滤器驱动程序: 不完整数据块允许丢失数据包的百分比。因此,这也是每个数据块发送重发请求的最大数量。 一旦超过,引擎将放弃完成该数据块的尝试,并将其丢弃。 | |
| '[Stream]GevStreamPacketOrderDelay' | 10 | 浮点数 | 控制在请求重发之前,等待不按顺序到达的数据包多长时间。对于套接字驱动程序来说,这是一个以微秒为单位的时间段;对于过滤器驱动程序来说,这是检查数据包是否丢失并最终触发重发之前需要等待的数据包数量。 主要目的是避免在预计数据包会失序的情况下过早发出重发请求(例如基于链路聚合的连接,或因多个传感器标签使用不当而导致数据包发送失序的相机)。 | |
| '[Stream]GevStreamReceiveSocketSize' | 128000 | 整数 | 套接字接收缓冲区的大小(字节)。直接映射到 SO_RCVBUF 套接字选项。仅适用于套接字驱动程序,过滤器驱动程序不使用。
在 Linux 系统上,在 sysctl "rmem_max" 参数限制允许的范围内大幅增加该值,通常能显著改善使用超高速设备时的性能问题(数据包丢失)。
在 Windows 系统上,将该值增加到 512000 通常会提高性能,再增加可能没有影响,甚至有负面影响(需在每个系统上测试)。相反,"[Stream]GevStreamRingBufferSize" 的影响可能更大。 |
|
| '[Stream]GevStreamRingBufferSize' | 256000 | 整数 | 用于存储数据包的流引擎环形缓冲区的大小(字节)。环形缓冲区用于分隔套接字排水线程和数据包处理线程。仅适用于套接字驱动程序,过滤器驱动程序不使用。
如果系统负载很高,环形缓冲区可帮助克服性能峰值并防止数据包丢失。 最佳值应在使用高速设备遇到性能问题(数据包丢失)时通过实验找到。将其设置为几个完整缓冲区的大小可能会在 Windows 系统上获得最佳效果。 在 Linux 系统上,"[Stream]GevStreamReceiveSocketSize" 的影响可能更大。 |
|
| '[Stream]StreamBufferHandlingMode' | 'OldestFirst', 'OldestFirstOverwrite', 'NewestOnly' | 'OldestFirst' | 字符串 | 选择流引擎用于处理新采集数据的模式,尤其是当相机运行速度快于应用程序处理速度时。该参数只有在没有采集活动时才可写入。支持的值有
|
| '[Stream]StreamThreadApplyPriority' | --- | 整数 | 将通过 "[Stream]StreamThreadPriority" 和 "[Stream]StreamThreadSchedulingPolicy" 参数配置的线程优先级和调度策略(如果适用于给定的操作系统)应用于流处理线程。如果线程正在运行(采集启动),则直接应用这些值。如果线程暂时未运行,则会存储这些值,并在线程再次启动时立即应用。应用程序有责任确保调用进程拥有足够的权限。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| '[Stream]StreamThreadPriority' | <thread_priority> | 整数 | 用于内部流处理线程的操作系统特定线程优先级值。实际值直接是操作系统的优先级标识符,例如 Windows 下的 THREAD_PRIORITY_HIGHEST 或 Linux 下的实时优先级值。 实际优先级只有在执行 "[Stream]StreamThreadApplyPriority" 命令参数后才会应用,如果适用于给定系统,还可能与 "[Stream]StreamThreadSchedulingPolicy" 值一起应用。 应用程序有责任确保调用进程有足够权限应用优先级更改,并确保写入参数的值是有效的优先级标识符。应用 "[Stream]StreamThreadApplyPriority" 后,应用程序可以读回优先级值,以验证是否正确应用。 请注意,在打开设备时,GigE Vision 生产者会尝试将线程优先级提升至合适的值。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| '[Stream]StreamThreadSchedulingPolicy' | <scheduling_policy> | 整数 | 用于内部流处理线程的操作系统特定调度策略值。实际值直接是操作系统的优先级标识符,例如 Linux 下的 SCHED_FIFO。请注意,Windows 下不提供此功能。 只有在执行 "[Stream]StreamThreadApplyPriority" 命令参数和 "[Stream]StreamThreadPriority" 值后,才会应用实际调度策略。 应用程序有责任确保调用进程有足够的权限应用调度策略,并确保写入参数的值是有效的调度策略标识符。应用 "[Stream]StreamThreadApplyPriority" 后,应用程序可以读回调度策略值,以验证是否正确应用。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| 'add_objectmodel3d_overlay_attrib' | 'disable', 'enable' | 'disable' | 字符串 | 控制采集接口是否应尝试将强度/颜色叠加附加到生成的三维对象模型上。仅适用于从给定抓取算子输出三维对象体模型的情况。开启后,采集接口将尝试在采集的数据中找到合适的信息(如果设备提供)。如果有,则会以扩展属性的形式为输出模型中的每个点添加叠加信息。请注意,在某些高级使用案例中,设备可能会输出多个潜在的叠加图像,因此采集接口会尝试找到最合适的图像。 首先,它会尝试识别采集数据中标记为 "强度" 图像的数据。如果发现并提供的是单色二维图像,则将其附加为 "&intensity_gray" 扩展属性。如果找到并提供的是 RGB 图像,则会作为 "&intensity_red"、"&intensity_green" 和 "&intensity_blue" 三个扩展属性附加。 如果无法识别 "强度 "数据,则会尝试查找标记为 "反射率" 的数据。如果找到并提供的是单色二维图像,则将其附加为 "&reflectance_gray" 扩展属性。如果找到并提供的是 RGB 图像,则会作为 "&reflectance_red"、"&reflectance_green" 和 "&reflectance_blue" 三个扩展属性添加。 最后,如果 "强度" 和 "反射率" 数据都无法识别(要么不存在,要么设备没有正确标记),则会在获取的数据中挑选第一个可以映射到三维坐标的二维图像。如果找到并提供的是单色二维图像,则将其添加为 "&overlay_gray" 扩展属性。如果找到并提供的是 RGB 图像,它将作为 "&overlay_red"、"&overlay_green" 和 "&overlay_blue" 三个扩展属性附加。 如果没有找到合适的二维图像,则不会添加叠加。例如,可以使用带有 "extended_attribute_names" 参数的 get_object_model_3d_params 运算符查询实际添加的扩展属性。覆盖层也可用于可视化目的。 |
| 'bits_per_channel' | -1, 8, 10, 12, 14, 16 | 整数 | 生成的 HALCON 图像每个通道的比特数。如果为-1,则使用各采集缓冲区的比特深度。如果指定的值大于 8,抓取的图像将以 uint2 图像的形式传输。 | |
| 'buffer_reallocation_mode' | 'only_increase_size', 'follow_payloadsize' | 'only_increase_size' | 字符串 | 定义为新采集重新分配缓冲区时所遵循的策略。如果使用 "only_increase_size",则只有在有效载荷大小增加时才会重新分配缓冲区。如果使用 "follow_payloadsize",则每次有效载荷大小发生变化时都会重新分配缓冲区。 |
| 'clear_buffer' | 'disable', 'enable' | 'disable' | 字符串 | 如果启用,则在重新排队前会清除每个缓冲区的内容(所有字节都设置为 0xF0,而不考虑预期的像素格式),这样就可以看到图像的哪些部分丢失了,以防某些图像数据包传输失败。当然,这个参数会增加运行时的开销,因为每次缓冲区排队时都要写入 0xF0 数据。它主要用于结合传输层进行调试,因为传输层不能保证传输完整的图像。请注意,该参数不会修改缓冲区队列,只会将缓冲区的内容设置为定义的状态。 |
| 'color_space' | 'default', 'gray', 'raw', 'rgb', 'yuv' | 字符串 | 指定所需的,从而指定生成的 HALCON 图像的图像通道数。如果单色像素格式为 "default",则设为 "gray",否则设为 "rgb"(未知像素格式设为 "raw")。 | |
| 'confidence_mode' | 'off', 'object_model_3d' | 'off' | 字符串 | 控制采集接口是否使用(以及如何使用)像素置信度信息。仅适用于置信度信息与实际像素数据一起交付(按像素)的设备和用例。 区分有效和无效像素的阈值由 "置信度阈值" 参数控制。 请注意,在某些使用情况下,可能有其他标准来标记给定像素无效,例如,如果设备使用 "无效像素值" 来表示三维坐标。这些情况不包含在 "confidence_mode" 参数中,并且三维对象模型始终会剔除这些无效像素。可能的值有:
|
| 'confidence_threshold' | [0.0, 1.0] | 0.5 | 浮点数 | 区分有效像素和无效像素的阈值。仅适用于将置信度信息(按像素)与实际像素数据一起传送的设备和用例。使用 "confidence_mode" 参数可决定如何应用置信度阈值(应用于哪些输出)。 阈值被解释为 0.0 和 1.0 之间的(浮点数)比率。采集接口会将此比率重新映射到设备提供的实际置信度范围,并以此来决定哪些像素有效,哪些无效。置信度低于指定阈值的像素将被视为无效。 |
| 'coordinate_transform_mode' | 'none', 'cartesian', 'reference' | 'reference' | 字符串 | 控制采集接口在根据获取的三维坐标建立三维对象模型时,应尝试执行哪些坐标变换算子。请注意,决定执行哪种变换以及使用哪些参数完全取决于设备提供的三维配置信息和获取的数据。如果这些信息不充分或坐标不准确,变换的结果可能毫无意义或无法预测。详情请参阅使用三维设备 。 可能的值有:
|
| 'create_objectmodel3d' | 'disable', 'enable' | 'disable' | 字符串 | 控制采集接口在遇到采集数据中的三维坐标时是否应尝试生成 HALCON 三维对象模型。 要获取三维对象模型,应用程序必须使用 grab_data/grab_data_async 算子,它们可以通过控制数据输出返回生成模型的句柄。而 grab_image/grab_image_async 算子不能返回三维对象模型。 重要提示:默认情况下禁用该参数。启用后,一旦不再需要给定的模型,应用程序就有责任使用 clear_object_model_3d 算子释放生成的对象模型和相关资源。为此,应用程序应跟踪每次 grab_data/grab_data_async 调用的控制数据输出中哪些带有三维对象模型句柄。这可以使用 "data_contents" 参数来实现。 生成三维模型模型时,采集接口会处理采集数据中的三维坐标,并借助设备报告的实际三维配置信息构建点云。详情请参阅使用三维设备 。 |
| 'delay_after_stop' | <milliseconds> | 0 | 整数 | 设备停止采集(AcquisitionStop 命令)与 GigE Vision 生产者之间的等待时间(毫秒)。 |
| 'do_abort_grab' | --- | 终止当前图像采集并解锁采集时可能锁定的参数。参见 采集概述 。 | ||
| 'do_fileaccess_delete' | --- | 删除设备文件 "fileaccess_remote_name" 的内容,前提是设备支持文件删除操作。 请注意,只有在给定设备支持 GenICam 文件访问功能时,所有与文件访问相关的参数才可用。 |
||
| 'do_fileaccess_download' | --- | 将设备文件 "fileaccess_remote_name" 的内容下载到 "fileaccess_file_path" 中指定的主机文件中。 请注意,只有给定设备支持 GenICam 文件访问功能时,所有与文件访问相关的参数才可用 | ||
| 'do_fileaccess_upload' | --- | 将主机文件 "fileaccess_file_path" 中的数据上传到 "fileaccess_remote_name" 中指定的设备文件。用户有责任确保源文件的大小和内容符合设备的预期。 请注意,只有当指定设备支持 GenICam 文件访问功能时,所有与文件访问相关的参数才可用。 | ||
| 'do_fwupdate_apply' | --- | 应用在 "fwupdate_update_selector" 中选择的固件更新。 请注意,所有固件更新相关参数只能在专用的 "安全模式" 下使用,参见 固件更新 。 |
||
| 'do_load_settings' | <input_file> | 字符串 | 恢复先前存储的已打开设备的设置。参数 "settings_selector" 指定是否要恢复实际(远程)设备、GigE Vision 生产者模块之一或消费者参数(GigEVision2 图像采集接口的内部参数)的设置。参见 "参数 - 持续设备状态" 一节的详细描述。 | |
| 'do_write_configuration' | <output_file> | 字符串 | 写入配置 (ini) 文件,并将带有设备当前配置的 GenICam 描述文件和持久性文件写入同一目录。 字符串参数必须是目标 ini 文件的文件名(包括完整路径)。该路径必须在写入之前就存在。写入的 ini 文件包含写入的描述文件和持久化文件的路径列表。 为远程设备和与当前打开的设备相关联的每个 GigE Vision 生产者模块写入 GenICam 描述文件。为远程设备和每个 GigE Vision 生产者模块以及 GigEVision2 图像采集接口的内部参数写入持久文件。 完整配置可通过 open_framegrabber 算子的 "CameraType" 参数加载,详细描述参见 "设备打开" 一节 。内部参数的持久值会覆盖传递给 "open_framegrabber" 的相应参数(尤其是 "BitsPerChannel" 和 "ColorSpace" )。 可以使用 "默认" 或空字符串来代替指定输出 ini 文件的全名。在这种情况下,文件将被写入临时目录(取决于 %TEMP%、%TMP%、$TMPDIR、/tmp 或 %HALCONROOT%),配置文件的文件名为 halcon_generl_config.ini。此默认选项也适用于使用图像采集助手。 另见相关小节 选择 GenICam 功能描述文件 和 参数 - 持续设备状态 。 |
|
| 'do_write_settings' | <output_file> | 字符串 | 写入已打开设备的当前设置,以便日后恢复。参数 "settings_selector" 指定要写入的是实际(远程)设备的设置、GigE Vision 生产者模块之一还是消费者参数(GigEVision2 图像采集接口的内部参数)。参见 "参数 - 持续设备状态" 一节的详细描述。 | |
| 'event_data' | '<list of genicam_feature/internal_parameter>' | 字符串 | 配置 GenICam 功能和/或内部参数(自由组合),以便将其添加到 "event_message_queue" 指定的消息队列中,为在 "event_selector" 中选择的功能发送功能更改通知。 功能可以单独添加,也可以作为一个元组添加——该参数的每个 "设置" 操作都会追加到当前的事件数据列表中。要移除单个功能,请在其前面加上"~"。要清除当前添加的所有功能,请调用 set_framegrabber_param(..., 'event_data', [])。 如需进一步了解该机制的用法,请访问 事件消息队列 。 |
|
| 'event_message_queue' | 0, '<queue_handle>' | 句柄 | 选择采集接口应向其发送功能更改通知的消息队列(详见 事件消息队列 )。 相应的 功能/参数 需要事先通过 "event_selector" 选择。 设置 0 (NULL)后,先前选定的消息队列将不再收到有关给定功能/参数的通知。 |
|
| 'event_notification_helper' | 'disable', 'enable' | 'disable' | 字符串 | 控制采集接口在 set_framegrabber_callback 期间,如果回调正在(未)注册到符合 SFNC 标准的事件上,是否应尝试自动(取消)设置 "EventNotification"。请注意,只有当回调是在实际事件特征(如 "EventExposureEnd" )而非事件数据特征(如 "EventExposureEndTimestamp")上注册时才会起作用。有关事件的更多信息,参见 事件数据 。 |
| 'event_selector' | '<genicam_feature/internal_parameter>' | 'grab_timeout' | 字符串 | 选择一个 GenICam 功能或内部参数,为其配置通过消息队列发送的功能更改通知。 这些通知会连同在 "event_data" 中配置的附加数据一起发送到 "event_message_queue" 中指定的消息队列。 有关该机制使用的更多信息,请参阅 事件消息队列(这是通过回调发送通知的另一种选择,即 功能更改通知 )。 |
| 'fileaccess_file_path' | '<file_path>' | 字符串 | 指定用于主机和设备之间文件交换操作的本地文件(在主机文件系统中)的完整路径、"do_fileaccess_download" 或 "do_fileaccess_upload"。 当前用户/进程必须有足够的权限访问文件。请注意,只有当指定设备支持 GenICam 文件访问功能时,所有与文件访问相关的参数才可用。 |
|
| 'fileaccess_remote_name' | '<file_name>' | 字符串 | 选择设备上需要执行 "do_fileaccess_download"、"do_fileaccess_upload" 或 "do_fileaccess_delete" 文件访问处理操作之一的文件。 文件名必须是设备执行的文件之一 - 有效文件名称集可通过 "fileaccess_remote_name_values" 查询。请注意,只有当指定设备支持 GenICam 文件访问功能时,所有与文件访问相关的参数才可用。 | |
| 'fwupdate_file_path' | '<file_name>' | 字符串 | 包含 GenICam 兼容固件更新(guf 文件)的文件路径。设置后,将验证该文件并枚举其中包含的固件更新。如果无效或找不到与当前设备匹配的更新,则会出错。如果成功,可以使用 "fwupdate_update_selector_values" 查询匹配的更新集,并使用 "fwupdate_update_selector" 选择实际要应用的更新。最后,可使用 "do_fwupdate_apply" 应用选定的更新。 请注意,所有固件更新相关参数只能在专用的 "安全模式" 下使用,参见 固件更新 。 |
|
| 'fwupdate_update_selector' | '<firmware_update_label>' | 字符串 | 选择可通过 "do_fwupdate_apply" 应用的固件更新。在 "fwupdate_file_path" 中选择一个有效的固件更新文件后,选择器就可用了。可使用 "fwupdate_update_selector_values" 查询选项(描述在该文件中找到的匹配固件更新的标签)。 请注意,所有固件更新相关参数只能在专用的 "安全模式" 下使用,参见 固件更新 。 |
|
| 'fwupdate_wait_after_reset' | '<timeout>' | 整数 | 如果在固件更新过程中需要重置设备,在设备重新发现前应用的额外超时(毫秒)。该超时将添加到固件更新文件本身指定的相应超时中。当使用原始超时无法安全地重新发现设备时,用于解决系统特定问题。 请注意,所有固件更新相关参数只能在专用的 "安全模式" 下使用,参见 固件更新 。 |
|
| 'grab_timeout' | <milliseconds> | 5000 | 整数 | 终止待处理抓取的预期超时(毫秒)。如果指定-1,则超时设置为无限。 |
| 'image_height' | --- | 0 | 不支持(只读参数)。 | |
| 'image_width' | --- | 0 | 不支持(只读参数)。 | |
| 'register_<addr>_<len>' | 整数 | 直接访问寄存器,用于读写整数。数值必须是十六进制,如 0x0938。注意只接受 4 或 8 字节长度的值。设备字节顺序不进行转换。注意: 这是一个危险的功能,用于调试和特殊情况。通常只能使用 XML 中的功能。 | ||
| 'settings_selector' | 'RemoteDevice', 'Stream', 'Device', 'System', 'Interface', 'Consumer' | 'RemoteDevice' | 字符串 | 在使用 set_framegrabber_param(..., 'do_write_settings', []) 和 set_framegrabber_param(..., 'do_load_settings', []) 时,选择将哪个组件(参数集)的可流参数持久保存到文件中或从文件中恢复。在实际(远程)设备、GenTL 生产者模块之一或消费者参数(GenICamTL 图像采集接口的内部参数)之间进行选择。并非所有 GenTL 生产者都能实现所有模块。查询 "settings_selector_values" 可获得可接受值的列表。有关该机制使用的更多信息,请参阅 参数 - 持久设备状态。 |
| 'split_param_values_into_dwords' | 'disable', 'enable' | 'disable' | 字符串 | 启用一种特殊模式,允许将整数参数视为两个 32 位整数的元组。为了与单参数模式兼容,第一个元组元素总是携带数值的低 32 位部分,第二个元素携带高 32 位部分。用户有责任正确组合这两个部分。该模式特别有助于解决 32 位 HALCON 仅具有 32 位整数参数,但必须面对 64 位宽 GenICam 功能的问题。在此模式下,get_framegrabber_param 返回的总是两个整数的元组,set_framegrabber_param 可接受单个参数或元组。请注意,该模式只影响整数参数,而且只影响基于 GenICam 的参数,而不影响 HALCON GenICamTL 图像采集接口的内部参数("buffer_timestamp"、"buffer_timestamp_ns"、"device_timestamp_frequency" 和 "buffer_frameid" 内部参数除外)。 |
| 'start_async_after_grab_async' | 'disable', 'enable' | 'enable' | 字符串 | 默认情况下,在 grab_image_async 结束时,会自动向采集设备发出一条新的异步抓取命令。如果参数 "start_async_after_grab_async" 设置为 "disable",则会省略新的抓取命令。 |
| 'start_column' | --- | 0 | 不支持(只读参数)。通过设备参数配置图像大小。 | |
| 'start_row' | --- | 0 | 不支持(只读参数)。通过设备参数配置图像大小。 | |
| 'volatile' | 'disable', 'enable' | 'disable' | 字符串 | 启用后,将开启易失性模式,直接使用图像缓冲区创建 HALCON 图像。这是避免在内存中复制原始图像的最快模式。但要注意,采集引擎可能会随时用新数据覆盖旧图像。当设备配置发生变化,必须重新分配采集缓冲区时,旧的 HALCON 图像甚至会失效(指向不再存在的内存)。另见 有关采集缓冲区处理的详细信息 。 请注意,无论当前配置如何,都可以随时开启易失性模式。不过,在运行时,只有与易失性模式兼容的采集图像才会传送给应用程序(其他图像将被丢弃)。兼容尤其是指采集图像的像素格式与为 HALCON 图像输出格式配置的 color_space 和 bits_per_channel 设置相匹配。 |
在调用 info_framegrabber(.., 'parameters', ..) 时,所有这些后置固定参数名都不会返回,而是用于通过通用图形用户界面,特别是 HDevelop 图像采集助手,方便地进行参数设置。
| 参数 | 值 | 默认值 | 类型 | 方式 | 描述 |
|---|---|---|---|---|---|
| '[Consumer]exposure' | 实数 | 预定义 | 指定曝光时间。曝光时间通常以微秒为单位。不过,相机可能会偏离这一标准。有关更多详细信息,请参阅您相机的说明文档。如果 [Consumer]exposure_auto 未设置为 "关",则 [Consumer]exposure 访问为只读或不可用。此外,此 EasyParam 还取决于相机参数 ExposureMode。如果 [Consumer]exposure 不可用,您可能需要手动将 ExposureMode 更改为 "Timed" 。 | ||
| '[Consumer]exposure_auto' | 'Off', 'Continuous', 'Once' | 字符串 | 预定义 | 指定曝光时间是由用户手动设置还是由相机自动设置。
|
|
| '[Consumer]gain' | 实数 | 预定义 | 允许通过应用放大系数来增加图像亮度。有关更多详细信息,请查阅您的相机文档。如果 [Consumer]gain_auto 未设置为 "关",则 [Consumer]gain 访问权限为只读或不可用。 | ||
| '[Consumer]gain_auto' | 'Off', 'Continuous', 'Once' | 字符串 | 预定义 | 指定增益是由用户手动设置还是由相机自动设置。
|
|
| '[Consumer]info_general' | 句柄 | 预定义 | 返回包含设备一般信息的字典句柄。字典中的每个键映射一个 GenICam 设备信息功能。如果某个键未在设备上实现,其值将设为 "ni"(not implemented,即未实现)。包含的键:
|
||
| '[Consumer]trigger' | 'Off', 'Software', 'Line<x>' | 字符串 | 预定义 | 指定触发图像采集的模式。
|
|
| '[Consumer]trigger_activation' | 'RisingEdge', 'FallingEdge', 'AnyEdge', 'LevelHigh', 'LevelLow' | 字符串 | 预定义 | 指定触发器的激活模式。此 EasyParam 在使用硬件触发器(即 [Consumer]trigger 为 "Line<x>")且设备支持的情况下可用。
|
|
| '[Consumer]trigger_delay' | 实数 | 预定义 | 指定接收到触发器后激活图像采集前的延迟时间。延迟单位通常为微秒。不过,相机可能会偏离这一标准。详细信息请查阅相机的文档。 | ||
| '[Device]DeviceEventsThreadPriority' | <thread_priority> | 整数 | 预定义 | 用于内部事件处理线程的操作系统特定线程优先级值。实际值直接是操作系统的优先级标识符,例如 Windows 下的 THREAD_PRIORITY_HIGHEST 或 Linux 下的实时优先级值。 只有在执行 "[Device]DeviceEventsThreadApplyPriority" 命令参数后,才会应用实际优先级,如果适用于 给定系统,还可能连同 "[Device]DeviceEventsThreadSchedulingPolicy" 值一起应用。 应用程序有责任确保调用进程有足够权限应用优先级更改,并确保写入参数的值是有效的优先级标识符。应用 "[Device]DeviceEventsThreadApplyPriority" 后,应用程序可以读回优先级值,以验证是否正确应用。 请注意,在打开设备时,GigE Vision 生产者会尝试将线程优先级提升到合适的值。 如果设备不支持设备事件,或使用 "device_event_handling=0" 通用参数禁用了事件处理功能,则无法使用该功能。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| '[Device]DeviceEventsThreadSchedulingPolicy' | <scheduling_policy> | 整数 | 预定义 | 用于内部事件处理线程的操作系统特定调度策略值。实际值直接是操作系统的优先级标识符,例如 Linux 下的 SCHED_FIFO。请注意,Windows 下不提供此功能。 只有在执行 "[Device]DeviceEventsThreadApplyPriority" 命令参数和 "[Device]DeviceEventsThreadPriority" 值后,才会应用实际调度策略。 应用程序有责任确保调用进程有足够的权限应用调度策略,并确保写入参数的值是有效的调度策略标识符。应用 "[Device]DeviceEventsThreadApplyPriority" 后,应用程序可以读回调度策略值,以验证是否正确应用。 如果设备不支持设备事件,或使用 "device_event_handling=0" 通用参数禁用了事件处理,则无法使用该功能。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| '[Device]DeviceLinkHeartbeatMode' | 'Off', 'On' | 'Off' | 字符串 | 预定义 | 允许禁用设备上的心跳控制。该参数只有在给定设备支持时才会出现。通常只有在调试程序时才禁用心跳(以防止在遇到断点时丢失设备连接)。在禁用且未重新启用设备时,如果应用程序未能正确关闭连接(例如在崩溃或调试器硬停止时),设备将不会认为连接已过期,而必须重新启动。在大多数情况下,保持默认值不变是最佳解决方案。一个可能的例外是,如果给定的设备不支持禁用心跳,那么在调试时可以大大延长超时时间。 |
| '[Device]DeviceLinkHeartbeatTimeout' | <timeout> | 整数 | 预定义 | 心跳超时(单位微秒),如果应用程序无法维持心跳协议,设备将在超时后断开连接。大多数情况下,保持默认值不变是最佳解决方案。一个可能的例外情况是,如果给定设备不支持禁用心跳,调试时可以大幅延长超时时间。 | |
| '[Device]DeviceMessageChannelKeepAliveTimeout' | 30000 | 浮点数 | 预定义 | 在监听设备事件时向设备的消息通道端口发送保持接收数据包的间隔(单位毫秒),以模拟事件流量是出站流量而不是入站流量,从而有助于在有防火墙的情况下可靠地接收事件。实际所需的时间间隔可能取决于实际使用的防火墙。零表示完全不发送任何 keep-alive 数据包。 | |
| '[Device]EventDeviceLost' | 整数 | 预定义 | 发送有关 "设备丢失" 事件(与设备失去连接)的通知。如 功能更改通知 所述,要接收此类通知,必须使用 "[Device]EventSelector" 和 "[Device]EventNotification" 注册 "DeviceLost "事件传送,并为该功能注册通知回调("[Device]EventDeviceLost" )。收到通知时,建议尝试读取 [Device]EventDeviceLost 的值。如果可以读取,则表示与设备的连接确实丢失了(注意,实际读取的该参数值并不重要)。与设备失去连接后,设备句柄将不再可用,应予以关闭。 | ||
| '[Device]EventNotification' | 'Off', 'On' | 'Off' | 字符串 | 预定义 | 启用/禁用在 "[Device]EventSelector" 中选择的 GigE Vision 生产者设备模块事件的传送。 |
| '[Device]EventSelector' | 'DeviceLost' | 字符串 | 预定义 | 使用 "[Device]EventNotification" 选择要启用/禁用的 GigE Vision 生产者设备模块事件。 | |
| '[Device]GevDeviceGateway' | <gateway> | 整数 | 预定义 | 设备的默认网关地址,整数格式。 | |
| '[Device]GevDeviceIPAddress' | <ip_address> | 整数 | 预定义 | 设备的 IP 地址,整数格式。 | |
| '[Device]GevDeviceMACAddress' | <mac_address> | 整数 | 预定义 | 设备的 MAC 地址,整数格式。 | |
| '[Device]GevDeviceSubnetMask' | <subnet_mask> | 整数 | 预定义 | 设备的子网掩码,整数格式。 | |
| '[Device]LinkCommandRetryCount' | 3 | 整数 | 预定义 | 指定 HALCON GigEVision2 在未收到设备的相应命令确认(假设命令丢失)时,尝试向设备重发给定控制命令的次数。与 "[Device]LinkCommandTimeout" 一起使用,通常应保持不变。 | |
| '[Device]LinkCommandTimeout' | 200000 | 整数 | 预定义 | 指定 HALCON GigEVision2 在假定命令丢失并尝试再次发送之前,等待设备确认单个控制命令的超时(单位微秒)。与 "[Device]LinkCommandRetryCount" 一起使用,通常应保持不变。 | |
| '[Interface]GevDeviceForceGateway' | <gateway> | 整数 | 预定义 | 在 "[Interface]DeviceSelector" 中选择的设备要强制使用的默认网关(连同 IP 地址)。该参数仅用于为设备准备所需的 IP 配置值(与 "[Interface]GevDeviceForceIPAddress" 和 "[Interface]GevDeviceForceSubnetMask" 一起),这些设置实际上是通过 "[Interface]GevDeviceForceIP" 一起应用的。 请谨慎使用,使用与设备连接的接口不匹配的配置可能会导致设备无法访问。旨在解决此类情况。仅适用于当前未打开的设备。 请注意,open_framegrabber 中的 "force_ip" 通用参数也有类似作用。 |
|
| '[Interface]GevDeviceForceIP' | 0, 1 | 整数 | 预定义 | 向 "[Interface]DeviceSelector" 中选择的设备发送更改当前 IP 设置(IP 地址、子网掩码和默认网关)的请求。请求的新设置是先前存储在参数 "[Interface]GevDeviceForceIPAddress"、"[Interface]GevDeviceForceSubnetMask" 和 "[Interface]GevDeviceForceGateway" 中的设置。请谨慎使用,使用与设备连接的接口不匹配的配置可能会导致设备无法连接。旨在解决此类情况。仅适用于当前未打开的设备,已打开的设备将忽略该请求。设置不会在设备的电源循环中持续存在。 该操作可能会耗费大量时间(秒),等待操作完成的超时可由 "[Interface]GevDeviceForceIPTimeout" 控制,详情请查看其文档。要查询操作状态,请在启动操作后读取 "[Interface]GevDeviceForceIP" 参数的值: 0 表示 "尚未完成",1 表示 "操作已完成"。一旦 "完成",可使用"[Interface]GevDeviceLastForceIPSuccess" 读取操作的实际成功率。 请注意,open_framegrabber 中的 "force_ip" 通用参数也有类似作用。 |
|
| '[Interface]GevDeviceForceIPAddress' | <ip_address> | 整数 | 预定义 | 在"[Interface]DeviceSelector" 中选择的设备要强制使用的 IP 地址(连同子网掩码和网关)。该参数仅用于为设备准备所需的 IP 配置值(与 "[Interface]GevDeviceForceSubnetMask" 和 "[Interface]GevDeviceForceGateway" 一起,这些设置实际上是通过 "[Interface]GevDeviceForceIP" 一起应用的。 请谨慎使用,使用与设备所连接接口不匹配的配置可能会导致设备无法连接。旨在解决此类情况。仅适用于当前未打开的设备。 使用 "[Interface]GevDeviceProposeIP" 可自动为该参数填充合适的值。 请注意,open_framegrabber 中的 "force_ip" 通用参数也有类似作用。 |
|
| '[Interface]GevDeviceForceIPTimeout' | [10000, 10000000] | 7000000 | 整数 | 预定义 | 等待 "[Interface]GevDeviceForceIP" 操作结果的超时(单位微秒)。请注意,遵守 GigE Vision 规范建议的设备将通过 ARP 机制验证所需 IP 地址的可用性(冲突),这意味着它可能需要等待长达 7 秒的 ARP 响应。因此,7 秒是超时值的默认值。 |
| '[Interface]GevDeviceForceSubnetMask' | <subnet_mask> | 整数 | 预定义 | 在 "[Interface]GevDeviceForceGateway" 中所选设备中强制使用的子网掩码(与 IP 地址一起)。该参数仅用于为设备准备所需的 IP 配置值(与 "[Interface]GevDeviceForceIPAddress" 和 "[Interface]GevDeviceForceGateway" 一起,使用 "[Interface]GevDeviceForceIP" 实际应用这些设置。 请谨慎使用,使用与设备所连接接口不匹配的配置可能会导致设备无法连接。旨在解决此类情况。仅适用于当前未打开的设备。 请注意,open_framegrabber 中的 "force_ip" 通用参数也有类似作用。 |
|
| '[Interface]GevDeviceLastForceIPSuccess' | 0, 1 | 1 | 整数 | 预定义 | 报告上次 "[Interface]GevDeviceForceIP" 操作是否成功。只有在操作实际完成后,该参数才会给出有意义的输出:应首先通过回读 "[Interface]GevDeviceForceIP" 参数来查询其完成情况(更多详情请参见其文档)。 |
| '[Interface]GevInterfaceMACAddress' | <mac_address> | 整数 | 预定义 | 设备所连接主机网络接口的 MAC 地址,整数格式。 | |
| '[Interface]GevInterfaceMTU' | <timeout> | 整数 | 预定义 | 设备连接的主机网络接口当前接受的最大传输单元 (MTU)。 | |
| '[Interface]GevInterfaceSubnetIPAddress' | <ip_address> | 整数 | 预定义 | 设备所连接主机网络接口的 IP 地址,整数格式。 | |
| '[Interface]GevInterfaceSubnetMask' | <subnet_mask> | 整数 | 预定义 | 设备所连接主机网络接口的子网掩码,整数格式。 | |
| '[Stream]DeviceStreamChannelKeepAliveTimeout' | 30000 | 浮点数 | 预定义 | 活动流传输期间向设备的流通道端口发送保持连接数据包的间隔(单位毫秒),以模拟流流量是出站流量而不是入站流量,从而有助于在有防火墙的情况下可靠地进行流传输。实际所需的时间间隔可能取决于实际使用的防火墙。零表示完全不发送 keep-alive 数据包。 | |
| '[Stream]DeviceStreamChannelPacketSize' | <packet_size> | 整数 | 预定义 | 为设备数据流通道配置的数据包大小(类似功能也可能出现在远程设备本身的功能设置中)。同时配置远程设备和 GigE Vision 生产者。 | |
| '[Stream]DeviceStreamChannelPacketSizeInc' | --- | 整数 | 预定义 | 控制用于流通道的数据包大小功能的预期增量。它既影响数据包大小的直接控制("[Stream]DeviceStreamChannelPacketSize"),也影响协商算法("[Stream]DeviceStreamChannelNegotiatePacketSize")。 除非有理由应用更严格的限制,否则该限制通常应与设备本身施加的实际限制同步设置。当设备限制未知时,初始值设置为 4。 |
|
| '[Stream]DeviceStreamChannelPacketSizeMax' | --- | 整数 | 预定义 | 控制流通道所需的最大数据包大小。它既影响数据包大小的直接控制("[Stream]DeviceStreamChannelPacketSize"),也影响协商算法("[Stream]DeviceStreamChannelNegotiatePacketSize")。 除非有理由应用更严格的限制,否则该限制通常应与设备本身施加的实际限制同步设置。当设备限制未知时,初始值将设置为设备连接的网络接口所接受的 MTU 大小。 |
|
| '[Stream]DeviceStreamChannelPacketSizeMin' | --- | 整数 | 预定义 | 控制流通道所需的最小数据包大小。它既影响数据包大小的直接控制("[Stream]DeviceStreamChannelPacketSize"),也影响协商算法("[Stream]DeviceStreamChannelNegotiatePacketSize")。 限值通常应与设备本身规定的实际限值同步设置,除非有理由适用更严格的限值。当设备限制未知时,初始值设置为 46。 |
|
| '[Stream]EventNotification' | 'Off', 'On' | 'Off' | 字符串 | 预定义 | 启用/禁用在 "[Stream]EventSelector" 中选择的 GigE Vision 生产者数据流模块事件的传输。 |
| '[Stream]EventSelector' | 'TransferEnd' | 字符串 | 预定义 | 使用 "[Stream]EventNotification" 选择要启用/禁用的 GigE Vision 生产者数据流模块事件。 | |
| '[Stream]EventTransferEnd' | 整数 | 预定义 | 发送有关 "传输结束" 事件(在流引擎内完成缓冲区传输)的通知。要接收此类通知,必须使用 "[Stream]EventSelector" 和 "[Stream]EventNotification" 注册 "TransferEnd" 事件传送,并为该功能注册通知回调("[Stream]EventTransferEnd"),详见 功能更改通知 。从该参数读取的实际值并不重要。使用 "[Stream]EventTransferEndFrameID" 和 "[Stream]EventTransferEndBufferUndeliverable" 可获得有关该事件的其他信息。 重要提示:生成的传输结束事件与实际交付的缓冲区之间不存在 1:1 的映射关系。损坏/无法交付的缓冲区将被流引擎丢弃。根据队列状态和 "[Stream]StreamBufferHandlingMode" 参数,即使是有效的缓冲区也会被丢弃在输出队列中。 |
||
| '[Stream]EventTransferEndBufferUndeliverable' | 0, 1 | 整数 | 预定义 | 表示通过 "[Stream]EventTransferEnd" 发出传输结束事件信号的最后一个缓冲区是否可交付(有效)的标志。损坏/无法交付的缓冲区将被流引擎丢弃。根据队列状态和 "[Stream]StreamBufferHandlingMode" 参数,即使是有效的缓冲区也会被丢弃在输出队列中。 |
|
| '[Stream]EventTransferEndFrameID' | 整数 | 预定义 | 通过 "[Stream]EventTransferEnd" 发出传输结束事件信号的最后一个缓冲区的帧 ID。 | ||
| '[Stream]EventTransferEndUndeliverabilityReason' | 'Unspecified', 'InvalidPacket', 'IncompleteBuffer', 'ValidationFailedNoTrailer', 'ValidationFailed' | 字符串 | 预定义 | 说明最后一个缓冲区无法交付的原因的字符串。当'[Stream]EventTransferEndBufferUndeliverable' == 1 时,请使用此字符串来查找根本原因。 | |
| '[Stream]GevStreamAbortCheckPeriod' | 300000 | 浮点数 | 预定义 | 以微秒为单位的时间间隔,定义数据包处理线程检查停止请求的频率。时间越短,获取停止的速度越快,但意味着空闲时线程活动越多。 | |
| '[Stream]GevStreamActiveEngine' | 'SocketDriver', 'FilterDriver' | 字符串 | 预定义 | 告知当前使用的流引擎(套接字驱动程序或过滤器驱动程序)。仅适用于 Windows 系统(其他系统始终使用套接字驱动程序)。 | |
| '[Stream]GevStreamDeliveredPacketCount' | 0 | 整数 | 预定义 | 已交付区块中成功接收的所有数据包。未交付(跳过或丢弃)的数据块中的数据包不计算在内。 | |
| '[Stream]GevStreamDeliverIncompleteBlocks' | 0, 1 | 1 | 整数 | 预定义 | 标志,表示不完整的缓冲区(有一个或多个数据包丢失)应被传送还是丢弃。需要注意的是,如果一个数据块的首部或尾部丢失,它还是会被丢弃。 |
| '[Stream]GevStreamDiscardedBlockCount' | 0 | 整数 | 预定义 | 因任何原因被丢弃的数据块数量,包括数据损坏、丢失数据包过多(根据所选输入参数)或丢失头文件和/或尾文件。 | |
| '[Stream]GevStreamDuplicatePacketCount' | 0 | 整数 | 预定义 | 接收两次的数据包(通常是因为重发请求太早到达)。 | |
| '[Stream]GevStreamEngineUnderrunCount' | 0 | 整数 | 预定义 | 由于给定数据块到达时没有缓冲区调度到采集引擎而被丢弃的数据块数量。 | |
| '[Stream]GevStreamFullBlockTerminatesPrev' | 0, 1 | 0 | 整数 | 预定义 | 标志,指示接收到完整缓冲区后,是否立即终止获取队列中之前的任何缓冲区,无论这些缓冲区是否仍在等待重发,从而避免阻塞完整缓冲区。 |
| '[Stream]GevStreamIncompleteBlockCount' | 0 | 整数 | 预定义 | 交付不完整(其中有一个或多个数据包丢失)的数据块数量。 | |
| '[Stream]GevStreamLostPacketCount' | 0 | 整数 | 预定义 | 已交付数据块中丢失的所有数据包(即使在重新发送后)。未交付(跳过或丢弃)数据块中的数据包不计算在内。 | |
| '[Stream]GevStreamMaxBlockDuration' | 0 | 浮点数 | 预定义 | 数据块的最长持续时间("在线"),单位为微秒。过期时,引擎将假定已收到数据块预告片(数据块尾随控制数据包),如果支持数据包重发,则会要求重发。
零表示无限制,例如适用于具有稀疏行触发器的行扫描设备。
注:对于过滤器驱动程序,该值四舍五入为毫秒。如果过期,则检查最早的数据块是否可以发送。如果不能,则请求重新发送最早的数据块。如果丢失的数据包多于尾部数据包,则该数据块也会被标记为送达。当计时器第二次过期时,标记的数据块要么被丢弃,要么被发送。 |
|
| '[Stream]GevStreamMaxPacketGaps' | 30 | 整数 | 预定义 | 套接字驱动程序: 一个数据块中数据包间隙的最大数量。影响分配给重发机制的资源量。 过滤器驱动程序: 不完整数据块允许丢失数据包的百分比。因此,这也是每个数据块发送重发请求的最大数量。 一旦超过,引擎将放弃完成该数据块的尝试,并将其丢弃。 | |
| '[Stream]GevStreamOversizedBlockCount' | 0 | 整数 | 预定义 | 检测到超大(即一个或多个数据包无法放入分配的缓冲区)的数据块数量。无论缓冲区是否实际交付,都会被计算在内。 | |
| '[Stream]GevStreamPacketOrderDelay' | 10 | 浮点数 | 预定义 | 控制在请求重发之前,等待不按顺序到达的数据包多长时间。对于套接字驱动程序来说,这是一个以微秒为单位的时间段;对于过滤器驱动程序来说,这是检查数据包是否丢失并最终触发重发之前需要等待的数据包数量。主要目的是避免在预计数据包会失序的情况下过早发出重发请求(例如基于链路聚合的连接,或因多个传感器标签使用不当而导致数据包发送失序的相机)。 | |
| '[Stream]GevStreamReceiveSocketSize' | 128000 | 整数 | 预定义 | 套接字接收缓冲区的大小(字节)。直接映射到 SO_RCVBUF 套接字选项。仅适用于套接字驱动程序,过滤器驱动程序不使用。
在 Linux 系统上,在 sysctl "rmem_max" 参数限制允许的范围内大幅增加该值,通常能显著改善使用超高速设备时的性能问题(数据包丢失)。
在 Windows 系统上,将该值增加到 512000 通常会提高性能,再增加可能没有影响,甚至有负面影响(需在每个系统上测试)。相反,"[Stream]GevStreamRingBufferSize" 的影响可能更大。 |
|
| '[Stream]GevStreamResendCommandCount' | 0 | 整数 | 预定义 | 重发请求的次数(不管是单数据包还是多数据包)。每次重发都会被计算在内,即使同一数据包已发送多次。即使属于缓冲区的重发请求从未送达,也会被计算在内。 | |
| '[Stream]GevStreamResendPacketCount' | 0 | 整数 | 预定义 | 请求重发的数据包数量。每次重发都会被计算在内,即使同一数据包已发送多次。即使属于从未发送的缓冲区的数据包也会被计算在内。要求重新发送缓冲区尾部(其中有未知数量的数据包)时,只计算单个数据包。 | |
| '[Stream]GevStreamRingBufferSize' | 256000 | 整数 | 预定义 | 用于存储数据包的流引擎环形缓冲区的大小(字节)。环形缓冲区用于分隔套接字排水线程和数据包处理线程。仅适用于套接字驱动程序,过滤器驱动程序不使用。
如果系统负载很高,环形缓冲区可帮助克服性能峰值并防止数据包丢失。 最佳值应在使用高速设备遇到性能问题(数据包丢失)时通过实验找到。将其设置为几个完整缓冲区的大小可能会在 Windows 系统上获得最佳效果。 在 Linux 系统上,"[Stream]GevStreamReceiveSocketSize" 的影响可能更大。 |
|
| '[Stream]GevStreamSeenPacketCount' | 0 | 整数 | 预定义 | 流中看到的所有数据包(包括无效数据包或重复数据包)。 | |
| '[Stream]GevStreamSkippedBlockCount' | 0 | 整数 | 预定义 | 某处跳过的数据块数量(我们从未见过属于这些数据块的任何有效数据包)。 | |
| '[Stream]GevStreamUnavailablePacketCount' | 0 | 整数 | 预定义 | 设备明确宣布不可用(重新发送后)的所有数据包(而不是直接静默不重新发送的数据包)。这通常意味着重发请求来得太晚。 | |
| '[Stream]StreamBufferHandlingMode' | 'OldestFirst', 'OldestFirstOverwrite', 'NewestOnly' | 'OldestFirst' | 字符串 | 预定义 | 选择流引擎用于处理新采集数据的模式,尤其是当相机运行速度快于应用程序处理速度时。该参数只有在没有采集活动时才可写入。支持的值有
|
| '[Stream]StreamThreadPriority' | <thread_priority> | 整数 | 预定义 | 用于内部流处理线程的操作系统特定线程优先级值。实际值直接是操作系统的优先级标识符,例如 Windows 下的 THREAD_PRIORITY_HIGHEST 或 Linux 下的实时优先级值。 实际优先级只有在执行 "[Stream]StreamThreadApplyPriority" 命令参数后才会应用,如果适用于给定系统,还可能与 "[Stream]StreamThreadSchedulingPolicy" 值一起应用。 应用程序有责任确保调用进程有足够权限应用优先级更改,并确保写入参数的值是有效的优先级标识符。应用 "[Stream]StreamThreadApplyPriority" 后,应用程序可以读回优先级值,以验证是否正确应用。 请注意,在打开设备时,GigE Vision 生产者会尝试将线程优先级提升至合适的值。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| '[Stream]StreamThreadSchedulingPolicy' | <scheduling_policy> | 整数 | 预定义 | 用于内部流处理线程的操作系统特定调度策略值。实际值直接是操作系统的优先级标识符,例如 Linux 下的 SCHED_FIFO。请注意,Windows 下不提供此功能。 只有在执行 "[Stream]StreamThreadApplyPriority" 命令参数和 "[Stream]StreamThreadPriority" 值后,才会应用实际调度策略。 应用程序有责任确保调用进程有足够的权限应用调度策略,并确保写入参数的值是有效的调度策略标识符。应用 "[Stream]StreamThreadApplyPriority" 后,应用程序可以读回调度策略值,以验证是否正确应用。 注意:设置该参数可能导致系统无法使用或性能不佳,请谨慎使用。 |
|
| '[System]GevTLSubsystemInfo' | '<subsystem_info>' | 字符串 | 预定义 | 有关 GigE Vision 生产者实施子系统的信息。主要用于故障排除和支持。 | |
| 'add_objectmodel3d_overlay_attrib' | 'disable', 'enable' | 'disable' | 字符串 | 预定义 | 控制采集接口是否应尝试将强度/颜色叠加附加到生成的三维对象模型上。仅适用于从给定抓取算子输出三维对象体模型的情况。开启后,采集接口将尝试在采集的数据中找到合适的信息(如果设备提供)。如果有,则会以扩展属性的形式为输出模型中的每个点添加叠加信息。请注意,在某些高级使用案例中,设备可能会输出多个潜在的叠加图像,因此采集接口会尝试找到最合适的图像。 首先,它会尝试识别采集数据中标记为 "强度" 图像的数据。如果发现并提供的是单色二维图像,则将其附加 为"&intensity_gray" 扩展属性。如果找到并提供的是 RGB 图像,则会作为 "&intensity_red"、"&intensity_green" 和 "&intensity_blue" 三个扩展属性附加。 如果无法识别 "强度" 数据,则会尝试查找标记为 "反射率" 的数据。如果找到并提供的是单色二维图像,则将其附加为 "&reflectance_gray" 扩展属性。如果找到并提供的是 RGB 图像,则会作为 "&reflectance_red"、"&reflectance_green" 和 "&reflectance_blue" 三个扩展属性添加。 最后,如果 "强度" 和 "反射率" 数据都无法识别(要么不存在,要么设备没有正确标记),则会在获取的数据中挑选第一个可以映射到三维坐标的二维图像。如果找到并提供的是单色二维图像,则将其添加为"&overlay_gray" 扩展属性。如果找到并提供的是 RGB 图像,它将作为 "&overlay_red"、"&overlay_green" 和 "&overlay_blue" 三个扩展属性附加。 如果没有找到合适的二维图像,则不会添加叠加。例如,可以使用带有 "extended_attribute_names" 参数的 get_object_model_3d_params 运算符查询实际添加的扩展属性。覆盖层也可用于可视化目的。 |
| 'available_callback_types' | ['<callback_types>'] | 字符串 | 动态 | 返回一个包含所有参数的列表,可以为这些参数注册回调。这包括设备和 GigE Vision 生产者通过 GenICam 接口发布的所有参数,包括那些暂时不可用的参数,因为可用性变化可能与回调有关。 | |
| 'available_easyparam_names' | '[Consumer]exposure_auto', '[Consumer]exposure', '[Consumer]gain_auto', '[Consumer]gain', '[Consumer]info_general', '[Consumer]trigger', '[Consumer]trigger_activation', '[Consumer]trigger_delay', '[Consumer]trigger_software' | 字符串 | 预定义 | 返回包含所有 MVTec EasyParams 的列表(参见 MVTec EasyParams )。 | |
| 'available_param_names' | ['<names>'] | 字符串 | 动态 | 返回包含所有可用参数的列表,即 HALCON GigEVision2 图像采集接口使用的参数(不包括 MVTec EasyParams,可使用 "available_easyparam_names" 列出),以及设备和 GigE Vision 生产者通过 GenICam 接口发布的参数(参见 参数命名规则 )。某些参数的可用性可能取决于采集状态、其他参数的值或其他条件,因此列表在运行期间会动态变化。 | |
| 'bits_per_channel' | -1, 8, 10, 12, 14, 16 | -1 | 整数 | 预定义 | 生成的 HALCON 图像每个通道的比特数。如果为-1,则使用各采集缓冲区的比特深度。如果指定的值大于 8,抓取的图像将以 uint2 图像的形式传输。 |
| 'buffer_frameid' | <frame_id> | 整数 | 动态 | 设备(或 GigE Vision 生产者)最后抓取(图像)缓冲区上的帧 ID。通常是按顺序递增的帧编号。序列中跳过的 ID 可能表示设备或 GigE Vision 生产者丢弃了一个或多个帧,例如由于采集引擎溢出的原因。请注意,在 32 位系统上,最多只能传送 64 位时间戳的低 32 位部分(除非启用了 "split_param_values_into_dwords" 参数)。参见 采集缓冲区处理 。 | |
| 'buffer_is_incomplete' | 0, 1 | 整数 | 动态 | 显示最后抓取的图像是否不完整(例如由于数据包丢失)。参见 采集缓冲区处理 。 | |
| 'buffer_reallocation_mode' | 'only_increase_size', 'follow_payloadsize' | 'only_increase_size' | 字符串 | 预定义 | 定义为新采集重新分配缓冲区时所遵循的策略。如果使用 "only_increase_size",则只有在有效载荷大小增加时才会重新分配缓冲区。如果使用 "follow_payloadsize",则每次有效载荷大小发生变化时都会重新分配缓冲区。 |
| 'buffer_timestamp' | <timestamp> | 整数 | 动态 | 设备(或 GigE Vision 生产者)最后抓取(图像)缓冲区的时间戳。时间戳的单位和实际含义(何时生成)取决于设备。如果知道时间戳计数器的频率,则可以从 "buffer_timestamp_ns" 中读取以纳秒为单位的值。需要注意的是,在 32 位系统上,最多只能提供 64 位时间戳的低 32 位部分(除非启用了 "split_param_values_into_dwords" 参数)。 参见 采集缓冲区处理 。 | |
| 'buffer_timestamp_ns' | <timestamp> | 整数 | 动态 | 设备(或 GigE Vision 生产者)最后抓取(图像)缓冲区的时间戳。该值以纳秒为单位,但如果时间戳频率未知,则可能无法使用(另请参阅 "buffer_timestamp" 和 "device_timestamp_frequency")。请注意,在 32 位系统上,最多只能传送 64 位时间戳的低 32 位部分(除非启用了 "split_param_values_into_dwords" 参数)。参见 采集缓冲区处理 。 | |
| 'camera_type' | 'default', <ini/xml filename> | 'default' | 字符串 | 预定义 | 返回用于 open_framegrabber 中 CameraType 参数的配置文件的路径。 |
| 'clear_buffer' | 'disable', 'enable' | 'disable' | 字符串 | 预定义 | 如果启用,则在重新排队前会清除每个缓冲区的内容(所有字节都设置为 0xF0,而不考虑预期的像素格式),这样就可以看到图像的哪些部分丢失了,以防某些图像数据包传输失败。当然,这个参数会增加运行时的开销,因为每次缓冲区排队时都要写入 0xF0 数据。它主要用于结合传输层进行调试,因为传输层不能保证传输完整的图像。请注意,该参数不会修改缓冲区队列,只会将缓冲区的内容设置为定义的状态。 |
| 'color_space' | 'default', 'gray', 'raw', 'rgb', 'yuv' | 'default' | 字符串 | 预定义 | 返回当前的。 |
| 'confidence_mode' | 'off', 'object_model_3d' | 'off' | 字符串 | 预定义 | 控制采集接口是否使用(以及如何使用)像素置信度信息。仅适用于置信度信息与实际像素数据一起交付(按像素)的设备和用例。 区分有效像素和无效像素的阈值由 "置信度阈值" 参数控制。 请注意,在某些使用情况下,可能有其他标准来标记给定像素无效,例如,如果设备对三维坐标使用 "无效像素值"。"置信度模式" 参数不包括这些情况,三维对象模型始终会剔除这些无效像素。可能的值有:
|
| 'confidence_threshold' | [0.0, 1.0] | 0.5 | 浮点数 | 预定义 | 区分有效像素和无效像素的阈值。仅适用于将置信度信息(按像素)与实际像素数据一起传送的设备和用例。使用 "confidence_mode" 参数可决定如何应用置信度阈值(应用于哪些输出)。 阈值被解释为 0.0 和 1.0 之间的(浮点数)比率。采集接口会将此比率重新映射到设备提供的实际置信度范围,并以此来决定哪些像素有效,哪些无效。置信度低于指定阈值的像素将被视为无效。 |
| 'coordinate_transform_mode' | 'none', 'cartesian', 'reference' | 'reference' | 字符串 | 预定义 | 控制采集接口在根据获取的三维坐标建立三维对象模型时,应尝试执行哪些坐标变换算子。请注意,决定执行哪种变换以及使用哪些参数完全取决于设备提供的三维配置信息和获取的数据。如果这些信息不充分或坐标不准确,变换的结果可能毫无意义或无法预测。详情请参阅 使用三维设备 。 可能的值有:
|
| 'create_objectmodel3d' | 'disable', 'enable' | 'disable' | 字符串 | 预定义 | 控制采集接口在遇到采集数据中的三维坐标时是否应尝试生成 HALCON 三维对象模型。 要获取三维对象模型,应用程序必须使用 grab_data/grab_data_async 算子,它们可以通过控制数据输出返回生成模型的句柄。而 grab_image/grab_image_async 算子不能返回三维对象模型。 重要提示:默认情况下禁用该参数。启用后,一旦不再需要给定的模型,应用程序就有责任使用 clear_object_model_3d 算子释放生成的对象模型和相关资源。为此,应用程序应跟踪每次 grab_data/grab_data_async 调用的控制数据输出中哪些带有三维对象模型句柄。这可以使用 "data_contents" 参数来实现。 生成三维模型模型时,采集接口会处理采集数据中的三维坐标,并借助设备报告的实际三维配置信息构建点云。详情请参阅 使用三维设备 。 |
| 'data_contents' | 'unknown', 'object_model_3d', 'text_report' | 0 | 字符串 | 预定义 | 描述上次抓取算子返回的控制数据输出逻辑类型的元组。如果最后一次成功抓取是通过 grab_image/grab_image_async 执行的,则不适用。如果是 grab_data/grab_data_async,它将返回一个大小与通过这些算子返回的控制数据值数量相对应的元组。可能的值有:
|
| 'data_purpose_id' | --- | 0xFFFFFFFFFFFFFFFF | 整数 | 预定义 | 整数值元组,用于跟踪与上一个抓取算子返回的单个控制数据输出相关联的数据目标 IDs。适用于数据应与设备配置相匹配的高级用例。该参数的使用与特定应用有关,需要了解 GenICam SFNC 数据模型和特定设备。如果上一次成功抓拍是通过 grab_image/grab_image_async 执行的,则不适用。如果是 grab_data/grab_data_async,则返回一个元组,其大小与通过这些算子返回的控制数据值的数量相对应。如果无法识别 ID(例如,由于底层通信协议不提供此类信息),则将返回无效值(给定整数范围内的最大值)。 |
| 'data_region_id' | --- | 0xFFFFFFFFFFFFFFFF | 整数 | 预定义 | 整数值元组,用于跟踪与上一个抓取算子返回的单个控制数据输出相关联的区域 IDs。适用于数据应与设备配置相匹配的高级用例。该参数的使用与特定应用有关,需要了解 GenICam SFNC 数据模型和特定设备。如果上一次成功抓拍是通过 grab_image/grab_image_async 执行的,则不适用。如果是 grab_data/grab_data_async,则返回一个元组,其大小与通过这些操作符返回的控制数据值的数量相对应。如果无法识别 ID(例如,由于底层通信协议不提供此类信息),则将返回无效值(给定整数范围内的最大值)。 |
| 'data_source_id' | --- | 0xFFFFFFFFFFFFFFFF | 整数 | 预定义 | 整数值元组,用于跟踪与上一个抓取算子返回的单个控制数据输出相关联的源 IDs。适用于数据应与设备配置相匹配的高级用例。该参数的使用与特定应用有关,需要了解 GenICam SFNC 数据模型和特定设备。如果上一次成功抓拍是通过 grab_image/grab_image_async 执行的,则不适用。如果是 grab_data/grab_data_async,则返回一个元组,其大小与通过这些操作符返回的控制数据值的数量相对应。如果无法识别 ID(例如,由于底层通信协议不提供此类信息),则将返回无效值(给定整数范围内的最大值)。 |
| 'delay_after_stop' | <milliseconds> | 0 | 整数 | 预定义 | 设备停止采集(AcquisitionStop 命令)与 GigE Vision 生产者之间的等待时间(毫秒)。最佳值取决于所用设备的速度和 GigE Vision 生产者所需的额外安全性。如果 GigE Vision 生产者功能强大,则无需延迟。 |
| 'device' | ' | device:<device id> | unique_name:<unique name> | user_name:<user-defined name> | interface:<interface id> | producer:Esen | device_ip:<device ip> | device_sn:<serial number>', '<device id>' | 字符串 | 动态 | 返回打开设备(open_framegrabber)时使用的设备参数字符串。 | |
| 'device_event_handling' | 0, 1 | 1 | 整数 | 预定义 | open_framegrabber 中指定的 device_event_handling 通用参数的值。默认情况下,支持事件传送(消息通道)的设备将打开 device_event_handling,不支持事件功能的设备将关闭 device_event_handling。通用参数 device_event_handling 明确允许关闭事件处理功能,即使对于支持事件的设备也是如此。 |
| 'device_timestamp_frequency' | <frequency_hz> | 整数 | 动态 | 设备时间戳计数器的频率,单位为每秒嘀嗒数 (Hz)。并非所有设备的频率都是已知的。例如,计数器用于将时间戳附加到获取的缓冲区。需要注意的是,在 32 位系统上,最多只能传送 64 位时间戳的低 32 位部分(除非启用了 "split_param_values_into_dwords" 参数)。 | |
| 'direct_connection' | 'disable', 'enable' | 'disable' | 字符串 | 预定义 | open_framegrabber 中指定的 direct_connection 通用参数的值。 |
| 'event_data' | '<list of genicam_feature/internal_parameter>' | 字符串 | 预定义 | 配置 GenICam 功能和/或内部参数(自由组合),以便将其添加到 "event_message_queue" 指定的消息队列中,为在 "event_selector" 中选择的功能发送功能更改通知。 功能可以单独添加,也可以作为一个元组添加——该参数的每个 "设置" 操作都会追加到当前的事件数据列表中。要移除单个功能,请在其前面加上"~"。要清除当前添加的所有功能,请调用 set_framegrabber_param(..., 'event_data', [])。 如需进一步了解该机制的用法,请访问 事件消息队列 。 |
|
| 'event_message_queue' | 0, '<queue_handle>' | 句柄 | 预定义 | 选择采集接口应向其发送功能更改通知的消息队列(详见 事件消息队列 )。 相应的 功能/参数 需要事先通过 "event_selector" 选择。 设置 0 (NULL)后,先前选定的消息队列将不再收到有关给定功能/参数的通知。 |
|
| 'event_notification_helper' | 'disable', 'enable' | 'disable' | 字符串 | 预定义 | 控制采集接口在 set_framegrabber_callback 期间,如果回调正在(未)注册到符合 SFNC 标准的事件上,是否应尝试自动(取消)设置 "EventNotification" 。请注意,只有当回调是在实际事件特征(如 "EventExposureEnd")而非事件数据特征(如 "EventExposureEndTimestamp" )上注册时才会起作用。有关事件的更多信息,参见 事件数据 。 |
| 'event_selector' | '<genicam_feature/internal_parameter>' | 'grab_timeout' | 字符串 | 预定义 | 选择一个 GenICam 功能或内部参数,为其配置通过消息队列发送的功能更改通知。 这些通知会连同在 "event_data" 中配置的附加数据一起发送到 "event_message_queue" 中指定的消息队列。 有关该机制使用的更多信息,请参阅 事件消息队列(这是通过回调发送通知的另一种选择,即 功能更改通知 )。 |
| 'external_trigger' | <default> | 'false' | 字符串 | 预定义 | 该值不会被使用,因此会返回默认值。 |
| 'field' | '<default>' | 'progressive' | 字符串 | 预定义 | 该值不会被使用,因此会返回默认值。 |
| 'fileaccess_file_path' | '<file_path>' | 字符串 | 预定义 | 指定用于主机和设备之间文件交换操作的本地文件(在主机文件系统中)的完整路径、"do_fileaccess_download" 或 "do_fileaccess_upload"。 当前用户/进程必须有足够的权限访问文件。请注意,只有当指定设备支持 GenICam 文件访问功能时,所有与文件访问相关的参数才可用。 |
|
| 'fileaccess_remote_name' | '<file_name>' | 字符串 | 预定义 | 选择设备上需要执行 "do_fileaccess_download"、"do_fileaccess_upload" 或 "do_fileaccess_delete" 文件访问处理操作之一的文件。 文件名必须是设备执行的文件之一 - 有效文件名称集可通过 "fileaccess_remote_name_values" 查询。请注意,只有当指定设备支持 GenICam 文件访问功能时,所有与文件访问相关的参数才可用。 | |
| 'fwupdate_file_path' | '<file_name>' | 字符串 | 预定义 | 包含 GenICam 兼容固件更新(guf 文件)的文件路径。设置后,将验证该文件并枚举其中包含的固件更新。如果无效或找不到与当前设备匹配的更新,则会出错。如果成功,可以使用 "fwupdate_update_selector_values" 查询匹配的更新集,并使用 "fwupdate_update_selector" 选择实际要应用的更新。最后,可使用 "do_fwupdate_apply" 应用选定的更新。 请注意,所有固件更新相关参数只能在专用的 "安全模式" 下使用,参见 固件更新 。 |
|
| 'fwupdate_update_selector' | '<firmware_update_label>' | 字符串 | 预定义 | 选择可通过 "do_fwupdate_apply" 应用的固件更新。在 "fwupdate_file_path" 中选择一个有效的固件更新文件后,选择器就可用了。可使用 "fwupdate_update_selector_values" 查询选项(描述在该文件中找到的匹配固件更新的标签)。 请注意,所有固件更新相关参数只能在专用的 "安全模式" 下使用,参见 固件更新 。 |
|
| 'fwupdate_wait_after_reset' | '<timeout>' | 整数 | 预定义 | 如果在固件更新过程中需要重置设备,在设备重新发现前应用的额外超时(毫秒)。该超时将添加到固件更新文件本身指定的相应超时中。当使用原始超时无法安全地重新发现设备时,用于解决系统特定问题。 请注意,所有固件更新相关参数只能在专用的 "安全模式" 下使用,参见 固件更新 。 |
|
| 'generic' | '', ['num_buffers=<num>' , 'direct_connection=<mode>' , 'streaming_mode=0' , 'device_event_handling=0' ], -1 | -1 | 混合型 | 预定义 | 通用参数的值。 |
| 'grab_timeout' | <milliseconds> | 5000 | 整数 | 预定义 | 当前抓取超时(毫秒)。 |
| 'horizontal_resolution' | 0, 1, resolution | 1 | 整数 | 预定义 | 水平分辨率的当前值。 |
| 'image_available' | 0, 1 | 整数 | 动态 | 显示当前是否有图像等待 GigE Vision 生产者传输。 | |
| 'image_contents' | 'unknown', 'image', 'coord_a', 'coord_b', 'coord_c', 'coord_mixed', 'confidence' | 0 | 字符串 | 预定义 | 描述上次抓取算子返回的图像数据逻辑类型的元组。如果最后一次成功抓取是通过 grab_image/grab_image_async 执行的,该参数返回的总是单一值。如果是通过 grab_data/grab_data_async,则返回一个元组,其大小与通过这些算子返回的图像数相对应。可能的值有:
|
| 'image_height' | <height> | 0 | 整数 | 预定义 | 最后获取的图像的高度。参见 采集缓冲区处理 。如果没有可用的有效最后缓冲区,则返回远程设备 "高度" 参数的最后查询值。 |
| 'image_pixel_format' | --- | 0 | 整数 | 预定义 | 代表用于生成单个图像输出的源数据原始像素格式 ID 的整数值元组。这通常是给定像素格式的 PFNC 32 位 ID,如果未知或用于生成给定图像输出的数据自然不是图像,则报告为 0。如果源数据是多分量图像(如 RGB 或多分量三维坐标格式),无论所有分量是否用于生成给定的图像输出(如 RGB 图像),还是图像输出只反映了其中一个分量(如单独的三维坐标平面,作为单独的 HALCON 图像输出),都会报告原始的多分量像素格式。原始的多分量像素格式可能是平面格式,也可能不是。请注意,如果用户通过 "bits_per_channel" 和 "color_space" 参数要求进行转换,实际 HALCON 图像的和位深度可能与源格式有很大不同。 |
| 'image_purpose_id' | --- | 0xFFFFFFFFFFFFFFFF | 整数 | 预定义 | 整数值元组,用于跟踪与上一个抓取算子返回的单个图像输出相关联的数据用途 IDs。适用于数据应与设备配置相匹配的高级用例。该参数的使用与特定应用有关,需要了解 GenICam SFNC 数据模型和特定设备。如果上一次成功抓拍是通过 grab_image/grab_image_async 执行的,该参数返回的始终是单一值。如果是 grab_data/grab_data_async,则返回一个元组,其大小与通过这些算子返回的图像数相对应。如果无法识别 ID(例如,由于底层通信协议不提供此类信息),则将返回无效值(给定整数范围内的最大值)。 |
| 'image_raw_buffer_padding_bytes' | --- | 0 | 整数 | 预定义 | 整数元组,用于报告 "blob"(参见 "image_raw_buffer_type")类型原始缓冲区的大小,以及在抓取的 HALCON 图像末尾未使用的填充字节数。由于在这种情况下需要为生成的 HALCON 图像选择人工尺寸,图像的大小可能不完全等于缓冲区数据的大小,因此可能需要填充。"图像" 类型的缓冲区报告为零。仅适用于 "原始" 色彩格式。请参见 原始输出格式 一章。如果上一次成功抓取是通过 grab_image/grab_image_async 执行的,则该参数返回的始终是单一值。如果是 grab_data/grab_data_async,则返回一个元组,其大小与通过这些算子返回的图像数相对应。 |
| 'image_raw_buffer_type' | 'image', 'blob' | 0 | 字符串 | 预定义 | 字符串元组,显示最后抓取的 HALCON 图像是由包含已知属性(尤其是图像尺寸和像素格式)的实数图像数据的缓冲区创建的,还是由其他数据(非图像数据或未知格式的图像数据)的 blob 创建的。请注意,如果是 blob 数据,HALCON 图像的尺寸是没有意义的。主要适用于 "原始" 色彩格式。可能的值为 "image" 和 "blob" 。请参见 原始输出格式 一章。如果上一次成功抓取是通过 grab_image/grab_image_async 执行的,则该参数返回的始终是单一值。如果是 grab_data/grab_data_async,则返回一个元组,其大小与通过这些算子返回的图像数相对应。 |
| 'image_region_id' | --- | 0xFFFFFFFFFFFFFFFF | 整数 | 预定义 | 整数值元组,用于跟踪与最后抓取算子返回的单个图像输出相关联的区域 IDs。适用于数据应与设备配置相匹配的高级用例。该参数的使用与特定应用有关,需要了解 GenICam SFNC 数据模型和特定设备。如果上一次成功抓取是通过 grab_image/grab_image_async 执行的,则该参数返回的始终是单一值。如果是 grab_data/grab_data_async,则返回一个元组,其大小与通过这些算子返回的图像数相对应。如果无法识别 ID(例如,由于底层通信协议不提供此类信息),则将返回无效值(给定整数范围内的最大值)。 |
| 'image_source_id' | --- | 0xFFFFFFFFFFFFFFFF | 整数 | 预定义 | 整数值元组,用于跟踪与上次抓取算子返回的单个图像输出相关联的源 IDs。适用于数据应与设备配置相匹配的高级用例。该参数的使用与特定应用有关,需要了解 GenICam SFNC 数据模型和特定设备。如果上一次成功抓取是通过 grab_image/grab_image_async 执行的,则该参数返回的始终是单一值。如果是 grab_data/grab_data_async,则返回一个元组,其大小与通过这些算子返回的图像数相对应。如果无法识别 ID(例如,由于底层通信协议不提供此类信息),则将返回无效值(给定整数范围内的最大值)。 |
| 'image_width' | <width> | 0 | 整数 | 预定义 | 最后获取的图像的宽度。参见 采集缓冲区处理 。如果没有可用的有效最后缓冲区,则返回远程设备 "宽度" 参数的最后查询值。 |
| 'line_in' | <default> | 0 | 整数 | 预定义 | 该值不会被使用,因此会返回默认值。 |
| 'name' | 'GigEVision2' | 字符串 | 预定义 | HALCON 接口的名称。 | |
| 'num_buffers' | <number> | 4 | 整数 | 预定义 | 用于图像采集的缓冲区数量。 |
| 'num_buffers_await_delivery' | <number> | 整数 | 动态 | 等待 GigE Vision 生产者发送的(图像)缓冲区数量。 | |
| 'num_buffers_underrun' | <number> | 整数 | 动态 | 自打开设备以来因缓冲队列不足而丢失的缓冲区数量。当 GigE Vision 生产者有新的图像数据可用,但却没有空闲的缓冲区来存储这些数据时,就会出现队列不足。 | |
| 'port' | <port> | -1 | 整数 | 预定义 | 该值不会被使用,因此会返回默认值。 |
| 'register_<addr>_<len>' | 整数 | 预定义 | 直接访问寄存器,用于读写整数。数值必须是十六进制,如 0x0938。注意只接受 4 或 8 字节长度的值。设备字节顺序不进行转换。注意: 这是一个危险的功能,用于调试和特殊情况。通常只能使用 XML 中的功能。 | ||
| 'revision' | '<revision>' | 字符串 | 预定义 | GigEVision2 接口的版本号。 | |
| 'settings_selector' | 'RemoteDevice', 'Stream', 'Device', 'System', 'Interface', 'Consumer' | 'RemoteDevice' | 字符串 | 预定义 | 在使用 set_framegrabber_param(..., 'do_write_settings', []) 和 set_framegrabber_param(..., 'do_load_settings', []) 时,选择将哪个组件(参数集)的可流参数持久保存到文件中或从文件中恢复。在实际(远程)设备、GenTL 生产者模块之一或消费者参数(GenICamTL 图像采集接口的内部参数)之间进行选择。并非所有 GenTL 生产者都能实现所有模块。查询 "settings_selector_values" 可获得可接受值的列表。有关该机制使用的更多信息,请参阅 参数 - 持久设备状态。 |
| 'split_param_values_into_dwords' | 'disable', 'enable' | 'disable' | 字符串 | 预定义 | 启用一种特殊模式,允许将整数参数视为两个 32 位整数的元组。为了与单参数模式兼容,第一个元组元素总是携带数值的低 32 位部分,第二个元素携带高 32 位部分。用户有责任正确组合这两个部分。该模式特别有助于解决 32 位 HALCON 仅具有 32 位整数参数,但必须面对 64 位宽 GenICam 功能的问题。在此模式下,get_framegrabber_param 返回的总是两个整数的元组,set_framegrabber_param 可接受单个参数或元组。请注意,该模式只影响整数参数,而且只影响基于 GenICam 的参数,而不影响 HALCON GenICamTL 图像采集接口的内部参数("buffer_timestamp"、"buffer_timestamp_ns"、"device_timestamp_frequency" 和 "buffer_frameid" 内部参数除外)。 |
| 'start_async_after_grab_async' | 'disable', 'enable' | 'enable' | 字符串 | 预定义 | "start_async_after_grab_async" 的状态。 |
| 'start_column' | <column> | 0 | 整数 | 预定义 | 不支持,返回值始终为 0。 |
| 'start_row' | <row> | 0 | 整数 | 预定义 | 不支持,返回值始终为 0。 |
| 'streaming_mode' | 0, 1 | 1 | 整数 | 预定义 | 在 open_framegrabber 中指定的 streaming_mode 通用参数的值。默认情况下,支持流的设备会打开 streaming_mode,而外围设备(没有任何数据流的设备)则关闭 streaming_mode。通用参数 streaming_mode 明确允许关闭流功能,即使对于支持流的设备也是如此。 |
| 'vertical_resolution' | 0, 1, resolution | 1 | 整数 | 预定义 | 垂直分辨率的当前值。 |
| 'volatile' | 'disable', 'enable' | 'disable' | 字符串 | 预定义 | 易失性模式的当前值。 |
回调函数的签名是 Herror (__stdcall *HAcqCallback)(void *AcqHandle, void *Context, void *UserContext) 并使用以下参数:
需要注意的是,用户专用回调函数的执行时间必须尽可能短,因为在回调函数执行期间,可能会阻塞对其他内部回调的处理。要做到这一点,可以将当前的处理工作从用户专用回调函数转移到一个单独的线程中,该线程通过信号或事件进行控制。回调函数在底层接口或驱动程序的上下文中执行。
同样重要的是要了解,回调可能会作为参数设置或抓取操作的副作用被触发,即可能会在各自的锁中被调用。用户有责任在回调处理程序中考虑到这一点,以避免死锁风险。
您可以通过发送电子邮件至 info@mvtec.com 申请获得 GPL 或 LGPL 许可的第三方库的源代码,邮件主题为 "申请第三方库的源代码"。