📄 hcnetsdk.h
字号:
BYTE byChanNum; //DVR 通道个数
BYTE byStartChan; //起始通道号,例如DVS-0,DVR - 1
BYTE byDecordChans; //DVR 解码路数
BYTE byVGANum; //VGA口的个数
BYTE byUSBNum; //USB口的个数
char reservedData[3]; //保留
}NET_DVR_DEVICECFG,*LPNET_DVR_DEVICECFG;
typedef struct {
char sDVRIP[16]; //DVR IP地址
char sDVRIPMask[16]; // DVR IP地址掩码
DWORD dwNetInterface; //网络接口 1-10MBase-T 2-10MBase-T全双工 3-100MBase-TX 4-100M全双工 5-10M/100M自适应
WORD wDVRPort; //端口号
BYTE byMACAddr[MACADDR_LEN]; //服务器的物理地址
}NET_DVR_ETHERNET;
//网络配置结构
typedef struct{
DWORD dwSize;
NET_DVR_ETHERNET struEtherNet[MAX_ETHERNET]; /* 以太网口 */
char sManageHostIP[16]; //远程管理主机地址
WORD wManageHostPort; //远程管理主机端口号
char sDNSIP[16]; //DNS服务器地址
char sMultiCastIP[16]; //多播组地址
char sGatewayIP[16]; //网关地址
char sNFSIP[16]; //NFS主机IP地址
BYTE sNFSDirectory[PATHNAME_LEN];//NFS目录
DWORD dwPPPOE; //0-不启用,1-启用
BYTE sPPPoEUser[NAME_LEN]; //PPPoE用户名
char sPPPoEPassword[PASSWD_LEN];// PPPoE密码
char sPPPoEIP[16]; //PPPoE IP地址(只读)
}NET_DVR_NETCFG,*LPNET_DVR_NETCFG;
//通道图象结构
typedef struct{
BYTE byMotionScope[18][22]; /*侦测区域,共有22*18个小宏块,为1表示该宏块是移动侦测区域,0-表示不是*/
BYTE byMotionSensitive; /*移动侦测灵敏度, 0 - 5,越高越灵敏,0xff关闭*/
BYTE byEnableHandleMotion; /* 是否处理移动侦测 */
NET_DVR_HANDLEEXCEPTION strMotionHandleType; /* 处理方式 */
BYTE byRelRecordChan[MAX_CHANNUM]; //报警触发的录象通道,为1表示触发该通道
}NET_DVR_MOTION,*LPNET_DVR_MOTION;
//遮挡报警 区域为704*576
typedef struct{
DWORD dwEnableHideAlarm; /* 是否启动遮挡报警 ,0-否,1-低灵敏度 2-中灵敏度 3-高灵敏度*/
WORD wHideAlarmAreaTopLeftX; /* 遮挡区域的x坐标 */
WORD wHideAlarmAreaTopLeftY; /* 遮挡区域的y坐标 */
WORD wHideAlarmAreaWidth; /* 遮挡区域的宽 */
WORD wHideAlarmAreaHeight; /*遮挡区域的高*/
NET_DVR_HANDLEEXCEPTION strHideAlarmHandleType; /* 处理方式 */
}NET_DVR_HIDEALARM,*LPNET_DVR_HIDEALARM;
typedef struct
{
DWORD dwSize;
BYTE sChanName[NAME_LEN];
DWORD dwVideoFormat; /* 只读:视频制式 1-NTSC 2-PAL*/
BYTE byBrightness; /*亮度,0-255*/
BYTE byContrast; /*对比度,0-255*/
BYTE bySaturation; /*饱和度,0-255 */
BYTE byHue; /*色调,0-255*/
//显示通道名
DWORD dwShowChanName; // 预览的图象上是否显示通道名称,0-不显示,1-显示 区域为704*576
WORD wShowNameTopLeftX; /* 通道名称显示位置的x坐标 */
WORD wShowNameTopLeftY; /* 通道名称显示位置的y坐标 */
//显示LOGO图片(暂时不支持LOGO显示)
DWORD dwShowLogo; // 预览的图象上是否显示LOGO图片,0-不显示,1-显示 区域为704*576
WORD wLOGOTopLeftX; /* LOGO位置的x坐标 */
WORD wLOGOTopLeftY; /* LOGO位置的y坐标 */
BYTE byLogoAttrib; /* LOGO属性: 1:透明,2:不透明 */
//移动侦测
NET_DVR_MOTION struMotion;
//遮挡报警
NET_DVR_HIDEALARM strHideAlarm;
//遮挡
DWORD dwEnableHide; /* 是否启动遮挡 ,0-否,1-是 区域为704*576*/
WORD wHideAreaTopLeftX; /* 遮挡区域的x坐标 */
WORD wHideAreaTopLeftY; /* 遮挡区域的y坐标 */
WORD wHideAreaWidth; /* 遮挡区域的宽 */
WORD wHideAreaHeight; /*遮挡区域的高*/
//OSD
DWORD dwShowOsd;// 预览的图象上是否显示OSD,0-不显示,1-显示
WORD wOSDTopLeftX; /* OSD的x坐标 */
WORD wOSDTopLeftY; /* OSD的y坐标 */
BYTE byOSDType; /* OSD类型(主要是年月日格式) */
/* 0: XXXX-XX-XX 年月日 */
/* 1: XX-XX-XXXX 月日年 */
/* 2: XXXX年XX月XX日 */
/* 3: XX月XX日XXXX年 */
BYTE byDispWeek; /* 是否显示星期 */
BYTE byOSDAttrib; /* OSD属性:透明,闪烁 */
/* 1: 透明,闪烁 */
/* 2: 透明,不闪烁 */
/* 3: 闪烁,不透明 */
/* 4: 不透明,不闪烁 */
}NET_DVR_PICCFG,*LPNET_DVR_PICCFG;
//压缩参数
typedef struct{
BYTE byStreamType; //码流类型0-视频流,1-复合流
BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-2CIF, 4-4CIF
BYTE byBitrateType; //码率类型0:变码率,1:定码率
BYTE byPicQuality; //图象质量 0-最好 1-次好 2-较好 3-一般 4-较差 5-差
DWORD dwVideoBitrate; //视频码率 0-无限制 1-16K 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
// 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
//最高位(32位)置成1表示是自定义码流, 0-31位表示码流值。
DWORD dwVideoFrameRate; //帧率 0-全部; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-12; 11-16; 12-20; 13-自适应
}NET_DVR_COMPRESSION_INFO,*LPNET_DVR_COMPRESSION_INFO;
typedef struct{
DWORD dwSize;
NET_DVR_COMPRESSION_INFO struRecordPara; //录像
NET_DVR_COMPRESSION_INFO struNetPara; //网传
}NET_DVR_COMPRESSIONCFG,*LPNET_DVR_COMPRESSIONCFG;
//录像
typedef struct{
NET_DVR_SCHEDTIME struRecordTime;
BYTE byRecordType; //0:定时录像,1:移动侦测,2:报警录像,3:动测|报警,4:动测&报警, 5:命令触发, 6: 手动录像
char reservedData[3];
}NET_DVR_RECORDSCHED,*LPNET_DVR_RECORDSCHED;
typedef struct {
WORD wAllDayRecord; /* 是否全天录像 */
BYTE byRecordType; /* 录象类型 0:定时录像,1:移动侦测,2:报警录像,3:动测|报警,4:动测&报警 5:命令触发, 6: 手动录像*/
char reservedData;
}NET_DVR_RECORDDAY;
typedef struct {
DWORD dwSize;
DWORD dwRecord; /*是否录像 0-否 1-是*/
NET_DVR_RECORDDAY struRecAllDay[MAX_DAYS];
NET_DVR_RECORDSCHED struRecordSched[MAX_DAYS][MAX_TIMESEGMENT];
DWORD dwRecordTime; /* 录象时间长度 */
DWORD dwPreRecordTime; /* 预录时间 0-不预录 1-5秒 2-10秒 3-15秒 4-20秒 5-25秒 6-30秒 7-0xffffffff(尽可能预录) */
}NET_DVR_RECORD,*LPNET_DVR_RECORD;
//解码器
typedef struct{
DWORD dwSize;
DWORD dwBaudRate;//波特率(bps),0-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,9-9600,10-19200, 11-38400,12-57600,13-76800,14-115.2k;
BYTE byDataBit;// 数据有几位 0-5位,1-6位,2-7位,3-8位;
BYTE byStopBit;// 停止位 0-1位,1-2位;
BYTE byParity;// 校验 0-无校验,1-奇校验,2-偶校验;
BYTE byFlowcontrol;// 0-无,1-软流控,2-硬流控
WORD wDecoderType;//解码器类型, 0-YouLi,1-LiLin-1016,2-LiLin-820,3-Pelco-p,4-DM DynaColor,5-HD600,6-JC-4116,7-Pelco-d WX,8-Pelco-d PICO
WORD wDecoderAddress; /*解码器地址:0 - 255*/
BYTE bySetPreset[MAX_PRESET]; /* 预置点是否设置,0-没有设置,1-设置*/
BYTE bySetCruise[MAX_PRESET]; /* 巡航是否设置: 0-没有设置,1-设置 */
BYTE bySetTrack[MAX_PRESET]; /* 轨迹是否设置,0-没有设置,1-设置*/
}NET_DVR_DECODERCFG,*LPNET_DVR_DECODERCFG;
//RS232串口
typedef struct{
char sRemoteIP[16]; //远端IP地址
char sLocalIP[16]; //本地IP地址
char sLocalIPMask[16]; //本地IP地址掩码
BYTE sUsername[NAME_LEN]; /* 用户名 */
BYTE sPassword[PASSWD_LEN]; /* 密码 */
BYTE byPPPMode; //PPP模式, 0-主动,1-被动
BYTE byRedial; //是否回拨 :0-否,1-是
BYTE byRedialMode; //回拨模式,0-由拨入者指定,1-预置回拨号码
BYTE byDataEncrypt; //数据加密,0-否,1-是
DWORD dwMTU; //MTU
char sTelephoneNumber[PHONENUMBER_LEN]; //电话号码
}NET_DVR_PPPCFG,*LPNET_DVR_PPPCFG;
typedef struct{
DWORD dwSize;
DWORD dwBaudRate;//波特率(bps),0-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,9-9600,10-19200, 11-38400,12-57600,13-76800,14-115.2k;
BYTE byDataBit;// 数据有几位 0-5位,1-6位,2-7位,3-8位;
BYTE byStopBit;// 停止位 0-1位,1-2位;
BYTE byParity;// 校验 0-无校验,1-奇校验,2-偶校验;
BYTE byFlowcontrol;// 0-无,1-软流控,2-硬流控
DWORD dwWorkMode;// 工作模式,0-窄带传输(232串口用于PPP拨号),1-控制台(232串口用于参数控制),2-透明通道
NET_DVR_PPPCFG struPPPConfig;
}NET_DVR_RS232CFG,*LPNET_DVR_RS232CFG;
//报警输入
typedef struct{
DWORD dwSize;
BYTE sAlarmInName[NAME_LEN]; /* 名称 */
BYTE byAlarmType; //报警器类型,0:常开,1:常闭
BYTE byAlarmInHandle; /* 是否处理 */
NET_DVR_HANDLEEXCEPTION struAlarmHandleType; /* 处理方式 */
NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
BYTE byRelRecordChan[MAX_CHANNUM]; //报警触发的录象通道,为1表示触发该通道
BYTE byEnablePreset[MAX_CHANNUM]; /* 是否调用预置点 */
BYTE byPresetNo[MAX_CHANNUM]; /* 调用的云台预置点序号,一个报警输入可以调用多个通道的云台预置点, 0xff表示不调用预置点。*/
BYTE byEnableCruise[MAX_CHANNUM]; /* 是否调用巡航 */
BYTE byCruiseNo[MAX_CHANNUM]; /* 巡航 */
BYTE byEnablePtzTrack[MAX_CHANNUM]; /* 是否调用轨迹 */
BYTE byPTZTrack[MAX_CHANNUM]; /* 调用的云台的轨迹序号 */
}NET_DVR_ALARMINCFG,*LPNET_DVR_ALARMINCFG;
//上传报警信息
typedef struct{
DWORD dwAlarmType;/*0-信号量报警,1-硬盘满,2-信号丢失,3-移动侦测,4-硬盘未格式化*/
DWORD dwAlarmInputNumber;/*报警输入端口*/
DWORD dwAlarmOutputNumber[MAX_ALARMOUT];/*报警输入端口对应的输出端口,哪一位为1表示对应哪一个输出*/
DWORD dwAlarmRelateChannel[MAX_CHANNUM];/*报警输入端口对应的录像通道,哪一位为1表示对应哪一路录像,dwAlarmRelateChannel[0]对应第1个通道*/
DWORD dwChannel[MAX_CHANNUM];/*dwAlarmType为2或3时,表示哪个通道,dwChannel[0]位对应第0个通道*/
DWORD dwDiskNumber[MAX_DISKNUM];/*dwAlarmType为4时,表示哪个硬盘*/
}NET_DVR_ALARMINFO,*LPNET_DVR_ALARMINFO;
//DVR报警输出
typedef struct{
DWORD dwSize;
BYTE sAlarmOutName[NAME_LEN]; /* 名称 */
DWORD dwAlarmOutDelay; /* 输出保持时间(-1为无限,手动关闭) */
NET_DVR_SCHEDTIME struAlarmOutTime[MAX_DAYS][MAX_TIMESEGMENT];/* 报警输出激活时间段 */
}NET_DVR_ALARMOUTCFG,*LPNET_DVR_ALARMOUTCFG;
//DVR本地预览参数
typedef struct{
DWORD dwSize;
BYTE byPreviewNumber;//预览数目,0-1画面,1-4画面,2-9画面,3-16画面,0xff:最大画面
BYTE byEnableAudio;//是否声音预览,0-不预览,1-预览
WORD wSwitchTime;//切换时间,0-不切换,1-5s,2-10s,3-20s,4-60s,5-120s,6-300s
BYTE bySwitchSeq[MAX_WINDOW];//切换顺序,如果lSwitchSeq[i]为 0xff表示不用
}NET_DVR_PREVIEWCFG,*LPNET_DVR_PREVIEWCFG;
//DVR视频输出
typedef struct {
WORD wResolution; /* 分辨率 */
WORD wFreq; /* 刷新频率 */
DWORD dwBrightness; /* 亮度 */
}NET_DVR_VGAPARA;
typedef struct{
WORD wDisplayLogo; /* 显示视频通道号 */
WORD wDisplayOsd; /* 显示时间 */
}NET_DVR_MATRIXPARA;
typedef struct{
BYTE byVideoFormat; /* 输出制式,0-PAL,1-N */
BYTE byMenuAlphaValue; /* 菜单与背景图象对比度 */
WORD wScreenSaveTime; /* 屏幕保护时间 */
WORD wVOffset; /* 视频输出偏移 */
WORD wBrightness; /* 视频输出亮度 */
BYTE byStartMode; /* 启动后视频输出模式(0:菜单,1:预览)*/
char reservedData;
}NET_DVR_VOOUT;
typedef struct {
DWORD dwSize;
NET_DVR_VOOUT struVOOut[MAX_VIDEOOUT];
NET_DVR_VGAPARA struVGAPara[MAX_VGA]; /* VGA参数 */
NET_DVR_MATRIXPARA struMatrixPara; /* MATRIX参数 */
}NET_DVR_VIDEOOUT,*LPNET_DVR_VIDEOOUT;
//DVR用户参数
typedef struct{
BYTE sUserName[NAME_LEN]; /* 用户名 */
BYTE sPassword[PASSWD_LEN]; /* 密码 */
DWORD dwLocalRight[MAX_RIGHT]; /* 权限 */
/*数组0: 本地控制云台*/
/*数组1: 本地手动录象*/
/*数组2: 本地回放*/
/*数组3: 本地设置参数*/
/*数组4: 本地查看状态、日志*/
/*数组5: 本地高级操作(升级,格式化,重启,关机)*/
DWORD dwRemoteRight[MAX_RIGHT]; /* 权限 */
/*数组0: 远程控制云台*/
/*数组1: 远程手动录象*/
/*数组2: 远程回放*/
/*数组3: 远程设置参数*/
/*数组4: 远程查看状态、日志*/
/*数组5: 远程高级操作(升级,格式化,重启,关机)*/
/*数组6: 远程发起语音对讲*/
/*数组7: 远程预览*/
/*数组8: 远程请求报警上传、报警输出*/
/*数组9: 远程控制,本地输出*/
/*数组10: 远程控制串口*/
char sUserIP[16]; /* 用户IP地址(为0时表示允许任何地址) */
BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
}NET_DVR_USER_INFO,*LPNET_DVR_USER_INFO;
typedef struct{
DWORD dwSize;
NET_DVR_USER_INFO struUser[MAX_USERNUM];
}NET_DVR_USER,*LPNET_DVR_USER;
//DVR异常参数
typedef struct{
DWORD dwSize;
NET_DVR_HANDLEEXCEPTION struExceptionHandleType[MAX_EXCEPTIONNUM];
/*数组0-盘满,1- 硬盘出错,2-信号丢失,3-网线断,4-MODEM 掉线,5-非法访问,6-局域网内IP 地址冲突*/
}NET_DVR_EXCEPTION,*LPNET_DVR_EXCEPTION;
typedef struct
{
char sFileName[100];//文件名
NET_DVR_TIME struStartTime;//文件的开始时间
NET_DVR_TIME struStopTime;//文件的结束时间
DWORD dwFileSize;//文件的大小
}NET_DVR_FIND_DATA,*LPNET_DVR_FIND_DATA;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -