一、整体说明:1、使用环境及编程环境:本SDK以DLL的形式提供给用户调用,适用于Windows xp、Windows 2003、Windows XP、Windows7等Windows 32位开发环境;本SDK库和DEMO均在Microsoft Visual studio 2005下编译开发;2、主要功能说明:a. 处理器配置信息读取;b. 信号窗口的控制,如打开、关闭、移动、改变大小等;c. 信号属性的调节,如视频图像亮度、对比度等;二、文件目录说明:1. 头文件目录include:include\api.h //主要包含宏定义、数据结构定义和函数定义2. 库文件目录lib:lib\empeasy.lib //sdk的导入库3. 可执行文件目录bin:bin\empeasy.dll //sdk的动态链接库bin\sample1.exe //例子1的可执行文件4. 文档目录doc:doc\编程说明.pdf //本文档5. 例子目录sample:sample\sample1 //例子1,示例如何使用本sdk三、宏定义说明:#define NAME_LEN 64 //名称长度#define HOST_NAME_LEN NAME_LEN //主机名称长度#define PARAM_FILE_NAME_LEN NAME_LEN //参数文件名称长度#define CMD_NAME_LEN 256 //命令行长度#define MAX_PARAM_FILE 8 //信号参数保存成文件的最大数#define TITLE_LEN 64#define TITLE_LENV2 256#define MAX_VIDEO_INPUT_MODE 8 //视频信号模式的最大数#define MAX_RGB_INPUT_MODE 36 //RGB信号模式的最大数#define MODE_NAME_LEN 32 //模式名称的最大长度备注:视频信号模式主要有:如NTSC、PAL、SECAM等;RGB信号模式主要有:800x600@60Hz、1024x768@60Hz等。
信号类型定义:#define TYPE_VIDEO 1 //视频信号类型#define TYPE_RGB 2 //RGB信号类型#define TYPE_NET 3 //网络信号类型#define TYPE_IPVIDEO 8 //IP视频信号类型#define TYPE_EVWS 9 //EVWALL媒体流信号类型窗口类型定义:#define MASK_ALL (0x1F) //所有窗口#define MASK_TYPE_VIDEO (0x01) //视频窗口类型#define MASK_TYPE_RGB (0x02) //RGB窗口类型#define MASK_TYPE_NET (0x04) //网络窗口类型#define TYPE_MEDIA_MASK (0x20) //媒体播放窗口类型#define TYPE_IPVIDEO_MASK (0x40) //IP视频窗口类型#define TYPE_IPVIDEO_EVWS (0x80) //EVWALL媒体流窗口类型备注:此定义主要用于枚举窗口和关闭窗口,可以对指定类型的窗口进行相关操作,例如函数EmpEnumWindows和EmpCloseWindows的type参数,可以是其中一项,也可是任意的并集。
图像格式定义:#define PIXELFORMAT_YUY2 1#define PIXELFORMAT_YUYV 2#define PIXELFORMAT_RGB565 3#define PIXELFORMAT_RGB888 4#define PIXELFORMAT_RGB8888 5#define PIXELFORMAT_YUV420 6IP视频厂家型号定义:#define IP_STREAM_MODEL_UNKNOWN 0#define IP_STREAM_MODEL_LC 1 //朗驰#define IP_STREAM_MODEL_AS 2 //安森威尔#define IP_STREAM_MODEL_ACTi 3 //acti#define IP_STREAM_MODEL_HK 4 //海康威视#define IP_STREAM_MODEL_TAS 5 //同安顺#define IP_STREAM_MODEL_HH 6 //黄河摄像头#define IP_STREAM_MODEL_DAHUA 7 //大华#define IP_STREAM_MODEL_XM 8 //雄迈#define IP_STREAM_MODEL_SAMSUNG 9 //三星#define IP_STREAM_MODEL_ZION 10 //zion#define IP_STREAM_MODEL_YAAN 11 //亚安#define IP_STREAM_MODEL_HIE 12 //hualu#define IP_STREAM_MODEL_INFINOVA 13 //英飞拓摄像头云台控制命令定义:SDK开发文档#define CODE_PTZ_UP 1#define CODE_PTZ_DOWN 2#define CODE_PTZ_LEFT 3#define CODE_PTZ_RIGHT 4#define CODE_ZOOM_IN 5#define CODE_ZOOM_OUT 6#define CODE_FOCUS_PLUS 7#define CODE_FOCUS_MINUS 8#define CODE_APERTURE_PLUS 9#define CODE_APERTURE_MINUS 10与处理器连接超时定义:#define PROCESSOR_RECVTIMEOUT 5000消息类型定义:#define MSG_WND_OPENED 0 //窗口创建消息#define MSG_WND_MOVED 1 //窗口移动消息#define MSG_WND_STYLE_CHANGED 2 //窗口风格改变消息#define MSG_WND_ACTIVED 3 //窗口激活消息#define MSG_WND_CLOSED 4 //窗口关闭消息返回值定义:enum RET_STATUS{ST_SUCCESS = 0, //表示成功HANDLE_INVALID, //HANDLE不可用COMMUNICATE_ERROR, //与处理器通信失败INPUT_PARAM_INVALID, //输入参数不可用INPUT_BUFFER_INVALID, //输入buffer不可用OUTPUT_BUFFER_INVALID, //输出buffer不可用EXECUTE_ERROR, //执行错误UNKNOWN_ERROR=0xFFFFFFFF //未知错误};三、结构定义说明:1.处理器信息结构定义:typedef struct tagPROINFO{int mainVersion; //主版本号int subVersion; //子版本号int row; //行数int col; //列数int cubeWidth; //单元宽int cubeHeight; //单元高int Reserved1; //保留int Resvered2; //保留int bitsPerPixel; //桌面颜色位深int nRgbInput; //RGB通道数int nVideoInput; //视频通道数char szName[HOST_NAME_LEN]; //处理器名称}PROINFO, *PPROINFO;2. 请求开窗口结构定义:typedef struct tagREQOPENWND{int type; //信号类型long x; //窗口位置:左long y; //窗口位置:顶unsigned long w; //窗口宽unsigned long h; //窗口高unsigned long style; //窗口风格int nChannel; //信号通道号unsigned char szCmd[CMD_NAME_LEN];//信号命令行}REQOPENWND, *PREQOPENWND;typedef struct{char szUrl[64]; //摄像头IP地址加通道号的格式,如192.168.1.55:1,如果不加:1,默认是0通道char szUser[32]; //摄像头登录用户名char szPwd[32]; //摄像头登录密码unsigned char bDefaultLogin;//是否默认登录,如果是,将忽略szUser、szPwd和port 参数unsigned char reserved1; //保留unsigned char model; //摄像头厂家型号,参照IP视频厂家型号定义unsigned char reserved2; //保留int port; //摄像头端口号}IPLOGININFO,*PIPLOGININFO;备注:信号类型为TYPE_VIDEO和TYPE_RGB时,nChannel有效,szCmd为无效参数;信号类型为TYPE_NET时,szCmd有效,nChannel为无效参数;信号类型为TYPE_IPVIDEO时,szCmd有效,szCmd的格式按IPLOGININFO结构定义;3. 请求改变窗口位置或大小结构定义:typedef struct tagREQMOVEWND{DWORD winId; //窗口句柄long x; //窗口位置:左long y; //窗口位置:顶unsigned long w; //窗口宽unsigned long h; //窗口高}REQMOVEWND, *PREQMOVEWND;4. 请求改变窗口风格结构定义:typedef struct tagREQSTYLECHANGE{DWORD winId; //窗口句柄int style; //窗口风格}REQSTYLECHANGE, *PREQSTYLECHANGE;备注:窗口风格仅对TYPE_VIDEO、TYPE_RGB和TYPE_NET起作用。
5. 视频信号参数结构定义:typedef struct tagVIDEOADJUSTPARAM{CHAR nModeIdx; //模式索引号UCHAR Reserved1; //保留SHORT Reserved2; //保留SHORT HOffset; //水平开始位置SHORT VOffset; //垂直开始位置SHORT Width; //宽SHORT Height; //高UCHAR Brightness; //亮度UCHAR Contrast; //对比度UCHAR Hue; //色度UCHAR Saturation; //饱和度}VIDEOADJUSTPARAM, *PVIDEOADJUSTPARAM;6. RGB信号参数结构定义:typedef struct tagRGBADJUSTPARAM{CHAR nModeIdx; //模式索引号CHAR bDVI; //是否DVI信号SHORT HOffset; //水平开始位置SHORT HSize; //水平总像素SHORT VOffset; //垂直开始位置UCHAR Format; //图像格式UCHAR Brightness; //亮度UCHAR Contrast; //对比度UCHAR Phase; //相位UCHAR Reserved; //保留UCHAR bAutoDetect; //信号自动检测}RGBADJUSTPARAM, *PRGBADJUSTPARAM;备注:HSize、Brightness、Contrast和Phase对VGA信号调节有效。