GenICam 介绍

简而言之,GenICam 定义了一个通用的相机接口,使得应用程序的编写、相机的控制可以与具体的型号解耦,这样就可以设计出通用的软件完成对不同相机的控制。我们实际使用的CoaXPress 相机当然也支持 GenICam标准,可以阅读其xml文件获取其对应的控制寄存器信息。

GenICam (abbreviated for Generic Interface for Cameras) is a generic programming interface for machine vision (industrial) cameras. The goal of the standard is to decouple industrial camera interfaces technology (such as GigE Vision, USB3 Vision, CoaXPress or Camera Link) from the user application programming interface (API)

相机XML文件

根据GenICam标准,在相机的指定位置存储了一份XML文件,XML文件记录了控制相机所需的所有寄存器信息。那么这份文件,可以自己从供应商处获取,也可以自己从相机指定位置读取并解析,如果对于单个相机型号的控制而言,直接拿xml文件的信息进行编程更加简单。

比如下面这段描述,就定义了TriggerSource 触发源的枚举定义、寄存器地址信息,如果我们需要设置触发源为软件触发,那么我们就需要向0x8908寄存器地址写入0x0,如果需要设置为LinkTrigger0(来自于CXP Host,就是采集卡),需要向0x8908寄存器地址写入0x4。有了这些信息,我们就可以通过寄存器读写的方式完成对相机的指令控制。

	<Enumeration Name="TriggerSource">
<ToolTip>This feature defines the source of the trigger signal.</ToolTip>
<Description>This feature defines the source of the trigger signal.</Description>
<DisplayName>Trigger Source</DisplayName>
<Visibility>Beginner</Visibility>
<pIsLocked>IsRunning</pIsLocked>
<EnumEntry Name="Software">
<DisplayName>Software Trigger</DisplayName>
<Value>0x0</Value>
</EnumEntry>
<EnumEntry Name="LinkTrigger0">
<DisplayName>CXP Link Trigger 0</DisplayName>
<Value>0x4</Value>
</EnumEntry>
<EnumEntry Name="Line0">
<DisplayName>Line Trigger 0</DisplayName>
<pIsImplemented>DIN1ConnectorType</pIsImplemented>
<Value>0x8</Value>
</EnumEntry>
<EnumEntry Name="Line1">
<DisplayName>Line Trigger 1</DisplayName>
<pIsImplemented>DIN1ConnectorType</pIsImplemented>
<Value>0x9</Value>
</EnumEntry>
<pValue>TriggerSourceReg</pValue>
</Enumeration>
<IntReg Name="TriggerSourceReg">
<Address>0x8908</Address>
<Length>4</Length>
<AccessMode>RW</AccessMode>
<pPort>Device</pPort>
<pInvalidator>TriggerSelectorReg</pInvalidator>
<pInvalidator>UserSetLoadReg</pInvalidator>
<Endianess>BigEndian</Endianess>
</IntReg>

CoaXPress 接口相机的控制方法--1的更多相关文章

  1. CoaXPress 接口相机的控制方法--2

    接上一篇 <CoaXPress 接口相机的控制方法--1> https://www.cnblogs.com/xingce/p/15902246.html 这里再介绍一下具体是如何完成相机寄 ...

  2. 基于PXIe接口的CoaXpress高速相机图像采集、回放

    PXIe简介 PCI eXtensions for Instrumentation or PXI is a computer-based hardware and software platform ...

  3. CY7C68013 USB接口相机开发记录 - 第一天:资料下载

    一直觉得从头开发一套东西出来会极大的提升自己的自信心,能够最大化的开发自己的潜能.所以在犹豫很久之后决定学习下CY7C68013 USB接口相机的开发. 通过在网上查找多份资料后,觉得工欲善其事必先利 ...

  4. CY7C68013 USB接口相机开发记录 - 第四天:上位机编写1

    前面学习了USB相机硬件固件.设备驱动,可以实现USB设备识别.数据发送的功能.然后,非常重要的一部分,USB设备发出的数据,我要怎么接受,怎么查看发送的数据是否是正确的.网上百度了下,大部分人都使用 ...

  5. CY7C68013 USB接口相机开发记录 - 第三天:固件修改

    上篇说了驱动怎么配置,这篇记录下对应的设备固件怎么配置.首先看下我们工程结构: 摘自官方文档AN61345 STARTUP.A51是建立工程时自动生成的文件,下面所有文件都是手动添加的.对于下面的几个 ...

  6. CY7C68013 USB接口相机开发记录 - 第二天:驱动修改

    上次写了资料的下载,并对资料进行了分类,分完类看起来就比较清晰.同时通过强大的百度,也可以得到不少资料. 这里对比较关键的几个文件进行罗列: 一.驱动相关 cyusb.inf: 修改CYUSB.INF ...

  7. Android三种播放视频的方式

    在Android中,我们有三种方式来实现视频的播放: 1.使用其自带的播放器.指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型. 2.使用VideoView来播放. ...

  8. RelativeLayout.LayoutParams.addRule()方法

    1.应用场景 在使用RelativeLayout布局的时候,通常在载入布局之前在相关的XML文件中进行静态设置即可.但是,在有些情况下,我们需要动态的设置布局 的属性,在不同条件下设置不同的布局排列方 ...

  9. 121-基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 机器人主板

    基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 一.板卡概述 本系统基于最先进的DSP技术,构建一个全高清的视频编解码系统,采用TI的芯片.借助TI的DaVin ...

随机推荐

  1. 初识python:tkinter 实现 弹球小游戏(非面相对象)

    通过 tkinter 采用非面相对象式实现弹球小游戏(使用蹩脚式面相对象实现). #!/user/bin env python # author:Simple-Sir # time:2020/8/3 ...

  2. Flask + UnitTest(十五)

    被测试视图 # coding:utf-8 from flask import Flask, request, jsonify app = Flask(__name__) @app.route(&quo ...

  3. [ vue ] Quasar封装q-dialog组件,在外层实现弹出框的开启和关闭

    场景描述: 见:https://www.cnblogs.com/remly/p/12981582.html 具体实现: <!-- 父组件 --> <template> < ...

  4. 使用 navigator.userAgent.toLowerCase() 区别 浏览器 类型

    userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值 var ua = navigator.userAgent.toLowerCase(); 返回的是个字符串 ...

  5. antd递归渲染左侧菜单

  6. 图片上传,直接在网页中显示(支持IE,谷歌,火狐浏览器)

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  7. h5跳转高德地图

    <a href="https://uri.amap.com/marker?position=经度,纬度&name=所在的位置名称">高德地图</a>

  8. Zookeeper绍二(分布式锁介)

    一.为什么会有分布式锁? 在多线程环境下,由于上下文的切换,数据可能出现不一致的情况或者数据被污染,我们需要保证数据安全,所以想到了加锁. 所谓的加锁机制呢,就是当一个线程访问该类的某个数据时,进行保 ...

  9. 服务器表单字符串转化Vue表单挂在到对应DOM节点

    今天在项目开发中,遇到从后端返回的vue文件(包含template,js,css)的文件,试过用v-html解析文件,渲染到页面,但是无法渲染,后来去查了一堆资料,自己写了一个全局方法来解析这类文件 ...

  10. MATLAB的基识(整理)

    %正弦函数在MATLAB中如何实现%1.sin(45°)注意:参数值需要用"弧度"去定义>>x=sin(45*pi/180);%2.MATLAB中注意:开方-sqrt( ...