GenICam GenTL 标准 ver1.5(3)第四章 配置与信号

GenTL框架允许配置系统模块和数据流模块的内部设置,通过GenTL端口使用GenApiXML描述进行。配置是通过虚拟寄存器映射完成的,而信号则用于异步事件通知。每个模块支持GenTL端口,缓冲模块除外,它们可选支持。GenApiIPort接口提供了对设备模块和缓冲区模块的访问。XML描述文件可以位于模块寄存器映射、本地目录或供应商网站。事件处理涉及注册事件对象、数据检索和处理,确保线程安全和解耦的信号机制。

4.配置与信号

从系统模块到数据流模块,每个模块都支持GenTL 端口来配置模块的内部设置,并发送信号给调用GenTL消费者。对于缓冲模块,GenTL端口是可选的。

有关C功能接口和数据类型的详细说明,请参阅第6章软件接口。在配置模块或注册事件之前必须实例化要访问的模块。这是通过模块枚举完成的,正如第3章模块枚举和实例化所述

4.1 配置Configuration

要配置模块并访问基于传输层技术的特定设置,需要使用符合GenApi的XML描述的GenTL端口。模块特定功能的关注点有:枚举、实例化、配置和基本信息检索。配置是通过虚拟寄存器映射和该寄存器映射的GenApi XML描述完成的。

对于GenApi参考实现的IPort接口,TLI发布了端口函数。一个GenApi IPort需要一个读写函数来从关联的设备读取或写入数据块。关于GenTL生产者的功能访问,每个模块作

为GenAPi实现中的设备,通过实现虚拟寄存器映射来完成。当某些寄存器被写入或读取行为发生时,依赖于实现的操作在指定模块中执行。因此,像机配置的抽象也被转移了到GenTL生产者一方。

虚拟寄存器映射的内存布局并未指定,因此由GenTL生产者的实现决定。因此必须实现一组特定的强制功能,这将在第7章GenTL的标准特征命名约定(GenTL SFNC)中详细介绍。

C接口的端口函数包括GCReadPort函数和GCWritePort函数,可用于实现GenApi实现的IPort对象。这些函数的行为类似于IPort读写函数。

通过端口函数进行的寄存器访问始终是字节对齐的。如果支撑技术不允许字节对齐的访问,GenTL生产者必须通过模仿这个特征通过:1.读取的字节数超过请求的字节数,并仅返回请求的字节数;2.对端口寄存器映射的读/修改/写访问权限。

4.1.1 模块Modules

除缓冲区模块外,每个GenTL模块都必须支持TLI的端口功能。缓冲模块可以支持这些功能。要访问模块的寄存器。例如,在模块句柄上调用GCReadPort和GCWritePort函数,举个例子,在系统模块的TL_HANDLE上。GenApi XML描述文件和GenApiGenICam模块用于使用GenApi访问模块中的虚拟寄存器映射特征。

包含相应GenICam XML描述位置的URL可以是通过调用C接口的GCGetNumPortRls和GCGetPortURLInfo函数检索的。有关GenTL生产者中实际端口实现的其他信息,请参阅使用GCGetPortInfo检索。该信息包括例如端口字节序或允许的访问(读/写、只读…)。两个模块在处理端口访问的方式上是特殊的,在后续章节描述。

4.1.1.1 设备模块

在设备模块中,有两个端口可用:

 首先,端口函数可以与允许访问设备的DEV_HANDLE句柄一起使用模块的内部功能。

 其次,GenTL消费者可以通过调用DevGetPort函数来得到远程设备的PORT_HANDLE。

这两个端口对于GenTL生产者来说,都是必须实现的。

4.1.1.2 缓冲模块

对于缓冲区,端口功能的实现不是强制性的。检查有没有实现,可以通过调用GCGetPortInfo函数,例如PORT_INFO_MODULE命令。如果不存在功能的实现,则函数的返回值必须是GC_ERR_NOT_IMPLEMENTED。

4.1.2 XML描述

要使用类似GenApi的特性访问,最后缺少的是XML描述要检索包含XML可能位置的列表可以调用GCGetNumPortURLs函数和GCGetPortURLInfo函数。在类似URL的符号中定义了三个可能的位置(有关URL的定义,请参阅RFC 3986):

 模块寄存器映射(建议GenTL生产者使用)

 本地目录

 供应商网站

需要GenTL消费者来实现“模块寄存器映射”和“本地目录”。从供应商网站下载是可选的。

支持的格式包括:

 未压缩的XML描述文件

 压缩的XML描述文件。使用的压缩方法是DEFLATE并按照RFC 1951中的描述进行存储。

4.1.2.1 模块寄存器映射(推荐)

URL格式为“local:[///]filename.extension;address;length[?SchemaVersion=x.x.x]”指示XML描述文件位于模块的虚拟寄存器映射中。这个方括号是可选的。“x.x.x”代表被引用的XML的SchemaVersion符合的版本格式:”主版本.小版本.子版本”。如果省略了SchemaVersion,则URL对引用SchemaVersion 1.0.0的XML的引用。此可选方案仅适用于与旧函数GCGetPortURL一起使用。对于当前的实现GCGetPortURLInfo函数用于获取特定XML文件的SchemaVersion。可选地,可以省略“//”behind“local:”以与GigE Vision local兼容总体安排如果XML描述存储在本地寄存器映射中,则可以通过调用GCReadPort功能。

斜体输入必须替换为实际值,如下面表格所示:

入口点

描述

local

指示XML描述文件位于模块的虚拟寄存器映射中。

filename

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值