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

Static控件

开发平台:

Visual C++

  1. //-------------------------------录象配置---------------------------------
  2. // 定时录象
  3. typedef struct 
  4. {
  5. DWORD dwSize;
  6. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  7. BYTE byPreRecordLen; // 预录时间,单位是s,0表示不预录
  8. BYTE byRedundancyEn; // 录像冗余开关
  9. BYTE                byRecordType;           // 录像码流类型:0-主码流 1-辅码流1 2-辅码流2 3-辅码流3
  10. BYTE byReserved;
  11. } DHDEV_RECORD_CFG, *LPDH_RECORD_CFG;
  12. // NTP配置
  13. typedef struct  
  14. {
  15. BOOL bEnable; // 是否启用
  16. int nHostPort; // NTP服务器默认端口为123
  17. char szHostIp[32]; // 主机IP
  18. char szDomainName[128]; // 域名
  19. int nType; // 不可设置,0:表示IP,1:表示域名,2:表示IP和域名
  20. int nUpdateInterval; // 更新时间(分钟)
  21. int nTimeZone; // 见DH_TIME_ZONE_TYPE
  22. char reserved[128];
  23. } DHDEV_NTP_CFG;
  24. // FTP上传配置
  25. typedef struct
  26. {
  27. struct
  28. {
  29. DH_TSECT struSect; // 该时间段内的“使能”无效,可忽略
  30. BOOL bMdEn; // 上传动态检测录象
  31. BOOL bAlarmEn; // 上传外部报警录象
  32. BOOL bTimerEn; // 上传普通定时录像
  33. DWORD dwRev[4];
  34. } struPeriod[DH_TIME_SECTION];
  35. } DH_FTP_UPLOAD_CFG;
  36. typedef struct
  37. {
  38. DWORD dwSize;
  39. BOOL bEnable; // 是否启用
  40. char szHostIp[DH_MAX_IPADDR_LEN]; // 主机IP
  41. WORD wHostPort; // 主机端口
  42. char szDirName[DH_FTP_MAX_PATH]; // FTP目录路径
  43. char szUserName[DH_FTP_USERNAME_LEN]; // 用户名
  44. char szPassword[DH_FTP_PASSWORD_LEN]; // 密码
  45. int iFileLen; // 文件长度
  46. int iInterval; // 相邻文件时间间隔
  47. DH_FTP_UPLOAD_CFG struUploadCfg[DH_MAX_CHANNUM][DH_N_WEEKS];
  48. char  protocol; // 0-FTP 1-SMB
  49. char NASVer; // 网络存储服务器版本0=老的FTP(界面上显示时间段),1=NAS存储(界面上屏蔽时间段)
  50. DWORD dwFunctionMask; // 功能能力掩码,按位表示,低16位(网络存储)依次表示FTP,SMB,NFS,高16位(本地存储)依次为DISK,U
  51. BYTE  reserved[124];
  52. } DHDEV_FTP_PROTO_CFG;
  53. //-------------------------------网络配置---------------------------------
  54. // 以太网配置
  55. typedef struct 
  56. {
  57. char sDevIPAddr[DH_MAX_IPADDR_LEN]; // DVR IP 地址
  58. char sDevIPMask[DH_MAX_IPADDR_LEN]; // DVR IP 地址掩码
  59. char sGatewayIP[DH_MAX_IPADDR_LEN]; // 网关地址
  60. /* 10M/100M  自适应,索引 
  61.  * 1-10MBase - T
  62.  * 2-10MBase-T 全双工 
  63.  * 3-100MBase - TX
  64.  * 4-100M 全双工
  65.  * 5-10M/100M  自适应 
  66.  */
  67. // 为了扩展将DWORD拆成四个
  68. BYTE dwNetInterface; // NSP
  69. BYTE bTranMedia; // 0:有线,1:无线
  70. BYTE bValid; // 按位表示,第一位:1:有效 0:无效;第二位:0:DHCP关闭 1:DHCP使能;第三位:0:不支持DHCP 1:支持DHCP
  71. BYTE bDefaultEth; // 是否作为默认的网卡 1:默认 0:非默认
  72. char byMACAddr[DH_MACADDR_LEN]; // MAC地址,只读
  73. } DH_ETHERNET; 
  74. // 远程主机配置
  75. typedef struct 
  76. {
  77. BYTE byEnable; // 连接使能
  78. BYTE byReserved;
  79. WORD wHostPort; // 远程主机 端口
  80. char sHostIPAddr[DH_MAX_IPADDR_LEN]; // 远程主机 IP 地址
  81. char sHostUser[DH_MAX_HOST_NAMELEN]; // 远程主机 用户名
  82. char sHostPassword[DH_MAX_HOST_PSWLEN]; // 远程主机 密码
  83. } DH_REMOTE_HOST;
  84. // 邮件配置
  85. typedef struct 
  86. {
  87. char sMailIPAddr[DH_MAX_IPADDR_LEN]; // 邮件服务器IP地址
  88. WORD wMailPort; // 邮件服务器端口
  89. WORD wReserved; // 保留
  90. char sSenderAddr[DH_MAX_MAIL_ADDR_LEN]; // 发送地址
  91. char sUserName[DH_MAX_NAME_LEN]; // 用户名
  92. char sUserPsw[DH_MAX_NAME_LEN]; // 用户密码
  93. char sDestAddr[DH_MAX_MAIL_ADDR_LEN]; // 目的地址
  94. char sCcAddr[DH_MAX_MAIL_ADDR_LEN]; // 抄送地址
  95. char sBccAddr[DH_MAX_MAIL_ADDR_LEN]; // 暗抄地址
  96. char sSubject[DH_MAX_MAIL_SUBJECT_LEN]; // 标题
  97. } DH_MAIL_CFG;
  98. // 网络配置结构体
  99. typedef struct
  100. DWORD dwSize; 
  101. char sDevName[DH_MAX_NAME_LEN]; // 设备主机名
  102. WORD wTcpMaxConnectNum; // TCP最大连接数
  103. WORD wTcpPort; // TCP帧听端口
  104. WORD wUdpPort; // UDP侦听端口
  105. WORD wHttpPort; // HTTP端口号
  106. WORD wHttpsPort; // HTTPS端口号
  107. WORD wSslPort; // SSL端口号
  108. DH_ETHERNET stEtherNet[DH_MAX_ETHERNET_NUM]; // 以太网口
  109. DH_REMOTE_HOST struAlarmHost; // 报警服务器
  110. DH_REMOTE_HOST struLogHost; // 日志服务器
  111. DH_REMOTE_HOST struSmtpHost; // SMTP服务器
  112. DH_REMOTE_HOST struMultiCast; // 多播组
  113. DH_REMOTE_HOST struNfs; // NFS服务器
  114. DH_REMOTE_HOST struPppoe; // PPPoE服务器
  115. char sPppoeIP[DH_MAX_IPADDR_LEN]; // PPPoE注册返回的IP
  116. DH_REMOTE_HOST struDdns; // DDNS服务器
  117. char sDdnsHostName[DH_MAX_HOST_NAMELEN]; // DDNS主机名
  118. DH_REMOTE_HOST struDns; // DNS服务器
  119. DH_MAIL_CFG struMail; // 邮件配置
  120. } DHDEV_NET_CFG;
  121. // 多ddns配置结构体
  122. typedef struct
  123. {
  124. DWORD dwId; // ddns服务器id号
  125. BOOL bEnable; // 使能,同一时间只能有一个ddns服务器处于使能状态
  126. char szServerType[DH_MAX_SERVER_TYPE_LEN]; // 服务器类型,希网..
  127. char szServerIp[DH_MAX_DOMAIN_NAME_LEN]; // 服务器ip或者域名
  128. DWORD dwServerPort; // 服务器端口
  129. char szDomainName[DH_MAX_DOMAIN_NAME_LEN]; // dvr域名,如jeckean.3322.org
  130. char szUserName[DH_MAX_HOST_NAMELEN]; // 用户名
  131. char szUserPsw[DH_MAX_HOST_PSWLEN]; // 密码
  132. char szAlias[DH_MAX_DDNS_ALIAS_LEN]; // 服务器别名,如"dahua inter ddns"
  133. DWORD dwAlivePeriod; // DDNS 保活时间
  134. char reserved[256];
  135. } DH_DDNS_SERVER_CFG;
  136. typedef struct
  137. {
  138. DWORD dwSize;
  139. DWORD dwDdnsServerNum;
  140. DH_DDNS_SERVER_CFG struDdnsServer[DH_MAX_DDNS_NUM];
  141. } DHDEV_MULTI_DDNS_CFG;
  142. // 邮件配置结构体
  143. typedef struct 
  144. {
  145. char sMailIPAddr[DH_MAX_DOMAIN_NAME_LEN]; // 邮件服务器地址(IP或者域名)
  146. char sSubMailIPAddr[DH_MAX_DOMAIN_NAME_LEN];
  147. WORD wMailPort; // 邮件服务器端口
  148. WORD wSubMailPort;
  149. WORD wReserved; // 保留
  150. char sSenderAddr[DH_MAX_MAIL_ADDR_LEN]; // 发送地址
  151. char sUserName[DH_MAX_MAIL_NAME_LEN]; // 用户名
  152. char sUserPsw[DH_MAX_MAIL_NAME_LEN]; // 用户密码
  153. char sDestAddr[DH_MAX_MAIL_ADDR_LEN]; // 目的地址
  154. char sCcAddr[DH_MAX_MAIL_ADDR_LEN]; // 抄送地址
  155. char sBccAddr[DH_MAX_MAIL_ADDR_LEN]; // 暗抄地址
  156. char sSubject[DH_MAX_MAIL_SUBJECT_LEN]; // 标题
  157. BYTE bEnable; // 使能0:false, 1:true
  158. char reserved[159];
  159. } DHDEV_MAIL_CFG;
  160. // DNS服务器配置
  161. typedef struct  
  162. {
  163. char szPrimaryIp[DH_MAX_IPADDR_LEN];
  164. char szSecondaryIp[DH_MAX_IPADDR_LEN];
  165. char reserved[256];
  166. } DHDEV_DNS_CFG;
  167. // 录象下载策略配置
  168. typedef struct
  169. {
  170. DWORD dwSize;
  171. BOOL bEnable; // TRUE:高速下载,FALSE:普通下载
  172. }DHDEV_DOWNLOAD_STRATEGY_CFG;
  173. // 网络传输策略配置
  174. typedef struct
  175. {
  176. DWORD dwSize;
  177. BOOL bEnable;
  178. int iStrategy; // 0:画质优先,1:流畅性优先,2:自动
  179. }DHDEV_TRANSFER_STRATEGY_CFG;
  180. // 设置登入时的相关参数
  181. typedef struct  
  182. {
  183. int nWaittime; // 等待超时时间(毫秒为单位),为0默认5000ms
  184. int nConnectTime; // 连接超时时间(毫秒为单位),为0默认1500ms
  185. int nConnectTryNum; // 连接尝试次数,为0默认1次
  186. int nSubConnectSpaceTime; // 子连接之间的等待时间(毫秒为单位),为0默认10ms
  187. int nGetDevInfoTime; // 获取设备信息超时时间,为0默认500ms.
  188. int nConnectBufSize; // 每个连接接收数据缓冲大小(字节为单位),为0默认250*1024
  189. BYTE bReserved[24]; // 保留字段
  190. } NET_PARAM;
  191. // 对应CLIENT_SearchDevices接口
  192. typedef struct 
  193. {
  194. char szIP[DH_MAX_IPADDR_LEN]; // IP
  195. int nPort; // 端口
  196. char szSubmask[DH_MAX_IPADDR_LEN]; // 子网掩码
  197. char szGateway[DH_MAX_IPADDR_LEN]; // 网关
  198. char szMac[DH_MACADDR_LEN]; // MAC地址
  199. char szDeviceType[DH_DEV_TYPE_LEN]; // 设备类型
  200. BYTE bReserved[32]; // 保留字节
  201. } DEVICE_NET_INFO;
  202. //-------------------------------报警属性---------------------------------
  203. // 云台联动
  204. typedef struct 
  205. {
  206. int iType;
  207. int iValue;
  208. } DH_PTZ_LINK, *LPDH_PTZ_LINK;
  209. // 报警联动结构体
  210. typedef struct 
  211. {
  212. /* 消息处理方式,可以同时多种处理方式,包括
  213.  * 0x00000001 - 报警上传
  214.  * 0x00000002 - 联动录象
  215.  * 0x00000004 - 云台联动
  216.  * 0x00000008 - 发送邮件
  217.  * 0x00000010 - 本地轮巡
  218.  * 0x00000020 - 本地提示
  219.  * 0x00000040 - 报警输出
  220.  * 0x00000080 - Ftp上传
  221.  * 0x00000100 - 蜂鸣
  222.  * 0x00000200 - 语音提示
  223.  * 0x00000400 - 抓图
  224. */
  225. /* 当前报警所支持的处理方式,按位掩码表示 */
  226. DWORD dwActionMask;
  227. /* 触发动作,按位掩码表示,具体动作所需要的参数在各自的配置中体现 */
  228. DWORD dwActionFlag;
  229. /* 报警触发的输出通道,报警触发的输出,为1表示触发该输出 */ 
  230. BYTE byRelAlarmOut[DH_MAX_ALARMOUT_NUM];
  231. DWORD dwDuration; /* 报警持续时间 */
  232. /* 联动录象 */
  233. BYTE byRecordChannel[DH_MAX_VIDEO_IN_NUM]; /* 报警触发的录象通道,为1表示触发该通道 */
  234. DWORD dwRecLatch; /* 录象持续时间 */
  235. /* 抓图通道 */
  236. BYTE bySnap[DH_MAX_VIDEO_IN_NUM];
  237. /* 轮巡通道 */
  238. BYTE byTour[DH_MAX_VIDEO_IN_NUM];
  239. /* 云台联动 */
  240. DH_PTZ_LINK struPtzLink[DH_MAX_VIDEO_IN_NUM];
  241. DWORD dwEventLatch; /* 联动开始延时时间,s为单位,范围是0~15,默认值是0 */
  242. /* 报警触发的无线输出通道,报警触发的输出,为1表示触发该输出 */ 
  243. BYTE byRelWIAlarmOut[DH_MAX_ALARMOUT_NUM];
  244. BYTE bMessageToNet;
  245. BYTE                bMMSEn;                /*短信报警使能*/
  246. BYTE                bySnapshotTimes;       /*短信发送抓图张数 */
  247. BYTE byReserved[109];          
  248. } DH_MSG_HANDLE;
  249. // 外部报警
  250. typedef struct
  251. {
  252. BYTE byAlarmType; // 报警器类型,0:常闭,1:常开
  253. BYTE byAlarmEn; // 报警使能
  254. BYTE byReserved[2];
  255. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  256. DH_MSG_HANDLE struHandle; // 处理方式
  257. } DH_ALARMIN_CFG, *LPDHDEV_ALARMIN_CFG; 
  258. // 动态检测报警
  259. typedef struct 
  260. {
  261. BYTE byMotionEn; // 动态检测报警使能
  262. BYTE byReserved;
  263. WORD wSenseLevel; // 灵敏度
  264. WORD wMotionRow; // 动态检测区域的行数
  265. WORD wMotionCol; // 动态检测区域的列数
  266. BYTE byDetected[DH_MOTION_ROW][DH_MOTION_COL]; // 检测区域,最多32*32块区域
  267. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  268. DH_MSG_HANDLE struHandle; //处理方式
  269. } DH_MOTION_DETECT_CFG;
  270. // 视频丢失报警
  271. typedef struct
  272. {
  273. BYTE byAlarmEn; // 视频丢失报警使能
  274. BYTE byReserved[3];
  275. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  276. DH_MSG_HANDLE struHandle; // 处理方式
  277. } DH_VIDEO_LOST_CFG;
  278. // 图像遮挡报警
  279. typedef struct
  280. {
  281. BYTE byBlindEnable; // 使能
  282. BYTE byBlindLevel; // 灵敏度1-6
  283. BYTE byReserved[2];
  284. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  285. DH_MSG_HANDLE struHandle; // 处理方式
  286. } DH_BLIND_CFG;
  287. // 硬盘消息(内部报警)
  288. typedef struct 
  289. {
  290. BYTE byNoDiskEn; // 无硬盘时报警
  291. BYTE byReserved_1[3];
  292. DH_TSECT stNDSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  293. DH_MSG_HANDLE struNDHandle; // 处理方式
  294. BYTE byLowCapEn; // 硬盘低容量时报警
  295. BYTE byLowerLimit; // 容量阀值,0-99
  296. BYTE byReserved_2[2];
  297. DH_TSECT stLCSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  298. DH_MSG_HANDLE struLCHandle; // 处理方式
  299. BYTE byDiskErrEn; // 硬盘故障报警
  300. BYTE bDiskNum;
  301. BYTE byReserved_3[2];
  302. DH_TSECT stEDSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  303. DH_MSG_HANDLE struEDHandle; // 处理方式
  304. } DH_DISK_ALARM_CFG;
  305. typedef struct
  306. {
  307. BYTE byEnable;
  308. BYTE byReserved[3];
  309. DH_MSG_HANDLE struHandle;
  310. } DH_NETBROKEN_ALARM_CFG;
  311. // 报警布防
  312. typedef struct
  313. {
  314. DWORD dwSize;
  315. DH_ALARMIN_CFG  struLocalAlmIn[DH_MAX_ALARM_IN_NUM];
  316. DH_ALARMIN_CFG struNetAlmIn[DH_MAX_ALARM_IN_NUM];
  317. DH_MOTION_DETECT_CFG struMotion[DH_MAX_VIDEO_IN_NUM];
  318. DH_VIDEO_LOST_CFG struVideoLost[DH_MAX_VIDEO_IN_NUM];
  319. DH_BLIND_CFG struBlind[DH_MAX_VIDEO_IN_NUM];
  320. DH_DISK_ALARM_CFG struDiskAlarm;
  321. DH_NETBROKEN_ALARM_CFG struNetBrokenAlarm;
  322. } DHDEV_ALARM_SCHEDULE;
  323. #define DECODER_OUT_SLOTS_MAX_NUM  16
  324. #define DECODER_IN_SLOTS_MAX_NUM  16
  325. // 报警解码器配置
  326. typedef struct  
  327. {
  328. DWORD dwAddr; // 报警解码器地址
  329. BOOL bEnable; // 报警解码器使能
  330. DWORD dwOutSlots[DECODER_OUT_SLOTS_MAX_NUM]; // 现在只支持8个.
  331. int nOutSlotNum; // dwOutSlots数组有效元素个数.
  332. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  333. DH_MSG_HANDLE struHandle[DECODER_IN_SLOTS_MAX_NUM]; // 现在只支持8个.
  334. int nMsgHandleNum; // stuHandle数组有效元素个数.
  335. BYTE bReserved[120];
  336. } DH_ALARMDEC_CFG;
  337. // 报警上传的配置
  338. typedef struct  
  339. {
  340. BYTE byEnable; // 上传使能
  341. BYTE bReserverd; //  保留
  342. WORD wHostPort; // 报警中心侦听端口
  343. char sHostIPAddr[DH_MAX_IPADDR_LEN]; // 报警中心IP
  344. int nByTimeEn; // 定时上传使能,可以用来向中心上传IP或域名等
  345. int nUploadDay; /* 设置上传日期
  346. "Never = 0", "Everyday = 1", "Sunday = 2", 
  347. "Monday = 3", Tuesday = 4", "Wednesday = 5",
  348. "Thursday = 6", "Friday = 7", "Saturday = 8"*/
  349. int nUploadHour; // 设置上传时间 ,[0~23]点
  350. DWORD dwReserved[300];  // 保留待扩展。
  351. } ALARMCENTER_UP_CFG;
  352. // 全景切换报警配置
  353. typedef struct __DH_PANORAMA_SWITCH_CFG 
  354. {
  355. BOOL bEnable; // 使能
  356. int nReserved[5]; // 保留
  357. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  358. DH_MSG_HANDLE struHandle; // 报警联动
  359. } DH_PANORAMA_SWITCH_CFG;
  360. typedef struct __ALARM_PANORAMA_SWITCH_CFG 
  361. {
  362. int nAlarmChnNum; // 报警通道个数
  363. DH_PANORAMA_SWITCH_CFG stuPanoramaSwitch[DH_MAX_VIDEO_IN_NUM];
  364. } ALARM_PANORAMA_SWITCH_CFG;
  365. // 失去焦点报警配置
  366. typedef struct __DH_LOST_FOCUS_CFG
  367. {
  368. BOOL bEnable; // 使能
  369. int nReserved[5]; // 保留
  370. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  371. DH_MSG_HANDLE struHandle; // 报警联动
  372. } DH_LOST_FOCUS_CFG;
  373. typedef struct __ALARM_LOST_FOCUS_CFG 
  374. {
  375. int nAlarmChnNum; // 报警通道个数
  376. DH_LOST_FOCUS_CFG stuLostFocus[DH_MAX_VIDEO_IN_NUM];
  377. } ALARM_LOST_FOCUS_CFG;
  378. //------------------------------多区域遮挡--------------------------------
  379. // 遮挡信息
  380. typedef struct __VIDEO_COVER_ATTR
  381. {
  382. DH_RECT rcBlock; // 覆盖的区域坐标
  383. int nColor; // 覆盖的颜色
  384. BYTE bBlockType; // 覆盖方式;0:黑块,1:马赛克
  385. BYTE bEncode; // 编码级遮挡;1:生效,0:不生效
  386. BYTE bPriview; // 预览遮挡; 1:生效,0:不生效
  387. char reserved[29]; // 保留
  388. } VIDEO_COVER_ATTR;
  389. // 多区域遮挡配置
  390. typedef struct __DHDEV_VIDEOCOVER_CFG 
  391. {
  392. DWORD dwSize;
  393. char szChannelName[DH_CHAN_NAME_LEN]; // 只读
  394. BYTE bTotalBlocks; // 支持的遮挡块数
  395. BYTE bCoverCount; // 已设置的遮挡块数
  396. VIDEO_COVER_ATTR CoverBlock[DH_MAX_VIDEO_COVER_NUM]; // 覆盖的区域
  397. char reserved[30]; // 保留
  398. }DHDEV_VIDEOCOVER_CFG;
  399. ////////////////////////////////IPC产品支持////////////////////////////////
  400. // 配置无线网络信息
  401. typedef struct 
  402. {
  403. int nEnable; // 无线使能
  404. char szSSID[36]; // SSID
  405. int nLinkMode; // 连接模式;0:auto,1:adhoc,2:Infrastructure
  406. int nEncryption; // 加密;0:off,2:WEP64bit,3:WEP128bit
  407. int nKeyType; // 0:Hex,1:ASCII
  408.     int nKeyID; // 序号
  409. char szKeys[4][32]; // 四组密码
  410. int nKeyFlag;
  411. char reserved[12];
  412. } DHDEV_WLAN_INFO;
  413. // 选择使用某个无线设备
  414. typedef struct  
  415. {
  416. char szSSID[36];
  417. int nLinkMode; // 连接模式;0:adhoc,1:Infrastructure
  418. int  nEncryption; // 加密;0:off,2:WEP64bit,3:WEP128bit
  419. char reserved[48];
  420. } DHDEV_WLAN_DEVICE;
  421. // 搜索到的无线设备列表
  422. typedef struct  
  423. {
  424. DWORD dwSize;
  425. BYTE bWlanDevCount; // 搜索到的无线设备个数
  426. DHDEV_WLAN_DEVICE lstWlanDev[DH_MAX_WLANDEVICE_NUM];
  427. char reserved[255];
  428. } DHDEV_WLAN_DEVICE_LIST;
  429. // 主动注册参数配置
  430. typedef struct  
  431. {
  432. char szServerIp[32]; // 注册服务器IP
  433. int nServerPort; // 端口号
  434. char reserved[64];
  435. } DHDEV_SERVER_INFO;
  436. typedef struct  
  437. {
  438. DWORD dwSize;
  439. BYTE bServerNum; // 支持的最大ip数
  440. DHDEV_SERVER_INFO lstServer[DH_MAX_REGISTER_SERVER_NUM];
  441. BYTE bEnable; // 使能
  442. char szDeviceID[32]; // 设备id
  443. char reserved[94];
  444. } DHDEV_REGISTER_SERVER;
  445. // 摄像头属性
  446. typedef struct __DHDEV_CAMERA_INFO
  447. {
  448. BYTE bBrightnessEn; // 亮度可调;1:可,0:不可
  449. BYTE bContrastEn; // 对比度可调
  450. BYTE bColorEn; // 色度可调
  451. BYTE bGainEn; // 增益可调
  452. BYTE bSaturationEn; // 饱和度可调
  453. BYTE bBacklightEn; // 背光补偿可调
  454. BYTE bExposureEn; // 曝光选择可调
  455. BYTE bColorConvEn; // 自动彩黑转换可调
  456. BYTE bAttrEn; // 属性选项;1:可,0:不可
  457. BYTE bMirrorEn; // 镜像;1:支持,0:不支持
  458.     BYTE bFlipEn; // 翻转;1:支持,0:不支持
  459. BYTE iWhiteBalance; // 白平衡 1 支持 ,0 不支持
  460. BYTE iSignalFormatMask; // 信号格式掩码,按位从低到高位分别为:0-Inside(内部输入) 1- BT656 2-720p 3-1080i  4-1080p  5-1080sF
  461. BYTE bRev[123]; // 保留
  462. } DHDEV_CAMERA_INFO;
  463. // 摄像头属性配置
  464. typedef struct __DHDEV_CAMERA_CFG 
  465. {
  466. DWORD dwSize;
  467. BYTE bExposure; // 曝光模式;1-9:手动曝光等级,0:自动曝光
  468. BYTE bBacklight; // 背光补偿:3:强,2:中,1:弱,0:关
  469. BYTE bAutoColor2BW; // 日/夜模式;2:开,1:自动,0:关
  470. BYTE bMirror; // 镜像;1:开,0:关
  471. BYTE bFlip; // 翻转;1:开,0:关
  472. BYTE bLensEn; // 自动光圈功能能力: 1:支持;0 :不支持
  473. BYTE bLensFunction; // 自动光圈功能: 1:开启自动光圈;0: 关闭自动光圈
  474. BYTE bWhiteBalance; // 白平衡 0:Disabled,1:Auto 2:sunny 3:cloudy 4:home 5:office 6:night
  475. BYTE bSignalFormat; // 信号格式0-Inside(内部输入) 1- BT656 2-720p 3-1080i  4-1080p  5-1080sF
  476. char bRev[119]; // 保留
  477. } DHDEV_CAMERA_CFG;
  478. #define ALARM_MAX_NAME 64
  479. // (无线)红外报警配置
  480. typedef struct
  481. {
  482. BOOL bEnable; // 报警输入使能
  483. char szAlarmName[DH_MAX_ALARM_NAME]; // 报警输入名称
  484. int nAlarmInPattern; // 报警器输入波形
  485. int nAlarmOutPattern; // 报警输出波形
  486. char szAlarmInAddress[DH_MAX_ALARM_NAME];// 报警输入地址
  487. int nSensorType; // 外部设备传感器类型常开 or 常闭
  488. int nDefendEfectTime; // 布撤防延时时间,在此时间后该报警输入有效
  489. int nDefendAreaType; // 防区类型 
  490. int nAlarmSmoothTime; // 报警平滑时间,即在此时间内如果只有一个报警输入连续输入两次则忽略掉后面一次
  491. char reserved[128];
  492. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  493. DH_MSG_HANDLE struHandle; // 处理方式
  494. } DH_INFRARED_INFO;
  495. // 无线遥控器配置
  496. typedef struct 
  497. {
  498. BYTE address[ALARM_MAX_NAME];// 遥控器地址
  499. BYTE name[ALARM_MAX_NAME]; // 遥控器名称
  500. BYTE reserved[32]; // 保留字段
  501. } DH_WI_CONFIG_ROBOT;
  502. // 无线报警输出配置
  503. typedef struct 
  504. {
  505. BYTE address[ALARM_MAX_NAME];// 报警输出地址
  506. BYTE name[ALARM_MAX_NAME]; // 报警输出名称
  507. BYTE reserved[32]; // 保留字段
  508. } DH_WI_CONFIG_ALARM_OUT;
  509. typedef struct  
  510. {
  511. DWORD dwSize;
  512. BYTE bAlarmInNum; // 无线报警输入数
  513. BYTE bAlarmOutNum; // 无线报警输出数
  514. DH_WI_CONFIG_ALARM_OUT AlarmOutAddr[16]; // 报警输出地址
  515. BYTE bRobotNum; // 遥控器个数
  516. DH_WI_CONFIG_ROBOT RobotAddr[16]; // 遥控器地址
  517. DH_INFRARED_INFO InfraredAlarm[16];
  518. char reserved[256];
  519. } DH_INFRARED_CFG;
  520. // 新音频检测报警信息
  521. typedef struct
  522. {
  523. int channel; // 报警通道号
  524. int alarmType; // 报警类型;0:音频值过低,1:音频值过高
  525. unsigned int volume; // 音量值
  526. char reserved[256];
  527. } NET_NEW_SOUND_ALARM_STATE;
  528. typedef struct  
  529. {
  530. int channelcount; // 报警的通道个数
  531. NET_NEW_SOUND_ALARM_STATE SoundAlarmInfo[DH_MAX_ALARM_IN_NUM];
  532. } DH_NEW_SOUND_ALARM_STATE;
  533. // 抓图功能属性结构体
  534. typedef struct 
  535. {
  536. int nChannelNum; // 通道号
  537. DWORD dwVideoStandardMask; // 分辨率(按位),具体查看枚举CAPTURE_SIZE
  538. int nFramesCount; // Frequence[128]数组的有效长度
  539. char Frames[128]; // 帧率(按数值)
  540. // -25:25秒1帧;-24:24秒1帧;-23:23秒1帧;-22:22秒1帧
  541. // ……
  542. // 0:无效;1:1秒1帧;2:1秒2帧;3:1秒3帧
  543. // 4:1秒4帧;5:1秒5帧;17:1秒17帧;18:1秒18帧
  544. // 19:1秒19帧;20:1秒20帧
  545. // ……
  546. // 25: 1秒25帧
  547. int nSnapModeCount; // SnapMode[16]数组的有效长度
  548. char SnapMode[16]; // (按数值)0:定时触发抓图,1:手动触发抓图
  549. int nPicFormatCount; // Format[16]数组的有效长度
  550. char  PictureFormat[16]; // (按数值)0:BMP格式,1:JPG格式
  551. int nPicQualityCount; // Quality[32]数组的有效长度
  552. char  PictureQuality[32]; // 按数值
  553. // 100:图象质量100%;80:图象质量80%;60:图象质量60%
  554. // 50:图象质量50%;30:图象质量30%;10:图象质量10%
  555. char  nReserved[128]; // 保留
  556. } DH_QUERY_SNAP_INFO;
  557. typedef struct 
  558. {
  559. int nChannelCount; // 通道个数
  560. DH_QUERY_SNAP_INFO  stuSnap[DH_MAX_CHANNUM];
  561. } DH_SNAP_ATTR_EN;
  562. /* IP过滤功能配置 */
  563. #define DH_IPIFILTER_NUM 200 // IP
  564. // IP信息
  565. typedef struct 
  566. {
  567. DWORD dwIPNum; // IP个数
  568. char SZIP[DH_IPIFILTER_NUM][DH_MAX_IPADDR_LEN]; // IP
  569. char byReserve[32]; // 保留
  570. } IPIFILTER_INFO;
  571. // IP过滤配置结构体
  572. typedef struct
  573. {
  574. DWORD dwSize;
  575. DWORD dwEnable; // 使能
  576. DWORD dwType; // 当前名单类型:0:白名单 1:黑名单(设备只能使一种名单生效,或者是白名单或者是黑名单)
  577. IPIFILTER_INFO BannedIP; // 黑名单
  578. IPIFILTER_INFO TrustIP; // 白名单
  579. char byReserve[256]; // 保留
  580. } DHDEV_IPIFILTER_CFG;
  581. /*语音对讲编码配置*/
  582. typedef struct
  583. {
  584. DWORD dwSize;
  585. int nCompression; // 压缩格式,枚举值,相见DH_TALK_CODING_TYPE,请根据设备支持的语音对讲类型设置压缩格式。
  586. int nMode; // 编码模式,枚举值,为0时表示该压缩格式不支持编码模式。
  587. // 根据压缩格式可以设置对应的编码格式,如
  588. // AMR详见EM_ARM_ENCODE_MODE
  589. char byReserve[256]; // 保留
  590. } DHDEV_TALK_ENCODE_CFG;
  591. // 以下是mobile功能相关
  592. // (事件触发多媒体彩信/短信发送)MMS配置结构体
  593. typedef struct
  594. {
  595. DWORD dwSize;
  596. DWORD dwEnable; // 使能
  597. DWORD dwReceiverNum; // 短信接收者个数
  598. char SZReceiver[DH_MMS_RECEIVER_NUM][32]; // 短信接收者,一般为手机号码
  599.     BYTE                byType; // 短信信息类型 0:MMS;1:SMS
  600. char                SZTitle[32]; // 短信信息标题
  601. char byReserve[223]; // 保留
  602. } DHDEV_MMS_CFG;
  603. // (短信激活无线连接配置)
  604. typedef struct  
  605. {
  606. DWORD dwSize;
  607. DWORD dwEnable; // 使能
  608. DWORD dwSenderNum; // 短信发送者个数
  609. char SZSender[DH_MMS_SMSACTIVATION_NUM][32]; // 短信发送者,一般为手机号码
  610.   char byReserve[256]; // 保留
  611. }DHDEV_SMSACTIVATION_CFG;
  612. // (拨号激活无线连接配置)
  613. typedef struct  
  614. {
  615. DWORD dwSize;
  616. DWORD dwEnable; // 使能
  617. DWORD dwCallerNum; // 发送者个数
  618. char SZCaller[DH_MMS_DIALINACTIVATION_NUM][32]; // 发送者, 一般为手机号码
  619.   char byReserve[256]; // 保留
  620. }DHDEV_DIALINACTIVATION_CFG;
  621. // 以上是mobile功能相关
  622. // 无线网络信号强度结构体
  623. typedef struct
  624. {
  625. DWORD dwSize;
  626. DWORD dwTDSCDMA; // TD-SCDMA强度,范围:0-100
  627. DWORD dwWCDMA; // WCDMA强度,范围:0-100
  628. DWORD dwCDMA1x; // CDMA1x强度,范围:0-100
  629. DWORD dwEDGE; // EDGE强度,范围:0-100
  630. DWORD dwEVDO; // EVDO强度,范围:0-100
  631. char byReserve[256]; // 保留
  632. } DHDEV_WIRELESS_RSS_INFO;
  633. ////////////////////////////////车载DVR支持////////////////////////////////
  634. // GPS信息(车载设备)
  635. typedef struct _GPS_Info
  636. {
  637.     NET_TIME revTime; // 定位时间
  638. char DvrSerial[50]; // 设备序列号
  639.     double longitude; // 经度
  640.     double latidude; // 纬度
  641.     double height; // 高度(米)
  642.     double angle; // 方向角(正北方向为原点,顺时针为正)
  643.     double speed; // 速度(公里/小时)
  644.     WORD starCount; // 定位星数
  645.     BOOL antennaState; // 天线状态(true 好,false 坏)
  646.     BOOL orientationState; // 定位状态(true 定位,false 不定位)
  647. } GPS_Info,*LPGPS_Info;
  648. // 抓图参数结构体
  649. typedef struct _snap_param
  650. {
  651. unsigned int Channel; // 抓图的通道
  652. unsigned int Quality; // 画质;1~6
  653. unsigned int ImageSize; // 画面大小;0:QCIF,1:CIF,2:D1
  654. unsigned int mode; // 抓图模式;0:表示请求一帧,1:表示定时发送请求,2:表示连续请求
  655. unsigned int InterSnap; // 时间单位秒;若mode=1表示定时发送请求时,此时间有效
  656. unsigned int CmdSerial; // 请求序列号
  657. unsigned int Reserved[4];
  658. } SNAP_PARAMS, *LPSNAP_PARAMS;
  659. // 抓图功能配置
  660. typedef struct 
  661. {
  662. DWORD dwSize;
  663. BYTE bTimingEnable; // 定时抓图开关(报警抓图开关在各报警联动配置中体现)
  664. BYTE                bReserved;
  665. short             PicTimeInterval; // 定时抓图时间间隔,单位为秒,目前设备支持最大的抓图时间间隔为30分钟                           
  666. DH_VIDEOENC_OPT struSnapEnc[SNAP_TYP_NUM]; // 抓图编码配置,现支持其中的分辨率、画质、帧率设置,帧率在这里是负数,表示一秒抓图的次数。
  667. } DHDEV_SNAP_CFG;
  668. //////////////////////////////////ATM支持//////////////////////////////////
  669. typedef struct
  670. {
  671. int Offset; // 标志位的位偏移
  672. int Length; // 标志位的长度
  673. char Key[16]; // 标志位的值
  674. } DH_SNIFFER_FRAMEID;
  675. typedef struct 
  676. {
  677. int Offset; // 标志位的位偏移
  678. int Offset2; // 目前没有应用
  679. int Length; // 标志位的长度
  680. int Length2; // 目前没有应用
  681. char KeyTitle[24]; // 标题的值
  682. } DH_SNIFFER_CONTENT;
  683. // 网络抓包配置
  684. typedef struct 
  685. {
  686. DH_SNIFFER_FRAMEID snifferFrameId; // 每个FRAME ID 选项
  687. DH_SNIFFER_CONTENT snifferContent[DH_SNIFFER_CONTENT_NUM]; // 每个FRAME对应的4个抓包内容
  688. } DH_SNIFFER_FRAME;
  689. // 每组抓包对应的配置结构
  690. typedef struct
  691. {
  692. char SnifferSrcIP[DH_MAX_IPADDR_LEN]; // 抓包源地址
  693. int SnifferSrcPort; // 抓包源端口
  694. char SnifferDestIP[DH_MAX_IPADDR_LEN]; // 抓包目标地址
  695. int SnifferDestPort; // 抓包目标端口
  696. char reserved[28]; // 保留字段
  697. DH_SNIFFER_FRAME snifferFrame[DH_SNIFFER_FRAMEID_NUM]; // 6个FRAME 选项
  698. int displayPosition; // 显示位置
  699. int recdChannelMask; // 通道掩码
  700. } DH_ATM_SNIFFER_CFG;
  701. typedef struct  
  702. {
  703. DWORD dwSize;
  704. DH_ATM_SNIFFER_CFG SnifferConfig[4];
  705. char reserved[256]; // 保留字段
  706. } DHDEV_SNIFFER_CFG;
  707. typedef DH_SNIFFER_FRAMEID DH_SNIFFER_FRAMEID_EX;
  708. typedef DH_SNIFFER_CONTENT DH_SNIFFER_CONTENT_EX;
  709. // 网络抓包配置
  710. typedef struct  
  711. {
  712. DH_SNIFFER_FRAMEID snifferFrameId; // 每个FRAME ID 选项
  713. DH_SNIFFER_CONTENT snifferContent[DH_SNIFFER_CONTENT_NUM_EX]; // 每个FRAME对应的8个抓包内容
  714. } DH_SNIFFER_FRAME_EX;
  715. // 每组抓包对应的配置结构
  716. typedef struct
  717. {
  718. char SnifferSrcIP[DH_MAX_IPADDR_LEN]; // 抓包源地址
  719. int SnifferSrcPort; // 抓包源端口
  720. char SnifferDestIP[DH_MAX_IPADDR_LEN]; // 抓包目标地址
  721. int SnifferDestPort; // 抓包目标端口
  722. DH_SNIFFER_FRAME_EX snifferFrame[DH_SNIFFER_FRAMEID_NUM]; // 6个FRAME 选项
  723. int displayPosition; // 显示位置
  724. int recdChannelMask; // 通道掩码
  725. BOOL bDateScopeEnable; // 数据来源使能
  726. BOOL bProtocolEnable; // 协议使能
  727. char szProtocolName[DH_SNIFFER_PROTOCOL_SIZE]; // 协议名字
  728. int nSnifferMode; // 抓包方式,0:net,1:232.
  729. char reserved[256];
  730. } DH_ATM_SNIFFER_CFG_EX;
  731. /////////////////////////////////解码器支持/////////////////////////////////
  732. // 解码器信息
  733. typedef struct __DEV_DECODER_INFO 
  734. {
  735. char szDecType[64]; // 类型
  736. int nMonitorNum; // TV个数
  737. int nEncoderNum; // 解码通道个数
  738. BYTE szSplitMode[16]; // 支持的TV画面分割数,以数组形式表示,0为结尾
  739. BYTE            bMonitorEnable[16]; // 各TV使能
  740. char reserved[64];
  741. } DEV_DECODER_INFO, *LPDEV_DECODER_INFO;
  742. // 连接的编码器信息
  743. typedef struct __DEV_ENCODER_INFO 
  744. {
  745. char szDevIp[DH_MAX_IPADDR_LEN]; // 前端DVR的IP地址
  746. WORD wDevPort; // 前端DVR的端口号
  747. BYTE bDevChnEnable;                      // 解码通道使能
  748. BYTE byEncoderID; // 对应解码通道号
  749. char szDevUser[DH_USER_NAME_LENGTH_EX]; // 用户名
  750. char szDevPwd[DH_USER_PSW_LENGTH_EX]; // 密码
  751. int nDevChannel; // 通道号
  752. int nStreamType; // 码流类型,0:主码流;1:子码流
  753. BYTE byConnType; // 0:TCP;1:UDP;2:组播
  754. BYTE byWorkMode; // 0:直连;1:转发
  755. WORD wListenPort; // 指示侦听服务的端口,转发时有效
  756. char reserved[184];
  757. } DEV_ENCODER_INFO, *LPDEV_ENCODER_INFO;
  758. // TV参数信息
  759. typedef struct __DEV_DECODER_TV 
  760. {
  761. int nID; // TV号
  762. BOOL bEnable; // 使能,开启或关闭
  763. int nSplitType; // 画面分割数
  764. DEV_ENCODER_INFO stuDevInfo[16]; // 各画面编码器信息
  765. char reserved[16];
  766. } DEV_DECODER_TV, *LPDEV_DECODER_TV;
  767. // 解码器画面组合信息
  768. typedef struct __DEC_COMBIN_INFO
  769. {
  770. int nCombinID; // 组合ID
  771. int             nSplitType; // 画面分割数 
  772. BYTE            bDisChn[16]; // 显示通道
  773. char reserved[16];
  774. } DEC_COMBIN_INFO, *LPDEC_COMBIN_INFO;
  775. // 解码器轮巡信息
  776. #define DEC_COMBIN_NUM  32 // 轮巡组合个数
  777. typedef struct __DEC_TOUR_COMBIN 
  778. {
  779. int nTourTime; // 轮巡间隔(秒)
  780. int nCombinNum; // 组合个数
  781. BYTE bCombinID[DEC_COMBIN_NUM]; // 组合表
  782. char reserved1[32];
  783. BYTE bCombinState[DEC_COMBIN_NUM]; // 组合项的使能状态,0:关;1:开
  784. char reserved2[32];
  785. } DEC_TOUR_COMBIN, *LPDEC_TOUR_COMBIN;
  786. // 解码器回放类型
  787. typedef enum __DEC_PLAYBACK_MODE
  788. {
  789. Dec_By_Device_File = 0, // 前端设备-按文件方式
  790. Dec_By_Device_Time, // 前端设备-按时间方式
  791. } DEC_PLAYBACK_MODE;
  792. // 解码器回放控制类型
  793. typedef enum __DEC_CTRL_PLAYBACK_TYPE
  794. {
  795. Dec_Playback_Seek = 0, // 拖动
  796. Dec_Playback_Play, // 播放
  797. Dec_Playback_Pause, // 暂停
  798. Dec_Playback_Stop, // 停止
  799. } DEC_CTRL_PLAYBACK_TYPE;
  800. // 按文件回放前端设备条件
  801. typedef struct __DEC_PLAYBACK_FILE_PARAM 
  802. {
  803. char szDevIp[DH_MAX_IPADDR_LEN]; // 前端DVR的IP地址
  804. WORD wDevPort; // 前端DVR的端口号
  805. BYTE bDevChnEnable;                      // 解码通道使能
  806. BYTE byEncoderID; // 对应解码通道号
  807. char szDevUser[DH_USER_NAME_LENGTH_EX]; // 用户名
  808. char szDevPwd[DH_USER_PSW_LENGTH_EX]; // 密码
  809. NET_RECORDFILE_INFO stuRecordInfo; // 录像文件信息
  810. char reserved[12];
  811. } DEC_PLAYBACK_FILE_PARAM, *LPDEC_PLAYBACK_FILE_PARAM;
  812. // 按时间回放前端设备条件
  813. typedef struct __DEC_PLAYBACK_TIME_PARAM 
  814. {
  815. char szDevIp[DH_MAX_IPADDR_LEN]; // 前端DVR的IP地址
  816. WORD wDevPort; // 前端DVR的端口号
  817. BYTE bDevChnEnable;                      // 解码通道使能
  818. BYTE byEncoderID; // 对应解码通道号
  819. char szDevUser[DH_USER_NAME_LENGTH_EX]; // 用户名
  820. char szDevPwd[DH_USER_PSW_LENGTH_EX]; // 密码
  821. int nChannelID;
  822. NET_TIME startTime;
  823. NET_TIME endTime;
  824. char reserved[12];
  825. } DEC_PLAYBACK_TIME_PARAM, *LPDEC_PLAYBACK_TIME_PARAM;
  826. /////////////////////////////////特殊版本/////////////////////////////////
  827. // 触发设备抓图,叠加卡号信息
  828. typedef struct __NET_SNAP_COMMANDINFO 
  829. {
  830. char szCardInfo[16]; // 卡号信息
  831. char reserved[64]; // 保留
  832. } NET_SNAP_COMMANDINFO, LPNET_SNAP_COMMANDINFO;
  833. typedef struct
  834. {
  835. int nChannelNum; // 通道号
  836. char szUseType[32]; // 通道用途
  837. DWORD dwStreamSize; // 流量大小(单位:kb/s)
  838. char reserved[32]; // 保留
  839. } DHDEV_USE_CHANNEL_STATE;
  840. typedef struct 
  841. {
  842. char szUserName[32]; // 用户名
  843. char szUserGroup[32]; // 用户组
  844. NET_TIME time; // 登入时间
  845. int nOpenedChannelNum; // 开启的通道个数
  846. DHDEV_USE_CHANNEL_STATE channelInfo[DH_MAX_CHANNUM];
  847. char reserved[64];
  848. } DHDEV_USER_NET_INFO;
  849. // 网络运行状态信息
  850. typedef struct 
  851. {
  852. int nUserCount; // 用户数量
  853. DHDEV_USER_NET_INFO stuUserInfo[32];
  854. char reserved[256];
  855. }DHDEV_TOTAL_NET_STATE;
  856. // 图象水印配置
  857. typedef struct __DHDEV_WATERMAKE_CFG 
  858. {
  859. DWORD dwSize;
  860. int nEnable; // 使能
  861. int nStream; // 码流(1~n)0-所有码流
  862. int nKey; // 数据类型(1-文字,2-图片)
  863. char szLetterData[DH_MAX_WATERMAKE_LETTER]; // 文字
  864. char szData[DH_MAX_WATERMAKE_DATA]; // 图片数据
  865. BYTE bReserved[512]; // 保留
  866. } DHDEV_WATERMAKE_CFG;
  867. // 存储位置设置结构体,每通道独立设置,每通道可以选择各种存储类型, 目前包括本地, 可移动, 远程存储.
  868. typedef struct 
  869. {
  870. DWORD dwSize;
  871. DWORD dwLocalMask; // 本地存储掩码;按位表示:
  872. // 第一位:系统预录,第二位:定时录像,第三位:动检录像,
  873. // 第四位:报警录像,第五位:卡号录像,第六位:手动录像
  874. DWORD dwMobileMask; // 可移动存储掩码 存储掩码如本地存储掩码
  875. int RemoteType; // 远程存储类型 0: Ftp  1: Smb 
  876. DWORD dwRemoteMask; // 远程存储掩码 存储掩码如本地存储掩码
  877. DWORD dwRemoteSecondSelLocal; // 远程异常时本地存储掩码
  878. DWORD dwRemoteSecondSelMobile;// 远程异常时可移动存储掩码
  879. char SubRemotePath[MAX_PATH_STOR]; // 远程目录, 其中长度为240
  880. DWORD dwFunctionMask; //功能屏蔽位,按位表示,bit0 = 1:屏蔽抓图事件触发存储位置功能
  881. char reserved[124];
  882. } DH_STORAGE_STATION_CFG;
  883. #define MAX_ALARM_DECODER_NUM 16
  884. typedef struct  
  885. {
  886. DWORD dwAlarmDecoder; // 现在最多支持8个报警输入口,留8位待以后扩展
  887. BYTE bDecoderIndex; // 表示第几个报警解码器
  888. BYTE bReserved[3];
  889. } ALARM_DECODER;
  890. // 报警解码器报警
  891. typedef struct
  892. {
  893. int nAlarmDecoderNum;
  894. ALARM_DECODER stuAlarmDecoder[MAX_ALARM_DECODER_NUM];
  895. BYTE bReserved[32];
  896. } ALARM_DECODER_ALARM;
  897. // 光纤编码能力报警
  898. typedef struct  
  899. {
  900. int nFDDINum;
  901. BYTE bAlarm[256];
  902. } ALARM_FDDI_ALARM;
  903. // 新音频检测报警配置
  904. typedef struct
  905. {
  906. BOOL bEnable; // 报警输入使能
  907. int Volume_min; // 音量的最小值
  908. int Volume_max; // 音量的最大值
  909. char reserved[128];
  910. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  911. DH_MSG_HANDLE struHandle; // 处理方式
  912. } DH_AUDIO_DETECT_INFO;
  913. typedef struct  
  914. {
  915. DWORD dwSize;
  916. int AlarmNum;
  917. DH_AUDIO_DETECT_INFO AudioDetectAlarm[DH_MAX_AUDIO_IN_NUM];
  918. char reserved[256];
  919. } DH_AUDIO_DETECT_CFG;
  920. typedef struct
  921. {
  922. BOOL bTourEnable; // 轮巡使能
  923. int nTourPeriod; // 轮巡间隔,单位秒, 5-300 
  924. DWORD dwChannelMask; // 轮巡的通道,掩码形式表示
  925. char reserved[64];
  926. }DH_VIDEOGROUP_CFG;
  927. // 本机矩阵控制策略配置
  928. typedef struct
  929. {
  930. DWORD dwSize;
  931. int nMatrixNum; // 矩阵个数(注:不允许修改)
  932. DH_VIDEOGROUP_CFG struVideoGroup[DH_MATRIX_MAXOUT];
  933. char reserved[32];
  934. } DHDEV_VIDEO_MATRIX_CFG;   
  935. // WEB路径配置
  936. typedef struct 
  937. {
  938. DWORD dwSize;
  939. BOOL bSnapEnable; // 是否抓图
  940. int iSnapInterval; // 抓图周期
  941. char szHostIp[DH_MAX_IPADDR_LEN]; // HTTP主机IP
  942. WORD wHostPort;
  943. int iMsgInterval; // 状态消息发送间隔
  944. char szUrlState[DH_MAX_URL_LEN]; // 状态消息上传URL
  945. char szUrlImage[DH_MAX_URL_LEN]; // 图片上传Url
  946. char szDevId[DH_MAX_DEV_ID_LEN]; // 机器的web编号
  947. BYTE byReserved[2];
  948. } DHDEV_URL_CFG;
  949. // OEM查询
  950. typedef struct  
  951. {
  952. char szVendor[DH_MAX_STRING_LEN];
  953. char szType[DH_MAX_STRING_LEN];
  954. char reserved[128];
  955. } DHDEV_OEM_INFO;
  956. //视频OSD叠加配置
  957. typedef struct 
  958. DWORD rgbaFrontground; // 物件的前景;按字节表示,分别为红、绿、蓝和透明度
  959. DWORD rgbaBackground; // 物件的背景;按字节表示,分别为红、绿、蓝和透明度
  960. RECT rcRelativePos; // 位置,物件边距与整长的比例*8191
  961. BOOL bPreviewBlend; // 预览叠加使能
  962. BOOL bEncodeBlend; // 编码叠加使能
  963. BYTE    bReserved[4];           // 保留
  964. } DH_DVR_VIDEO_WIDGET;
  965. typedef struct 
  966. {
  967. DH_DVR_VIDEO_WIDGET StOSD_POS;  // OSD叠加的位置和背景色
  968. char  SzOSD_Name[DH_VIDEO_OSD_NAME_NUM];  // OSD叠加的名称
  969. }DH_DVR_VIDEOITEM;
  970.  
  971. // 每个通道的OSD信息
  972. typedef struct 
  973. {
  974. DWORD  dwSize;
  975. DH_DVR_VIDEOITEM  StOSDTitleOpt [DH_VIDEO_CUSTOM_OSD_NUM];  // 每个通道的OSD信息
  976. BYTE     bReserved[16];                     // 保留
  977. } DH_DVR_VIDEOOSD_CFG;
  978. // 配置CDMA/GPRS网络信息
  979. typedef struct 
  980. {
  981. DWORD  dwSize;
  982. BOOL bEnable; // 无线模块使能标志
  983. DWORD               dwTypeMask;                 // 设备支持网络类型掩码;按位表示,第一位;自动选择;第二位:TD-SCDMA网络;
  984. // 第三位:WCDMA网络;第四位:CDMA 1.x网络;第五位:CDMA2000网络;第六位:GPRS网络;
  985. // 第七位:EVDO网络;第八位:WIFI
  986. DWORD               dwNetType;                  // 当前的无线网络类型,为EM_GPRSCDMA_NETWORK_TYPE值
  987. char szAPN[128]; // 接入点名称
  988. char szDialNum[128]; // 拨号号码
  989. char szUserName[128]; // 拨号用户名
  990. char szPWD[128]; // 拨号密码
  991. /* 下面是设备的只读部分 */
  992. BOOL iAccessStat; // 无线网络注册状态
  993.     char szDevIP[16]; // 前端设备拨号IP,字符串, 包括''结束符共16byte  
  994. char szSubNetMask [16]; // 前端设备拨号子网掩码,字符串, 包括''结束符共16byte 
  995. char szGateWay[16]; // 前端设备拨号网关,字符串, 包括''结束符共16byte 
  996. /* 上面是设备的只读部分 */
  997. int                 iKeepLive; // 保活时间
  998. char Reserved[508]; // 保留字节,用于扩展
  999. } DHDEV_CDMAGPRS_CFG;
  1000. // 录像打包长度配置
  1001. typedef struct  
  1002. {
  1003. DWORD  dwSize;
  1004. int nType; // 0:按时间,1:按大小
  1005. int nValue; // nType = 0时:单位分钟,nType = 1时:单位KB
  1006. char Reserved[128]; // 保留字节,用于扩展
  1007. } DHDEV_RECORD_PACKET_CFG;
  1008. // (定向)主动注册服务器信息
  1009. typedef struct __DEV_AUTOREGISTER_INFO 
  1010. {
  1011. LONG lConnectionID; // 连接ID
  1012. char szServerIp[DH_MAX_IPADDR_LEN]; // 主动注册服务器的IP
  1013. int nPort; // 主动注册服务器端口0- 65535
  1014. int             nState;                             // 服务器的状态:0-注册失败;1-注册成功; 2-连接失败
  1015. char reserved[16];
  1016. } DEV_AUTOREGISTER_INFO;
  1017. typedef struct __DEV_SERVER_AUTOREGISTER 
  1018. {
  1019. DWORD dwSize;
  1020. int nRegisterSeverCount; // 主动注册服务器个数
  1021. DEV_AUTOREGISTER_INFO stuDevRegisterSeverInfo[DH_CONTROL_AUTO_REGISTER_NUM]; // 各主动注册服务器信息
  1022. char reserved[256];
  1023. } DEV_SERVER_AUTOREGISTER, *LPDEV_SERVER_AUTOREGISTER;
  1024. // 附件刻录附件上传
  1025. typedef struct
  1026. {
  1027. DWORD dwSize;
  1028. char szSourFile[MAX_PATH_STOR]; // 源文件路径
  1029. int nFileSize; // 源文件大小,如果小于等于0,sdk自行计算文件大小.
  1030. char szBurnFile[MAX_PATH_STOR]; // 刻录后的文件名
  1031. BYTE bReserved[64];
  1032. } DHDEV_BURNFILE_TRANS_CFG;
  1033. /////////////////////////////////平台接入/////////////////////////////////
  1034. // 平台接入配置 - U网通
  1035. typedef struct
  1036. {
  1037.     BOOL bChnEn;
  1038.     char szChnId[DH_INTERVIDEO_UCOM_CHANID];
  1039. } DH_INTERVIDEO_UCOM_CHN_CFG;
  1040. typedef struct
  1041. {
  1042. DWORD dwSize;
  1043. BOOL bFuncEnable; // 接入功能使能
  1044. BOOL bAliveEnable; // 心跳使能
  1045. DWORD dwAlivePeriod; // 心跳周期,单位秒,0-3600
  1046. char szServerIp[DH_MAX_IPADDR_LEN]; // CMS的IP
  1047. WORD wServerPort; // CMS的Port
  1048.     char szRegPwd[DH_INTERVIDEO_UCOM_REGPSW]; // 注册密码
  1049. char szDeviceId[DH_INTERVIDEO_UCOM_DEVID];// 设备id
  1050. char szUserName[DH_INTERVIDEO_UCOM_USERNAME];
  1051. char szPassWord[DH_INTERVIDEO_UCOM_USERPSW];
  1052.     DH_INTERVIDEO_UCOM_CHN_CFG  struChnInfo[DH_MAX_CHANNUM]; // 通道id,en
  1053. } DHDEV_INTERVIDEO_UCOM_CFG;
  1054. // 平台接入配置 - 阿尔卡特
  1055. typedef struct
  1056. {
  1057. DWORD dwSize;
  1058.     unsigned short usCompanyID[2]; // 公司ID,数值,不同的第三方服务公司,考虑4字节对齐,目前只用数组第一个
  1059.     char szDeviceNO[32]; // 前端设备序列号,字符串,包括''结束符共32byte
  1060.     char szVSName[32]; // 前端设备名称,字符串,包括''结束符共16byte
  1061.     char szVapPath[32]; // VAP路径
  1062.     unsigned short usTcpPort; // TCP端口,数值:数值 1~65535 
  1063.     unsigned short usUdpPort; // UDP端口,数值:数值 1~65535
  1064.     bool bCsEnable[4]; // 中心服务器使能标志,数值:true使能,false不使能,考虑4字节对齐,目前只用数组第一个
  1065.     char szCsIP[16]; // 中心服务器IP地址,字符串,包括''结束符共16byte
  1066.     unsigned short usCsPort[2]; // 中心服务器端口,数值:数值 1~65535,考虑4字节对齐,目前只用数组第一个
  1067.     bool bHsEnable[4]; // 心跳服务器使能标志,数值:true使能,false不使能,考虑4字节对齐,目前只用数组第一个
  1068.     char szHsIP[16]; // 心跳服务器IP地址,字符串,包括''结束符共16byte
  1069.     unsigned short usHsPort[2]; // 心跳服务器端口,数值:数值 1~65535,考虑4字节对齐,目前只用数组第一个
  1070.     int iHsIntervalTime; // 心跳服务器间隔周期,数值(单位:秒)
  1071.     bool bRsEnable[4]; // 注册服务器使能标志,数值:true使能,false不使能,考虑4字节对齐,目前只用数组第一个
  1072.     char szRsIP[16]; // 注册服务器IP地址,字符串,包括''结束符共16byte
  1073.     unsigned short usRsPort[2]; // 注册服务器端口,数值:数值 1~65535,考虑4字节对齐,目前只用数组第一个
  1074.     int iRsAgedTime; // 注册服务器有效时间,数值(单位:小时)
  1075.     char szAuthorizeServerIp[16];// 鉴权服务器IP
  1076.     unsigned short usAuthorizePort[2]; // 鉴权服务器端口,考虑4字节对齐,目前只用数组第一个
  1077.     char szAuthorizeUsername[32];// 鉴权服务器帐号
  1078.     char szAuthorizePassword[36];// 鉴权服务器密码
  1079.     
  1080.     char szIpACS[16]; // ACS(自动注册服务器) IP
  1081.     unsigned short usPortACS[2]; // ACS Port,考虑4字节对齐,目前只用数组第一个
  1082.     char szUsernameACS[32]; // ACS用户名
  1083.     char szPasswordACS[36]; // ACS密码
  1084.     bool bVideoMonitorEnabled[4];// DVS是否定期上报前端视频信号监控信息,数值:true使能,false不使能
  1085.     int iVideoMonitorInterval; // 上报周期(分钟)
  1086.     
  1087.     char szCoordinateGPS[64]; // GPS坐标
  1088.     char szPosition[32]; // 设备位置
  1089.     char szConnPass[36]; // 设备接入码
  1090. } DHDEV_INTERVIDEO_BELL_CFG;
  1091. // 平台接入配置 - 中兴力维
  1092. typedef struct  
  1093. {
  1094. DWORD dwSize;
  1095. unsigned short nSevPort; // 服务器端口,数值,数值1~65535
  1096.     char szSevIp[DH_INTERVIDEO_NSS_IP]; // 服务器IP地址,字符串,包括''结束符共32byte
  1097.     char szDevSerial[DH_INTERVIDEO_NSS_SERIAL]; // 前端设备序列号,字符串,包括''结束符共32byte
  1098.     char szUserName[DH_INTERVIDEO_NSS_USER];
  1099.     char szPwd[DH_INTERVIDEO_NSS_PWD];
  1100. } DHDEV_INTERVIDEO_NSS_CFG;
  1101. /////////////////////////////////淘汰类型/////////////////////////////////
  1102. // 查询设备工作状态通道信息,相关接口已淘汰,请不要使用
  1103. typedef struct
  1104. {
  1105. BYTE byRecordStatic; // 通道是否在录像;0:不录像,1:手动录像,2:自动录象
  1106. BYTE bySignalStatic; // 连接的信号状态;0:正常,1:信号丢失
  1107. BYTE byHardwareStatic; // 通道硬件状态;0:正常,1:异常,例如DSP死掉
  1108. char reserve;
  1109. DWORD dwBitRate; // 实际码率
  1110. DWORD dwLinkNum; // 客户端连接的个数
  1111. DWORD dwClientIP[DH_MAX_LINK];// 客户端的IP地址
  1112. } NET_DEV_CHANNELSTATE, *LPNET_DEV_CHANNELSTATE;
  1113. // 查询设备工作状态,相关接口已淘汰,请不要使用
  1114. typedef struct
  1115. {
  1116. DWORD dwDeviceStatic; // 设备的状态;0x00:正常,0x01:CPU占用过高,0x02:硬件错误
  1117. NET_DEV_DISKSTATE stHardDiskStatic[DH_MAX_DISKNUM]; 
  1118. NET_DEV_CHANNELSTATE stChanStatic[DH_MAX_CHANNUM]; //通道的状态
  1119. BYTE byAlarmInStatic[DH_MAX_ALARMIN];//报警端口的状态;0:没有报警,1:有报警
  1120. BYTE byAlarmOutStatic[DH_MAX_ALARMOUT]; //报警输出端口的状态;0:没有输出,1:有报警输出
  1121. DWORD dwLocalDisplay; // 本地显示状态;0:正常,1:不正常
  1122. } NET_DEV_WORKSTATE, *LPNET_DEV_WORKSTATE;
  1123. // 协议信息
  1124. typedef struct 
  1125. {
  1126. char protocolname[12]; // 协议名
  1127. unsigned int baudbase; // 波特率
  1128. unsigned char databits; // 数据位
  1129. unsigned char stopbits; // 停止位
  1130. unsigned char parity; // 校验位
  1131. unsigned char reserve;
  1132. } PROTOCOL_INFO, *LPPROTOCOL_INFO;
  1133. // 语音对讲参数配置
  1134. typedef struct 
  1135. {
  1136. // 音频输入参数
  1137. BYTE byInFormatTag; // 编码类型,如PCM
  1138. BYTE byInChannels; // 声道数
  1139. WORD wInBitsPerSample; // 采样深度
  1140. DWORD dwInSamplesPerSec; // 采样率
  1141. // 音频输出参数
  1142. BYTE byOutFormatTag; // 编码类型,如PCM
  1143. BYTE byOutChannels; // 声道数
  1144. WORD wOutBitsPerSample; // 采样深度
  1145. DWORD dwOutSamplesPerSec; // 采样率
  1146. } DHDEV_TALK_CFG, *LPDHDEV_TALK_CFG;
  1147. /************************************************************************
  1148.  ** 回调函数定义
  1149.  ***********************************************************************/
  1150. // 网络连接断开回调函数原形
  1151. typedef void (CALLBACK *fDisConnect)(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);
  1152. // 网络连接恢复回调函数原形
  1153. typedef void (CALLBACK *fHaveReConnect)(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);
  1154. // 实时监视数据回调函数原形
  1155. typedef void (CALLBACK *fRealDataCallBack)(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, DWORD dwUser);
  1156. // 实时监视数据回调函数原形--扩展
  1157. typedef void (CALLBACK *fRealDataCallBackEx)(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LONG param, DWORD dwUser);
  1158. // 屏幕叠加回调函数原形
  1159. typedef void (CALLBACK *fDrawCallBack)(LONG lLoginID, LONG lPlayHandle, HDC hDC, DWORD dwUser);
  1160. // 回放数据回调函数原形
  1161. typedef int (CALLBACK *fDataCallBack)(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, DWORD dwUser);
  1162. // 回放进度回调函数原形
  1163. typedef void (CALLBACK *fDownLoadPosCallBack)(LONG lPlayHandle, DWORD dwTotalSize, DWORD dwDownLoadSize, DWORD dwUser);
  1164. // 按时间回放进度回调函数原形
  1165. typedef void (CALLBACK *fTimeDownLoadPosCallBack) (LONG lPlayHandle, DWORD dwTotalSize, DWORD dwDownLoadSize, int index, NET_RECORDFILE_INFO recordfileinfo, DWORD dwUser);
  1166. // 消息回调函数原形
  1167. typedef BOOL (CALLBACK *fMessCallBack)(LONG lCommand, LONG lLoginID, char *pBuf, DWORD dwBufLen, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);
  1168. // 侦听服务器回调函数原形
  1169. typedef int (CALLBACK *fServiceCallBack)(LONG lHandle, char *pIp, WORD wPort, LONG lCommand, void *pParam, DWORD dwParamLen, DWORD dwUserData);
  1170. // 语音对讲的音频数据回调函数原形
  1171. typedef void (CALLBACK *pfAudioDataCallBack)(LONG lTalkHandle, char *pDataBuf, DWORD dwBufSize, BYTE byAudioFlag, DWORD dwUser);
  1172. // 升级设备程序回调函数原形
  1173. typedef void (CALLBACK *fUpgradeCallBack) (LONG lLoginID, LONG lUpgradechannel, int nTotalSize, int nSendSize, DWORD dwUser);
  1174. // 透明串口回调函数原形
  1175. typedef void (CALLBACK *fTransComCallBack) (LONG lLoginID, LONG lTransComChannel, char *pBuffer, DWORD dwBufSize, DWORD dwUser);
  1176. // 查询设备日志数据回调函数原形
  1177. typedef void (CALLBACK *fLogDataCallBack)(LONG lLoginID, char *pBuffer, DWORD dwBufSize, DWORD nTotalSize, BOOL bEnd, DWORD dwUser);
  1178. // 抓图回调函数原形
  1179. typedef void (CALLBACK *fSnapRev)(LONG lLoginID, BYTE *pBuf, UINT RevLen, UINT EncodeType, DWORD CmdSerial, DWORD dwUser);
  1180. // GPS信息订阅回调
  1181. typedef void (CALLBACK *fGPSRev)(LONG lLoginID, GPS_Info GpsInfo, DWORD dwUserData);
  1182. // 异步数据回调
  1183. typedef void (CALLBACK *fMessDataCallBack)(LONG lCommand, LPNET_CALLBACK_DATA lpData, DWORD dwUser);
  1184. // 文件传输回调
  1185. typedef void (CALLBACK *fTransFileCallBack)(LONG lHandle, int nTransType, int nState, int nSendSize, int nTotalSize, DWORD dwUser);
  1186. /************************************************************************
  1187.  ** 接口定义
  1188.  ***********************************************************************/
  1189. // SDK初始化
  1190. CLIENT_API BOOL CALL_METHOD CLIENT_Init(fDisConnect cbDisConnect, DWORD dwUser);
  1191. // SDK退出清理
  1192. CLIENT_API void CALL_METHOD CLIENT_Cleanup();
  1193. //------------------------------------------------------------------------
  1194. // 设置断线重连成功回调函数,设置后SDK内部断线自动重连
  1195. CLIENT_API void CALL_METHOD CLIENT_SetAutoReconnect(fHaveReConnect cbAutoConnect, DWORD dwUser);
  1196. // 返回函数执行失败代码
  1197. CLIENT_API DWORD CALL_METHOD CLIENT_GetLastError(void);
  1198. // 设置连接设备超时时间和尝试次数
  1199. CLIENT_API void CALL_METHOD CLIENT_SetConnectTime(int nWaitTime, int nTryTimes);
  1200. // 设置登陆网络环境
  1201. CLIENT_API void CALL_METHOD CLIENT_SetNetworkParam(NET_PARAM *pNetParam);
  1202. // 获取SDK的版本信息
  1203. CLIENT_API DWORD CALL_METHOD CLIENT_GetSDKVersion();
  1204. //------------------------------------------------------------------------
  1205. // 向设备注册
  1206. CLIENT_API LONG CALL_METHOD CLIENT_Login(char *pchDVRIP, WORD wDVRPort, char *pchUserName, char *pchPassword, LPNET_DEVICEINFO lpDeviceInfo, int *error = 0);
  1207. // 扩展接口;nSpecCap = 0为TCP方式下的登入,nSpecCap = 2为主动注册的登入,nSpecCap = 3为组播方式下的登入,nSpecCap = 4为UDP方式下的登入,nSpecCap = 6为只建主连接下的登入
  1208. 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);
  1209. // 向设备注销
  1210. CLIENT_API BOOL CALL_METHOD CLIENT_Logout(LONG lLoginID);
  1211. //------------------------------------------------------------------------
  1212. // 开始实时监视
  1213. CLIENT_API LONG CALL_METHOD CLIENT_RealPlay(LONG lLoginID, int nChannelID, HWND hWnd);
  1214. // 开始实时监视--扩展
  1215. CLIENT_API LONG CALL_METHOD CLIENT_RealPlayEx(LONG lLoginID, int nChannelID, HWND hWnd, DH_RealPlayType rType = DH_RType_Realplay);
  1216. // 多画面实时预览
  1217. CLIENT_API LONG CALL_METHOD CLIENT_MultiPlay(LONG lLoginID, HWND hWnd);
  1218. // 停止多画面实时预览
  1219. CLIENT_API BOOL CALL_METHOD CLIENT_StopMultiPlay(LONG lMultiHandle);
  1220. // 抓图;hPlayHandle为监视或回放句柄
  1221. CLIENT_API BOOL CALL_METHOD CLIENT_CapturePicture(LONG hPlayHandle, const char *pchPicFileName);
  1222. // 设置实时监视数据回调
  1223. CLIENT_API BOOL CALL_METHOD CLIENT_SetRealDataCallBack(LONG lRealHandle, fRealDataCallBack cbRealData, DWORD dwUser);
  1224. // 设置实时监视数据回调--扩展
  1225. CLIENT_API BOOL CALL_METHOD CLIENT_SetRealDataCallBackEx(LONG lRealHandle, fRealDataCallBackEx cbRealData, DWORD dwUser, DWORD dwFlag);
  1226. // 设置图象流畅性
  1227. CLIENT_API BOOL CALL_METHOD CLIENT_AdjustFluency(LONG lRealHandle, int nLevel);
  1228. // 保存数据为文件
  1229. CLIENT_API BOOL CALL_METHOD CLIENT_SaveRealData(LONG lRealHandle, const char *pchFileName);
  1230. // 结束保存数据为文件
  1231. CLIENT_API BOOL CALL_METHOD CLIENT_StopSaveRealData(LONG lRealHandle);
  1232. // 设置图像属性
  1233. CLIENT_API BOOL CALL_METHOD CLIENT_ClientSetVideoEffect(LONG lPlayHandle, unsigned char nBrightness, unsigned char nContrast, unsigned char nHue, unsigned char nSaturation);
  1234. // 获取图像属性
  1235. CLIENT_API BOOL CALL_METHOD CLIENT_ClientGetVideoEffect(LONG lPlayHandle, unsigned char *nBrightness, unsigned char *nContrast, unsigned char *nHue, unsigned char *nSaturation);
  1236. // 设置屏幕叠加回调
  1237. CLIENT_API void CALL_METHOD CLIENT_RigisterDrawFun(fDrawCallBack cbDraw, DWORD dwUser);
  1238. // 打开声音
  1239. CLIENT_API BOOL CALL_METHOD CLIENT_OpenSound(LONG hPlayHandle);
  1240. // 设置音量;lPlayHandle为监视或回放句柄
  1241. CLIENT_API BOOL CALL_METHOD CLIENT_SetVolume(LONG lPlayHandle, int nVolume);
  1242. // 关闭声音
  1243. CLIENT_API BOOL CALL_METHOD CLIENT_CloseSound();
  1244. // 停止实时预览
  1245. CLIENT_API BOOL CALL_METHOD CLIENT_StopRealPlay(LONG lRealHandle);
  1246. // 停止实时预览--扩展
  1247. CLIENT_API BOOL CALL_METHOD CLIENT_StopRealPlayEx(LONG lRealHandle);
  1248. //------------------------------------------------------------------------
  1249. // 通用云台控制
  1250. CLIENT_API BOOL CALL_METHOD CLIENT_PTZControl(LONG lLoginID, int nChannelID, DWORD dwPTZCommand, DWORD dwStep, BOOL dwStop);
  1251. // 大华云台控制
  1252. CLIENT_API BOOL CALL_METHOD CLIENT_DHPTZControl(LONG lLoginID, int nChannelID, DWORD dwPTZCommand, unsigned char param1, unsigned char param2, unsigned char param3, BOOL dwStop);
  1253. // 大华云台控制扩展接口,支持三维快速定位
  1254. CLIENT_API BOOL CALL_METHOD CLIENT_DHPTZControlEx(LONG lLoginID, int nChannelID, DWORD dwPTZCommand, LONG lParam1, LONG lParam2, LONG lParam3, BOOL dwStop);
  1255. //------------------------------------------------------------------------
  1256. // 查询时间段内是否有录像文件
  1257. 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);
  1258. // 查询时间段内的所有录像文件
  1259. 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);
  1260. // 开始查找录像文件
  1261. 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);
  1262. // 查找录像文件
  1263. CLIENT_API int CALL_METHOD CLIENT_FindNextFile(LONG lFindHandle,LPNET_RECORDFILE_INFO lpFindData);
  1264. // 结束录像文件查找
  1265. CLIENT_API BOOL CALL_METHOD CLIENT_FindClose(LONG lFindHandle);
  1266. // 按文件方式回放
  1267. CLIENT_API LONG CALL_METHOD CLIENT_PlayBackByRecordFile(LONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, DWORD dwUserData);
  1268. // 按文件方式回放--扩展
  1269. CLIENT_API LONG CALL_METHOD CLIENT_PlayBackByRecordFileEx(LONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, DWORD dwPosUser, fDataCallBack fDownLoadDataCallBack, DWORD dwDataUser);
  1270. // 按时间方式回放
  1271. CLIENT_API LONG CALL_METHOD CLIENT_PlayBackByTime(LONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, DWORD dwPosUser);
  1272. // 按时间方式回放--扩展
  1273. 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);
  1274. // 定位录像回放起始点
  1275. CLIENT_API BOOL CALL_METHOD CLIENT_SeekPlayBack(LONG lPlayHandle, unsigned int offsettime, unsigned int offsetbyte);
  1276. // 暂停或恢复录像回放
  1277. CLIENT_API BOOL CALL_METHOD CLIENT_PausePlayBack(LONG lPlayHandle, BOOL bPause);
  1278. // 快进录像回放
  1279. CLIENT_API BOOL CALL_METHOD CLIENT_FastPlayBack(LONG lPlayHandle);
  1280. // 慢进录像回放
  1281. CLIENT_API BOOL CALL_METHOD CLIENT_SlowPlayBack(LONG lPlayHandle);
  1282. // 步进录像回放
  1283. CLIENT_API BOOL CALL_METHOD CLIENT_StepPlayBack(LONG lPlayHandle, BOOL bStop);
  1284. // 设置回放帧速
  1285. CLIENT_API BOOL CALL_METHOD CLIENT_SetFramePlayBack(LONG lPlayHandle, int framerate);
  1286. // 获取回放帧速
  1287. CLIENT_API BOOL CALL_METHOD CLIENT_GetFramePlayBack(LONG lPlayHandle, int *fileframerate, int *playframerate);
  1288. // 恢复正常回放速度
  1289. CLIENT_API BOOL CALL_METHOD CLIENT_NormalPlayBack(LONG lPlayHandle);
  1290. // 获取回放OSD时间
  1291. CLIENT_API BOOL CALL_METHOD CLIENT_GetPlayBackOsdTime(LONG lPlayHandle, LPNET_TIME lpOsdTime, LPNET_TIME lpStartTime, LPNET_TIME lpEndTime);
  1292. // 停止录像回放
  1293. CLIENT_API BOOL CALL_METHOD CLIENT_StopPlayBack(LONG lPlayHandle);
  1294. // 下载录像文件
  1295. CLIENT_API LONG CALL_METHOD CLIENT_DownloadByRecordFile(LONG lLoginID,LPNET_RECORDFILE_INFO lpRecordFile, char *sSavedFileName, fDownLoadPosCallBack cbDownLoadPos, DWORD dwUserData);
  1296. // 通过时间下载录像
  1297. 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);
  1298. // 查询录像下载进度
  1299. CLIENT_API BOOL CALL_METHOD CLIENT_GetDownloadPos(LONG lFileHandle, int *nTotalSize, int *nDownLoadSize);
  1300. // 停止录像下载
  1301. CLIENT_API BOOL CALL_METHOD CLIENT_StopDownload(LONG lFileHandle);
  1302. //------------------------------------------------------------------------
  1303. // 设置报警回调函数
  1304. CLIENT_API void CALL_METHOD CLIENT_SetDVRMessCallBack(fMessCallBack cbMessage,DWORD dwUser);
  1305. // 向设备订阅报警
  1306. CLIENT_API BOOL CALL_METHOD CLIENT_StartListen(LONG lLoginID);
  1307. // 向设备订阅报警--扩展
  1308. CLIENT_API BOOL CALL_METHOD CLIENT_StartListenEx(LONG lLoginID);
  1309. // 停止订阅报警
  1310. CLIENT_API BOOL CALL_METHOD CLIENT_StopListen(LONG lLoginID);
  1311. //------------------------------------------------------------------------
  1312. // 主动注册功能,启动服务;nTimeout参数已无效
  1313. CLIENT_API LONG CALL_METHOD CLIENT_ListenServer(char* ip, WORD port, int nTimeout, fServiceCallBack cbListen, DWORD dwUserData);
  1314. // 停止服务
  1315. CLIENT_API BOOL CALL_METHOD CLIENT_StopListenServer(LONG lServerHandle);
  1316. // 响应设备的注册请求
  1317. CLIENT_API BOOL CALL_METHOD CLIENT_ResponseDevReg(char *devSerial, char* ip, WORD port, BOOL bAccept);
  1318. //------------------------------------------------------------------------
  1319. // 报警上传功能,启动服务;dwTimeOut参数已无效
  1320. CLIENT_API LONG CALL_METHOD CLIENT_StartService(WORD wPort, char *pIp = NULL, fServiceCallBack pfscb = NULL, DWORD dwTimeOut = 0xffffffff, DWORD dwUserData = 0);
  1321. // 停止服务
  1322. CLIENT_API BOOL CALL_METHOD CLIENT_StopService(LONG lHandle);
  1323. //------------------------------------------------------------------------
  1324. // 设置语音对讲模式,客户端方式还是服务器方式
  1325. CLIENT_API BOOL CALL_METHOD CLIENT_SetDeviceMode(LONG lLoginID, EM_USEDEV_MODE emType, void* pValue);
  1326. // 打开语音对讲
  1327. CLIENT_API LONG CALL_METHOD CLIENT_StartTalkEx(LONG lLoginID, pfAudioDataCallBack pfcb, DWORD dwUser);
  1328. // 开始PC端录音
  1329. CLIENT_API BOOL CALL_METHOD CLIENT_RecordStart();
  1330. // 结束PC端录音
  1331. CLIENT_API BOOL CALL_METHOD CLIENT_RecordStop();
  1332. // 发送语音数据到设备
  1333. CLIENT_API LONG CALL_METHOD CLIENT_TalkSendData(LONG lTalkHandle, char *pSendBuf, DWORD dwBufSize);
  1334. // 解码音频数据
  1335. CLIENT_API void CALL_METHOD CLIENT_AudioDec(char *pAudioDataBuf, DWORD dwBufSize);
  1336. // 设置语音对讲的音量
  1337. CLIENT_API BOOL CALL_METHOD CLIENT_SetAudioClientVolume(LONG lTalkHandle, WORD wVolume);
  1338. // 停止语音对讲
  1339. CLIENT_API BOOL CALL_METHOD CLIENT_StopTalkEx(LONG lTalkHandle);
  1340. // 添加设备到广播组
  1341. CLIENT_API BOOL CALL_METHOD CLIENT_AudioBroadcastAddDev(LONG lLoginID);
  1342. // 从广播组中删除设备
  1343. CLIENT_API BOOL CALL_METHOD CLIENT_AudioBroadcastDelDev(LONG lLoginID);
  1344. // 音频编码--初始化(特定标准格式->大华格式)
  1345. CLIENT_API int  CALL_METHOD CLIENT_InitAudioEncode(DH_AUDIO_FORMAT aft);
  1346. // 音频编码--数据编码
  1347. CLIENT_API int CALL_METHOD CLIENT_AudioEncode(LONG lTalkHandle, BYTE *lpInBuf, DWORD *lpInLen, BYTE *lpOutBuf, DWORD *lpOutLen);
  1348. // 音频编码--完成退出
  1349. CLIENT_API int CALL_METHOD CLIENT_ReleaseAudioEncode();
  1350. //------------------------------------------------------------------------
  1351. // 查询设备日志
  1352. CLIENT_API BOOL CALL_METHOD CLIENT_QueryLog(LONG lLoginID, char *pLogBuffer, int maxlen, int *nLogBufferlen, int waittime=3000);
  1353. // 查询设备日志,以分页方式查询
  1354. CLIENT_API BOOL CALL_METHOD CLIENT_QueryDeviceLog(LONG lLoginID, QUERY_DEVICE_LOG_PARAM *pQueryParam, char *pLogBuffer, int nLogBufferLen, int *pRecLogNum, int waittime=3000);
  1355. // 查道通道录像状态
  1356. CLIENT_API BOOL CALL_METHOD CLIENT_QueryRecordState(LONG lLoginID, char *pRSBuffer, int maxlen, int *nRSBufferlen, int waittime=1000);
  1357. // 查询设备状态
  1358. CLIENT_API BOOL CALL_METHOD CLIENT_QueryDevState(LONG lLoginID, int nType, char *pBuf, int nBufLen, int *pRetLen, int waittime=1000);
  1359. // 查询系统能力信息
  1360. CLIENT_API BOOL CALL_METHOD CLIENT_QuerySystemInfo(LONG lLoginID, int nSystemType, char *pSysInfoBuffer, int maxlen, int *nSysInfolen, int waittime=1000);
  1361. // 获取通道码流
  1362. CLIENT_API LONG CALL_METHOD CLIENT_GetStatiscFlux(LONG lLoginID, LONG lPlayHandle);
  1363. // 获取云台信息
  1364. CLIENT_API BOOL  CALL_METHOD CLIENT_GetPtzOptAttr(LONG lLoginID,DWORD dwProtocolIndex,LPVOID lpOutBuffer,DWORD dwBufLen,DWORD *lpBytesReturned,int waittime=500);
  1365. //------------------------------------------------------------------------
  1366. // 重启设备
  1367. CLIENT_API BOOL CALL_METHOD CLIENT_RebootDev(LONG lLoginID);
  1368. // 关闭设备
  1369. CLIENT_API BOOL CALL_METHOD CLIENT_ShutDownDev(LONG lLoginID);
  1370. // 设备控制
  1371. CLIENT_API BOOL CALL_METHOD CLIENT_ControlDevice(LONG lLoginID, CtrlType type, void *param, int waittime = 1000);
  1372. // 设置通道录像状态
  1373. CLIENT_API BOOL CALL_METHOD CLIENT_SetupRecordState(LONG lLoginID, char *pRSBuffer, int nRSBufferlen);
  1374. // 查询IO状态
  1375. CLIENT_API BOOL CALL_METHOD CLIENT_QueryIOControlState(LONG lLoginID, DH_IOTYPE emType, 
  1376.                                            void *pState, int maxlen, int *nIOCount, int waittime=1000);
  1377. // IO控制
  1378. CLIENT_API BOOL CALL_METHOD CLIENT_IOControl(LONG lLoginID, DH_IOTYPE emType, void *pState, int maxlen);
  1379. // 强制I帧 强制主码流时:nChannelID(0-15);强制辅码流时:nChannelID=-1,辅码流1:nSubChannel(0~15),辅码流2:nSubChannel(16~31),辅码流3:nSubChannel(32~47).
  1380. CLIENT_API BOOL CALL_METHOD CLIENT_MakeKeyFrame(LONG lLoginID, int nChannelID, int nSubChannel=0);
  1381. //------------------------------------------------------------------------
  1382. // 查询用户信息
  1383. CLIENT_API BOOL CALL_METHOD CLIENT_QueryUserInfo(LONG lLoginID, USER_MANAGE_INFO *info, int waittime=1000);
  1384. // 查询用户信息--扩展
  1385. CLIENT_API BOOL CALL_METHOD CLIENT_QueryUserInfoEx(LONG lLoginID, USER_MANAGE_INFO_EX *info, int waittime=1000);
  1386. // 操作设备用户
  1387. CLIENT_API BOOL CALL_METHOD CLIENT_OperateUserInfo(LONG lLoginID, int nOperateType, void *opParam, void *subParam, int waittime=1000);
  1388. // 操作设备用户--扩展
  1389. CLIENT_API BOOL CALL_METHOD CLIENT_OperateUserInfoEx(LONG lLoginID, int nOperateType, void *opParam, void *subParam, int waittime=1000);
  1390. //------------------------------------------------------------------------
  1391. // 创建透明串口通道
  1392. 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);
  1393. // 透明串口发送数据
  1394. CLIENT_API BOOL CALL_METHOD CLIENT_SendTransComData(LONG lTransComChannel, char *pBuffer, DWORD dwBufSize);
  1395. // 释放通明串口通道
  1396. CLIENT_API BOOL CALL_METHOD CLIENT_DestroyTransComChannel(LONG lTransComChannel);
  1397. // 查询透明串口状态
  1398. CLIENT_API BOOL   CALL_METHOD CLIENT_QueryTransComParams(LONG lLoginID, int TransComType, DH_COMM_STATE* pCommState, int nWaitTime = 500);
  1399. //------------------------------------------------------------------------
  1400. // 开始升级设备程序
  1401. CLIENT_API LONG CALL_METHOD CLIENT_StartUpgrade(LONG lLoginID, char *pchFileName, fUpgradeCallBack cbUpgrade, DWORD dwUser);
  1402. // 开始升级设备程序--扩展
  1403. CLIENT_API LONG CALL_METHOD CLIENT_StartUpgradeEx(LONG lLoginID, EM_UPGRADE_TYPE emType, char *pchFileName, fUpgradeCallBack cbUpgrade, DWORD dwUser);
  1404. // 发送数据
  1405. CLIENT_API BOOL CALL_METHOD CLIENT_SendUpgrade(LONG lUpgradeID);
  1406. // 结束升级设备程序
  1407. CLIENT_API BOOL CALL_METHOD CLIENT_StopUpgrade(LONG lUpgradeID);
  1408. //------------------------------------------------------------------------
  1409. // 查询配置信息
  1410. CLIENT_API BOOL  CALL_METHOD CLIENT_GetDevConfig(LONG lLoginID, DWORD dwCommand, LONG lChannel, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned,int waittime=500);
  1411. // 设置配置信息
  1412. CLIENT_API BOOL  CALL_METHOD CLIENT_SetDevConfig(LONG lLoginID, DWORD dwCommand, LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize, int waittime=500);
  1413. //------------------------------------------------------------------------
  1414. // 查询设备通道名称
  1415. CLIENT_API BOOL CALL_METHOD CLIENT_QueryChannelName(LONG lLoginID, char *pChannelName, int maxlen, int *nChannelCount, int waittime=1000);
  1416. // 设置设备通道名称
  1417. CLIENT_API BOOL  CALL_METHOD CLIENT_SetupChannelName(LONG lLoginID,char *pbuf, int nbuflen);
  1418. // 设置设备通道字符叠加
  1419. CLIENT_API BOOL  CALL_METHOD CLIENT_SetupChannelOsdString(LONG lLoginID, int nChannelNo, DH_CHANNEL_OSDSTRING* struOsdString, int nbuflen);
  1420. // 查询设备当前时间
  1421. CLIENT_API BOOL CALL_METHOD CLIENT_QueryDeviceTime(LONG lLoginID, LPNET_TIME pDeviceTime, int waittime=1000);
  1422. // 设置设备当前时间
  1423. CLIENT_API BOOL CALL_METHOD CLIENT_SetupDeviceTime(LONG lLoginID, LPNET_TIME pDeviceTime);
  1424. // 设置设备限制码流
  1425. CLIENT_API BOOL CALL_METHOD CLIENT_SetMaxFlux(LONG lLoginID, WORD wFlux);
  1426. //------------------------------------------------------------------------
  1427. // 导入配置文件
  1428. CLIENT_API LONG CALL_METHOD CLIENT_ImportConfigFile(LONG lLoginID, char *szFileName, fDownLoadPosCallBack cbUploadPos, DWORD dwUserData, DWORD param=0);
  1429. // 停止导入配置文件
  1430. CLIENT_API BOOL CALL_METHOD CLIENT_StopImportCfgFile(LONG lImportHandle);
  1431. // 导出配置文件
  1432. CLIENT_API LONG CALL_METHOD CLIENT_ExportConfigFile(LONG lLoginID, DH_CONFIG_FILE_TYPE emConfigFileType, char *szSavedFilePath, fDownLoadPosCallBack cbDownLoadPos, DWORD dwUserData);
  1433. // 停止导出配置文件
  1434. CLIENT_API BOOL CALL_METHOD CLIENT_StopExportCfgFile(LONG lExportHandle);
  1435. //------------------------------------------------------------------------
  1436. // 通过设备名字或者设备序列号向DDNS服务器查询设备IP
  1437. CLIENT_API BOOL CALL_METHOD CLIENT_GetDVRIPByResolveSvr(char *pchDVRIP, WORD wDVRPort, BYTE *sDVRName, WORD wDVRNameLen, BYTE *sDVRSerialNumber, WORD wDVRSerialLen, char* sGetIP);
  1438. // 搜索局域网内IPC、NVS等设备
  1439. CLIENT_API BOOL CALL_METHOD CLIENT_SearchDevices(char* szBuf, int nBufLen, int* pRetLen, DWORD dwSearchTime);
  1440. //------------------------------------------------------------------------
  1441. // 平台接入接口
  1442. CLIENT_API BOOL CALL_METHOD CLIENT_GetPlatFormInfo(LONG lLoginID, DWORD dwCommand, int nSubCommand, int nParam, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned,int waittime=500);
  1443. CLIENT_API BOOL CALL_METHOD CLIENT_SetPlatFormInfo(LONG lLoginID, DWORD dwCommand, int nSubCommand, int nParam, LPVOID lpInBuffer, DWORD dwInBufferSize, int waittime=500);
  1444. ///////////////////////////////车载设备接口///////////////////////////////
  1445. // 设置抓图回调函数
  1446. CLIENT_API void CALL_METHOD CLIENT_SetSnapRevCallBack(fSnapRev OnSnapRevMessage, DWORD dwUser);
  1447. // 抓图请求
  1448. CLIENT_API BOOL CALL_METHOD CLIENT_SnapPicture(LONG lLoginID, SNAP_PARAMS par);
  1449. // 设置GPS订阅回调函数
  1450. CLIENT_API void CALL_METHOD CLIENT_SetSubcribeGPSCallBack(fGPSRev OnGPSMessage, DWORD dwUser);
  1451. // GPS信息订阅
  1452. CLIENT_API BOOL CALL_METHOD CLIENT_SubcribeGPS (LONG lLoginID, BOOL bStart, LONG KeepTime, LONG InterTime);
  1453. //////////////////////////////解码器设备接口//////////////////////////////
  1454. // 查询解码器信息
  1455. CLIENT_API BOOL CALL_METHOD CLIENT_QueryDecoderInfo(LONG lLoginID, LPDEV_DECODER_INFO lpDecInfo, int waittime=1000);
  1456. // 查询解码器当前TV信息
  1457. CLIENT_API BOOL CALL_METHOD CLIENT_QueryDecoderTVInfo(LONG lLoginID, int nMonitorID, LPDEV_DECODER_TV lpMonitorInfo, int waittime=1000);
  1458. // 查询解码通道信息
  1459. CLIENT_API BOOL CALL_METHOD CLIENT_QueryDecEncoderInfo(LONG lLoginID, int nEncoderID, LPDEV_ENCODER_INFO lpEncoderInfo, int waittime=1000);
  1460. // 设置解码器TV输出使能
  1461. CLIENT_API BOOL CALL_METHOD CLIENT_SetDecTVOutEnable(LONG lLoginID, BYTE *pDecTVOutEnable, int nBufLen, int waittime=1000);
  1462. //------------------------------------------------------------------------
  1463. // 设置异步回调函数
  1464. CLIENT_API BOOL CALL_METHOD CLIENT_SetOperateCallBack(LONG lLoginID, fMessDataCallBack cbMessData, DWORD dwUser);
  1465. // 控制解码器TV画面分割,接口为异步方式
  1466. CLIENT_API LONG CALL_METHOD CLIENT_CtrlDecTVScreen(LONG lLoginID, int nMonitorID, BOOL bEnable, int nSplitType, BYTE *pEncoderChannel, int nBufLen, void* userdata=NULL);
  1467. // 解码器TV画面切换,接口为异步方式
  1468. // 根据nMonitorID(TV号)、nWndID(画面号)转换为nEncoderID(解码通道)公式:nEncoderID=nMonitorID*nSplitNum(分割数)+nWndID
  1469. CLIENT_API LONG CALL_METHOD CLIENT_SwitchDecTVEncoder(LONG lLoginID, int nEncoderID, LPDEV_ENCODER_INFO lpEncoderInfo, void* userdata=NULL);
  1470. //------------------------------------------------------------------------
  1471. // 增加画面组合
  1472. CLIENT_API int CALL_METHOD CLIENT_AddTourCombin(LONG lLoginID, int nMonitorID, int nSplitType, BYTE *pEncoderChannnel, int nBufLen, int waittime=1000);
  1473. // 删除画面组合
  1474. CLIENT_API BOOL CALL_METHOD CLIENT_DelTourCombin(LONG lLoginID, int nMonitorID, int nCombinID, int waittime=1000);
  1475. // 修改画面组合
  1476. CLIENT_API BOOL CALL_METHOD CLIENT_SetTourCombin(LONG lLoginID, int nMonitorID, int nCombinID, int nSplitType, BYTE *pEncoderChannel, int nBufLen, int waittime=1000);
  1477. // 查询画面组合,nCombinID范围0~32
  1478. CLIENT_API BOOL CALL_METHOD CLIENT_QueryTourCombin(LONG lLoginID, int nMonitorID, int nCombinID, LPDEC_COMBIN_INFO lpDecCombinInfo, int waittime=1000);
  1479. // 设置轮巡操作
  1480. CLIENT_API BOOL CALL_METHOD CLIENT_SetDecoderTour(LONG lLoginID, int nMonitorID, LPDEC_TOUR_COMBIN lpDecTourInfo, int waittime=1000);
  1481. // 查询轮巡操作
  1482. CLIENT_API BOOL CALL_METHOD CLIENT_QueryDecoderTour(LONG lLoginID, int nMonitorID, LPDEC_TOUR_COMBIN lpDecTourInfo, int waittime=1000);
  1483. //------------------------------------------------------------------------
  1484. typedef void (CALLBACK *fDecPlayBackPosCallBack)(LONG lLoginID, int nEncoderID, DWORD dwTotalSize, DWORD dwPlaySize, DWORD dwUser);
  1485. // 设置回放进度回调函数
  1486. CLIENT_API BOOL CALL_METHOD CLIENT_SetDecPlaybackPos(LONG lLoginID, fDecPlayBackPosCallBack cbPlaybackPos, DWORD dwUser);
  1487. // 解码器TV画面回放,接口为异步方式
  1488. CLIENT_API LONG CALL_METHOD CLIENT_DecTVPlayback(LONG lLoginID, int nEncoderID, DEC_PLAYBACK_MODE emPlaybackMode, LPVOID lpInBuffer, DWORD dwInBufferSize, void* userdata=NULL);
  1489. // 解码器TV画面回放控制
  1490. CLIENT_API BOOL CALL_METHOD CLIENT_CtrlDecPlayback(LONG lLoginID, int nEncoderID, DEC_CTRL_PLAYBACK_TYPE emCtrlType, int nValue, int waittime=1000);
  1491. ///////////////////////////////特殊版本接口///////////////////////////////
  1492. // 查询设备日志--扩展
  1493. 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);
  1494. // 主动注册重定向功能,建立定向连接
  1495. CLIENT_API LONG CALL_METHOD CLIENT_ControlConnectServer(LONG lLoginID, char* RegServerIP, WORD RegServerPort, int TimeOut=3000);
  1496. // 连接主动注册
  1497. CLIENT_API BOOL CALL_METHOD CLIENT_ControlRegisterServer(LONG lLoginID, LONG ConnectionID, int waittime=1000);
  1498. // 断开定向连接
  1499. CLIENT_API BOOL CALL_METHOD CLIENT_ControlDisconnectRegServer(LONG lLoginID, LONG ConnectionID);
  1500. // 查询设备上主动注册服务器信息
  1501. CLIENT_API BOOL CALL_METHOD CLIENT_QueryControlRegServerInfo(LONG lLoginID, LPDEV_SERVER_AUTOREGISTER lpRegServerInfo, int waittime=2000);
  1502. // 文件上传接口
  1503. CLIENT_API LONG CALL_METHOD CLIENT_FileTransmit(LONG lLoginID, int nTransType, char* szInBuf, int nInBufLen, fTransFileCallBack cbTransFile, DWORD dwUserData, int waittime);
  1504. /////////////////////////////////淘汰接口/////////////////////////////////
  1505. // 查询系统服务器配置;该接口已淘汰,请使用CLIENT_GetDevConfig
  1506. CLIENT_API BOOL CALL_METHOD CLIENT_QueryConfig(LONG lLoginID, int nConfigType, char *pConfigbuf, int maxlen, int *nConfigbuflen, int waittime=1000);
  1507. // 设置系统服务器配置;该接口已淘汰,请使用CLIENT_SetDevConfig
  1508. CLIENT_API BOOL CALL_METHOD CLIENT_SetupConfig(LONG lLoginID, int nConfigType, char *pConfigbuf, int nConfigbuflen, int waittime=1000);
  1509. // 该接口已淘汰,请不要使用
  1510. CLIENT_API BOOL CALL_METHOD CLIENT_Reset(LONG lLoginID, BOOL bReset);
  1511. // 查询串口协议 - 该接口已淘汰,请使用CLIENT_GetDevConfig
  1512. CLIENT_API BOOL CALL_METHOD CLIENT_QueryComProtocol(LONG lLoginID, int nProtocolType, char *pProtocolBuffer, int maxlen, int *nProtocollen, int waittime=1000);
  1513. // 开始对讲;该接口已淘汰,请使用CLIENT_StartTalkEx
  1514. CLIENT_API BOOL CALL_METHOD CLIENT_StartTalk(LONG lRealHandle, BOOL bCustomSend=false);
  1515. // 结束对讲;该接口已淘汰,请使用CLIENT_StopTalkEx
  1516. CLIENT_API BOOL CALL_METHOD CLIENT_StopTalk(LONG lRealHandle);
  1517. // 发送自定义对讲数据;该接口已淘汰,请使用CLIENT_TalkSendData
  1518. CLIENT_API BOOL CALL_METHOD CLIENT_SendTalkData_Custom(LONG lRealHandle, char *pBuffer, DWORD dwBufSize);
  1519. // 设置实时预览缓冲大小
  1520. CLIENT_API BOOL CALL_METHOD CLIENT_SetPlayerBufNumber(LONG lRealHandle, DWORD dwBufNum);
  1521. // 通过时间下载文件
  1522. CLIENT_API BOOL CALL_METHOD CLIENT_GetFileByTime(LONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, char *sSavedFileName);
  1523. // 网络回放控制
  1524. CLIENT_API BOOL CALL_METHOD CLIENT_PlayBackControl(LONG lPlayHandle, DWORD dwControlCode, DWORD dwInValue, DWORD *lpOutValue);
  1525. // 查询设备工作状态 该接口已淘汰,请使用CLIENT_QueryDevState
  1526. CLIENT_API BOOL CALL_METHOD CLIENT_GetDEVWorkState(LONG lLoginID, LPNET_DEV_WORKSTATE lpWorkState, int waittime=1000);
  1527. // 异步查询设备日志
  1528. CLIENT_API BOOL CALL_METHOD CLIENT_QueryLogCallback(LONG lLoginID, fLogDataCallBack cbLogData, DWORD dwUser);
  1529. #ifdef __cplusplus
  1530. }
  1531. #endif
  1532. #endif // DHNETSDK_H