3 数据结构定义
3.1 客户端数据结构
? 通用云台控制命令
typedef enum _PTZ_ControlType {
PTZ_UP_CONTROL = 0, //上 PTZ_DOWN_CONTROL, //下 PTZ_LEFT_CONTROL, //左 PTZ_RIGHT_CONTROL, //右 PTZ_ZOOM_ADD_CONTROL, //变倍+ PTZ_ZOOM_DEC_CONTROL, //变倍- PTZ_FOCUS_ADD_CONTROL, //调焦+ PTZ_FOCUS_DEC_CONTROL, //调焦- PTZ_APERTURE_ADD_CONTROL, //光圈+ PTZ_APERTURE_DEC_CONTROL, //光圈-
PTZ_POINT_MOVE_CONTROL, //转至预置点 PTZ_POINT_SET_CONTROL, //设置 PTZ_POINT_DEL_CONTROL, //删除 PTZ_POINT_LOOP_CONTROL, //点间轮循 PTZ_LAMP_CONTROL,
//灯光雨刷
}PTZ_ControlType;
? 云台控制扩展命令
typedef enum _EXTPTZ_ControlType{ EXTPTZ_LEFTTOP = 0X20, // 左上 EXTPTZ_RIGHTTOP , // 右上 EXTPTZ_LEFTDOWN , // 左下 EXTPTZ_RIGHTDOWN, // 右下
EXTPTZ_ADDTOLOOP, // 加入预置点到巡航 巡航线路 EXTPTZ_DELFROMLOOP, // 删除巡航中预置点 巡航线路 EXTPTZ_CLOSELOOP, // 清除巡航 巡航线路 EXTPTZ_STARTPANCRUISE, // 开始水平旋转 EXTPTZ_STOPPANCRUISE, // 停止水平旋转 EXTPTZ_SETLEFTBORDER, // 设置左边界 EXTPTZ_RIGHTBORDER , // 设置右边界 EXTPTZ_STARTLINESCAN, // 开始线扫 EXTPTZ_CLOSELINESCAN,
// 停止线扫
预置点值预置点值
EXTPTZ_SETMODESTART, EXTPTZ_SETMODESTOP, EXTPTZ_RUNMODE, EXTPTZ_STOPMODE, EXTPTZ_DELETEMODE, EXTPTZ_REVERSECOMM, EXTPTZ_FASTGOTO, EXTPTZ_AUXIOPEN, EXTPTZ_AUXICLOSE, EXTPTZ_OPENMENU = 0X36, EXTPTZ_CLOSEMENU , EXTPTZ_MENUOK, EXTPTZ_MENUCANCEL, EXTPTZ_MENUUP, EXTPTZ_MENUDOWN, EXTPTZ_MENULEFT, EXTPTZ_MENURIGHT, EXTPTZ_TOTAL, }EXTPTZ_ControlType;
// 设置模式开始 模式线路 // 设置模式结束 模式线路 // 运行模式 模式线路 // 停止模式 模式线路 // 清除模式 模式线路 // 翻转命令 // 快速定位 水平坐标 垂直坐标 // x34 辅助开关开 辅助点 // 0x35辅助开关关 辅助点 // 打开球机菜单 // 关闭菜单 //菜单确定 //菜单取消 //菜单上 //菜单下 //菜单左 //菜单右 //最大命令值
变倍
? IO控制命令
typedef enum _IOTYPE{ ALARMINPUT = 1, ALARMOUTPUT = 2, }IOTYPE;
//报警输入 //报警输出
? 查询状态类型
#define DH_DEVSTATE_COMM_ALARM #define DH_DEVSTATE_SHELTER_ALARM #define DH_DEVSTATE_RECORDING #define DH_DEVSTATE_DISK
0x0001 0x0002 0x0003 0x0004
//查询普通报警
//查询遮挡报警 //查询录象状态 //查询硬盘状态
? 错误类型代号,用于GetLastError函数的返回
#define _EC(x)
(0x80000000|x) 0 -1 _EC(1) _EC(2) _EC(3)
//没有错误 //未知错误
//Windows系统出错 //网络错误
//设备协议不匹配
#define NET_NOERROR #define NET_ERROR #define NET_SYSTEM_ERROR #define NET_NETWORK_ERROR #define NET_DEV_VER_NOMATCH
#define NET_INVALID_HANDLE _EC(4) #define NET_OPEN_CHANNEL_ERROR _EC(5) #define NET_CLOSE_CHANNEL_ERROR _EC(6) #define NET_ILLEGAL_PARAM _EC(7) #define NET_SDK_INIT_ERROR _EC(8) #define NET_SDK_UNINIT_ERROR _EC(9) #define NET_RENDER_OPEN_ERROR _EC(10) #define NET_DEC_OPEN_ERROR _EC(11) #define NET_DEC_CLOSE_ERROR _EC(12) #define NET_MULTIPLAY_NOCHANNEL _EC(13) #define NET_TALK_INIT_ERROR _EC(14) #define NET_TALK_NOT_INIT _EC(15) #define NET_TALK_SENDDATA_ERROR _EC(16) #define NET_REAL_ALREADY_SAVING _EC(17) #define NET_NOT_SAVING _EC(18) #define NET_OPEN_FILE_ERROR _EC(19) #define NET_PTZ_SET_TIMER_ERROR _EC(20) #define NET_RETURN_DATA_ERROR _EC(21) #define NET_INSUFFICIENT_BUFFER _EC(22) #define NET_NOT_SUPPORTED _EC(23) #define NET_NO_RECORD_FOUND _EC(24) #define NET_NOT_AUTHORIZED _EC(25) #define NET_NOT_NOW _EC(26) #define NET_NO_TALK_CHANNEL _EC(27) #define NET_NO_AUDIO _EC(28) #define NET_AUDIOENCODE_NOTINI _EC(59) #define NET_DATA_TOOLONGH _EC(60) #define NET_LOGIN_ERROR_PASSWORD _EC(100)#define NET_LOGIN_ERROR_USER _EC(101)#define NET_LOGIN_ERROR_TIMEOUT _EC(102)#define NET_LOGIN_ERROR_RELOGGIN _EC(103)#define NET_LOGIN_ERROR_LOCKED _EC(104)#define NET_LOGIN_ERROR_BLACKLIST _EC(105)#define NET_LOGIN_ERROR_BUSY _EC(106)#define NET_LOGIN_ERROR_CONNECT _EC(107)#define NET_LOGIN_ERROR_NETWORK _EC(108)#define NET_RENDER_SOUND_ON_ERROR _EC(120)#define NET_RENDER_SOUND_OFF_ERROR _EC(121)#define NET_RENDER_SET_VOLUME_ERROR _EC(122)#define NET_RENDER_ADJUST_ERROR _EC(123)#define NET_RENDER_PAUSE_ERROR _EC(124)#define NET_RENDER_SNAP_ERROR _EC(125)#define NET_RENDER_STEP_ERROR _EC(126)//句柄无效 //打开通道失败 //关闭通道失败 //用户参数不合法 //SDK初始化出错 //SDK清理出错
//申请render资源出错 //打开解码库出错 //关闭解码库出错
//多画面预览中检测到通道数为0 //录音库初始化失败 //录音库未经初始化 //发送音频数据出错
//实时数据已经处于保存状态 //未保存实时数据 //打开文件出错
//启动云台控制定时器失败 //对返回数据的校验出错 //没有足够的缓存
//当前SDK未支持该功能 //查询不到录象 //无操作权限 //暂时无法执行 //未发现对讲通道 //未发现音频
//音频编码接口没有成功初始化 //数据过长 //密码不正确 //帐户不存在
//等待登录返回超时 //帐号已登录 //帐号已被锁定
//帐号已被列为黑名单 //资源不足,系统忙 //连接主机失败\//网络连接失败\
//Render库打开音频出错 //Render库关闭音频出错 //Render库控制音量出错 //Render库设置画面参数出错 //Render库暂停播放出错 //Render库抓图出错 //Render库步进出错
#define NET_RENDER_FRAMERATE_ERROR _EC(127) //Render库设置帧率出错 #define NET_CONFIG_DEVBUSY _EC(999) //暂时无法设置 #define NET_CONFIG_DATAILLEGAL _EC(1000) //配置数据不合法
? 回调函数类型
#define COMM_ALARM #define SHELTER_ALARM #define DISK_FULL_ALARM #define DISK_ERROR_ALARM #define SOUND_DETECT_ALARM
0x1100 0x1101 0X1102 0x1103 0x1104
//常规报警信息
//视频遮挡报警 //硬盘满报警 //硬盘故障报警 //音频检测报警
? 设备型号(DVR类型)
enum NET_DEVICE_TYPE { NET_PRODUCT_NONE = 0, NET_DVR_NONREALTIME_MACE, NET_DVR_NONREALTIME, NET_NVS_MPEG1, NET_DVR_MPEG1_2, NET_DVR_MPEG1_8, NET_DVR_MPEG4_8, NET_DVR_MPEG4_16, NET_DVR_MPEG4_SX2, NET_DVR_MEPG4_ST2, NET_DVR_MEPG4_SH2, NET_DVR_MPEG4_GBE, NET_DVR_MPEG4_NVSII, NET_DVR_STD_NEW, NET_DVR_DDNS, };
// 非实时MACE // 非实时
// 网络视频服务器 // MPEG1二路录像机 // MPEG1八路录像机 // MPEG4八路录像机 // MPEG4十六路录像机 // MPEG4视新十六路录像机 // MPEG4视通录像机 // MPEG4视豪录像机
// MPEG4视通二代增强型录像机 // MPEG4网络视频服务器II代 // 新标准配置协议 // DDNS服务器
3.1.1 设备信息结构
? 设备结构定义如下
typedef struct {
BYTE sSerialNumber[SERIALNO_LEN];
BYTE byAlarmInPortNum; BYTE byAlarmOutPortNum; BYTE byDiskNum; BYTE byDVRType;
//序列号
//DVR报警输入个数 //DVR报警输出个数 //DVR硬盘个数 //DVR类型,