dhnetsdk.h
资源名称:ActiveX.rar [点击查看]
上传用户:sy_eblight
上传日期:2020-11-03
资源大小:267k
文件大小:145k
源码类别:
Static控件
开发平台:
Visual C++
- //-------------------------------录象配置---------------------------------
- // 定时录象
- typedef struct
- {
- DWORD dwSize;
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
- BYTE byPreRecordLen; // 预录时间,单位是s,0表示不预录
- BYTE byRedundancyEn; // 录像冗余开关
- BYTE byRecordType; // 录像码流类型:0-主码流 1-辅码流1 2-辅码流2 3-辅码流3
- BYTE byReserved;
- } DHDEV_RECORD_CFG, *LPDH_RECORD_CFG;
- // NTP配置
- typedef struct
- {
- BOOL bEnable; // 是否启用
- int nHostPort; // NTP服务器默认端口为123
- char szHostIp[32]; // 主机IP
- char szDomainName[128]; // 域名
- int nType; // 不可设置,0:表示IP,1:表示域名,2:表示IP和域名
- int nUpdateInterval; // 更新时间(分钟)
- int nTimeZone; // 见DH_TIME_ZONE_TYPE
- char reserved[128];
- } DHDEV_NTP_CFG;
- // FTP上传配置
- typedef struct
- {
- struct
- {
- DH_TSECT struSect; // 该时间段内的“使能”无效,可忽略
- BOOL bMdEn; // 上传动态检测录象
- BOOL bAlarmEn; // 上传外部报警录象
- BOOL bTimerEn; // 上传普通定时录像
- DWORD dwRev[4];
- } struPeriod[DH_TIME_SECTION];
- } DH_FTP_UPLOAD_CFG;
- typedef struct
- {
- DWORD dwSize;
- BOOL bEnable; // 是否启用
- char szHostIp[DH_MAX_IPADDR_LEN]; // 主机IP
- WORD wHostPort; // 主机端口
- char szDirName[DH_FTP_MAX_PATH]; // FTP目录路径
- char szUserName[DH_FTP_USERNAME_LEN]; // 用户名
- char szPassword[DH_FTP_PASSWORD_LEN]; // 密码
- int iFileLen; // 文件长度
- int iInterval; // 相邻文件时间间隔
- DH_FTP_UPLOAD_CFG struUploadCfg[DH_MAX_CHANNUM][DH_N_WEEKS];
- char protocol; // 0-FTP 1-SMB
- char NASVer; // 网络存储服务器版本0=老的FTP(界面上显示时间段),1=NAS存储(界面上屏蔽时间段)
- DWORD dwFunctionMask; // 功能能力掩码,按位表示,低16位(网络存储)依次表示FTP,SMB,NFS,高16位(本地存储)依次为DISK,U
- BYTE reserved[124];
- } DHDEV_FTP_PROTO_CFG;
- //-------------------------------网络配置---------------------------------
- // 以太网配置
- typedef struct
- {
- char sDevIPAddr[DH_MAX_IPADDR_LEN]; // DVR IP 地址
- char sDevIPMask[DH_MAX_IPADDR_LEN]; // DVR IP 地址掩码
- char sGatewayIP[DH_MAX_IPADDR_LEN]; // 网关地址
- /* 10M/100M 自适应,索引
- * 1-10MBase - T
- * 2-10MBase-T 全双工
- * 3-100MBase - TX
- * 4-100M 全双工
- * 5-10M/100M 自适应
- */
- // 为了扩展将DWORD拆成四个
- BYTE dwNetInterface; // NSP
- BYTE bTranMedia; // 0:有线,1:无线
- BYTE bValid; // 按位表示,第一位:1:有效 0:无效;第二位:0:DHCP关闭 1:DHCP使能;第三位:0:不支持DHCP 1:支持DHCP
- BYTE bDefaultEth; // 是否作为默认的网卡 1:默认 0:非默认
- char byMACAddr[DH_MACADDR_LEN]; // MAC地址,只读
- } DH_ETHERNET;
- // 远程主机配置
- typedef struct
- {
- BYTE byEnable; // 连接使能
- BYTE byReserved;
- WORD wHostPort; // 远程主机 端口
- char sHostIPAddr[DH_MAX_IPADDR_LEN]; // 远程主机 IP 地址
- char sHostUser[DH_MAX_HOST_NAMELEN]; // 远程主机 用户名
- char sHostPassword[DH_MAX_HOST_PSWLEN]; // 远程主机 密码
- } DH_REMOTE_HOST;
- // 邮件配置
- typedef struct
- {
- char sMailIPAddr[DH_MAX_IPADDR_LEN]; // 邮件服务器IP地址
- WORD wMailPort; // 邮件服务器端口
- WORD wReserved; // 保留
- char sSenderAddr[DH_MAX_MAIL_ADDR_LEN]; // 发送地址
- char sUserName[DH_MAX_NAME_LEN]; // 用户名
- char sUserPsw[DH_MAX_NAME_LEN]; // 用户密码
- char sDestAddr[DH_MAX_MAIL_ADDR_LEN]; // 目的地址
- char sCcAddr[DH_MAX_MAIL_ADDR_LEN]; // 抄送地址
- char sBccAddr[DH_MAX_MAIL_ADDR_LEN]; // 暗抄地址
- char sSubject[DH_MAX_MAIL_SUBJECT_LEN]; // 标题
- } DH_MAIL_CFG;
- // 网络配置结构体
- typedef struct
- {
- DWORD dwSize;
- char sDevName[DH_MAX_NAME_LEN]; // 设备主机名
- WORD wTcpMaxConnectNum; // TCP最大连接数
- WORD wTcpPort; // TCP帧听端口
- WORD wUdpPort; // UDP侦听端口
- WORD wHttpPort; // HTTP端口号
- WORD wHttpsPort; // HTTPS端口号
- WORD wSslPort; // SSL端口号
- DH_ETHERNET stEtherNet[DH_MAX_ETHERNET_NUM]; // 以太网口
- DH_REMOTE_HOST struAlarmHost; // 报警服务器
- DH_REMOTE_HOST struLogHost; // 日志服务器
- DH_REMOTE_HOST struSmtpHost; // SMTP服务器
- DH_REMOTE_HOST struMultiCast; // 多播组
- DH_REMOTE_HOST struNfs; // NFS服务器
- DH_REMOTE_HOST struPppoe; // PPPoE服务器
- char sPppoeIP[DH_MAX_IPADDR_LEN]; // PPPoE注册返回的IP
- DH_REMOTE_HOST struDdns; // DDNS服务器
- char sDdnsHostName[DH_MAX_HOST_NAMELEN]; // DDNS主机名
- DH_REMOTE_HOST struDns; // DNS服务器
- DH_MAIL_CFG struMail; // 邮件配置
- } DHDEV_NET_CFG;
- // 多ddns配置结构体
- typedef struct
- {
- DWORD dwId; // ddns服务器id号
- BOOL bEnable; // 使能,同一时间只能有一个ddns服务器处于使能状态
- char szServerType[DH_MAX_SERVER_TYPE_LEN]; // 服务器类型,希网..
- char szServerIp[DH_MAX_DOMAIN_NAME_LEN]; // 服务器ip或者域名
- DWORD dwServerPort; // 服务器端口
- char szDomainName[DH_MAX_DOMAIN_NAME_LEN]; // dvr域名,如jeckean.3322.org
- char szUserName[DH_MAX_HOST_NAMELEN]; // 用户名
- char szUserPsw[DH_MAX_HOST_PSWLEN]; // 密码
- char szAlias[DH_MAX_DDNS_ALIAS_LEN]; // 服务器别名,如"dahua inter ddns"
- DWORD dwAlivePeriod; // DDNS 保活时间
- char reserved[256];
- } DH_DDNS_SERVER_CFG;
- typedef struct
- {
- DWORD dwSize;
- DWORD dwDdnsServerNum;
- DH_DDNS_SERVER_CFG struDdnsServer[DH_MAX_DDNS_NUM];
- } DHDEV_MULTI_DDNS_CFG;
- // 邮件配置结构体
- typedef struct
- {
- char sMailIPAddr[DH_MAX_DOMAIN_NAME_LEN]; // 邮件服务器地址(IP或者域名)
- char sSubMailIPAddr[DH_MAX_DOMAIN_NAME_LEN];
- WORD wMailPort; // 邮件服务器端口
- WORD wSubMailPort;
- WORD wReserved; // 保留
- char sSenderAddr[DH_MAX_MAIL_ADDR_LEN]; // 发送地址
- char sUserName[DH_MAX_MAIL_NAME_LEN]; // 用户名
- char sUserPsw[DH_MAX_MAIL_NAME_LEN]; // 用户密码
- char sDestAddr[DH_MAX_MAIL_ADDR_LEN]; // 目的地址
- char sCcAddr[DH_MAX_MAIL_ADDR_LEN]; // 抄送地址
- char sBccAddr[DH_MAX_MAIL_ADDR_LEN]; // 暗抄地址
- char sSubject[DH_MAX_MAIL_SUBJECT_LEN]; // 标题
- BYTE bEnable; // 使能0:false, 1:true
- char reserved[159];
- } DHDEV_MAIL_CFG;
- // DNS服务器配置
- typedef struct
- {
- char szPrimaryIp[DH_MAX_IPADDR_LEN];
- char szSecondaryIp[DH_MAX_IPADDR_LEN];
- char reserved[256];
- } DHDEV_DNS_CFG;
- // 录象下载策略配置
- typedef struct
- {
- DWORD dwSize;
- BOOL bEnable; // TRUE:高速下载,FALSE:普通下载
- }DHDEV_DOWNLOAD_STRATEGY_CFG;
- // 网络传输策略配置
- typedef struct
- {
- DWORD dwSize;
- BOOL bEnable;
- int iStrategy; // 0:画质优先,1:流畅性优先,2:自动
- }DHDEV_TRANSFER_STRATEGY_CFG;
- // 设置登入时的相关参数
- typedef struct
- {
- int nWaittime; // 等待超时时间(毫秒为单位),为0默认5000ms
- int nConnectTime; // 连接超时时间(毫秒为单位),为0默认1500ms
- int nConnectTryNum; // 连接尝试次数,为0默认1次
- int nSubConnectSpaceTime; // 子连接之间的等待时间(毫秒为单位),为0默认10ms
- int nGetDevInfoTime; // 获取设备信息超时时间,为0默认500ms.
- int nConnectBufSize; // 每个连接接收数据缓冲大小(字节为单位),为0默认250*1024
- BYTE bReserved[24]; // 保留字段
- } NET_PARAM;
- // 对应CLIENT_SearchDevices接口
- typedef struct
- {
- char szIP[DH_MAX_IPADDR_LEN]; // IP
- int nPort; // 端口
- char szSubmask[DH_MAX_IPADDR_LEN]; // 子网掩码
- char szGateway[DH_MAX_IPADDR_LEN]; // 网关
- char szMac[DH_MACADDR_LEN]; // MAC地址
- char szDeviceType[DH_DEV_TYPE_LEN]; // 设备类型
- BYTE bReserved[32]; // 保留字节
- } DEVICE_NET_INFO;
- //-------------------------------报警属性---------------------------------
- // 云台联动
- typedef struct
- {
- int iType;
- int iValue;
- } DH_PTZ_LINK, *LPDH_PTZ_LINK;
- // 报警联动结构体
- typedef struct
- {
- /* 消息处理方式,可以同时多种处理方式,包括
- * 0x00000001 - 报警上传
- * 0x00000002 - 联动录象
- * 0x00000004 - 云台联动
- * 0x00000008 - 发送邮件
- * 0x00000010 - 本地轮巡
- * 0x00000020 - 本地提示
- * 0x00000040 - 报警输出
- * 0x00000080 - Ftp上传
- * 0x00000100 - 蜂鸣
- * 0x00000200 - 语音提示
- * 0x00000400 - 抓图
- */
- /* 当前报警所支持的处理方式,按位掩码表示 */
- DWORD dwActionMask;
- /* 触发动作,按位掩码表示,具体动作所需要的参数在各自的配置中体现 */
- DWORD dwActionFlag;
- /* 报警触发的输出通道,报警触发的输出,为1表示触发该输出 */
- BYTE byRelAlarmOut[DH_MAX_ALARMOUT_NUM];
- DWORD dwDuration; /* 报警持续时间 */
- /* 联动录象 */
- BYTE byRecordChannel[DH_MAX_VIDEO_IN_NUM]; /* 报警触发的录象通道,为1表示触发该通道 */
- DWORD dwRecLatch; /* 录象持续时间 */
- /* 抓图通道 */
- BYTE bySnap[DH_MAX_VIDEO_IN_NUM];
- /* 轮巡通道 */
- BYTE byTour[DH_MAX_VIDEO_IN_NUM];
- /* 云台联动 */
- DH_PTZ_LINK struPtzLink[DH_MAX_VIDEO_IN_NUM];
- DWORD dwEventLatch; /* 联动开始延时时间,s为单位,范围是0~15,默认值是0 */
- /* 报警触发的无线输出通道,报警触发的输出,为1表示触发该输出 */
- BYTE byRelWIAlarmOut[DH_MAX_ALARMOUT_NUM];
- BYTE bMessageToNet;
- BYTE bMMSEn; /*短信报警使能*/
- BYTE bySnapshotTimes; /*短信发送抓图张数 */
- BYTE byReserved[109];
- } DH_MSG_HANDLE;
- // 外部报警
- typedef struct
- {
- BYTE byAlarmType; // 报警器类型,0:常闭,1:常开
- BYTE byAlarmEn; // 报警使能
- BYTE byReserved[2];
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
- DH_MSG_HANDLE struHandle; // 处理方式
- } DH_ALARMIN_CFG, *LPDHDEV_ALARMIN_CFG;
- // 动态检测报警
- typedef struct
- {
- BYTE byMotionEn; // 动态检测报警使能
- BYTE byReserved;
- WORD wSenseLevel; // 灵敏度
- WORD wMotionRow; // 动态检测区域的行数
- WORD wMotionCol; // 动态检测区域的列数
- BYTE byDetected[DH_MOTION_ROW][DH_MOTION_COL]; // 检测区域,最多32*32块区域
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
- DH_MSG_HANDLE struHandle; //处理方式
- } DH_MOTION_DETECT_CFG;
- // 视频丢失报警
- typedef struct
- {
- BYTE byAlarmEn; // 视频丢失报警使能
- BYTE byReserved[3];
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
- DH_MSG_HANDLE struHandle; // 处理方式
- } DH_VIDEO_LOST_CFG;
- // 图像遮挡报警
- typedef struct
- {
- BYTE byBlindEnable; // 使能
- BYTE byBlindLevel; // 灵敏度1-6
- BYTE byReserved[2];
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
- DH_MSG_HANDLE struHandle; // 处理方式
- } DH_BLIND_CFG;
- // 硬盘消息(内部报警)
- typedef struct
- {
- BYTE byNoDiskEn; // 无硬盘时报警
- BYTE byReserved_1[3];
- DH_TSECT stNDSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
- DH_MSG_HANDLE struNDHandle; // 处理方式
- BYTE byLowCapEn; // 硬盘低容量时报警
- BYTE byLowerLimit; // 容量阀值,0-99
- BYTE byReserved_2[2];
- DH_TSECT stLCSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
- DH_MSG_HANDLE struLCHandle; // 处理方式
- BYTE byDiskErrEn; // 硬盘故障报警
- BYTE bDiskNum;
- BYTE byReserved_3[2];
- DH_TSECT stEDSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
- DH_MSG_HANDLE struEDHandle; // 处理方式
- } DH_DISK_ALARM_CFG;
- typedef struct
- {
- BYTE byEnable;
- BYTE byReserved[3];
- DH_MSG_HANDLE struHandle;
- } DH_NETBROKEN_ALARM_CFG;
- // 报警布防
- typedef struct
- {
- DWORD dwSize;
- DH_ALARMIN_CFG struLocalAlmIn[DH_MAX_ALARM_IN_NUM];
- DH_ALARMIN_CFG struNetAlmIn[DH_MAX_ALARM_IN_NUM];
- DH_MOTION_DETECT_CFG struMotion[DH_MAX_VIDEO_IN_NUM];
- DH_VIDEO_LOST_CFG struVideoLost[DH_MAX_VIDEO_IN_NUM];
- DH_BLIND_CFG struBlind[DH_MAX_VIDEO_IN_NUM];
- DH_DISK_ALARM_CFG struDiskAlarm;
- DH_NETBROKEN_ALARM_CFG struNetBrokenAlarm;
- } DHDEV_ALARM_SCHEDULE;
- #define DECODER_OUT_SLOTS_MAX_NUM 16
- #define DECODER_IN_SLOTS_MAX_NUM 16
- // 报警解码器配置
- typedef struct
- {
- DWORD dwAddr; // 报警解码器地址
- BOOL bEnable; // 报警解码器使能
- DWORD dwOutSlots[DECODER_OUT_SLOTS_MAX_NUM]; // 现在只支持8个.
- int nOutSlotNum; // dwOutSlots数组有效元素个数.
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
- DH_MSG_HANDLE struHandle[DECODER_IN_SLOTS_MAX_NUM]; // 现在只支持8个.
- int nMsgHandleNum; // stuHandle数组有效元素个数.
- BYTE bReserved[120];
- } DH_ALARMDEC_CFG;
- // 报警上传的配置
- typedef struct
- {
- BYTE byEnable; // 上传使能
- BYTE bReserverd; // 保留
- WORD wHostPort; // 报警中心侦听端口
- char sHostIPAddr[DH_MAX_IPADDR_LEN]; // 报警中心IP
- int nByTimeEn; // 定时上传使能,可以用来向中心上传IP或域名等
- int nUploadDay; /* 设置上传日期
- "Never = 0", "Everyday = 1", "Sunday = 2",
- "Monday = 3", Tuesday = 4", "Wednesday = 5",
- "Thursday = 6", "Friday = 7", "Saturday = 8"*/
- int nUploadHour; // 设置上传时间 ,[0~23]点
- DWORD dwReserved[300]; // 保留待扩展。
- } ALARMCENTER_UP_CFG;
- // 全景切换报警配置
- typedef struct __DH_PANORAMA_SWITCH_CFG
- {
- BOOL bEnable; // 使能
- int nReserved[5]; // 保留
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
- DH_MSG_HANDLE struHandle; // 报警联动
- } DH_PANORAMA_SWITCH_CFG;
- typedef struct __ALARM_PANORAMA_SWITCH_CFG
- {
- int nAlarmChnNum; // 报警通道个数
- DH_PANORAMA_SWITCH_CFG stuPanoramaSwitch[DH_MAX_VIDEO_IN_NUM];
- } ALARM_PANORAMA_SWITCH_CFG;
- // 失去焦点报警配置
- typedef struct __DH_LOST_FOCUS_CFG
- {
- BOOL bEnable; // 使能
- int nReserved[5]; // 保留
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
- DH_MSG_HANDLE struHandle; // 报警联动
- } DH_LOST_FOCUS_CFG;
- typedef struct __ALARM_LOST_FOCUS_CFG
- {
- int nAlarmChnNum; // 报警通道个数
- DH_LOST_FOCUS_CFG stuLostFocus[DH_MAX_VIDEO_IN_NUM];
- } ALARM_LOST_FOCUS_CFG;
- //------------------------------多区域遮挡--------------------------------
- // 遮挡信息
- typedef struct __VIDEO_COVER_ATTR
- {
- DH_RECT rcBlock; // 覆盖的区域坐标
- int nColor; // 覆盖的颜色
- BYTE bBlockType; // 覆盖方式;0:黑块,1:马赛克
- BYTE bEncode; // 编码级遮挡;1:生效,0:不生效
- BYTE bPriview; // 预览遮挡; 1:生效,0:不生效
- char reserved[29]; // 保留
- } VIDEO_COVER_ATTR;
- // 多区域遮挡配置
- typedef struct __DHDEV_VIDEOCOVER_CFG
- {
- DWORD dwSize;
- char szChannelName[DH_CHAN_NAME_LEN]; // 只读
- BYTE bTotalBlocks; // 支持的遮挡块数
- BYTE bCoverCount; // 已设置的遮挡块数
- VIDEO_COVER_ATTR CoverBlock[DH_MAX_VIDEO_COVER_NUM]; // 覆盖的区域
- char reserved[30]; // 保留
- }DHDEV_VIDEOCOVER_CFG;
- ////////////////////////////////IPC产品支持////////////////////////////////
- // 配置无线网络信息
- typedef struct
- {
- int nEnable; // 无线使能
- char szSSID[36]; // SSID
- int nLinkMode; // 连接模式;0:auto,1:adhoc,2:Infrastructure
- int nEncryption; // 加密;0:off,2:WEP64bit,3:WEP128bit
- int nKeyType; // 0:Hex,1:ASCII
- int nKeyID; // 序号
- char szKeys[4][32]; // 四组密码
- int nKeyFlag;
- char reserved[12];
- } DHDEV_WLAN_INFO;
- // 选择使用某个无线设备
- typedef struct
- {
- char szSSID[36];
- int nLinkMode; // 连接模式;0:adhoc,1:Infrastructure
- int nEncryption; // 加密;0:off,2:WEP64bit,3:WEP128bit
- char reserved[48];
- } DHDEV_WLAN_DEVICE;
- // 搜索到的无线设备列表
- typedef struct
- {
- DWORD dwSize;
- BYTE bWlanDevCount; // 搜索到的无线设备个数
- DHDEV_WLAN_DEVICE lstWlanDev[DH_MAX_WLANDEVICE_NUM];
- char reserved[255];
- } DHDEV_WLAN_DEVICE_LIST;
- // 主动注册参数配置
- typedef struct
- {
- char szServerIp[32]; // 注册服务器IP
- int nServerPort; // 端口号
- char reserved[64];
- } DHDEV_SERVER_INFO;
- typedef struct
- {
- DWORD dwSize;
- BYTE bServerNum; // 支持的最大ip数
- DHDEV_SERVER_INFO lstServer[DH_MAX_REGISTER_SERVER_NUM];
- BYTE bEnable; // 使能
- char szDeviceID[32]; // 设备id
- char reserved[94];
- } DHDEV_REGISTER_SERVER;
- // 摄像头属性
- typedef struct __DHDEV_CAMERA_INFO
- {
- BYTE bBrightnessEn; // 亮度可调;1:可,0:不可
- BYTE bContrastEn; // 对比度可调
- BYTE bColorEn; // 色度可调
- BYTE bGainEn; // 增益可调
- BYTE bSaturationEn; // 饱和度可调
- BYTE bBacklightEn; // 背光补偿可调
- BYTE bExposureEn; // 曝光选择可调
- BYTE bColorConvEn; // 自动彩黑转换可调
- BYTE bAttrEn; // 属性选项;1:可,0:不可
- BYTE bMirrorEn; // 镜像;1:支持,0:不支持
- BYTE bFlipEn; // 翻转;1:支持,0:不支持
- BYTE iWhiteBalance; // 白平衡 1 支持 ,0 不支持
- BYTE iSignalFormatMask; // 信号格式掩码,按位从低到高位分别为:0-Inside(内部输入) 1- BT656 2-720p 3-1080i 4-1080p 5-1080sF
- BYTE bRev[123]; // 保留
- } DHDEV_CAMERA_INFO;
- // 摄像头属性配置
- typedef struct __DHDEV_CAMERA_CFG
- {
- DWORD dwSize;
- BYTE bExposure; // 曝光模式;1-9:手动曝光等级,0:自动曝光
- BYTE bBacklight; // 背光补偿:3:强,2:中,1:弱,0:关
- BYTE bAutoColor2BW; // 日/夜模式;2:开,1:自动,0:关
- BYTE bMirror; // 镜像;1:开,0:关
- BYTE bFlip; // 翻转;1:开,0:关
- BYTE bLensEn; // 自动光圈功能能力: 1:支持;0 :不支持
- BYTE bLensFunction; // 自动光圈功能: 1:开启自动光圈;0: 关闭自动光圈
- BYTE bWhiteBalance; // 白平衡 0:Disabled,1:Auto 2:sunny 3:cloudy 4:home 5:office 6:night
- BYTE bSignalFormat; // 信号格式0-Inside(内部输入) 1- BT656 2-720p 3-1080i 4-1080p 5-1080sF
- char bRev[119]; // 保留
- } DHDEV_CAMERA_CFG;
- #define ALARM_MAX_NAME 64
- // (无线)红外报警配置
- typedef struct
- {
- BOOL bEnable; // 报警输入使能
- char szAlarmName[DH_MAX_ALARM_NAME]; // 报警输入名称
- int nAlarmInPattern; // 报警器输入波形
- int nAlarmOutPattern; // 报警输出波形
- char szAlarmInAddress[DH_MAX_ALARM_NAME];// 报警输入地址
- int nSensorType; // 外部设备传感器类型常开 or 常闭
- int nDefendEfectTime; // 布撤防延时时间,在此时间后该报警输入有效
- int nDefendAreaType; // 防区类型
- int nAlarmSmoothTime; // 报警平滑时间,即在此时间内如果只有一个报警输入连续输入两次则忽略掉后面一次
- char reserved[128];
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
- DH_MSG_HANDLE struHandle; // 处理方式
- } DH_INFRARED_INFO;
- // 无线遥控器配置
- typedef struct
- {
- BYTE address[ALARM_MAX_NAME];// 遥控器地址
- BYTE name[ALARM_MAX_NAME]; // 遥控器名称
- BYTE reserved[32]; // 保留字段
- } DH_WI_CONFIG_ROBOT;
- // 无线报警输出配置
- typedef struct
- {
- BYTE address[ALARM_MAX_NAME];// 报警输出地址
- BYTE name[ALARM_MAX_NAME]; // 报警输出名称
- BYTE reserved[32]; // 保留字段
- } DH_WI_CONFIG_ALARM_OUT;
- typedef struct
- {
- DWORD dwSize;
- BYTE bAlarmInNum; // 无线报警输入数
- BYTE bAlarmOutNum; // 无线报警输出数
- DH_WI_CONFIG_ALARM_OUT AlarmOutAddr[16]; // 报警输出地址
- BYTE bRobotNum; // 遥控器个数
- DH_WI_CONFIG_ROBOT RobotAddr[16]; // 遥控器地址
- DH_INFRARED_INFO InfraredAlarm[16];
- char reserved[256];
- } DH_INFRARED_CFG;
- // 新音频检测报警信息
- typedef struct
- {
- int channel; // 报警通道号
- int alarmType; // 报警类型;0:音频值过低,1:音频值过高
- unsigned int volume; // 音量值
- char reserved[256];
- } NET_NEW_SOUND_ALARM_STATE;
- typedef struct
- {
- int channelcount; // 报警的通道个数
- NET_NEW_SOUND_ALARM_STATE SoundAlarmInfo[DH_MAX_ALARM_IN_NUM];
- } DH_NEW_SOUND_ALARM_STATE;
- // 抓图功能属性结构体
- typedef struct
- {
- int nChannelNum; // 通道号
- DWORD dwVideoStandardMask; // 分辨率(按位),具体查看枚举CAPTURE_SIZE
- int nFramesCount; // Frequence[128]数组的有效长度
- char Frames[128]; // 帧率(按数值)
- // -25:25秒1帧;-24:24秒1帧;-23:23秒1帧;-22:22秒1帧
- // ……
- // 0:无效;1:1秒1帧;2:1秒2帧;3:1秒3帧
- // 4:1秒4帧;5:1秒5帧;17:1秒17帧;18:1秒18帧
- // 19:1秒19帧;20:1秒20帧
- // ……
- // 25: 1秒25帧
- int nSnapModeCount; // SnapMode[16]数组的有效长度
- char SnapMode[16]; // (按数值)0:定时触发抓图,1:手动触发抓图
- int nPicFormatCount; // Format[16]数组的有效长度
- char PictureFormat[16]; // (按数值)0:BMP格式,1:JPG格式
- int nPicQualityCount; // Quality[32]数组的有效长度
- char PictureQuality[32]; // 按数值
- // 100:图象质量100%;80:图象质量80%;60:图象质量60%
- // 50:图象质量50%;30:图象质量30%;10:图象质量10%
- char nReserved[128]; // 保留
- } DH_QUERY_SNAP_INFO;
- typedef struct
- {
- int nChannelCount; // 通道个数
- DH_QUERY_SNAP_INFO stuSnap[DH_MAX_CHANNUM];
- } DH_SNAP_ATTR_EN;
- /* IP过滤功能配置 */
- #define DH_IPIFILTER_NUM 200 // IP
- // IP信息
- typedef struct
- {
- DWORD dwIPNum; // IP个数
- char SZIP[DH_IPIFILTER_NUM][DH_MAX_IPADDR_LEN]; // IP
- char byReserve[32]; // 保留
- } IPIFILTER_INFO;
- // IP过滤配置结构体
- typedef struct
- {
- DWORD dwSize;
- DWORD dwEnable; // 使能
- DWORD dwType; // 当前名单类型:0:白名单 1:黑名单(设备只能使一种名单生效,或者是白名单或者是黑名单)
- IPIFILTER_INFO BannedIP; // 黑名单
- IPIFILTER_INFO TrustIP; // 白名单
- char byReserve[256]; // 保留
- } DHDEV_IPIFILTER_CFG;
- /*语音对讲编码配置*/
- typedef struct
- {
- DWORD dwSize;
- int nCompression; // 压缩格式,枚举值,相见DH_TALK_CODING_TYPE,请根据设备支持的语音对讲类型设置压缩格式。
- int nMode; // 编码模式,枚举值,为0时表示该压缩格式不支持编码模式。
- // 根据压缩格式可以设置对应的编码格式,如
- // AMR详见EM_ARM_ENCODE_MODE
- char byReserve[256]; // 保留
- } DHDEV_TALK_ENCODE_CFG;
- // 以下是mobile功能相关
- // (事件触发多媒体彩信/短信发送)MMS配置结构体
- typedef struct
- {
- DWORD dwSize;
- DWORD dwEnable; // 使能
- DWORD dwReceiverNum; // 短信接收者个数
- char SZReceiver[DH_MMS_RECEIVER_NUM][32]; // 短信接收者,一般为手机号码
- BYTE byType; // 短信信息类型 0:MMS;1:SMS
- char SZTitle[32]; // 短信信息标题
- char byReserve[223]; // 保留
- } DHDEV_MMS_CFG;
- // (短信激活无线连接配置)
- typedef struct
- {
- DWORD dwSize;
- DWORD dwEnable; // 使能
- DWORD dwSenderNum; // 短信发送者个数
- char SZSender[DH_MMS_SMSACTIVATION_NUM][32]; // 短信发送者,一般为手机号码
- char byReserve[256]; // 保留
- }DHDEV_SMSACTIVATION_CFG;
- // (拨号激活无线连接配置)
- typedef struct
- {
- DWORD dwSize;
- DWORD dwEnable; // 使能
- DWORD dwCallerNum; // 发送者个数
- char SZCaller[DH_MMS_DIALINACTIVATION_NUM][32]; // 发送者, 一般为手机号码
- char byReserve[256]; // 保留
- }DHDEV_DIALINACTIVATION_CFG;
- // 以上是mobile功能相关
- // 无线网络信号强度结构体
- typedef struct
- {
- DWORD dwSize;
- DWORD dwTDSCDMA; // TD-SCDMA强度,范围:0-100
- DWORD dwWCDMA; // WCDMA强度,范围:0-100
- DWORD dwCDMA1x; // CDMA1x强度,范围:0-100
- DWORD dwEDGE; // EDGE强度,范围:0-100
- DWORD dwEVDO; // EVDO强度,范围:0-100
- char byReserve[256]; // 保留
- } DHDEV_WIRELESS_RSS_INFO;
- ////////////////////////////////车载DVR支持////////////////////////////////
- // GPS信息(车载设备)
- typedef struct _GPS_Info
- {
- NET_TIME revTime; // 定位时间
- char DvrSerial[50]; // 设备序列号
- double longitude; // 经度
- double latidude; // 纬度
- double height; // 高度(米)
- double angle; // 方向角(正北方向为原点,顺时针为正)
- double speed; // 速度(公里/小时)
- WORD starCount; // 定位星数
- BOOL antennaState; // 天线状态(true 好,false 坏)
- BOOL orientationState; // 定位状态(true 定位,false 不定位)
- } GPS_Info,*LPGPS_Info;
- // 抓图参数结构体
- typedef struct _snap_param
- {
- unsigned int Channel; // 抓图的通道
- unsigned int Quality; // 画质;1~6
- unsigned int ImageSize; // 画面大小;0:QCIF,1:CIF,2:D1
- unsigned int mode; // 抓图模式;0:表示请求一帧,1:表示定时发送请求,2:表示连续请求
- unsigned int InterSnap; // 时间单位秒;若mode=1表示定时发送请求时,此时间有效
- unsigned int CmdSerial; // 请求序列号
- unsigned int Reserved[4];
- } SNAP_PARAMS, *LPSNAP_PARAMS;
- // 抓图功能配置
- typedef struct
- {
- DWORD dwSize;
- BYTE bTimingEnable; // 定时抓图开关(报警抓图开关在各报警联动配置中体现)
- BYTE bReserved;
- short PicTimeInterval; // 定时抓图时间间隔,单位为秒,目前设备支持最大的抓图时间间隔为30分钟
- DH_VIDEOENC_OPT struSnapEnc[SNAP_TYP_NUM]; // 抓图编码配置,现支持其中的分辨率、画质、帧率设置,帧率在这里是负数,表示一秒抓图的次数。
- } DHDEV_SNAP_CFG;
- //////////////////////////////////ATM支持//////////////////////////////////
- typedef struct
- {
- int Offset; // 标志位的位偏移
- int Length; // 标志位的长度
- char Key[16]; // 标志位的值
- } DH_SNIFFER_FRAMEID;
- typedef struct
- {
- int Offset; // 标志位的位偏移
- int Offset2; // 目前没有应用
- int Length; // 标志位的长度
- int Length2; // 目前没有应用
- char KeyTitle[24]; // 标题的值
- } DH_SNIFFER_CONTENT;
- // 网络抓包配置
- typedef struct
- {
- DH_SNIFFER_FRAMEID snifferFrameId; // 每个FRAME ID 选项
- DH_SNIFFER_CONTENT snifferContent[DH_SNIFFER_CONTENT_NUM]; // 每个FRAME对应的4个抓包内容
- } DH_SNIFFER_FRAME;
- // 每组抓包对应的配置结构
- typedef struct
- {
- char SnifferSrcIP[DH_MAX_IPADDR_LEN]; // 抓包源地址
- int SnifferSrcPort; // 抓包源端口
- char SnifferDestIP[DH_MAX_IPADDR_LEN]; // 抓包目标地址
- int SnifferDestPort; // 抓包目标端口
- char reserved[28]; // 保留字段
- DH_SNIFFER_FRAME snifferFrame[DH_SNIFFER_FRAMEID_NUM]; // 6个FRAME 选项
- int displayPosition; // 显示位置
- int recdChannelMask; // 通道掩码
- } DH_ATM_SNIFFER_CFG;
- typedef struct
- {
- DWORD dwSize;
- DH_ATM_SNIFFER_CFG SnifferConfig[4];
- char reserved[256]; // 保留字段
- } DHDEV_SNIFFER_CFG;
- typedef DH_SNIFFER_FRAMEID DH_SNIFFER_FRAMEID_EX;
- typedef DH_SNIFFER_CONTENT DH_SNIFFER_CONTENT_EX;
- // 网络抓包配置
- typedef struct
- {
- DH_SNIFFER_FRAMEID snifferFrameId; // 每个FRAME ID 选项
- DH_SNIFFER_CONTENT snifferContent[DH_SNIFFER_CONTENT_NUM_EX]; // 每个FRAME对应的8个抓包内容
- } DH_SNIFFER_FRAME_EX;
- // 每组抓包对应的配置结构
- typedef struct
- {
- char SnifferSrcIP[DH_MAX_IPADDR_LEN]; // 抓包源地址
- int SnifferSrcPort; // 抓包源端口
- char SnifferDestIP[DH_MAX_IPADDR_LEN]; // 抓包目标地址
- int SnifferDestPort; // 抓包目标端口
- DH_SNIFFER_FRAME_EX snifferFrame[DH_SNIFFER_FRAMEID_NUM]; // 6个FRAME 选项
- int displayPosition; // 显示位置
- int recdChannelMask; // 通道掩码
- BOOL bDateScopeEnable; // 数据来源使能
- BOOL bProtocolEnable; // 协议使能
- char szProtocolName[DH_SNIFFER_PROTOCOL_SIZE]; // 协议名字
- int nSnifferMode; // 抓包方式,0:net,1:232.
- char reserved[256];
- } DH_ATM_SNIFFER_CFG_EX;
- /////////////////////////////////解码器支持/////////////////////////////////
- // 解码器信息
- typedef struct __DEV_DECODER_INFO
- {
- char szDecType[64]; // 类型
- int nMonitorNum; // TV个数
- int nEncoderNum; // 解码通道个数
- BYTE szSplitMode[16]; // 支持的TV画面分割数,以数组形式表示,0为结尾
- BYTE bMonitorEnable[16]; // 各TV使能
- char reserved[64];
- } DEV_DECODER_INFO, *LPDEV_DECODER_INFO;
- // 连接的编码器信息
- typedef struct __DEV_ENCODER_INFO
- {
- char szDevIp[DH_MAX_IPADDR_LEN]; // 前端DVR的IP地址
- WORD wDevPort; // 前端DVR的端口号
- BYTE bDevChnEnable; // 解码通道使能
- BYTE byEncoderID; // 对应解码通道号
- char szDevUser[DH_USER_NAME_LENGTH_EX]; // 用户名
- char szDevPwd[DH_USER_PSW_LENGTH_EX]; // 密码
- int nDevChannel; // 通道号
- int nStreamType; // 码流类型,0:主码流;1:子码流
- BYTE byConnType; // 0:TCP;1:UDP;2:组播
- BYTE byWorkMode; // 0:直连;1:转发
- WORD wListenPort; // 指示侦听服务的端口,转发时有效
- char reserved[184];
- } DEV_ENCODER_INFO, *LPDEV_ENCODER_INFO;
- // TV参数信息
- typedef struct __DEV_DECODER_TV
- {
- int nID; // TV号
- BOOL bEnable; // 使能,开启或关闭
- int nSplitType; // 画面分割数
- DEV_ENCODER_INFO stuDevInfo[16]; // 各画面编码器信息
- char reserved[16];
- } DEV_DECODER_TV, *LPDEV_DECODER_TV;
- // 解码器画面组合信息
- typedef struct __DEC_COMBIN_INFO
- {
- int nCombinID; // 组合ID
- int nSplitType; // 画面分割数
- BYTE bDisChn[16]; // 显示通道
- char reserved[16];
- } DEC_COMBIN_INFO, *LPDEC_COMBIN_INFO;
- // 解码器轮巡信息
- #define DEC_COMBIN_NUM 32 // 轮巡组合个数
- typedef struct __DEC_TOUR_COMBIN
- {
- int nTourTime; // 轮巡间隔(秒)
- int nCombinNum; // 组合个数
- BYTE bCombinID[DEC_COMBIN_NUM]; // 组合表
- char reserved1[32];
- BYTE bCombinState[DEC_COMBIN_NUM]; // 组合项的使能状态,0:关;1:开
- char reserved2[32];
- } DEC_TOUR_COMBIN, *LPDEC_TOUR_COMBIN;
- // 解码器回放类型
- typedef enum __DEC_PLAYBACK_MODE
- {
- Dec_By_Device_File = 0, // 前端设备-按文件方式
- Dec_By_Device_Time, // 前端设备-按时间方式
- } DEC_PLAYBACK_MODE;
- // 解码器回放控制类型
- typedef enum __DEC_CTRL_PLAYBACK_TYPE
- {
- Dec_Playback_Seek = 0, // 拖动
- Dec_Playback_Play, // 播放
- Dec_Playback_Pause, // 暂停
- Dec_Playback_Stop, // 停止
- } DEC_CTRL_PLAYBACK_TYPE;
- // 按文件回放前端设备条件
- typedef struct __DEC_PLAYBACK_FILE_PARAM
- {
- char szDevIp[DH_MAX_IPADDR_LEN]; // 前端DVR的IP地址
- WORD wDevPort; // 前端DVR的端口号
- BYTE bDevChnEnable; // 解码通道使能
- BYTE byEncoderID; // 对应解码通道号
- char szDevUser[DH_USER_NAME_LENGTH_EX]; // 用户名
- char szDevPwd[DH_USER_PSW_LENGTH_EX]; // 密码
- NET_RECORDFILE_INFO stuRecordInfo; // 录像文件信息
- char reserved[12];
- } DEC_PLAYBACK_FILE_PARAM, *LPDEC_PLAYBACK_FILE_PARAM;
- // 按时间回放前端设备条件
- typedef struct __DEC_PLAYBACK_TIME_PARAM
- {
- char szDevIp[DH_MAX_IPADDR_LEN]; // 前端DVR的IP地址
- WORD wDevPort; // 前端DVR的端口号
- BYTE bDevChnEnable; // 解码通道使能
- BYTE byEncoderID; // 对应解码通道号
- char szDevUser[DH_USER_NAME_LENGTH_EX]; // 用户名
- char szDevPwd[DH_USER_PSW_LENGTH_EX]; // 密码
- int nChannelID;
- NET_TIME startTime;
- NET_TIME endTime;
- char reserved[12];
- } DEC_PLAYBACK_TIME_PARAM, *LPDEC_PLAYBACK_TIME_PARAM;
- /////////////////////////////////特殊版本/////////////////////////////////
- // 触发设备抓图,叠加卡号信息
- typedef struct __NET_SNAP_COMMANDINFO
- {
- char szCardInfo[16]; // 卡号信息
- char reserved[64]; // 保留
- } NET_SNAP_COMMANDINFO, LPNET_SNAP_COMMANDINFO;
- typedef struct
- {
- int nChannelNum; // 通道号
- char szUseType[32]; // 通道用途
- DWORD dwStreamSize; // 流量大小(单位:kb/s)
- char reserved[32]; // 保留
- } DHDEV_USE_CHANNEL_STATE;
- typedef struct
- {
- char szUserName[32]; // 用户名
- char szUserGroup[32]; // 用户组
- NET_TIME time; // 登入时间
- int nOpenedChannelNum; // 开启的通道个数
- DHDEV_USE_CHANNEL_STATE channelInfo[DH_MAX_CHANNUM];
- char reserved[64];
- } DHDEV_USER_NET_INFO;
- // 网络运行状态信息
- typedef struct
- {
- int nUserCount; // 用户数量
- DHDEV_USER_NET_INFO stuUserInfo[32];
- char reserved[256];
- }DHDEV_TOTAL_NET_STATE;
- // 图象水印配置
- typedef struct __DHDEV_WATERMAKE_CFG
- {
- DWORD dwSize;
- int nEnable; // 使能
- int nStream; // 码流(1~n)0-所有码流
- int nKey; // 数据类型(1-文字,2-图片)
- char szLetterData[DH_MAX_WATERMAKE_LETTER]; // 文字
- char szData[DH_MAX_WATERMAKE_DATA]; // 图片数据
- BYTE bReserved[512]; // 保留
- } DHDEV_WATERMAKE_CFG;
- // 存储位置设置结构体,每通道独立设置,每通道可以选择各种存储类型, 目前包括本地, 可移动, 远程存储.
- typedef struct
- {
- DWORD dwSize;
- DWORD dwLocalMask; // 本地存储掩码;按位表示:
- // 第一位:系统预录,第二位:定时录像,第三位:动检录像,
- // 第四位:报警录像,第五位:卡号录像,第六位:手动录像
- DWORD dwMobileMask; // 可移动存储掩码 存储掩码如本地存储掩码
- int RemoteType; // 远程存储类型 0: Ftp 1: Smb
- DWORD dwRemoteMask; // 远程存储掩码 存储掩码如本地存储掩码
- DWORD dwRemoteSecondSelLocal; // 远程异常时本地存储掩码
- DWORD dwRemoteSecondSelMobile;// 远程异常时可移动存储掩码
- char SubRemotePath[MAX_PATH_STOR]; // 远程目录, 其中长度为240
- DWORD dwFunctionMask; //功能屏蔽位,按位表示,bit0 = 1:屏蔽抓图事件触发存储位置功能
- char reserved[124];
- } DH_STORAGE_STATION_CFG;
- #define MAX_ALARM_DECODER_NUM 16
- typedef struct
- {
- DWORD dwAlarmDecoder; // 现在最多支持8个报警输入口,留8位待以后扩展
- BYTE bDecoderIndex; // 表示第几个报警解码器
- BYTE bReserved[3];
- } ALARM_DECODER;
- // 报警解码器报警
- typedef struct
- {
- int nAlarmDecoderNum;
- ALARM_DECODER stuAlarmDecoder[MAX_ALARM_DECODER_NUM];
- BYTE bReserved[32];
- } ALARM_DECODER_ALARM;
- // 光纤编码能力报警
- typedef struct
- {
- int nFDDINum;
- BYTE bAlarm[256];
- } ALARM_FDDI_ALARM;
- // 新音频检测报警配置
- typedef struct
- {
- BOOL bEnable; // 报警输入使能
- int Volume_min; // 音量的最小值
- int Volume_max; // 音量的最大值
- char reserved[128];
- DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
- DH_MSG_HANDLE struHandle; // 处理方式
- } DH_AUDIO_DETECT_INFO;
- typedef struct
- {
- DWORD dwSize;
- int AlarmNum;
- DH_AUDIO_DETECT_INFO AudioDetectAlarm[DH_MAX_AUDIO_IN_NUM];
- char reserved[256];
- } DH_AUDIO_DETECT_CFG;
- typedef struct
- {
- BOOL bTourEnable; // 轮巡使能
- int nTourPeriod; // 轮巡间隔,单位秒, 5-300
- DWORD dwChannelMask; // 轮巡的通道,掩码形式表示
- char reserved[64];
- }DH_VIDEOGROUP_CFG;
- // 本机矩阵控制策略配置
- typedef struct
- {
- DWORD dwSize;
- int nMatrixNum; // 矩阵个数(注:不允许修改)
- DH_VIDEOGROUP_CFG struVideoGroup[DH_MATRIX_MAXOUT];
- char reserved[32];
- } DHDEV_VIDEO_MATRIX_CFG;
- // WEB路径配置
- typedef struct
- {
- DWORD dwSize;
- BOOL bSnapEnable; // 是否抓图
- int iSnapInterval; // 抓图周期
- char szHostIp[DH_MAX_IPADDR_LEN]; // HTTP主机IP
- WORD wHostPort;
- int iMsgInterval; // 状态消息发送间隔
- char szUrlState[DH_MAX_URL_LEN]; // 状态消息上传URL
- char szUrlImage[DH_MAX_URL_LEN]; // 图片上传Url
- char szDevId[DH_MAX_DEV_ID_LEN]; // 机器的web编号
- BYTE byReserved[2];
- } DHDEV_URL_CFG;
- // OEM查询
- typedef struct
- {
- char szVendor[DH_MAX_STRING_LEN];
- char szType[DH_MAX_STRING_LEN];
- char reserved[128];
- } DHDEV_OEM_INFO;
- //视频OSD叠加配置
- typedef struct
- {
- DWORD rgbaFrontground; // 物件的前景;按字节表示,分别为红、绿、蓝和透明度
- DWORD rgbaBackground; // 物件的背景;按字节表示,分别为红、绿、蓝和透明度
- RECT rcRelativePos; // 位置,物件边距与整长的比例*8191
- BOOL bPreviewBlend; // 预览叠加使能
- BOOL bEncodeBlend; // 编码叠加使能
- BYTE bReserved[4]; // 保留
- } DH_DVR_VIDEO_WIDGET;
- typedef struct
- {
- DH_DVR_VIDEO_WIDGET StOSD_POS; // OSD叠加的位置和背景色
- char SzOSD_Name[DH_VIDEO_OSD_NAME_NUM]; // OSD叠加的名称
- }DH_DVR_VIDEOITEM;
- // 每个通道的OSD信息
- typedef struct
- {
- DWORD dwSize;
- DH_DVR_VIDEOITEM StOSDTitleOpt [DH_VIDEO_CUSTOM_OSD_NUM]; // 每个通道的OSD信息
- BYTE bReserved[16]; // 保留
- } DH_DVR_VIDEOOSD_CFG;
- // 配置CDMA/GPRS网络信息
- typedef struct
- {
- DWORD dwSize;
- BOOL bEnable; // 无线模块使能标志
- DWORD dwTypeMask; // 设备支持网络类型掩码;按位表示,第一位;自动选择;第二位:TD-SCDMA网络;
- // 第三位:WCDMA网络;第四位:CDMA 1.x网络;第五位:CDMA2000网络;第六位:GPRS网络;
- // 第七位:EVDO网络;第八位:WIFI
- DWORD dwNetType; // 当前的无线网络类型,为EM_GPRSCDMA_NETWORK_TYPE值
- char szAPN[128]; // 接入点名称
- char szDialNum[128]; // 拨号号码
- char szUserName[128]; // 拨号用户名
- char szPWD[128]; // 拨号密码
- /* 下面是设备的只读部分 */
- BOOL iAccessStat; // 无线网络注册状态
- char szDevIP[16]; // 前端设备拨号IP,字符串, 包括' '结束符共16byte
- char szSubNetMask [16]; // 前端设备拨号子网掩码,字符串, 包括' '结束符共16byte
- char szGateWay[16]; // 前端设备拨号网关,字符串, 包括' '结束符共16byte
- /* 上面是设备的只读部分 */
- int iKeepLive; // 保活时间
- char Reserved[508]; // 保留字节,用于扩展
- } DHDEV_CDMAGPRS_CFG;
- // 录像打包长度配置
- typedef struct
- {
- DWORD dwSize;
- int nType; // 0:按时间,1:按大小
- int nValue; // nType = 0时:单位分钟,nType = 1时:单位KB
- char Reserved[128]; // 保留字节,用于扩展
- } DHDEV_RECORD_PACKET_CFG;
- // (定向)主动注册服务器信息
- typedef struct __DEV_AUTOREGISTER_INFO
- {
- LONG lConnectionID; // 连接ID
- char szServerIp[DH_MAX_IPADDR_LEN]; // 主动注册服务器的IP
- int nPort; // 主动注册服务器端口0- 65535
- int nState; // 服务器的状态:0-注册失败;1-注册成功; 2-连接失败
- char reserved[16];
- } DEV_AUTOREGISTER_INFO;
- typedef struct __DEV_SERVER_AUTOREGISTER
- {
- DWORD dwSize;
- int nRegisterSeverCount; // 主动注册服务器个数
- DEV_AUTOREGISTER_INFO stuDevRegisterSeverInfo[DH_CONTROL_AUTO_REGISTER_NUM]; // 各主动注册服务器信息
- char reserved[256];
- } DEV_SERVER_AUTOREGISTER, *LPDEV_SERVER_AUTOREGISTER;
- // 附件刻录附件上传
- typedef struct
- {
- DWORD dwSize;
- char szSourFile[MAX_PATH_STOR]; // 源文件路径
- int nFileSize; // 源文件大小,如果小于等于0,sdk自行计算文件大小.
- char szBurnFile[MAX_PATH_STOR]; // 刻录后的文件名
- BYTE bReserved[64];
- } DHDEV_BURNFILE_TRANS_CFG;
- /////////////////////////////////平台接入/////////////////////////////////
- // 平台接入配置 - U网通
- typedef struct
- {
- BOOL bChnEn;
- char szChnId[DH_INTERVIDEO_UCOM_CHANID];
- } DH_INTERVIDEO_UCOM_CHN_CFG;
- typedef struct
- {
- DWORD dwSize;
- BOOL bFuncEnable; // 接入功能使能
- BOOL bAliveEnable; // 心跳使能
- DWORD dwAlivePeriod; // 心跳周期,单位秒,0-3600
- char szServerIp[DH_MAX_IPADDR_LEN]; // CMS的IP
- WORD wServerPort; // CMS的Port
- char szRegPwd[DH_INTERVIDEO_UCOM_REGPSW]; // 注册密码
- char szDeviceId[DH_INTERVIDEO_UCOM_DEVID];// 设备id
- char szUserName[DH_INTERVIDEO_UCOM_USERNAME];
- char szPassWord[DH_INTERVIDEO_UCOM_USERPSW];
- DH_INTERVIDEO_UCOM_CHN_CFG struChnInfo[DH_MAX_CHANNUM]; // 通道id,en
- } DHDEV_INTERVIDEO_UCOM_CFG;
- // 平台接入配置 - 阿尔卡特
- typedef struct
- {
- DWORD dwSize;
- unsigned short usCompanyID[2]; // 公司ID,数值,不同的第三方服务公司,考虑4字节对齐,目前只用数组第一个
- char szDeviceNO[32]; // 前端设备序列号,字符串,包括' '结束符共32byte
- char szVSName[32]; // 前端设备名称,字符串,包括' '结束符共16byte
- char szVapPath[32]; // VAP路径
- unsigned short usTcpPort; // TCP端口,数值:数值 1~65535
- unsigned short usUdpPort; // UDP端口,数值:数值 1~65535
- bool bCsEnable[4]; // 中心服务器使能标志,数值:true使能,false不使能,考虑4字节对齐,目前只用数组第一个
- char szCsIP[16]; // 中心服务器IP地址,字符串,包括' '结束符共16byte
- unsigned short usCsPort[2]; // 中心服务器端口,数值:数值 1~65535,考虑4字节对齐,目前只用数组第一个
- bool bHsEnable[4]; // 心跳服务器使能标志,数值:true使能,false不使能,考虑4字节对齐,目前只用数组第一个
- char szHsIP[16]; // 心跳服务器IP地址,字符串,包括' '结束符共16byte
- unsigned short usHsPort[2]; // 心跳服务器端口,数值:数值 1~65535,考虑4字节对齐,目前只用数组第一个
- int iHsIntervalTime; // 心跳服务器间隔周期,数值(单位:秒)
- bool bRsEnable[4]; // 注册服务器使能标志,数值:true使能,false不使能,考虑4字节对齐,目前只用数组第一个
- char szRsIP[16]; // 注册服务器IP地址,字符串,包括' '结束符共16byte
- unsigned short usRsPort[2]; // 注册服务器端口,数值:数值 1~65535,考虑4字节对齐,目前只用数组第一个
- int iRsAgedTime; // 注册服务器有效时间,数值(单位:小时)
- char szAuthorizeServerIp[16];// 鉴权服务器IP
- unsigned short usAuthorizePort[2]; // 鉴权服务器端口,考虑4字节对齐,目前只用数组第一个
- char szAuthorizeUsername[32];// 鉴权服务器帐号
- char szAuthorizePassword[36];// 鉴权服务器密码
- char szIpACS[16]; // ACS(自动注册服务器) IP
- unsigned short usPortACS[2]; // ACS Port,考虑4字节对齐,目前只用数组第一个
- char szUsernameACS[32]; // ACS用户名
- char szPasswordACS[36]; // ACS密码
- bool bVideoMonitorEnabled[4];// DVS是否定期上报前端视频信号监控信息,数值:true使能,false不使能
- int iVideoMonitorInterval; // 上报周期(分钟)
- char szCoordinateGPS[64]; // GPS坐标
- char szPosition[32]; // 设备位置
- char szConnPass[36]; // 设备接入码
- } DHDEV_INTERVIDEO_BELL_CFG;
- // 平台接入配置 - 中兴力维
- typedef struct
- {
- DWORD dwSize;
- unsigned short nSevPort; // 服务器端口,数值,数值1~65535
- char szSevIp[DH_INTERVIDEO_NSS_IP]; // 服务器IP地址,字符串,包括' '结束符共32byte
- char szDevSerial[DH_INTERVIDEO_NSS_SERIAL]; // 前端设备序列号,字符串,包括' '结束符共32byte
- char szUserName[DH_INTERVIDEO_NSS_USER];
- char szPwd[DH_INTERVIDEO_NSS_PWD];
- } DHDEV_INTERVIDEO_NSS_CFG;
- /////////////////////////////////淘汰类型/////////////////////////////////
- // 查询设备工作状态通道信息,相关接口已淘汰,请不要使用
- typedef struct
- {
- BYTE byRecordStatic; // 通道是否在录像;0:不录像,1:手动录像,2:自动录象
- BYTE bySignalStatic; // 连接的信号状态;0:正常,1:信号丢失
- BYTE byHardwareStatic; // 通道硬件状态;0:正常,1:异常,例如DSP死掉
- char reserve;
- DWORD dwBitRate; // 实际码率
- DWORD dwLinkNum; // 客户端连接的个数
- DWORD dwClientIP[DH_MAX_LINK];// 客户端的IP地址
- } NET_DEV_CHANNELSTATE, *LPNET_DEV_CHANNELSTATE;
- // 查询设备工作状态,相关接口已淘汰,请不要使用
- typedef struct
- {
- DWORD dwDeviceStatic; // 设备的状态;0x00:正常,0x01:CPU占用过高,0x02:硬件错误
- NET_DEV_DISKSTATE stHardDiskStatic[DH_MAX_DISKNUM];
- NET_DEV_CHANNELSTATE stChanStatic[DH_MAX_CHANNUM]; //通道的状态
- BYTE byAlarmInStatic[DH_MAX_ALARMIN];//报警端口的状态;0:没有报警,1:有报警
- BYTE byAlarmOutStatic[DH_MAX_ALARMOUT]; //报警输出端口的状态;0:没有输出,1:有报警输出
- DWORD dwLocalDisplay; // 本地显示状态;0:正常,1:不正常
- } NET_DEV_WORKSTATE, *LPNET_DEV_WORKSTATE;
- // 协议信息
- typedef struct
- {
- char protocolname[12]; // 协议名
- unsigned int baudbase; // 波特率
- unsigned char databits; // 数据位
- unsigned char stopbits; // 停止位
- unsigned char parity; // 校验位
- unsigned char reserve;
- } PROTOCOL_INFO, *LPPROTOCOL_INFO;
- // 语音对讲参数配置
- 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 void (CALLBACK *fDisConnect)(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);
- // 网络连接恢复回调函数原形
- typedef void (CALLBACK *fHaveReConnect)(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);
- // 实时监视数据回调函数原形
- typedef void (CALLBACK *fRealDataCallBack)(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, DWORD dwUser);
- // 实时监视数据回调函数原形--扩展
- typedef void (CALLBACK *fRealDataCallBackEx)(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LONG param, DWORD dwUser);
- // 屏幕叠加回调函数原形
- typedef void (CALLBACK *fDrawCallBack)(LONG lLoginID, LONG lPlayHandle, HDC hDC, DWORD dwUser);
- // 回放数据回调函数原形
- typedef int (CALLBACK *fDataCallBack)(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, DWORD dwUser);
- // 回放进度回调函数原形
- typedef void (CALLBACK *fDownLoadPosCallBack)(LONG lPlayHandle, DWORD dwTotalSize, DWORD dwDownLoadSize, DWORD dwUser);
- // 按时间回放进度回调函数原形
- typedef void (CALLBACK *fTimeDownLoadPosCallBack) (LONG lPlayHandle, DWORD dwTotalSize, DWORD dwDownLoadSize, int index, NET_RECORDFILE_INFO recordfileinfo, DWORD dwUser);
- // 消息回调函数原形
- typedef BOOL (CALLBACK *fMessCallBack)(LONG lCommand, LONG lLoginID, char *pBuf, DWORD dwBufLen, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);
- // 侦听服务器回调函数原形
- typedef int (CALLBACK *fServiceCallBack)(LONG lHandle, char *pIp, WORD wPort, LONG lCommand, void *pParam, DWORD dwParamLen, DWORD dwUserData);
- // 语音对讲的音频数据回调函数原形
- typedef void (CALLBACK *pfAudioDataCallBack)(LONG lTalkHandle, char *pDataBuf, DWORD dwBufSize, BYTE byAudioFlag, DWORD dwUser);
- // 升级设备程序回调函数原形
- typedef void (CALLBACK *fUpgradeCallBack) (LONG lLoginID, LONG lUpgradechannel, int nTotalSize, int nSendSize, DWORD dwUser);
- // 透明串口回调函数原形
- typedef void (CALLBACK *fTransComCallBack) (LONG lLoginID, LONG lTransComChannel, char *pBuffer, DWORD dwBufSize, DWORD dwUser);
- // 查询设备日志数据回调函数原形
- typedef void (CALLBACK *fLogDataCallBack)(LONG lLoginID, char *pBuffer, DWORD dwBufSize, DWORD nTotalSize, BOOL bEnd, DWORD dwUser);
- // 抓图回调函数原形
- typedef void (CALLBACK *fSnapRev)(LONG lLoginID, BYTE *pBuf, UINT RevLen, UINT EncodeType, DWORD CmdSerial, DWORD dwUser);
- // GPS信息订阅回调
- typedef void (CALLBACK *fGPSRev)(LONG lLoginID, GPS_Info GpsInfo, DWORD dwUserData);
- // 异步数据回调
- typedef void (CALLBACK *fMessDataCallBack)(LONG lCommand, LPNET_CALLBACK_DATA lpData, DWORD dwUser);
- // 文件传输回调
- typedef void (CALLBACK *fTransFileCallBack)(LONG lHandle, int nTransType, int nState, int nSendSize, int nTotalSize, DWORD dwUser);
- /************************************************************************
- ** 接口定义
- ***********************************************************************/
- // SDK初始化
- CLIENT_API BOOL CALL_METHOD CLIENT_Init(fDisConnect cbDisConnect, DWORD dwUser);
- // SDK退出清理
- CLIENT_API void CALL_METHOD CLIENT_Cleanup();
- //------------------------------------------------------------------------
- // 设置断线重连成功回调函数,设置后SDK内部断线自动重连
- CLIENT_API void CALL_METHOD CLIENT_SetAutoReconnect(fHaveReConnect cbAutoConnect, DWORD dwUser);
- // 返回函数执行失败代码
- CLIENT_API DWORD CALL_METHOD CLIENT_GetLastError(void);
- // 设置连接设备超时时间和尝试次数
- CLIENT_API void CALL_METHOD CLIENT_SetConnectTime(int nWaitTime, int nTryTimes);
- // 设置登陆网络环境
- CLIENT_API void CALL_METHOD CLIENT_SetNetworkParam(NET_PARAM *pNetParam);
- // 获取SDK的版本信息
- CLIENT_API DWORD CALL_METHOD CLIENT_GetSDKVersion();
- //------------------------------------------------------------------------
- // 向设备注册
- CLIENT_API LONG CALL_METHOD CLIENT_Login(char *pchDVRIP, WORD wDVRPort, char *pchUserName, char *pchPassword, LPNET_DEVICEINFO lpDeviceInfo, int *error = 0);
- // 扩展接口;nSpecCap = 0为TCP方式下的登入,nSpecCap = 2为主动注册的登入,nSpecCap = 3为组播方式下的登入,nSpecCap = 4为UDP方式下的登入,nSpecCap = 6为只建主连接下的登入
- CLIENT_API LONG CALL_METHOD CLIENT_LoginEx(char *pchDVRIP, WORD wDVRPort, char *pchUserName, char *pchPassword, int nSpecCap, void* pCapParam, LPNET_DEVICEINFO lpDeviceInfo, int *error = 0);
- // 向设备注销
- CLIENT_API BOOL CALL_METHOD CLIENT_Logout(LONG lLoginID);
- //------------------------------------------------------------------------
- // 开始实时监视
- CLIENT_API LONG CALL_METHOD CLIENT_RealPlay(LONG lLoginID, int nChannelID, HWND hWnd);
- // 开始实时监视--扩展
- CLIENT_API LONG CALL_METHOD CLIENT_RealPlayEx(LONG lLoginID, int nChannelID, HWND hWnd, DH_RealPlayType rType = DH_RType_Realplay);
- // 多画面实时预览
- CLIENT_API LONG CALL_METHOD CLIENT_MultiPlay(LONG lLoginID, HWND hWnd);
- // 停止多画面实时预览
- CLIENT_API BOOL CALL_METHOD CLIENT_StopMultiPlay(LONG lMultiHandle);
- // 抓图;hPlayHandle为监视或回放句柄
- CLIENT_API BOOL CALL_METHOD CLIENT_CapturePicture(LONG hPlayHandle, const char *pchPicFileName);
- // 设置实时监视数据回调
- CLIENT_API BOOL CALL_METHOD CLIENT_SetRealDataCallBack(LONG lRealHandle, fRealDataCallBack cbRealData, DWORD dwUser);
- // 设置实时监视数据回调--扩展
- CLIENT_API BOOL CALL_METHOD CLIENT_SetRealDataCallBackEx(LONG lRealHandle, fRealDataCallBackEx cbRealData, DWORD dwUser, DWORD dwFlag);
- // 设置图象流畅性
- CLIENT_API BOOL CALL_METHOD CLIENT_AdjustFluency(LONG lRealHandle, int nLevel);
- // 保存数据为文件
- CLIENT_API BOOL CALL_METHOD CLIENT_SaveRealData(LONG lRealHandle, const char *pchFileName);
- // 结束保存数据为文件
- CLIENT_API BOOL CALL_METHOD CLIENT_StopSaveRealData(LONG lRealHandle);
- // 设置图像属性
- CLIENT_API BOOL CALL_METHOD CLIENT_ClientSetVideoEffect(LONG lPlayHandle, unsigned char nBrightness, unsigned char nContrast, unsigned char nHue, unsigned char nSaturation);
- // 获取图像属性
- CLIENT_API BOOL CALL_METHOD CLIENT_ClientGetVideoEffect(LONG lPlayHandle, unsigned char *nBrightness, unsigned char *nContrast, unsigned char *nHue, unsigned char *nSaturation);
- // 设置屏幕叠加回调
- CLIENT_API void CALL_METHOD CLIENT_RigisterDrawFun(fDrawCallBack cbDraw, DWORD dwUser);
- // 打开声音
- CLIENT_API BOOL CALL_METHOD CLIENT_OpenSound(LONG hPlayHandle);
- // 设置音量;lPlayHandle为监视或回放句柄
- CLIENT_API BOOL CALL_METHOD CLIENT_SetVolume(LONG lPlayHandle, int nVolume);
- // 关闭声音
- CLIENT_API BOOL CALL_METHOD CLIENT_CloseSound();
- // 停止实时预览
- CLIENT_API BOOL CALL_METHOD CLIENT_StopRealPlay(LONG lRealHandle);
- // 停止实时预览--扩展
- CLIENT_API BOOL CALL_METHOD CLIENT_StopRealPlayEx(LONG lRealHandle);
- //------------------------------------------------------------------------
- // 通用云台控制
- CLIENT_API BOOL CALL_METHOD CLIENT_PTZControl(LONG lLoginID, int nChannelID, DWORD dwPTZCommand, DWORD dwStep, BOOL dwStop);
- // 大华云台控制
- CLIENT_API BOOL CALL_METHOD CLIENT_DHPTZControl(LONG lLoginID, int nChannelID, DWORD dwPTZCommand, unsigned char param1, unsigned char param2, unsigned char param3, BOOL dwStop);
- // 大华云台控制扩展接口,支持三维快速定位
- CLIENT_API BOOL CALL_METHOD CLIENT_DHPTZControlEx(LONG lLoginID, int nChannelID, DWORD dwPTZCommand, LONG lParam1, LONG lParam2, LONG lParam3, BOOL dwStop);
- //------------------------------------------------------------------------
- // 查询时间段内是否有录像文件
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryRecordTime(LONG lLoginID, int nChannelId, int nRecordFileType, LPNET_TIME tmStart, LPNET_TIME tmEnd, char* pchCardid, BOOL *bResult, int waittime=1000);
- // 查询时间段内的所有录像文件
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryRecordFile(LONG lLoginID, int nChannelId, int nRecordFileType, LPNET_TIME tmStart, LPNET_TIME tmEnd, char* pchCardid, LPNET_RECORDFILE_INFO nriFileinfo, int maxlen, int *filecount, int waittime=1000, BOOL bTime = FALSE);
- // 开始查找录像文件
- CLIENT_API LONG CALL_METHOD CLIENT_FindFile(LONG lLoginID, int nChannelId, int nRecordFileType, char* cardid, LPNET_TIME time_start, LPNET_TIME time_end, BOOL bTime, int waittime);
- // 查找录像文件
- CLIENT_API int CALL_METHOD CLIENT_FindNextFile(LONG lFindHandle,LPNET_RECORDFILE_INFO lpFindData);
- // 结束录像文件查找
- CLIENT_API BOOL CALL_METHOD CLIENT_FindClose(LONG lFindHandle);
- // 按文件方式回放
- CLIENT_API LONG CALL_METHOD CLIENT_PlayBackByRecordFile(LONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, DWORD dwUserData);
- // 按文件方式回放--扩展
- CLIENT_API LONG CALL_METHOD CLIENT_PlayBackByRecordFileEx(LONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, DWORD dwPosUser, fDataCallBack fDownLoadDataCallBack, DWORD dwDataUser);
- // 按时间方式回放
- CLIENT_API LONG CALL_METHOD CLIENT_PlayBackByTime(LONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, DWORD dwPosUser);
- // 按时间方式回放--扩展
- CLIENT_API LONG CALL_METHOD CLIENT_PlayBackByTimeEx(LONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, DWORD dwPosUser, fDataCallBack fDownLoadDataCallBack, DWORD dwDataUser);
- // 定位录像回放起始点
- CLIENT_API BOOL CALL_METHOD CLIENT_SeekPlayBack(LONG lPlayHandle, unsigned int offsettime, unsigned int offsetbyte);
- // 暂停或恢复录像回放
- CLIENT_API BOOL CALL_METHOD CLIENT_PausePlayBack(LONG lPlayHandle, BOOL bPause);
- // 快进录像回放
- CLIENT_API BOOL CALL_METHOD CLIENT_FastPlayBack(LONG lPlayHandle);
- // 慢进录像回放
- CLIENT_API BOOL CALL_METHOD CLIENT_SlowPlayBack(LONG lPlayHandle);
- // 步进录像回放
- CLIENT_API BOOL CALL_METHOD CLIENT_StepPlayBack(LONG lPlayHandle, BOOL bStop);
- // 设置回放帧速
- CLIENT_API BOOL CALL_METHOD CLIENT_SetFramePlayBack(LONG lPlayHandle, int framerate);
- // 获取回放帧速
- CLIENT_API BOOL CALL_METHOD CLIENT_GetFramePlayBack(LONG lPlayHandle, int *fileframerate, int *playframerate);
- // 恢复正常回放速度
- CLIENT_API BOOL CALL_METHOD CLIENT_NormalPlayBack(LONG lPlayHandle);
- // 获取回放OSD时间
- CLIENT_API BOOL CALL_METHOD CLIENT_GetPlayBackOsdTime(LONG lPlayHandle, LPNET_TIME lpOsdTime, LPNET_TIME lpStartTime, LPNET_TIME lpEndTime);
- // 停止录像回放
- CLIENT_API BOOL CALL_METHOD CLIENT_StopPlayBack(LONG lPlayHandle);
- // 下载录像文件
- CLIENT_API LONG CALL_METHOD CLIENT_DownloadByRecordFile(LONG lLoginID,LPNET_RECORDFILE_INFO lpRecordFile, char *sSavedFileName, fDownLoadPosCallBack cbDownLoadPos, DWORD dwUserData);
- // 通过时间下载录像
- CLIENT_API LONG CALL_METHOD CLIENT_DownloadByTime(LONG lLoginID, int nChannelId, int nRecordFileType, LPNET_TIME tmStart, LPNET_TIME tmEnd, char *sSavedFileName, fTimeDownLoadPosCallBack cbTimeDownLoadPos, DWORD dwUserData);
- // 查询录像下载进度
- CLIENT_API BOOL CALL_METHOD CLIENT_GetDownloadPos(LONG lFileHandle, int *nTotalSize, int *nDownLoadSize);
- // 停止录像下载
- CLIENT_API BOOL CALL_METHOD CLIENT_StopDownload(LONG lFileHandle);
- //------------------------------------------------------------------------
- // 设置报警回调函数
- CLIENT_API void CALL_METHOD CLIENT_SetDVRMessCallBack(fMessCallBack cbMessage,DWORD dwUser);
- // 向设备订阅报警
- CLIENT_API BOOL CALL_METHOD CLIENT_StartListen(LONG lLoginID);
- // 向设备订阅报警--扩展
- CLIENT_API BOOL CALL_METHOD CLIENT_StartListenEx(LONG lLoginID);
- // 停止订阅报警
- CLIENT_API BOOL CALL_METHOD CLIENT_StopListen(LONG lLoginID);
- //------------------------------------------------------------------------
- // 主动注册功能,启动服务;nTimeout参数已无效
- CLIENT_API LONG CALL_METHOD CLIENT_ListenServer(char* ip, WORD port, int nTimeout, fServiceCallBack cbListen, DWORD dwUserData);
- // 停止服务
- CLIENT_API BOOL CALL_METHOD CLIENT_StopListenServer(LONG lServerHandle);
- // 响应设备的注册请求
- CLIENT_API BOOL CALL_METHOD CLIENT_ResponseDevReg(char *devSerial, char* ip, WORD port, BOOL bAccept);
- //------------------------------------------------------------------------
- // 报警上传功能,启动服务;dwTimeOut参数已无效
- CLIENT_API LONG CALL_METHOD CLIENT_StartService(WORD wPort, char *pIp = NULL, fServiceCallBack pfscb = NULL, DWORD dwTimeOut = 0xffffffff, DWORD dwUserData = 0);
- // 停止服务
- CLIENT_API BOOL CALL_METHOD CLIENT_StopService(LONG lHandle);
- //------------------------------------------------------------------------
- // 设置语音对讲模式,客户端方式还是服务器方式
- CLIENT_API BOOL CALL_METHOD CLIENT_SetDeviceMode(LONG lLoginID, EM_USEDEV_MODE emType, void* pValue);
- // 打开语音对讲
- CLIENT_API LONG CALL_METHOD CLIENT_StartTalkEx(LONG lLoginID, pfAudioDataCallBack pfcb, DWORD dwUser);
- // 开始PC端录音
- CLIENT_API BOOL CALL_METHOD CLIENT_RecordStart();
- // 结束PC端录音
- CLIENT_API BOOL CALL_METHOD CLIENT_RecordStop();
- // 发送语音数据到设备
- CLIENT_API LONG CALL_METHOD CLIENT_TalkSendData(LONG lTalkHandle, char *pSendBuf, DWORD dwBufSize);
- // 解码音频数据
- CLIENT_API void CALL_METHOD CLIENT_AudioDec(char *pAudioDataBuf, DWORD dwBufSize);
- // 设置语音对讲的音量
- CLIENT_API BOOL CALL_METHOD CLIENT_SetAudioClientVolume(LONG lTalkHandle, WORD wVolume);
- // 停止语音对讲
- CLIENT_API BOOL CALL_METHOD CLIENT_StopTalkEx(LONG lTalkHandle);
- // 添加设备到广播组
- CLIENT_API BOOL CALL_METHOD CLIENT_AudioBroadcastAddDev(LONG lLoginID);
- // 从广播组中删除设备
- CLIENT_API BOOL CALL_METHOD CLIENT_AudioBroadcastDelDev(LONG lLoginID);
- // 音频编码--初始化(特定标准格式->大华格式)
- CLIENT_API int CALL_METHOD CLIENT_InitAudioEncode(DH_AUDIO_FORMAT aft);
- // 音频编码--数据编码
- CLIENT_API int CALL_METHOD CLIENT_AudioEncode(LONG lTalkHandle, BYTE *lpInBuf, DWORD *lpInLen, BYTE *lpOutBuf, DWORD *lpOutLen);
- // 音频编码--完成退出
- CLIENT_API int CALL_METHOD CLIENT_ReleaseAudioEncode();
- //------------------------------------------------------------------------
- // 查询设备日志
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryLog(LONG lLoginID, char *pLogBuffer, int maxlen, int *nLogBufferlen, int waittime=3000);
- // 查询设备日志,以分页方式查询
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryDeviceLog(LONG lLoginID, QUERY_DEVICE_LOG_PARAM *pQueryParam, char *pLogBuffer, int nLogBufferLen, int *pRecLogNum, int waittime=3000);
- // 查道通道录像状态
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryRecordState(LONG lLoginID, char *pRSBuffer, int maxlen, int *nRSBufferlen, int waittime=1000);
- // 查询设备状态
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryDevState(LONG lLoginID, int nType, char *pBuf, int nBufLen, int *pRetLen, int waittime=1000);
- // 查询系统能力信息
- CLIENT_API BOOL CALL_METHOD CLIENT_QuerySystemInfo(LONG lLoginID, int nSystemType, char *pSysInfoBuffer, int maxlen, int *nSysInfolen, int waittime=1000);
- // 获取通道码流
- CLIENT_API LONG CALL_METHOD CLIENT_GetStatiscFlux(LONG lLoginID, LONG lPlayHandle);
- // 获取云台信息
- CLIENT_API BOOL CALL_METHOD CLIENT_GetPtzOptAttr(LONG lLoginID,DWORD dwProtocolIndex,LPVOID lpOutBuffer,DWORD dwBufLen,DWORD *lpBytesReturned,int waittime=500);
- //------------------------------------------------------------------------
- // 重启设备
- CLIENT_API BOOL CALL_METHOD CLIENT_RebootDev(LONG lLoginID);
- // 关闭设备
- CLIENT_API BOOL CALL_METHOD CLIENT_ShutDownDev(LONG lLoginID);
- // 设备控制
- CLIENT_API BOOL CALL_METHOD CLIENT_ControlDevice(LONG lLoginID, CtrlType type, void *param, int waittime = 1000);
- // 设置通道录像状态
- CLIENT_API BOOL CALL_METHOD CLIENT_SetupRecordState(LONG lLoginID, char *pRSBuffer, int nRSBufferlen);
- // 查询IO状态
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryIOControlState(LONG lLoginID, DH_IOTYPE emType,
- void *pState, int maxlen, int *nIOCount, int waittime=1000);
- // IO控制
- CLIENT_API BOOL CALL_METHOD CLIENT_IOControl(LONG lLoginID, DH_IOTYPE emType, void *pState, int maxlen);
- // 强制I帧 强制主码流时:nChannelID(0-15);强制辅码流时:nChannelID=-1,辅码流1:nSubChannel(0~15),辅码流2:nSubChannel(16~31),辅码流3:nSubChannel(32~47).
- CLIENT_API BOOL CALL_METHOD CLIENT_MakeKeyFrame(LONG lLoginID, int nChannelID, int nSubChannel=0);
- //------------------------------------------------------------------------
- // 查询用户信息
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryUserInfo(LONG lLoginID, USER_MANAGE_INFO *info, int waittime=1000);
- // 查询用户信息--扩展
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryUserInfoEx(LONG lLoginID, USER_MANAGE_INFO_EX *info, int waittime=1000);
- // 操作设备用户
- CLIENT_API BOOL CALL_METHOD CLIENT_OperateUserInfo(LONG lLoginID, int nOperateType, void *opParam, void *subParam, int waittime=1000);
- // 操作设备用户--扩展
- CLIENT_API BOOL CALL_METHOD CLIENT_OperateUserInfoEx(LONG lLoginID, int nOperateType, void *opParam, void *subParam, int waittime=1000);
- //------------------------------------------------------------------------
- // 创建透明串口通道
- CLIENT_API LONG CALL_METHOD CLIENT_CreateTransComChannel(LONG lLoginID, int TransComType, unsigned int baudrate, unsigned int databits, unsigned int stopbits, unsigned int parity, fTransComCallBack cbTransCom, DWORD dwUser);
- // 透明串口发送数据
- CLIENT_API BOOL CALL_METHOD CLIENT_SendTransComData(LONG lTransComChannel, char *pBuffer, DWORD dwBufSize);
- // 释放通明串口通道
- CLIENT_API BOOL CALL_METHOD CLIENT_DestroyTransComChannel(LONG lTransComChannel);
- // 查询透明串口状态
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryTransComParams(LONG lLoginID, int TransComType, DH_COMM_STATE* pCommState, int nWaitTime = 500);
- //------------------------------------------------------------------------
- // 开始升级设备程序
- CLIENT_API LONG CALL_METHOD CLIENT_StartUpgrade(LONG lLoginID, char *pchFileName, fUpgradeCallBack cbUpgrade, DWORD dwUser);
- // 开始升级设备程序--扩展
- CLIENT_API LONG CALL_METHOD CLIENT_StartUpgradeEx(LONG lLoginID, EM_UPGRADE_TYPE emType, char *pchFileName, fUpgradeCallBack cbUpgrade, DWORD dwUser);
- // 发送数据
- CLIENT_API BOOL CALL_METHOD CLIENT_SendUpgrade(LONG lUpgradeID);
- // 结束升级设备程序
- CLIENT_API BOOL CALL_METHOD CLIENT_StopUpgrade(LONG lUpgradeID);
- //------------------------------------------------------------------------
- // 查询配置信息
- CLIENT_API BOOL CALL_METHOD CLIENT_GetDevConfig(LONG lLoginID, DWORD dwCommand, LONG lChannel, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned,int waittime=500);
- // 设置配置信息
- CLIENT_API BOOL CALL_METHOD CLIENT_SetDevConfig(LONG lLoginID, DWORD dwCommand, LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize, int waittime=500);
- //------------------------------------------------------------------------
- // 查询设备通道名称
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryChannelName(LONG lLoginID, char *pChannelName, int maxlen, int *nChannelCount, int waittime=1000);
- // 设置设备通道名称
- CLIENT_API BOOL CALL_METHOD CLIENT_SetupChannelName(LONG lLoginID,char *pbuf, int nbuflen);
- // 设置设备通道字符叠加
- CLIENT_API BOOL CALL_METHOD CLIENT_SetupChannelOsdString(LONG lLoginID, int nChannelNo, DH_CHANNEL_OSDSTRING* struOsdString, int nbuflen);
- // 查询设备当前时间
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryDeviceTime(LONG lLoginID, LPNET_TIME pDeviceTime, int waittime=1000);
- // 设置设备当前时间
- CLIENT_API BOOL CALL_METHOD CLIENT_SetupDeviceTime(LONG lLoginID, LPNET_TIME pDeviceTime);
- // 设置设备限制码流
- CLIENT_API BOOL CALL_METHOD CLIENT_SetMaxFlux(LONG lLoginID, WORD wFlux);
- //------------------------------------------------------------------------
- // 导入配置文件
- CLIENT_API LONG CALL_METHOD CLIENT_ImportConfigFile(LONG lLoginID, char *szFileName, fDownLoadPosCallBack cbUploadPos, DWORD dwUserData, DWORD param=0);
- // 停止导入配置文件
- CLIENT_API BOOL CALL_METHOD CLIENT_StopImportCfgFile(LONG lImportHandle);
- // 导出配置文件
- CLIENT_API LONG CALL_METHOD CLIENT_ExportConfigFile(LONG lLoginID, DH_CONFIG_FILE_TYPE emConfigFileType, char *szSavedFilePath, fDownLoadPosCallBack cbDownLoadPos, DWORD dwUserData);
- // 停止导出配置文件
- CLIENT_API BOOL CALL_METHOD CLIENT_StopExportCfgFile(LONG lExportHandle);
- //------------------------------------------------------------------------
- // 通过设备名字或者设备序列号向DDNS服务器查询设备IP
- CLIENT_API BOOL CALL_METHOD CLIENT_GetDVRIPByResolveSvr(char *pchDVRIP, WORD wDVRPort, BYTE *sDVRName, WORD wDVRNameLen, BYTE *sDVRSerialNumber, WORD wDVRSerialLen, char* sGetIP);
- // 搜索局域网内IPC、NVS等设备
- CLIENT_API BOOL CALL_METHOD CLIENT_SearchDevices(char* szBuf, int nBufLen, int* pRetLen, DWORD dwSearchTime);
- //------------------------------------------------------------------------
- // 平台接入接口
- CLIENT_API BOOL CALL_METHOD CLIENT_GetPlatFormInfo(LONG lLoginID, DWORD dwCommand, int nSubCommand, int nParam, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned,int waittime=500);
- CLIENT_API BOOL CALL_METHOD CLIENT_SetPlatFormInfo(LONG lLoginID, DWORD dwCommand, int nSubCommand, int nParam, LPVOID lpInBuffer, DWORD dwInBufferSize, int waittime=500);
- ///////////////////////////////车载设备接口///////////////////////////////
- // 设置抓图回调函数
- CLIENT_API void CALL_METHOD CLIENT_SetSnapRevCallBack(fSnapRev OnSnapRevMessage, DWORD dwUser);
- // 抓图请求
- CLIENT_API BOOL CALL_METHOD CLIENT_SnapPicture(LONG lLoginID, SNAP_PARAMS par);
- // 设置GPS订阅回调函数
- CLIENT_API void CALL_METHOD CLIENT_SetSubcribeGPSCallBack(fGPSRev OnGPSMessage, DWORD dwUser);
- // GPS信息订阅
- CLIENT_API BOOL CALL_METHOD CLIENT_SubcribeGPS (LONG lLoginID, BOOL bStart, LONG KeepTime, LONG InterTime);
- //////////////////////////////解码器设备接口//////////////////////////////
- // 查询解码器信息
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryDecoderInfo(LONG lLoginID, LPDEV_DECODER_INFO lpDecInfo, int waittime=1000);
- // 查询解码器当前TV信息
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryDecoderTVInfo(LONG lLoginID, int nMonitorID, LPDEV_DECODER_TV lpMonitorInfo, int waittime=1000);
- // 查询解码通道信息
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryDecEncoderInfo(LONG lLoginID, int nEncoderID, LPDEV_ENCODER_INFO lpEncoderInfo, int waittime=1000);
- // 设置解码器TV输出使能
- CLIENT_API BOOL CALL_METHOD CLIENT_SetDecTVOutEnable(LONG lLoginID, BYTE *pDecTVOutEnable, int nBufLen, int waittime=1000);
- //------------------------------------------------------------------------
- // 设置异步回调函数
- CLIENT_API BOOL CALL_METHOD CLIENT_SetOperateCallBack(LONG lLoginID, fMessDataCallBack cbMessData, DWORD dwUser);
- // 控制解码器TV画面分割,接口为异步方式
- CLIENT_API LONG CALL_METHOD CLIENT_CtrlDecTVScreen(LONG lLoginID, int nMonitorID, BOOL bEnable, int nSplitType, BYTE *pEncoderChannel, int nBufLen, void* userdata=NULL);
- // 解码器TV画面切换,接口为异步方式
- // 根据nMonitorID(TV号)、nWndID(画面号)转换为nEncoderID(解码通道)公式:nEncoderID=nMonitorID*nSplitNum(分割数)+nWndID
- CLIENT_API LONG CALL_METHOD CLIENT_SwitchDecTVEncoder(LONG lLoginID, int nEncoderID, LPDEV_ENCODER_INFO lpEncoderInfo, void* userdata=NULL);
- //------------------------------------------------------------------------
- // 增加画面组合
- CLIENT_API int CALL_METHOD CLIENT_AddTourCombin(LONG lLoginID, int nMonitorID, int nSplitType, BYTE *pEncoderChannnel, int nBufLen, int waittime=1000);
- // 删除画面组合
- CLIENT_API BOOL CALL_METHOD CLIENT_DelTourCombin(LONG lLoginID, int nMonitorID, int nCombinID, int waittime=1000);
- // 修改画面组合
- CLIENT_API BOOL CALL_METHOD CLIENT_SetTourCombin(LONG lLoginID, int nMonitorID, int nCombinID, int nSplitType, BYTE *pEncoderChannel, int nBufLen, int waittime=1000);
- // 查询画面组合,nCombinID范围0~32
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryTourCombin(LONG lLoginID, int nMonitorID, int nCombinID, LPDEC_COMBIN_INFO lpDecCombinInfo, int waittime=1000);
- // 设置轮巡操作
- CLIENT_API BOOL CALL_METHOD CLIENT_SetDecoderTour(LONG lLoginID, int nMonitorID, LPDEC_TOUR_COMBIN lpDecTourInfo, int waittime=1000);
- // 查询轮巡操作
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryDecoderTour(LONG lLoginID, int nMonitorID, LPDEC_TOUR_COMBIN lpDecTourInfo, int waittime=1000);
- //------------------------------------------------------------------------
- typedef void (CALLBACK *fDecPlayBackPosCallBack)(LONG lLoginID, int nEncoderID, DWORD dwTotalSize, DWORD dwPlaySize, DWORD dwUser);
- // 设置回放进度回调函数
- CLIENT_API BOOL CALL_METHOD CLIENT_SetDecPlaybackPos(LONG lLoginID, fDecPlayBackPosCallBack cbPlaybackPos, DWORD dwUser);
- // 解码器TV画面回放,接口为异步方式
- CLIENT_API LONG CALL_METHOD CLIENT_DecTVPlayback(LONG lLoginID, int nEncoderID, DEC_PLAYBACK_MODE emPlaybackMode, LPVOID lpInBuffer, DWORD dwInBufferSize, void* userdata=NULL);
- // 解码器TV画面回放控制
- CLIENT_API BOOL CALL_METHOD CLIENT_CtrlDecPlayback(LONG lLoginID, int nEncoderID, DEC_CTRL_PLAYBACK_TYPE emCtrlType, int nValue, int waittime=1000);
- ///////////////////////////////特殊版本接口///////////////////////////////
- // 查询设备日志--扩展
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryLogEx(LONG lLoginID, DH_LOG_QUERY_TYPE logType, char *pLogBuffer, int maxlen, int *nLogBufferlen, void* reserved, int waittime=3000);
- // 主动注册重定向功能,建立定向连接
- CLIENT_API LONG CALL_METHOD CLIENT_ControlConnectServer(LONG lLoginID, char* RegServerIP, WORD RegServerPort, int TimeOut=3000);
- // 连接主动注册
- CLIENT_API BOOL CALL_METHOD CLIENT_ControlRegisterServer(LONG lLoginID, LONG ConnectionID, int waittime=1000);
- // 断开定向连接
- CLIENT_API BOOL CALL_METHOD CLIENT_ControlDisconnectRegServer(LONG lLoginID, LONG ConnectionID);
- // 查询设备上主动注册服务器信息
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryControlRegServerInfo(LONG lLoginID, LPDEV_SERVER_AUTOREGISTER lpRegServerInfo, int waittime=2000);
- // 文件上传接口
- CLIENT_API LONG CALL_METHOD CLIENT_FileTransmit(LONG lLoginID, int nTransType, char* szInBuf, int nInBufLen, fTransFileCallBack cbTransFile, DWORD dwUserData, int waittime);
- /////////////////////////////////淘汰接口/////////////////////////////////
- // 查询系统服务器配置;该接口已淘汰,请使用CLIENT_GetDevConfig
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryConfig(LONG lLoginID, int nConfigType, char *pConfigbuf, int maxlen, int *nConfigbuflen, int waittime=1000);
- // 设置系统服务器配置;该接口已淘汰,请使用CLIENT_SetDevConfig
- CLIENT_API BOOL CALL_METHOD CLIENT_SetupConfig(LONG lLoginID, int nConfigType, char *pConfigbuf, int nConfigbuflen, int waittime=1000);
- // 该接口已淘汰,请不要使用
- CLIENT_API BOOL CALL_METHOD CLIENT_Reset(LONG lLoginID, BOOL bReset);
- // 查询串口协议 - 该接口已淘汰,请使用CLIENT_GetDevConfig
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryComProtocol(LONG lLoginID, int nProtocolType, char *pProtocolBuffer, int maxlen, int *nProtocollen, int waittime=1000);
- // 开始对讲;该接口已淘汰,请使用CLIENT_StartTalkEx
- CLIENT_API BOOL CALL_METHOD CLIENT_StartTalk(LONG lRealHandle, BOOL bCustomSend=false);
- // 结束对讲;该接口已淘汰,请使用CLIENT_StopTalkEx
- CLIENT_API BOOL CALL_METHOD CLIENT_StopTalk(LONG lRealHandle);
- // 发送自定义对讲数据;该接口已淘汰,请使用CLIENT_TalkSendData
- CLIENT_API BOOL CALL_METHOD CLIENT_SendTalkData_Custom(LONG lRealHandle, char *pBuffer, DWORD dwBufSize);
- // 设置实时预览缓冲大小
- CLIENT_API BOOL CALL_METHOD CLIENT_SetPlayerBufNumber(LONG lRealHandle, DWORD dwBufNum);
- // 通过时间下载文件
- CLIENT_API BOOL CALL_METHOD CLIENT_GetFileByTime(LONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, char *sSavedFileName);
- // 网络回放控制
- CLIENT_API BOOL CALL_METHOD CLIENT_PlayBackControl(LONG lPlayHandle, DWORD dwControlCode, DWORD dwInValue, DWORD *lpOutValue);
- // 查询设备工作状态 该接口已淘汰,请使用CLIENT_QueryDevState
- CLIENT_API BOOL CALL_METHOD CLIENT_GetDEVWorkState(LONG lLoginID, LPNET_DEV_WORKSTATE lpWorkState, int waittime=1000);
- // 异步查询设备日志
- CLIENT_API BOOL CALL_METHOD CLIENT_QueryLogCallback(LONG lLoginID, fLogDataCallBack cbLogData, DWORD dwUser);
- #ifdef __cplusplus
- }
- #endif
- #endif // DHNETSDK_H