GenIcam标准(二)—— GenApi 模块 – 配置相机

news2025/7/15 10:33:58

在这里插入图片描述

系列文章目录


GenICam标准(一)—— 概述
GenIcam标准(二)—— GenApi 模块 – 配置相机


文章目录

  • 系列文章目录
  • 1、简介
  • 2、照相机描述文件的基本结构
  • 3、 节点、接口和抽象特征
  • 参考


1、简介

    GenApi 模块解决如何去配置相机的问题。主要的思路是,让相机生产厂商为他们的相机提供机器可以识别的产品说明。这些相机描述文件(camera description files)包含所有需要的信息,用以自动地把相机的属性(features)和其寄存器(registers)相对应。

    相机的 Gain 属性是一个典型的例子,假设用户想令 Gain=42 ,利用 GenICam ,通用的软件可以读相机的描述文件并发现,要把 Gain 属性设成 42 意味着向地址为 0x0815 的寄存器写入值 0x2A 。其他要做的工作可能是检查相机是否提供 Gain 属性,并检查要写入的值是否在 Gain 的允许范围内。

    请注意,给相机添加新的属性仅仅意味着扩展相机的描述文件,就可以对所有符合 GenICam 标准的程序立即生效。

在这里插入图片描述

    图 2 显示了配置照相机所涉及的图层。

    请注意,本文档中的 GenApi 部分只处理照相机描述文件。它旨在帮助 GenICam 用户理解 GenApi 模块背后的关键思想,并使人们能够编写他们自己的相机描述文件。GenApi 参考实现附带了一个参考手册,展示了最终用户如何使用 GenApi 模块,即使不深入了解本节中介绍的概念。

2、照相机描述文件的基本结构

    该摄像机是通过在一个包含一组节点的 XML 文件上进行描述的,每个节点都有一个类型和一个唯一的名称。节点可以相互链接,每个连接都起着一定的作用。图 3 显示了一个非常简单的图形符号示例。节点显示为标记为 “type::name” 的气泡标签,链接显示为标记为角色名称的箭头。

    有两个特殊的节点:

  • 根节点,可以遍历节点图
  • 设备节点,提供到传输层连接。

在这里插入图片描述
图 3 由一个简单的配置文件构造而成的图的拓扑结构

    图 3 中的增益节点(Gain)为 IntReg 类型,它允许从寄存器中提取一个整数。从根节点上看,这是照相机的一个特性。因此,根节点包含一个名为 pFeature 的链接,它引用了增益节点(Gain)。要读取和写入增益寄存器,增益节点需要访问照相机端口,因此它包含一个到设备节点的链接。该链接被命名为 pPort ,并引用了设备节点。

    增益节点(Gain)包含在大端模式下提取两个字节无符号整数所需的所有信息。完整的相机描述文件如下:

<?xml version="1.0" encoding="utf-8"?>
<RegisterDescription 
	ModelName="Example01" 
	VendorName="Test" 
	ToolTip="Example 01 from the GenApi standard" 
	StandardNameSpace="None" 
	SchemaMajorVersion="1" 
	SchemaMinorVersion="1" 
	SchemaSubMinorVersion="0" 
	MajorVersion="1" 
	MinorVersion="0" 
	SubMinorVersion="0" 
	ProductGuid="1F3C6A72-7842-4edd-9130-E2E90A2058BA" 
	VersionGuid="7645D2A1-A41E-4ac6-B486-1531FB7BECE6" 
	xmlns="http://www.genicam.org/GenApi/Version_1_1" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://www.genicam.org/GenApi/Version_1_1
	 http://www.genicam.org/GenApi/GenApiSchema_Version_1_1.xsd">
	 
	<Category Name="Root">
		<ToolTip>Entry for traversing the node graph</ToolTip>
		<pFeature>Gain</pFeature>
	</Category>
	
	<IntReg Name="Gain">
		<ToolTip>Access node for the camera's Gain feature</ToolTip>
		<Address>0x0815</Address>
		<Length>2</Length>
		<AccessMode>RW</AccessMode>
		<pPort>Device</pPort>
		<Sign>Unsigned</Sign>
		<Endianess>BigEndian</Endianess>
	</IntReg>
	
	<Port Name="Device">
		<ToolTip> Port node giving access to the camera</ToolTip>
	</Port>
