📄 ieudef.h
字号:
//IEUDef.h
/*
* Copyright (c) 2006,
* All rights reserved.
*
* 文件名称:IEUDef.h
* 文件标识:IEUDef.h
* 摘 要:常量和外部结构定义头文件
*
* 开发环境:Microsoft Win32 SDK, Visual C++ 6.00
*
* 当前版本:1.8.0.0
* 作 者:何珊
* 完成日期:2007年1月18日
*
* 修改记录:1、HARDWARE结构体中添加相机标识符成员cameraId
* 更新记录1.3.0.0
* 2、在FD_CAMERA_TYPE中增加IE320PLUS变量。何珊,2006-9-18
* 3、新增PARAM_INFO结构体,用来表示相机可调变量的信息。何珊,2006-9-19
* 更新记录1.4.0.0
* 4、FD_CAMERA_TYPE中新增了ID130PLUS成员。何珊,2006-11-11
* 更新记录1.5.0.0
* 5、增加了AnalogGain常量数组。何珊,2006-12-5
* 6、CAM_PARAM枚举常量中新增了ANALOG_GAIN和ADCOFFSET成员。何珊,2006-12-6
* 更新记录1.6.0.0
* 7、增加了FD_TIME_OUT错误码。何珊,2006-12-12
* 更新记录1.7.0.0
* 8、增加了AnalogGain_IE036常量数组。何珊,2006-12-23
* 9、增加了AnalogGain_ID130常量数组。何珊,2006-12-23
* 更新记录1.8.0.0
* 10、增加了FD_CONTROL常量定义。何珊,2007-1-10
* 11、增加了FD_FPN_CONTROL常量。何珊,2007-1-18
*/
//////////////////////////////////////////////////////////////////////
#ifndef _IEUDEF_H
#define _IEUDEF_H
/* extren "C" { */
#ifdef __cplusplus
extern "C" {
#endif
//相机型号标识
typedef enum tagFD_DEVICE_TYPE
{
UNKNOWN = 0, //未知型号设备
ID320C = 1, //FC-1D320C型相机
ID200C = 2, //FC-ID200C型相机
ID130C = 3, //FC-ID130C型相机
ID130M = 4, //FC-ID130M型相机
IE130C = 5, //FC-IE130C型相机
IE130M = 6, //FC-IE130M型相机
IE036C = 7, //FC-IE036C型相机
IE036M = 8, //FC-IE036M型相机
ID320PLUS = 9, //FC-ID320PLUS型相机
ID130PLUS = 10 //FC-ID130PLUS型相机
}FD_CAMERA_TYPE;
//相机输出图像数据的格式
typedef enum tagFD_DATA_FORMAT
{
HIGH_8BITS = 0x10000000, //输出原10位数据的高8位数据
MID_8BITS = 0x10000001, //输出原10位数据的中8位数据
LOW_8BITS = 0x10000002 //输出原10位数据的低8位数据
}FD_DATA_FORMAT;
//相机分辨率
typedef enum tagFD_RESOLUTION
{
RESOLUTION0 = 0x10000000, //图像分辨率0,大图像模式
RESOLUTION1 = 0x10000001 //图像分辨率1,小图像模式
}FD_RESOLUTION;
//输出数据位反转选项
typedef enum tagFD_BIT_INVERSION
{
BIT_NORMAL = 0x10000000, //图像数据正常输出
BIT_INVERSION = 0x10000004 //输出反转位图像数据
}FD_BIT_INVERSION;
//相机的GAMMA功能选项
typedef enum tagFD_GAMMA_CORRECTION
{
GAMMA_DISABLE = 0x10000000, //关闭GAMMA校正功能
GAMMA_ENABLE = 0x10000002 //使能GAMMA校正功能
}FD_GAMMA_CORRECTION;
//相机的工作模式
typedef enum tagFD_TRIGGER_MODE
{
FREE_RUN = 0x00000000, //连续图像模式
TRIGGER_SOFTWARE = 0x03000000, //触发模式下的软件触发
TRIGGER_RISING_EDGE = 0x01000000, //外触发模式,外部信号上升沿触发
TRIGGER_FALLING_EDGE = 0x05000000 //外触发模式,外部信号下升沿触发
}FD_TRIGGER_MODE;
//闪光灯极性
typedef enum tagFD_STROBE_POLARITY
{
RISING_EDGE_ACTIVE = 0x00000000, //闪光灯上升延有效
FALLING_EDGE_ACTIVE = 0x08000000 //闪光灯下降延有效
}FD_STROBE_POLARITY;
//控制模式
typedef enum tagFD_CONTROL
{
USER_CTRL = 0x00000000, //用户控制
AUTO_CTRL = 0x10000001 //自动控制
}FD_CONTROL;
typedef enum tagFD_FPN_CONTROL
{
FPN_DISABLE = 0x00000000, //不使能
FPN_ENABLE = 0x10000001 //使能
}FD_FPN_CONTROL;
//相机硬件信息
typedef struct tagHARDWARE
{
BYTE cameraType; //1:相机型号
BYTE hardwareEdition[3]; //2:4:硬件版本号
BYTE updateDate[4]; //5:8:硬件程序更新日期,5:6:年(十进制数表示,5:高8位,6:低8位),7:月,8:日
DWORD cameraId; //相机标识符
}HARDWARE;
//相机的可调参数信息
typedef struct tagPARAMINFO
{
float fMaxValue; //此参数的最大值
float fMinValue; //此参数的最小值
float fScale; //参数变化单位值
}PARAM_INFO;
//相机参数标识
typedef enum tagCAMPARAM
{
EXPOSURE_TIME = 0, //曝光时间
GAIN = 1, //增益
BRIGHT = 2, //亮度
RED_GAIN = 3, //红增益
BLUE_GAIN = 4, //蓝增益
STROBE_DELAY = 5, //闪光灯延迟
STROBE_DURATION = 6, //闪光灯持续时间
TRIGGER_DELAY = 7, //触发延迟
ANALOG_GAIN = 8, //模拟增益
ADCOFFSET = 9 //偏置
}CAM_PARAM;
//IEU消息定义,用于消息处理函数
#define IEU_MSG (WM_USER+200)
#define MSG_ONE_RSVD 0x2000
#define MSG_ALL_RSVD 0x2001
#define MSG_TIMEOUT 0x2002
#define MSG_ONE_FAILED 0x2003
#define MSG_TRANS_CANCELLED 0x2004
#define MSG_TRANS_STARTED 0x1000
#define MSG_TRANS_END 0x1001
//数据传输状态标识,用于回调函数
typedef enum tagIEU_TRANS_STATE
{
TRANS_ONE_RSVD = 0x2000, //收到一帧有效的图像数据
TRANS_TIMEOUT = 0x2002, //图像传输超过用户设置的时间限制
TRANS_ONE_FAILED = 0x2003 //获取一帧图像失败
}IEU_TRANS_STATE;
//回调函数参数
typedef struct
{
void *pDataBuf; //接收图像数据的缓冲区地址
DWORD cbDataBuf; //缓冲区大小(以字节计)
long dwImgRequested; //用户要求的图像帧数
long dwImgTransferred; //已经传输的图像帧数
DWORD dwTimeOutTicks; //用户设定超时间(毫秒)
IEU_TRANS_STATE TransState; //当前状态
void *pParam; //用户自定义参数指针
}IEU_TRANS_INFO;
//回调函数
typedef int (CALLBACK *IEU_CALLBACK)(IEU_TRANS_INFO* pTransInfo);
//返回值
#define HRESULT DWORD
#define FD_SUCCESSED 0x2000
#define FD_READY 0x2001
#define FD_UNREADY 0x1031
#define FD_FAILED 0x1000
#define FD_OPEN_FAILED 0x1001
#define FD_START_FAILED 0x1002
#define FD_STOP_FAILED 0X1003
#define FD_INVALID_POINTER 0x1011
#define FD_IMAGE_STOPED 0x1012
#define FD_WRITE_DEVICE_FAILED 0X1013
#define FD_READ_DEVICE_FAILED 0x1014
#define FD_READ_IMAGE_FAILED 0x1015
#define FD_INVALID_IMAGE 0x1016
#define FD_OPEN_FILE_FAILED 0x1017
#define FD_INVALID_HANDLE 0x1018
#define FD_UPDATE_FAILED 0x1019
#define FD_GET_HARDWARE_FAILED 0x1020
#define FD_BAD_PARAM 0x1021
#define FD_BUSYING 0x1028
#define FD_UNINITIALIZED 0x1029
#define FD_CANCEL_FAILED 0x1030
#define FD_NOT_SUPPORT 0x1031
#define FD_TIME_OUT 0X1032
//IE130M和IE130C相机的模拟增益值
const float AnalogGain[17] =
{
1.0f,
1.37f, 1.62f, 1.96f, 2.33f,
2.76f, 3.50f, 4.25f, 5.20f,
6.25f, 7.89f, 9.21f, 11.00f,
11.37f, 11.84f, 12.32f, 12.42f
};
//IE036M和IE036C相机的模拟增益值
const float AnalogGain_IE036[4] =
{
1.0f, 2.0f, 3.0f, 4.0f
};
//ID130M、ID130C和ID320PLUS相机的模拟增益
//ID320PLUS的模拟增益与ID130系列相同
const float AnalogGain_ID130[4] =
{
1.0f, 2.0f, 3.0f, 4.0f
};
/* extren "C" { */
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -