dhnetsdk.h
上传用户:sy_eblight
上传日期:2020-11-03
资源大小:267k
文件大小:145k
源码类别:

Static控件

开发平台:

Visual C++

  1. #ifndef DHNETSDK_H
  2. #define DHNETSDK_H
  3. #include "dhassistant.h"
  4. #ifdef WIN32
  5. #ifdef DHNETSDK_EXPORTS
  6. #define CLIENT_API  __declspec(dllexport) 
  7. #else
  8. #define CLIENT_API  __declspec(dllimport)
  9. #endif
  10. #define CALLBACK __stdcall
  11. #define CALL_METHOD  __stdcall  //__cdecl
  12. #else //linux
  13. #define CLIENT_API extern "C"
  14. #define CALL_METHOD
  15. #define CALLBACK
  16. //#define RELEASE_HEADER //发布头文件
  17. #ifdef RELEASE_HEADER
  18. #define WORD unsigned short
  19. #define DWORD unsigned long
  20. #define LPDWORD DWORD*
  21. #define BOOL int
  22. #define TRUE 1
  23. #define FALSE 0
  24. #define BYTE unsigned char
  25. #define LONG long
  26. #define UINT unsigned int
  27. #define HDC void*
  28. #define HWND void*
  29. #define LPVOID void*
  30. #define NULL 0
  31. typedef struct  tagRECT
  32. {
  33.     LONG left;
  34.     LONG top;
  35.     LONG right;
  36.     LONG bottom;
  37. } RECT;
  38. #else //内部编译
  39. #include "../netsdk/osIndependent.h"
  40. #endif
  41. #endif
  42. #ifdef __cplusplus
  43. extern "C" {
  44. #endif
  45. /************************************************************************
  46.  ** 常量定义
  47.  ***********************************************************************/
  48. #define DH_SERIALNO_LEN  48 // 设备序列号字符长度
  49. #define DH_MAX_DISKNUM  32 // 最大硬盘个数
  50. #define DH_MAX_SDCARDNUM 32 // 最大SD卡个数
  51. #define DH_MAX_BURNING_DEV_NUM 32 // 最大刻录设备个数
  52. #define DH_BURNING_DEV_NAMELEN 32 // 刻录设备名字最大长度
  53. #define DH_MAX_LINK  6
  54. #define DH_MAX_CHANNUM  16 // 最大通道个数
  55. #define DH_MAX_ALARMIN  128 // 最大报警输入个数
  56. #define DH_MAX_ALARMOUT  64 // 最大报警输出个数
  57. #define DH_MAX_RIGHT_NUM 100 // 用户权限个数上限
  58. #define DH_MAX_GROUP_NUM 20 // 用户组个数上限
  59. #define DH_MAX_USER_NUM 200 // 用户个数上限
  60. #define DH_RIGHT_NAME_LENGTH 32 // 权限名长度
  61. #define DH_USER_NAME_LENGTH 8 // 用户名长度
  62. #define DH_USER_PSW_LENGTH 8 // 用户密码长度
  63. #define DH_MEMO_LENGTH 32 // 备注长度
  64. #define DH_MAX_STRING_LEN 128
  65. #define DH_DVR_SERIAL_RETURN 1 // 设备发送序列号回调
  66. #define DH_DVR_DISCONNECT -1 // 验证期间设备断线回调
  67. #define MAX_STRING_LINE_LEN 6 // 最多六行
  68. #define MAX_PER_STRING_LEN 20 // 每行最大长度
  69. #define DH_MAX_MAIL_NAME_LEN 64 // 新的邮件结构体支持的用户名长度
  70. #define DH_MAX_MAIL_PSW_LEN 64 // 新的邮件结构体支持的密码长度
  71. // 远程配置结构体相关常量
  72. #define DH_MAX_MAIL_ADDR_LEN 128 // 邮件发(收)地址最大长度
  73. #define DH_MAX_MAIL_SUBJECT_LEN 64 // 邮件主题最大长度
  74. #define DH_MAX_IPADDR_LEN 16 // IP地址字符串长度
  75. #define DH_MACADDR_LEN 40 // MAC地址字符串长度
  76. #define DH_MAX_URL_LEN 128 // URL字符串长度
  77. #define DH_MAX_DEV_ID_LEN 48 // 机器编号最大长度
  78. #define DH_MAX_HOST_NAMELEN 64 // 主机名长度,
  79. #define DH_MAX_HOST_PSWLEN 32 // 密码长度
  80. #define DH_MAX_NAME_LEN 16 // 通用名字字符串长度
  81. #define DH_MAX_ETHERNET_NUM 2 // 以太网口最大个数
  82. #define DH_DEV_SERIALNO_LEN 48 // 序列号字符串长度
  83. #define DH_DEV_TYPE_LEN 32 // 设备类型字符串长度
  84. #define DH_N_WEEKS 7 // 一周的天数
  85. #define DH_N_TSECT 6 // 通用时间段个数
  86. #define DH_N_REC_TSECT 6 // 录像时间段个数
  87. #define DH_N_COL_TSECT 2 // 颜色时间段个数
  88. #define DH_CHAN_NAME_LEN 32 // 通道名长度,DVR DSP能力限制,最多32字节
  89. #define DH_N_ENCODE_AUX 3 // 扩展码流个数
  90. #define DH_N_TALK 1 // 最多对讲通道个数
  91. #define DH_N_COVERS 1 // 遮挡区域个数
  92. #define DH_N_CHANNEL 16 // 最大通道个数
  93. #define DH_N_ALARM_TSECT 2 // 报警提示时间段个数
  94. #define DH_MAX_ALARMOUT_NUM 16 // 报警输出口个数上限
  95. #define DH_MAX_AUDIO_IN_NUM 16 // 音频输入口个数上限
  96. #define DH_MAX_VIDEO_IN_NUM 16 // 视频输入口个数上限
  97. #define DH_MAX_ALARM_IN_NUM 16 // 报警输入口个数上限
  98. #define DH_MAX_DISK_NUM 16 // 硬盘个数上限,暂定为16
  99. #define DH_MAX_DECODER_NUM 16 // 解码器(485)个数上限
  100. #define DH_MAX_232FUNCS 10 // 232串口功能个数上限
  101. #define DH_MAX_232_NUM 2 // 232串口个数上限
  102. #define DH_MAX_DECPRO_LIST_SIZE 100 // 解码器协议列表个数上限
  103. #define DH_FTP_MAXDIRLEN 240 // FTP文件目录最大长度
  104. #define DH_MATRIX_MAXOUT 16 // 矩阵输出口最大个数
  105. #define DH_TOUR_GROUP_NUM 6 // 矩阵输出组最大个数
  106. #define DH_MAX_DDNS_NUM 10 // 设备支持的ddns服务器最大个数
  107. #define DH_MAX_SERVER_TYPE_LEN 32 // ddns服务器类型,最大字符串长度
  108. #define DH_MAX_DOMAIN_NAME_LEN 256 // ddns域名,最大字符串长度
  109. #define DH_MAX_DDNS_ALIAS_LEN 32 // ddns服务器别名,最大字符串长度
  110. #define DH_MOTION_ROW 32 // 动态检测区域的行数
  111. #define DH_MOTION_COL 32 // 动态检测区域的列数
  112. #define DH_FTP_USERNAME_LEN 64 // FTP配置,用户名最大长度
  113. #define DH_FTP_PASSWORD_LEN 64 // FTP配置,密码最大长度
  114. #define DH_TIME_SECTION 2 // FTP配置,每天时间段个数
  115. #define DH_FTP_MAX_PATH 240 // FTP配置,文件路径名最大长度
  116. #define DH_INTERVIDEO_UCOM_CHANID 32 // 平台接入配置,U网通通道ID
  117. #define DH_INTERVIDEO_UCOM_DEVID 32 // 平台接入配置,U网通设备ID
  118. #define DH_INTERVIDEO_UCOM_REGPSW 16 // 平台接入配置,U网通注册密码
  119. #define DH_INTERVIDEO_UCOM_USERNAME 32 // 平台接入配置,U网通用户名
  120. #define DH_INTERVIDEO_UCOM_USERPSW 32 // 平台接入配置,U网通密码
  121. #define DH_INTERVIDEO_NSS_IP 32 // 平台接入配置,中兴力维IP
  122. #define DH_INTERVIDEO_NSS_SERIAL 32 // 平台接入配置,中兴力维serial
  123. #define DH_INTERVIDEO_NSS_USER 32 // 平台接入配置,中兴力维user
  124. #define DH_INTERVIDEO_NSS_PWD 50 // 平台接入配置,中兴力维password
  125. #define DH_MAX_VIDEO_COVER_NUM 16 // 遮挡区域最大个数
  126. #define DH_MAX_WATERMAKE_DATA 4096 // 水印图片数据最大长度
  127. #define DH_MAX_WATERMAKE_LETTER 128 // 水印文字最大长度
  128. #define DH_MAX_WLANDEVICE_NUM 10 // 最多搜索出的无线设备个数
  129. #define DH_MAX_ALARM_NAME 64 // 地址长度
  130. #define DH_MAX_REGISTER_SERVER_NUM 10 // 主动注册服务器个数
  131. #define DH_SNIFFER_FRAMEID_NUM 6 // 6个FRAME ID 选项
  132. #define DH_SNIFFER_CONTENT_NUM 4 // 每个FRAME对应的4个抓包内容
  133. #define DH_SNIFFER_CONTENT_NUM_EX 8 // 每个FRAME对应的8个抓包内容
  134. #define DH_SNIFFER_PROTOCOL_SIZE 20 // 协议名字长度
  135. #define DH_MAX_PROTOCOL_NAME_LENGTH 20
  136. #define DH_SNIFFER_GROUP_NUM 4 // 4组抓包设置
  137. #define MAX_PATH_STOR 240 // 远程目录的长度
  138. #define DH_ALARM_OCCUR_TIME_LEN 40 // 新的报警上传时间的长度
  139. #define DH_VIDEO_OSD_NAME_NUM 64 // 叠加的名称长度,目前支持32个英文,16个中文
  140. #define DH_VIDEO_CUSTOM_OSD_NUM 8 // 支持的自定义叠加的数目,不包含时间和通道
  141. #define DH_CONTROL_AUTO_REGISTER_NUM 100        // 支持定向主动注册服务器的个数
  142. #define DH_MMS_RECEIVER_NUM          100        // 支持短信接收者的个数
  143. #define DH_MMS_SMSACTIVATION_NUM     100        // 支持短信发送者的个数
  144. #define DH_MMS_DIALINACTIVATION_NUM  100        // 支持拨号发送者的个数
  145. // 查询类型,对应CLIENT_QueryDevState接口
  146. #define DH_DEVSTATE_COMM_ALARM 0x0001 // 查询普通报警状态(包括外部报警,视频丢失,动态检测)
  147. #define DH_DEVSTATE_SHELTER_ALARM 0x0002 // 查询遮挡报警状态
  148. #define DH_DEVSTATE_RECORDING 0x0003 // 查询录象状态
  149. #define DH_DEVSTATE_DISK 0x0004 // 查询硬盘信息
  150. #define DH_DEVSTATE_RESOURCE 0x0005 // 查询系统资源状态
  151. #define DH_DEVSTATE_BITRATE 0x0006 // 查询通道码流
  152. #define DH_DEVSTATE_CONN 0x0007 // 查询设备连接状态
  153. #define DH_DEVSTATE_PROTOCAL_VER 0x0008 // 查询网络协议版本号,pBuf = int*
  154. #define DH_DEVSTATE_TALK_ECTYPE 0x0009 // 查询设备支持的语音对讲格式列表,见结构体DHDEV_TALKFORMAT_LIST
  155. #define DH_DEVSTATE_SD_CARD 0x000A // 查询SD卡信息(IPC类产品)
  156. #define DH_DEVSTATE_BURNING_DEV 0x000B // 查询刻录机信息
  157. #define DH_DEVSTATE_BURNING_PROGRESS 0x000C // 查询刻录进度
  158. #define DH_DEVSTATE_PLATFORM 0x000D // 查询设备支持的接入平台
  159. #define DH_DEVSTATE_CAMERA 0x000E // 查询摄像头属性信息(IPC类产品),pBuf = DHDEV_CAMERA_INFO *,可以有多个结构体
  160. #define DH_DEVSTATE_SOFTWARE 0x000F // 查询设备软件版本信息
  161. #define DH_DEVSTATE_LANGUAGE        0x0010 // 查询设备支持的语音种类
  162. #define DH_DEVSTATE_DSP 0x0011 // 查询DSP能力描述
  163. #define DH_DEVSTATE_OEM 0x0012 // 查询OEM信息
  164. #define DH_DEVSTATE_NET 0x0013 // 查询网络运行状态信息
  165. #define DH_DEVSTATE_TYPE 0x0014 // 查询设备类型
  166. #define DH_DEVSTATE_SNAP 0x0015 // 查询抓图功能属性(IPC类产品)
  167. #define DH_DEVSTATE_RECORD_TIME 0x0016 // 查询最早录像时间和最近录像时间
  168. #define DH_DEVSTATE_NET_RSSI        0x0017      // 查询无线网络信号强度,见结构体DHDEV_WIRELESS_RSS_INFO
  169. #define DH_DEVSTATE_BURNING_ATTACH 0x0018 // 查询附件刻录选项
  170. // 配置类型,对应CLIENT_GetDevConfig和CLIENT_SetDevConfig接口
  171. #define DH_DEV_DEVICECFG 0x0001 // 设备属性配置
  172. #define DH_DEV_NETCFG 0x0002 // 网络配置
  173. #define DH_DEV_CHANNELCFG 0x0003 // 图象通道配置
  174. #define DH_DEV_PREVIEWCFG  0x0004 // 预览参数配置
  175. #define DH_DEV_RECORDCFG 0x0005 // 录像配置
  176. #define DH_DEV_COMMCFG 0x0006 // 串口属性配置
  177. #define DH_DEV_ALARMCFG  0x0007 // 报警属性配置
  178. #define DH_DEV_TIMECFG  0x0008 // DVR时间配置
  179. #define DH_DEV_TALKCFG 0x0009 // 对讲参数配置
  180. #define DH_DEV_AUTOMTCFG 0x000A // 自动维护配置
  181. #define DH_DEV_VEDIO_MARTIX 0x000B // 本机矩阵控制策略配置
  182. #define DH_DEV_MULTI_DDNS 0x000C // 多ddns服务器配置
  183. #define DH_DEV_SNAP_CFG 0x000D // 抓图相关配置
  184. #define DH_DEV_WEB_URL_CFG 0x000E // HTTP路径配置
  185. #define DH_DEV_FTP_PROTO_CFG 0x000F // FTP上传配置
  186. #define DH_DEV_INTERVIDEO_CFG 0x0010 // 平台接入配置,此时channel参数代表平台类型,
  187. // channel=4:代表贝尔阿尔卡特;channel=10:代表中兴力维;channel=11:代表U网通
  188. #define DH_DEV_VIDEO_COVER 0x0011 // 区域遮挡配置
  189. #define DH_DEV_TRANS_STRATEGY 0x0012 // 传输策略配置,画质优先流畅性优先
  190. #define DH_DEV_DOWNLOAD_STRATEGY 0x0013 // 录象下载策略配置,高速下载普通下载
  191. #define DH_DEV_WATERMAKE_CFG 0x0014 // 图象水印配置
  192. #define DH_DEV_WLAN_CFG 0x0015 // 无线网络配置
  193. #define DH_DEV_WLAN_DEVICE_CFG 0x0016 // 搜索无线设备配置
  194. #define DH_DEV_REGISTER_CFG 0x0017 // 主动注册参数配置
  195. #define DH_DEV_CAMERA_CFG 0x0018 // 摄像头属性配置
  196. #define DH_DEV_INFRARED_CFG  0x0019 // 红外报警配置
  197. #define DH_DEV_SNIFFER_CFG 0x001A // Sniffer抓包配置
  198. #define DH_DEV_MAIL_CFG 0x001B // 邮件配置
  199. #define DH_DEV_DNS_CFG 0x001C // DNS服务器配置
  200. #define DH_DEV_NTP_CFG 0x001D // NTP配置
  201. #define DH_DEV_AUDIO_DETECT_CFG 0x001E // 音频检测配置
  202. #define DH_DEV_STORAGE_STATION_CFG  0x001F      // 存储位置配置
  203. #define DH_DEV_PTZ_OPT_CFG 0x0020 // 云台操作属性(已经废除,请使用CLIENT_GetPtzOptAttr获取云台操作属性)
  204. #define DH_DEV_DST_CFG 0x0021      // 夏令时配置
  205. #define DH_DEV_ALARM_CENTER_CFG 0x0022 // 报警中心配置
  206. #define DH_DEV_VIDEO_OSD_CFG        0x0023 // 视频OSD叠加配置
  207. #define DH_DEV_CDMAGPRS_CFG         0x0024 // CDMAGPRS网络配置
  208. #define DH_DEV_IPFILTER_CFG         0x0025 // IP过滤配置
  209. #define DH_DEV_TALK_ENCODE_CFG      0x0026      // 语音对讲编码配置
  210. #define DH_DEV_RECORD_PACKET_CFG    0X0027      // 录像打包长度配置
  211. #define DH_DEV_MMS_CFG              0X0028 // 短信MMS配置 
  212. #define DH_DEV_SMSACTIVATION_CFG 0X0029 // 短信激活无线连接配置
  213. #define DH_DEV_DIALINACTIVATION_CFG 0X002A // 拨号激活无线连接配置
  214. #define DH_DEV_FILETRANS_STOP 0x002B // 停止文件上传
  215. #define DH_DEV_FILETRANS_BURN 0x002C // 刻录文件上传
  216. #define DH_DEV_SNIFFER_CFG_EX 0x0030 // 网络抓包配置
  217. #define DH_DEV_DOWNLOAD_RATE_CFG 0x0031 // 下载速度限制
  218. #define DH_DEV_PANORAMA_SWITCH_CFG 0x0032 // 全景切换报警配置
  219. #define DH_DEV_LOST_FOCUS_CFG 0x0033 // 失去焦点报警配置
  220. #define DH_DEV_ALARM_DECODE_CFG 0x0034 // 报警解码器配置
  221. #define DH_DEV_USER_END_CFG 1000
  222. // 报警类型,对应CLIENT_StartListen接口
  223. #define DH_COMM_ALARM 0x1100 // 常规报警(包括外部报警,视频丢失,动态检测)
  224. #define DH_SHELTER_ALARM 0x1101 // 视频遮挡报警
  225. #define DH_DISK_FULL_ALARM 0x1102 // 硬盘满报警
  226. #define DH_DISK_ERROR_ALARM 0x1103 // 硬盘故障报警
  227. #define DH_SOUND_DETECT_ALARM 0x1104 // 音频检测报警
  228. #define DH_ALARM_DECODER_ALARM 0x1105 // 报警解码器报警
  229. // 扩展报警类型,对应CLIENT_StartListenEx接口
  230. #define DH_ALARM_ALARM_EX 0x2101 // 外部报警
  231. #define DH_MOTION_ALARM_EX 0x2102 // 动态检测报警
  232. #define DH_VIDEOLOST_ALARM_EX 0x2103 // 视频丢失报警
  233. #define DH_SHELTER_ALARM_EX 0x2104 // 视频遮挡报警
  234. #define DH_SOUND_DETECT_ALARM_EX 0x2105 // 音频检测报警
  235. #define DH_DISKFULL_ALARM_EX 0x2106 // 硬盘满报警
  236. #define DH_DISKERROR_ALARM_EX 0x2107 // 坏硬盘报警
  237. #define DH_ENCODER_ALARM_EX 0x210A // 编码器报警
  238. #define DH_URGENCY_ALARM_EX 0x210B // 紧急报警
  239. #define DH_WIRELESS_ALARM_EX 0x210C // 无线报警
  240. #define DH_NEW_SOUND_DETECT_ALARM_EX 0x210D // 新音频检测报警,报警信息的结构体见DH_NEW_SOUND_ALARM_STATE;
  241. #define DH_ALARM_DECODER_ALARM_EX 0x210E // 报警解码器报警
  242. #define DH_DECODER_DECODE_ABILITY 0x210F // 解码器:解码能力报警
  243. #define DH_FDDI_DECODER_ABILITY 0x2110 // 光纤编码器状态报警
  244. #define DH_PANORAMA_SWITCH_ALARM_EX 0x2111 // 切换场景报警
  245. #define DH_LOSTFOCUS_ALARM_EX 0x2112 // 失去焦点报警
  246. // 事件类型
  247. #define DH_CONFIG_RESULT_EVENT_EX 0x3000 // 修改配置的返回码;返回结构见DEV_SET_RESULT
  248. #define DH_REBOOT_EVENT_EX 0x3001 // 设备重启事件;如果未发送重启命令,当前修改的配置不会立即生效
  249. #define DH_AUTO_TALK_START_EX 0x3002 // 设备主动邀请开始语音对讲
  250. #define DH_AUTO_TALK_STOP_EX 0x3003 // 设备主动停止语音对讲
  251. #define DH_CONFIG_CHANGE_EX 0x3004 // 设备配置发生改变
  252. // 报警上传功能的报警类型,对应CLIENT_StartService接口、NEW_ALARM_UPLOAD结构体.
  253. #define DH_UPLOAD_ALARM 0x4000 // 外部报警
  254. #define DH_UPLOAD_MOTION_ALARM 0x4001 // 动态检测报警
  255. #define DH_UPLOAD_VIDEOLOST_ALARM 0x4002 // 视频丢失报警
  256. #define DH_UPLOAD_SHELTER_ALARM 0x4003 // 视频遮挡报警
  257. #define DH_UPLOAD_SOUND_DETECT_ALARM 0x4004 // 音频检测报警
  258. #define DH_UPLOAD_DISKFULL_ALARM 0x4005 // 硬盘满报警
  259. #define DH_UPLOAD_DISKERROR_ALARM 0x4006 // 坏硬盘报警
  260. #define DH_UPLOAD_ENCODER_ALARM 0x4007 // 编码器报警
  261. #define DH_UPLOAD_DECODER_ALARM 0x400B // 报警解码器报警
  262. #define DH_UPLOAD_EVENT 0x400C // 定时上传的
  263. // 异步接口回调类型
  264. #define RESPONSE_DECODER_CTRL_TV 0x00000001 // 对应CLIENT_CtrlDecTVScreen接口
  265. #define RESPONSE_DECODER_SWITCH_TV 0x00000002 // 对应CLIENT_SwitchDecTVEncoder接口
  266. #define RESPONSE_DECODER_PLAYBACK 0x00000003 // 对应CLIENT_DecTVPlayback接口
  267. // 分辨率列表,用于与分辨率掩码进行与、或操作
  268. #define DH_CAPTURE_SIZE_D1 0x00000001
  269. #define DH_CAPTURE_SIZE_HD1 0x00000002
  270. #define DH_CAPTURE_SIZE_BCIF 0x00000004
  271. #define DH_CAPTURE_SIZE_CIF 0x00000008
  272. #define DH_CAPTURE_SIZE_QCIF 0x00000010
  273. #define DH_CAPTURE_SIZE_VGA 0x00000020
  274. #define DH_CAPTURE_SIZE_QVGA 0x00000040
  275. #define DH_CAPTURE_SIZE_SVCD 0x00000080
  276. #define DH_CAPTURE_SIZE_QQVGA 0x00000100
  277. #define DH_CAPTURE_SIZE_SVGA 0x00000200
  278. #define DH_CAPTURE_SIZE_XVGA 0x00000400
  279. #define DH_CAPTURE_SIZE_WXGA 0x00000800
  280. #define DH_CAPTURE_SIZE_SXGA 0x00001000
  281. #define DH_CAPTURE_SIZE_WSXGA 0x00002000   
  282. #define DH_CAPTURE_SIZE_UXGA 0x00004000
  283. #define DH_CAPTURE_SIZE_WUXGA       0x00008000
  284. #define DH_CAPTURE_SIZE_LFT         0x00010000
  285. #define DH_CAPTURE_SIZE_720     0x00020000
  286. #define DH_CAPTURE_SIZE_1080 0x00040000
  287. #define DH_CAPTURE_SIZE_1_3M 0x00080000
  288. // 编码模式列表,用于与编码模式掩码进行与、或操作
  289. #define DH_CAPTURE_COMP_DIVX_MPEG4 0x00000001
  290. #define DH_CAPTURE_COMP_MS_MPEG4  0x00000002
  291. #define DH_CAPTURE_COMP_MPEG2 0x00000004
  292. #define DH_CAPTURE_COMP_MPEG1 0x00000008
  293. #define DH_CAPTURE_COMP_H263 0x00000010
  294. #define DH_CAPTURE_COMP_MJPG 0x00000020
  295. #define DH_CAPTURE_COMP_FCC_MPEG4 0x00000040
  296. #define DH_CAPTURE_COMP_H264 0x00000080
  297. // 报警联动动作,用于与报警联动动作掩码进行与、或操作
  298. #define DH_ALARM_UPLOAD 0x00000001
  299. #define DH_ALARM_RECORD 0x00000002
  300. #define DH_ALARM_PTZ 0x00000004
  301. #define DH_ALARM_MAIL 0x00000008
  302. #define DH_ALARM_TOUR 0x00000010
  303. #define DH_ALARM_TIP 0x00000020
  304. #define DH_ALARM_OUT 0x00000040
  305. #define DH_ALARM_FTP_UL 0x00000080
  306. #define DH_ALARM_BEEP 0x00000100
  307. #define DH_ALARM_VOICE 0x00000200
  308. #define DH_ALARM_SNAP 0x00000400
  309. // "恢复默认配置"掩码,可进行与、或操作
  310. #define DH_RESTORE_COMMON 0x00000001 // 普通设置
  311. #define DH_RESTORE_CODING 0x00000002 // 编码设置
  312. #define DH_RESTORE_VIDEO 0x00000004 // 录像设置
  313. #define DH_RESTORE_COMM 0x00000008 // 串口设置
  314. #define DH_RESTORE_NETWORK 0x00000010 // 网络设置
  315. #define DH_RESTORE_ALARM 0x00000020 // 报警设置
  316. #define DH_RESTORE_VIDEODETECT 0x00000040 // 视频检测
  317. #define DH_RESTORE_PTZ 0x00000080 // 云台控制
  318. #define DH_RESTORE_OUTPUTMODE 0x00000100 // 输出模式
  319. #define DH_RESTORE_CHANNELNAME 0x00000200 // 通道名称
  320. #define DH_RESTORE_ALL 0x80000000 // 全部重置
  321. // 云台属性列表
  322. // 低四个字节掩码
  323. #define PTZ_DIRECTION 0x00000001 // 方向
  324. #define PTZ_ZOOM 0x00000002 // 变倍
  325. #define PTZ_FOCUS 0x00000004 // 聚焦
  326. #define PTZ_IRIS 0x00000008 // 光圈
  327. #define PTZ_ALARM 0x00000010 // 报警功能
  328. #define PTZ_LIGHT 0x00000020 // 灯光
  329. #define PTZ_SETPRESET 0x00000040 // 设置预置点
  330. #define PTZ_CLEARPRESET 0x00000080 // 清除预置点
  331. #define PTZ_GOTOPRESET 0x00000100 // 转至预置点
  332. #define PTZ_AUTOPANON 0x00000200 // 水平开始
  333. #define PTZ_AUTOPANOFF 0x00000400 // 水平结束
  334. #define PTZ_SETLIMIT 0x00000800 // 设置边界
  335. #define PTZ_AUTOSCANON 0x00001000 // 自动扫描开始
  336. #define PTZ_AUTOSCANOFF 0x00002000 // 自动扫描开停止
  337. #define PTZ_ADDTOUR 0x00004000 // 增加巡航点
  338. #define PTZ_DELETETOUR 0x00008000 // 删除巡航点
  339. #define PTZ_STARTTOUR 0x00010000 // 开始巡航
  340. #define PTZ_STOPTOUR 0x00020000 // 结束巡航
  341. #define PTZ_CLEARTOUR 0x00040000 // 删除巡航
  342. #define PTZ_SETPATTERN 0x00080000 // 设置模式
  343. #define PTZ_STARTPATTERN 0x00100000 // 开始模式
  344. #define PTZ_STOPPATTERN 0x00200000 // 停止模式
  345. #define PTZ_CLEARPATTERN 0x00400000 // 清除模式
  346. #define PTZ_POSITION 0x00800000 // 快速定位
  347. #define PTZ_AUX 0x01000000 // 辅助开关
  348. #define PTZ_MENU 0x02000000 // 球机菜单
  349. #define PTZ_EXIT 0x04000000 // 退出球机菜单
  350. #define PTZ_ENTER 0x08000000 // 确认
  351. #define PTZ_ESC 0x10000000 // 取消
  352. #define PTZ_MENUUPDOWN 0x20000000 // 菜单上下操作
  353. #define PTZ_MENULEFTRIGHT 0x40000000 // 菜单左右操作
  354. #define PTZ_OPT_NUM 0x80000000 // 操作的个数
  355. // 高四个字节掩码
  356. #define PTZ_DEV 0x00000001 // 云台控制
  357. #define PTZ_MATRIX 0x00000002 // 矩阵控制
  358. // 抓图视频编码类型
  359. #define CODETYPE_MPEG4 0
  360. #define CODETYPE_H264 1
  361. #define CODETYPE_JPG 2
  362. // 码流控制列表
  363. #define DH_CAPTURE_BRC_CBR 0
  364. #define DH_CAPTURE_BRC_VBR 1
  365. //#define DH_CAPTURE_BRC_MBR 2
  366. // 错误类型代号,对应CLIENT_GetLastError接口的返回值
  367. #define _EC(x) (0x80000000|x)
  368. #define NET_NOERROR  0 // 没有错误
  369. #define NET_ERROR -1 // 未知错误
  370. #define NET_SYSTEM_ERROR _EC(1) // Windows系统出错
  371. #define NET_NETWORK_ERROR _EC(2) // 网络错误,可能是因为网络超时
  372. #define NET_DEV_VER_NOMATCH _EC(3) // 设备协议不匹配
  373. #define NET_INVALID_HANDLE _EC(4) // 句柄无效
  374. #define NET_OPEN_CHANNEL_ERROR _EC(5) // 打开通道失败
  375. #define NET_CLOSE_CHANNEL_ERROR _EC(6) // 关闭通道失败
  376. #define NET_ILLEGAL_PARAM _EC(7) // 用户参数不合法
  377. #define NET_SDK_INIT_ERROR _EC(8) // SDK初始化出错
  378. #define NET_SDK_UNINIT_ERROR _EC(9) // SDK清理出错
  379. #define NET_RENDER_OPEN_ERROR _EC(10) // 申请render资源出错
  380. #define NET_DEC_OPEN_ERROR _EC(11) // 打开解码库出错
  381. #define NET_DEC_CLOSE_ERROR _EC(12) // 关闭解码库出错
  382. #define NET_MULTIPLAY_NOCHANNEL _EC(13) // 多画面预览中检测到通道数为0
  383. #define NET_TALK_INIT_ERROR _EC(14) // 录音库初始化失败
  384. #define NET_TALK_NOT_INIT _EC(15) // 录音库未经初始化
  385. #define NET_TALK_SENDDATA_ERROR _EC(16) // 发送音频数据出错
  386. #define NET_REAL_ALREADY_SAVING _EC(17) // 实时数据已经处于保存状态
  387. #define NET_NOT_SAVING _EC(18) // 未保存实时数据
  388. #define NET_OPEN_FILE_ERROR _EC(19) // 打开文件出错
  389. #define NET_PTZ_SET_TIMER_ERROR _EC(20) // 启动云台控制定时器失败
  390. #define NET_RETURN_DATA_ERROR _EC(21) // 对返回数据的校验出错
  391. #define NET_INSUFFICIENT_BUFFER _EC(22) // 没有足够的缓存
  392. #define NET_NOT_SUPPORTED _EC(23) // 当前SDK未支持该功能
  393. #define NET_NO_RECORD_FOUND _EC(24) // 查询不到录象
  394. #define NET_NOT_AUTHORIZED _EC(25) // 无操作权限
  395. #define NET_NOT_NOW _EC(26) // 暂时无法执行
  396. #define NET_NO_TALK_CHANNEL _EC(27) // 未发现对讲通道
  397. #define NET_NO_AUDIO _EC(28) // 未发现音频
  398. #define NET_NO_INIT _EC(29) // 网络SDK未经初始化
  399. #define NET_DOWNLOAD_END _EC(30) // 下载已结束
  400. #define NET_EMPTY_LIST _EC(31) // 查询结果为空
  401. #define NET_ERROR_GETCFG_SYSATTR _EC(32) // 获取系统属性配置失败
  402. #define NET_ERROR_GETCFG_SERIAL _EC(33) // 获取序列号失败
  403. #define NET_ERROR_GETCFG_GENERAL _EC(34) // 获取常规属性失败
  404. #define NET_ERROR_GETCFG_DSPCAP _EC(35) // 获取DSP能力描述失败
  405. #define NET_ERROR_GETCFG_NETCFG _EC(36) // 获取网络配置失败
  406. #define NET_ERROR_GETCFG_CHANNAME _EC(37) // 获取通道名称失败
  407. #define NET_ERROR_GETCFG_VIDEO _EC(38) // 获取视频属性失败
  408. #define NET_ERROR_GETCFG_RECORD _EC(39) // 获取录象配置失败
  409. #define NET_ERROR_GETCFG_PRONAME _EC(40) // 获取解码器协议名称失败
  410. #define NET_ERROR_GETCFG_FUNCNAME _EC(41) // 获取232串口功能名称失败
  411. #define NET_ERROR_GETCFG_485DECODER _EC(42) // 获取解码器属性失败
  412. #define NET_ERROR_GETCFG_232COM _EC(43) // 获取232串口配置失败
  413. #define NET_ERROR_GETCFG_ALARMIN _EC(44) // 获取外部报警输入配置失败
  414. #define NET_ERROR_GETCFG_ALARMDET _EC(45) // 获取动态检测报警失败
  415. #define NET_ERROR_GETCFG_SYSTIME _EC(46) // 获取设备时间失败
  416. #define NET_ERROR_GETCFG_PREVIEW _EC(47) // 获取预览参数失败
  417. #define NET_ERROR_GETCFG_AUTOMT _EC(48) // 获取自动维护配置失败
  418. #define NET_ERROR_GETCFG_VIDEOMTRX _EC(49) // 获取视频矩阵配置失败
  419. #define NET_ERROR_GETCFG_COVER _EC(50) // 获取区域遮挡配置失败
  420. #define NET_ERROR_GETCFG_WATERMAKE _EC(51) // 获取图象水印配置失败
  421. #define NET_ERROR_SETCFG_GENERAL _EC(55) // 修改常规属性失败
  422. #define NET_ERROR_SETCFG_NETCFG _EC(56) // 修改网络配置失败
  423. #define NET_ERROR_SETCFG_CHANNAME _EC(57) // 修改通道名称失败
  424. #define NET_ERROR_SETCFG_VIDEO _EC(58) // 修改视频属性失败
  425. #define NET_ERROR_SETCFG_RECORD _EC(59) // 修改录象配置失败
  426. #define NET_ERROR_SETCFG_485DECODER _EC(60) // 修改解码器属性失败
  427. #define NET_ERROR_SETCFG_232COM _EC(61) // 修改232串口配置失败
  428. #define NET_ERROR_SETCFG_ALARMIN _EC(62) // 修改外部输入报警配置失败
  429. #define NET_ERROR_SETCFG_ALARMDET _EC(63) // 修改动态检测报警配置失败
  430. #define NET_ERROR_SETCFG_SYSTIME _EC(64) // 修改设备时间失败
  431. #define NET_ERROR_SETCFG_PREVIEW _EC(65) // 修改预览参数失败
  432. #define NET_ERROR_SETCFG_AUTOMT _EC(66) // 修改自动维护配置失败
  433. #define NET_ERROR_SETCFG_VIDEOMTRX _EC(67) // 修改视频矩阵配置失败
  434. #define NET_ERROR_SETCFG_COVER _EC(68) // 修改区域遮挡配置失败
  435. #define NET_ERROR_SETCFG_WATERMAKE _EC(69) // 修改图象水印配置失败
  436. #define NET_ERROR_SETCFG_WLAN _EC(70) // 修改无线网络信息失败
  437. #define NET_ERROR_SETCFG_WLANDEV _EC(71) // 选择无线网络设备失败
  438. #define NET_ERROR_SETCFG_REGISTER _EC(72) // 修改主动注册参数配置失败
  439. #define NET_ERROR_SETCFG_CAMERA _EC(73) // 修改摄像头属性配置失败
  440. #define NET_ERROR_SETCFG_INFRARED _EC(74) // 修改红外报警配置失败
  441. #define NET_ERROR_SETCFG_SOUNDALARM _EC(75) // 修改音频报警配置失败
  442. #define NET_ERROR_SETCFG_STORAGE    _EC(76) // 修改存储位置配置失败
  443. #define NET_AUDIOENCODE_NOTINIT _EC(77) // 音频编码接口没有成功初始化
  444. #define NET_DATA_TOOLONGH _EC(78) // 数据过长
  445. #define NET_UNSUPPORTED _EC(79) // 设备不支持该操作
  446. #define NET_DEVICE_BUSY _EC(80) // 设备资源不足
  447. #define NET_SERVER_STARTED _EC(81) // 服务器已经启动
  448. #define NET_SERVER_STOPPED _EC(82) // 服务器尚未成功启动
  449. #define NET_LISTER_INCORRECT_SERIAL _EC(83) // 输入序列号有误
  450. #define NET_QUERY_DISKINFO_FAILED _EC(84) // 获取硬盘信息失败
  451. #define NET_LOGIN_ERROR_PASSWORD _EC(100) // 密码不正确
  452. #define NET_LOGIN_ERROR_USER _EC(101) // 帐户不存在
  453. #define NET_LOGIN_ERROR_TIMEOUT _EC(102) // 等待登录返回超时
  454. #define NET_LOGIN_ERROR_RELOGGIN _EC(103) // 帐号已登录
  455. #define NET_LOGIN_ERROR_LOCKED _EC(104) // 帐号已被锁定
  456. #define NET_LOGIN_ERROR_BLACKLIST _EC(105) // 帐号已被列为黑名单
  457. #define NET_LOGIN_ERROR_BUSY _EC(106) // 资源不足,系统忙
  458. #define NET_LOGIN_ERROR_CONNECT _EC(107) // 登录设备超时,请检查网络并重试
  459. #define NET_LOGIN_ERROR_NETWORK _EC(108) // 网络连接失败
  460. #define NET_LOGIN_ERROR_SUBCONNECT _EC(109) // 登录设备成功,但无法创建视频通道,请检查网络状况
  461. #define NET_RENDER_SOUND_ON_ERROR _EC(120) // Render库打开音频出错
  462. #define NET_RENDER_SOUND_OFF_ERROR _EC(121) // Render库关闭音频出错
  463. #define NET_RENDER_SET_VOLUME_ERROR _EC(122) // Render库控制音量出错
  464. #define NET_RENDER_ADJUST_ERROR _EC(123) // Render库设置画面参数出错
  465. #define NET_RENDER_PAUSE_ERROR _EC(124) // Render库暂停播放出错
  466. #define NET_RENDER_SNAP_ERROR _EC(125) // Render库抓图出错
  467. #define NET_RENDER_STEP_ERROR _EC(126) // Render库步进出错
  468. #define NET_RENDER_FRAMERATE_ERROR _EC(127) // Render库设置帧率出错
  469. #define NET_GROUP_EXIST _EC(140) // 组名已存在
  470. #define NET_GROUP_NOEXIST _EC(141) // 组名不存在
  471. #define NET_GROUP_RIGHTOVER _EC(142) // 组的权限超出权限列表范围
  472. #define NET_GROUP_HAVEUSER _EC(143) // 组下有用户,不能删除
  473. #define NET_GROUP_RIGHTUSE _EC(144) // 组的某个权限被用户使用,不能出除
  474. #define NET_GROUP_SAMENAME _EC(145) // 新组名同已有组名重复
  475. #define NET_USER_EXIST _EC(146) // 用户已存在
  476. #define NET_USER_NOEXIST _EC(147) // 用户不存在
  477. #define NET_USER_RIGHTOVER _EC(148) // 用户权限超出组权限
  478. #define NET_USER_PWD _EC(149) // 保留帐号,不容许修改密码
  479. #define NET_USER_FLASEPWD _EC(150) // 密码不正确
  480. #define NET_USER_NOMATCHING _EC(151) // 密码不匹配
  481. #define NET_ERROR_GETCFG_ETHERNET _EC(300) // 获取网卡配置失败
  482. #define NET_ERROR_GETCFG_WLAN _EC(301) // 获取无线网络信息失败
  483. #define NET_ERROR_GETCFG_WLANDEV _EC(302) // 获取无线网络设备失败
  484. #define NET_ERROR_GETCFG_REGISTER _EC(303) // 获取主动注册参数失败
  485. #define NET_ERROR_GETCFG_CAMERA _EC(304) // 获取摄像头属性失败
  486. #define NET_ERROR_GETCFG_INFRARED _EC(305) // 获取红外报警配置失败
  487. #define NET_ERROR_GETCFG_SOUNDALARM _EC(306) // 获取音频报警配置失败
  488. #define NET_ERROR_GETCFG_STORAGE    _EC(307) // 获取存储位置配置失败
  489. #define NET_ERROR_GETCFG_MAIL _EC(308) // 获取邮件配置失败
  490. #define NET_CONFIG_DEVBUSY _EC(309) // 暂时无法设置
  491. #define NET_CONFIG_DATAILLEGAL _EC(310) // 配置数据不合法
  492. #define NET_ERROR_GETCFG_DST        _EC(311)    // 获取夏令时配置失败
  493. #define NET_ERROR_SETCFG_DST        _EC(312)    // 设置夏令时配置失败
  494. #define NET_ERROR_GETCFG_VIDEO_OSD  _EC(313)    // 获取视频OSD叠加配置失败
  495. #define NET_ERROR_SETCFG_VIDEO_OSD  _EC(314)    // 设置视频OSD叠加配置失败
  496. #define NET_ERROR_GETCFG_GPRSCDMA   _EC(315)    // 获取CDMAGPRS网络配置失败
  497. #define NET_ERROR_SETCFG_GPRSCDMA   _EC(316)    // 设置CDMAGPRS网络配置失败
  498. #define NET_ERROR_GETCFG_IPFILTER   _EC(317)    // 获取IP过滤配置失败
  499. #define NET_ERROR_SETCFG_IPFILTER   _EC(318)    // 设置IP过滤配置失败
  500. #define NET_ERROR_GETCFG_TALKENCODE _EC(319)    // 获取语音对讲编码配置失败
  501. #define NET_ERROR_SETCFG_TALKENCODE _EC(320)    // 设置语音对讲编码配置失败
  502. #define NET_ERROR_GETCFG_RECORDLEN  _EC(321)    // 获取录像打包长度配置失败
  503. #define NET_ERROR_SETCFG_RECORDLEN  _EC(322)    // 设置录像打包长度配置失败
  504. #define NET_DONT_SUPPORT_SUBAREA _EC(323) // 不支持网络硬盘分区
  505. #define NET_ERROR_GET_AUTOREGSERVER _EC(324) // 获取设备上主动注册服务器信息失败
  506. #define NET_ERROR_CONTROL_AUTOREGISTER _EC(325) // 主动注册重定向注册错误
  507. #define NET_ERROR_DISCONNECT_AUTOREGISTER _EC(326) // 断开主动注册服务器错误
  508. #define NET_ERROR_GETCFG_MMS _EC(327) // 获取mms配置失败
  509. #define NET_ERROR_SETCFG_MMS _EC(328) // 设置mms配置失败
  510. #define NET_ERROR_GETCFG_SMSACTIVATION      _EC(329) // 获取短信激活无线连接配置失败
  511. #define NET_ERROR_SETCFG_SMSACTIVATION      _EC(330) // 设置短信激活无线连接配置失败
  512. #define NET_ERROR_GETCFG_DIALINACTIVATION _EC(331) // 获取拨号激活无线连接配置失败
  513. #define NET_ERROR_SETCFG_DIALINACTIVATION _EC(332) // 设置拨号激活无线连接配置失败
  514. #define NET_ERROR_CONNECT_FAILED _EC(340) // 请求建立连接失败
  515. #define NET_ERROR_SETCFG_BURNFILE _EC(341) // 请求刻录文件上传失败
  516. #define NET_ERROR_SNIFFER_GETCFG _EC(342) // 获取抓包配置信息失败
  517. #define NET_ERROR_SNIFFER_SETCFG _EC(343) // 设置抓包配置信息失败
  518. #define NET_ERROR_DOWNLOADRATE_GETCFG _EC(344) // 查询下载限制信息失败
  519. #define NET_ERROR_DOWNLOADRATE_SETCFG _EC(345) // 设置下载限制信息失败
  520. #define NET_ERROR_SEARCH_TRANSCOM _EC(346) // 查询串口参数失败
  521. /************************************************************************
  522.  ** 枚举定义
  523.  ***********************************************************************/
  524. // 设备类型
  525. enum NET_DEVICE_TYPE 
  526. {
  527. NET_PRODUCT_NONE = 0,
  528. NET_DVR_NONREALTIME_MACE, // 非实时MACE
  529. NET_DVR_NONREALTIME, // 非实时
  530. NET_NVS_MPEG1, // 网络视频服务器
  531. NET_DVR_MPEG1_2, // MPEG1二路录像机
  532. NET_DVR_MPEG1_8, // MPEG1八路录像机
  533. NET_DVR_MPEG4_8, // MPEG4八路录像机
  534. NET_DVR_MPEG4_16, // MPEG4十六路录像机
  535. NET_DVR_MPEG4_SX2, // LB系列录像机
  536. NET_DVR_MEPG4_ST2, // GB系列录像机
  537. NET_DVR_MEPG4_SH2, // HB系列录像机
  538. NET_DVR_MPEG4_GBE, // GBE系列录像机
  539. NET_DVR_MPEG4_NVSII, // II代网络视频服务器
  540. NET_DVR_STD_NEW, // 新标准配置协议
  541. NET_DVR_DDNS, // DDNS服务器
  542. NET_DVR_ATM, // ATM机
  543. NET_NB_SERIAL, // 二代非实时NB系列机器
  544. NET_LN_SERIAL, // LN系列产品
  545. NET_BAV_SERIAL, // BAV系列产品
  546. NET_SDIP_SERIAL, // SDIP系列产品
  547. NET_IPC_SERIAL, // IPC系列产品
  548. NET_NVS_B, // NVS B系列
  549. NET_NVS_C, // NVS H系列
  550. NET_NVS_S, // NVS S系列
  551. NET_NVS_E, // NVS E系列
  552. NET_DVR_NEW_PROTOCOL, // 从QueryDevState中查询设备类型,以字符串格式*/
  553. NET_NVD_SERIAL, // 解码器
  554. NET_DVR_N5, /* N5 */
  555. NET_DVR_MIX_DVR, /* 混合dvr*/
  556. };
  557. // 语言种类
  558. typedef enum __LANGUAGE_TYPE
  559. {
  560. DH_LANGUAGE_ENGLISH, // 英文
  561. DH_LANGUAGE_CHINESE_SIMPLIFIED, // 简体中文
  562. DH_LANGUAGE_CHINESE_TRADITIONAL, // 繁体中文
  563. DH_LANGUAGE_ITALIAN, // 意大利文
  564. DH_LANGUAGE_SPANISH, // 西班牙文
  565. DH_LANGUAGE_JAPANESE, // 日文版
  566. DH_LANGUAGE_RUSSIAN, // 俄文版
  567. DH_LANGUAGE_FRENCH, // 法文版
  568. DH_LANGUAGE_GERMAN,  // 德文版
  569. DH_LANGUAGE_PORTUGUESE, // 葡萄牙语
  570. DH_LANGUAGE_TURKEY, // 土尔其语
  571. DH_LANGUAGE_POLISH, // 波兰语
  572. DH_LANGUAGE_ROMANIAN, // 罗马尼亚
  573. DH_LANGUAGE_HUNGARIAN, // 匈牙利语
  574. DH_LANGUAGE_FINNISH, // 芬兰语
  575. DH_LANGUAGE_ESTONIAN, // 爱沙尼亚语
  576. DH_LANGUAGE_KOREAN, // 韩语
  577. DH_LANGUAGE_FARSI, // 波斯语 
  578. DH_LANGUAGE_DANSK, // 丹麦语
  579. DH_LANGUAGE_CZECHISH, // 捷克文
  580. DH_LANGUAGE_BULGARIA, // 保加利亚文
  581. DH_LANGUAGE_SLOVAKIAN, // 斯洛伐克语
  582. DH_LANGUAGE_SLOVENIA, // 斯洛文尼亚文
  583. DH_LANGUAGE_CROATIAN, // 克罗地亚语
  584. DH_LANGUAGE_DUTCH, // 荷兰语
  585. DH_LANGUAGE_GREEK, // 希腊语
  586. DH_LANGUAGE_UKRAINIAN, // 乌克兰语
  587. DH_LANGUAGE_SWEDISH, // 瑞典语
  588. DH_LANGUAGE_SERBIAN, // 塞尔维亚语
  589. DH_LANGUAGE_VIETNAMESE, // 越南语
  590. DH_LANGUAGE_LITHUANIAN, // 立陶宛语
  591. DH_LANGUAGE_FILIPINO, // 菲律宾语
  592. DH_LANGUAGE_ARABIC, // 阿拉伯语
  593. DH_LANGUAGE_CATALAN, // 加泰罗尼亚语
  594. DH_LANGUAGE_LATVIAN, // 拉脱维亚语
  595. } DH_LANGUAGE_TYPE;
  596. // 升级类型
  597. typedef enum __EM_UPGRADE_TYPE
  598. {
  599. DH_UPGRADE_BIOS_TYPE = 1, // BIOS升级
  600. DH_UPGRADE_WEB_TYPE, // WEB升级
  601. DH_UPGRADE_BOOT_YPE, // BOOT升级
  602. DH_UPGRADE_CHARACTER_TYPE, // 汉字库
  603. DH_UPGRADE_LOGO_TYPE, // LOGO
  604. DH_UPGRADE_EXE_TYPE, // EXE,例如播放器等
  605. } EM_UPGRADE_TYPE;
  606. // 录象类型(定时、动态检测、报警)
  607. typedef enum _REC_TYPE
  608. {
  609. DH_REC_TYPE_TIM = 0,
  610. DH_REC_TYPE_MTD,
  611. DH_REC_TYPE_ALM,
  612. DH_REC_TYPE_NUM,
  613. } REC_TYPE;
  614. // 网络类型 
  615. typedef enum _GPRSCDMA_NETWORK_TYPE
  616. {
  617. DH_TYPE_AUTOSEL = 0, // 自动选择
  618. DH_TYPE_TD_SCDMA, // TD-SCDMA网络 
  619. DH_TYPE_WCDMA, // WCDMA网络
  620. DH_TYPE_CDMA_1x, // CDMA 1.x网络
  621. DH_TYPE_EDGE, // GPRS网络
  622. DH_TYPE_EVDO, // EVDO网络
  623. DH_TYPE_WIFI,
  624. } EM_GPRSCDMA_NETWORK_TYPE;
  625. /////////////////////////////////监视相关/////////////////////////////////
  626. // 预览类型,对应CLIENT_RealPlayEx接口
  627. typedef enum _RealPlayType
  628. {
  629. DH_RType_Realplay = 0, // 实时预览
  630. DH_RType_Multiplay, // 多画面预览
  631. DH_RType_Realplay_0, // 实时监视-主码流,等同于DH_RType_Realplay
  632. DH_RType_Realplay_1, // 实时监视-从码流1
  633. DH_RType_Realplay_2, // 实时监视-从码流2
  634. DH_RType_Realplay_3, // 实时监视-从码流3
  635. DH_RType_Multiplay_1, // 多画面预览-1画面
  636. DH_RType_Multiplay_4, // 多画面预览-4画面
  637. DH_RType_Multiplay_8, // 多画面预览-8画面
  638. DH_RType_Multiplay_9, // 多画面预览-9画面
  639. DH_RType_Multiplay_16, // 多画面预览-16画面
  640. DH_RType_Multiplay_6, // 多画面预览-6画面
  641. DH_RType_Multiplay_12, // 多画面预览-12画面
  642. } DH_RealPlayType;
  643. /////////////////////////////////云台相关/////////////////////////////////
  644. // 通用云台控制命令
  645. typedef enum _PTZ_ControlType
  646. {
  647. DH_PTZ_UP_CONTROL = 0, // 上
  648. DH_PTZ_DOWN_CONTROL, // 下
  649. DH_PTZ_LEFT_CONTROL, // 左
  650. DH_PTZ_RIGHT_CONTROL, // 右
  651. DH_PTZ_ZOOM_ADD_CONTROL, // 变倍+
  652. DH_PTZ_ZOOM_DEC_CONTROL, // 变倍-
  653. DH_PTZ_FOCUS_ADD_CONTROL, // 调焦+
  654. DH_PTZ_FOCUS_DEC_CONTROL, // 调焦-
  655. DH_PTZ_APERTURE_ADD_CONTROL, // 光圈+
  656. DH_PTZ_APERTURE_DEC_CONTROL, // 光圈-
  657.     DH_PTZ_POINT_MOVE_CONTROL, // 转至预置点
  658.     DH_PTZ_POINT_SET_CONTROL, // 设置
  659.     DH_PTZ_POINT_DEL_CONTROL, // 删除
  660.     DH_PTZ_POINT_LOOP_CONTROL, // 点间巡航
  661.     DH_PTZ_LAMP_CONTROL // 灯光雨刷
  662. } DH_PTZ_ControlType;
  663. // 云台控制扩展命令
  664. typedef enum _EXTPTZ_ControlType
  665. {
  666. DH_EXTPTZ_LEFTTOP = 0x20, // 左上
  667. DH_EXTPTZ_RIGHTTOP, // 右上
  668. DH_EXTPTZ_LEFTDOWN, // 左下
  669. DH_EXTPTZ_RIGHTDOWN, // 右下
  670. DH_EXTPTZ_ADDTOLOOP, // 加入预置点到巡航 巡航线路 预置点值
  671. DH_EXTPTZ_DELFROMLOOP, // 删除巡航中预置点 巡航线路 预置点值
  672.     DH_EXTPTZ_CLOSELOOP, // 清除巡航 巡航线路
  673. DH_EXTPTZ_STARTPANCRUISE, // 开始水平旋转
  674. DH_EXTPTZ_STOPPANCRUISE, // 停止水平旋转
  675. DH_EXTPTZ_SETLEFTBORDER, // 设置左边界
  676. DH_EXTPTZ_SETRIGHTBORDER, // 设置右边界
  677. DH_EXTPTZ_STARTLINESCAN, // 开始线扫
  678.     DH_EXTPTZ_CLOSELINESCAN, // 停止线扫
  679.     DH_EXTPTZ_SETMODESTART, // 设置模式开始 模式线路
  680.     DH_EXTPTZ_SETMODESTOP, // 设置模式结束 模式线路
  681. DH_EXTPTZ_RUNMODE, // 运行模式 模式线路
  682. DH_EXTPTZ_STOPMODE, // 停止模式 模式线路
  683. DH_EXTPTZ_DELETEMODE, // 清除模式 模式线路
  684. DH_EXTPTZ_REVERSECOMM, // 翻转命令
  685. DH_EXTPTZ_FASTGOTO, // 快速定位 水平坐标(8192) 垂直坐标(8192) 变倍(4)
  686. DH_EXTPTZ_AUXIOPEN, // 辅助开关开 辅助点
  687. DH_EXTPTZ_AUXICLOSE, // 辅助开关关 辅助点
  688. DH_EXTPTZ_OPENMENU = 0x36, // 打开球机菜单
  689. DH_EXTPTZ_CLOSEMENU, // 关闭菜单
  690. DH_EXTPTZ_MENUOK, // 菜单确定
  691. DH_EXTPTZ_MENUCANCEL, // 菜单取消
  692. DH_EXTPTZ_MENUUP, // 菜单上
  693. DH_EXTPTZ_MENUDOWN, // 菜单下
  694. DH_EXTPTZ_MENULEFT, // 菜单左
  695. DH_EXTPTZ_MENURIGHT, // 菜单右
  696. DH_EXTPTZ_ALARMHANDLE = 0x40, // 报警联动云台 parm1:报警输入通道;parm2:报警联动类型1-预置点2-线扫3-巡航;parm3:联动值,如预置点号
  697. DH_EXTPTZ_MATRIXSWITCH = 0x41, // 矩阵切换 parm1:监视器号(视频输出号);parm2:视频输入号;parm3:矩阵号
  698. DH_EXTPTZ_LIGHTCONTROL, // 灯光控制器
  699. DH_EXTPTZ_UP_TELE = 0x70, // 上 + TELE param1=速度(1-8),下同
  700. DH_EXTPTZ_DOWN_TELE, // 下 + TELE
  701. DH_EXTPTZ_LEFT_TELE, // 左 + TELE
  702. DH_EXTPTZ_RIGHT_TELE, // 右 + TELE
  703. DH_EXTPTZ_LEFTUP_TELE, // 左上 + TELE
  704. DH_EXTPTZ_LEFTDOWN_TELE, // 左下 + TELE
  705. DH_EXTPTZ_TIGHTUP_TELE, // 右上 + TELE
  706. DH_EXTPTZ_RIGHTDOWN_TELE, // 右下 + TELE
  707. DH_EXTPTZ_UP_WIDE, // 上 + WIDE param1=速度(1-8),下同
  708. DH_EXTPTZ_DOWN_WIDE, // 下 + WIDE
  709. DH_EXTPTZ_LEFT_WIDE, // 左 + WIDE
  710. DH_EXTPTZ_RIGHT_WIDE, // 右 + WIDE
  711. DH_EXTPTZ_LEFTUP_WIDE, // 左上 + WIDE
  712. DH_EXTPTZ_LEFTDOWN_WIDE, // 左下 + WIDE
  713. DH_EXTPTZ_TIGHTUP_WIDE, // 右上 + WIDE
  714. DH_EXTPTZ_RIGHTDOWN_WIDE, // 右下 + WIDE
  715. DH_EXTPTZ_TOTAL, // 最大命令值
  716. } DH_EXTPTZ_ControlType;
  717. /////////////////////////////////日志相关/////////////////////////////////
  718. // 日志查询类型
  719. typedef enum _DH_LOG_QUERY_TYPE
  720. {
  721. DHLOG_ALL = 0, // 所有日志
  722. DHLOG_SYSTEM, // 系统日志
  723. DHLOG_CONFIG, // 配置日志
  724. DHLOG_STORAGE, // 存储相关
  725. DHLOG_ALARM, // 报警日志
  726. DHLOG_RECORD, // 录象相关
  727. DHLOG_ACCOUNT, // 帐号相关
  728. DHLOG_CLEAR, // 清除日志
  729. DHLOG_PLAYBACK // 回放相关
  730. } DH_LOG_QUERY_TYPE;
  731. // 日志类型
  732. typedef enum _DH_LOG_TYPE
  733. {
  734. DH_LOG_REBOOT = 0x0000, // 设备重启
  735. DH_LOG_SHUT, // 设备关机
  736. DH_LOG_CONFSAVE = 0x0100, // 保存配置
  737. DH_LOG_CONFLOAD, // 读取配置
  738. DH_LOG_FSERROR = 0x0200, // 文件系统错误
  739. DH_LOG_HDD_WERR, // 硬盘写错误
  740. DH_LOG_HDD_RERR, // 硬盘读错误
  741. DH_LOG_HDD_TYPE, // 设置硬盘类型
  742. DH_LOG_HDD_FORMAT, // 格式化硬盘
  743. DH_LOG_HDD_NOSPACE, // 当前工作盘空间不足
  744. DH_LOG_HDD_TYPE_RW, // 设置硬盘类型为读写盘
  745. DH_LOG_HDD_TYPE_RO, // 设置硬盘类型为只读盘
  746. DH_LOG_HDD_TYPE_RE, // 设置硬盘类型为冗余盘
  747. DH_LOG_HDD_TYPE_SS, // 设置硬盘类型为快照盘
  748. DH_LOG_HDD_NONE, // 无硬盘记录日志
  749. DH_LOG_ALM_IN = 0x0300, // 外部输入报警开始
  750. DH_LOG_NETALM_IN, // 网络报警输入
  751. DH_LOG_ALM_END = 0x0302, // 外部输入报警停止
  752. DH_LOG_LOSS_IN, // 视频丢失报警开始
  753. DH_LOG_LOSS_END, // 视频丢失报警结束
  754. DH_LOG_MOTION_IN, // 动态检测报警开始
  755. DH_LOG_MOTION_END, // 动态检测报警结束
  756. DH_LOG_ALM_BOSHI, // 报警器报警输入
  757. DH_LOG_NET_ABORT = 0x0308, // 网络断开
  758. DH_LOG_NET_ABORT_RESUME, // 网络恢复
  759. DH_LOG_CODER_BREAKDOWN, // 编码器故障
  760. DH_LOG_CODER_BREAKDOWN_RESUME, // 编码器故障恢复
  761. DH_LOG_BLIND_IN, // 视频遮挡
  762. DH_LOG_BLIND_END, // 视频遮挡恢复
  763. DH_LOG_ALM_TEMP_HIGH, // 温度过高
  764. DH_LOG_ALM_VOLTAGE_LOW, // 电压过低
  765. DH_LOG_ALM_BATTERY_LOW, // 电池容量不足
  766. DH_LOG_ALM_ACC_BREAK, // ACC断电
  767. DH_LOG_INFRAREDALM_IN = 0x03a0, // 无线报警开始
  768. DH_LOG_INFRAREDALM_END, // 无线报警结束
  769. DH_LOG_IPCONFLICT, // IP冲突
  770. DH_LOG_IPCONFLICT_RESUME, // IP恢复
  771. DH_LOG_SDPLUG_IN, // SD卡插入
  772. DH_LOG_SDPLUG_OUT, // SD卡拔出
  773. DH_LOG_AUTOMATIC_RECORD = 0x0400, // 自动录像
  774. DH_LOG_MANUAL_RECORD = 0x0401, // 手动录象
  775. DH_LOG_CLOSED_RECORD, // 停止录象
  776. DH_LOG_LOGIN = 0x0500, // 登录
  777. DH_LOG_LOGOUT, // 注销
  778. DH_LOG_ADD_USER, // 添加用户
  779. DH_LOG_DELETE_USER, // 删除用户
  780. DH_LOG_MODIFY_USER, // 修改用户
  781. DH_LOG_ADD_GROUP, // 添加用户组
  782. DH_LOG_DELETE_GROUP, // 删除用户组
  783. DH_LOG_MODIFY_GROUP, // 修改用户组
  784. DH_LOG_CLEAR = 0x0600, // 清除日志
  785. DH_LOG_SEARCHLOG, // 查询日志
  786. DH_LOG_SEARCH = 0x0700, // 录像查询
  787. DH_LOG_DOWNLOAD, // 录像下载
  788. DH_LOG_PLAYBACK, // 录像回放
  789. DH_LOG_BACKUP, // 备份录像文件
  790. DH_LOG_BACKUPERROR, // 备份录像文件失败
  791. DH_LOG_TYPE_NR = 7,
  792. } DH_LOG_TYPE;
  793. // 扩展日志类型,对应CLIENT_QueryLogEx接口,条件(int nType = 1;参数reserved = &nType)
  794. typedef enum _DH_NEWLOG_TYPE
  795. {
  796. DH_NEWLOG_REBOOT = 0x0000, // 设备重启
  797. DH_NEWLOG_SHUT, // 设备关机
  798. DH_NEWLOG_CONFSAVE = 0x0100, // 保存配置
  799. DH_NEWLOG_CONFLOAD, // 读取配置
  800. DH_NEWLOG_FSERROR = 0x0200, // 文件系统错误
  801. DH_NEWLOG_HDD_WERR, // 硬盘写错误
  802. DH_NEWLOG_HDD_RERR, // 硬盘读错误
  803. DH_NEWLOG_HDD_TYPE, // 设置硬盘类型
  804. DH_NEWLOG_HDD_FORMAT, // 格式化硬盘
  805. DH_NEWLOG_HDD_NOSPACE, // 当前工作盘空间不足
  806. DH_NEWLOG_HDD_TYPE_RW, // 设置硬盘类型为读写盘
  807. DH_NEWLOG_HDD_TYPE_RO, // 设置硬盘类型为只读盘
  808. DH_NEWLOG_HDD_TYPE_RE, // 设置硬盘类型为冗余盘
  809. DH_NEWLOG_HDD_TYPE_SS, // 设置硬盘类型为快照盘
  810. DH_NEWLOG_HDD_NONE, // 无硬盘记录日志
  811. DH_NEWLOG_ALM_IN = 0x0300, // 外部输入报警开始
  812. DH_NEWLOG_NETALM_IN, // 网络报警
  813. DH_NEWLOG_ALM_END, // 外部输入报警停止
  814. DH_NEWLOG_LOSS_IN, // 视频丢失报警开始
  815. DH_NEWLOG_LOSS_END, // 视频丢失报警结束
  816. DH_NEWLOG_MOTION_IN, // 动态检测报警开始
  817. DH_NEWLOG_MOTION_END, // 动态检测报警结束
  818. DH_NEWLOG_ALM_BOSHI, // 报警器报警输入
  819. DH_NEWLOG_NET_ABORT = 0x0308, // 网络断开
  820. DH_NEWLOG_NET_ABORT_RESUME, // 网络恢复
  821. DH_NEWLOG_CODER_BREAKDOWN, // 编码器故障
  822. DH_NEWLOG_CODER_BREAKDOWN_RESUME, // 编码器故障恢复
  823. DH_NEWLOG_BLIND_IN, // 视频遮挡
  824. DH_NEWLOG_BLIND_END, // 视频遮挡恢复
  825. DH_NEWLOG_ALM_TEMP_HIGH, // 温度过高
  826. DH_NEWLOG_ALM_VOLTAGE_LOW, // 电压过低
  827. DH_NEWLOG_ALM_BATTERY_LOW, // 电池容量不足
  828. DH_NEWLOG_ALM_ACC_BREAK, // ACC断电
  829. DH_NEWLOG_INFRAREDALM_IN = 0x03a0, // 无线报警开始
  830. DH_NEWLOG_INFRAREDALM_END, // 无线报警结束
  831. DH_NEWLOG_IPCONFLICT, // IP冲突
  832. DH_NEWLOG_IPCONFLICT_RESUME, // IP恢复
  833. DH_NEWLOG_SDPLUG_IN, // SD卡插入
  834. DH_NEWLOG_SDPLUG_OUT, // SD卡拔出
  835. DH_NEWLOG_AUTOMATIC_RECORD = 0x0400, // 自动录象
  836. DH_NEWLOG_MANUAL_RECORD, // 手动录象开
  837. DH_NEWLOG_CLOSED_RECORD, // 停止录象
  838. DH_NEWLOG_LOGIN = 0x0500, // 登录
  839. DH_NEWLOG_LOGOUT, // 注销
  840. DH_NEWLOG_ADD_USER, // 添加用户
  841. DH_NEWLOG_DELETE_USER, // 删除用户
  842. DH_NEWLOG_MODIFY_USER, // 修改用户
  843. DH_NEWLOG_ADD_GROUP, // 添加用户组
  844. DH_NEWLOG_DELETE_GROUP, // 删除用户组
  845. DH_NEWLOG_MODIFY_GROUP, // 修改用户组
  846. DH_NEWLOG_CLEAR = 0x0600, // 清除日志
  847. DH_NEWLOG_SEARCHLOG, // 查询日志
  848. DH_NEWLOG_SEARCH = 0x0700, // 录像查询
  849. DH_NEWLOG_DOWNLOAD, // 录像下载
  850. DH_NEWLOG_PLAYBACK, // 录像回放
  851. DH_NEWLOG_BACKUP, // 备份录像文件
  852. DH_NEWLOG_BACKUPERROR, // 备份录像文件失败
  853. DH_NEWLOG_TYPE_NR = 8,
  854. } DH_NEWLOG_TYPE;
  855. ///////////////////////////////语音对讲相关///////////////////////////////
  856. // 语音编码类型
  857. typedef enum __TALK_CODING_TYPE
  858. {
  859. DH_TALK_DEFAULT = 0, // 无头PCM
  860. DH_TALK_PCM = 1, // 带头PCM
  861. DH_TALK_G711a, // G711a
  862. DH_TALK_AMR, // AMR
  863. DH_TALK_G711u, // G711u
  864. DH_TALK_G726, // G726
  865. } DH_TALK_CODING_TYPE;
  866. // 对讲方式
  867. typedef enum __EM_USEDEV_MODE
  868. {
  869. DH_TALK_CLIENT_MODE, // 设置客户端方式进行语音对讲
  870. DH_TALK_SERVER_MODE, // 设置服务器方式进行语音对讲
  871. DH_TALK_ENCODE_TYPE, // 设置语音对讲编码格式
  872. DH_ALARM_LISTEN_MODE, // 设置报警订阅方式
  873. DH_CONFIG_AUTHORITY_MODE, // 设置通过权限进行配置管理
  874. } EM_USEDEV_MODE;
  875. // AMR编码类型
  876. typedef enum __EM_ARM_ENCODE_MODE
  877. {
  878. DH_TALK_AMR_AMR475 = 1, // AMR475编码
  879. DH_TALK_AMR_AMR515, // AMR515编码
  880. DH_TALK_AMR_AMR59, // AMR59编码
  881. DH_TALK_AMR_AMR67, // AMR67编码
  882. DH_TALK_AMR_AMR74, // AMR74编码
  883. DH_TALK_AMR_AMR795, // AMR795编码
  884. DH_TALK_AMR_AMR102, // AMR102编码
  885. DH_TALK_AMR_AMR122, // AMR122编码
  886. } EM_ARM_ENCODE_MODE;
  887. /////////////////////////////////控制相关/////////////////////////////////
  888. // 控制类型,对应CLIENT_ControlDevice接口
  889. typedef enum _CtrlType
  890. {
  891. DH_CTRL_REBOOT = 0, // 重启设备
  892. DH_CTRL_SHUTDOWN, // 关闭设备
  893. DH_CTRL_DISK, // 硬盘管理
  894. DH_KEYBOARD_POWER = 3, // 网络键盘
  895. DH_KEYBOARD_ENTER,
  896. DH_KEYBOARD_ESC,
  897. DH_KEYBOARD_UP,
  898. DH_KEYBOARD_DOWN,
  899. DH_KEYBOARD_LEFT,
  900. DH_KEYBOARD_RIGHT,
  901. DH_KEYBOARD_BTN0,
  902. DH_KEYBOARD_BTN1,
  903. DH_KEYBOARD_BTN2,
  904. DH_KEYBOARD_BTN3,
  905. DH_KEYBOARD_BTN4,
  906. DH_KEYBOARD_BTN5,
  907. DH_KEYBOARD_BTN6,
  908. DH_KEYBOARD_BTN7,
  909. DH_KEYBOARD_BTN8,
  910. DH_KEYBOARD_BTN9,
  911. DH_KEYBOARD_BTN10,
  912. DH_KEYBOARD_BTN11,
  913. DH_KEYBOARD_BTN12,
  914. DH_KEYBOARD_BTN13,
  915. DH_KEYBOARD_BTN14,
  916. DH_KEYBOARD_BTN15,
  917. DH_KEYBOARD_BTN16,
  918. DH_KEYBOARD_SPLIT,
  919. DH_KEYBOARD_ONE,
  920. DH_KEYBOARD_NINE,
  921. DH_KEYBOARD_ADDR,
  922. DH_KEYBOARD_INFO,
  923. DH_KEYBOARD_REC,
  924. DH_KEYBOARD_FN1,
  925. DH_KEYBOARD_FN2,
  926. DH_KEYBOARD_PLAY,
  927. DH_KEYBOARD_STOP,
  928. DH_KEYBOARD_SLOW,
  929. DH_KEYBOARD_FAST,
  930. DH_KEYBOARD_PREW,
  931. DH_KEYBOARD_NEXT,
  932. DH_KEYBOARD_JMPDOWN,
  933. DH_KEYBOARD_JMPUP,
  934. DH_TRIGGER_ALARM_IN = 100, // 触发报警输入
  935. DH_TRIGGER_ALARM_OUT, // 触发报警输出
  936. DH_CTRL_MATRIX, // 矩阵控制
  937. DH_CTRL_SDCARD, // SD卡控制(IPC产品)参数同硬盘控制
  938. DH_BURNING_START, // 刻录机控制,开始刻录
  939. DH_BURNING_STOP, // 刻录机控制,结束刻录
  940. DH_BURNING_ADDPWD, // 刻录机控制,叠加密码(以''为结尾的字符串,最大长度8位)
  941. DH_BURNING_ADDHEAD, // 刻录机控制,叠加片头(以''为结尾的字符串,最大长度1024字节,支持分行,行分隔符'n')
  942. DH_BURNING_ADDSIGN, // 刻录机控制,叠加打点到刻录信息(参数无)
  943. DH_BURNING_ADDCURSTOMINFO, // 刻录机控制,自定义叠加(以''为结尾的字符串,最大长度1024字节,支持分行,行分隔符'n')
  944. DH_CTRL_RESTOREDEFAULT, // 恢复设备的默认设置
  945. DH_CTRL_CAPTURE_START, // 触发设备抓图
  946. DH_CTRL_CLEARLOG, // 清除日志
  947. DH_TRIGGER_ALARM_WIRELESS = 200, // 触发无线报警(IPC产品)
  948. DH_MARK_IMPORTANT_RECORD, // 标识重要录像文件
  949. DH_CTRL_DISK_SUBAREA,  // 网络硬盘分区
  950. DH_BURNING_ATTACH, // 刻录机控制,附件刻录.
  951. DH_BURNING_PAUSE, // 刻录暂停
  952. DH_BURNING_CONTINUE, // 刻录继续
  953. DH_BURNING_POSTPONE, // 刻录顺延
  954. } CtrlType;
  955. // IO控制命令,对应CLIENT_QueryIOControlState接口
  956. typedef enum _IOTYPE
  957. {
  958. DH_ALARMINPUT = 1, // 控制报警输入
  959. DH_ALARMOUTPUT = 2, // 控制报警输出
  960. DH_DECODER_ALARMOUT = 3, // 控制报警解码器输出
  961. DH_WIRELESS_ALARMOUT = 5, // 控制无线报警输出
  962. DH_ALARM_TRIGGER_MODE = 7, // 报警触发方式(手动,自动,关闭),使用TRIGGER_MODE_CONTROL结构体
  963. } DH_IOTYPE;
  964. /////////////////////////////////配置相关/////////////////////////////////
  965. // 分辨率枚举,供DH_DSP_ENCODECAP使用
  966. typedef enum _CAPTURE_SIZE
  967. {
  968. CAPTURE_SIZE_D1, // 720*576(PAL)  720*480(NTSC)
  969. CAPTURE_SIZE_HD1, // 352*576(PAL)  352*480(NTSC)
  970. CAPTURE_SIZE_BCIF, // 720*288(PAL)  720*240(NTSC)
  971. CAPTURE_SIZE_CIF, // 352*288(PAL)  352*240(NTSC)
  972. CAPTURE_SIZE_QCIF, // 176*144(PAL)  176*120(NTSC)
  973. CAPTURE_SIZE_VGA, // 640*480
  974. CAPTURE_SIZE_QVGA, // 320*240
  975. CAPTURE_SIZE_SVCD, // 480*480
  976. CAPTURE_SIZE_QQVGA, // 160*128
  977. CAPTURE_SIZE_SVGA, // 800*592
  978. CAPTURE_SIZE_XVGA, // 1024*768
  979. CAPTURE_SIZE_WXGA, // 1280*800
  980. CAPTURE_SIZE_SXGA, // 1280*1024  
  981. CAPTURE_SIZE_WSXGA, // 1600*1024  
  982. CAPTURE_SIZE_UXGA, // 1600*1200
  983. CAPTURE_SIZE_WUXGA, // 1920*1200
  984. CAPTURE_SIZE_LTF, // 240*192(PAL)
  985. CAPTURE_SIZE_720, // 1280*720
  986. CAPTURE_SIZE_1080, // 1920*1080
  987. CAPTURE_SIZE_1_3M, // 1280*960
  988. CAPTURE_SIZE_NR  
  989. } CAPTURE_SIZE;
  990. // 配置文件类型,供CLIENT_ExportConfigFile接口使用
  991. typedef enum __DH_CONFIG_FILE_TYPE
  992. {
  993. DH_CONFIGFILE_ALL = 0, // 全部配置文件
  994. DH_CONFIGFILE_LOCAL, // 本地配置文件
  995. DH_CONFIGFILE_NETWORK, // 网络配置文件
  996. DH_CONFIGFILE_USER, // 用户配置文件
  997. } DH_CONFIG_FILE_TYPE;
  998. // NTP
  999. typedef enum __DH_TIME_ZONE_TYPE
  1000. {
  1001. DH_TIME_ZONE_0, // {0, 0*3600,"GMT+00:00"}
  1002. DH_TIME_ZONE_1, // {1, 1*3600,"GMT+01:00"}
  1003. DH_TIME_ZONE_2, // {2, 2*3600,"GMT+02:00"}
  1004. DH_TIME_ZONE_3, // {3, 3*3600,"GMT+03:00"}
  1005. DH_TIME_ZONE_4, // {4, 3*3600+1800,"GMT+03:30"}
  1006. DH_TIME_ZONE_5, // {5, 4*3600,"GMT+04:00"}
  1007. DH_TIME_ZONE_6, // {6, 4*3600+1800,"GMT+04:30"}
  1008. DH_TIME_ZONE_7, // {7, 5*3600,"GMT+05:00"}
  1009. DH_TIME_ZONE_8, // {8, 5*3600+1800,"GMT+05:30"}
  1010. DH_TIME_ZONE_9, // {9, 5*3600+1800+900,"GMT+05:45"}
  1011. DH_TIME_ZONE_10, // {10, 6*3600,"GMT+06:00"}
  1012. DH_TIME_ZONE_11, // {11, 6*3600+1800,"GMT+06:30"}
  1013. DH_TIME_ZONE_12, // {12, 7*3600,"GMT+07:00"}
  1014. DH_TIME_ZONE_13, // {13, 8*3600,"GMT+08:00"}
  1015. DH_TIME_ZONE_14, // {14, 9*3600,"GMT+09:00"}
  1016. DH_TIME_ZONE_15, // {15, 9*3600+1800,"GMT+09:30"}
  1017. DH_TIME_ZONE_16, // {16, 10*3600,"GMT+10:00"}
  1018. DH_TIME_ZONE_17, // {17, 11*3600,"GMT+11:00"}
  1019. DH_TIME_ZONE_18, // {18, 12*3600,"GMT+12:00"}
  1020. DH_TIME_ZONE_19, // {19, 13*3600,"GMT+13:00"}
  1021. DH_TIME_ZONE_20, // {20, -1*3600,"GMT-01:00"}
  1022. DH_TIME_ZONE_21, // {21, -2*3600,"GMT-02:00"}
  1023. DH_TIME_ZONE_22, // {22, -3*3600,"GMT-03:00"}
  1024. DH_TIME_ZONE_23, // {23, -3*3600-1800,"GMT-03:30"}
  1025. DH_TIME_ZONE_24, // {24, -4*3600,"GMT-04:00"}
  1026. DH_TIME_ZONE_25, // {25, -5*3600,"GMT-05:00"}
  1027. DH_TIME_ZONE_26, // {26, -6*3600,"GMT-06:00"}
  1028. DH_TIME_ZONE_27, // {27, -7*3600,"GMT-07:00"}
  1029. DH_TIME_ZONE_28, // {28, -8*3600,"GMT-08:00"}
  1030. DH_TIME_ZONE_29, // {29, -9*3600,"GMT-09:00"}
  1031. DH_TIME_ZONE_30, // {30, -10*3600,"GMT-10:00"}
  1032. DH_TIME_ZONE_31, // {31, -11*3600,"GMT-11:00"}
  1033. DH_TIME_ZONE_32, // {32, -12*3600,"GMT-12:00"}
  1034. } DH_TIME_ZONE_TYPE;
  1035. typedef enum _SNAP_TYPE
  1036. {
  1037. SNAP_TYP_TIMING = 0,
  1038. SNAP_TYP_ALARM,
  1039. SNAP_TYP_NUM,
  1040. } SNAP_TYPE;
  1041. /////////////////////////////////淘汰类型/////////////////////////////////
  1042. // 配置类型,目前使用该枚举的接口已淘汰,请不要使用
  1043. typedef enum _CFG_INDEX
  1044. {
  1045.     CFG_GENERAL = 0, // 普通
  1046. CFG_COMM, // 串口
  1047. CFG_NET, // 网络
  1048. CFG_RECORD, // 录像
  1049. CFG_CAPTURE, // 图像设置
  1050. CFG_PTZ, // 云台
  1051. CFG_DETECT, // 动态检测
  1052. CFG_ALARM, // 报警
  1053. CFG_DISPLAY, // 显示
  1054. CFG_RESERVED, // 保留,使类型连贯
  1055. CFG_TITLE = 10, // 通道标题
  1056. CFG_MAIL = 11, // 邮件功能
  1057. CFG_EXCAPTURE = 12, // 预览图像设置
  1058. CFG_PPPOE = 13, // pppoe设置
  1059. CFG_DDNS = 14, // DDNS设置
  1060. CFG_SNIFFER = 15, // 网络监视捕获设置
  1061. CFG_DSPINFO = 16, // 编码能力信息
  1062. CFG_COLOR = 126, // 颜色配置信息
  1063. CFG_ALL, // 保留
  1064. } CFG_INDEX;
  1065. /************************************************************************
  1066.  ** 结构体定义
  1067.  ***********************************************************************/
  1068. // 时间
  1069. typedef struct 
  1070. {
  1071. DWORD dwYear; // 年
  1072. DWORD dwMonth; // 月
  1073. DWORD dwDay; // 日
  1074. DWORD dwHour; // 时
  1075. DWORD dwMinute; // 分
  1076. DWORD dwSecond; // 秒
  1077. } NET_TIME,*LPNET_TIME;
  1078. // 日志信息里的时间定义
  1079. typedef struct _DHDEVTIME
  1080. {
  1081. DWORD second :6; // 秒 1-60
  1082. DWORD minute :6; // 分 1-60
  1083. DWORD hour :5; // 时 1-24
  1084. DWORD day :5; // 日 1-31
  1085. DWORD month :4; // 月 1-12
  1086. DWORD year :6; // 年 2000-2063
  1087. } DHDEVTIME, *LPDHDEVTIME;
  1088. // 回调数据(异步接口)
  1089. typedef struct __NET_CALLBACK_DATA 
  1090. {
  1091. int nResultCode; // 返回码;0:成功
  1092. char *pBuf; // 接收数据,缓冲是由用户开辟的,从接口形参传入
  1093. int nRetLen; // 接收长度
  1094. LONG lOperateHandle; // 操作句柄
  1095. void* userdata; // 操作对应用户参数
  1096. char reserved[16];
  1097. } NET_CALLBACK_DATA, *LPNET_CALLBACK_DATA;
  1098. ///////////////////////////////监视相关定义///////////////////////////////
  1099. // 回调视频数据帧的帧参数结构体
  1100. typedef struct _tagVideoFrameParam
  1101. {
  1102. BYTE encode; // 编码类型
  1103. BYTE frametype; // I = 0, P = 1, B = 2...
  1104. BYTE format; // PAL - 0, NTSC - 1
  1105. BYTE size; // CIF - 0, HD1 - 1, 2CIF - 2, D1 - 3, VGA - 4, QCIF - 5, QVGA - 6 ,
  1106. // SVCD - 7,QQVGA - 8, SVGA - 9, XVGA - 10,WXGA - 11,SXGA - 12,WSXGA - 13,UXGA - 14,WUXGA - 15, LFT - 16, 720 - 17, 1080 - 18
  1107. DWORD fourcc; // 如果是H264编码则总为0,MPEG4这里总是填写FOURCC('X','V','I','D');
  1108. DWORD reserved; // 保留
  1109. NET_TIME struTime; // 时间信息
  1110. } tagVideoFrameParam;
  1111. // 回调音频数据帧的帧参数结构体
  1112. typedef struct _tagCBPCMDataParam
  1113. {
  1114. BYTE channels; // 声道数
  1115. BYTE samples; // 采样 0 - 8000, 1 - 11025, 2 - 16000, 3 - 22050, 4 - 32000, 5 - 44100, 6 - 48000
  1116. BYTE depth; // 采样深度 取值8或者16等。直接表示
  1117. BYTE param1; // 0 - 指示无符号,1-指示有符号
  1118. DWORD reserved; // 保留
  1119. } tagCBPCMDataParam;
  1120. // 通道画面字幕叠加的数据结构
  1121. typedef struct _DH_CHANNEL_OSDSTRING
  1122. {
  1123. BOOL bEnable; // 使能
  1124. DWORD dwPosition[MAX_STRING_LINE_LEN]; //各行字符的位置 用1-9整数表示,与小键盘位置对应
  1125. // 7左上 8上 9右上
  1126. // 4左 5中 6右
  1127. // 1左下 2下 3右下
  1128. char szStrings[MAX_STRING_LINE_LEN][MAX_PER_STRING_LEN]; // 最多六行字符,每行最多20个字节
  1129. } DH_CHANNEL_OSDSTRING;
  1130. ///////////////////////////////回放相关定义///////////////////////////////
  1131. // 录像文件信息
  1132. typedef struct
  1133. {
  1134.     unsigned int ch; // 通道号
  1135.     char filename[128]; // 文件名
  1136.     unsigned int size; // 文件长度
  1137.     NET_TIME starttime; // 开始时间
  1138.     NET_TIME endtime; // 结束时间
  1139.     unsigned int driveno; // 磁盘号(区分网络录像和本地录像的类型,0-127表示本地录像,128表示网络录像)
  1140.     unsigned int startcluster; // 起始簇号
  1141. BYTE nRecordFileType; // 录象文件类型  0:普通录象;1:报警录象;2:移动检测;3:卡号录象;4:图片
  1142. BYTE                bImportantRecID; // 0:普通录像 1:重要录像
  1143. BYTE                bHint; // 文件定位索引
  1144. BYTE                bReserved; // 保留
  1145. } NET_RECORDFILE_INFO, *LPNET_RECORDFILE_INFO;
  1146. ///////////////////////////////报警相关定义///////////////////////////////
  1147. // 普通报警信息
  1148. typedef struct
  1149. {
  1150. int channelcount;
  1151. int alarminputcount;
  1152. unsigned char alarm[16]; // 外部报警
  1153. unsigned char motiondection[16]; // 动态检测
  1154. unsigned char videolost[16]; // 视频丢失
  1155. } NET_CLIENT_STATE;
  1156. // 报警IO控制
  1157. typedef struct 
  1158. {
  1159. unsigned short index; // 端口序号
  1160. unsigned short state; // 端口状态
  1161. } ALARM_CONTROL;
  1162. //触发方式
  1163. typedef struct
  1164. {
  1165. unsigned short index; //端口序号
  1166. unsigned short mode; //触发方式(0关闭1手动2自动);不设置的通道,sdk默认将保持原来的设置。
  1167. BYTE bReserved[28];
  1168. } TRIGGER_MODE_CONTROL;
  1169. // 报警解码器控制
  1170. typedef struct 
  1171. {
  1172. int decoderNo; // 报警解码器号,从0开始
  1173. unsigned short alarmChn; // 报警输出口,从0开始
  1174. unsigned short alarmState; // 报警输出状态;1:打开,0:关闭
  1175. } DECODER_ALARM_CONTROL;
  1176. // 报警上传功能的报警信息
  1177. typedef struct  
  1178. {
  1179. DWORD dwAlarmType; // 报警类型,dwAlarmType = DH_UPLOAD_EVENT时,dwAlarmMask和bAlarmDecoderIndex是无效的
  1180. DWORD dwAlarmMask; // 报警信息掩码,按位表示各报警通道状态
  1181. char szGlobalIP[DH_MAX_IPADDR_LEN]; // 客户端IP地址
  1182. char szDomainName[DH_MAX_DOMAIN_NAME_LEN]; // 客户端域名
  1183. int nPort; // 报警上传时客户端连接的端口
  1184. char szAlarmOccurTime[DH_ALARM_OCCUR_TIME_LEN]; // 报警发生的时间
  1185. BYTE bAlarmDecoderIndex; // 表示第几个报警解码器,dwAlarmType = DH_UPLOAD_DECODER_ALARM 才有效.
  1186. BYTE bReservedSpace[15];
  1187. }NEW_ALARM_UPLOAD;
  1188. /////////////////////////////语音对讲相关定义/////////////////////////////
  1189. // 音频格式信息
  1190. typedef struct
  1191. {
  1192. BYTE byFormatTag; // 编码类型,如0:PCM
  1193. WORD nChannels; // 声道数
  1194. WORD wBitsPerSample; // 采样深度
  1195. DWORD nSamplesPerSec; // 采样率
  1196. } DH_AUDIO_FORMAT, *LPDH_AUDIO_FORMAT;
  1197. /////////////////////////////用户管理相关定义/////////////////////////////
  1198. // 支持用户名最大长度为8位的设备,对应CLIENT_QueryUserInfo和CLIENT_OperateUserInfo接口
  1199. // 权限信息
  1200. typedef struct _OPR_RIGHT
  1201. {
  1202. DWORD dwID;
  1203. char name[DH_RIGHT_NAME_LENGTH];
  1204. char memo[DH_MEMO_LENGTH];
  1205. } OPR_RIGHT;
  1206. // 用户信息
  1207. typedef struct _USER_INFO
  1208. {
  1209. DWORD dwID;
  1210. DWORD dwGroupID;
  1211. char name[DH_USER_NAME_LENGTH];
  1212. char passWord[DH_USER_PSW_LENGTH];
  1213. DWORD dwRightNum;
  1214. DWORD rights[DH_MAX_RIGHT_NUM];
  1215. char memo[DH_MEMO_LENGTH];
  1216. DWORD dwReusable; // 是否复用;1:复用,0:不复用
  1217. } USER_INFO;
  1218. // 用户组信息
  1219. typedef struct _USER_GROUP_INFO
  1220. {
  1221. DWORD dwID;
  1222. char name[DH_USER_NAME_LENGTH];
  1223. DWORD dwRightNum;
  1224. DWORD rights[DH_MAX_RIGHT_NUM];
  1225. char memo[DH_MEMO_LENGTH];
  1226. } USER_GROUP_INFO;
  1227. // 用户信息表
  1228. typedef struct _USER_MANAGE_INFO
  1229. {
  1230. DWORD dwRightNum; // 权限信息
  1231. OPR_RIGHT rightList[DH_MAX_RIGHT_NUM];
  1232. DWORD dwGroupNum; // 用户组信息
  1233. USER_GROUP_INFO groupList[DH_MAX_GROUP_NUM];
  1234. DWORD dwUserNum; // 用户信息
  1235. USER_INFO userList[DH_MAX_USER_NUM];
  1236. DWORD dwSpecial; // 用户复用能力;1:支持用户复用,0:不支持用户复用
  1237. } USER_MANAGE_INFO;
  1238. // 支持用户名最大长度为8位或16位的设备,对应扩展接口CLIENT_QueryUserInfoEx和CLIENT_OperateUserInfoEx
  1239. #define DH_USER_NAME_LENGTH_EX 16 // 用户名长度
  1240. #define DH_USER_PSW_LENGTH_EX 16 // 密码
  1241. // 权限信息
  1242. typedef struct _OPR_RIGHT_EX
  1243. {
  1244. DWORD dwID;
  1245. char name[DH_RIGHT_NAME_LENGTH];
  1246. char memo[DH_MEMO_LENGTH];
  1247. } OPR_RIGHT_EX;
  1248. // 用户信息
  1249. typedef struct _USER_INFO_EX
  1250. {
  1251. DWORD dwID;
  1252. DWORD dwGroupID;
  1253. char name[DH_USER_NAME_LENGTH_EX];
  1254. char passWord[DH_USER_PSW_LENGTH_EX];
  1255. DWORD dwRightNum;
  1256. DWORD rights[DH_MAX_RIGHT_NUM];
  1257. char memo[DH_MEMO_LENGTH];
  1258. DWORD dwFouctionMask; // 掩码,0x00000001 - 支持用户复用
  1259. BYTE byReserve[32];
  1260. } USER_INFO_EX;
  1261. // 用户组信息
  1262. typedef struct _USER_GROUP_INFO_EX
  1263. {
  1264. DWORD dwID;
  1265. char name[DH_USER_NAME_LENGTH_EX];
  1266. DWORD dwRightNum;
  1267. DWORD rights[DH_MAX_RIGHT_NUM];
  1268. char memo[DH_MEMO_LENGTH];
  1269. } USER_GROUP_INFO_EX;
  1270. // 用户信息表
  1271. typedef struct _USER_MANAGE_INFO_EX
  1272. {
  1273. DWORD dwRightNum; // 权限信息
  1274. OPR_RIGHT_EX rightList[DH_MAX_RIGHT_NUM];
  1275. DWORD dwGroupNum; // 用户组信息
  1276. USER_GROUP_INFO_EX  groupList[DH_MAX_GROUP_NUM];
  1277. DWORD dwUserNum; // 用户信息
  1278. USER_INFO_EX userList[DH_MAX_USER_NUM];
  1279. DWORD dwFouctionMask; // 掩码;0x00000001 - 支持用户复用,0x00000002 - 密码修改需要校验
  1280. BYTE byNameMaxLength; // 支持的用户名最大长度
  1281. BYTE byPSWMaxLength; // 支持的密码最大长度
  1282. BYTE byReserve[254];
  1283. } USER_MANAGE_INFO_EX;
  1284. ///////////////////////////////查询相关定义///////////////////////////////
  1285. // 设备支持语言种类
  1286. typedef struct _DH_LANGUAGE_DEVINFO
  1287. {
  1288. DWORD dwLanguageNum; // 支持语言个数
  1289. BYTE byLanguageType[252]; //枚举值,详见DH_LANGUAGE_TYPE
  1290. } DH_DEV_LANGUAGE_INFO, *LPDH_DEV_LANGUAGE_INFO;
  1291. // 硬盘信息
  1292. typedef struct
  1293. {
  1294. DWORD dwVolume; // 硬盘的容量
  1295. DWORD dwFreeSpace; // 硬盘的剩余空间
  1296. BYTE dwStatus; // 硬盘的状态,0-休眠,1-活动,2-故障等;将DWORD拆成四个BYTE
  1297. BYTE bDiskNum; // 硬盘号
  1298. BYTE bSubareaNum; // 分区号
  1299. BYTE bSignal; // 标识,0为本地 1为远程
  1300. } NET_DEV_DISKSTATE,*LPNET_DEV_DISKSTATE;
  1301. // 设备硬盘信息
  1302. typedef struct _DH_HARDDISK_STATE
  1303. {
  1304. DWORD dwDiskNum; // 个数
  1305. NET_DEV_DISKSTATE stDisks[DH_MAX_DISKNUM];// 硬盘或分区信息
  1306. } DH_HARDDISK_STATE, *LPDH_HARDDISK_STATE;
  1307. typedef DH_HARDDISK_STATE DH_SDCARD_STATE; // SD卡,数据结构同硬盘信息
  1308. // 语音编码信息
  1309. typedef struct  
  1310. {
  1311. DH_TALK_CODING_TYPE encodeType; // 编码类型
  1312. int nAudioBit; // 位数,如8或16
  1313. DWORD dwSampleRate; // 采样率,如8000或16000
  1314. char reserved[64];
  1315. } DHDEV_TALKDECODE_INFO;
  1316. // 设备支持的语音对讲类型
  1317. typedef struct 
  1318. {
  1319. int nSupportNum; // 个数
  1320. DHDEV_TALKDECODE_INFO type[64]; // 编码类型
  1321. char reserved[64];
  1322. } DHDEV_TALKFORMAT_LIST;
  1323. // 云台属性信息
  1324. #define  NAME_MAX_LEN 16
  1325. typedef struct 
  1326. {
  1327. DWORD dwHighMask; // 操作的掩码高位
  1328. DWORD dwLowMask; // 操作的掩码低位
  1329. char szName[NAME_MAX_LEN]; // 操作的协议名
  1330. WORD wCamAddrMin; // 通道地址的最小值
  1331. WORD wCamAddrMax; // 通道地址的最大值
  1332. WORD wMonAddrMin; // 监视地址的最小值
  1333. WORD wMonAddrMax; // 监视地址的最大值
  1334. BYTE bPresetMin; // 预置点的最小值
  1335. BYTE bPresetMax; // 预置点的最大值
  1336. BYTE bTourMin; // 自动巡航线路的最小值
  1337. BYTE bTourMax; // 自动巡航线路的最大值
  1338. BYTE bPatternMin; // 轨迹线路的最小值
  1339. BYTE bPatternMax; // 轨迹线路的最大值
  1340. BYTE bTileSpeedMin; // 垂直速度的最小值
  1341. BYTE bTileSpeedMax; // 垂直速度的最大值
  1342. BYTE bPanSpeedMin; // 水平速度的最小值
  1343. BYTE bPanSpeedMax; // 水平速度的最大值
  1344. BYTE bAuxMin; // 辅助功能的最小值
  1345. BYTE bAuxMax; // 辅助功能的最大值
  1346. int nInternal; // 发送命令的时间间隔
  1347. char cType; // 协议的类型
  1348. char Reserved[7];
  1349. } PTZ_OPT_ATTR;
  1350. // 刻录机信息
  1351. typedef struct _NET_DEV_BURNING
  1352. {
  1353. DWORD dwDriverType; // 刻录驱动器类型;0:DHFS,1:DISK,2:CDRW
  1354. DWORD dwBusType; // 总线类型;0:USB,1:1394,2:IDE
  1355. DWORD dwTotalSpace; // 总容量(KB)
  1356. DWORD dwRemainSpace; // 剩余容量(KB)
  1357. BYTE dwDriverName[DH_BURNING_DEV_NAMELEN]; // 刻录驱动器名称
  1358. } NET_DEV_BURNING, *LPNET_DEV_BURNING;
  1359. // 设备刻录机信息
  1360. typedef struct _DH_BURNING_DEVINFO
  1361. {
  1362. DWORD dwDevNum; // 刻录设备个数
  1363. NET_DEV_BURNING stDevs[DH_MAX_BURNING_DEV_NUM]; // 各刻录设备信息
  1364. } DH_BURNING_DEVINFO, *LPDH_BURNING_DEVINFO;
  1365. // 刻录进度
  1366. typedef struct _DH_BURNING_PROGRESS
  1367. {
  1368. BYTE bBurning; // 刻录机状态;0:可以刻录,1:刻录机类型不对,是一个非光盘设备,
  1369. // 2:未找到刻录机,3:有其它光盘在刻录,4:刻录机处于非空闲状态,即在备份、刻录或回放中
  1370. BYTE bRomType; // 盘片类型;0:大华文件系统,1:移动硬盘或U盘,2:光盘
  1371. BYTE bOperateType; // 操作类型;0:空闲,1:正在备份中,2:正在刻录中,3:正在进行光盘回放
  1372. BYTE bType; // 备份或刻录过程状态;0:停止或结束,1:开始,2:出错,3:满,4:正在初始化
  1373. NET_TIME stTimeStart; // 开始时间 
  1374. DWORD dwTimeElapse; // 已刻录时间(秒)
  1375. DWORD dwTotalSpace; // 光盘总容量
  1376. DWORD dwRemainSpace; // 光盘剩余容量
  1377. DWORD dwBurned; // 已刻录容量
  1378. WORD dwStatus; // 保留
  1379. WORD wChannelMask; // 正在刻录的通道掩码
  1380. } DH_BURNING_PROGRESS, *LPDH_BURNING_PROGRESS;
  1381. // 日志信息,对应接口CLIENT_QueryLog接口
  1382. typedef struct _DH_LOG_ITEM
  1383. {
  1384.     DHDEVTIME time; // 日期
  1385.     unsigned short type; // 类型
  1386.     unsigned char reserved; // 保留
  1387.     unsigned char data; // 数据
  1388.     unsigned char context[8]; // 内容
  1389. } DH_LOG_ITEM, *LPDH_LOG_ITEM;
  1390. // 日志信息,对应扩展接口CLIENT_QueryLogEx,参数reserved(int nType=1;reserved=&nType;)
  1391. typedef struct _DH_NEWLOG_ITEM
  1392. {
  1393. DHDEVTIME time; // 日期
  1394. WORD type; // 类型
  1395. WORD data; // 数据
  1396. char szOperator[8];  // 用户名
  1397. BYTE context[16];     // 内容
  1398. } DH_NEWLOG_ITEM, *LPDH_NEWLOG_ITEM;
  1399. // 日志信息,对应接口CLIENT_QueryDeviceLog接口
  1400. typedef struct _DH_DEVICE_LOG_ITEM
  1401. {
  1402. int nLogType; // 日志类型
  1403. DHDEVTIME stuOperateTime; // 日期
  1404. char szOperator[16];  // 操作者
  1405. BYTE bReserved[3];
  1406. BYTE bUnionType; //  union结构类型,0:szLogContext;1:stuOldLog。
  1407. union
  1408. {
  1409. char szLogContext[64]; // 日志内容
  1410. struct 
  1411. {
  1412. DH_LOG_ITEM stuLog; // 旧的日志结构体
  1413. BYTE bReserved[48]; // 保留
  1414. }stuOldLog;
  1415. };
  1416. char reserved[16];
  1417. } DH_DEVICE_LOG_ITEM, *LPDH_DEVICE_LOG_ITEM;
  1418. // 录象日志信息,对应日志结构体里的context
  1419. typedef struct _LOG_ITEM_RECORD
  1420. {
  1421. DHDEVTIME time; // 时间
  1422. BYTE channel; // 通道
  1423. BYTE type; // 录像类型
  1424. BYTE reserved[2];
  1425. } LOG_ITEM_RECORD, *LPLOG_ITEM_RECORD;
  1426. typedef struct _QUERY_DEVICE_LOG_PARAM
  1427. {
  1428. DH_LOG_QUERY_TYPE emLogType; // 查询日志类型
  1429. NET_TIME stuStartTime; // 查询日志的开始时间
  1430. NET_TIME stuEndTime; // 查询日志的结束时间
  1431. int nStartNum; // 在时间段中从第几条日志开始查询,开始第一次查询可设为0
  1432. int nEndNum; // 一次查询中到第几条日志结束。
  1433. BYTE bReserved[48];
  1434. } QUERY_DEVICE_LOG_PARAM;
  1435. // 设备硬盘里的录象信息
  1436. typedef struct __DEV_DISK_RECORD_INFO 
  1437. {
  1438. NET_TIME stuBeginTime; // 最早录象时间
  1439. NET_TIME stuEndTime; // 最近录象时间
  1440. char reserved[128];
  1441. } DEV_DISK_RECORD_INFO;
  1442. ///////////////////////////////控制相关定义///////////////////////////////
  1443. // 硬盘操作
  1444. typedef struct _DISKCTRL_PARAM
  1445. {
  1446. DWORD dwSize; // 结构体大小,版本控制用
  1447. int nIndex; // 为硬盘信息结构体DH_HARDDISK_STATE里的数组stDisks下标,从0开始
  1448. int ctrlType; // 操作类型,
  1449. // 0 - 清除数据, 1 - 设为读写盘, 2 - 设为只读盘
  1450. // 3 - 设为冗余盘, 4 - 恢复错误, 5 - 设为快照盘
  1451. } DISKCTRL_PARAM;
  1452. typedef struct  
  1453. {
  1454. BYTE bSubareaNum; // 预分区的个数
  1455. BYTE bIndex; // 为硬盘信息结构体DH_HARDDISK_STATE里的数组stDisks下标,从0开始
  1456. BYTE bSubareaSize[32]; // 分区大小(百分比)
  1457. BYTE bReserved[30]; // 保留
  1458. } DISKCTRL_SUBAREA;
  1459. // 报警状态
  1460. typedef struct _ALARMCTRL_PARAM
  1461. {
  1462. DWORD dwSize;
  1463. int nAlarmNo; // 报警通道号,从0开始
  1464. int nAction; // 1:触发报警,0:停止报警
  1465. } ALARMCTRL_PARAM;
  1466. // 矩阵控制
  1467. typedef struct _MATRIXCTRL_PARAM
  1468. {
  1469. DWORD dwSize;
  1470. int nChannelNo; // 视频输入号,从0开始
  1471. int nMatrixNo; // 矩阵输出号,从0开始
  1472. } MATRIXCTRL_PARAM;
  1473. // 刻录控制
  1474. typedef struct _BURNING_PARM
  1475. {
  1476. int channelMask; // 通道掩码,按位表示要刻录的通道
  1477. int devMask; // 刻录机掩码,根据查询到的刻录机列表,按位表示
  1478. } BURNNG_PARM;
  1479. // 附件刻录
  1480. typedef struct _BURNING_PARM_ATTACH
  1481. {
  1482. BOOL bAttachBurn; // 是否为附件刻录,0:不是; 1:是
  1483. BYTE bReserved[12]; // 保留字段
  1484. } BURNING_PARM_ATTACH;
  1485. ///////////////////////////////配置相关定义///////////////////////////////
  1486. //-------------------------------设备属性---------------------------------
  1487. // 设备信息
  1488. typedef struct
  1489. {
  1490. BYTE sSerialNumber[DH_SERIALNO_LEN]; // 序列号
  1491. BYTE byAlarmInPortNum; // DVR报警输入个数
  1492. BYTE byAlarmOutPortNum; // DVR报警输出个数
  1493. BYTE byDiskNum; // DVR硬盘个数
  1494. BYTE byDVRType; // DVR类型, 见枚举DHDEV_DEVICE_TYPE
  1495. BYTE byChanNum; // DVR通道个数
  1496. } NET_DEVICEINFO, *LPNET_DEVICEINFO;
  1497. // 设备软件版本信息,高16位表示主版本号,低16位表示次版本号
  1498. typedef struct 
  1499. {
  1500. DWORD dwSoftwareVersion;
  1501. DWORD dwSoftwareBuildDate;
  1502. DWORD dwDspSoftwareVersion;
  1503. DWORD dwDspSoftwareBuildDate;
  1504. DWORD dwPanelVersion;
  1505. DWORD dwPanelSoftwareBuildDate;
  1506. DWORD dwHardwareVersion;
  1507. DWORD dwHardwareDate;
  1508. DWORD dwWebVersion;
  1509. DWORD dwWebBuildDate;
  1510. } DH_VERSION_INFO, *LPDH_VERSION_INFO;
  1511. // 设备软件版本信息,对应CLIENT_QueryDevState接口
  1512. typedef struct  
  1513. {
  1514. char szDevSerialNo[DH_DEV_SERIALNO_LEN]; // 序列号
  1515. char byDevType; // 设备类型,见枚举DHDEV_DEVICE_TYPE
  1516. char szDevType[DH_DEV_TYPE_LEN]; // 设备详细型号,字符串格式,可能为空
  1517. int nProtocalVer; // 协议版本号
  1518. char szSoftWareVersion[DH_MAX_URL_LEN];
  1519. DWORD dwSoftwareBuildDate;
  1520. char szDspSoftwareVersion[DH_MAX_URL_LEN];
  1521. DWORD dwDspSoftwareBuildDate;
  1522. char szPanelVersion[DH_MAX_URL_LEN];
  1523. DWORD dwPanelSoftwareBuildDate;
  1524. char szHardwareVersion[DH_MAX_URL_LEN];
  1525. DWORD dwHardwareDate;
  1526. char szWebVersion[DH_MAX_URL_LEN];
  1527. DWORD dwWebBuildDate;
  1528. char reserved[256];
  1529. } DHDEV_VERSION_INFO;
  1530. // DSP能力描述,对应CLIENT_GetDevConfig接口
  1531. typedef struct 
  1532. {
  1533. DWORD dwVideoStandardMask; // 视频制式掩码,按位表示设备能够支持的视频制式
  1534. DWORD dwImageSizeMask; // 分辨率掩码,按位表示设备能够支持的分辨率设置
  1535. DWORD dwEncodeModeMask; // 编码模式掩码,按位表示设备能够支持的编码模式设置
  1536. DWORD dwStreamCap; // 按位表示设备支持的多媒体功能,
  1537. // 第一位表示支持主码流
  1538. // 第二位表示支持辅码流1
  1539. // 第三位表示支持辅码流2
  1540. // 第五位表示支持jpg抓图
  1541. DWORD dwImageSizeMask_Assi[8];// 表示主码流为各分辨率时,支持的辅码流分辨率掩码。
  1542. DWORD dwMaxEncodePower; // DSP支持的最高编码能力 
  1543. WORD wMaxSupportChannel; // 每块DSP支持最多输入视频通道数 
  1544. WORD wChannelMaxSetSync; // DSP每通道的最大编码设置是否同步;0:不同步,1:同步
  1545. } DH_DSP_ENCODECAP, *LPDH_DSP_ENCODECAP;
  1546. // DSP能力描述,扩展类型,对应CLIENT_QueryDevState接口
  1547. typedef struct 
  1548. {
  1549. DWORD dwVideoStandardMask; // 视频制式掩码,按位表示设备能够支持的视频制式
  1550. DWORD dwImageSizeMask; // 分辨率掩码,按位表示设备能够支持的分辨率
  1551. DWORD dwEncodeModeMask; // 编码模式掩码,按位表示设备能够支持的编码模式
  1552. DWORD dwStreamCap; // 按位表示设备支持的多媒体功能,
  1553. // 第一位表示支持主码流
  1554. // 第二位表示支持辅码流1
  1555. // 第三位表示支持辅码流2
  1556. // 第五位表示支持jpg抓图
  1557. DWORD dwImageSizeMask_Assi[32];// 表示主码流为各分辨率时,支持的辅码流分辨率掩码。
  1558. DWORD dwMaxEncodePower; // DSP支持的最高编码能力 
  1559. WORD wMaxSupportChannel; // 每块DSP支持最多输入视频通道数 
  1560. WORD wChannelMaxSetSync; // DSP每通道的最大编码设置是否同步;0:不同步,1:同步
  1561. BYTE bMaxFrameOfImageSize[32];// 不同分辨率下的最大采集帧率,与dwVideoStandardMask按位对应
  1562. BYTE bEncodeCap; // 标志,配置时要求符合下面条件,否则配置不能生效;
  1563. // 0:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  1564. // 1:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  1565. // 辅码流的编码能力 <= 主码流的编码能力,
  1566. // 辅码流的分辨率 <= 主码流的分辨率,
  1567. // 主码流和辅码流的帧率 <= 前端视频采集帧率
  1568. // 2:N5的计算方法
  1569. // 辅码流的分辨率 <= 主码流的分辨率
  1570. // 查询支持的分辨率和相应最大帧率
  1571. char reserved[95];
  1572. } DHDEV_DSP_ENCODECAP, *LPDHDEV_DSP_ENCODECAP;
  1573. // 系统信息
  1574. typedef struct 
  1575. {
  1576. DWORD dwSize;
  1577. /* 下面是设备的只读部分 */
  1578. DH_VERSION_INFO stVersion;
  1579. DH_DSP_ENCODECAP stDspEncodeCap; // DSP能力描述
  1580. BYTE szDevSerialNo[DH_DEV_SERIALNO_LEN]; // 序列号
  1581. BYTE byDevType; // 设备类型,见枚举DHDEV_DEVICE_TYPE
  1582. BYTE szDevType[DH_DEV_TYPE_LEN]; // 设备详细型号,字符串格式,可能为空
  1583. BYTE byVideoCaptureNum; // 视频口数量
  1584. BYTE byAudioCaptureNum; // 音频口数量
  1585. BYTE byTalkInChanNum; // NSP
  1586. BYTE byTalkOutChanNum; // NSP
  1587. BYTE byDecodeChanNum; // NSP
  1588. BYTE byAlarmInNum; // 报警输入口数
  1589. BYTE byAlarmOutNum; // 报警输出口数
  1590. BYTE byNetIONum; // 网络口数
  1591. BYTE byUsbIONum; // USB口数量
  1592. BYTE byIdeIONum; // IDE数量
  1593. BYTE byComIONum; // 串口数量
  1594. BYTE byLPTIONum; // 并口数量
  1595. BYTE byVgaIONum; // NSP
  1596. BYTE byIdeControlNum; // NSP
  1597. BYTE byIdeControlType; // NSP
  1598. BYTE byCapability; // NSP,扩展描述
  1599. BYTE byMatrixOutNum; // 视频矩阵输出口数
  1600. /* 下面是设备的可写部分 */
  1601. BYTE byOverWrite; // 硬盘满处理方式(覆盖、停止)
  1602. BYTE byRecordLen; // 录象打包长度
  1603. BYTE byDSTEnable; // 是否实行夏令时 1-实行 0-不实行
  1604. WORD wDevNo; // 设备编号,用于遥控
  1605. BYTE byVideoStandard; // 视频制式:0-PAL,1-NTSC
  1606. BYTE byDateFormat; // 日期格式
  1607. BYTE byDateSprtr; // 日期分割符(0:".",1:"-",2:"/")
  1608. BYTE byTimeFmt; // 时间格式 (0-24小时,1-12小时)
  1609. BYTE byLanguage; // 枚举值详见DH_LANGUAGE_TYPE
  1610. } DHDEV_SYSTEM_ATTR_CFG, *LPDHDEV_SYSTEM_ATTR_CFG;
  1611. // 修改设备配置返回信息
  1612. typedef struct
  1613. {
  1614. DWORD dwType; // 类型(即GetDevConfig和SetDevConfig的类型)
  1615. WORD wResultCode; // 返回码;0:成功,1:失败,2:数据不合法,3:暂时无法设置,4:没有权限
  1616. WORD    wRebootSign; // 重启标志;0:不需要重启,1:需要重启才生效
  1617. DWORD dwReserved[2]; // 保留
  1618. } DEV_SET_RESULT;
  1619. //DST(夏令时)配置
  1620. typedef struct  
  1621. {
  1622. int nYear; // 年[200 - 2037]
  1623. int nMonth; // 月[1 - 12]
  1624. int nHour; // 小时 [0 - 23]
  1625. int nMinute; // 分钟 [0 - 59]
  1626. int nWeekOrDay; // [-1 - 4]0:表示使用按日期计算的方法
  1627. // 1: 按周计算: 第一周,2: 第二周,3: 第三周,4: 第四周,-1: 最后一周
  1628. union
  1629. {
  1630. int iWeekDay; // 周[0 - 6](nWeekOrDay:按周计算时)0:星期日, 1:星期一, 2:星期二,3:星期三,4:星期四,5:星期五,6:星期六
  1631. int iDay; // 日期[1 - 31] (nWeekOrDay:按日期计算)
  1632. };
  1633. DWORD dwReserved[8]; // 保留
  1634. }DH_DST_POINT;
  1635. typedef struct  
  1636. {
  1637. DWORD dwSize;
  1638. int nDSTType; // 夏令时定位方式 0:按日期定位方式, 1:按周定位方式
  1639. DH_DST_POINT        stDSTStart;             // 开始夏令时
  1640. DH_DST_POINT        stDSTEnd; // 结束夏令时
  1641. DWORD dwReserved[16]; // 保留
  1642. }DHDEV_DST_CFG;
  1643. // 自动维护配置
  1644. typedef struct
  1645. {
  1646. DWORD dwSize;
  1647. BYTE byAutoRebootDay; // 自动重启;0:从不, 1:每天,2:每星期日,3:每星期一,......
  1648. BYTE byAutoRebootTime; // 0:0:00,1:1:00,......23:23:00
  1649. BYTE byAutoDeleteFilesTime; // 自动删除文件;0:从不,1:24H,2:48H,3:72H,4:96H,5:ONE WEEK,6:ONE MONTH
  1650. BYTE reserved[13]; // 保留位
  1651. } DHDEV_AUTOMT_CFG;
  1652. //-----------------------------图像通道属性-------------------------------
  1653. // 时间段结构     
  1654. typedef struct 
  1655. {
  1656. BOOL bEnable; // 当表示录像时间段时,按位表示三个使能,从低位到高位分别表示动检录象、报警录象、普通录象
  1657. int iBeginHour;
  1658. int iBeginMin;
  1659. int iBeginSec;
  1660. int iEndHour;
  1661. int iEndMin;
  1662. int iEndSec;
  1663. } DH_TSECT, *LPDH_TSECT;
  1664. // 区域;各边距按整长8192的比例
  1665. typedef struct {
  1666.    long left;
  1667.    long top;
  1668.    long right;
  1669.    long bottom;
  1670. } DH_RECT, *LPDH_RECT;
  1671. // OSD属性结构
  1672. typedef struct  tagENCODE_WIDGET
  1673. {
  1674. DWORD rgbaFrontground; // 物件的前景;按字节表示,分别为红、绿、蓝和透明度
  1675. DWORD rgbaBackground; // 物件的背景;按字节表示,分别为红、绿、蓝和透明度
  1676. DH_RECT rcRect; // 位置
  1677. BYTE bShow; // 显示使能
  1678. BYTE byReserved[3];
  1679. } DH_ENCODE_WIDGET, *LPDH_ENCODE_WIDGET;
  1680. // 通道音视频属性
  1681. typedef struct 
  1682. {
  1683. // 视频参数
  1684. BYTE byVideoEnable; // 视频使能;1:打开,0:关闭
  1685. BYTE byBitRateControl; // 码流控制;参照常量"码流控制"定义
  1686. BYTE byFramesPerSec; // 帧率
  1687. BYTE byEncodeMode; // 编码模式;参照常量"编码模式"定义
  1688. BYTE byImageSize; // 分辨率;参照常量"分辨率"定义
  1689. BYTE byImageQlty; // 档次1-6
  1690. WORD wLimitStream; // 限码流参数
  1691. // 音频参数
  1692. BYTE byAudioEnable; // 音频使能;1:打开,0:关闭
  1693. BYTE wFormatTag; // 音频编码类型
  1694. WORD nChannels; // 声道数
  1695. WORD wBitsPerSample; // 采样深度
  1696. DWORD nSamplesPerSec; // 采样率
  1697. BYTE bIFrameInterval; // I帧间隔帧数量,描述两个I帧之间的P帧个数,0-149
  1698. BYTE bScanMode; // NSP
  1699. } DH_VIDEOENC_OPT, *LPDH_VIDEOENC_OPT;
  1700. // 画面颜色属性
  1701. typedef struct 
  1702. {
  1703. DH_TSECT stSect;
  1704. BYTE byBrightness; // 亮度;0-100
  1705. BYTE byContrast; // 对比度;0-100
  1706. BYTE bySaturation; // 饱和度;0-100
  1707. BYTE byHue; // 色度;0-100
  1708. BYTE byGainEn; // 增益使能
  1709. BYTE byGain; // 增益;0-100
  1710. BYTE byReserved[2];
  1711. } DH_COLOR_CFG, *LPDH_COLOR_CFG;
  1712. // 图像通道属性结构体
  1713. typedef struct 
  1714. {
  1715. DWORD dwSize;
  1716. char szChannelName[DH_CHAN_NAME_LEN];
  1717. DH_VIDEOENC_OPT stMainVideoEncOpt[DH_REC_TYPE_NUM];
  1718. DH_VIDEOENC_OPT stAssiVideoEncOpt[DH_N_ENCODE_AUX];
  1719. DH_COLOR_CFG stColorCfg[DH_N_COL_TSECT];
  1720. DH_ENCODE_WIDGET stTimeOSD;
  1721. DH_ENCODE_WIDGET stChannelOSD;
  1722. DH_ENCODE_WIDGET stBlindCover[DH_N_COVERS]; // 单区域遮挡
  1723. BYTE byBlindEnable; // 区域遮盖开关;0x00:不使能遮盖,0x01:仅遮盖设备本地预览,0x10:仅遮盖录像及网络预览,0x11:都遮盖
  1724. BYTE byBlindMask; // 区域遮盖掩码;第一位:设备本地预览;第二位:录像(及网络预览) */
  1725. BYTE bVolume; // 音量阀值(0~100可调)
  1726. BYTE bVolumeEnable; // 音量阀值使能
  1727. } DHDEV_CHANNEL_CFG, *LPDHDEV_CHANNEL_CFG;
  1728. // 预览图像参数
  1729. typedef struct 
  1730. {
  1731. DWORD dwSize;
  1732. DH_VIDEOENC_OPT stPreView;
  1733. DH_COLOR_CFG stColorCfg[DH_N_COL_TSECT];
  1734. }DHDEV_PREVIEW_CFG;
  1735. //-------------------------------串口属性---------------------------------
  1736. // 串口基本属性
  1737. typedef struct
  1738. {
  1739. BYTE byDataBit; // 数据位;0:5,1:6,2:7,3:8
  1740. BYTE byStopBit; // 停止位;0:1位,1:1.5位,2:2位
  1741. BYTE byParity; // 校验位;0:无校验,1:奇校验;2:偶校验
  1742. BYTE byBaudRate; // 波特率;0:300,1:600,2:1200,3:2400,4:4800,
  1743. // 5:9600,6:19200,7:38400,8:57600,9:115200
  1744. } DH_COMM_PROP;
  1745. // 485解码器配置
  1746. typedef struct
  1747. DH_COMM_PROP struComm;
  1748. BYTE wProtocol; // 协议类型,对应"协议名列表"下标
  1749. BYTE byReserved; // 保留
  1750. BYTE wDecoderAddress; // 解码器地址;0 - 255
  1751. BYTE  byMartixID; // 矩阵号
  1752. } DH_485_CFG;
  1753. // 232串口配置
  1754. typedef struct
  1755. {
  1756. DH_COMM_PROP struComm;
  1757. BYTE byFunction; // 串口功能,对应"功能名列表"下标
  1758. BYTE byReserved[3];
  1759. } DH_RS232_CFG;
  1760. // 串口配置结构体
  1761. typedef struct
  1762. {
  1763. DWORD dwSize;
  1764. DWORD dwDecProListNum; // 解码器协议个数
  1765. char DecProName[DH_MAX_DECPRO_LIST_SIZE][DH_MAX_NAME_LEN]; // 协议名列表
  1766. DH_485_CFG stDecoder[DH_MAX_DECODER_NUM]; // 各解码器当前属性
  1767. DWORD dw232FuncNameNum; // 232功能个数
  1768. char s232FuncName[DH_MAX_232FUNCS][DH_MAX_NAME_LEN]; // 功能名列表
  1769. DH_RS232_CFG st232[DH_MAX_232_NUM]; // 各232串口当前属性
  1770. } DHDEV_COMM_CFG;
  1771. // 串口状态
  1772. typedef struct
  1773. {
  1774. unsigned int uBeOpened;
  1775. unsigned int uBaudRate;
  1776. unsigned int uDataBites;
  1777. unsigned int uStopBits;
  1778. unsigned int uParity;
  1779. BYTE bReserved[32];
  1780. } DH_COMM_STATE;