TUCAM API Guide For Development CH
User Manual:
Open the PDF directly: View PDF
.
Page Count: 67
| Download | |
| Open PDF In Browser | View PDF |
TUCAM-API
开发指南
版权© 2011-2018 福州鑫图光电有限公司
保留所有的权利.
TUCAM-API 开发指南
福州鑫图光电有限公司
目录
1. 使用前阅读 .............................................................................................................. 5
2. 简介 .......................................................................................................................... 6
3. 概述 .......................................................................................................................... 7
3.1 层结构 ............................................................................................................ 7
3.2 原理 ................................................................................................................ 7
3.3 接口类型 ........................................................................................................ 7
3.4 术语 ................................................................................................................ 8
3.4.1 捕获模式 ............................................................................................... 8
3.4.2 图像单元 ............................................................................................... 8
3.4.3 触发模式 ............................................................................................... 9
3.4.4 相机状态 ............................................................................................... 9
3.5 接口列表 ...................................................................................................... 10
4. 应用程序调用 TUCAM-API..................................................................................... 12
4.1 初始化和终止程序 ...................................................................................... 12
4.1.1 接口 ..................................................................................................... 12
4.1.2 调用顺序 ............................................................................................. 12
4.1.3 驱动初始化 ......................................................................................... 13
4.1.4 相机初始化 ......................................................................................... 13
4.1.5 相机产品信息 ..................................................................................... 13
4.1.6 终止程序 ............................................................................................. 14
4.1.7 示例代码 ............................................................................................. 14
4.2 性能获取和设置 .......................................................................................... 15
4.2.1 接口 ..................................................................................................... 15
4.2.2 调用顺序 ............................................................................................. 15
4.2.3 性能索引 ............................................................................................. 15
4.3 属性获取和设置 .......................................................................................... 17
4.3.1 接口 ..................................................................................................... 17
1
TUCAM-API 开发指南
福州鑫图光电有限公司
4.3.2 调用顺序 ............................................................................................. 17
4.3.3 属性索引 ............................................................................................. 17
4.3.4 示例代码 ............................................................................................. 18
4.4 内存管理 ...................................................................................................... 19
4.4.1 接口 ..................................................................................................... 19
4.4.2 调用顺序 ............................................................................................. 19
4.4.3 帧结构体 ............................................................................................. 20
4.4.4 示例代码 ............................................................................................. 22
4.5 捕获控制 ...................................................................................................... 23
4.5.1 接口 ..................................................................................................... 23
4.5.2 调用顺序 ............................................................................................. 24
4.5.3 捕获模式索引 ..................................................................................... 24
4.5.4 示例代码 ............................................................................................. 24
4.6 文件控制 ...................................................................................................... 25
4.6.1 接口 ..................................................................................................... 25
4.6.2 调用顺序 ............................................................................................. 25
4.6.3 文件结构体 ......................................................................................... 26
4.6.4 示例代码 ............................................................................................. 26
4.7 扩展控制 ...................................................................................................... 27
4.7.1 接口 ..................................................................................................... 27
4.7.2 调用顺序 ............................................................................................. 27
4.7.3 文件结构体 ......................................................................................... 27
4.7.4 示例代码 ............................................................................................. 28
5. 参考 ........................................................................................................................ 29
5.1 类型和常量 .................................................................................................. 29
5.1.1 TUCAMRET 错误代码 .......................................................................... 29
5.1.2 TUCAM_IDINFO 产品信息代码 ........................................................... 30
5.1.3 TUCAM_IDCAPA 性能代码 .................................................................. 31
5.1.4 TUCAM_IDPROP 属性代码 .................................................................. 31
2
TUCAM-API 开发指南
福州鑫图光电有限公司
5.1.5 TUCAM_CAPTURE_MODES 捕获模式代码 ......................................... 31
5.1.6 TUIMG_FORMATS 图像格式代码 ....................................................... 32
5.1.7 TUREG_TYPE 寄存器类型代码 ........................................................... 32
5.1.8 TUCAM_TRIGGER_EXP 触发曝光模式代码 ........................................ 32
5.1.9 TUCAM_TRIGGER_EDGE 触发激发边沿代码 ..................................... 32
5.1.10 TUFRM_FORMATS 帧格式代码 ......................................................... 32
5.2 结构体 .......................................................................................................... 33
5.2.1 初始化 ................................................................................................. 33
5.2.2 打开相机 ............................................................................................. 33
5.2.3 相机信息 ............................................................................................. 33
5.2.4 性能/属性值文本 ................................................................................ 33
5.2.5 性能的属性 ......................................................................................... 34
5.2.6 属性的属性 ......................................................................................... 34
5.2.7
ROI 的属性 ......................................................................................... 34
5.2.8 触发的属性 ......................................................................................... 34
5.2.9 触发输出的属性 ................................................................................. 34
5.2.10 帧结构 ............................................................................................... 35
5.2.11 文件保存 ........................................................................................... 36
5.2.12 录像保存 ........................................................................................... 36
5.2.13 寄存器读写 ....................................................................................... 36
5.3 函数 .............................................................................................................. 37
TUCAM_Api_Init............................................................................................. 37
TUCAM_Api_Uninit ........................................................................................ 37
TUCAM_Dev_Open ........................................................................................ 37
TUCAM_Dev_Close ........................................................................................ 38
TUCAM_Dev_GetInfo ..................................................................................... 39
TUCAM_Capa_GetAttr ................................................................................... 39
TUCAM_Capa_GetValue ................................................................................ 40
TUCAM_Capa_SetValue ................................................................................. 41
3
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAM_Capa_GetValueText .......................................................................... 42
TUCAM_Prop_GetAttr.................................................................................... 43
TUCAM_Prop_GetValue ................................................................................. 44
TUCAM_Prop_SetValue ................................................................................. 45
TUCAM_Prop_GetValueText .......................................................................... 46
TUCAM_Buf_Alloc .......................................................................................... 47
TUCAM_Buf_Release ..................................................................................... 48
TUCAM_Buf_WaitForFrame........................................................................... 49
TUCAM_Buf_CopyFrame ............................................................................... 51
TUCAM_Cap_SetROI ...................................................................................... 52
TUCAM_Cap_GetROI ..................................................................................... 53
TUCAM_Cap_SetTrigger ................................................................................. 54
TUCAM_Cap_GetTrigger ................................................................................ 56
TUCAM_Cap_DoSoftwareTrigger ................................................................... 57
TUCAM_Cap_SetTriggerOut ........................................................................... 56
TUCAM_Cap_ GetTriggerOut ......................................................................... 57
TUCAM_Cap_Start ......................................................................................... 60
TUCAM_Cap_Stop .......................................................................................... 61
TUCAM_File_SaveImage ................................................................................ 61
TUCAM_Rec_Start .......................................................................................... 62
TUCAM_Rec_AppendFrame .......................................................................... 63
TUCAM_Rec_Stop .......................................................................................... 64
TUCAM_Reg_Read ......................................................................................... 65
TUCAM_Reg_Write ........................................................................................ 66
4
TUCAM-API 开发指南
福州鑫图光电有限公司
1. 使用前阅读
这份文档和软件示例代码是 TUCSEN 的内部文件和公布内容,以用户能够
创建使用 TUCSEN 数字相机中的应用。
本文档和软件示例代码只针对上述目的而公开的,并且不构成所有者的许
可、转让或任何其他权力。
使用软件文档的所有风险和结果仍然取决于用户。
本文档可能包括技术错误或印刷错误。并且不能保证这样的错误或文本所产
生的任何损害。
TUCSEN 不承诺更新或保持当前的这个文档中所包含的信息。
所有品牌和产品名称都是其各自所有者的商标或注册商标。
TUCSEN 对文档的版权保留所有权利。
在没有 TUCSEN 的事先书面许可下,文档的任何部分不得被复制、传递、
转录,存储在检索系统或翻译成任何语言或计算机语言,以任何的形式,或
以任何方式,任何的手段如:电子、机械、电磁、光学、化学手动或其他。
5
TUCAM-API 开发指南
福州鑫图光电有限公司
2. 简介
本手册详细描述了 TUCAM-API 规范操作使用 TUCSEN 数字相机。TUCAM-API
软件开发工具包被称为“SDK”。TUCAM-API 控制数字相机的部分被成为“模
块”。
SDK 包含源代码模块和一个示例应用程序,展示了如何访问 TUCAM-API。SDK
用户免费使用该软件在任何他们喜欢的方式,如部分修改源代码或创建完全
独立的项目。
这个 SDK 设计特别容易理解。出于这个原因,函数接口的数量限制到最少,
并且函数的调用格式采用 C 语言的写法。
部分扩展的函数是某些特定数字相机可以使用的附加功能。
不同数字相机的数值可能不同,这取决于捕捉图像所使用的数字相机型号。
数值应该简单地视为指南,而不是精确值。
6
TUCAM-API 开发指南
福州鑫图光电有限公司
3. 概述
3.1 层结构
TUCAM API
应用程序
操作系统
驱动
TUCSEN
Driver
TUCSEN
UVC
Windows
Driver
Linux
OS X
TUCSEN 数字相机通过 SDK 连接不同的操作系统的数字相机驱动来达到控
制数字相机和采集图像数据的作用。
目前的 SDK 只支持 Windows 系统。
3.2 原理
数字相机的具体总线接口和库通过 TUCAM-API 封装。您只需要访问
TUCAM-API 层。模块层提供更高级的 TUCAM-API 集成。模块可以不断更
新访问新相机和提供新接口技术,而无需重新编译您的软件。
3.3 接口类型
TUCAM-API 功能可以分为很多类型
起始/终止处理
7
TUCAM-API 开发指南
福州鑫图光电有限公司
相机信息采集
性能/属性获取和设置
内存管理
捕获控制
文件控制
扩展控制
TUCAM-API 不包含用于显示图像的程序。因为一些显示图像的方法难以预
测,这取决于应用程序,它是不可能支持所有这些通用模块的。当调用显示
程序时,检测图像是否更新,并且在更新后绘制图像。对于更详细的信息,
请参阅示例源代码。
3.4 术语
3.4.1 捕获模式
相机的捕获模式分为以下 2 类:
序列模式(流模式):用来捕获连续的图像数据。
触发模式:相机通过外部信号来捕获图像。我们称这个选项为“触发模式”,
您可以调用 TUCAM_Cap_SetTrigger()来配置此选项。我们也把外部信号称
为“外部触发”。
3.4.2 图像单元
通常情况下是二维的,具有垂直和水平方向。
帧:是一个用于图像数据的单位。对于一帧,一个像素的数据是从左到右和
从上到下对齐的。这是一系列的图像数据单位。
8
TUCAM-API 开发指南
福州鑫图光电有限公司
3.4.3 触发模式
标准模式(Standard):当相机接收到电平信号后(由激活边沿决定)开始
进行一帧或多帧的图像捕获,捕获帧数由配置参数决定。参考
TUCAM_TRIGGER_ATTR 结构体。
同步模式(Synchronization):当相机接收到电平信号后(由激活边沿决定)
开始进行曝光,当收到相反的电平信号后,结束曝光、并且进行图像数据的
捕获。即实现每一帧的曝光与读出,均与外触发信号完全同步。
全局模式(Global):在相机未触发前进行预触发,当相机接收到电平信号
后(由激活边沿决定)或者为软件设定的曝光时间时,结束当前正在进行的
重置操作,待曝光结束时捕获图像数据,并重新开始预触发。该方式用于控
制卷帘曝光模式的相机实现全局曝光模式。
曝光模式:
曝光时间:接收到触发信号后,由 TUIDP_EXPOSURETM 设置的曝光时间
决定
电平宽度:接收到触发信号后,曝光时间由电平的宽度所决定
注:标准模式(Standard)和全局模式(Global)可配置这两个选项。同步
模式(Synchronization)只能是电平宽度。
激发电平类型:
上升电平(Rising Edge):接收到的触发电平处于上升沿时开始曝光
下降电平(Falling Edge):接收到的触发电平处于下降沿时开始曝光
3.4.4 相机状态
相机的状态决定了能调用那些函数。一些函数会改变相机的状态。下面描述
了 4 种相机状态:
9
TUCAM-API 开发指南
福州鑫图光电有限公司
不稳定:参数设置和其他函数调用,但它们不在被设置的状态。
稳定的:参数和函数被设置,但是因为没有帧内存被创建,捕获图像不能开
始。
准备: 帧内存已经被创建,图像捕获可以开始。
繁忙: 图像捕获正在被执行。
3.5 接口列表
// Initialize uninitialize and misc.
TUCAMRET TUCAM_Api_Init(PTUCAM_INIT pInitParam);
TUCAMRET TUCAM_Api_Uninit ();
TUCAMRET TUCAM_Dev_Open (PTUCAM_OPEN pOpenParam);
TUCAMRET TUCAM_Dev_Close (HDTUCAM hTUCam);
// Get some device information (VID/PID/Version)
TUCAMRET TUCAM_Dev_GetInfo (HDTUCAM hTUCam, PTUCAM_VALUE_INFO pInfo);
// Capability control see enumerate TUCAM_IDCAPA
TUCAMRET TUCAM_Capa_GetAttr (HDTUCAM hTUCam, PTUCAM_CAPA_ATTR pAttr);
TUCAMRET TUCAM_Capa_GetValue (HDTUCAM hTUCam, INT32 nCapa, INT32 *pnVal);
TUCAMRET TUCAM_Capa_SetValue (HDTUCAM hTUCam, INT32 nCapa, INT32 nVal);
TUCAMRET TUCAM_Capa_GetValueText (HDTUCAM hTUCam, PTUCAM_VALUE_TEXT pVal);
// Property control see enumerate PTUCAM_PROP_ATTR
TUCAMRET TUCAM_Prop_GetAttr (HDTUCAM hTUCam, PTUCAM_PROP_ATTR pAttr);
TUCAMRET TUCAM_Prop_GetValue (HDTUCAM hTUCam, INT32 nProp, DOUBLE *pdbVal, INT32 nChn);
TUCAMRET TUCAM_Prop_SetValue (HDTUCAM hTUCam, INT32 nProp, DOUBLE dbVal, INT32 nChn );
TUCAMRET TUCAM_Prop_GetValueText (HDTUCAM hTUCam, PTUCAM_VALUE_TEXT pVal, INT32
nChn );
// Buffer control
TUCAMRET TUCAM_Buf_Alloc (HDTUCAM hTUCam, PTUCAM_FRAME pFrame);
TUCAMRET TUCAM_Buf_Release (HDTUCAM hTUCam);
TUCAMRET TUCAM_Buf_AbortWait (HDTUCAM hTUCam);
TUCAMRET TUCAM_Buf_WaitForFrame (HDTUCAM hTUCam, PTUCAM_FRAME pFrame);
10
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAMRET TUCAM_Buf_CopyFrame (HDTUCAM hTUCam, PTUCAM_FRAME pFrame);
// Capturing control
// ROI
TUCAMRET TUCAM_Cap_SetROI (HDTUCAM hTUCam, TUCAM_ROI_ATTR roiAttr);
TUCAMRET TUCAM_Cap_GetROI (HDTUCAM hTUCam, PTUCAM_ROI_ATTR pRoiAttr);
// Trigger
TUCAMRET TUCAM_Cap_SetTrigger (HDTUCAM hTUCam, TUCAM_TRIGGER_ATTR tgrAttr);
TUCAMRET TUCAM_Cap_GetTrigger (HDTUCAM hTUCam, PTUCAM_TRIGGER_ATTR pTgrAttr);
TUCAMRET TUCAM_Cap_DoSoftwareTrigger(HDTUCAM hTUCam);
// in trigger mode
// OutPutTrigger
TUCAMRET TUCAM_Cap_SetTriggerOut(HDTUCAM hTUCam, TUCAM_TRGOUT_ATTR tgroutAttr);
TUCAMRET TUCAM_Cap_GetTriggerOut(HDTUCAM hTUCam, PTUCAM_TRGOUT_ATTR pTgrOutAttr);
// Capturing
// uiMode see enumerate TUCAM_CAPTURE_MODES
TUCAMRET TUCAM_Cap_Start(HDTUCAM hTUCam, UINT32 uiMode);
TUCAMRET TUCAM_Cap_Stop (HDTUCAM hTUCam);
// File control
// Image
TUCAMRET TUCAM_File_SaveImage (HDTUCAM hTUCam, TUCAM_FILE_SAVE fileSave);
// Video
TUCAMRET TUCAM_Rec_Start(HDTUCAM hTUCam, TUCAM_REC_SAVE recSave);
TUCAMRET TUCAM_Rec_AppendFrame(HDTUCAM hTUCam, PTUCAM_FRAME pFrame);
TUCAMRET TUCAM_Rec_Stop (HDTUCAM hTUCam);
// Extened control
TUCAMRET TUCAM_Reg_Read (HDTUCAM hTUCam, TUCAM_REG_RW regRW);
TUCAMRET TUCAM_Reg_Write(HDTUCAM hTUCam, TUCAM_REG_RW regRW);
11
TUCAM-API 开发指南
福州鑫图光电有限公司
4. 应用程序调用 TUCAM-API
正在使用 TUCAM-API 控制相机时,函数调用应该按照下列的调用过程:
初始化相机
设置相机参数
开始捕获数据
确保拍摄已经完成,并获得数据
进行相机终止处理
4.1 初始化和终止程序
4.1.1 接口
// Initialize uninitialize and misc.
TUCAMRET TUCAM_Api_Init(PTUCAM_INIT pInitParam);
TUCAMRET TUCAM_Api_Uninit ();
TUCAMRET TUCAM_Dev_Open (PTUCAM_OPEN pOpenParam);
TUCAMRET TUCAM_Dev_Close (HDTUCAM hTUCam);
// Get some device information (VID/PID/Version)
TUCAMRET TUCAM_Dev_GetInfo (HDTUCAM hTUCam, PTUCAM_VALUE_INFO pInfo);
4.1.2 调用顺序
首先,驱动程序初始化。当应用程序安装传输句柄的初始化已经成功完成,
获取可以控制的相机数量。
当应用程序启动时,调用相机初始化函数执行初始化操作。当初始化函数调
用成功后,其他函数才能正常被调用执行。
相机终止函数用用于程序的关闭。当一个相机被挂起,或资源被释放而不再
控制相机时执行的函数。例如,当应用程序退出。当终止函数被调用是,其
他的功能函数调用将不被执行,直到初始化函数再次调用之后。
12
TUCAM-API 开发指南
福州鑫图光电有限公司
4.1.3 驱动初始化
驱动使用 TUCAM_Api_Init 函数进行初始操作。该函数初始化帧采集和控制
相机。
4.1.4 相机初始化
相机初始化使用 TUCAM_Dev_Open 函数。该函数获取必要的相机句柄来
做为其他函数的输入参数。
4.1.5 相机产品信息
当调用 TUCAM_Dev_Open 函数打开相机之后,可以通过相机句柄获取相
机的产品信息。
// enumerate information id
typedef enum
{
TUIDI_BUS
= 0x01,
// USB 口类型: USB2.0/USB3.0
TUIDI_VENDOR
= 0x02,
// 厂商 ID
TUIDI_PRODUCT
= 0x03,
// 产品 ID
TUIDI_VERSION_API
= 0x04,
// TUCAM- API 版本号
TUIDI_VERSION_FRMW
= 0x05,
// 固件版本号
TUIDI_VERSION_FPGA
= 0x06,
// FPGA 版本号 (保留)
TUIDI_VERSION_DRIVER
= 0x07,
// 驱动版本号
TUIDI_TRANSFER_RATE
= 0x08,
// USB 传输速率
TUIDI_CAMERA_MODEL
= 0x09,
// 相机型号(字符串类型)
TUIDI_ENDINFO
= 0x0A,
// 产品信息 ID 结束位
TUIDI_BUS
= 0x300,
// USB3.0
TUIDI_VENDOR
= 0x5453,
// TUCSEN
TUIDI_PRODUCT
= 0x6404,
// Dhyana 400D
TUIDI_VERSION_API
= “1.0.0.1”,
// “1.0.0.1”
}TUCAM_IDINFO;
示例
13
(保留)
TUCAM-API 开发指南
福州鑫图光电有限公司
TUIDI_VERSION_FRMW
=-230244288 ,
// “f246c040”
TUIDI_VERSION_FPGA
= 0,
// the FPGA version (保留)
TUIDI_VERSION_DRIVER
= “1.2.3.10”,
// “1.2.3.10”
TUIDI_TRANSFER_RATE
= 292,
// 292MB / Sec
TUIDI_CAMERA_MODEL
= “Dhyana 400D”,
// “Dhyana 400D”
4.1.6 终止程序
终止相机程序使用 TUCAM_Dev_Close 函数。调用这个函数释放被用于相
机帧获取的端口及资源。这个函数被调用后,相机将不再被控制。
4.1.7 示例代码
1.
int main (int argc, char** argv)
2.
{
3.
TUCAM_INIT
itApi;
// 初始化 SDK 环境参数
4.
TUCMA_OPEN
opCam;
// 打开相机参数
5.
6.
itApi.pstrConfigPath = NULL;
7.
itApi.uiCamCount = 0;
8.
if (TUCAMRET_SUCCESS != TUCAM_Api_Init(&itApi))
9.
{
10.
// 初始化 SDK API 环境失败
11.
return 0;
12.
}
13.
14.
if (0 == itApi.uiCamCount)
15.
{
16.
// 没有相机
17.
return 0;
18.
}
19.
20.
opCam.hIdxTUCam = 0;
21.
opCam.uiIdxOpen = 0;
22.
23.
if (TUCAMRET_SUCCESS != TUCAM_Dev_Open(&opCam))
24.
{
25.
// 打开相机失败
26.
return 0;
27.
}
28.
29.
// 应用程序可以使用 opCam.hIdxTUCam 句柄
14
TUCAM-API 开发指南
福州鑫图光电有限公司
30.
31.
TUCAM_Dev_Close(opCam.hIdxTUCam);
// 关闭相机
32.
TUCAM_Api_Uninit();
// 反初始化 SDK API 环境
33.
34.
return 0;
35. }
36.
4.2 性能获取和设置
4.2.1 接口
// Capability control see enumerate TUCAM_IDCAPA
TUCAMRET TUCAM_Capa_GetAttr (HDTUCAM hTUCam, PTUCAM_CAPA_ATTR pAttr);
TUCAMRET TUCAM_Capa_GetValue (HDTUCAM hTUCam, INT32 nCapa, INT32 *pnVal);
TUCAMRET TUCAM_Capa_SetValue (HDTUCAM hTUCam, INT32 nCapa, INT32 nVal);
TUCAMRET TUCAM_Capa_GetValueText (HDTUCAM hTUCam, PTUCAM_VALUE_TEXT pVal);
4.2.2 调用顺序
设置和获取通常在相机进行捕获之前或者之后已经完成。如果设置函数在数
据捕获时被调用,可能会返回错误的代码 TUCAMRET 在某些情况下。
4.2.3 性能索引
// enumerate capability id
typedef enum
{
TUIDC_RESOLUTION
= 0x00,
//分辨率
TUIDC_PIXELCLOCK
= 0x01,
// 像素时钟
TUIDC_BITOFDEPTH
= 0x02,
// 数据位宽
TUIDC_ATEXPOSURE
= 0x03,
// 自动曝光
TUIDC_HORIZONTAL
= 0x04,
// 水平镜像
TUIDC_VERTICAL
= 0x05,
// 垂直镜像
TUIDC_ATWBBALANCE
= 0x06,
// 自动白平衡 (彩色相机)
TUIDC_FAN_GEAR
= 0x07,
// 风扇档位
TUIDC_IMGMODESELECT
= 0x16,
// 图像模式选择(0x01:CMS 模式 0x02: 11BIT 模式)
TUIDC_LEDENBALE
= 0x1E,
// Led 灯开关
TUIDC_ENDCAPABILITY
= 0x1F,
// 性能 ID 结束位
(制冷相机)
}TUCAM_IDCAPA;
注:如果相机不支持该性能 ID,将返回错误代码 TUCAMRET_NOT_SUPPORT.
15
TUCAM-API 开发指南
福州鑫图光电有限公司
4.2.3 示例代码
1.
// 以分辨率 TUIDC_RESOLUTION 为例
2.
// 获取分辨率范围
3.
void GetResolutionRange()
4.
{
5.
TUCAM_CAPA_ATTR attrCapa;
6.
TUCAM_VALUE_TEXT valText;
7.
8.
char szRes[64] = {0};
9.
valText.nTextSize = 64;
10.
valText.pText = &szRes[0];
11.
attrCapa.idCapa = TUIDC_RESOLUTION;
12.
if (TUCAMRET_SUCCESS == TUCAM_Capa_GetAttr(opCam.hIdxTUCam, &attrCapa))
13.
{
14.
// 获取分辨率个数
15.
int nCnt = attrCapa.nValMax - attrCapa.nValMin + 1;
16.
valText.nID = TUIDC_RESOLUTION;
17.
18.
for (int i=0; im_bLiving)
34.
{
35.
pTUCam->m_frame.ucFormatGet = TUFRM_FMT_RGB888;
36.
if(TUCAMRET_SUCCESS == TUCAM_Buf_WaitForFrame(pTUCam->m_opCam.hIdxTUCam,\
37.
38.
&pTUCam->m_frame))
{
39.
// pTUCam->m_frame.pBuffer 返回捕获的图像数据,格式为 TUFRM_FMT_RGB88
40.
// 该数据可以用于显示
41.
42.
TUCAM_IMG_HEADER
frmhead;
22
TUCAM-API 开发指南
福州鑫图光电有限公司
43.
memcpy(&frmhead, pIn->m_frame.pBuffer, sizeof(TUCAM_IMG_HEADER));
44.
// 该数据可获取头部信息
45.
46.
// 可获取其他格式数据
47.
pTUCam->m_frame.ucFormatGet = TUFRM_FMT_USUAL;
48.
if(TUCAMRET_SUCCESS==TUCAM_Buf_CopyFrame(pTUCam->m_opCam.hIdxTUCam,\
49.
&pTUCam->m_frame))
50.
{
// pTUCam->m_frame.pBuffer 返回捕获的图像数据
51.
52.
}
53.
54.
}
}
55.
56.
SetEvent(pTUCam->m_hThdGrab);
57.
_endthread();
58. }
59.
60. void CDlgTUCam::StopCapture()
61. {
62.
m_bLiving = FALSE;
63.
TUCAM_BUF_AbortWait();
// 如果调用 TUCAM_Buf_WaitForFrame 接口
64.
65.
WaitForSingleObject(m_hThdGrab, INFINITE);
66.
CloseHandle(m_hThdGrab);
67.
m_hThdGrab = NULL;
// 等待取图线程退出
68.
69.
TUCAM_Cap_Stop(m_opCam.hIdxTUCam);
// 停止数据捕获
70.
TUCAM_Buf_Release(m_opCam.hIdxTUCam);
// 释放分配的内存
71. }
72.
4.5 捕获控制
4.5.1 接口
// Capturing control
// ROI
TUCAMRET TUCAM_Cap_SetROI (HDTUCAM hTUCam, TUCAM_ROI_ATTR roiAttr);
TUCAMRET TUCAM_Cap_GetROI (HDTUCAM hTUCam, PTUCAM_ROI_ATTR pRoiAttr);
// Trigger
TUCAMRET TUCAM_Cap_SetTrigger (HDTUCAM hTUCam, TUCAM_TRIGGER_ATTR tgrAttr);
23
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAMRET TUCAM_Cap_GetTrigger (HDTUCAM hTUCam, PTUCAM_TRIGGER_ATTR pTgrAttr);
// in trigger mode
TUCAMRET TUCAM_Cap_DoSoftwareTrigger(HDTUCAM hTUCam);
// Capturing
// uiMode see enumerate TUCAM_CAPTURE_MODES
TUCAMRET TUCAM_Cap_Start(HDTUCAM hTUCam, UINT32 uiMode);
TUCAMRET TUCAM_Cap_Stop (HDTUCAM hTUCam);
4.5.2 调用顺序
设置 ROI 属性 TUCAM_Cap_SetROI 和触发属性 TUCAM_Cap_SetTrigger,需要
在开始捕获数据之前调用,如果在数据捕获时调用有可能返回 TUCAMRET 错误代
码。
4.5.3 捕获模式索引
// enumerate the capture mode
typedef enum
{
TUCCM_SEQUENCE
= 0x00,
//
数据捕获采用序列模式
TUCCM_TRIGGER_STANDARD
= 0x01,
//
数据捕获采用标准触发模式
TUCCM_TRIGGER_SYNCHRONOUS = 0x02,
//
数据捕获采用同步触发模式
TUCCM_TRIGGER_GLOBAL
= 0x03,
//
数据捕获采用全局触发模式
TUCCM_TRIGGER_SOFTWARE
= 0x04,
//
数据捕获采用软件触发模式
}TUCAM_CAPTURE_MODES;
4.5.4 示例代码
1.
// 设置 ROI 模式
2.
void SetROIMode()
3.
{
4.
TUCAM_ROI_ATTR roiAttr;
5.
roiAttr.bEnable = TRUE;
6.
roiAttr.nVOffset= 100;
7.
roiAttr.nHOffset = 100;
8.
roiAttr.nWidth
9.
roiAttr.nHeight = 600;
= 800;
10.
11.
TUCAM_Cap_SetROI(m_opCam.hIdxTUCam, roiAttr);
12.
TUCAM_Cap_Start(m_opCam.hIdxCam, TUCCM_SEQUENCE);
13.
14.
// 数据获取参考内存管理示例代码
24
// 序列模式(即流模式)
TUCAM-API 开发指南
福州鑫图光电有限公司
15. }
16.
17. // 设置触发模式
18. void SetTriggerMode()
19. {
20.
TUCAM_TRIGGER_ATTR tgrAttr;
21.
22.
tgrAttr.nTgrMode = TUCCM_TRIGGER_STANDARD;
// 标准触发模式
23.
tgrAttr.nExpMode = TUCTE_EXPTM;
// 曝光模式
24.
tgrAttr.nEdgeMode= TUCTE_RISING;
// 激发上升沿
25.
tgrAttr.nFrames = 1;
// 触发 1 帧
26.
tgrAttr.nDelayTm = 0;
// 延时 0 ms
27.
28.
TUCAM_Cap_SetTrigger(m_opCam.hIdxTUCam, tgrAttr);
29.
TUCAM_Cap_Start(m_opCam.hIdxCam, TUCCM_STANDARD);
// 标准触发模式
30.
31.
// 数据获取参考内存管理示例代码
32. }
33.
4.6 文件控制
4.6.1 接口
// File control
// Image
TUCAMRET TUCAM_File_SaveImage (HDTUCAM hTUCam, TUCAM_FILE_SAVE fileSave);
// Video
TUCAMRET TUCAM_Rec_Start(HDTUCAM hTUCam, TUCAM_REC_SAVE recSave);
TUCAMRET TUCAM_Rec_AppendFrame(HDTUCAM hTUCam, PTUCAM_FRAME pFrame);
TUCAMRET TUCAM_Rec_Stop (HDTUCAM hTUCam);
4.6.2 调用顺序
录像开始 TUCAM_Rec_Start 需要在 TUCAM_Cap_Start 开始捕获数据之
后调用,并且设置的捕获方式必须是 TUCCM_SEQUENCE 模式。录像过
程中通过调用 TUCAM_Rec_AppendFrame 要将图像数据写入文件中,录
像结束调用 TUCAM_Rec_Stop 来结束录像过程。
25
TUCAM-API 开发指南
福州鑫图光电有限公司
4.6.3 文件结构体
// the file save structure
typedef struct _tagTUCAM_FILE_SAVE
{
INT32
nSaveFmt;
//
[in] 保存文件的格式
(参考 TUIMG_FORMATS)
PCHAR
pstrSavePath;
//
[in] 保存文件的路径
(包含文件名,但不包括扩展名)
//
[in] 帧结构体的指针
PTUCAM_FRAME pFrame;
} TUCAM_FILE_SAVE, *PTUCAM_FILE_SAVE;
// the record save structure
typedef struct _tagTUCAM_REC_SAVE
{
nCodec;
//
[in] 编码解码器的类型
PCHAR
pstrSavePath;
//
[in] 保存文件的路径
(包含文件名,但不包括扩展名)
Float
fFps;
//
[in] 当前的帧率
(录像的帧率)
INT32
} TUCAM_REC_SAVE, *PTUCAM_REC_SAVE;
4.6.4 示例代码
1.
// 保存图片文件
2.
void SaveImage()
3.
{
4.
m_frame.ucFormatGet = TUFRM_FMT_USUAL;
5.
if(TUCAMRET_SUCCESS==TUCAM_Buf_WaitForFrame(m_opCam.hIdxTUCam, &m_frame))
6.
{
7.
TUCAM_FILE_SAVE fileSave;
8.
fileSave.nSaveFmt
= TUFMT_TIF;
// 保存 Tiff 格式
9.
fileSave.pFrame
= &m_frame;
// 需要保存的帧指针
10.
fileSave.pstrSavePath = “C:\\image”;
// 路径包含文件名(不包含扩展名)
11.
12.
if (TUCAMRET_SUCCESS == TUCAM_File_SaveImage(m_opCam.hIdxTUCam, fileSave))
13.
{
// 保存图像文件成功
14.
15.
16.
}
}
17. }
18.
19. // 保存录像文件
20. void StartRecording()
21. {
22.
TUCAM_REC_SAVE
23.
recSave.fFps
recSave;
// 需要保存的帧率
= 15.0f;
26
TUCAM-API 开发指南
福州鑫图光电有限公司
24.
recSave.nCodec
= m_dwFccHandler;
25.
recSave.pstrSavePath = “C:\\TUVideo.avi” // 全路径
26.
27.
if (TUCAMRET_SUCCESS == TUCAM_Rec_Start(m_opCam.hIdxTUcam, recSave))
28.
{
// 开始录像。。。
29.
30.
}
31. }
32.
33. Void AppendFrame()
34. {
35.
m_frame.ucFormatGet = TUFRM_FMT_RGB888;
36.
if(TUCAMRET_SUCCESS==TUCAM_Buf_WaitForFrame(m_opCam.hIdxTUCam, &m_frame))
37.
{
38.
39.
TUCAM_Rec_AppendFrame(m_opCam.hIdxTUCam, &m_frame);
}
40. }
41.
42. void StopRecording()
43. {
44.
TUCAM_Rec_Stop(m_opCam.hIdxTUCam);
45. }
46.
4.7 扩展控制
4.7.1 接口
// Extened control
TUCAMRET TUCAM_Reg_Read (HDTUCAM hTUCam, TUCAM_REG_RW regRW);
TUCAMRET TUCAM_Reg_Write(HDTUCAM hTUCam, TUCAM_REG_RW regRW);
4.7.2 调用顺序
读写寄存器 TUCAM_Reg_Read / TUCAM_Reg_Write 的调用必须在
TUCAM_Dev_Open 打开相机后调用,如果 TUCAM_Dev_Close 关闭相机
后将无法读写寄存器,必须重新打开相机。
4.7.3 文件结构体
27
TUCAM-API 开发指南
福州鑫图光电有限公司
// the register read/write struct
typedef struct _tagTUCAM_REG_RW
{
INT32
nRegFmt;
//
[in] 读写寄存器的类型
PCHAR
pBuf;
//
[in/out] 指向缓冲区的指针
INT32
nBufSize;
//
[in] 缓冲区的大小
(参考 TUREG_TYPE)
} TUCAM_REG_RW, *PTUCAM_REG_RW;
4.7.4 示例代码
1.
// 读取寄存器数据
2.
void ReadRegisterData()
3.
{
4.
char cSN[TUSN_SIZE] = {0};
5.
TUCAM_REG_RW regRW;
6.
7.
regRW.nRegType
= TUREG_SN;
8.
regRW.pBuf
= &cSN[0];
9.
regRW.nBufSize
= TUSN_SIZE;
10.
11.
if (TUCAMRET_SUCCESS == TUCAM_Reg_Read(m_opCam.hIdxTUcam, regRW))
12.
{
// 获取 SN 数据
13.
14.
}
15. }
16.
17. // 写入寄存器数据
18. void WriteRegisterData()
19. {
20.
char cSN[TUSN_SIZE] = {‘S’, ‘N’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’};// “SN123456”
21.
TUCAM_REG_RW regRW;
22.
23.
regRW.nRegType
= TUREG_SN;
24.
regRW.pBuf
= &cSN[0];
25.
regRW.nBufSize
= TUSN_SIZE;
26.
27.
if (TUCAMRET_SUCCESS == TUCAM_Reg_Write(m_opCam.hIdxTUcam, regRW))
28.
{
// 将 SN 写入寄存器成功
29.
30.
}
31. }
28
TUCAM-API 开发指南
福州鑫图光电有限公司
5. 参考
5.1 类型和常量
5.1.1 TUCAMRET 错误代码
TUCAMRET_SUCCESS
= 0x00000001,
// 没有错误,一般成功的代码
TUCAMRET_FAILURE
= 0x80000000,
// 错误
TUCAMRET_NO_MEMORY
= 0x80000101,
// 没有足够的内存
TUCAMRET_NO_RESOURCE
= 0x80000102,
// 没有足够的资源(不包括内存)
TUCAMRET_NO_MODULE
= 0x80000103,
// 没有子模块
TUCAMRET_NO_DRIVER
= 0x80000104,
// 没有驱动
TUCAMRET_NO_CAMERA
= 0x80000105,
// 没有相机
TUCAMRET_NO_GRABBER
= 0x80000106,
// 没有取图
TUCAMRET_NO_PROPERTY
= 0x80000107,
// 没有代替的属性 ID
TUCAMRET_FAILOPEN_CAMERA
= 0x80000110,
// 打开相机失败
TUCAMRET_FAILOPEN_BULKIN
= 0x80000111,
// 打开批传输输入端点失败
TUCAMRET_FAILOPEN_BULKOUT
= 0x80000112,
// 打开批传输输出端点失败
TUCAMRET_FAILOPEN_CONTROL
= 0x80000113,
// 打开控制端点失败
TUCAMRET_FAILCLOSE_CAMERA
= 0x80000114,
// 关闭相机失败
TUCAMRET_FAILOPEN_FILE
= 0x80000115,
// 打开文件失败
// initialization error
// status error
TUCAMRET_INIT
= 0x80000201,
//
API 需要初始化状态.
TUCAMRET_BUSY
= 0x80000202,
//
API 处于繁忙状态
TUCAMRET_NOT_INIT
= 0x80000203,
//
API 未初始化
TUCAMRET_EXCLUDED
= 0x80000204,
//
一些资源被独占使用
TUCAMRET_NOT_BUSY
= 0x80000205,
//
API 未处于繁忙状态
TUCAMRET_NOT_READY
= 0x80000206,
//
API 未处于就绪状态
//
wait error
TUCAMRET_ABORT
= 0x80000207,
// 终止处理
TUCAMRET_TIMEOUT
= 0x80000208,
// 超时
TUCAMRET_LOSTFRAME
= 0x80000209,
// 帧丢失
TUCAMRET_MISSFRAME
= 0x8000020A,
// 帧丢失但是是底层驱动问题
TUCAMRET_INVALID_CAMERA
= 0x80000301,
// 无效相机
TUCAMRET_INVALID_HANDLE
= 0x80000302,
// 无效相机句柄
// calling error
29
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAMRET_INVALID_OPTION
= 0x80000303,
// 无效配置的值
TUCAMRET_INVALID_IDPROP
= 0x80000304,
// 无效属性 ID
TUCAMRET_INVALID_IDCAPA
= 0x80000305,
// 无效性能 ID
TUCAMRET_INVALID_IDPARAM
= 0x80000306,
// 无效参数 ID
TUCAMRET_INVALID_PARAM
= 0x80000307,
// 无效参数
TUCAMRET_INVALID_FRAMEIDX
= 0x80000308,
// 无效帧序号
TUCAMRET_INVALID_VALUE
= 0x80000309,
// 无效值
TUCAMRET_INVALID_EQUAL
= 0x8000030A,
// 值相等,参数无效
TUCAMRET_INVALID_CHANNEL
= 0x8000030B,
// 属性 ID 指定通道,但是通道是无效的
TUCAMRET_INVALID_SUBARRAY
= 0x8000030C,
// 子数组的值是无效的
TUCAMRET_INVALID_VIEW
= 0x8000030D,
// 无效的显示窗口句柄
TUCAMRET_INVALID_PATH
= 0x8000030E,
// 无效的文件路径
TUCAMRET_NO_VALUETEXT
= 0x80000310,
// 属性没有值的文本
TUCAMRET_OUT_OF_RANGE
= 0x80000311,
// 值超出范围
TUCAMRET_NOT_SUPPORT
= 0x80000312,
// 不支持的功能或属性
TUCAMRET_NOT_WRITABLE
= 0x80000313,
// 属性不可写
TUCAMRET_NOT_READABLE
= 0x80000314,
// 属性不可读
TUCAMRET_WRONG_HANDSHAKE = 0x80000410,
// 错误发生在获取错误代码时
TUCAMRET_NEWAPI_REQUIRED
= 0x80000411,
// 旧 API 不支持,只有新的 API 支持
TUCAMRET_ACCESSDENY
= 0x80000412,
// 当相机处于某种状态属性无法访问
TUCAMRET_NO_CORRECTIONDATA = 0x80000501,
// 没有彩点校正数据.
// camera or bus trouble
TUCAMRET_FAIL_READ_CAMERA
= 0x83001001,
// 从相机读取失败
TUCAMRET_FAIL_WRITE_CAMERA = 0x83001002,
// 写入相机失败
TUCAMRET_OPTICS_UNPLUGGED
// 为插入
= 0x83001003,
5.1.2 TUCAM_IDINFO 产品信息代码
TUIDI_BUS
= 0x01,
// USB 口类型: USB2.0/USB3.0
TUIDI_VENDOR
= 0x02,
// 厂商 ID
TUIDI_PRODUCT
= 0x03,
// 产品 ID
TUIDI_VERSION_API
= 0x04,
// TUCAM- API 版本号
TUIDI_VERSION_FRMW
= 0x05,
// 固件版本号
TUIDI_VERSION_FPGA
= 0x06,
// FPGA 版本号 (保留)
TUIDI_VERSION_DRIVER
= 0x07,
// 驱动版本号
TUIDI_TRANSFER_RATE
= 0x08,
// USB 传输速率
TUIDI_CAMERA_MODEL
= 0x09,
// 相机型号(字符串类型)
30
(保留)
TUCAM-API 开发指南
TUIDI_ENDINFO
福州鑫图光电有限公司
// 产品信息 ID 结束位
= 0x0A,
5.1.3 TUCAM_IDCAPA 性能代码
TUIDC_RESOLUTION
= 0x00,
// 分辨率
TUIDC_PIXELCLOCK
= 0x01,
// 像素时钟
TUIDC_BITOFDEPTH
= 0x02,
// 数据位宽
TUIDC_ATEXPOSURE
= 0x03,
// 自动曝光
TUIDC_HORIZONTAL
= 0x04,
// 水平镜像
TUIDC_VERTICAL
= 0x05,
// 垂直镜像
TUIDC_ATWBBALANCE
= 0x06,
// 自动白平衡 (彩色相机)
TUIDC_FAN_GEAR
= 0x07,
// 风扇档位
TUIDC_IMGMODESELECT
= 0x16,
// 图像模式选择(0x01 :CMS 0x02: 11BIT)
TUIDC_LEDENBALE
= 0x1E,
// LED 控制开关(0x01 :开 0x00 :关)
TUIDC_ENDCAPABILITY
= 0x1F,
// 性能 ID 结束位
TUIDP_GLOBALGAIN
= 0x00,
// 全局增益
TUIDP_EXPOSURETM
= 0x01,
// 曝光时间
TUIDP_BRIGHTNESS
= 0x02,
// 亮度 (自动曝光状态有效)
TUIDP_BLACKLEVEL
= 0x03,
// 黑电平
TUIDP_TEMPERATURE
= 0x04,
// 温度
TUIDP_SHARPNESS
= 0x05,
// 锐化
TUIDP_NOISELEVEL
= 0x06,
// 降噪等级
TUIDP_HDR_KVALUE
= 0x07,
// HDR 的 K 值(sCMOS 相机支持)
TUIDP_GAMMA
= 0x08,
// 伽玛
TUIDP_CONTRAST
= 0x09,
// 对比度
TUIDP_LFTLEVELS
= 0x0A,
// 左色阶
TUIDP_RGTLEVELS
= 0x0B,
// 右色阶
TUIDP_CHNLGAIN
= 0x0C,
// 通道增益 (彩色相机支持)
TUIDP_SATURATION
= 0x0D,
// 饱和度
TUIDP_ENDPROPERTY
= 0x0E,
// 属性 ID 结束位
(制冷相机)
5.1.4 TUCAM_IDPROP 属性代码
// image process property
(彩色相机支持)
5.1.5 TUCAM_CAPTURE_MODES 捕获模式代码
TUCCM_SEQUENCE
= 0x00,
// 采用序列模式(流模式)
TUCCM_TRIGGER_STANDARD
= 0x01,
// 采用标准触发模式
TUCCM_TRIGGER_SYNCHRONOUS = 0x02,
// 采用同步触发模式
TUCCM_TRIGGER_GLOBAL
= 0x03,
// 采用全局触发模式
TUCCM_TRIGGER_SOFTWARE
= 0x04,
// 采用软件触发模式
31
TUCAM-API 开发指南
福州鑫图光电有限公司
5.1.6 TUIMG_FORMATS 图像格式代码
TUFMT_RAW
= 0x01,
// RAW 格式
TUFMT_TIF
= 0x02,
// TIFF 格式
TUFMT_PNG
= 0x04,
// PNG 格式
TUFMT_JPG
= 0x08,
//
JPEG 格式
TUFMT_BMP
= 0x10,
//
BMP 格式
5.1.7 TUREG_TYPE 寄存器类型代码
TUREG_SN
= 0x01,
// 读写 SN 码寄存器
TUREG_DATA
= 0x02,
// 读写 DATA 寄存器(预留)
5.1.8 TUCAM_TRIGGER_EXP 触发曝光模式代码
TUCTE_EXPTM
= 0x00,
// 触发使用曝光时间模式
TUCTE_WIDTH
= 0x01,
// 触发使用电平宽度模式
5.1.9 TUCAM_TRIGGER_EDGE 触发激发边沿代码
TUCTD_RISING
= 0x01,
// 激发上升沿
TUCTD_FAILING
= 0x00,
// 激发下降沿
5.1.10 TUFRM_FORMATS 帧格式代码
TUFRM_FMT_RAW
= 0x10,
// RAW 格式数据
TUFRM_FMT_USUAl
= 0x11,
// 通常格式数据(8bit/16bit、黑白/彩色)
TUFRM_FMT_RGB888
= 0x12,
// RGB888 格式数据(可用与显示)
32
TUCAM-API 开发指南
福州鑫图光电有限公司
5.2 结构体
5.2.1 初始化
// the camera initialize structure
typedef struct _tagTUCAM_INIT
{
UINT32
uiCamCount;
//
[out] 返回当前连接的相机个数
PCHAR
pstrConfigPath;
//
[in] 输入保存相机参数的路径
//
[in]
//
[out] 输出打开相机的句柄
}TUCAM_INIT, *PTUCAM_INIT;
5.2.2 打开相机
//
the camera open structure
typedef struct _tagTUCAM_OPEN
{
UINT32
uiIdxOpen;
HDTUCAM hIdxTUCam;
输入需要打开相机的序列号
}TUCAM_OPEN, *PTUCAM_OPEN;
5.2.3 相机信息
// the camera value text structure
typedef struct _tagTUCAM_VALUE_INFO
{
INT32
nID;
//
[in] 信息 ID TUCAM_IDINFO
INT32
nValue;
//
[in] 信息的值
PCHAR
pText;
//
[in/out] 指向文本数据的指针
INT32
nTextSize;
//
[in] 文本缓存大小
}TUCAM_VALUE_INFO, *PTUCAM_VALUE_INFO;
5.2.4 性能/属性值文本
// the camera value text structure
typedef struct _tagTUCAM_VALUE_TEXT
{
INT32
nID;
//
[in]
DOUBLE
dbValue;
//
[in] 性能/属性的值
PCHAR
pText;
//
[in/out] 指向文本数据的指针
INT32
nTextSize;
//
[in] 文本缓存大小
}TUCAM_VALUE_TEXT, *PTUCAM_VALUE_TEXT;
33
ID TUCAM_IDPROP / TUCAM_IDCAPA
TUCAM-API 开发指南
福州鑫图光电有限公司
5.2.5 性能的属性
// the camera capability attribute
typedef struct _tagTUCAM_CAPA_ATTR
{
INT32
idCapa;
//
[in]
INT32
nValMin;
//
[out] 最小值
INT32
nValMax;
//
[out] 最大值
INT32
nValDft;
//
[out] 默认值
INT32
nValStep;
//
[out] 步长
ID TUCAM_IDCAPA
}TUCAM_CAPA_ATTR, *PTUCAM_CAPA_ATTR;
5.2.6 属性的属性
// the camera property attribute
typedef struct _tagTUCAM_PROP_ATTR
{
INT32
idProp;
//
[in]
INT32
nIdxChn;
//
[in/out] 当前通道索引号
ID TUCAM_IDPROP
DOUBLE
dbValMin;
//
[out] 最小值
DOUBLE
dbValMax;
//
[out] 最大值
DOUBLE
dbValDft;
//
[out] 默认值
DOUBLE
dbValStep;
//
[out] 步长
}TUCAM_PROP_ATTR, *PTUCAM_PROP_ATTR;
5.2.7 ROI 的属性
// the camera ROI attribute
typedef struct _tagTUCAM_ROI_ATTR
{
BOOL
bEnable;
//
[in/out]
ROI 使能
INT32
nHOffset;
//
[in/out]
水平偏移量
INT32
nVOffset;
//
[in/out]
垂直偏移量
INT32
nWidth;
//
[in/out]
ROI 的宽度
INT32
nHeight;
//
[in/out]
ROI 的高度
}TUCAM_ROI_ATTR, *PTUCAM_ROI_ATTR;
5.2.8 触发的属性
// the camera trigger attribute
typedef struct _tagTUCAM_TRIGGER_ATTR
34
TUCAM-API 开发指南
福州鑫图光电有限公司
{
INT32
nTgrMode;
//
[in/out] 触发模式
INT32
nExpMode;
//
[in/out] 曝光模式值[0,1] 0:曝光时间 1:电平宽度
INT32
nEdgeMode;
//
[in/out] 边沿激发模式[0, 1] 0:下降沿 1:上升沿
INT32
nDelayTm;
//
[in/out] 触发延迟时间 ms
INT32
nFrames;
//
[in/out] 一次触发输出帧数
}TUCAM_TRIGGER_ATTR, *PTUCAM_TRIGGER_ATTR;
5.2.9 触发输出的属性
// the camera trigger attribute
typedef struct _tagTUCAM_TRGOUT_ATTR
{
INT32
nTgrOutPort;
//
[in/out] 触发输出口0:Port1 1:Port2
INT32
nTgrOutMode;
//
[in/out] 触发输出模式0:低电平 1:高电平 2:触
2:Port3
发输入 3:曝光开始参考点 4:全局曝光 5:读出结束
INT32
nEdgeMode;
//
[in/out] 边沿激发模式[0, 1] 1:下降沿 2:上升沿
INT32
nDelayTm;
//
[in/out] 触发输出延迟时间
INT32
nWidth;
//
[in/out] 触发输出脉宽
}TUCAM_TRGOUT_ATTR, *PTUCAM_TRGOUT_ATTR;
5.2.10 帧结构
// the camera frame structure
typedef struct _tagTUCAM_FRAME
{
//
[out] 版权信息
USHORT usHeader;
//
[out] 帧头部大小
USHORT usOffset;
//
[out] 帧数据偏移大小
USHORT usWidth;
//
[out] 帧图像的宽度
USHORT usHeight;
//
[out] 帧图像的高度
UINT32 uiWidthStep;
//
[out] 帧图像的宽度步长
UCHAR
ucDepth;
//
[out] 帧图像的数据位深
UCHAR
ucFormat;
//
[out] 帧图像的数据格式
UCHAR
ucChannels;
//
[out] 帧图像的通道数
UCHAR
ucElemBytes;
//
[out] 帧图像的数据字节数
UCHAR
ucFormatGet;
//
[in/out] 需要获取的图像格式 TUFRM_FORMATS
UINT32 uiIndex;
//
[out] 帧图像的序列号(保留)
UINT32 uiImgSize;
//
[out] 帧图像数据的大小
UINT32 uiRsdSize;
//
[in]
CHAR szSignature[8];
//
The based information
35
需要获取的帧数
TUCAM-API 开发指南
福州鑫图光电有限公司
UINT32 uiHstSize;
//
[out] 帧图像的保留字段
PUCHAR pBuffer;
//
[in/out] 指向帧数据的缓冲区
//
[in] 保存图片的格式 参考 TUIMG_FORMATS
//
[in] 保存的路径(不包含扩展名)
//
[in] 指向帧的结构体
} TUCAM_FRAME, *PTUCAM_FRAME;
5.2.11 文件保存
// the file save structure
typedef struct _tagTUCAM_FILE_SAVE
{
INT32
PCHAR
nSaveFmt;
pstrSavePath;
PTUCAM_FRAME pFrame;
} TUCAM_FILE_SAVE, *PTUCAM_FILE_SAVE;
5.2.12 录像保存
// the record save structure
typedef struct _tagTUCAM_REC_SAVE
{
INT32
nCodec;
//
[in] 编码解码类型
PCHAR
pstrSavePath;
//
[in] 保存的路径包含文件名
float
fFps;
//
[in]
nRegType;
//
[in] 读写寄存器类型
pBuf;
//
[in/out] 指向读写内容的缓冲区
//
[in]
需要保存的帧率
} TUCAM_REC_SAVE, *PTUCAM_REC_SAVE;
5.2.13 寄存器读写
// the register read/write structure
typedef struct _tagTUCAM_REG_RW
{
INT32
PCHAR
INT32 nBufSize;
} TUCAM_REG_RW, *PTUCAM_REG_RW;
36
缓冲区的大小
参考 TUREG_TYPE
TUCAM-API 开发指南
福州鑫图光电有限公司
5.3 函数
TUCAM_Api_Init
TUCAM_Api_Uninit
描述
卸载 TUCAM-API 库,包括释放驱动绑定和一些内部资源。整个程序结束时调用一次。
声明
TUCAMRET TUCAM_Api_Uninit ();
参数
无输入参数
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
相关接口
TUCAM_Api_Uninit
TUCAM_Dev_Open
描述
打开相机,调用后相机处于工作模式,可以响应其他接口的调用。在此之前要保证有相机存
在,即要在调用 TUCAM_Api_Init 初始化之后。
声明
TUCAMRET TUCAM_Dev_Open (PTUCAM_OPEN pOpenParam);
参数
PTUCAM_OPEN pOpenParam 打开相机结构体指针,参考结构体 TUCAM_OPEN
37
TUCAM-API 开发指南
福州鑫图光电有限公司
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_INVALID_PARAM
无效参数,当 pOpenParam 指针为空时
超出范围,当需要打开的相机索引号超出连接相机的
TUCAMRET_OUT_OF_RANGE
范围时
TUCAMRET_FAILOPEN_CAMERA 打开相机失败
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Close
TUCAM_Dev_Close
描述
关闭相机,调用后相机处于待机状态,不响应其他接口的调用。
声明
TUCAMRET TUCAM_Dev_Close ();
参数
无输入参数
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open
38
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAM_Dev_GetInfo
描述
获取相机的相关信息,如 USB 口类型,相机产品号,API 版本号、固件版本号、相机类型
等。在此之前要保证有相机存在,并且保证相机打开,即要在调用 TUCAM_Api_Init 初始化
和调用 TUCAM_Api_Open 之后。
声明
TUCAMRET TUCAM_Dev_GetInfo (HDTUCAM hTUCam, PTUCAM_VALUE_INFO
pInfo);
参数
HDTUCAM hTUCam
PTUCAM_VALUE_INFO pInfo
相机的句柄
相机信息值的结构体指针,参考 TUCAM_VALUE_INFO
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_INVALID_PARAM
TUCAM-API 未初始化
无效参数,当产品信息代码不存在时,参考
TUCAM_IDINFO
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Capa_GetAttr
描述
获取性能参数的属性值。获取的属性包含该参数的最小值、最大值、默认值和步长。具体支
39
TUCAM-API 开发指南
福州鑫图光电有限公司
持的性能类型参考 TUCAM_IDCAPA。
声明
TUCAMRET TUCAM_Capa_GetAttr (HDTUCAM hTUCam, PTUCAM_CAPA_ATTR
pAttr);
参数
HDTUCAM hTUCam
相机的句柄
PTUCAM_CAPA_ATTR pAttr
相机性能属性结构体指针,参考 TUCAM_CAPA_ATTR
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_INVALID_IDCAPA
TUCAM-API 未初始化
无效的性能代码,当性能代码不存在时,参考
TUCAM_IDCAPA
TUCAMRET_INVALID_VALUE
无效的值,当 pAttr 指针为空时
TUCAMRET_NOT_SUPPORT
当底层请求不支持时
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Capa_GetValue、TUCAM_Capa_SetValue、TUCAM_Capa_GetValueText
TUCAM_Capa_GetValue
描述
获取性能参数的当前属性值。具体支持的性能类型参考 TUCAM_IDCAPA。
声明
TUCAMRET TUCAM_Capa_GetValue (HDTUCAM hTUCam, INT32 nCapa, INT32
40
TUCAM-API 开发指南
福州鑫图光电有限公司
*pnVal);
参数
HDTUCAM hTUCam
相机的句柄
INT32 nCapa
相机性能属性 ID,参考 TUCAM_IDCAPA
INT32 *pnVal
返回当前值
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_INVALID_IDCAPA
TUCAM-API 未初始化
无效的性能代码,当性能代码不存在时,参考
TUCAM_IDCAPA
TUCAMRET_INVALID_VALUE
无效的值,当 pAttr 指针为空时
TUCAMRET_NOT_SUPPORT
当底层请求不支持时
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Capa_GetAttr、TUCAM_Capa_SetValue、TUCAM_Capa_GetValueText
TUCAM_Capa_SetValue
描述
设置性能参数的当前属性值。具体支持的性能类型参考 TUCAM_IDCAPA。
声明
TUCAMRET TUCAM_Capa_SetValue (HDTUCAM hTUCam, INT32 nCapa, INT32
nVal);
41
TUCAM-API 开发指南
福州鑫图光电有限公司
参数
HDTUCAM hTUCam
相机的句柄
INT32 nCapa
相机性能属性 ID,参考 TUCAM_IDCAPA
INT32 nVal
需要设置的当前值
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_INVALID_IDCAPA
TUCAM-API 未初始化
无效的性能代码,当性能代码不存在时,参考
TUCAM_IDCAPA
TUCAMRET_INVALID_VALUE
无效的值,当 pAttr 指针为空时
TUCAMRET_NOT_SUPPORT
当底层请求不支持时
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Capa_GetAttr、TUCAM_Capa_GetValue、TUCAM_Capa_GetValueText
TUCAM_Capa_GetValueText
描述
获取性能参数的当前属性值的文本信息。具体支持的性能类型参考 TUCAM_IDCAPA。
声明
TUCAMRET TUCAM_Capa_GetValueText (HDTUCAM hTUCam,
PTUCAM_VALUE_TEXT pVal);
参数
42
TUCAM-API 开发指南
HDTUCAM hTUCam
PTUCAM_VALUE_TEXT pVal
福州鑫图光电有限公司
相机的句柄
获取性能参数的文本信息结构体指针,
TUCAM_VALUE_TEXT
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_FAILURE
文本缓冲区大小为 0 或 pText 指针为空时
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Capa_GetAttr、TUCAM_Capa_SetValue、TUCAM_Capa_GetValue
TUCAM_Prop_GetAttr
描述
获取属性参数的属性值。获取的属性包含该参数的最小值、最大值、默认值和步长。具体支
持的性能类型参考 TUCAM_IDPROP。
声明
TUCAMRET TUCAM_Prop_GetAttr (HDTUCAM hTUCam, PTUCAM_PROP_ATTR
pAttr);
参数
HDTUCAM hTUCam
PTUCAM_PROP_ATTR pAttr
相机的句柄
相机性能属性结构体指针,参考 TUCAM_PROP_ATTR
错误代码
43
TUCAM-API 开发指南
TUCAMRET_NOT_INIT
TUCAMRET_INVALID_IDPROP
福州鑫图光电有限公司
TUCAM-API 未初始化
无效的性能代码,当性能代码不存在时,参考
TUCAM_IDPROP
TUCAMRET_INVALID_VALUE
无效的值,当 pAttr 指针为空时
TUCAMRET_NOT_SUPPORT
当底层请求不支持时
TUCAMRET_OUT_OF_RANGE
需要获取的通道超出范围时
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Prop_GetValue、TUCAM_Prop_SetValue、TUCAM_Prop_GetValueText
TUCAM_Prop_GetValue
描述
获取属性参数的当前属性值。具体支持的性能类型参考 TUCAM_IDPROP。
声明
TUCAMRET TUCAM_Prop_GetValue (HDTUCAM hTUCam, INT32 nProp, DOUBLE
*pdbVal, INT32 nChn = 0);
参数
HDTUCAM hTUCam
相机的句柄
INT32 nProp
相机属性的 ID,参考 TUCAM_IDPROP
DOUBLE *pdbVal
返回当前值
INT32 nChn
需要获取的当前通道(默认为 0,黑白相机为 0)
44
TUCAM-API 开发指南
福州鑫图光电有限公司
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_INVALID_IDPROP
TUCAM-API 未初始化
无效的性能代码,当性能代码不存在时,参考
TUCAM_IDPROP
TUCAMRET_INVALID_VALUE
无效的值,当 pAttr 指针为空时
TUCAMRET_NOT_SUPPORT
当底层请求不支持时
TUCAMRET_OUT_OF_RANGE
需要获取的通道超出范围时
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Prop_GetAttr、TUCAM_Prop_SetValue、TUCAM_Prop_GetValueText
TUCAM_Prop_SetValue
描述
设置属性参数的当前属性值。具体支持的性能类型参考 TUCAM_IDPROP。
声明
TUCAMRET TUCAM_Prop_SetValue (HDTUCAM hTUCam, INT32 nProp, DOUBLE
dbVal, INT32 nChn = 0);
参数
HDTUCAM hTUCam
相机的句柄
INT32 nProp
相机属性的 ID,参考 TUCAM_IDPROP
DOUBLE dbVal
需要设置的当前值
INT32 nChn
需要获取的当前通道(默认为 0,黑白相机为 0)
45
TUCAM-API 开发指南
福州鑫图光电有限公司
错误代码
TUCAM-API 未初始化
TUCAMRET_NOT_INIT
TUCAMRET_INVALID_IDPROP
无效的性能代码,当性能代码不存在时,参考
TUCAM_IDPROP
TUCAMRET_INVALID_VALUE
无效的值,当 pAttr 指针为空时
TUCAMRET_NOT_SUPPORT
当底层请求不支持时
TUCAMRET_OUT_OF_RANGE
需要获取的通道超出范围时
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Prop_GetAttr、TUCAM_Prop_GetValue、TUCAM_Prop_GetValueText
TUCAM_Prop_GetValueText
描述
获取属性参数的当前属性值的文本信息。具体支持的性能类型参考 TUCAM_IDPROP。
声明
TUCAMRET TUCAM_Prop_GetValueText (HDTUCAM hTUCam,
PTUCAM_VALUE_TEXT pVal);
参数
HDTUCAM hTUCam
PTUCAM_VALUE_TEXT pVal
相机的句柄
获取性能参数的文本信息结构体指针,
TUCAM_VALUE_TEXT
错误代码
46
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_FAILURE
文本缓冲区大小为 0 或 pText 指针为空时
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Prop_GetAttr、TUCAM_Prop_SetValue、TUCAM_Prop_GetValue
TUCAM_Buf_Alloc
描述
分配内存空间用于数据捕获。当应用程序调用这个接口时,SDK 分配必要的内部缓冲区来
缓冲图像采集。捕获不从这一时刻开始。开始采集,应用程序必须调用 TUCAM_Cap_Start
接口。如果缓冲区不再是必要的,应用程序应该调用 TUCAM_Buf_Release 接口来释放内
部缓冲区。
声明
TUCAMRET TUCAM_Buf_Alloc (HDTUCAM hTUCam, PTUCAM_FRAME pFrame);
参数
HDTUCAM hTUCam
PTUCAM_FRAME pFrame
相机的句柄
图像时间帧结构的指针,参考 TUCAM_FRAME
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_INVALID_PARAM
当 pFrame 指针为空时
TUCAMRET_EXCLUDED
当 TUCAM_Buf_Alloc 被调用,且未释放时
TUCAMRET_OUT_OF_RANGE
当需要获取的帧数超出范围时
47
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAMRET_NO_MEMORY
当内存不足时
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Release
TUCAM_Buf_AbortWait、TUCAM_Buf_WaitForFrame、TUCAM_Buf_CopyFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Buf_Release
描述
释放用于数据捕获的内存空间。如果在捕获过程中调用该接口,这个接口将返回相机处于繁
忙的状态。
声明
TUCAMRET TUCAM_Buf_Release (HDTUCAM hTUCam);
参数
HDTUCAM hTUCam
相机的句柄
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_BUSY
相机处于繁忙状态
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
48
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc
TUCAM_Buf_AbortWait、TUCAM_Buf_WaitForFrame、TUCAM_Buf_CopyFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Buf_AbortWait
描述
用于停止数据捕获时的等待。调用 TUCAM_Buf_WaitForFrame 进行数据捕获等待之后,
使用该接口终止等待。
声明
TUCAMRET TUCAM_Buf_AbortWait (HDTUCAM hTUCam);
参数
HDTUCAM hTUCam
相机的句柄
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_INVALID_CAMERA
TUCAM-API 未初始化
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_WaitForFrame、TUCAM_Buf_CopyFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Buf_WaitForFrame
49
TUCAM-API 开发指南
福州鑫图光电有限公司
描述
用于等待数据捕获完成。通过调用 TUCAM_Buf_Alloc 分配来的空间,来获取捕获到的帧数
据。必须在调用 TUCAM_Cap_Start 开始捕获之后使用,否则会返回未准备的状态。
该函数属于阻塞函数,直至数据捕获完成或调用 TUCAM_Buf_AbortWait 终止。
帧结构体中 uiRsdSize 设置需要捕获的帧数,针对触发模式有效。例如:当触发一次需要返
回 5 帧时,该函数等待 5 帧数据都捕获结束之后才返回。
注:返回的帧结构 pBuffer 的数据排列,是帧头部(usHeader)+图像数据(uiImgSize) +保留
位(uiHstSize)。如果是多帧返回则按此顺序往后排列。
声明
TUCAMRET TUCAM_Buf_WaitForFrame (HDTUCAM hTUCam, PTUCAM_FRAME
pFrame);
参数
HDTUCAM hTUCam
PTUCAM_FRAME pFrame
相机的句柄
帧结构体的指针
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_NOT_READY
当未调用 TUCAM_Cap_Start 开始捕获时
TUCAMRET_NO_MEMORY
当未调用 TUCAM_Buf_Alloc 创建内存空间时
TUCAMRET_NO_RESOURCE
当 pFrame 指针为空时
TUCAMRET_OUT_OF_RANGE
当需要获取的帧数大于 1 时且获取的格式和
TUCAM_Buf_Alloc 不同
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
50
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_AbortWait、TUCAM_Buf_CopyFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Buf_CopyFrame
描述
用于等待数据捕获完成之后拷贝不同于 TUCAM_Buf_Alloc 分配的图像格式数据。必须在
TUCAM_Buf_WaitForFrame 返回之后调用,否则无法获取正确的图像数据。
例如:分配的图像格式为 TUFRM_FMT_RGB888,通过该函数可以拷贝其他格式的数据(如
TUFRM_FMT_RAW),此接口无法拷贝大于 1 帧的数据即帧结构中的 uiRsdSize 不能大于
1。
注:返回的帧结构 pBuffer 的数据排列,是帧头部(usHeader)+图像数据(uiImgSize) +保留
位(uiHstSize)。不支持多帧数据返回。
声明
TUCAMRET TUCAM_Buf_CopyFrame (HDTUCAM hTUCam, PTUCAM_FRAME
pFrame);
参数
HDTUCAM hTUCam
PTUCAM_FRAME pFrame
相机的句柄
帧结构体的指针
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_NOT_READY
当未调用 TUCAM_Cap_Start 开始捕获时
TUCAMRET_NO_MEMORY
当未调用 TUCAM_Buf_Alloc 创建内存空间时
TUCAMRET_NO_RESOURCE
当 pFrame 指针为空时
TUCAMRET_OUT_OF_RANGE
当需要获取的帧数大于 1 时且获取的格式和
51
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAM_Buf_Alloc 不同
TUCAMRET_INVALID_CAMERA 无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_AbortWait、TUCAM_Buf_WaitForFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Cap_SetROI
描述
用于设定图像的感兴趣区域,以左上角为坐标原点。设置的水平偏移量、垂直偏移量、宽度
和高度必须为 4 的倍数。
声明
TUCAMRET TUCAM_CAP_SETROI (HDTUCAM HTUCAM, TUCAM_ROI_ATTR
ROIATTR);
参数
HDTUCAM HTUCAM
相机的句柄
TUCAM_ROI_ATTR ROIATTR
ROI 属性结构体的对象
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_NOT_SUPPORT
不支持 ROI 设置
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
52
TUCAM-API 开发指南
福州鑫图光电有限公司
相关接口
TUCAM_API_INIT、TUCAM_API_UNINIT
TUCAM_DEV_OPEN、TUCAM_DEV_CLOSE
TUCAM_BUF_ALLOC、TUCAM_BUF_RELEASE
TUCAM_BUF_ABORTWAIT、TUCAM_BUF_WAITFORFRAME
TUCAM_CAP_START、TUCAM_CAP_STOP
TUCAM_CAP_GETROI
TUCAM_Cap_GetROI
描述
用于设定图像的感兴趣区域,以左上角为坐标原点。设置的水平偏移量、垂直偏移量、宽
度和高度必须为 4 的倍数。
捕获不从这一时刻开始。开始采集调用 TUCAM_Cap_Start 接口之后。
声明
TUCAMRET TUCAM_Cap_GetROI (HDTUCAM hTUCam, PTUCAM_ROI_ATTR
pRoiAttr);
参数
HDTUCAM hTUCam
PTUCAM_ROI_ATTR pRoiAttr
相机的句柄
ROI 属性结构体的指针
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_NOT_SUPPORT
TUCAM-API 未初始化
不支持 ROI 设置
53
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_AbortWait、TUCAM_Buf_WaitForFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Cap_SetROI
TUCAM_Cap_SetTrigger
描述
用于设定触发的属性,
捕获不从这一时刻开始。
开始采集调用 TUCAM_Cap_Start 接口之后。
曝光模式:
TUCTE_EXPTM
TUCTE_WIDTH
表示曝光时间由软件设定
示曝光时间由输入电平宽度设定
激发边沿模式:
TUCTD_RISING
表示触发信号为上升沿有效
TUCTD_FAILING
表示触发信号为下降沿有效
帧数:表示接收一个触发信号后,拍摄多少张图像,每张图像的曝光时间是相同的,取决于
软件设定。(选择电平宽度时,该功能无效。)
延迟:表示接收到一个触发信号后,可以设置多长的延迟时间才使相机进行触发曝光。
54
TUCAM-API 开发指南
福州鑫图光电有限公司
触发模式支持的参数:
模式
TUCAM_TRIGGER_EXP TUCAM_TRIGGER_EDGE
延时
帧数
标准触发
支持
支持
支持
支持
同步触发
支持
支持
不支持
不支持
全局触发
不支持
支持
不支持
不支持
软件触发
不支持
不支持
不支持
不支持
同步触发:即同步取图,第一次触发启动,第二次触发输出同步图像。
全局触发:一般用于光源可控的场景。
55
TUCAM-API 开发指南
福州鑫图光电有限公司
软件触发:通过软件下发命令模拟触发信号。
声明
TUCAMRET TUCAM_Cap_SetTrigger (HDTUCAM hTUCam,
TUCAM_TRIGGER_ATTR tgrAttr);
参数
HDTUCAM hTUCam
相机的句柄
TUCAM_TRIGGER_ATTR tgrAttr 触发属性结构体的对象
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_INVALID_CAMERA
TUCAM-API 未初始化
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_AbortWait、TUCAM_Buf_WaitForFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Cap_GetTrigger、TUCAM_Cap_DoSoftwareTrigger
TUCAM_Cap_GetTrigger
56
TUCAM-API 开发指南
福州鑫图光电有限公司
描述
用于获取触发的属性。
声明
TUCAMRET TUCAM_Cap_GetTrigger (HDTUCAM hTUCam,
PTUCAM_TRIGGER_ATTR pTgrAttr);
参数
相机的句柄
HDTUCAM hTUCam
PTUCAM_TRIGGER_ATTR pTgrAttr 触发属性结构体的指针
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_AbortWait、TUCAM_Buf_WaitForFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Cap_SetTrigger
TUCAM_Cap_DoSoftwareTrigger
描述
执行软件触发命令。
声明
57
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAMRET TUCAM_Cap_DoSoftwareTrigger(HDTUCAM hTUCam);
参数
HDTUCAM hTUCam
相机的句柄
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_FAILURE
执行触发命令失败
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_AbortWait、TUCAM_Buf_WaitForFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Cap_SetTrigger
TUCAM_Cap_SetTriggerOut
描述
用于设定触发输出的属性。
声明
TUCAMRET TUCAM_Cap_SetTriggerOut
(HDTUCAM hTUCam,
TUCAM_TRGOUT_ATTR tgroutAttr);
参数
HDTUCAM hTUCam
相机的句柄
TUCAM_TRGOUT_ATTR tgroutAttr 触发输出属性结构体的对象
58
TUCAM-API 开发指南
福州鑫图光电有限公司
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_NOT_SUPPORT
TUCAMRET_INVALID_CAMERA
TUCAM-API 未初始化
不支持设置
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Cap_GetTriggerOut
描述
用于获取触发输出的属性。
声明
TUCAMRET TUCAM_Cap_GetTriggerOut
(HDTUCAM hTUCam,
PTUCAM_TRGOUT_ATTR pTgrOutAttr);
参数
HDTUCAM hTUCam
相机的句柄
PTUCAM_TRGOUT_ATTR pTgrOutAttr 触发输出属性结构体指针
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_NOT_SUPPORT
不支持设置
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
59
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Cap_Start
描述
开始进行数据捕获。在开始捕获之前,配置好感兴趣区域和触发模式。
声明
TUCAMRET TUCAM_Cap_Start(HDTUCAM hTUCam, UINT32 uiMode);
参数
HDTUCAM hTUCam
UINT32 uiMode
相机的句柄
相机捕获的模式
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_FAILOPEN_BULKIN
打开相机捕获失败
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_AbortWait、TUCAM_Buf_WaitForFrame
TUCAM_Cap_Start
TUCAM_Cap_SetTrigger、TUCAM_SetROI
60
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAM_Cap_Stop
描述
停止进行数据捕获。
声明
TUCAMRET TUCAM_Cap_Stop (HDTUCAM hTUCam);
参数
HDTUCAM hTUCam
相机的句柄
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_FAILOPEN_BULKIN
打开相机捕获失败
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_AbortWait、TUCAM_Buf_WaitForFrame
TUCAM_Cap_Stop
TUCAM_File_SaveImage
描述
对帧数据进行保存。
声明
TUCAMRET TUCAM_File_SaveImage (HDTUCAM hTUCam, TUCAM_FILE_SAVE
61
TUCAM-API 开发指南
福州鑫图光电有限公司
fileSave);
参数
HDTUCAM hTUCam
TUCAM_FILE_SAVE fileSave
相机的句柄
文件保存结构体
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_INVALID_PARAM
输入的参数无效
TUCAMRET_INVALID_PATH
输入的路径不存在
TUCAMRET_FAILURE
文件保存失败
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_WaitForFrame、TUCAM_Buf_CopyFrame
TUCAM_Rec_Start
描述
打开录像文件,对帧数据进行录像保存,此时并未写入数据。设置的帧率需要大于 1fps,
不足 1fps 的将按 1fps 来创建录像文件。
声明
TUCAMRET TUCAM_Rec_Start(HDTUCAM hTUCam, TUCAM_REC_SAVE recSave);
参数
62
TUCAM-API 开发指南
HDTUCAM hTUCam
TUCAM_REC_SAVE recSave
福州鑫图光电有限公司
相机的句柄
录像文件保存结构体
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_INVALID_PARAM
输入的参数无效
TUCAMRET_INVALID_PATH
输入的路径不存在
TUCAMRET_FAILOPEN_FILE
文件打开失败
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_WaitForFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Rec_Stop、TUCAM_Rec_AppendFrame
TUCAM_Rec_AppendFrame
描述
将图像数据写入文件,在 TUCAM_Buf_WaitForFrame 调用该接口。
声明
TUCAMRET TUCAM_Rec_AppendFrame(HDTUCAM hTUCam, PTUCAM_FRAME
pFrame);
参数
HDTUCAM hTUCam
相机的句柄
63
TUCAM-API 开发指南
PTUCAM_FRAME pFrame
福州鑫图光电有限公司
帧结构体的指针
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
TUCAMRET_NOT_READY
未调用 TUCAM_Rec_Start 接口
TUCAMRET_OUT_OF_RANGE
写入的图像宽度和高度与创建时不一致
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_WaitForFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Rec_Start、TUCAM_Rec_Stop
TUCAM_Rec_Stop
描述
关闭录像文件,此时调用 TUCAM_Rec_AppendFrame 将无法写入数据。
声明
TUCAMRET TUCAM_Rec_Stop (HDTUCAM hTUCam);
参数
HDTUCAM hTUCam
相机的句柄
错误代码
TUCAMRET_NOT_INIT
TUCAM-API 未初始化
64
TUCAM-API 开发指南
TUCAMRET_INVALID_CAMERA
福州鑫图光电有限公司
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Buf_Alloc、TUCAM_Buf_Release
TUCAM_Buf_WaitForFrame
TUCAM_Cap_Start、TUCAM_Cap_Stop
TUCAM_Rec_Start、TUCAM_Rec_AppendFrame
TUCAM_Reg_Read
描述
读取寄存器的内容。读取的类型参考 TUREG_TYPE。
声明
TUCAMRET TUCAM_Reg_Read (HDTUCAM hTUCam, TUCAM_REG_RW regRW);
参数
HDTUCAM hTUCam
TUCAM_REG_RW regRW
相机的句柄
寄存器读写结构体
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_NO_MEMORY
TUCAM-API 未初始化
传入的缓冲区未分配内存空间
TUCAMRET_NOT_SUPPORT
不支持该类型读取
TUCAMRET_INVALID_IDPARAM
无效的类型,参考 TUREG_TYPE
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
65
TUCAM-API 开发指南
福州鑫图光电有限公司
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Reg_Write
TUCAM_Reg_Write
描述
写入寄存器的内容。写入的类型参考 TUREG_TYPE。
声明
TUCAMRET TUCAM_Reg_Write(HDTUCAM hTUCam, TUCAM_REG_RW regRW);
参数
HDTUCAM hTUCam
TUCAM_REG_RW regRW
相机的句柄
寄存器读写结构体
错误代码
TUCAMRET_NOT_INIT
TUCAMRET_NO_MEMORY
TUCAM-API 未初始化
传入的缓冲区未分配内存空间
TUCAMRET_NOT_SUPPORT
不支持该类型读取
TUCAMRET_INVALID_IDPARAM
无效的类型,参考 TUREG_TYPE
TUCAMRET_INVALID_CAMERA
无效的相机,相机句柄不存在时
相关接口
TUCAM_Api_Init、TUCAM_Api_Uninit
TUCAM_Dev_Open、TUCAM_Dev_Close
TUCAM_Reg_Read
66
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 67 Language : zh-CN Tagged PDF : Yes Title : TUCAM-API Author : Michael Subject : Reference Creator : Microsoft® Office Word 2007 Create Date : 2018:12:07 15:31:29+08:00 Modify Date : 2018:12:07 15:31:29+08:00 Producer : Microsoft® Office Word 2007EXIF Metadata provided by EXIF.tools