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_类型转换

    列表与字符串互相转换 join方法将list转换为string _list = ["a", "b", "c"] # 以".&quo ...

  2. PyCharm - 关联mysql失败 - Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.

    时区错误,MySQL默认的时区是UTC时区,比北京时间晚8个小时. 所以要修改mysql的时长 在mysql的命令模式下,输入: set global time_zone='+8:00'; 再次连接成 ...

  3. java 线程 总结

    1.前言 (1)线程的上一级是进程,进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的. (2)线程与进程相似,但线程是一个比进程更小的执行单位,也被称为轻量级进程.一个进程在其执行 ...

  4. vue3.0+vite+ts项目搭建--基础配置(二)

    集成vue-router 使用yarn yarn add vue-router@next --save 安装完成之后在src目录下创建文件夹router/index.ts,创建完成之后需要在Vue-R ...

  5. PingFang(苹方)字体的引用

    原文 链接:https://pan.baidu.com/s/1rw39Yqo9fv9BYz_JZ5lyRw 提取码:o7kf 苹方-简 常规体 font-family: pingFangSC-Regu ...

  6. 硬核 - Java 随机数相关 API 的演进与思考(上)

    本系列将 Java 17 之前的随机数 API 以及 Java 17 之后的统一 API 都做了比较详细的说明,并且将随机数的特性以及实现思路也做了一些简单的分析,帮助大家明白为何会有这么多的随机数算 ...

  7. Visual Studio 2015 MFC之Button颜色变化-断点调试(Debug)

    软件开发,对自己的程序进行调试很重要,本次文章在上一边随笔的基础上,介绍一下Button控件做显示灯的用法,Button控件的添加和变量设置等可以参考下面的的链接:Visaul Studio 2015 ...

  8. 2月3日 体温APP开发记录

    1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.回返地址学习,下载导入相关jar包

  9. golang中为何在同一个goroutine中使用无缓冲通道会导致死锁

    package main import "fmt" func main() { /* 以下程序会导致死锁 c := make(chan int) c <- 10 n1 := ...

  10. new实例化和反射实例化有什么区别?

    在工厂设计模式中,使用反射实例化,子类可以随便增加,工厂类不需要做任何的修改 使用反射之后最大的好处就是解耦合