📄 dhnetsdk.h
字号:
#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 + -