HCNetSDK.h 69 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643
  1. #include "stdafx.h"
  2. #define NET_DVR_API extern "C"__declspec(dllimport)
  3. #define NET_DVR_NOERROR 0 //没有错误
  4. #define NET_DVR_PASSWORD_ERROR 1 //用户名密码错误
  5. #define NET_DVR_NOENOUGHPRI 2 //权限不足
  6. #define NET_DVR_NOINIT 3 //没有初始化
  7. #define NET_DVR_CHANNEL_ERROR 4 //通道号错误
  8. #define NET_DVR_OVER_MAXLINK 5 //连接到DVR的客户端个数超过最大
  9. #define NET_DVR_VERSIONNOMATCH 6 //版本不匹配
  10. #define NET_DVR_NETWORK_FAIL_CONNECT 7 //连接服务器失败
  11. #define NET_DVR_NETWORK_SEND_ERROR 8 //向服务器发送失败
  12. #define NET_DVR_NETWORK_RECV_ERROR 9 //从服务器接收数据失败
  13. #define NET_DVR_NETWORK_RECV_TIMEOUT 10 //从服务器接收数据超时
  14. #define NET_DVR_NETWORK_ERRORDATA 11 //传送的数据有误
  15. #define NET_DVR_ORDER_ERROR 12 //调用次序错误
  16. #define NET_DVR_OPERNOPERMIT 13 //无此权限
  17. #define NET_DVR_COMMANDTIMEOUT 14 //DVR命令执行超时
  18. #define NET_DVR_ERRORSERIALPORT 15 //串口号错误
  19. #define NET_DVR_ERRORALARMPORT 16 //报警端口错误
  20. #define NET_DVR_PARAMETER_ERROR 17 //参数错误
  21. #define NET_DVR_CHAN_EXCEPTION 18 //服务器通道处于错误状态
  22. #define NET_DVR_NODISK 19 //没有硬盘
  23. #define NET_DVR_ERRORDISKNUM 20 //硬盘号错误
  24. #define NET_DVR_DISK_FULL 21 //服务器硬盘满
  25. #define NET_DVR_DISK_ERROR 22 //服务器硬盘出错
  26. #define NET_DVR_NOSUPPORT 23 //服务器不支持
  27. #define NET_DVR_BUSY 24 //服务器忙
  28. #define NET_DVR_MODIFY_FAIL 25 //服务器修改不成功
  29. #define NET_DVR_PASSWORD_FORMAT_ERROR 26 //密码输入格式不正确
  30. #define NET_DVR_DISK_FORMATING 27 //硬盘正在格式化,不能启动操作
  31. #define NET_DVR_DVRNORESOURCE 28 //DVR资源不足
  32. #define NET_DVR_DVROPRATEFAILED 29 //DVR操作失败
  33. #define NET_DVR_OPENHOSTSOUND_FAIL 30 //打开PC声音失败
  34. #define NET_DVR_DVRVOICEOPENED 31 //服务器语音对讲被占用
  35. #define NET_DVR_TIMEINPUTERROR 32 //时间输入不正确
  36. #define NET_DVR_NOSPECFILE 33 //回放时服务器没有指定的文件
  37. #define NET_DVR_CREATEFILE_ERROR 34 //创建文件出错
  38. #define NET_DVR_FILEOPENFAIL 35 //打开文件出错
  39. #define NET_DVR_OPERNOTFINISH 36 //上次的操作还没有完成
  40. #define NET_DVR_GETPLAYTIMEFAIL 37 //获取当前播放的时间出错
  41. #define NET_DVR_PLAYFAIL 38 //播放出错
  42. #define NET_DVR_FILEFORMAT_ERROR 39 //文件格式不正确
  43. #define NET_DVR_DIR_ERROR 40 //路径错误
  44. #define NET_DVR_ALLOC_RESOUCE_ERROR 41 //资源分配错误
  45. #define NET_DVR_AUDIO_MODE_ERROR 42 //声卡模式错误
  46. #define NET_DVR_NOENOUGH_BUF 43 //缓冲区太小
  47. #define NET_DVR_CREATESOCKET_ERROR 44 //创建SOCKET出错
  48. #define NET_DVR_SETSOCKET_ERROR 45 //设置SOCKET出错
  49. #define NET_DVR_MAX_NUM 46 //个数达到最大
  50. #define NET_DVR_USERNOTEXIST 47 //用户不存在
  51. #define NET_DVR_WRITEFLASHERROR 48 //写FLASH出错
  52. #define NET_DVR_UPGRADEFAIL 49 //DVR升级失败
  53. #define NET_DVR_CARDHAVEINIT 50 //解码卡已经初始化过
  54. #define NET_DVR_PLAYERFAILED 51 //播放器中错误
  55. #define NET_DVR_MAX_USERNUM 52 //用户数达到最大
  56. #define NET_DVR_GETLOCALIPANDMACFAIL 53 //获得客户端的IP地址或物理地址失败
  57. #define NET_DVR_NOENCODEING 54 //该通道没有编码
  58. #define NET_DVR_IPMISMATCH 55 //IP地址不匹配
  59. #define NET_DVR_MACMISMATCH 56 //MAC地址不匹配
  60. #define NET_DVR_UPGRADELANGMISMATCH 57 //升级文件语言不匹配
  61. #define NET_DVR_DDRAWDEVICENOSUPPORT 58 //本地显卡不支持
  62. //查找文件和日志函数返回值
  63. #define NET_DVR_FILE_SUCCESS 1000 //获得文件信息
  64. #define NET_DVR_FILE_NOFIND 1001 //没有文件
  65. #define NET_DVR_ISFINDING 1002 //正在查找文件
  66. #define NET_DVR_NOMOREFILE 1003 //查找文件时没有更多的文件
  67. #define NET_DVR_FILE_EXCEPTION 1004 //查找文件时异常
  68. //NET_DVR_IsSupport()返回值
  69. //1-9位分别表示以下信息(位与是TRUE)表示支持;
  70. #define NET_DVR_SUPPORT_DDRAW 0x01 //支持DIRECTDRAW,如果不支持,则播放器不能工作;
  71. #define NET_DVR_SUPPORT_BLT 0x02 //显卡支持BLT操作,如果不支持,则播放器不能工作;
  72. #define NET_DVR_SUPPORT_BLTFOURCC 0x04 //显卡BLT支持颜色转换,如果不支持,播放器会用软件方法作RGB转换;
  73. #define NET_DVR_SUPPORT_BLTSHRINKX 0x08 //显卡BLT支持X轴缩小;如果不支持,系统会用软件方法转换;
  74. #define NET_DVR_SUPPORT_BLTSHRINKY 0x10 //显卡BLT支持Y轴缩小;如果不支持,系统会用软件方法转换;
  75. #define NET_DVR_SUPPORT_BLTSTRETCHX 0x20 //显卡BLT支持X轴放大;如果不支持,系统会用软件方法转换;
  76. #define NET_DVR_SUPPORT_BLTSTRETCHY 0x40 //显卡BLT支持Y轴放大;如果不支持,系统会用软件方法转换;
  77. #define NET_DVR_SUPPORT_SSE 0x80 //CPU支持SSE指令,Intel Pentium3以上支持SSE指令;
  78. #define NET_DVR_SUPPORT_MMX 0x100 //CPU支持MMX指令集,Intel Pentium3以上支持SSE指令;
  79. #define SET_PRESET 8 // 设置预置点
  80. #define CLE_PRESET 9 // 清除预置点
  81. #define GOTO_PRESET 39 // 转到预置点
  82. #define LIGHT_PWRON 2 /* 接通灯光电源 */
  83. #define WIPER_PWRON 3 /* 接通雨刷开关 */
  84. #define FAN_PWRON 4 /* 接通风扇开关 */
  85. #define HEATER_PWRON 5 /* 接通加热器开关 */
  86. #define AUX_PWRON 6 /* 接通辅助设备开关 */
  87. #define ZOOM_IN 11 /* 焦距以速度SS变大(倍率变大) */
  88. #define ZOOM_OUT 12 /* 焦距以速度SS变小(倍率变小) */
  89. #define FOCUS_NEAR 13 /* 焦点以速度SS前调 */
  90. #define FOCUS_FAR 14 /* 焦点以速度SS后调 */
  91. #define IRIS_OPEN 15 /* 光圈以速度SS扩大 */
  92. #define IRIS_CLOSE 16 /* 光圈以速度SS缩小 */
  93. #define TILT_UP 21 /* 云台以SS的速度上仰 */
  94. #define TILT_DOWN 22 /* 云台以SS的速度下俯 */
  95. #define PAN_LEFT 23 /* 云台以SS的速度左转 */
  96. #define PAN_RIGHT 24 /* 云台以SS的速度右转 */
  97. #define UP_LEFT 25 /* 云台以SS的速度上仰和左转 */
  98. #define UP_RIGHT 26 /* 云台以SS的速度上仰和右转 */
  99. #define DOWN_LEFT 27 /* 云台以SS的速度下俯和左转 */
  100. #define DOWN_RIGHT 28 /* 云台以SS的速度下俯和右转 */
  101. #define PAN_AUTO 29 /* 云台以SS的速度左右自动扫描 */
  102. #define FILL_PRE_SEQ 30 /* 将预置点加入巡航序列 */
  103. #define SET_SEQ_DWELL 31 /* 设置巡航点停顿时间 */
  104. #define SET_SEQ_SPEED 32 /* 设置巡航速度 */
  105. #define CLE_PRE_SEQ 33 /* 将预置点从巡航序列中删除 */
  106. #define STA_MEM_CRUISE 34 /* 开始记录轨迹 */
  107. #define STO_MEM_CRUISE 35 /* 停止记录轨迹 */
  108. #define RUN_CRUISE 36 /* 开始轨迹 */
  109. #define RUN_SEQ 37 /* 开始巡航 */
  110. #define STOP_SEQ 38 /* 停止巡航 */
  111. //显示模式
  112. enum{NORMALMODE = 0,OVERLAYMODE};
  113. //发送模式
  114. enum{PTOPTCPMODE, PTOPUDPMODE, MULTIMODE, RTPMODE, AUDIODETACH, NOUSEMODE};
  115. #define NET_DVR_SYSHEAD 1 //系统头数据
  116. #define NET_DVR_STREAMDATA 2 //流数据
  117. //播放控制命令宏定义 NET_DVR_PlayBackControl,NET_DVR_PlayControlLocDisplay,NET_DVR_DecPlayBackCtrl的宏定义
  118. #define NET_DVR_PLAYSTART 1//开始播放
  119. #define NET_DVR_PLAYSTOP 2//停止播放
  120. #define NET_DVR_PLAYPAUSE 3//暂停播放
  121. #define NET_DVR_PLAYRESTART 4//恢复播放
  122. #define NET_DVR_PLAYFAST 5//快放
  123. #define NET_DVR_PLAYSLOW 6//慢放
  124. #define NET_DVR_PLAYNORMAL 7//正常速度
  125. #define NET_DVR_PLAYFRAME 8//单帧放
  126. #define NET_DVR_PLAYSTARTAUDIO 9//打开声音
  127. #define NET_DVR_PLAYSTOPAUDIO 10//关闭声音
  128. #define NET_DVR_PLAYAUDIOVOLUME 11//调节音量
  129. #define NET_DVR_PLAYSETPOS 12//改变文件回放的进度
  130. #define NET_DVR_PLAYGETPOS 13//获取文件回放的进度
  131. #define NET_DVR_PLAYGETTIME 14//获取当前已经播放的时间
  132. #define NET_DVR_PLAYGETFRAME 15//获取当前已经播放的帧数
  133. #define NET_DVR_GETTOTALFRAMES 16//获取当前播放文件总的帧数
  134. #define NET_DVR_GETTOTALTIME 17//获取当前播放文件总的时间
  135. #define NET_DVR_THROWBFRAME 20//丢B帧
  136. //NET_DVR_GetDVRConfig,NET_DVR_GetDVRConfig的命令定义
  137. #define NET_DVR_GET_DEVICECFG 100 //获取设备参数
  138. #define NET_DVR_SET_DEVICECFG 101 //设置设备参数
  139. #define NET_DVR_GET_NETCFG 102 //获取网络参数
  140. #define NET_DVR_SET_NETCFG 103 //设置网络参数
  141. #define NET_DVR_GET_PICCFG 104 //获取图象参数
  142. #define NET_DVR_SET_PICCFG 105 //设置图象参数
  143. #define NET_DVR_GET_COMPRESSCFG 106 //获取压缩参数
  144. #define NET_DVR_SET_COMPRESSCFG 107 //设置压缩参数
  145. #define NET_DVR_GET_COMPRESSCFG_EX 204 //获取压缩参数(扩展)
  146. #define NET_DVR_SET_COMPRESSCFG_EX 205 //设置压缩参数(扩展)
  147. #define NET_DVR_GET_RECORDCFG 108 //获取录像时间参数
  148. #define NET_DVR_SET_RECORDCFG 109 //设置录像时间参数
  149. #define NET_DVR_GET_DECODERCFG 110 //获取解码器参数
  150. #define NET_DVR_SET_DECODERCFG 111 //设置解码器参数
  151. #define NET_DVR_GET_RS232CFG 112 //获取232串口参数
  152. #define NET_DVR_SET_RS232CFG 113 //设置232串口参数
  153. #define NET_DVR_GET_ALARMINCFG 114 //获取报警输入参数
  154. #define NET_DVR_SET_ALARMINCFG 115 //设置报警输入参数
  155. #define NET_DVR_GET_ALARMOUTCFG 116 //获取报警输出参数
  156. #define NET_DVR_SET_ALARMOUTCFG 117 //设置报警输出参数
  157. #define NET_DVR_GET_TIMECFG 118 //获取DVR时间
  158. #define NET_DVR_SET_TIMECFG 119 //设置DVR时间
  159. #define NET_DVR_GET_PREVIEWCFG 120 //获取预览参数
  160. #define NET_DVR_SET_PREVIEWCFG 121 //设置预览参数
  161. #define NET_DVR_GET_VIDEOOUTCFG 122 //获取视频输出参数
  162. #define NET_DVR_SET_VIDEOOUTCFG 123 //设置视频输出参数
  163. #define NET_DVR_GET_USERCFG 124 //获取用户参数
  164. #define NET_DVR_SET_USERCFG 125 //设置用户参数
  165. #define NET_DVR_GET_EXCEPTIONCFG 126 //获取异常参数
  166. #define NET_DVR_SET_EXCEPTIONCFG 127 //设置异常参数
  167. #define NET_DVR_GET_SHOWSTRING 130 //获取叠加字符参数
  168. #define NET_DVR_SET_SHOWSTRING 131 //设置叠加字符参数
  169. #define NET_DVR_GET_EVENTCOMPCFG 132 //获取事件触发录像参数
  170. #define NET_DVR_SET_EVENTCOMPCFG 133 //设置事件触发录像参数
  171. #define NET_DVR_GET_AUXOUTCFG 140 //获取辅助输出设置
  172. #define NET_DVR_SET_AUXOUTCFG 141 //设置辅助输出设置
  173. //2006-04-13 -s系列双输出
  174. #define NET_DVR_GET_PREVIEWCFG_AUX 142 //获取预览参数
  175. #define NET_DVR_SET_PREVIEWCFG_AUX 143 //设置预览参数
  176. #define NET_DVR_GET_PICCFG_EX 200 //获取图象参数(扩展)
  177. #define NET_DVR_SET_PICCFG_EX 201 //设置图象参数(扩展)
  178. #define NET_DVR_GET_USERCFG_EX 202 //获取用户参数
  179. #define NET_DVR_SET_USERCFG_EX 203 //设置用户参数
  180. #define NET_DVR_GET_NETAPPCFG 222 //获取网络应用参数 NTP/DDNS
  181. #define NET_DVR_SET_NETAPPCFG 223 //设置网络应用参数 NTP/DDNS
  182. #define NET_DVR_GET_NFSCFG 230 /* NFS disk config */
  183. #define NET_DVR_SET_NFSCFG 231
  184. #define NET_DVR_GET_NETCFG_OTHER 244 //获取网络参数(多路解码器)
  185. #define NET_DVR_SET_NETCFG_OTHER 245 //设置网络参数(多路解码器)
  186. #define NET_DVR_GET_EMAILPARACFG 250 //Get EMAIL parameters
  187. #define NET_DVR_SET_EMAILPARACFG 251 //Setup EMAIL parameters
  188. //2008-03-15
  189. #define NET_DVR_GET_DDNSCFG_EX 274 //获取扩展DDNS参数
  190. #define NET_DVR_SET_DDNSCFG_EX 275 //设置扩展DDNS参数
  191. //回调函数类型
  192. #define COMM_ALARM 0x1100 //报警信息
  193. #define COMM_TRADEINFO 0x1500 //ATMDVR主动上传交易信息
  194. //消息方式
  195. //异常类型
  196. #define EXCEPTION_AUDIOEXCHANGE 0x8001 //语音对讲异常
  197. #define EXCEPTION_ALARM 0x8002 //报警异常
  198. #define EXCEPTION_PREVIEW 0x8003 //网络预览异常
  199. #define EXCEPTION_SERIAL 0x8004 //透明通道异常
  200. #define EXCEPTION_RECONNECT 0x8005 //预览时重连
  201. #define NAME_LEN 32
  202. #define SERIALNO_LEN 48
  203. #define MACADDR_LEN 6
  204. #define MAX_ETHERNET 2
  205. #define PATHNAME_LEN 128
  206. #define PASSWD_LEN 16
  207. #define MAX_CHANNUM 16
  208. #define MAX_ALARMOUT 4
  209. #define MAX_TIMESEGMENT 4
  210. #define MAX_PRESET 128
  211. #define MAX_DAYS 7
  212. #define PHONENUMBER_LEN 32
  213. #define MAX_DISKNUM 16
  214. #define MAX_WINDOW 16
  215. #define MAX_VGA 1
  216. #define MAX_USERNUM 16
  217. #define MAX_EXCEPTIONNUM 16
  218. #define MAX_LINK 6
  219. #define MAX_ALARMIN 16
  220. #define MAX_VIDEOOUT 2
  221. #define MAX_NAMELEN 16 //DVR本地登陆名
  222. #define MAX_RIGHT 32 //权限
  223. #define CARDNUM_LEN 20
  224. #define MAX_SHELTERNUM 4 //遮挡区域数
  225. #define MAX_DECPOOLNUM 4
  226. #define MAX_DECNUM 4
  227. #define MAX_TRANSPARENTNUM 2
  228. #define MAX_STRINGNUM 4
  229. #define MAX_AUXOUT 4
  230. #define MAX_NFS_DISK 8
  231. #define MAX_CYCLE_CHAN 16
  232. #define MAX_DOMAIN_NAME 64
  233. #define MAX_SERIAL_NUM 64
  234. /* 网络接口定义 */
  235. #define NET_IF_10M_HALF 1 /* 10M ethernet */
  236. #define NET_IF_10M_FULL 2
  237. #define NET_IF_100M_HALF 3 /* 100M ethernet */
  238. #define NET_IF_100M_FULL 4
  239. #define NET_IF_AUTO 5
  240. //设备型号(DVR类型)
  241. /* 设备类型 */
  242. #define DVR 1 /*对尚未定义的dvr类型返回NETRET_DVR*/
  243. #define ATMDVR 2 /*atm dvr*/
  244. #define DVS 3 /*DVS*/
  245. #define DEC 4 /* 6001D */
  246. #define ENC_DEC 5 /* 6001F */
  247. #define DVR_HC 6 /*8000HC*/
  248. #define DVR_HT 7 /*8000HT*/
  249. #define DVR_HF 8 /*8000HF*/
  250. #define DVR_HS 9 /* 8000HS DVR(no audio) */
  251. #define DVR_HTS 10 /* 8016HTS DVR(no audio) */
  252. #define DVR_HB 11 /* HB DVR(SATA HD) */
  253. #define DVR_HCS 12 /* 8000HCS DVR */
  254. #define DVS_A 13 /* 带ATA硬盘的DVS */
  255. #define DVR_HC_S 14 /* 8000HC-S */
  256. #define DVR_HT_S 15 /* 8000HT-S */
  257. #define DVR_HF_S 16 /* 8000HF-S */
  258. #define DVR_HS_S 17 /* 8000HS-S */
  259. #define ATMDVR_S 18 /* ATM-S */
  260. #define DVR_7000H 19 /*7000 DVR*/
  261. #define DEC_MAT 20 /*多路解码器*/
  262. #define DVR_MOBILE 21 /* mobile DVR */
  263. #define DVR_HD_S 22 /* 8000HD-S */
  264. #define DVR_HD_SL 23 /* 8000HD-SL */
  265. #define DVR_HC_SL 24 /* 8000HC-SL */
  266. #define DVR_HS_ST 25 /* 8000HS-ST */
  267. #define DVS_HW 26 /* 6000HW */
  268. #define IPCAM 30 /*IP 摄像机*/
  269. #define IPDOME 40 /*IP 快球*/
  270. #define IPMOD 50 /*IP 模块*/
  271. typedef struct {
  272. BYTE sSerialNumber[SERIALNO_LEN]; //序列号
  273. BYTE byAlarmInPortNum; //DVR报警输入个数
  274. BYTE byAlarmOutPortNum; //DVR报警输出个数
  275. BYTE byDiskNum; //DVR 硬盘个数
  276. BYTE byDVRType; //DVR类型,
  277. BYTE byChanNum; //DVR 通道个数
  278. BYTE byStartChan; //起始通道号,例如DVS-1,DVR - 1
  279. }NET_DVR_DEVICEINFO, *LPNET_DVR_DEVICEINFO;
  280. //预览参数
  281. typedef struct{
  282. long bToScreen;
  283. long bToVideoOut;
  284. long nLeft;
  285. long nTop;
  286. long nWidth;
  287. long nHeight;
  288. long nReserved;
  289. }NET_DVR_DISPLAY_PARA,*LPNET_DVR_DISPLAY_PARA;
  290. typedef struct{
  291. LONG lChannel;//通道号
  292. LONG lLinkMode;//最高位(31)为0表示主码流,为1表示子码流,0-30位表示码流连接方式: 0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-音视频分开(TCP)
  293. HWND hPlayWnd;//播放窗口的句柄,为NULL表示不播放图象
  294. char* sMultiCastIP;//多播组地址
  295. }NET_DVR_CLIENTINFO,*LPNET_DVR_CLIENTINFO;
  296. typedef struct{
  297. LONG lChannel;//通道号
  298. LONG lLinkMode; //最高位(31)为0表示主码流,为1表示子码流,0-30位表示码流连接方式: 0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-电话线,5-128k宽带,6-256k宽带,7-384k宽带,8-512k宽带;
  299. char* sMultiCastIP;
  300. NET_DVR_DISPLAY_PARA struDisplayPara;
  301. }NET_DVR_CARDINFO,*LPNET_DVR_CARDINFO;
  302. typedef struct{
  303. DWORD dwYear; //年
  304. DWORD dwMonth; //月
  305. DWORD dwDay; //日
  306. DWORD dwHour; //时
  307. DWORD dwMinute; //分
  308. DWORD dwSecond; //秒
  309. }NET_DVR_TIME,*LPNET_DVR_TIME;
  310. typedef struct{
  311. //开始时间
  312. BYTE byStartHour;
  313. BYTE byStartMin;
  314. //结束时间
  315. BYTE byStopHour;
  316. BYTE byStopMin;
  317. }NET_DVR_SCHEDTIME,*LPNET_DVR_SCHEDTIME;
  318. /*处理方式*/
  319. #define NOACTION 0x0 /*无响应*/
  320. #define WARNONMONITOR 0x1 /*监视器上警告*/
  321. #define WARNONAUDIOOUT 0x2 /*声音警告*/
  322. #define UPTOCENTER 0x4 /*上传中心*/
  323. #define TRIGGERALARMOUT 0x8 /*触发报警输出*/
  324. typedef struct
  325. {
  326. DWORD dwHandleType; /*处理方式,处理方式的"或"结果*/
  327. /*0x00: 无响应*/
  328. /*0x01: 监视器上警告*/
  329. /*0x02: 声音警告*/
  330. /*0x04: 上传中心*/
  331. /*0x08: 触发报警输出*/
  332. /*0x10: 触发抓图*/
  333. BYTE byRelAlarmOut[MAX_ALARMOUT]; //报警触发的输出通道,报警触发的输出,为1表示触发该输出
  334. }NET_DVR_HANDLEEXCEPTION;
  335. //DVR设备参数
  336. typedef struct{
  337. DWORD dwSize;
  338. BYTE sDVRName[NAME_LEN]; //DVR名称
  339. DWORD dwDVRID; //DVR ID,用于遥控器
  340. DWORD dwRecycleRecord; //是否循环录像,0:不是; 1:是
  341. //以下不能更改
  342. BYTE sSerialNumber[SERIALNO_LEN]; //序列号
  343. DWORD dwSoftwareVersion; //软件版本号,高16位是主版本,低16位是次版本
  344. DWORD dwSoftwareBuildDate; //软件生成日期,0xYYYYMMDD
  345. DWORD dwDSPSoftwareVersion; //DSP软件版本,高16位是主版本,低16位是次版本
  346. DWORD dwDSPSoftwareBuildDate; // DSP软件生成日期,0xYYYYMMDD
  347. DWORD dwPanelVersion; // 前面板版本,高16位是主版本,低16位是次版本
  348. DWORD dwHardwareVersion; // 硬件版本,高16位是主版本,低16位是次版本
  349. BYTE byAlarmInPortNum; //DVR报警输入个数
  350. BYTE byAlarmOutPortNum; //DVR报警输出个数
  351. BYTE byRS232Num; //DVR 232串口个数
  352. BYTE byRS485Num; //DVR 485串口个数
  353. BYTE byNetworkPortNum; //网络口个数
  354. BYTE byDiskCtrlNum; //DVR 硬盘控制器个数
  355. BYTE byDiskNum; //DVR 硬盘个数
  356. BYTE byDVRType; //DVR类型,
  357. BYTE byChanNum; //DVR 通道个数
  358. BYTE byStartChan; //起始通道号,例如DVS-1,DVR - 1
  359. BYTE byDecordChans; //DVR 解码路数
  360. BYTE byVGANum; //VGA口的个数
  361. BYTE byUSBNum; //USB口的个数
  362. char reservedData[3]; //保留
  363. }NET_DVR_DEVICECFG,*LPNET_DVR_DEVICECFG;
  364. typedef struct {
  365. char sDVRIP[16]; //DVR IP地址
  366. char sDVRIPMask[16]; // DVR IP地址掩码
  367. DWORD dwNetInterface; //网络接口 1-10MBase-T 2-10MBase-T全双工 3-100MBase-TX 4-100M全双工 5-10M/100M自适应
  368. WORD wDVRPort; //端口号
  369. BYTE byMACAddr[MACADDR_LEN]; //服务器的物理地址
  370. }NET_DVR_ETHERNET;
  371. //网络配置结构
  372. typedef struct{
  373. DWORD dwSize;
  374. NET_DVR_ETHERNET struEtherNet[MAX_ETHERNET]; /* 以太网口 */
  375. char sManageHostIP[16]; //远程管理主机地址
  376. WORD wManageHostPort; //远程管理主机端口号
  377. char sIPServerIP[16]; //DNS服务器地址
  378. char sMultiCastIP[16]; //多播组地址
  379. char sGatewayIP[16]; //网关地址
  380. char sNFSIP[16]; //NAS主机IP地址
  381. BYTE sNFSDirectory[PATHNAME_LEN];//NAS目录
  382. DWORD dwPPPOE; //0-不启用,1-启用
  383. BYTE sPPPoEUser[NAME_LEN]; //PPPoE用户名
  384. char sPPPoEPassword[PASSWD_LEN];// PPPoE密码
  385. char sPPPoEIP[16]; //PPPoE IP地址(只读)
  386. WORD wHttpPort; //HTTP端口号
  387. }NET_DVR_NETCFG,*LPNET_DVR_NETCFG;
  388. //通道图象结构
  389. //移动侦测
  390. typedef struct{
  391. BYTE byMotionScope[18][22]; /*侦测区域,共有22*18个小宏块,为1表示该宏块是移动侦测区域,0-表示不是*/
  392. BYTE byMotionSensitive; /*移动侦测灵敏度, 0 - 5,越高越灵敏,0xff关闭*/
  393. BYTE byEnableHandleMotion; /* 是否处理移动侦测 */
  394. char reservedData[2];
  395. NET_DVR_HANDLEEXCEPTION strMotionHandleType; /* 处理方式 */
  396. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  397. BYTE byRelRecordChan[MAX_CHANNUM]; //报警触发的录象通道,为1表示触发该通道
  398. }NET_DVR_MOTION,*LPNET_DVR_MOTION;
  399. //遮挡报警区域为704*576
  400. typedef struct{
  401. DWORD dwEnableHideAlarm; /* 是否启动遮挡报警 ,0-否,1-低灵敏度 2-中灵敏度 3-高灵敏度 */
  402. WORD wHideAlarmAreaTopLeftX; /* 遮挡区域的x坐标 */
  403. WORD wHideAlarmAreaTopLeftY; /* 遮挡区域的y坐标 */
  404. WORD wHideAlarmAreaWidth; /* 遮挡区域的宽 */
  405. WORD wHideAlarmAreaHeight; /*遮挡区域的高*/
  406. NET_DVR_HANDLEEXCEPTION strHideAlarmHandleType; /* 处理方式 */
  407. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  408. }NET_DVR_HIDEALARM,*LPNET_DVR_HIDEALARM;
  409. //信号丢失报警
  410. typedef struct{
  411. BYTE byEnableHandleVILost; /* 是否处理信号丢失报警 */
  412. NET_DVR_HANDLEEXCEPTION strVILostHandleType; /* 处理方式 */
  413. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  414. }NET_DVR_VILOST,*LPNET_DVR_VILOST;
  415. typedef struct
  416. {
  417. DWORD dwSize;
  418. BYTE sChanName[NAME_LEN];
  419. DWORD dwVideoFormat; /* 只读:视频制式 1-NTSC 2-PAL*/
  420. BYTE byBrightness; /*亮度,0-255*/
  421. BYTE byContrast; /*对比度,0-255*/
  422. BYTE bySaturation; /*饱和度,0-255 */
  423. BYTE byHue; /*色调,0-255*/
  424. //显示通道名
  425. DWORD dwShowChanName; /* 预览的图象上是否显示通道名称,0-不显示,1-显示 区域为704*576 */
  426. WORD wShowNameTopLeftX; /* 通道名称显示位置的x坐标 */
  427. WORD wShowNameTopLeftY; /* 通道名称显示位置的y坐标 */
  428. //信号丢失报警
  429. NET_DVR_VILOST struVILost;
  430. //移动侦测
  431. NET_DVR_MOTION struMotion;
  432. //遮挡报警
  433. NET_DVR_HIDEALARM struHideAlarm;
  434. //遮挡
  435. DWORD dwEnableHide; /* 是否启动遮挡 ,0-否,1-是 区域为704*576*/
  436. WORD wHideAreaTopLeftX; /* 遮挡区域的x坐标 */
  437. WORD wHideAreaTopLeftY; /* 遮挡区域的y坐标 */
  438. WORD wHideAreaWidth; /* 遮挡区域的宽 */
  439. WORD wHideAreaHeight; /*遮挡区域的高*/
  440. //OSD
  441. DWORD dwShowOsd; /* 预览的图象上是否显示OSD,0-不显示,1-显示*/
  442. WORD wOSDTopLeftX; /* OSD的x坐标 */
  443. WORD wOSDTopLeftY; /* OSD的y坐标 */
  444. BYTE byOSDType; /* OSD类型(主要是年月日格式) */
  445. /* 0: XXXX-XX-XX 年月日 */
  446. /* 1: XX-XX-XXXX 月日年 */
  447. /* 2: XXXX年XX月XX日 */
  448. /* 3: XX月XX日XXXX年 */
  449. BYTE byDispWeek; /* 是否显示星期 */
  450. BYTE byOSDAttrib; /* OSD属性:透明,闪烁 */
  451. /* 1: 透明,闪烁 */
  452. /* 2: 透明,不闪烁 */
  453. /* 3: 闪烁,不透明 */
  454. /* 4: 不透明,不闪烁 */
  455. }NET_DVR_PICCFG,*LPNET_DVR_PICCFG;
  456. typedef struct{
  457. WORD wHideAreaTopLeftX; /* 遮挡区域的x坐标 */
  458. WORD wHideAreaTopLeftY; /* 遮挡区域的y坐标 */
  459. WORD wHideAreaWidth; /* 遮挡区域的宽 */
  460. WORD wHideAreaHeight; /*遮挡区域的高*/
  461. }NET_DVR_SHELTER,*LPNET_DVR_SHELTER;
  462. //SDK_V14
  463. typedef struct
  464. {
  465. DWORD dwSize;
  466. BYTE sChanName[NAME_LEN];
  467. DWORD dwVideoFormat; /* 只读 视频制式 1-NTSC 2-PAL*/
  468. BYTE byBrightness; /*亮度,0-255*/
  469. BYTE byContrast; /*对比度,0-255*/
  470. BYTE bySaturation; /*饱和度,0-255 */
  471. BYTE byHue; /*色调,0-255*/
  472. //显示通道名
  473. DWORD dwShowChanName; // 预览的图象上是否显示通道名称,0-不显示,1-显示 区域大小704*576
  474. WORD wShowNameTopLeftX; /* 通道名称显示位置的x坐标 */
  475. WORD wShowNameTopLeftY; /* 通道名称显示位置的y坐标 */
  476. //信号丢失报警
  477. NET_DVR_VILOST struVILost;
  478. //移动侦测
  479. NET_DVR_MOTION struMotion;
  480. //遮挡报警
  481. NET_DVR_HIDEALARM struHideAlarm;
  482. //遮挡 区域大小704*576
  483. DWORD dwEnableHide; /* 是否启动遮挡 ,0-否,1-是*/
  484. NET_DVR_SHELTER struShelter[MAX_SHELTERNUM];
  485. //OSD
  486. DWORD dwShowOsd;// 预览的图象上是否显示OSD,0-不显示,1-显示 区域大小704*576
  487. WORD wOSDTopLeftX; /* OSD的x坐标 */
  488. WORD wOSDTopLeftY; /* OSD的y坐标 */
  489. BYTE byOSDType; /* OSD类型(主要是年月日格式) */
  490. /* 0: XXXX-XX-XX 年月日 */
  491. /* 1: XX-XX-XXXX 月日年 */
  492. /* 2: XXXX年XX月XX日 */
  493. /* 3: XX月XX日XXXX年 */
  494. BYTE byDispWeek; /* 是否显示星期 */
  495. BYTE byOSDAttrib; /* OSD属性:透明,闪烁 */
  496. /* 1: 透明,闪烁 */
  497. /* 2: 透明,不闪烁 */
  498. /* 3: 闪烁,不透明 */
  499. /* 4: 不透明,不闪烁 */
  500. }NET_DVR_PICCFG_EX,*LPNET_DVR_PICCFG_EX;
  501. //压缩参数
  502. typedef struct{
  503. BYTE byStreamType; //码流类型0-视频流,1-复合流 2008-03-31 作为事件触发参数结构时,这个字节的最高位用来作为是否启用事件触发参数的标志位
  504. //0-不启用,1-启用
  505. BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF
  506. BYTE byBitrateType; //码率类型0:变码率,1:定码率
  507. BYTE byPicQuality; //图象质量 0-最好 1-次好 2-较好 3-一般 4-较差 5-差
  508. DWORD dwVideoBitrate; //视频码率 0-保留 1-保留 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
  509. // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
  510. //最高位(31位)置成1表示是自定义码流, 0-30位表示码流值(MIN-16K MAX-8192K)。
  511. DWORD dwVideoFrameRate; //帧率 0-全部; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20;
  512. }NET_DVR_COMPRESSION_INFO,*LPNET_DVR_COMPRESSION_INFO;
  513. typedef struct{
  514. BYTE byStreamType; //码流类型0-视频流,1-复合流
  515. BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF
  516. BYTE byBitrateType; //码率类型0:变码率,1:定码率
  517. BYTE byPicQuality; //图象质量 0-最好 1-次好 2-较好 3-一般 4-较差 5-差
  518. DWORD dwVideoBitrate; //视频码率 0-保留 1-16K(保留) 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
  519. // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
  520. //最高位(31位)置成1表示是自定义码流, 0-30位表示码流值(MIN-32K MAX-8192K)。
  521. DWORD dwVideoFrameRate; //帧率 0-全部; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20;
  522. WORD wIntervalFrameI; //I帧间隔
  523. //2006-08-11 增加单P帧的配置接口,可以改善实时流延时问题
  524. BYTE byIntervalBPFrame;//0-BBP帧; 1-BP帧; 2-单P帧 BP帧设置暂不支持
  525. BYTE byRes;
  526. }NET_DVR_COMPRESSION_INFO_EX,*LPNET_DVR_COMPRESSION_INFO_EX;
  527. typedef struct{
  528. DWORD dwSize;
  529. NET_DVR_COMPRESSION_INFO struRecordPara; //录像/事件触发参数
  530. NET_DVR_COMPRESSION_INFO struNetPara; //网传/保留
  531. }NET_DVR_COMPRESSIONCFG,*LPNET_DVR_COMPRESSIONCFG;
  532. typedef struct{
  533. DWORD dwSize;
  534. NET_DVR_COMPRESSION_INFO_EX struRecordPara; //录像
  535. NET_DVR_COMPRESSION_INFO_EX struNetPara; //网传
  536. }NET_DVR_COMPRESSIONCFG_EX,*LPNET_DVR_COMPRESSIONCFG_EX;
  537. //录像
  538. typedef struct{
  539. NET_DVR_SCHEDTIME struRecordTime;
  540. BYTE byRecordType; //0:定时录像,1:移动侦测,2:报警录像,3:动测|报警,4:动测&报警, 5:命令触发, 6: 手动录像
  541. char reservedData[3];
  542. }NET_DVR_RECORDSCHED,*LPNET_DVR_RECORDSCHED;
  543. typedef struct {
  544. WORD wAllDayRecord; /* 是否全天录像 */
  545. BYTE byRecordType; /* 录象类型 0:定时录像,1:移动侦测,2:报警录像,3:动测|报警,4:动测&报警 5:命令触发, 6: 手动录像*/
  546. char reservedData;
  547. }NET_DVR_RECORDDAY;
  548. typedef struct {
  549. DWORD dwSize;
  550. DWORD dwRecord; /*是否录像 0-否 1-是*/
  551. NET_DVR_RECORDDAY struRecAllDay[MAX_DAYS];
  552. NET_DVR_RECORDSCHED struRecordSched[MAX_DAYS][MAX_TIMESEGMENT];
  553. DWORD dwRecordTime; /* 录象时间长度 */
  554. DWORD dwPreRecordTime; /* 预录时间 0-不预录 1-5秒 2-10秒 3-15秒 4-20秒 5-25秒 6-30秒 7-0xffffffff(尽可能预录) */
  555. }NET_DVR_RECORD,*LPNET_DVR_RECORD;
  556. /* PTZ type */
  557. #define YOULI 0
  558. #define LILIN_1016 1
  559. #define LILIN_820 2
  560. #define PELCO_P 3
  561. #define DM_QUICKBALL 4
  562. #define HD600 5
  563. #define JC4116 6
  564. #define PELCO_DWX 7
  565. #define PELCO_D 8
  566. #define VCOM_VC_2000 9
  567. #define NETSTREAMER 10
  568. #define SAE 11
  569. #define SAMSUNG 12
  570. #define KALATEL_KTD_312 13
  571. #define CELOTEX 14
  572. #define TLPELCO_P 15
  573. #define TL_HHX2000 16
  574. #define BBV 17
  575. #define RM110 18
  576. #define KC3360S 19
  577. #define ACES 20
  578. #define ALSON 21
  579. #define INV3609HD 22
  580. #define HOWELL 23
  581. #define TC_PELCO_P 24
  582. #define TC_PELCO_D 25
  583. #define AUTO_M 26
  584. #define AUTO_H 27
  585. #define ANTEN 28
  586. #define CHANGLIN 29
  587. #define DELTADOME 30
  588. #define XYM_12 31
  589. #define ADR8060 32
  590. #define EVI 33
  591. #define Demo_Speed 34
  592. #define DM_PELCO_D 35
  593. #define ST_832 36
  594. #define LC_D2104 37
  595. #define HUNTER 38
  596. #define A01 39
  597. #define TECHWIN 40
  598. #define WEIHAN 41
  599. #define LG 42
  600. #define D_MAX 43
  601. #define PANASONIC 44
  602. #define KTD_348 45
  603. #define INFINOVA 46
  604. #define PIH_7625 47
  605. #define IDOME_IVIEW_LCU 48
  606. #define Dennar_dDome 49
  607. #define Philips 50
  608. #define SAMPLE 51
  609. #define PLD 52
  610. #define PARCO 53
  611. #define HY 54
  612. #define NAIJIE 55
  613. #define CAT_KING 56
  614. #define YH_06 57
  615. #define SP9096X 58
  616. #define M_PANEL 59
  617. #define M_MV2050 60
  618. #define SAE_QUICKBALL 61
  619. #define RED_APPLE 62
  620. #define NKO8G 63
  621. #define DH_CC440 64
  622. #define TX_CONTROL_232 65
  623. #define VCL_SPEED_DOME 66
  624. #define ST_2C160 67
  625. #define TDWY 68
  626. #define TWHC 69
  627. #define USNT 70
  628. #define KLT_NVD2200PS 71
  629. #define VIDO_B01 72
  630. #define LG_MULTIX 73
  631. #define ENKEL 74
  632. #define YT_PELCOD 75
  633. #define HIKVISION 76
  634. #define PE60 77
  635. #define LiAo 78
  636. #define NK16 79
  637. #define DaLi 80
  638. #define HN_4304 81
  639. #define VIDEOTEC 82
  640. #define HNDCB 83
  641. #define Lion_2007 84
  642. #define LG_LVC_C372 85
  643. #define Gold_Video 86
  644. #define NVD1600PS 87
  645. #define TC615P 88
  646. #define NANWANG 89
  647. #define NANWANG_1602 90
  648. #define SIEMENS 91
  649. #define WVCS850 92
  650. #define PHLIPS_2 93
  651. #define PHLIPS_3 94
  652. #define AD 95
  653. #define TYCO_AD 96
  654. #define VICON 97
  655. #define TKC676 98
  656. #define YAAN_NEW 99
  657. #define DL_NVS_1Z 100
  658. #define I3_Z1200 101
  659. #define I3_Z2200 102
  660. //解码器
  661. typedef struct{
  662. DWORD dwSize;
  663. DWORD dwBaudRate;//波特率(bps),0-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,9-9600,10-19200, 11-38400,12-57600,13-76800,14-115.2k;
  664. BYTE byDataBit;// 数据有几位 0-5位,1-6位,2-7位,3-8位;
  665. BYTE byStopBit;// 停止位 0-1位,1-2位;
  666. BYTE byParity;// 校验 0-无校验,1-奇校验,2-偶校验;
  667. BYTE byFlowcontrol;// 0-无,1-软流控,2-硬流控
  668. WORD wDecoderType;//解码器类型, 0-YouLi,1-LiLin-1016,2-LiLin-820,3-Pelco-p,4-DM DynaColor,5-HD600,6-JC-4116,7-Pelco-d WX,8-Pelco-d PICO
  669. WORD wDecoderAddress; /*解码器地址:0 - 255*/
  670. BYTE bySetPreset[MAX_PRESET]; /* 预置点是否设置,0-没有设置,1-设置*/
  671. BYTE bySetCruise[MAX_PRESET]; /* 巡航是否设置: 0-没有设置,1-设置 */
  672. BYTE bySetTrack[MAX_PRESET]; /* 轨迹是否设置,0-没有设置,1-设置*/
  673. }NET_DVR_DECODERCFG,*LPNET_DVR_DECODERCFG;
  674. //RS232串口
  675. typedef struct{
  676. char sRemoteIP[16]; //远端IP地址
  677. char sLocalIP[16]; //本地IP地址
  678. char sLocalIPMask[16]; //本地IP地址掩码
  679. BYTE sUsername[NAME_LEN]; /* 用户名 */
  680. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  681. BYTE byPPPMode; //PPP模式, 0-主动,1-被动
  682. BYTE byRedial; //是否回拨 :0-否,1-是
  683. BYTE byRedialMode; //回拨模式,0-由拨入者指定,1-预置回拨号码
  684. BYTE byDataEncrypt; //数据加密,0-否,1-是
  685. DWORD dwMTU; //MTU
  686. char sTelephoneNumber[PHONENUMBER_LEN]; //电话号码
  687. }NET_DVR_PPPCFG,*LPNET_DVR_PPPCFG;
  688. typedef struct{
  689. DWORD dwSize;
  690. DWORD dwBaudRate;//波特率(bps),0-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,9-9600,10-19200, 11-38400,12-57600,13-76800,14-115.2k;
  691. BYTE byDataBit;// 数据有几位 0-5位,1-6位,2-7位,3-8位;
  692. BYTE byStopBit;// 停止位 0-1位,1-2位;
  693. BYTE byParity;// 校验 0-无校验,1-奇校验,2-偶校验;
  694. BYTE byFlowcontrol;// 0-无,1-软流控,2-硬流控
  695. DWORD dwWorkMode;// 工作模式,0-窄带传输(232串口用于PPP拨号),1-控制台(232串口用于参数控制),2-透明通道
  696. NET_DVR_PPPCFG struPPPConfig;
  697. }NET_DVR_RS232CFG,*LPNET_DVR_RS232CFG;
  698. //报警输入
  699. typedef struct{
  700. DWORD dwSize;
  701. BYTE sAlarmInName[NAME_LEN]; /* 名称 */
  702. BYTE byAlarmType; //报警器类型,0:常开,1:常闭
  703. BYTE byAlarmInHandle; /* 是否处理 */
  704. NET_DVR_HANDLEEXCEPTION struAlarmHandleType; /* 处理方式 */
  705. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  706. BYTE byRelRecordChan[MAX_CHANNUM]; //报警触发的录象通道,为1表示触发该通道
  707. BYTE byEnablePreset[MAX_CHANNUM]; /* 是否调用预置点 */
  708. BYTE byPresetNo[MAX_CHANNUM]; /* 调用的云台预置点序号,一个报警输入可以调用多个通道的云台预置点, 0xff表示不调用预置点。*/
  709. BYTE byEnableCruise[MAX_CHANNUM]; /* 是否调用巡航 */
  710. BYTE byCruiseNo[MAX_CHANNUM]; /* 巡航 */
  711. BYTE byEnablePtzTrack[MAX_CHANNUM]; /* 是否调用轨迹 */
  712. BYTE byPTZTrack[MAX_CHANNUM]; /* 调用的云台的轨迹序号 */
  713. }NET_DVR_ALARMINCFG,*LPNET_DVR_ALARMINCFG;
  714. //上传报警信息
  715. typedef struct{
  716. DWORD dwAlarmType;/*0-信号量报警,1-硬盘满,2-信号丢失,3-移动侦测,4-硬盘未格式化,5-读写硬盘出错,6-遮挡报警,7-制式不匹配, 8-非法访问*/
  717. DWORD dwAlarmInputNumber;/*报警输入端口*/
  718. DWORD dwAlarmOutputNumber[MAX_ALARMOUT];/*报警输入端口对应的输出端口,哪一位为1表示对应哪一个输出*/
  719. DWORD dwAlarmRelateChannel[MAX_CHANNUM];/*报警输入端口对应的录像通道,哪一位为1表示对应哪一路录像,dwAlarmRelateChannel[0]对应第1个通道*/
  720. DWORD dwChannel[MAX_CHANNUM];/*dwAlarmType为2或3时,表示哪个通道,dwChannel[0]位对应第0个通道*/
  721. DWORD dwDiskNumber[MAX_DISKNUM];/*dwAlarmType为4时,表示哪个硬盘*/
  722. }NET_DVR_ALARMINFO,*LPNET_DVR_ALARMINFO;
  723. //DVR报警输出
  724. typedef struct{
  725. DWORD dwSize;
  726. BYTE sAlarmOutName[NAME_LEN]; /* 名称 */
  727. DWORD dwAlarmOutDelay; /* 输出保持时间(-1为无限,手动关闭) */
  728. NET_DVR_SCHEDTIME struAlarmOutTime[MAX_DAYS][MAX_TIMESEGMENT];/* 报警输出激活时间段 */
  729. }NET_DVR_ALARMOUTCFG,*LPNET_DVR_ALARMOUTCFG;
  730. //DVR本地预览参数
  731. typedef struct{
  732. DWORD dwSize;
  733. BYTE byPreviewNumber;//预览数目,0-1画面,1-4画面,2-9画面,3-16画面,0xff:最大画面
  734. BYTE byEnableAudio;//是否声音预览,0-不预览,1-预览
  735. WORD wSwitchTime;//切换时间,0-不切换,1-5s,2-10s,3-20s,4-60s,5-120s,6-300s
  736. BYTE bySwitchSeq[MAX_WINDOW];//切换顺序,如果lSwitchSeq[i]为 0xff表示不用
  737. }NET_DVR_PREVIEWCFG,*LPNET_DVR_PREVIEWCFG;
  738. //DVR视频输出
  739. typedef struct {
  740. WORD wResolution; /* 分辨率 */
  741. WORD wFreq; /* 刷新频率 */
  742. DWORD dwBrightness; /* 亮度 */
  743. }NET_DVR_VGAPARA;
  744. typedef struct{
  745. WORD wDisplayLogo; /* 显示视频通道号 */
  746. WORD wDisplayOsd; /* 显示时间 */
  747. }NET_DVR_MATRIXPARA;
  748. typedef struct{
  749. BYTE byVideoFormat; /* 输出制式,0-PAL,1-N */
  750. BYTE byMenuAlphaValue; /* 菜单与背景图象对比度 */
  751. WORD wScreenSaveTime; /* 屏幕保护时间 */
  752. WORD wVOffset; /* 视频输出偏移 */
  753. WORD wBrightness; /* 视频输出亮度 */
  754. BYTE byStartMode; /* 启动后视频输出模式(0:菜单,1:预览)*/
  755. char reservedData;
  756. }NET_DVR_VOOUT;
  757. typedef struct {
  758. DWORD dwSize;
  759. NET_DVR_VOOUT struVOOut[MAX_VIDEOOUT];
  760. NET_DVR_VGAPARA struVGAPara[MAX_VGA]; /* VGA参数 */
  761. NET_DVR_MATRIXPARA struMatrixPara; /* MATRIX参数 */
  762. }NET_DVR_VIDEOOUT,*LPNET_DVR_VIDEOOUT;
  763. //DVR用户参数
  764. typedef struct{
  765. BYTE sUserName[NAME_LEN]; /* 用户名 */
  766. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  767. DWORD dwLocalRight[MAX_RIGHT]; /* 权限 */
  768. /*数组0: 本地控制云台*/
  769. /*数组1: 本地手动录象*/
  770. /*数组2: 本地回放*/
  771. /*数组3: 本地设置参数*/
  772. /*数组4: 本地查看状态、日志*/
  773. /*数组5: 本地高级操作(升级,格式化,重启,关机)*/
  774. DWORD dwRemoteRight[MAX_RIGHT]; /* 权限 */
  775. /*数组0: 远程控制云台*/
  776. /*数组1: 远程手动录象*/
  777. /*数组2: 远程回放*/
  778. /*数组3: 远程设置参数*/
  779. /*数组4: 远程查看状态、日志*/
  780. /*数组5: 远程高级操作(升级,格式化,重启,关机)*/
  781. /*数组6: 远程发起语音对讲*/
  782. /*数组7: 远程预览*/
  783. /*数组8: 远程请求报警上传、报警输出*/
  784. /*数组9: 远程控制,本地输出*/
  785. /*数组10: 远程控制串口*/
  786. char sUserIP[16]; /* 用户IP地址(为0时表示允许任何地址) */
  787. BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
  788. }NET_DVR_USER_INFO,*LPNET_DVR_USER_INFO;
  789. typedef struct{
  790. DWORD dwSize;
  791. NET_DVR_USER_INFO struUser[MAX_USERNUM];
  792. }NET_DVR_USER,*LPNET_DVR_USER;
  793. //DVR用户参数扩展
  794. typedef struct{
  795. BYTE sUserName[NAME_LEN]; /* 用户名 */
  796. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  797. DWORD dwLocalRight[MAX_RIGHT]; /* 权限 */
  798. /*数组0: 本地控制云台*/
  799. /*数组1: 本地手动录象*/
  800. /*数组2: 本地回放*/
  801. /*数组3: 本地设置参数*/
  802. /*数组4: 本地查看状态、日志*/
  803. /*数组5: 本地高级操作(升级,格式化,重启,关机)*/
  804. DWORD dwLocalPlaybackRight; /* 本地可以回放的通道 bit0 -- channel 1*/
  805. DWORD dwRemoteRight[MAX_RIGHT]; /* 权限 */
  806. /*数组0: 远程控制云台*/
  807. /*数组1: 远程手动录象*/
  808. /*数组2: 远程回放 */
  809. /*数组3: 远程设置参数*/
  810. /*数组4: 远程查看状态、日志*/
  811. /*数组5: 远程高级操作(升级,格式化,重启,关机)*/
  812. /*数组6: 远程发起语音对讲*/
  813. /*数组7: 远程预览*/
  814. /*数组8: 远程请求报警上传、报警输出*/
  815. /*数组9: 远程控制,本地输出*/
  816. /*数组10: 远程控制串口*/
  817. DWORD dwNetPreviewRight; /* 远程可以预览的通道 bit0 -- channel 1*/
  818. DWORD dwNetPlaybackRight; /* 远程可以回放的通道 bit0 -- channel 1*/
  819. char sUserIP[16]; /* 用户IP地址(为0时表示允许任何地址) */
  820. BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
  821. }NET_DVR_USER_INFO_EX,*LPNET_DVR_USER_INFO_EX;
  822. typedef struct{
  823. DWORD dwSize;
  824. NET_DVR_USER_INFO_EX struUser[MAX_USERNUM];
  825. }NET_DVR_USER_EX,*LPNET_DVR_USER_EX;
  826. //DVR异常参数
  827. typedef struct{
  828. DWORD dwSize;
  829. NET_DVR_HANDLEEXCEPTION struExceptionHandleType[MAX_EXCEPTIONNUM];
  830. /*数组0-盘满,1- 硬盘出错,2-网线断,3-局域网内IP 地址冲突,4-非法访问, 5-输入/输出视频制式不匹配*/
  831. }NET_DVR_EXCEPTION,*LPNET_DVR_EXCEPTION;
  832. typedef struct
  833. {
  834. char sFileName[100];//文件名
  835. NET_DVR_TIME struStartTime;//文件的开始时间
  836. NET_DVR_TIME struStopTime;//文件的结束时间
  837. DWORD dwFileSize;//文件的大小
  838. }NET_DVR_FIND_DATA,*LPNET_DVR_FIND_DATA;
  839. typedef struct tagFINDDATA_CARD
  840. {
  841. char sFileName[100];//文件名
  842. NET_DVR_TIME struStartTime;//文件的开始时间
  843. NET_DVR_TIME struStopTime;//文件的结束时间
  844. DWORD dwFileSize;//文件的大小
  845. char sCardNum[32];
  846. }NET_DVR_FINDDATA_CARD,*LPNET_DVR_FINDDATA_CARD;
  847. typedef struct {
  848. BYTE byRecordStatic; //通道是否在录像,0-不录像,1-录像
  849. BYTE bySignalStatic; //连接的信号状态,0-正常,1-信号丢失
  850. BYTE byHardwareStatic;//通道硬件状态,0-正常,1-异常,例如DSP死掉
  851. char reservedData;
  852. DWORD dwBitRate;//实际码率
  853. DWORD dwLinkNum;//客户端连接的个数
  854. DWORD dwClientIP[MAX_LINK];//客户端的IP地址
  855. }NET_DVR_CHANNELSTATE,*LPNET_DVR_CHANNELSTATE;
  856. typedef struct {
  857. DWORD dwVolume;//硬盘的容量
  858. DWORD dwFreeSpace;//硬盘的剩余空间
  859. DWORD dwHardDiskStatic; //硬盘的状态,休眠,活动,不正常等,1-休眠,2-不正常,3-休眠硬盘出错
  860. }NET_DVR_DISKSTATE,*LPNET_DVR_DISKSTATE;
  861. typedef struct{
  862. DWORD dwDeviceStatic; //设备的状态,0-正常,1-CPU占用率太高,超过85%,2-硬件错误,例如串口死掉
  863. NET_DVR_DISKSTATE struHardDiskStatic[MAX_DISKNUM];
  864. NET_DVR_CHANNELSTATE struChanStatic[MAX_CHANNUM];//通道的状态
  865. BYTE byAlarmInStatic[MAX_ALARMIN]; //报警端口的状态,0-没有报警,1-有报警
  866. BYTE byAlarmOutStatic[MAX_ALARMOUT]; //报警输出端口的状态,0-没有输出,1-有报警输出
  867. DWORD dwLocalDisplay;//本地显示状态,0-正常,1-不正常
  868. }NET_DVR_WORKSTATE,*LPNET_DVR_WORKSTATE;
  869. //DVR日志
  870. /* 报警 */
  871. //主类型
  872. #define MAJOR_ALARM 0x1
  873. //次类型
  874. #define MINOR_ALARM_IN 0x1 /* 报警输入 */
  875. #define MINOR_ALARM_OUT 0x2 /* 报警输出 */
  876. #define MINOR_MOTDET_START 0x3 /* 移动侦测报警开始 */
  877. #define MINOR_MOTDET_STOP 0x4 /* 移动侦测报警结束 */
  878. #define MINOR_HIDE_ALARM_START 0x5 /* 遮挡报警开始 */
  879. #define MINOR_HIDE_ALARM_STOP 0x6 /* 遮挡报警结束 */
  880. /* 异常 */
  881. //主类型
  882. #define MAJOR_EXCEPTION 0x2
  883. //次类型
  884. #define MINOR_VI_LOST 0x21 /* 信号丢失 */
  885. #define MINOR_ILLEGAL_ACCESS 0x22 /* 非法访问 */
  886. #define MINOR_HD_FULL 0x23 /* 硬盘满 */
  887. #define MINOR_HD_ERROR 0x24 /* 硬盘错误 */
  888. #define MINOR_DCD_LOST 0x25 /* MODEM 掉线 */
  889. #define MINOR_IP_CONFLICT 0x26 /* IP地址冲突 */
  890. #define MINOR_NET_BROKEN 0x27 /* 网线断 */
  891. /* 操作 */
  892. //主类型
  893. #define MAJOR_OPERATION 0x3
  894. //次类型
  895. #define MINOR_START_DVR 0x41 /* 开机 */
  896. #define MINOR_STOP_DVR 0x42 /* 关机 */
  897. #define MINOR_STOP_ABNORMAL 0x43 /* 非法关机 */
  898. #define MINOR_LOCAL_LOGIN 0x50 /* 本地登陆 */
  899. #define MINOR_LOCAL_LOGOUT 0x51 /* 本地注销登陆 */
  900. #define MINOR_LOCAL_CFG_PARM 0x52 /* 本地配置参数 */
  901. #define MINOR_LOCAL_PLAYBYFILE 0x53 /* 本地按文件回放 */
  902. #define MINOR_LOCAL_PLAYBYTIME 0x54 /* 本地按时间回放 */
  903. #define MINOR_LOCAL_START_REC 0x55 /* 本地开始录像 */
  904. #define MINOR_LOCAL_STOP_REC 0x56 /* 本地停止录像 */
  905. #define MINOR_LOCAL_PTZCTRL 0x57 /* 本地云台控制 */
  906. #define MINOR_LOCAL_PREVIEW 0x58 /* 本地预览 */
  907. #define MINOR_LOCAL_MODIFY_TIME 0x59 /* 本地修改时间 */
  908. #define MINOR_LOCAL_UPGRADE 0x5a /* 本地升级 */
  909. #define MINOR_LOCAL_COPYFILE 0x5b /* 本地备份文件 */
  910. #define MINOR_REMOTE_LOGIN 0x70 /* 远程登录 */
  911. #define MINOR_REMOTE_LOGOUT 0x71 /* 远程注销登陆 */
  912. #define MINOR_REMOTE_START_REC 0x72 /* 远程开始录像 */
  913. #define MINOR_REMOTE_STOP_REC 0x73 /* 远程停止录像 */
  914. #define MINOR_START_TRANS_CHAN 0x74 /* 开始透明传输 */
  915. #define MINOR_STOP_TRANS_CHAN 0x75 /* 停止透明传输 */
  916. #define MINOR_REMOTE_GET_PARM 0x76 /* 远程获得参数 */
  917. #define MINOR_REMOTE_CFG_PARM 0x77 /* 远程配置参数 */
  918. #define MINOR_REMOTE_GET_STATUS 0x78 /* 远程获得状态 */
  919. #define MINOR_REMOTE_ARM 0x79 /* 远程布防 */
  920. #define MINOR_REMOTE_DISARM 0x7a /* 远程撤防 */
  921. #define MINOR_REMOTE_REBOOT 0x7b /* 远程重启 */
  922. #define MINOR_START_VT 0x7c /* 开始语音对讲 */
  923. #define MINOR_STOP_VT 0x7d /* 停止语音对讲 */
  924. #define MINOR_REMOTE_UPGRADE 0x7e /* 远程升级 */
  925. #define MINOR_REMOTE_PLAYBYFILE 0x7f /* 远程按文件回放 */
  926. #define MINOR_REMOTE_PLAYBYTIME 0x80 /* 远程按时间回放 */
  927. #define MINOR_REMOTE_PTZCTRL 0x81 /* 远程云台控制 */
  928. //当日志的主类型为MAJOR_OPERATION=03,次类型为MINOR_LOCAL_CFG_PARM=0x52或者MINOR_REMOTE_GET_PARM=0x76或者MINOR_REMOTE_CFG_PARM=0x77时,dwParaType:参数类型有效,其含义如下:
  929. #define PARA_VIDEOOUT 0x1
  930. #define PARA_IMAGE 0x2
  931. #define PARA_ENCODE 0x4
  932. #define PARA_NETWORK 0x8
  933. #define PARA_ALARM 0x10
  934. #define PARA_EXCEPTION 0x20
  935. #define PARA_DECODER 0x40 /*解码器*/
  936. #define PARA_RS232 0x80
  937. #define PARA_PREVIEW 0x100
  938. #define PARA_SECURITY 0x200
  939. #define PARA_DATETIME 0x400
  940. #define PARA_FRAMETYPE 0x800 /*帧格式*/
  941. typedef struct {
  942. NET_DVR_TIME strLogTime;
  943. DWORD dwMajorType; //主类型 1-报警; 2-异常; 3-操作; 0xff-全部
  944. DWORD dwMinorType;//次类型 0xff-全部;
  945. BYTE sPanelUser[MAX_NAMELEN]; //操作面板的用户名
  946. BYTE sNetUser[MAX_NAMELEN];//网络操作的用户名
  947. char sRemoteHostAddr[16];//远程主机地址
  948. DWORD dwParaType;//参数类型
  949. DWORD dwChannel;//通道号
  950. DWORD dwDiskNumber;//硬盘号
  951. DWORD dwAlarmInPort;//报警输入端口
  952. DWORD dwAlarmOutPort;//报警输出端口
  953. }NET_DVR_LOG,*LPNET_DVR_LOG;
  954. typedef struct {
  955. char sRedirectorIP[16]; // 转发服务器IP地址
  956. WORD wRedirectorPort; //端口号
  957. }NET_DVR_REDIRECTORINFO, *LPNET_DVR_REDIRECTORINFO;
  958. typedef struct{
  959. BYTE Output[MAX_ALARMOUT];
  960. }NET_DVR_ALARMOUTSTATUS, *LPNET_DVR_ALARMOUTSTATUS;
  961. typedef struct{
  962. USHORT m_Year;
  963. USHORT m_Month;
  964. USHORT m_Day;
  965. USHORT m_Hour;
  966. USHORT m_Minute;
  967. USHORT m_Second;
  968. BYTE DeviceName[24]; //设备名称
  969. DWORD dwChannelNumer; //通道号
  970. BYTE CardNumber[32]; //卡号
  971. char cTradeType[12]; //交易类型
  972. DWORD dwCash; //交易金额
  973. }NET_DVR_TRADEINFO, *LPNET_DVR_TRADEINFO;
  974. //以下为ATM专用
  975. /*帧格式*/
  976. typedef struct{
  977. BYTE code[12]; /* 代码 */
  978. }NET_DVR_FRAMETYPECODE;
  979. typedef struct{
  980. DWORD dwSize;
  981. char sATMIP[16]; /* ATM IP地址 */
  982. DWORD dwATMType; /* ATM类型 */
  983. DWORD dwInputMode; /* 输入方式 */
  984. DWORD dwFrameSignBeginPos; /* 报文标志位的起始位置*/
  985. DWORD dwFrameSignLength; /* 报文标志位的长度 */
  986. BYTE byFrameSignContent[12]; /* 报文标志位的内容 */
  987. DWORD dwCardLengthInfoBeginPos; /* 卡号长度信息的起始位置 */
  988. DWORD dwCardLengthInfoLength; /* 卡号长度信息的长度 */
  989. DWORD dwCardNumberInfoBeginPos; /* 卡号信息的起始位置 */
  990. DWORD dwCardNumberInfoLength; /* 卡号信息的长度 */
  991. DWORD dwBusinessTypeBeginPos; /* 交易类型的起始位置 */
  992. DWORD dwBusinessTypeLength; /* 交易类型的长度 */
  993. NET_DVR_FRAMETYPECODE frameTypeCode[10];/* 类型 */
  994. }NET_DVR_FRAMEFORMAT, *LPNET_DVR_FRAMEFORMAT;
  995. //DS-6001D/F
  996. /*解码设备控制码定义*/
  997. #define NET_DEC_STARTDEC 1
  998. #define NET_DEC_STOPDEC 2
  999. #define NET_DEC_STOPCYCLE 3
  1000. #define NET_DEC_CONTINUECYCLE 4
  1001. /*连接的通道配置*/
  1002. typedef struct {
  1003. char sDVRIP[16]; /* DVR IP地址 */
  1004. WORD wDVRPort; /* 端口号 */
  1005. BYTE sUserName[NAME_LEN]; /* 用户名 */
  1006. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1007. BYTE byChannel; /* 通道号 */
  1008. BYTE byLinkMode; /* 连接模式 */
  1009. BYTE byLinkType; /* 连接类型 0-主码流 1-子码流 */
  1010. }NET_DVR_DECCHANINFO, *LPNET_DVR_DECCHANINFO;
  1011. /*每个解码通道的配置*/
  1012. typedef struct {
  1013. BYTE byPoolChans; /*每路解码通道上的循环通道数量, 最多4通道*/
  1014. NET_DVR_DECCHANINFO struchanConInfo[MAX_DECPOOLNUM];
  1015. BYTE byEnablePoll; /*是否轮巡 0-否 1-是*/
  1016. BYTE byPoolTime; /*轮巡时间 0-保留 1-10秒 2-15秒 3-20秒 4-30秒 5-45秒 6-1分钟 7-2分钟 8-5分钟 */
  1017. }NET_DVR_DECINFO, *LPNET_DVR_DECINFO;
  1018. /*整个设备解码配置*/
  1019. typedef struct {
  1020. DWORD dwSize;
  1021. DWORD dwDecChanNum; /*解码通道的数量*/
  1022. NET_DVR_DECINFO struDecInfo[MAX_DECNUM];
  1023. }NET_DVR_DECCFG, *LPNET_DVR_DECCFG;
  1024. //2005-08-01
  1025. /* 解码设备透明通道设置 */
  1026. typedef struct {
  1027. DWORD dwEnableTransPort; /* 是否启动透明通道 0-不启用 1-启用*/
  1028. char sDecoderIP[16]; /* DVR IP地址 */
  1029. WORD wDecoderPort; /* 端口号 */
  1030. WORD wDVRTransPort; /* 配置前端DVR是从232/485输出,1表示232串口,2表示485串口 */
  1031. char cReserve[4];
  1032. }NET_DVR_PORTINFO, *LPNET_DVR_PORTINFO;
  1033. typedef struct {
  1034. DWORD dwSize;
  1035. NET_DVR_PORTINFO struTransPortInfo[MAX_TRANSPARENTNUM]; /* 数组0表示232 数组1表示485 */
  1036. }NET_DVR_PORTCFG, *LPNET_DVR_PORTCFG;
  1037. /* 控制网络文件回放 */
  1038. typedef struct {
  1039. DWORD dwSize;
  1040. char sDecoderIP[16]; /* DVR IP地址 */
  1041. WORD wDecoderPort; /* 端口号 */
  1042. WORD wLoadMode; /* 回放下载模式 1-按名字 2-按时间 */
  1043. union
  1044. {
  1045. BYTE byFile[100]; /* 回放的文件名 */
  1046. struct
  1047. {
  1048. DWORD dwChannel;
  1049. BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
  1050. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1051. NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
  1052. NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
  1053. }bytime;
  1054. }mode_size;
  1055. }NET_DVR_PLAYREMOTEFILE,*LPNET_DVR_PLAYREMOTEFILE;
  1056. /*当前设备解码连接状态*/
  1057. typedef struct {
  1058. DWORD dwWorkType; /*工作方式:1:轮巡、2:动态连接解码、3:按文件回放 4:按时间回放*/
  1059. char sDVRIP[16]; /*连接的设备ip*/
  1060. WORD wDVRPort; /*连接端口号*/
  1061. BYTE byChannel; /* 通道号 */
  1062. BYTE byLinkMode; /* 连接模式 */
  1063. DWORD dwLinkType; /*连接类型 0-主码流 1-子码流*/
  1064. union
  1065. {
  1066. struct
  1067. {
  1068. BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
  1069. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1070. char cReserve[52];
  1071. }userInfo;
  1072. struct
  1073. {
  1074. BYTE fileName[100];
  1075. }fileInfo;
  1076. struct
  1077. {
  1078. DWORD dwChannel;
  1079. BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
  1080. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1081. NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
  1082. NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
  1083. }timeInfo;
  1084. }objectInfo;
  1085. }NET_DVR_DECCHANSTATUS, *LPNET_DVR_DECCHANSTATUS;
  1086. typedef struct {
  1087. DWORD dwSize;
  1088. NET_DVR_DECCHANSTATUS struDecState[MAX_DECNUM];
  1089. }NET_DVR_DECSTATUS, *LPNET_DVR_DECSTATUS;
  1090. //叠加字符
  1091. typedef struct
  1092. {
  1093. WORD wShowString; // 预览的图象上是否显示字符,0-不显示,1-显示 区域大小704*576,单个字符的大小为32*32
  1094. WORD wStringSize; /* 该行字符的长度,不能大于44个字符 */
  1095. WORD wShowStringTopLeftX; /* 字符显示位置的x坐标 */
  1096. WORD wShowStringTopLeftY; /* 字符名称显示位置的y坐标 */
  1097. char sString[44]; /* 要显示的字符内容 */
  1098. }NET_DVR_SHOWSTRINGINFO, *LPNET_DVR_SHOWSTRINGINFO;
  1099. //叠加字符
  1100. typedef struct
  1101. {
  1102. DWORD dwSize;
  1103. NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM]; /* 要显示的字符内容 */
  1104. }NET_DVR_SHOWSTRING, *LPNET_DVR_SHOWSTRING;
  1105. /* ftp 上传参数*/
  1106. typedef struct
  1107. {
  1108. DWORD dwSize;
  1109. DWORD dwEnableFTP; /*是否启动ftp上传功能*/
  1110. char sFTPIP[16]; /*ftp 服务器*/
  1111. DWORD dwFTPPort; /*ftp端口*/
  1112. BYTE sUserName[NAME_LEN]; /*用户名*/
  1113. BYTE sPassword[PASSWD_LEN]; /*密码*/
  1114. //BYTE reservedData[32];
  1115. DWORD dwDirLevel; /*0 = 不使用目录结构,直接保存在根目录,1 = 使用1级目录,2=使用2级目录*/
  1116. WORD wTopDirMode; /* 0x1 = 使用设备名,0x2 = 使用设备号,0x3 = 使用设备ip地址*/
  1117. WORD wSubDirMode; /* 0x4 = 使用通道名,0x5 = 使用通道号*/
  1118. BYTE reservedData[24];
  1119. }NET_DVR_FTPCFG, *LPNET_DVR_FTPCFG;
  1120. /*可用来命名图片的相关元素 */
  1121. #define PICNAME_ITEM_DEV_NAME 1
  1122. #define PICNAME_ITEM_DEV_NO 2
  1123. #define PICNAME_ITEM_DEV_IP 3
  1124. #define PICNAME_ITEM_CHAN_NAME 4
  1125. #define PICNAME_ITEM_CHAN_NO 5
  1126. #define PICNAME_ITEM_TIME 6
  1127. #define PICNAME_ITEM_CARDNO 7
  1128. #define PICNAME_MAXITEM 15
  1129. typedef struct
  1130. {
  1131. BYTE byItemOrder[PICNAME_MAXITEM]; /* 桉数组定义文件命名的规则 */
  1132. BYTE byDelimiter; /*分隔符,一般为'_'*/
  1133. }NET_DVR_PICTURE_NAME, *LPNET_DVR_PICTURE_NAME;
  1134. //图片质量
  1135. typedef struct
  1136. {
  1137. WORD wPicSize; /* 0=CIF, 1=QCIF, 2=D1 */
  1138. WORD wPicQuality; /* 图片质量系数 0-最好 1-较好 2-一般 */
  1139. }NET_DVR_JPEGPARA, *LPNET_DVR_JPEGPARA;
  1140. /* 串口抓图设置*/
  1141. typedef struct
  1142. {
  1143. BYTE byStrFlag; /*串口数据开始符*/
  1144. BYTE byEndFlag; /*结束符*/
  1145. WORD wCardIdx; /*卡号相对起始位*/
  1146. DWORD dwCardLen; /*卡号长度*/
  1147. DWORD dwTriggerPicChans; /*所触发的通道号,按位,从第1位开始计,即0x2表示第一通道*/
  1148. }NET_DVR_SERIAL_CATCHPIC_PARA, *LPNET_DVR_SERIAL_CATCHPIC_PARA;
  1149. typedef struct
  1150. {
  1151. DWORD dwSize;
  1152. NET_DVR_JPEGPARA struJpegPara[MAX_CHANNUM]; /*每个通道的图像参数*/
  1153. WORD wBurstMode; /*抓图方式,按位设置.0x1=报警输入触发,0x2=移动侦测触发 0x4=232触发,0x8=485触发,0x10=网络触发*/
  1154. WORD wUploadInterval; /*图片上传间隔(秒)[0,65535]*/
  1155. NET_DVR_PICTURE_NAME struPicNameRule; /* 图片命名规则 */
  1156. BYTE bySaveToHD; /*是否保存到硬盘*/
  1157. BYTE res1;
  1158. WORD wCatchInterval; /*抓图间隔(毫秒)[0,65535]*/
  1159. BYTE res2[12];
  1160. NET_DVR_SERIAL_CATCHPIC_PARA struRs232Cfg;
  1161. NET_DVR_SERIAL_CATCHPIC_PARA struRs485Cfg;
  1162. DWORD dwTriggerPicTimes[MAX_CHANNUM]; /* 每个通道一次触发拍照次数 */
  1163. DWORD dwAlarmInPicChanTriggered[MAX_ALARMIN]; /*报警触发抓拍通道,按位设置,从第0位开始*/
  1164. }NET_DVR_JPEGCFG, *LPNET_DVR_JPEGCFG;
  1165. typedef struct
  1166. {
  1167. DWORD dwReturn; /*是否直接返回图片数据*/
  1168. DWORD dwUploadFtp; /*是否上传Ftp服务器*/
  1169. DWORD dwSaveHd; /*是否保存到设备硬盘*/
  1170. char sImageName[PATHNAME_LEN]; /*自定义的生成图片文件名*/
  1171. char sOsdStr[16]; /*需要叠加在图片上的OSD字符串*/
  1172. WORD wOsdLen; /*OSD字符串长度*/
  1173. }NET_DVR_GETJPEG, *LPNET_DVR_GETJPEG;
  1174. //HS设备辅助输出参数
  1175. typedef struct
  1176. {
  1177. DWORD dwSize;
  1178. DWORD dwAlarmOutChan; /* 选择报警弹出大画面的输出通道: 0:主输出/1:辅1/2:辅2/3:辅3/4:辅4 */
  1179. DWORD dwAlarmChanSwitchTime; /* 报警通道切换时间:1:1秒 - 10:10秒 */
  1180. DWORD dwAuxSwitchTime[MAX_AUXOUT]; /* 辅助输出切换时间: 0-不切换,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s */
  1181. BYTE byAuxOrder[MAX_AUXOUT][MAX_WINDOW]; /* 辅助输出预览顺序, 0xff表示相应的窗口不预览 */
  1182. }NET_DVR_AUXOUTCFG, *LPNET_DVR_AUXOUTCFG;
  1183. typedef struct tagPOINT_FRAME
  1184. {
  1185. int xTop; // 方框起始点的x坐标
  1186. int yTop; // 方框结束点的y坐标
  1187. int xBottom; // 方框结束点的x坐标
  1188. int yBottom; //方框结束点的y坐标
  1189. int bCounter; //保留
  1190. }NET_DVR_POINT_FRAME, *LPNET_DVR_POINT_FRAME;
  1191. typedef struct tagCRUISE_RET{
  1192. struct{
  1193. BYTE PresetNum; //预置点
  1194. BYTE Dwell; //停留时间
  1195. BYTE Speed; //速度
  1196. BYTE Reserve; //保留
  1197. }struCruisePoint[32]; //最大支持32个巡航点
  1198. }NET_DVR_CRUISE_RET, *LPNET_DVR_CRUISE_RET;
  1199. //2007-05-23 多路解码器 added by zxy
  1200. typedef struct tagNETCFG_OTHER{
  1201. DWORD dwSize;
  1202. char sFirstDNSIP[16];
  1203. char sSecondDNSIP[16];
  1204. char sRes[32];
  1205. }NET_DVR_NETCFG_OTHER,*LPNET_DVR_NETCFG_OTHER;
  1206. //2007-05-25 多路解码器数字矩阵配置
  1207. //2007-11-05 启动/停止动态解码
  1208. typedef struct tagDVRCHANINFO
  1209. {
  1210. char sDVRIP[16]; /* DVR IP地址 */
  1211. WORD wDVRPort; /* 端口号 */
  1212. BYTE byChannel; /* 通道号 */
  1213. BYTE byTransProtocol; /* 传输协议类型 */
  1214. BYTE byTransMode; /* 传输码流模式 0-主码流 1-子码流*/
  1215. BYTE byRes[3];
  1216. BYTE sUserName[NAME_LEN]; /* 监控主机登陆帐号 */
  1217. BYTE sPassword[PASSWD_LEN]; /* 监控主机密码 */
  1218. }NET_DVR_MATRIX_DECINFO, *LPNET_DVR_MATRIX_DECINFO;
  1219. //启动/停止动态解码
  1220. typedef struct tagDYNAMIC_TEST
  1221. {
  1222. DWORD dwSize;
  1223. NET_DVR_MATRIX_DECINFO struDecChanInfo; /* 动态解码通道信息 */
  1224. }NET_DVR_MATRIX_DYNAMIC_DEC, *LPNET_DVR_MATRIX_DYNAMIC_DEC;
  1225. //2007-12-13 modified by zxy 修改多路解码器的NET_DVR_MATRIX_DEC_CHAN_STATUS结构
  1226. typedef struct tagMATRIX_DEC_CHAN_STATUS
  1227. {
  1228. DWORD dwSize;
  1229. DWORD dwIsLinked; /* Network link status tag, 0: hasn't linked yet, 1: linked */
  1230. DWORD dwStreamCpRate; /* Stream copy rate, X kbits/second */
  1231. char cRes[64]; /* 保留 */
  1232. }NET_DVR_MATRIX_DEC_CHAN_STATUS, *LPNET_DVR_MATRIX_DEC_CHAN_STATUS;
  1233. //end 2007-12-13 modified by zxy
  1234. typedef struct tagDEC_MATRIX_CHAN_INFO
  1235. {
  1236. DWORD dwSize;
  1237. NET_DVR_MATRIX_DECINFO struDecChanInfo; /* 解码通道信息 */
  1238. DWORD dwDecState; /* 0-动态解码 1-循环解码 2-按时间回放 3-按文件回放 4-被动模式 */
  1239. NET_DVR_TIME StartTime; /* 按时间回放开始时间 */
  1240. NET_DVR_TIME StopTime; /* 按时间回放停止时间 */
  1241. char sFileName[128]; /* 按文件回放文件名 */
  1242. }NET_DVR_MATRIX_DEC_CHAN_INFO, *LPNET_DVR_MATRIX_DEC_CHAN_INFO;
  1243. //连接的通道配置 2007-11-05
  1244. typedef struct tagMATRIXDECCHANINFO
  1245. {
  1246. DWORD dwEnable; /* 是否启用 0-否 1-启用*/
  1247. NET_DVR_MATRIX_DECINFO struDecChanInfo; /* 轮循解码通道信息 */
  1248. }NET_DVR_MATRIX_DECCHANINFO, *LPNET_DVR_MATRIX_DECCHANINFO;
  1249. //2007-11-05 新增每个解码通道的配置
  1250. typedef struct tagLOOPDECINFO
  1251. {
  1252. DWORD dwSize;
  1253. DWORD dwPoolTime; /*轮巡时间 */
  1254. NET_DVR_MATRIX_DECCHANINFO struchanConInfo[MAX_CYCLE_CHAN];
  1255. }NET_DVR_MATRIX_LOOP_DECINFO, *LPNET_DVR_MATRIX_LOOP_DECINFO;
  1256. typedef struct tagEMAILCFG
  1257. { /* 12 bytes */
  1258. DWORD dwSize;
  1259. char sUserName[32]; /* 帐户名 */
  1260. char sPassWord[32]; /* 帐户密码 */
  1261. char sFromName[32]; /* 发送者显示名称 *///字符串中的第一个字符和最后一个字符不能是"@",并且字符串中要有"@"字符
  1262. char sFromAddr[48]; /* 发送者邮箱地址 */
  1263. char sToName1[32]; /* Receiver1 */
  1264. char sToName2[32]; /* Receiver2 */
  1265. char sToAddr1[48]; /* Receiver address1 */
  1266. char sToAddr2[48]; /* Receiver address2 */
  1267. char sEmailServer[32]; /* Email server address */
  1268. BYTE byServerType; /* Email server type: 0-SMTP, 1-POP, 2-IMTP…*/
  1269. BYTE byUseAuthen; /* Email server authentication method: 1-enable, 0-disable */
  1270. BYTE byAttachment; /* enable attachment */
  1271. BYTE byMailinterval; /* mail interval 0-2s, 1-3s, 2-4s. 3-5s*/
  1272. } NET_DVR_EMAILCFG, *LPNET_DVR_EMAILCFG;
  1273. typedef struct tagNTPPARA{
  1274. BYTE sNTPServer[64]; /* Domain Name or IP addr of NTP server */
  1275. WORD wInterval; /* adjust time interval(hours) */
  1276. BYTE byEnableNTP; /* enable NPT client 0-no,1-yes*/
  1277. signed char cTimeDifferenceH; /* 与国际标准时间的时差 -12 ... +13 */
  1278. signed char cTimeDifferenceM;
  1279. BYTE res[11];
  1280. }NET_DVR_NTPPARA, *LPNET_DVR_NTPPARA;
  1281. typedef struct tagDDNSPARA{
  1282. BYTE sUsername[NAME_LEN]; /* DDNS账号用户名/密码 */
  1283. BYTE sPassword[PASSWD_LEN];
  1284. BYTE sDomainName[64]; /* 域名 */
  1285. BYTE byEnableDDNS; /*是否应用 0-否,1-是*/
  1286. BYTE res[15];
  1287. }NET_DVR_DDNSPARA, *LPNET_DVR_DDNSPARA;
  1288. typedef struct tagNETAPPCFG{
  1289. DWORD dwSize;
  1290. char sDNSIp[16]; /* DNS服务器地址 */
  1291. NET_DVR_NTPPARA struNtpClientParam; /* NTP参数 */
  1292. NET_DVR_DDNSPARA struDDNSClientParam; /* DDNS参数 */
  1293. BYTE res[464]; /* 保留 */
  1294. }NET_DVR_NETAPPCFG, *LPNET_DVR_NETAPPCFG;
  1295. typedef struct tag_NFSCFG{
  1296. DWORD dwSize;
  1297. struct{
  1298. char sNfsHostIPAddr[16];
  1299. BYTE sNfsDirectory[PATHNAME_LEN]; // PATHNAME_LEN = 128
  1300. }struNfsDiskParam[MAX_NFS_DISK];
  1301. }NET_DVR_NFSCFG, *LPNET_DVR_NFSCFG;
  1302. typedef struct tagNET_DDNSPARA_EX
  1303. {
  1304. BYTE byHostIndex; /* 0-(保留) 1-Dyndns 2-PeanutHull(花生壳) */
  1305. BYTE byEnableDDNS; /*是否应用DDNS 0-否,1-是*/
  1306. WORD wDDNSPort; /* DDNS端口号 */
  1307. BYTE sUsername[NAME_LEN]; /* DDNS用户名*/
  1308. BYTE sPassword[PASSWD_LEN]; /* DDNS密码 */
  1309. BYTE sDomainName[MAX_DOMAIN_NAME]; /* 设备配备的域名地址 */
  1310. BYTE sServerName[MAX_DOMAIN_NAME]; /* DDNS 对应的服务器地址,可以是IP地址或域名 */
  1311. BYTE byRes[16];
  1312. }NET_DVR_DDNSPARA_EX, *LPNET_DVR_DDNSPARA_EX;
  1313. NET_DVR_API BOOL __stdcall NET_DVR_Init();
  1314. NET_DVR_API BOOL __stdcall NET_DVR_Cleanup();
  1315. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessage(UINT nMessage,HWND hWnd);
  1316. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack(BOOL (CALLBACK *fMessCallBack)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen));
  1317. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack_EX(BOOL (CALLBACK *fMessCallBack_EX)(LONG lCommand,LONG lUserID,char *pBuf,DWORD dwBufLen));
  1318. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack_NEW(BOOL (CALLBACK *fMessCallBack_NEW)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen, WORD dwLinkDVRPort));
  1319. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessageCallBack(BOOL (CALLBACK *fMessageCallBack)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen, DWORD dwUser), DWORD dwUser);
  1320. NET_DVR_API BOOL __stdcall NET_DVR_SetConnectTime(DWORD dwWaitTime,DWORD dwTryTimes);
  1321. NET_DVR_API DWORD __stdcall NET_DVR_GetSDKVersion();
  1322. NET_DVR_API DWORD __stdcall NET_DVR_GetSDKBuildVersion();
  1323. NET_DVR_API int __stdcall NET_DVR_IsSupport();
  1324. NET_DVR_API BOOL __stdcall NET_DVR_StartListen(char *sLocalIP,WORD wLocalPort);
  1325. NET_DVR_API BOOL __stdcall NET_DVR_StopListen();
  1326. NET_DVR_API LONG __stdcall NET_DVR_Login(char *sDVRIP,WORD wDVRPort,char *sUserName,char *sPassword,LPNET_DVR_DEVICEINFO lpDeviceInfo);
  1327. NET_DVR_API BOOL __stdcall NET_DVR_Logout(LONG lUserID);
  1328. NET_DVR_API DWORD __stdcall NET_DVR_GetLastError();
  1329. NET_DVR_API BOOL __stdcall NET_DVR_SetShowMode(DWORD dwShowType,COLORREF colorKey);
  1330. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRIPByResolveSvr(char *sServerIP, WORD wServerPort, BYTE *sDVRName,WORD wDVRNameLen,BYTE *sDVRSerialNumber,WORD wDVRSerialLen,char* sGetIP);
  1331. //图像预览
  1332. NET_DVR_API LONG __stdcall NET_DVR_RealPlay(LONG lUserID,LPNET_DVR_CLIENTINFO lpClientInfo);
  1333. NET_DVR_API BOOL __stdcall NET_DVR_StopRealPlay(LONG lRealHandle);
  1334. NET_DVR_API int __stdcall NET_DVR_GetRealPlayerIndex(LONG lRealHandle);
  1335. //视频参数是索引值 1-10
  1336. NET_DVR_API BOOL __stdcall NET_DVR_ClientSetVideoEffect(LONG lRealHandle,DWORD dwBrightValue,DWORD dwContrastValue, DWORD dwSaturationValue,DWORD dwHueValue);
  1337. NET_DVR_API BOOL __stdcall NET_DVR_ClientGetVideoEffect(LONG lRealHandle,DWORD *pBrightValue,DWORD *pContrastValue, DWORD *pSaturationValue,DWORD *pHueValue);
  1338. NET_DVR_API BOOL __stdcall NET_DVR_RigisterDrawFun(LONG lRealHandle,void (CALLBACK* fDrawFun)(LONG lRealHandle,HDC hDc,DWORD dwUser),DWORD dwUser);
  1339. NET_DVR_API BOOL __stdcall NET_DVR_SetPlayerBufNumber(LONG lRealHandle,DWORD dwBufNum);
  1340. NET_DVR_API BOOL __stdcall NET_DVR_ThrowBFrame(LONG lRealHandle,DWORD dwNum);
  1341. NET_DVR_API BOOL __stdcall NET_DVR_SetAudioMode(DWORD dwMode);
  1342. NET_DVR_API BOOL __stdcall NET_DVR_OpenSound(LONG lRealHandle);
  1343. NET_DVR_API BOOL __stdcall NET_DVR_CloseSound();
  1344. NET_DVR_API BOOL __stdcall NET_DVR_OpenSoundShare(LONG lRealHandle);
  1345. NET_DVR_API BOOL __stdcall NET_DVR_CloseSoundShare(LONG lRealHandle);
  1346. NET_DVR_API BOOL __stdcall NET_DVR_Volume(LONG lRealHandle,WORD wVolume);
  1347. NET_DVR_API BOOL __stdcall NET_DVR_SaveRealData(LONG lRealHandle,char *sFileName);
  1348. NET_DVR_API BOOL __stdcall NET_DVR_StopSaveRealData(LONG lRealHandle);
  1349. NET_DVR_API BOOL __stdcall NET_DVR_SetRealDataCallBack(LONG lRealHandle,void(CALLBACK *fRealDataCallBack) (LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);
  1350. NET_DVR_API BOOL __stdcall NET_DVR_MakeKeyFrame(LONG lUserID, LONG lChannel);
  1351. NET_DVR_API BOOL __stdcall NET_DVR_MakeKeyFrameSub(LONG lUserID, LONG lChannel);
  1352. NET_DVR_API BOOL __stdcall NET_DVR_RefreshPlay(LONG lPlayHandle);
  1353. NET_DVR_API BOOL __stdcall NET_DVR_CapturePicture(LONG lRealHandle,char *sPicFileName);
  1354. //云台控制
  1355. NET_DVR_API BOOL __stdcall NET_DVR_PTZControl(LONG lRealHandle,DWORD dwPTZCommand,DWORD dwStop);
  1356. NET_DVR_API BOOL __stdcall NET_DVR_PTZControl_Other(LONG lUserID,LONG lChannel,DWORD dwPTZCommand,DWORD dwStop);
  1357. NET_DVR_API BOOL __stdcall NET_DVR_TransPTZ(LONG lRealHandle,char *pPTZCodeBuf,DWORD dwBufSize);
  1358. NET_DVR_API BOOL __stdcall NET_DVR_TransPTZ_Other(LONG lUserID,LONG lChannel,char *pPTZCodeBuf,DWORD dwBufSize);
  1359. NET_DVR_API BOOL __stdcall NET_DVR_PTZPreset(LONG lRealHandle,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);
  1360. NET_DVR_API BOOL __stdcall NET_DVR_PTZPreset_Other(LONG lUserID,LONG lChannel,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);
  1361. NET_DVR_API BOOL __stdcall NET_DVR_PTZControl_EX(LONG lRealHandle,DWORD dwPTZCommand,DWORD dwStop);
  1362. NET_DVR_API BOOL __stdcall NET_DVR_PTZPreset_EX(LONG lRealHandle,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);
  1363. NET_DVR_API BOOL __stdcall NET_DVR_PTZCruise(LONG lRealHandle,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);
  1364. NET_DVR_API BOOL __stdcall NET_DVR_PTZCruise_Other(LONG lUserID,LONG lChannel,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);
  1365. NET_DVR_API BOOL __stdcall NET_DVR_PTZCruise_EX(LONG lRealHandle,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);
  1366. NET_DVR_API BOOL __stdcall NET_DVR_PTZTrack(LONG lRealHandle,DWORD dwPTZTrackCmd);
  1367. NET_DVR_API BOOL __stdcall NET_DVR_PTZTrack_Other(LONG lUserID,LONG lChannel,DWORD dwPTZTrackCmd);
  1368. NET_DVR_API BOOL __stdcall NET_DVR_PTZTrack_EX(LONG lRealHandle,DWORD dwPTZTrackCmd);
  1369. //带速度的云台控制
  1370. NET_DVR_API BOOL __stdcall NET_DVR_PTZControlWithSpeed(LONG lRealHandle, DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);
  1371. NET_DVR_API BOOL __stdcall NET_DVR_PTZControlWithSpeed_Other(LONG lUserID, LONG lChannel, DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);
  1372. //2007-05-11 IP快球
  1373. NET_DVR_API BOOL __stdcall NET_DVR_GetPTZCruise(LONG lUserID,LONG lChannel,LONG lCruiseRoute, LPNET_DVR_CRUISE_RET lpCruiseRet);
  1374. NET_DVR_API BOOL __stdcall NET_DVR_PTZSelZoomIn(LONG lRealHandle, LPNET_DVR_POINT_FRAME pStruPointFrame);
  1375. //文件回放
  1376. NET_DVR_API LONG __stdcall NET_DVR_FindFile(LONG lUserID,LONG lChannel,DWORD dwFileType, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  1377. NET_DVR_API LONG __stdcall NET_DVR_FindNextFile(LONG lFindHandle,LPNET_DVR_FIND_DATA lpFindData);
  1378. NET_DVR_API BOOL __stdcall NET_DVR_FindClose(LONG lFindHandle);
  1379. NET_DVR_API LONG __stdcall NET_DVR_FindFileByCard(LONG lUserID,LONG lChannel,DWORD dwFileType, BOOL bNeedCardNum, BYTE *sCardNumber, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  1380. NET_DVR_API LONG __stdcall NET_DVR_PlayBackByName(LONG lUserID,char *sPlayBackFileName, HWND hWnd);
  1381. NET_DVR_API LONG __stdcall NET_DVR_PlayBackByTime(LONG lUserID,LONG lChannel, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime, HWND hWnd);
  1382. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackControl(LONG lPlayHandle,DWORD dwControlCode,DWORD dwInValue,DWORD *lpOutValue);
  1383. NET_DVR_API BOOL __stdcall NET_DVR_StopPlayBack(LONG lPlayHandle);
  1384. NET_DVR_API BOOL __stdcall NET_DVR_SetPlayDataCallBack(LONG lPlayHandle,void(CALLBACK *fPlayDataCallBack) (LONG lPlayHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);
  1385. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackSaveData(LONG lPlayHandle,char *sFileName);
  1386. NET_DVR_API BOOL __stdcall NET_DVR_StopPlayBackSave(LONG lPlayHandle);
  1387. NET_DVR_API BOOL __stdcall NET_DVR_GetPlayBackOsdTime(LONG lPlayHandle, LPNET_DVR_TIME lpOsdTime);
  1388. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackCaptureFile(LONG lPlayHandle,char *sFileName);
  1389. NET_DVR_API LONG __stdcall NET_DVR_GetFileByName(LONG lUserID,char *sDVRFileName,char *sSavedFileName);
  1390. NET_DVR_API LONG __stdcall NET_DVR_GetFileByTime(LONG lUserID,LONG lChannel, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime, char *sSavedFileName);
  1391. NET_DVR_API BOOL __stdcall NET_DVR_StopGetFile(LONG lFileHandle);
  1392. NET_DVR_API int __stdcall NET_DVR_GetDownloadPos(LONG lFileHandle);
  1393. NET_DVR_API int __stdcall NET_DVR_GetPlayBackPlayerIndex(LONG lPlayHandle);
  1394. //恢复默认值
  1395. NET_DVR_API BOOL __stdcall NET_DVR_RestoreConfig(LONG lUserID);
  1396. //保存参数
  1397. NET_DVR_API BOOL __stdcall NET_DVR_SaveConfig(LONG lUserID);
  1398. //重启
  1399. NET_DVR_API BOOL __stdcall NET_DVR_RebootDVR(LONG lUserID);
  1400. //关闭DVR
  1401. NET_DVR_API BOOL __stdcall NET_DVR_ShutDownDVR(LONG lUserID);
  1402. //升级
  1403. NET_DVR_API LONG __stdcall NET_DVR_Upgrade(LONG lUserID,char *sFileName);
  1404. NET_DVR_API int __stdcall NET_DVR_GetUpgradeState(LONG lUpgradeHandle);
  1405. NET_DVR_API BOOL __stdcall NET_DVR_CloseUpgradeHandle(LONG lUpgradeHandle);
  1406. //远程格式化硬盘
  1407. NET_DVR_API LONG __stdcall NET_DVR_FormatDisk(LONG lUserID,LONG lDiskNumber);
  1408. NET_DVR_API BOOL __stdcall NET_DVR_GetFormatProgress(LONG lFormatHandle,LONG *pCurrentFormatDisk,LONG *pCurrentDiskPos,LONG *pFormatStatic);
  1409. NET_DVR_API BOOL __stdcall NET_DVR_CloseFormatHandle(LONG lFormatHandle);
  1410. //报警
  1411. NET_DVR_API LONG __stdcall NET_DVR_SetupAlarmChan(LONG lUserID);
  1412. NET_DVR_API BOOL __stdcall NET_DVR_CloseAlarmChan(LONG lAlarmHandle);
  1413. NET_DVR_API BOOL __stdcall NET_DVR_GetAlarmOut(LONG lUserID,LPNET_DVR_ALARMOUTSTATUS lpAlarmOutState);
  1414. NET_DVR_API BOOL __stdcall NET_DVR_SetAlarmOut(LONG lUserID,LONG lAlarmOutPort,LONG lAlarmOutStatic);
  1415. //语音对讲
  1416. NET_DVR_API LONG __stdcall NET_DVR_StartVoiceCom(LONG lUserID, void(CALLBACK *fVoiceDataCallBack)(LONG lVoiceComHandle,char *pRecvDataBuffer,DWORD dwBufSize,BYTE byAudioFlag,DWORD dwUser), DWORD dwUser);
  1417. NET_DVR_API BOOL __stdcall NET_DVR_SetVoiceComClientVolume(LONG lVoiceComHandle,WORD wVolume);
  1418. NET_DVR_API BOOL __stdcall NET_DVR_StopVoiceCom(LONG lVoiceComHandle);
  1419. //语音广播
  1420. NET_DVR_API BOOL __stdcall NET_DVR_ClientAudioStart();
  1421. NET_DVR_API BOOL __stdcall NET_DVR_ClientAudioStop();
  1422. NET_DVR_API BOOL __stdcall NET_DVR_AddDVR(LONG lUserID);
  1423. NET_DVR_API BOOL __stdcall NET_DVR_DelDVR(LONG lUserID);
  1424. //语音转发
  1425. NET_DVR_API LONG __stdcall NET_DVR_StartVoiceCom_MR(LONG lUserID, void(CALLBACK *fVoiceDataCallBack)(LONG lVoiceComHandle,char *pRecvDataBuffer,DWORD dwBufSize,BYTE byAudioFlag,DWORD dwUser), DWORD dwUser);
  1426. NET_DVR_API BOOL __stdcall NET_DVR_VoiceComSendData(LONG lVoiceComHandle,char *pSendBuf,DWORD dwBufSize);
  1427. ////////////////////////////////////////////////////////////
  1428. //透明通道设置
  1429. NET_DVR_API LONG __stdcall NET_DVR_SerialStart(LONG lUserID,LONG lSerialPort,void(CALLBACK *fSerialDataCallBack)(LONG lSerialHandle,char *pRecvDataBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);
  1430. NET_DVR_API BOOL __stdcall NET_DVR_SerialSend(LONG lSerialHandle, LONG lChannel, char *pSendBuf,DWORD dwBufSize);
  1431. NET_DVR_API BOOL __stdcall NET_DVR_SerialStop(LONG lSerialHandle);
  1432. NET_DVR_API BOOL __stdcall NET_DVR_SendTo232Port(LONG lUserID,char *pSendBuf,DWORD dwBufSize);
  1433. //远程控制本地显示
  1434. NET_DVR_API BOOL __stdcall NET_DVR_ClickKey(LONG lUserID,LONG lKeyIndex);
  1435. //远程控制手动录像
  1436. NET_DVR_API BOOL __stdcall NET_DVR_StartDVRRecord(LONG lUserID,LONG lChannel,LONG lRecordType);
  1437. NET_DVR_API BOOL __stdcall NET_DVR_StopDVRRecord(LONG lUserID,LONG lChannel);
  1438. //解码卡
  1439. NET_DVR_API BOOL __stdcall NET_DVR_InitDevice_Card(long *pDeviceTotalChan);
  1440. NET_DVR_API BOOL __stdcall NET_DVR_ReleaseDevice_Card();
  1441. NET_DVR_API BOOL __stdcall NET_DVR_InitDDraw_Card(HWND hParent,COLORREF colorKey);
  1442. NET_DVR_API BOOL __stdcall NET_DVR_ReleaseDDraw_Card();
  1443. NET_DVR_API LONG __stdcall NET_DVR_RealPlay_Card(LONG lUserID,LPNET_DVR_CARDINFO lpCardInfo,long lChannelNum);
  1444. NET_DVR_API BOOL __stdcall NET_DVR_ResetPara_Card(LONG lRealHandle,LPNET_DVR_DISPLAY_PARA lpDisplayPara);
  1445. NET_DVR_API BOOL __stdcall NET_DVR_RefreshSurface_Card();
  1446. NET_DVR_API BOOL __stdcall NET_DVR_ClearSurface_Card();
  1447. NET_DVR_API BOOL __stdcall NET_DVR_RestoreSurface_Card();
  1448. NET_DVR_API BOOL __stdcall NET_DVR_OpenSound_Card(LONG lRealHandle);
  1449. NET_DVR_API BOOL __stdcall NET_DVR_CloseSound_Card(LONG lRealHandle);
  1450. NET_DVR_API BOOL __stdcall NET_DVR_SetVolume_Card(LONG lRealHandle,WORD wVolume);
  1451. NET_DVR_API BOOL __stdcall NET_DVR_AudioPreview_Card(LONG lRealHandle,BOOL bEnable);
  1452. NET_DVR_API BOOL __stdcall NET_DVR_CapturePicture_Card(LONG lRealHandle, char *sPicFileName);
  1453. NET_DVR_API BOOL __stdcall NET_DVR_SetDspErrMsg_Card(UINT nMessage,HWND hWnd);
  1454. NET_DVR_API BOOL __stdcall NET_DVR_ResetDSP_Card(long lChannelNum);
  1455. NET_DVR_API BOOL __stdcall NET_DVR_GetSerialNum_Card(long lChannelNum,DWORD *pDeviceSerialNo);
  1456. NET_DVR_API HANDLE __stdcall NET_DVR_GetChanHandle_Card(LONG lRealHandle);
  1457. //服务器状态
  1458. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRWorkState(LONG lUserID,LPNET_DVR_WORKSTATE lpWorkState);
  1459. //日志
  1460. NET_DVR_API LONG __stdcall NET_DVR_FindDVRLog(LONG lUserID,LONG lSelectMode, DWORD dwMajorType,DWORD dwMinorType, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  1461. NET_DVR_API LONG __stdcall NET_DVR_FindNextLog(LONG lLogHandle,LPNET_DVR_LOG lpLogData);
  1462. NET_DVR_API BOOL __stdcall NET_DVR_FindLogClose(LONG lLogHandle);
  1463. //参数设置
  1464. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpOutBuffer,DWORD dwOutBufferSize,LPDWORD lpBytesReturned);
  1465. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpInBuffer,DWORD dwInBufferSize);
  1466. NET_DVR_API BOOL __stdcall NET_DVR_ClientGetframeformat(LONG lUserID, LPNET_DVR_FRAMEFORMAT lpFrameFormat);
  1467. NET_DVR_API BOOL __stdcall NET_DVR_ClientSetframeformat(LONG lUserID, LPNET_DVR_FRAMEFORMAT lpFrameFormat);
  1468. //解码
  1469. NET_DVR_API void* __stdcall NET_DVR_InitG722Decoder(int nBitrate);
  1470. NET_DVR_API void __stdcall NET_DVR_ReleaseG722Decoder(void *pDecHandle);
  1471. NET_DVR_API BOOL __stdcall NET_DVR_DecodeG722Frame(void *pDecHandle, unsigned char* pInBuffer, unsigned char* pOutBuffer);
  1472. //编码
  1473. NET_DVR_API void* __stdcall NET_DVR_InitG722Encoder();
  1474. NET_DVR_API BOOL __stdcall NET_DVR_EncodeG722Frame(void *pEncodeHandle,unsigned char* pInBuffer, unsigned char* pOutBuffer);
  1475. NET_DVR_API void __stdcall NET_DVR_ReleaseG722Encoder(void *pEncodeHandle);
  1476. //参数设置
  1477. NET_DVR_API BOOL __stdcall NET_DVR_GetConfigFile(LONG lUserID, char *sFileName);
  1478. NET_DVR_API BOOL __stdcall NET_DVR_SetConfigFile(LONG lUserID, char *sFileName);
  1479. NET_DVR_API BOOL __stdcall NET_DVR_GetConfigFile_EX(LONG lUserID, char *sOutBuffer, DWORD dwOutSize);
  1480. NET_DVR_API BOOL __stdcall NET_DVR_SetConfigFile_EX(LONG lUserID, char *sInBuffer, DWORD dwInSize);
  1481. //6001D/F解码设备接口
  1482. NET_DVR_API BOOL __stdcall NET_DVR_SetDecInfo(LONG lUserID, LONG lChannel, LPNET_DVR_DECCFG lpDecoderinfo);
  1483. NET_DVR_API BOOL __stdcall NET_DVR_GetDecInfo(LONG lUserID, LONG lChannel, LPNET_DVR_DECCFG lpDecoderinfo);
  1484. NET_DVR_API BOOL __stdcall NET_DVR_SetDecTransPort(LONG lUserID, LPNET_DVR_PORTCFG lpTransPort);
  1485. NET_DVR_API BOOL __stdcall NET_DVR_GetDecTransPort(LONG lUserID, LPNET_DVR_PORTCFG lpTransPort);
  1486. NET_DVR_API BOOL __stdcall NET_DVR_DecPlayBackCtrl(LONG lUserID, LONG lChannel, DWORD dwControlCode, DWORD dwInValue,DWORD *lpOutValue, LPNET_DVR_PLAYREMOTEFILE lpRemoteFileInfo);
  1487. NET_DVR_API BOOL __stdcall NET_DVR_StartDecSpecialCon(LONG lUserID, LONG lChannel, LPNET_DVR_DECCHANINFO lpDecChanInfo);
  1488. NET_DVR_API BOOL __stdcall NET_DVR_StopDecSpecialCon(LONG lUserID, LONG lChannel, LPNET_DVR_DECCHANINFO lpDecChanInfo);
  1489. NET_DVR_API BOOL __stdcall NET_DVR_DecCtrlDec(LONG lUserID, LONG lChannel, DWORD dwControlCode);
  1490. NET_DVR_API BOOL __stdcall NET_DVR_DecCtrlScreen(LONG lUserID, LONG lChannel, DWORD dwControl);
  1491. NET_DVR_API BOOL __stdcall NET_DVR_GetDecCurLinkStatus(LONG lUserID, LONG lChannel, LPNET_DVR_DECSTATUS lpDecStatus);
  1492. //JPEG抓图
  1493. NET_DVR_API BOOL __stdcall NET_DVR_CaptureJPEGPicture(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, char *sPicFileName);
  1494. NET_DVR_API BOOL __stdcall NET_DVR_CaptureJPEGPicture_NEW(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, char *sJpegPicBuffer, DWORD dwPicSize, LPDWORD lpSizeReturned);
  1495. //设置ATM PORT配置
  1496. NET_DVR_API BOOL __stdcall NET_DVR_SetATMPortCFG(LONG lUserID, WORD wATMPort);
  1497. //获取ATM PORT配置
  1498. NET_DVR_API BOOL __stdcall NET_DVR_GetATMPortCFG(LONG lUserID, WORD *lpOutATMPort);
  1499. //增加是否启用缩放接口
  1500. //设置缩放配置
  1501. NET_DVR_API BOOL __stdcall NET_DVR_SetScaleCFG(LONG lUserID, DWORD dwScale);
  1502. //获取缩放配置
  1503. NET_DVR_API BOOL __stdcall NET_DVR_GetScaleCFG(LONG lUserID, DWORD *lpOutScale);
  1504. //支持显卡
  1505. //#if (WINVER > 0x0400)
  1506. //Note: These funtion must be builded under win2000 or above with Microsoft Platform sdk.
  1507. // You can download the sdk from "http://www.microsoft.com/msdownload/platformsdk/sdkupdate/";
  1508. NET_DVR_API BOOL __stdcall NET_DVR_InitDDrawDevice();
  1509. NET_DVR_API BOOL __stdcall NET_DVR_ReleaseDDrawDevice();
  1510. NET_DVR_API LONG __stdcall NET_DVR_GetDDrawDeviceTotalNums();
  1511. NET_DVR_API BOOL __stdcall NET_DVR_SetDDrawDevice(LONG lPlayPort, DWORD nDeviceNum);
  1512. //#endif
  1513. //多路解码器
  1514. //2007-11-30 V211支持以下接口
  1515. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStartDynamic(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DYNAMIC_DEC lpDynamicInfo);
  1516. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStopDynamic(LONG lUserID, DWORD dwDecChanNum);
  1517. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanInfo(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_CHAN_INFO lpInter);
  1518. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetLoopDecChanInfo(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO lpInter);
  1519. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecChanInfo(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO lpInter);
  1520. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetLoopDecChanEnable(LONG lUserID, DWORD dwDecChanNum, DWORD dwEnable);
  1521. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecChanEnable(LONG lUserID, DWORD dwDecChanNum, LPDWORD lpdwEnable);
  1522. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecEnable(LONG lUserID, LPDWORD lpdwEnable);
  1523. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetDecChanEnable(LONG lUserID, DWORD dwDecChanNum, DWORD dwEnable);
  1524. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanEnable(LONG lUserID, DWORD dwDecChanNum, LPDWORD lpdwEnable);
  1525. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanStatus(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_CHAN_STATUS lpInter);