</RegisterDescription>

    <?xml> 节点是一个处理元素,提供有关文件编码的提示,并且总是这样的。

    <RegisterDescription> 元素是封装摄像机所有节点的最外层括号。相机由模型名称(ModelName)和 VenderName 属性标识标识。

    每个节点都有一个可选的 <ToolTip> 元素,其中包含一个简短的描述。增益节点(Gain)有一些依赖于其 IntReg 类型的附加元素,并告诉我们,例如,寄存器的地址或它的长度。其默认值为空字符串。

    通常,一个实现将为每个节点创建一个软件对象,并根据 XML 文件中描述的逻辑链接将这些对象链接在一起。这些节点既可以通过它们的(唯一的)名称来检索,也可以通过从根节点开始遍历节点图来找到。一旦用户有了一个指向节点的指针,他就可以通过节点对象的编程接口访问该特性。

    XML 文件的语法是在由模式位置属性给出的 XML 模式中定义的。该模式是该标准的一部分。本文解释了 GenICam 的思想和总体结构。模式及其嵌入的参考文档描述了正式的细节。如果有疑问,模式的内容将覆盖此文本的内容。

    文件位置 http://www.genicam.org/GenApi/GenApiSchema_Version_1_1.xsd 对于相机配置文件是必需的,但可以在运行时被重写。

3、 节点、接口和抽象特征

参考

GenIcam标准(一)
GenIcam标准(二)
GenIcam标准(三)
GenIcam标准(四)
GenIcam标准(五)
GenIcam标准(六)

GenIcam标准介绍


GenIcam标准(一)
GenIcam标准(二)
GenIcam标准(三)
GenIcam标准(四)
GenIcam标准(五)
GenIcam标准(六)

   
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1822065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文发表CN期刊《高考》是什么级别的刊物?

论文发表CN期刊《高考》是什么级别的刊物&#xff1f; 《高考》是由吉林省长春出版社主管并主办的省级教育类期刊&#xff0c;期刊以科教兴国战略为服务宗旨&#xff0c;专门反映和探索国内外教育教学和科研实践的最新成果。该期刊致力于为广大教育工作者提供一个高质量的学术…

UDP的组播发送与接收C语言测试和nc接收组播测试

组播这个东西&#xff0c;很多年前用过一次。本身的原理不复杂&#xff0c;未知的是使用的环境&#xff0c;受使用环境的影响有多大&#xff0c;还是那句废话&#xff0c;具体问题具体分析。 发送端代码multicast.c #include <stdio.h> #include <stdlib.h> #…

大泽动力TO32000ET-Z 电动30千瓦柴油发电机规格型号参数

大泽动力30KW柴油发电机概述 大泽动力30KW柴油发电机是一种具有稳定输出功率的发电设备&#xff0c;主要用于提供电力支持。其设计结合了国外先进的低噪音发电机和发动机技术&#xff0c;使得机组在运行过程中噪音低&#xff0c;结构紧凑&#xff0c;占用空间小。以下是关于30…

DC/AC电源模块:为电动车充电基础设施提供高效能源转换

BOSHIDA DC/AC电源模块&#xff1a;为电动车充电基础设施提供高效能源转换 DC/AC电源模块是一种用于电动车充电基础设施的重要组件&#xff0c;它能够实现高效能源转换。在电动车的普及和推广过程中&#xff0c;DC/AC电源模块的重要性日益凸显。本文将从DC/AC电源模块的基本原…

Python使用策略模式实现绘图功能

策略模式&#xff08;Strategy Pattern&#xff09;:允许定义一系列算法&#xff0c;将它们封装起来&#xff0c;使得它们可以互换。 实现绘制不同类型的图表&#xff08;如折线图、柱状图和饼图&#xff09;功能。 下面是一个示例&#xff0c;展示如何传入横坐标和纵坐标内容…

探索Lua语言:安装、基本语法与应用案例

Lua Lua语言是在1993年由巴西一个大学研究小组发明的&#xff0c;其设计目标是作为嵌入式程序移植到其他应用程序。它是由C语言实现的&#xff0c;虽然简单小巧但功能强大&#xff0c;所以许多应用都选用它作为脚本语言&#xff0c;尤其是在游戏领域&#xff0c;如暴雪公司的“…

W3F 宣布第二轮 Decentralized Voices 代理者,OneBlock+ 被委托 420 万 DOT 投票权

原文&#xff1a;https://medium.com/web3foundation/decentralized-voices-cohort-2-b10ddb7c71cc 编译&#xff1a;OneBlock Web3 基金会很高兴宣布 Polkadot 和 Kusama 的去中心化声音 (DV) 计划第二批启动&#xff0c;该计划通过将 180,000 KSM 和 4200 万 DOT 的投票权委…

最后一篇不再更新:前端的我转行国外土木了

一.本来早该去写了的&#xff0c;但是一直转行不成功。 你问我为什么要转行&#xff0c;这么说吧&#xff0c;楼主20届专科毕业之后干了一年多土木&#xff0c;相信大家在网络上也刷到过类似的视频。49年入国军。没错&#xff0c;苦逼的楼主不是一个开朗的人&#xff0c;也不是…

