⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dhnetsdk.h

📁 大华DVR的客户端开发包和Demo,从网上是下载不到的。
💻 H
📖 第 1 页 / 共 5 页
字号:
#define DH_CAPTURE_COMP_MJPG		0x00000020
#define DH_CAPTURE_COMP_FCC_MPEG4	0x00000040
#define DH_CAPTURE_COMP_H264		0x00000080

/* 定时录象类型-定时、动态检测、报警 */
enum REC_TYPE
{
	DH_REC_TYPE_TIM = 0,
	DH_REC_TYPE_MTD,
	DH_REC_TYPE_ALM,
	DH_REC_TYPE_NUM,
};


/************************************************************************
 *	系统信息
************************************************************************/
/*                                                                      */
/*版本信息:高16位表示主版本号,低16位表示次版本号
 *关于时间的数据组织是:yyyymmdd */
typedef struct 
{
	DWORD	dwSoftwareVersion;
	DWORD	dwSoftwareBuildDate;
	DWORD	dwDspSoftwareVersion;
	DWORD	dwDspSoftwareBuildDate;
	DWORD	dwPanelVersion;
	DWORD	dwPanelSoftwareBuildDate;
	DWORD	dwHardwareVersion;
	DWORD	dwHardwareDate;
	DWORD	dwWebVersion;
	DWORD	dwWebBuildDate;
} DH_VERSION_INFO, *LPDH_VERSION_INFO;

/* DSP能力描述 */
typedef struct 
{
	DWORD	dwVideoStandardMask;	//视频制式掩码,按位表示设备能够支持的视频制式
	DWORD	dwImageSizeMask;		//分辨率掩码,按位表示设备能够支持的分辨率设置
	DWORD	dwEncodeModeMask;		//编码模式掩码,按位表示设备能够支持的编码模式设置
} DH_DSP_ENCODECAP, *LPDH_DSP_ENCODECAP;

/* 设备信息配置结构 */
typedef struct 
{
	DWORD dwSize;
	/*下面是设备的只读部分*/
	DH_VERSION_INFO			stVersion;
	BYTE	szDevSerialNo[DH_DEV_SERIALNO_LEN];	//序列号
	BYTE	byDevType;							//设备类型,见枚举NET_DEVICE_TYPE
	BYTE	byVideoCaptureNum;					//视频口数量
	BYTE	byAudioCaptureNum;					//音频口数量
	BYTE	byTalkInChanNum;					//NSP
	BYTE	byTalkOutChanNum;					//NSP
	BYTE	byDecodeChanNum;					//NSP
	BYTE	byAlarmInNum;						//报警输入口数
	BYTE	byAlarmOutNum;						//报警输出口数
	BYTE	byNetIONum;							//网络口数
	BYTE	byUsbIONum;							//USB口数量
	BYTE	byIdeIONum;							//IDE数量
	BYTE	byComIONum;							//串口数量
	BYTE	byLPTIONum;							//并口数量
	BYTE	byVgaIONum;							//NSP
	BYTE	byIdeControlNum;					//NSP
	BYTE	byIdeControlType;					//NSP
	BYTE	byCapability;						//NSP,扩展描述
	BYTE	byReserved[3];						//保留字
	DH_DSP_ENCODECAP		stDspEncodeCap;		//DSP能力描述

	/*下面是设备的可写部分*/
	BYTE	byDevNo;							//设备编号,用于遥控
	BYTE	byOverWrite;						//硬盘满处理方式(覆盖、停止)
	BYTE	byRecordLen;						//录象打包长度
	BYTE	byStartChanNo;						//NSP
	BYTE	byVideoStandard;					//视频制式
	BYTE	byDateFormat;						//日期格式
	BYTE	byDateSprtr;						//日期分割符(0-".", 1-"-", 2-"/")
	BYTE	byTimeFmt;							//时间格式 (0-24小时,1-12小时)
} DHDEV_SYSTEM_ATTR_CFG, *LPDHDEV_SYSTEM_ATTR_CFG;


/************************************************************************
 *	图像通道
************************************************************************/
/*																		*/
/* 时间段结构 */															    
typedef struct 
{
	BYTE	byBeginHour;
	BYTE	byBeginMin;
	BYTE	byBeginSec;
	BYTE	byEndHour;
	BYTE	byEndMin;
	BYTE	byEndSec;
	BYTE	byReserved[2];
} DH_TSECT, *LPDH_TSECT;