【全开源】ChatGPT 机器人公众号小程序h5源码开源交付支持二开

AI机器人系统对接OPENAI&#xff1a;智能互联的无限可能 &#x1f310; 一、引言&#xff1a;AI机器人系统与OPENAI的碰撞 在科技日新月异的今天&#xff0c;AI机器人系统正逐渐渗透到我们生活的各个角落。而当这一智能系统与全球领先的OPENAI技术相结合&#xff0c;又将擦出…

如何在 Go 应用程序中使用检索增强生成(RAG)

本文将帮助大家实现 RAG &#xff08;使用 LangChain 和 PostgreSQL &#xff09;以提高 LLM 输出的准确性和相关性。 得益于强大的机器学习模型&#xff08;特别是由托管平台/服务通过 API 调用公开的大型语言模型&#xff0c;如 Claude 的 LLama 2等&#xff09;&#xff0c…

echarts饼图实现饼旋转,引线翻转效果

先上效果图: 这里使用的是vue2.0。 npm install echarts 安装echarts后将其挂在在vue上,在main.js中进行操作 // 全局引入Echarts import * as echarts from "echarts"; // 然后挂载在vue原型上 Vue.prototype.$echarts = echarts; 全部代码: <template>…

Vulnhub-DC-8

靶机IP:192.168.20.143 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 用nmap和wappalyzer收集下信息 发现是Drupal 7网站 dirsearch扫下目录 ┌──(root㉿kali)-[/home/kali/Desktop] └─# dirsearch -u http://192.168.20…

Redis 最佳实践

一、Redis 键值设计 1.1 优雅的 key 结构 Redis 的 Key 虽然可以自定义&#xff0c;但最好遵循下面的几个最佳实践约定&#xff1a; 1、遵循基本格式&#xff1a;[业务名称]:[数据名]:[id] 2、长度不超过 44 字节&#xff08;不同版本可能具体的大小不同&#xff09; 3、不包…

算法day30

第一题 433. 最小基因变化 题型转化&#xff1a;可以转化为边权为一的最短路问题 将最开始的字符串定义为起点&#xff0c;我们将初识字符串每一个元素改变一次定义为移动一个位置&#xff0c;最后的字符串定义为中点&#xff0c;就这样每一次改变一个元素&#xff0c;最后成功…

springboot3 基础特性(1)

文章目录 一、SpringApplication三种方式1.1 基础方式1.2.自定义 SpringApplication1.3、FluentBuilder API 二、自定义Banner三、Profiles3.1 什么是 Profiles &#xff1f;3.2 声明Profiles3.3 激活配置文件3.3.1 分组3.3.2 环境包含3.3.3 激活方式3.3.4 配置优先级 一、Spri…

大型医院手术麻醉系统源码,前端采用Vue,Ant-Design开发,稳定成熟

医院手麻系统源码&#xff0c;手术麻醉信息系统&#xff0c;C#源码 医院手术麻醉信息系统包含了手术申请、排班、术前、术中、术后&#xff0c;直至出院的全过程。通过与相关医疗设备连接&#xff0c;与大屏幕显示公告相连接&#xff0c;实现了手术麻醉临床应用数据链全打通。…

一文让你清晰了解医疗行业采购堡垒机的必要性

医疗行业&#xff0c;一个与大家息息相关的行业。随着医疗行业的快速发展和信息化建设的深入推进&#xff0c;传统网络安全防护手段已经难以满足现代医疗信息系统的安全需求&#xff0c;特别是在处理敏感的患者信息和保障医院内部数据安全方面。因此采购堡垒机是非常必要的。 堡…

在BFT购买到了一款超好用的夹爪,发现BFT Robotics方便又专业

“买机器人&#xff0c;上BFT” BFT作为一站式机器人工业互联网平台&#xff0c;提供了多种夹爪产品&#xff0c;包括但不限于Robotiq品牌的夹爪。这些夹爪产品广泛应用于自动化生产线&#xff0c;提高生产效率和精度。以下是对BFT购买的夹爪进行的详细测评。 我之前在BFT上购…

Vue33-更新流程

一、更新流程预览 二、<template>标签说明 <template>元素不能作为根元素。 三、beforeUpdate函数 四、updated函数

【C++游戏程序】easyX图形库还原游戏《贪吃蛇大作战》(一)

一.游戏逻辑概述 游戏完成图如图下所示&#xff1a; 根据游戏设定&#xff0c;需要实现的总体框架如下&#xff1a; 场景中有玩家可以操纵的初始角色-贪吃蛇场景中有AI自动操作的敌人-敌对贪吃蛇场景中的彩色圆点可以被敌人或者玩家吃掉&#xff0c;并且增加分数玩家触碰到敌人…