/* 区域:各边距按整长8192的比例 */
typedef struct {
   long		left;
   long		top;
   long		right;
   long		bottom;
} DH_RECT,*LPDH_RECT;

/* OSD属性结构 */
typedef struct  tagENCODE_WIDGET
{
	DWORD		rgbaFrontground;		/*!< 物件的前景RGB,和透明度 */
	DWORD		rgbaBackground;			/*!< 物件的后景RGB,和透明度*/
	DH_RECT		rcRect;					/*!< 位置 */
	BYTE		bShow;					/*!< 物件显示 */
	BYTE		byReserved[3];
} DH_ENCODE_WIDGET, *LPDH_ENCODE_WIDGET;

/* 通道音视频属性 */
typedef struct 
{
	//视频参数
	BYTE	byVideoEnable;			/*! 视频使能:1-打开,0-关闭 */
	BYTE	byBitRateControl;		/*! 码流控制,参照常量定义*/
	BYTE	byFramesPerSec;			/*! 帧率*/
	BYTE	byEncodeMode;			/*!	编码模式,参照常量定义*/
	BYTE	byImageSize;			/*! 分辨率参,参照常量定义*/
	BYTE	byImageQlty;			/*! 档次1-6*/

	//音频参数
	BYTE	byAudioEnable;			/*! 音频使能:1-打开,0-关闭 */
	BYTE	wFormatTag;				//编码类型,如PCM
	WORD	nChannels;				//声道数
	WORD	wBitsPerSample;			//采样深度			
	DWORD	nSamplesPerSec;			//采样率
	
} DH_VIDEOENC_OPT, *LPDH_VIDEOENC_OPT;

/* 画面颜色属性 */
typedef struct 
{
	DH_TSECT	stSect;
	BYTE		byBrightness;			/*! 亮度	0-100*/
	BYTE		byContrast;				/*! 对比度	0-100*/
	BYTE		bySaturation;			/*!	饱和度	0-100*/
	BYTE		byHue;					/*!	色度	0-100*/
	BYTE		byGain;					/*! 增益	0-100*/
	BYTE		byReserved[3];
} DH_COLOR_CFG, *LPDH_COLOR_CFG;

/* 图像通道属性结构体 */
typedef struct 
{
	DWORD				dwSize;
	char				szChannelName[DH_CHAN_NAME_LEN];
	DH_VIDEOENC_OPT		stMainVideoEncOpt[DH_REC_TYPE_NUM];
	DH_VIDEOENC_OPT		stAssiVideoEncOpt[DH_N_ENCODE_AUX];		
	DH_COLOR_CFG		stColorCfg[DH_N_COL_TSECT];
	DH_ENCODE_WIDGET	stTimeOSD;
	DH_ENCODE_WIDGET	stChannelOSD;
	DH_ENCODE_WIDGET	stBlindCover[DH_N_COVERS];
	BYTE				byBlindEnable;			/*! 区域遮盖开关 0x00不使能遮盖,0x01仅遮盖预览,0x10仅遮盖录像,0x11都遮盖	*/
	BYTE				byReserved[3];
} DHDEV_CHANNEL_CFG, *LPDHDEV_CHANNEL_CFG;


/************************************************************************
 *	预览图像参数
************************************************************************/
/*																		*/
/* 预览图像参数 */
typedef struct 
{
	DWORD dwSize;

	DH_VIDEOENC_OPT	stPreView;

	DH_COLOR_CFG  stColorCfg[DH_N_COL_TSECT];

}DHDEV_PREVIEW_CFG;


/************************************************************************
* 语音对讲音频属性结构体-未实现,待扩展 *
************************************************************************/

typedef struct 
{
	//音频输入参数
	BYTE	byInFormatTag;					//编码类型,如PCM
	BYTE	byInChannels;					//声道数
	WORD	wInBitsPerSample;				//采样深度					
	DWORD	dwInSamplesPerSec;				//采样率

	//音频输出参数
	BYTE	byOutFormatTag;					//编码类型,如PCM
	BYTE	byOutChannels;					//声道数
	WORD	wOutBitsPerSample;				//采样深度				
	DWORD	dwOutSamplesPerSec;				//采样率
} DHDEV_TALK_CFG, *LPDHDEV_TALK_CFG;

/************************************************************************
 *	定时录象
************************************************************************/
/*																	    */
typedef struct 
{
	DWORD		dwSize;
	DH_TSECT	stSect[DH_N_WEEKS][DH_N_REC_TSECT];
	BYTE		byPreRecordLen;					/*! 预录时间,单位是s,0表示不预录*/
	BYTE		byRedundancyEn;					/*! 录像冗余开关*/
	BYTE		byReserved[2];
} DHDEV_RECORD_CFG, *LPDH_RECORD_CFG;

/************************************************************************
 *	报警配置
************************************************************************/
/*                                                                      */
/******************************************************************************
 ** 消息触发配置
 **
 ** 当设备产生消息,譬如产生一个输入报警,或者视频丢失时,需要做相应的处理.
 ** 此处定义如何处理一个消息
 *****************************************************************************/
#define DH_ALARM_UPLOAD		0x00000001
#define DH_ALARM_RECORD		0x00000002
#define DH_ALARM_PTZ		0x00000004
#define DH_ALARM_MAIL		0x00000008
#define DH_ALARM_TOUR		0x00000010
#define DH_ALARM_TIP		0x00000020
#define DH_ALARM_OUT		0x00000040
#define DH_ALARM_FTP_UL		0x00000080

#define DH_MOTION_ROW		12
#define DH_MOTION_COL		16	

typedef struct 
{
	/* 消息处理方式,可以同时多种处理方式,包括
	 * 0x00000001 - 网络:上传管理服务器
	 * 0x00000002 - 录像:触发
	 * 0x00000004 - 云台联动
	 * 0x00000008 - 发送邮件
	 * 0x00000010 - 设备本地报警轮巡
	 * 0x00000020 - 设备提示使能
	 * 0x00000040 - 设备报警输出使能
	 * 0x00000080 - Ftp上传使能*/

	/*当前报警所支持的处理方式*/
	DWORD		dwActionMask;

	/* 触发动作,具体动作所需要的参数在各自的配置中体现,
	如报警录像长度,设置为10秒,可以在报警配置中设置*/
	DWORD		dwActionFlag;

	/* 报警(录象)持续时间 */
	DWORD		dwDuration;			
	
	/* 报警触发的输出通道,报警触发的输出,为 1 表示触发该输出  */ 
	BYTE		byRelAlarmOut[DH_MAX_ALARMOUT_NUM];
	/* 报警输出时间段,其中wEvent是“提示”和“报警输出”的使能掩码。 */
	//DH_TSECT	stAlarmOutSect[DH_N_ALARM_TSECT];

	/*联动录象*/
	BYTE		byRecordChannel[DH_MAX_VIDEO_IN_NUM];		/* 报警触发的录象通道,为1表示触发该通道 */
	DWORD		dwPreRecLen;								/*预录时间,单位是秒*/
	
	/*  云台联动动作:
	0.不联动, 1.转到预置点, 2.巡航, 3.轨迹, 4.线扫  */ 
	BYTE		byPtzType[DH_MAX_VIDEO_IN_NUM];	

	/* 调用的云台预置点序号/巡航组号/轨迹序号/线扫序号,各通道可不同设置 */
	BYTE		byPtzNo[DH_MAX_VIDEO_IN_NUM];	
	
} DH_MSG_HANDLE;

/* 外部报警 */
typedef struct
{ 	
	BYTE		byAlarmType;						/* 报警器类型,0:常闭,1:常开  */
	BYTE		byAlarmEn;							/*报警使能*/
	BYTE		byReserved[2];						
	DH_TSECT	stSect[DH_N_WEEKS][DH_N_REC_TSECT];
	DH_MSG_HANDLE	struHandle;	/* 处理方式  */
} DH_ALARMIN_CFG,*LPDHDEV_ALARMIN_CFG; 

/* 动态检测报警 */
typedef struct 
{
	BYTE			byMotionEn;							/* 动态检测报警使能*/
	BYTE			byReserved;
	WORD			wSenseLevel;				/*灵敏度*/
	BYTE			byDetected[DH_MOTION_ROW][DH_MOTION_COL];	/*检测区域,共12*16块区域*/
	DH_TSECT		stSect[DH_N_WEEKS][DH_N_REC_TSECT];
	DH_MSG_HANDLE	struHandle;	/*处理方式*/
}DH_MOTION_DETECT_CFG;

/* 视

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -