HwProtocol_DLL.h 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910
  1. #ifndef _HOWELL_BYTE_PROTOCOL_INCLUDE_H
  2. #define _HOWELL_BYTE_PROTOCOL_INCLUDE_H
  3. #if defined( _WINDLL)
  4. #define HW_DVR_API extern "C"__declspec(dllexport)
  5. #else
  6. #define HW_DVR_API extern "C" //__declspec(dllimport)
  7. #endif
  8. //ERRFLAG
  9. #define HWPTC_NO_NETERROR 0x00 //正确
  10. #define HWPTC_DEAL_ERROR 0x01 //处理协议时程序报错,回送出错
  11. #define HWPTC_INVALID_WINDOW 0x03 //请求失败,无效的窗口号
  12. #define HWPTC_INVALID_ALARM 0x04 //请求失败,无效的报警器
  13. #define HWPTC_GETINFO_ERROR 0x05 //获取信息错误
  14. #define HWPTC_SETINFO_ERROR 0x06 //设置信息错误
  15. #define HWPTC_LOG_DATEERROR 0x07 //数据错误
  16. #define HWPTC_LOG_NOTRECORD 0x08 //未录像
  17. #define HWPTC_INVALID_USERNAME 0x09 //无效用户名
  18. #define HWPTC_INVALID_USERPASSWORD 0x0A //无效密码
  19. #define HWPTC_USER_NOTEXIST 0x0B //用户不存在
  20. #define HWPTC_USER_HADEXIST 0x0C //用户已经存在
  21. #define HWPTC_USER_CANNOTDEL 0x0D //无法删除
  22. #define HWPTC_USER_CANNOTCON 0x0E //无法连接
  23. #define HWPTC_PTZ_NOSET 0x0F //未设置
  24. #define HWPTC_PTZ_ADDRESSEXIST 0x10 //地址已经存在
  25. #define HWPTC_PTZ_INVALIDSET 0x11 //无效设置
  26. #define HWPTC_INVALID_TIME 0x14 //无效时间
  27. #define HWPTC_UPDATA_LOST_BLOCK 0x15 //传输时丢失块
  28. #define HWPTC_WRITE_FILE_ERR 0x16 //写文件出错
  29. #define HWPTC_NOT_LAST_BLOCK 0x17 //当前传输回送的块不是最后一块
  30. #define HWPTC_NEED_NOT_UPDATA 0x18 //当前版本无需更新
  31. #define HWPTC_OBJECT_NOT_EXIST 0x19 //对象不存在
  32. #define HWPTC_INVALID_VALUE 0x1A //不可达值
  33. #define HWPTC_INVALID_SCU 0x1B ////无效的工作表
  34. #define HWPTC_USER_MAX_CONNECT 0x1C ////已经达到最大连接数
  35. #define HWPTC_ANALYSE_CHANNEL_OUTOFRANGE 0x1D ////分析通道超出范围
  36. #define HWPTC_TIME_COLLISION 0x1E ////四个时间段冲突
  37. #define HWPTC_WORKSCHEDULE_NOT_EXIST 0x1F ////工作表不存在
  38. #define HWPTC_INVALID_RECT 0x20 ////非法的多边形
  39. #define HWPTC_INVALID_DIRECTION 0x21 ////非法的方向
  40. #define HWPTC_NOT_SET_TIME 0x22 //VPS没有设置时间段
  41. #define HWPTC_NOT_RIGHT_VERSION 0x23 //当前版本不可升级
  42. #define HWPTC_NO_BLOCK 0x24 //没有要求的块
  43. #define HWPTC_USER_FULL 0x25 //用户已满
  44. #define HWPTC_DEVICE_NOT_RIGHT 0x26 //当前设备类型不匹配
  45. #define HWPTC_PORT_NOT_EXISTS 0x27 //当前端口不存在
  46. #define HWPTC_UPDATAING_NOW 0x28 //正在升级
  47. #define HWPTC_CANNOT_DISARM 0x29 //当前是定时布撤防,无法撤防
  48. #define HWPTC_INVALID_RECTYPE 0x2A //无效录像工作类型
  49. #define HWPTC_INVALID_TYPE 0x2B //无效类型
  50. #define HWPTC_USER_PASSWORD_NOTMATCH 0x2C //用户名称和密码不匹配
  51. #define HWPTC_DEVICE_NOT_EXISTS 0x2D //设备不存在
  52. #define HWPTC_INVALID_RELAY 0x2E //请求失败,无效的继电器
  53. #define HWPTC_CONTROL_FAULT 0x2F //请求操作失败
  54. #define HWPTC_NETDEVICE_CHECKTIME 0x30 //网络用户正在校时
  55. #define HWPTC_NETDEVICE_DISCONNECT 0x31 //网络设备不在线
  56. #define HWPTC_NETDEVICE_CHNNOTSET 0x32 //网络通道未设置
  57. #define HWPTC_NOT_SUPPORT 0xF6 //不支持该功能
  58. #define HWPTC_INVALID_PARAM 0xF7 //参数非法
  59. #define HWPTC_ALLOC_HANDLE 0xF8 //分派句柄失败
  60. #define HWPTC_NO_SOCKET_IN_LIST 0xF9 //没有指定的SOCKET在队列中
  61. #define HWPTC_TERMINATE_OPERATION 0xFA //操作中断
  62. #define HWPTC_SOCKET_ALLOC 0xFB //Socket分派失败
  63. #define HWPTC_TCP_CONNECT_FAILED 0xFC //TCP连接失败
  64. //#define HWPTC_INVALID_TYPE 0xFD //错误类型
  65. #define HWPTC_QUEUE_ERR 0xFE //顺序错误
  66. #define HWPTC_TIME_OUT 0xFF //超时
  67. //协议端口
  68. #define HWPTC_PORT_PLAYBACK 8888
  69. #define HWPTC_PORT_VOICECOM 5200
  70. //协议类型
  71. #define PROTOCOL_HEAD_LEN 50 //协议头长度
  72. #define PROTOCOL_ERRFLAG_OFFSET 21
  73. #define OFFSET_ANSWER 0x00FF0000
  74. #define OFFSET_SET 0x0000FF00
  75. //协议说明-------------------------------------------------------
  76. #define PROTOCOL_VIDEO_PARA 0x01 //视频参数
  77. #define PROTOCOL_RECORD_WORK 0x02 //录像工作表
  78. #define PROTOCOL_ALARM 0x03 //报警设置
  79. #define PROTOCOL_WORK_STATE 0x04 //当前工作状态
  80. #define PROTOCOL_LOG 0x05 //日志查询
  81. #define PROTOCOL_MOV_DEC 0x06 //移动侦测
  82. #define PROTOCOL_MASK 0x07 //遮盖设置
  83. #define PROTOCOL_USER 0x08 //用户设置
  84. #define PROTOCOL_COLOR 0x09 //色彩设置
  85. #define PROTOCOL_PTZ 0x0A //云台设置
  86. #define PROTOCOL_RS232 0x0B //串口设置
  87. #define PROTOCOL_HDD 0x0C //硬盘设置
  88. #define PROTOCOL_OTHER 0x0D //其他设置,本机名称,断电报警,打包时间,硬盘覆盖方式
  89. #define PROTOCOL_POWER 0x0E //关机设置
  90. #define PROTOCOL_REMOTEUPDATA_FILELIST 0x0F //远程升级文件列表信息
  91. #define PROTOCOL_FORCEPOWEROFF 0x10 //强行关闭远程应用程序
  92. #define PROTOCOL_VERSION 0x11 //获取远端应用程序版本号
  93. #define PROTOCOL_PTZ_DIR 0x12 //按方向移动云台
  94. #define PROTOCOL_PTZ_SCHEDULE 0x13 //云台预置点
  95. #define PROTOCOL_PTZ_SCHEDULEGROUP 0x14 //云台巡航组
  96. #define PROTOCOL_PTZ_ASSISTANTCONTROL 0x15 //云台控制及辅助控制
  97. #define PROTOCOL_PTZ_XYPOS 0x16 //云台转动按坐标系
  98. #define PROTOCOL_ALARM_STATUS 0x18 //快速设置报警器状态
  99. #define PROTOCOL_ALARM_ASSISTANT 0x19 //报警器辅助协议
  100. #define PROTOCOL_QUICK_RECORD 0x1A //快速启动停止录像
  101. #define PROTOCOL_CAMDIV 0x1B //窗口对应解码器地址
  102. #define PROTOCOL_FORCESETIFRAME 0x1D //强行设置I帧
  103. #define PROTOCOL_VIEWPRO 0x1E //视频显示级别
  104. #define PROTOCOL_DSPRESET 0x1F //DSP重置 开关
  105. #define PROTOCOL_REMOTE_LOGINOUT 0x20 //远程登入 登出
  106. #define PROTOCOL_SETDEL_SCHEDULE 0x21 //远程设置删除预置点
  107. #define PROTOCOL_LOCK_CAM 0x22 //锁定摄像机
  108. #define PROTOCOL_MATRIX_SETVIDEOOUTPUT 0x23 //设置矩阵指定窗口的输出视频信息,使用该协议设置后切换状态变为定点
  109. #define PROTOCOL_MATRIX_DVRALRAM 0x24 //通知矩阵DVR报警
  110. #define PROTOCOL_MATRIX_SETSWITCHTYPE 0x25 //矩阵切换方式
  111. #define PROTOCOL_MATRIX_SETSWITCHBYWINDOWDETAIL 0x26 //设置按窗口切换的切换列表
  112. #define PROTOCOL_MATRIX_SETSWITCHBYDVRDETAIL 0x27 //设置按DVR切换的信息列表
  113. #define PROTOCOL_MATRIX_SETPOS 0x28 //查询设置矩阵定点信息
  114. #define PROTOCOL_MATRIX_FORCESETDVRVIDEO 0x29 //强行设置DVR视频到指定矩阵上
  115. #define PROTOCOL_MATRIX_GETVIDEOINFO 0x2A //获取矩阵上的视频显示信息
  116. #define PROTOCOL_DETAILRECORDINFO 0x2C //获取详细录像状态 1 定时录像 2 动态帧测录像 .....
  117. #define PROTOCOL_QUICKGET_RECORDWORK 0x2D //快速获取当前窗口的录像工作表
  118. #define PROTOCOL_DVR_DECODETYPE 0x2E //查询视频窗口编码格式 D1 CIF DCIF
  119. #define PROTOCOL_DVR_VIDEOLOST 0x2F //查询视频丢失信息
  120. #define PROTOCOL_MATRIX_RECOVERWORDTYPE 0x30 //强行恢复矩阵原有工作方式
  121. #define PROTOCOL_GPS_REGION_INOUT 0x31 //GPS定位车辆进出GPS定位区域
  122. #define PROTOCOL_DVR_NETLOGIN 0x32
  123. #define PROTOCOL_VPS_UPLOADEVENTINFO 0x33 ////上传事件信息
  124. #define PROTOCOL_VPS_EVENTLOG 0x34 ////事件设置信息
  125. #define PROTOCOL_VPS_EVENTANALYSERECT 0x35 ////事件总分析区域
  126. #define PROTOCOL_VPS_EVENTHISTORY 0x36 ////历史事件信息
  127. #define PROTOCOL_VPS_ANALYSESTATES 0x37 ////视频分析状态
  128. #define PROTOCOL_VPS_ANALYSEPARAMETER 0x38 ////视频分析参数信息
  129. #define PROTOCOL_CHECKTIME 0x39 //校时
  130. #define PROTOCOL_HEARTBEAT 0x3A //心跳
  131. #define PROTOCOL_GETHEARTBEAT 0x3B //获取心跳
  132. #define PROTOCOL_VPSOSTYPE 0x3C //获取VPS操作系统类型
  133. #define PROTOCOL_VPSCENTERIP 0x3D //VPSCenter 配置IP
  134. #define PROTOCOL_UPDATEALARM 0x3E //报警信息上传
  135. #define PROTOCOL_TEMPERATURE 0x3F //温度报警信息
  136. #define PROTOCOL_VIDEO_NETSEND_PARA 0x40 //网传数据流
  137. #define PROTOCOL_CHECKDVRTIME 0x49 //校时
  138. #define PROTOCOL_GETALARMSTATE 0x50 //报警状态
  139. #define PROTOCOL_ALARMHOST 0x63 //报警主机
  140. #define PROTOCOL_GETNETCFG 0x67 //获取网络信息
  141. #define MAX_HW_CHANNUM 32
  142. #define MAX_HW_REC_SEGMENT 3
  143. #define MAX_HW_ALARM_SEGMENT 3
  144. #define MAX_HW_MOV_SEGMENT 2
  145. #define MAX_HW_MASK_SEGMENT 2
  146. #define MAX_HW_USERNAME_LEN 32
  147. #define MAX_HW_CLIENTNAME_LEN 20
  148. #define MAX_HW_USERPWD_LEN 16
  149. #define MAX_HW_DEVICEID_LEN 30
  150. #define MAX_HW_CLIENTPWD_LEN 20
  151. #define MAX_HW_USER 20
  152. #define MAX_HW_RS232 10
  153. #define MAX_HW_DISKNUM 24
  154. #define MAX_HW_DAYS 8
  155. #define MAX_HW_ALARMIN 32
  156. #define MAX_HW_ALARMOUT 32
  157. #define MAX_HW_SLOT 32
  158. #define MAX_HW_AREAPOINTS 16
  159. #define MAX_HW_ARROWS 2
  160. #define MAX_HW_NETCARD_LEN 20
  161. #define MAX_HW_ETHERNET 2
  162. #define LOG_NORMAL 0 //正常
  163. #define LOG_NONE 1 //没有日志
  164. #define LOG_FINDING 2 //查找中
  165. #define LOG_NOMORE 3 //查完
  166. #define LOG_EXCEPTION 4 //异常
  167. //查找回放文件返回值
  168. #define HWPTC_DVR_FILE_SUCCESS 1000 //获取文件成功
  169. #define HWPTC_DVR_NOFILE 1001 //没有文件
  170. #define HWPTC_DVR_ISFINDING 1002 //正在查找
  171. #define HWPTC_DVR_NOMOREFILES 1003 //没有更多文件
  172. #define HWPTC_DVR_FILE_EXCEPTION 1004 //异常
  173. enum PTZDirections
  174. {
  175. DIR_DOWN_LEFT = 1,
  176. DIR_DOWN = 2,
  177. DIR_DOWN_RIGHT = 3,
  178. DIR_LEFT = 4,
  179. DIR_STOP = 5,
  180. DIR_RIGHT = 6,
  181. DIR_TOP_LEFT = 7,
  182. DIR_TOP = 8,
  183. DIR_TOP_RIGHT = 9,
  184. };
  185. enum PTZLens
  186. {
  187. LEN_ZOOM_IN = 1,
  188. LEN_ZOOM_OUT = 2,
  189. LEN_IRIS_OPEN = 3,
  190. LEN_IRIS_CLOSE = 4,
  191. LEN_FOCUS_NEAR = 5,
  192. LEN_FOCUS_FAR = 6,
  193. LEN_STOP = 7,
  194. };
  195. //0x01
  196. struct T_RVideoPara
  197. {
  198. BYTE bytWin; //窗口号
  199. BYTE bytBright; //亮度 0-255
  200. BYTE bytContrast; //对比度 0-127
  201. BYTE bytSaturation; //饱和度 0-127
  202. BYTE bytHue; //色度 0-127
  203. short intOsdX; //OsdX坐标 0-703
  204. short intOsdY; //OsdY坐标 0-575
  205. short intChannelX; //通道X坐标 0-703
  206. short intChannelY; //通道Y坐标 0-575
  207. BYTE bytChannelNameLen; //通道名称长度
  208. char bytChannelName[MAX_HW_USERNAME_LEN]; //通道名称
  209. BYTE bytOsdType; //Osd类型 1 XXXX-XX-XX/2 XX-XX-XXXX/3 XXXX年XX月XX日/4 XX月XX日XX年
  210. BYTE bytDate; //是否显示日期
  211. BYTE bytWeek; //是否显示星期s
  212. BYTE bytChn; //是否显示通道字符
  213. BYTE bytQuality; //图形质量 1-6 1-最好 6-最差
  214. BYTE bytMaxBps; //最大码率
  215. BYTE bytCompress; //图形格式 1 –CIF 2 QCIF 3 D1 4 700P 5 1080P
  216. BYTE bytFrame; //图形帧率 1-25
  217. BYTE bytVideoType; //1 视频流 2 复合流
  218. BYTE bytReserved[25]; //保留
  219. };
  220. //0x02
  221. struct T_RecSegment//每个时间段的录像类型
  222. {
  223. BYTE RecIsSet; //当前时间段是否设置
  224. BYTE RecType; //录像类型
  225. BYTE BegHour; //起始录像时间(时)
  226. BYTE BegMin; //起始录像时间(分)
  227. BYTE StopHour; //结束录像时间(时)
  228. BYTE StopMin; //结束录像时间(分)
  229. };
  230. struct T_DayRec
  231. {
  232. BYTE RecDayIsSet; //当天录像是否设置
  233. T_RecSegment RecSegment[MAX_HW_REC_SEGMENT];
  234. };
  235. struct T_WorkRec
  236. {
  237. T_DayRec EachDayRec[MAX_HW_DAYS]; //每一天的录像信息,其中0代表周一至周日全相同的信息
  238. };
  239. //0x03
  240. struct T_AlarmSegment //每个时间段的报警设置
  241. {
  242. BYTE IsSet; //当前时间段是否设置
  243. BYTE AlarmType; //布撤防类型
  244. BYTE BuFangHour; //布防时间(时)
  245. BYTE BuFangMin; //布防时间(分)
  246. BYTE CheFangHour; //撤防时间(时)
  247. BYTE CheFangMin; //撤防时间(分)
  248. };
  249. struct T_AlarmAct//报警动作
  250. {
  251. BYTE IsActSet;
  252. BYTE bytSlot; //通道
  253. BYTE bytCamera1; //监控点
  254. BYTE bytCamera2; //监控点
  255. BYTE bytPresetNo; //预置点
  256. };
  257. struct T_DayAlarm //每一天的报警设置
  258. {
  259. BYTE RecDayIsSet; //当天报警是否设置
  260. BYTE RecTime; //警后录像秒数
  261. BYTE RecRelay; //警后联动继电器
  262. long AlarmRec; //警后联动录像
  263. T_AlarmSegment AlarmSegment[MAX_HW_ALARM_SEGMENT];
  264. };
  265. struct T_WorkAlarm
  266. {
  267. T_DayAlarm EachDayAlarm[MAX_HW_DAYS]; //每天的报警设置,其中0代表周一至周日全相同的报警设置
  268. T_AlarmAct ActSegment[MAX_HW_ALARM_SEGMENT];
  269. };
  270. //0x04
  271. struct T_WorkState //工作状态
  272. {
  273. long RecState; //录像状态
  274. long AlarmState; //报警状态
  275. long DspState; //Dsp状态
  276. long VideoState; //视频信号状态
  277. };
  278. //0x06
  279. struct T_EachMovSegment//每个移动框的信息
  280. {
  281. BYTE IsSet; //该移动框是否被设置
  282. short intLeft; //352
  283. short intTop; //288
  284. short intWidth;
  285. short intHeight;
  286. };
  287. struct T_MovDec
  288. {
  289. BYTE bytSensitive; //灵敏度 1--6 1 最灵敏 6 最不灵敏
  290. BYTE bytRecordTime; //录像持续时间 10-120秒 5的倍数
  291. BYTE bytAuto; //自适应 0/1
  292. BYTE bytRelay; //继电器 BIN(00,11,01,10)
  293. BYTE bytAudio; //语音提示 0/1
  294. T_EachMovSegment MovSegment[MAX_HW_MOV_SEGMENT];//区域352*288 16的倍数
  295. };
  296. //0x07
  297. struct T_EachMaskSegment //每个遮盖框的信息
  298. {
  299. BYTE IsSet; //1-设置 0-未设置
  300. short intLeft; //0-352
  301. short intTop; //0-288
  302. short intWidth; //0-352
  303. short intHeight; //0-288
  304. };
  305. struct T_Mask
  306. {
  307. T_EachMaskSegment MaskSegment[MAX_HW_MASK_SEGMENT];
  308. };
  309. //0x08
  310. struct T_UserInfo
  311. {
  312. char UserName[MAX_HW_USERNAME_LEN]; //用户名
  313. char UserPwd[MAX_HW_USERPWD_LEN]; //密码
  314. BYTE UserPro; //3-高 2-普通 1-低
  315. char UserDetail[20];
  316. };
  317. struct T_UserInfoList {
  318. BYTE UserNum; //用户数目
  319. T_UserInfo User[MAX_HW_USER]; //用户
  320. };
  321. enum TypeUsOp{
  322. Type_UsAdd = 0x01, //添加用户
  323. Type_UsDel = 0x02, //删除用户
  324. Type_UsChg = 0x03, //修改用户
  325. };
  326. //0x09
  327. struct T_RVideoColor
  328. {
  329. BYTE bytWin; //窗口号 1-n
  330. BYTE bytBright; //亮度 0-255
  331. BYTE bytContrast; //对比度 0-127
  332. BYTE bytSaturation; //饱和度 0-127
  333. BYTE bytHue; //色度 0-127
  334. };
  335. //0x0a
  336. struct T_DecoderPara
  337. {
  338. BYTE bytDecAddr;
  339. BYTE bytDecPrtc; //decoder protocol 1-Howell 2-Pelco-D 3-Alec 4-YAAN 5- B01协议 6-松下 7-红苹果 8-GE 9-Pelco-P
  340. long lngBaudRate; //1200.2400,4800,9600,19200,其他为无效值 //字节DVR本地通道只读
  341. BYTE bytDataBit; //5,6,7,8(其他为无效值) //字节DVR本地通道只读
  342. BYTE bytStopBit; //1或2(其他为无效值) //字节DVR本地通道只读
  343. BYTE bytParityBit; //0:None 1:奇 2:偶 (其他无效) //字节DVR本地通道只读
  344. BYTE bytRS232No; //0-n //字节DVR本地通道只读
  345. BYTE bytFlowControl; //0-None 1-Soft 2-Hard //字节DVR本地通道只读
  346. };
  347. //0x0b
  348. struct T_RS232
  349. {
  350. BYTE bytRSNo;
  351. long lngBaudRate;
  352. BYTE bytDataBit;
  353. BYTE bytStopBit;
  354. BYTE bytParityBit;
  355. };
  356. struct T_RS232List
  357. {
  358. BYTE bytRS232Number;
  359. T_RS232 RS232[MAX_HW_RS232];
  360. };
  361. //0x0c
  362. struct T_HDDINFO
  363. {
  364. BYTE byteDiskNo;
  365. long lngDiskVolume;
  366. long lngDiskFreeSpace;
  367. };
  368. struct T_HDDINFOList
  369. {
  370. BYTE byteDiskNumber;
  371. long lngTotalVolume;
  372. long lngTotalFreeSpace;
  373. T_HDDINFO Disk[MAX_HW_DISKNUM];
  374. };
  375. //0x0d
  376. struct T_OTHERINFO
  377. {
  378. char HostName[MAX_HW_USERNAME_LEN];
  379. BYTE byteWinNumber;
  380. BYTE byteAlarmOutNumber;
  381. BYTE bytePowerOffAlarm;
  382. long lngChgRecTime;
  383. BYTE byteDiskCover;
  384. BYTE byteDiskPercent;
  385. };
  386. //0x0e
  387. struct T_POWEROFFTIME
  388. {
  389. BYTE IsSet;
  390. BYTE Hour;
  391. BYTE Minute;
  392. };
  393. struct T_POWEROFFWORKSHEET
  394. {
  395. T_POWEROFFTIME Poweroff[MAX_HW_DAYS];
  396. };
  397. //0x10
  398. enum TypePowerOp{
  399. Type_AppExit = 0x01,
  400. Type_SysReStart = 0x02,
  401. Type_SysPowerOff = 0x03,
  402. };
  403. //0x11
  404. struct T_APPVERSION
  405. {
  406. long Version;
  407. BYTE AppType;
  408. };
  409. //0x16
  410. struct T_AutoZoomIn
  411. {
  412. BYTE nChannel;
  413. RECT rect;
  414. };
  415. //0x18
  416. struct T_AlarmInState
  417. {
  418. BYTE AlarmInNumber;
  419. BYTE AlarmState[MAX_HW_ALARMIN]; //1-报警 2-布防 3-撤防 10-异常 11-不存在
  420. };
  421. //0x19
  422. struct T_AlarmOutState
  423. {
  424. BYTE AlarmOutNumber;
  425. BYTE AlarmState[MAX_HW_ALARMOUT]; //1-输出 0-关闭
  426. };
  427. //0x20
  428. struct T_RemoteUser {
  429. BYTE UserPro;
  430. char UserName[MAX_HW_USERNAME_LEN];
  431. char UserPwd[MAX_HW_USERPWD_LEN];
  432. };
  433. //0x2c
  434. struct T_RECTYPE{
  435. BYTE byteChannelNumber;
  436. BYTE RecordType[MAX_HW_SLOT];
  437. };
  438. //0x2E
  439. struct T_VideoDecodeType{
  440. BYTE byteChannelNumber;
  441. BYTE DecodeType[MAX_HW_SLOT];
  442. };
  443. //0x2F
  444. struct T_ISVLAlarm{
  445. BYTE byteChannelNumber;
  446. BYTE VLAlarm[MAX_HW_SLOT];
  447. };
  448. //0x32
  449. struct T_LogDecvice{
  450. long ClientType; //1-管理机 2-客户端
  451. BYTE ClientIp[4]; //客户端IP地址 如:192 168 0 1
  452. char ClientHostName[MAX_HW_CLIENTNAME_LEN];//客户端主机名
  453. char ClientUserName[MAX_HW_CLIENTNAME_LEN];//登录用户名 1
  454. char ClientUserPWD[MAX_HW_CLIENTPWD_LEN];//登录密码 1
  455. };
  456. struct T_LogDecviceRes{
  457. BYTE Result; //0-成功 1-失败
  458. char DeviceId[MAX_HW_DEVICEID_LEN]; //设备序列号
  459. BYTE VideoNum; //设备视频通道号
  460. BYTE AlarmInNum; //报警输入数
  461. BYTE AlarmOutNum;//报警输出数
  462. char DVRType[8]; //设备类型
  463. BYTE NetWorkPortNum;//网口数目
  464. BYTE LocalVideoNum;//本地视频数目
  465. BYTE NetVideoNum;//网络视频数目
  466. };
  467. struct T_LogOutDecvice
  468. {
  469. BYTE ClientIp[4];//客户端IP
  470. char ClientHostName[MAX_HW_CLIENTNAME_LEN];//客户端主机名
  471. };
  472. //0x33
  473. struct T_VPSEVENT{
  474. DWORD dwSize;
  475. BYTE Channel; //通道号1--16
  476. BYTE EventType; //事件类型1--6
  477. BYTE EventNo; //事件编号1--4
  478. BYTE WeekDay; //星期几
  479. SYSTEMTIME StartTime;
  480. SYSTEMTIME EndTime;
  481. long ObjectID; //事件标志号
  482. long StaySeconds; //停留时间
  483. RECT objRect;
  484. char FilePath[32];//文件路径
  485. char RecordFileName[32];//录像文件名
  486. char PictureName[32];//图片文件名
  487. DWORD ScoutChannel;
  488. char FileScoutPath[32];
  489. char RecordScoutFileName[32];
  490. char PictureScoutName[32];
  491. DWORD AreaPointsNum;
  492. POINT Area[MAX_HW_AREAPOINTS];
  493. DWORD ArrowPointsNum;
  494. POINT Arrow[MAX_HW_ARROWS];
  495. long Addendum1; //附录1(时间和方向偏差)
  496. long Addendum2;
  497. long Addendum3;
  498. };
  499. //Log File Block
  500. struct T_GetFileBlock{
  501. DWORD Year;
  502. DWORD Month;
  503. DWORD Day;
  504. BYTE Channel;
  505. BYTE LogType;
  506. DWORD lngBlockNo;
  507. };
  508. struct T_FileBlock{
  509. DWORD CurrentBlockNo;
  510. DWORD TotalBlockNumber;
  511. DWORD CurrentBlockDataLen;
  512. char BlockData[2048];
  513. };
  514. struct T_FileFindLog{
  515. SYSTEMTIME StartTime;
  516. SYSTEMTIME EndTime;
  517. DWORD dwMajorType;
  518. DWORD dwMinorType;
  519. };
  520. struct T_LogItem{
  521. SYSTEMTIME time;
  522. DWORD dwMajorType;
  523. DWORD dwMinorType;
  524. char User[32];
  525. char Description[128];
  526. };
  527. struct T_GetVPSFileBlock{
  528. BYTE Year;
  529. BYTE Month;
  530. BYTE Day;
  531. BYTE Channel;
  532. long lngBlockNo;
  533. };
  534. //0x39
  535. struct T_CHECKTIME{
  536. BYTE bSet;
  537. BYTE ClientIp[4];
  538. long ClientPort;
  539. long IntervalMinutes;
  540. };
  541. //0x3A
  542. struct T_NETSTATE{
  543. BYTE Flag;
  544. BYTE DeviceIp[4];
  545. char DeviceName[20];
  546. char DeviceId[MAX_HW_DEVICEID_LEN];
  547. char NetCardId[MAX_HW_NETCARD_LEN];
  548. long MsgPort;
  549. };
  550. //0x3D
  551. struct T_VPSCENTER{
  552. BYTE CenterIp[4];
  553. long CenterPort;
  554. };
  555. //0x3F
  556. struct T_Temperature{
  557. BYTE bSet;
  558. long AlarmTemp;
  559. long CurrentTemp;
  560. };
  561. //0x40
  562. struct T_VideoNetSendPara{
  563. BYTE Channel;
  564. BYTE bytCompress; //图形格式 Cif,D1
  565. BYTE bytFrame; //图形帧率
  566. BYTE bytMaxBps; //最大码率
  567. BYTE bytQuality; //图形质量
  568. BYTE bytVideoType; //音频流,视频流,复合流
  569. };
  570. //0x49
  571. struct T_SysDVRTime{
  572. BYTE bytYear;
  573. BYTE bytMonth;
  574. BYTE bytDay;
  575. BYTE bytHour;
  576. BYTE bytMinute;
  577. BYTE bytSecond;
  578. };
  579. //0x50
  580. struct T_SysAlarmState{
  581. DWORD dwAlarmIn;
  582. DWORD dwVideoInterrupt;
  583. DWORD dwMotion;
  584. DWORD dwTemper;
  585. DWORD dwRecordFile;
  586. DWORD dwRecordTime;
  587. DWORD dwTurn;
  588. DWORD dwDisk;
  589. DWORD dwDsp;
  590. DWORD dwDistrube;
  591. DWORD dwStopRecord;
  592. DWORD dwShelter;
  593. DWORD dwOffLine;
  594. DWORD dwBlur;
  595. DWORD Res[11];
  596. };
  597. struct T_tPlayFile{
  598. SYSTEMTIME beg;
  599. SYSTEMTIME end;
  600. };
  601. struct T_FindFile{
  602. BYTE bytWin;
  603. BYTE Res[3];
  604. SYSTEMTIME beg;
  605. SYSTEMTIME end;
  606. };
  607. struct T_FindFileEx{
  608. BYTE bytWin;
  609. BYTE Res[3];
  610. SYSTEMTIME beg;
  611. SYSTEMTIME end;
  612. RECT rect;//704*576
  613. };
  614. struct T_EtherNetCard{
  615. DWORD dwIPAuto;//IP获取方式 0(自动获取)/1(手动修改)
  616. BYTE DVRIP[16];//DVRIP
  617. BYTE MaskIP[16];//子网掩码
  618. BYTE GatewayIP[16];//默认网关
  619. DWORD dwDNSAuto;//dns获取方式 0(自动获取)/1(手动修改)
  620. BYTE DefaultDNSIP[16];//首选DNS
  621. BYTE StandByDNSIP[16];//备用DNS
  622. BYTE MacAddress[8];//物理地址
  623. BYTE Res[32];//保留
  624. };
  625. //0x63
  626. //0x64
  627. struct T_NetConfig{
  628. DWORD NetCardNum;//网卡数目
  629. T_EtherNetCard EtherNet[MAX_HW_ETHERNET];//网口信息
  630. DWORD dwPPPoE; //是否启用PPPOE 0-Off 1-On
  631. BYTE PPPoEUser[MAX_HW_USERNAME_LEN];//PPPOE 用户名
  632. BYTE PPPoEPwd[32];//PPPOE 密码
  633. BYTE PPPoEIP[16];//ReadOnly PPPOE IP
  634. BYTE Res[32];
  635. };
  636. typedef void (CALLBACK * RecvVpsEventCallBack)(long hDev, T_VPSEVENT EventInfo);
  637. typedef void (CALLBACK * RecvAlarmCallBack)(long hDev,BYTE AlarmType,long AlarmState);
  638. typedef void (CALLBACK * AlarmHostCallBack)(long hDev,long Host,long Alarm);
  639. typedef void (CALLBACK * PlayBackDataCallBack)(long PlayBackId,int VideoType,char * buf,long buflen,long dwUser);
  640. typedef void (CALLBACK * PtcRealDataCallBack)(long RealId,int VideoType,char * buf,long buflen,long dwUser);
  641. HW_DVR_API BOOL WINAPI HwPtcSetMsgTimeOut(long MiniSeconds);
  642. HW_DVR_API long WINAPI HwPtcGetMsgTimeOut();
  643. HW_DVR_API BOOL WINAPI HwPtcInit();
  644. HW_DVR_API BOOL WINAPI HwPtcRelease();
  645. HW_DVR_API long WINAPI HwPtcGetMsgCount();
  646. HW_DVR_API long WINAPI HwPtcGetSockCount();
  647. HW_DVR_API long WINAPI GetLastNetError();
  648. //0x32
  649. HW_DVR_API long WINAPI HwPtcLogin(const char * szDeviceIP, long lngPort,T_LogDecvice LoginInfo,T_LogDecviceRes * LoginRes);
  650. HW_DVR_API BOOL WINAPI HwPtcLogout(long lngSocket,T_LogOutDecvice LogoutInfo);
  651. //0x01
  652. HW_DVR_API BOOL WINAPI HwPtcGetVideoPara(long hDev,short nChannel,T_RVideoPara* VideoPara);
  653. HW_DVR_API BOOL WINAPI HwPtcSetVideoPara(long hDev,short nChannel,T_RVideoPara VideoPara);
  654. //0x02
  655. HW_DVR_API BOOL WINAPI HwPtcGetWorkSheet(long hDev,BYTE nWorkSheet,BYTE nChannel,T_WorkRec * WorkRec);
  656. HW_DVR_API BOOL WINAPI HwPtcSetWorkSheet(long hDev,BYTE nWorkSheet,BYTE nChannel,T_WorkRec WorkRec);
  657. //0x03
  658. HW_DVR_API BOOL WINAPI HwPtcGetAlarmSetting(long hDev,BYTE nAlarm,T_WorkAlarm * WorkAlarm);
  659. HW_DVR_API BOOL WINAPI HwPtcSetAlarmSetting(long hDev,BYTE nAlarm,T_WorkAlarm WorkAlarm);
  660. //0x04
  661. HW_DVR_API BOOL WINAPI HwPtcGetDevWorkState(long hDev,T_WorkState * WorkState);
  662. //0x06
  663. HW_DVR_API BOOL WINAPI HwPtcGetMotionDetect(long hDev,BYTE nChannel,T_MovDec * MotionDetect);
  664. HW_DVR_API BOOL WINAPI HwPtcSetMotionDetect(long hDev,BYTE nChannel,T_MovDec MotionDetect);
  665. //0x07
  666. HW_DVR_API BOOL WINAPI HwPtcGetMaskInfo(long hDev,BYTE nChannel,T_Mask * MaskInfo);
  667. HW_DVR_API BOOL WINAPI HwPtcSetMaskInfo(long hDev,BYTE nChannel,T_Mask MaskInfo);
  668. //0x08
  669. HW_DVR_API BOOL WINAPI HwPtcGetDevUserInfo(long hDev,T_UserInfoList * UserInfo);
  670. HW_DVR_API BOOL WINAPI HwPtcSetDevUserInfo(long hDev,TypeUsOp UserOp,T_UserInfo UserInfo);
  671. //0x09
  672. HW_DVR_API BOOL WINAPI HwPtcGetVideoColor(long hDev,BYTE nChannel,T_RVideoColor * VideoColor);
  673. HW_DVR_API BOOL WINAPI HwPtcSetVideoColor(long hDev,T_RVideoColor VideoColor);
  674. //0x0a
  675. HW_DVR_API BOOL WINAPI HwPtcGetDecoderPara(long hDev,BYTE nChannel,T_DecoderPara * DecoderPara);
  676. HW_DVR_API BOOL WINAPI HwPtcSetDecoderPara(long hDev,BYTE nChannel,T_DecoderPara DecoderPara);
  677. //0x0b
  678. HW_DVR_API BOOL WINAPI HwPtcGetRS232(long hDev,T_RS232List * Rs232List);
  679. HW_DVR_API BOOL WINAPI HwPtcSetRS232(long hDev,T_RS232List Rs232List);
  680. //0x0c
  681. HW_DVR_API BOOL WINAPI HwPtcGetHDDInfo(long hDev,T_HDDINFOList * HDDINFOList);
  682. //0x0d
  683. HW_DVR_API BOOL WINAPI HwPtcGetOtherInfo(long hDev,T_OTHERINFO * OtherInfo);
  684. HW_DVR_API BOOL WINAPI HwPtcSetOtherInfo(long hDev,T_OTHERINFO OtherInfo);
  685. //0x0e
  686. HW_DVR_API BOOL WINAPI HwPtcGetPowerWrkShtInfo(long hDev,T_POWEROFFWORKSHEET * PowerWrkShtInfo);
  687. HW_DVR_API BOOL WINAPI HwPtcSetPowerWrkShtInfo(long hDev,T_POWEROFFWORKSHEET PowerWrkShtInfo);
  688. //0x10
  689. HW_DVR_API BOOL WINAPI HwPtcForceSetPower(long hDev,TypePowerOp PowerOp);
  690. //0x11
  691. HW_DVR_API BOOL WINAPI HwPtcGetAppVersion(long hDev,T_APPVERSION * AppVersion);
  692. //0x12
  693. HW_DVR_API BOOL WINAPI HwPtcPTZDir(long hDev,BYTE nChannel,BYTE nDir,BYTE Speed);
  694. //0x13
  695. HW_DVR_API BOOL WINAPI HwPtcPTZGotoPerSet(long hDev,BYTE nChannel,BYTE nPerSet);
  696. //0x15
  697. HW_DVR_API BOOL WINAPI HwPtcPTZLen(long hDev,BYTE nChannel,BYTE nLen);
  698. //0x16
  699. HW_DVR_API BOOL WINAPI HwPtcPTZAutoZoomIn(long lngSocket,T_AutoZoomIn autozi);
  700. //0x18
  701. //1报警 2布防 3 撤防 4 消警
  702. HW_DVR_API BOOL WINAPI HwPtcGetAlarmInState(long hDev,T_AlarmInState * AlarmInState);
  703. HW_DVR_API BOOL WINAPI HwPtcSetAlarmInState(long hDev,BYTE AlarmIn,BYTE AlarmInState);
  704. //0x19
  705. //0-无效 1-有效
  706. HW_DVR_API BOOL WINAPI HwPtcGetAlarmOutState(long hDev,T_AlarmOutState * AlarmOutState);
  707. HW_DVR_API BOOL WINAPI HwPtcSetAlarmOutState(long hDev,BYTE AlarmOut,BYTE AlarmOutState);
  708. //0x1A
  709. HW_DVR_API BOOL WINAPI HwPtcRecord(long hDev,BYTE nChannel,BYTE bRecord);
  710. //0x1B
  711. HW_DVR_API BOOL WINAPI HwPtcGetDecoderAddr(long hDev,BYTE nChannel,BYTE * Address);
  712. HW_DVR_API BOOL WINAPI HwPtcSetDecoderAddr(long hDev,BYTE nChannel,BYTE Address);
  713. //0x1D
  714. HW_DVR_API BOOL WINAPI HwPtcMakeKeyFrame(long hDev,BYTE nChannel);
  715. //0x1E
  716. HW_DVR_API BOOL WINAPI HwPtcGetVideoLevel(long hDev,BYTE nChannel,BYTE * Level);
  717. HW_DVR_API BOOL WINAPI HwPtcSetVideoLevel(long hDev,BYTE nChannel,BYTE Level);
  718. //0x1F
  719. HW_DVR_API BOOL WINAPI HwPtcGetDspState(long hDev,BYTE * nState);
  720. HW_DVR_API BOOL WINAPI HwPtcSetDspState(long hDev,BYTE nState);
  721. //0x20
  722. HW_DVR_API BOOL WINAPI HwPtcGetLoginUser(long hDev,BYTE AppType,T_RemoteUser * UserInfo);
  723. HW_DVR_API BOOL WINAPI HwPtcSetLoginUser(long hDev,BYTE AppType,T_RemoteUser UserInfo);
  724. //0x21
  725. HW_DVR_API BOOL WINAPI HwPtcPTZAddPerSet(long hDev,BYTE nChannel,BYTE nPerSet);
  726. HW_DVR_API BOOL WINAPI HwPtcPTZDelPerSet(long hDev,BYTE nChannel,BYTE nPerSet);
  727. //0x2C
  728. HW_DVR_API BOOL WINAPI HwPtcGetRecordType(long hDev,T_RECTYPE * RecordType);
  729. //0x2D
  730. HW_DVR_API BOOL WINAPI HwPtcGetCurrentWorkSheet(long hDev,BYTE * byteWorkSheet);
  731. HW_DVR_API BOOL WINAPI HwPtcSetCurrentWorkSheet(long hDev,BYTE byteWorkSheet);
  732. //0x2E
  733. HW_DVR_API BOOL WINAPI HwPtcGetVideoDecodeType(long hDev,T_VideoDecodeType * DecodeType);
  734. //0x2F
  735. HW_DVR_API BOOL WINAPI HwPtcGetIsVLAlarm(long hDev,T_ISVLAlarm * VLAlarm);
  736. HW_DVR_API BOOL WINAPI HwPtcSetIsVLAlarm(long hDev,T_ISVLAlarm VLAlarm);
  737. //0x33
  738. HW_DVR_API BOOL WINAPI HwPtcSetVPSEventCallBack(RecvVpsEventCallBack VpsEventCallBack);
  739. HW_DVR_API BOOL WINAPI HwPtcRegisterVPSEventCallBack(long hDev,RecvVpsEventCallBack VpsEventCallBack);
  740. HW_DVR_API BOOL WINAPI HwPtcUnRegisterVPSEventCallBack(long hDev);
  741. //Flie Block
  742. HW_DVR_API BOOL WINAPI HwPtcFindFileLog(long hDev,T_GetFileBlock GetFileBlock,T_FileBlock * FileBlock);
  743. HW_DVR_API BOOL WINAPI HwPtcFindVpsEventFileLog(long hDev,T_GetVPSFileBlock GetFileBlock,T_FileBlock * FileBlock);
  744. HW_DVR_API long WINAPI HwPtcStartFindLog(long hDev,T_FileFindLog SelectMode);
  745. HW_DVR_API long WINAPI HwPtcFindNextLog(long hFindhandle,T_LogItem * item);
  746. HW_DVR_API BOOL WINAPI HwPtcStopFindLog(long hFindhandle);
  747. //0x39
  748. HW_DVR_API BOOL WINAPI HwPtcGetCheckTime(long hDev,T_CHECKTIME * CheckTime);
  749. HW_DVR_API BOOL WINAPI HwPtcSetCheckTime(long hDev,T_CHECKTIME CheckTime);
  750. //0x3B
  751. HW_DVR_API BOOL WINAPI HwPtcChkNetState(long hDev,T_NETSTATE * NetState);
  752. //0x3C
  753. HW_DVR_API BOOL WINAPI HwPtcGetDevOS(long hDev,BYTE * OsType);
  754. //0x3D
  755. HW_DVR_API BOOL WINAPI HwPtcGetVpsCenter(long hDev,T_VPSCENTER * VpsCenter);
  756. HW_DVR_API BOOL WINAPI HwPtcSetVpsCenter(long hDev,T_VPSCENTER VpsCenter);
  757. //0x3E
  758. HW_DVR_API BOOL WINAPI HwPtcSetAlarmCallBack(RecvAlarmCallBack AlarmCallBack);
  759. HW_DVR_API BOOL WINAPI HwPtcRegisterAlarmCallBack(long hDev,RecvAlarmCallBack AlarmCallBack);
  760. HW_DVR_API BOOL WINAPI HwPtcUnRegisterAlarmCallBack(long hDev);
  761. //0x3F
  762. HW_DVR_API BOOL WINAPI HwPtcGetTemperature(long hDev,T_Temperature * Temperature);
  763. HW_DVR_API BOOL WINAPI HwPtcSetTemperature(long hDev,T_Temperature Temperature);
  764. //0x40
  765. HW_DVR_API BOOL WINAPI HwPtcGetVideoNetSendPara(long hDev,BYTE nChannel,T_VideoNetSendPara * VideoPara);
  766. HW_DVR_API BOOL WINAPI HwPtcSetVideoNetSendPara(long hDev,T_VideoNetSendPara VideoPara);
  767. //0x49
  768. HW_DVR_API BOOL WINAPI HwPtcGetDVRTime(long hDev,T_SysDVRTime * DvrTime);
  769. HW_DVR_API BOOL WINAPI HwPtcSetDVRTime(long hDev,T_SysDVRTime DvrTime);
  770. //0x50
  771. HW_DVR_API BOOL WINAPI HwPtcGetAlarmState(long hDev,T_SysAlarmState * AlarmState);
  772. //0x67
  773. HW_DVR_API BOOL WINAPI HwPtcGetNetConfig(long hDev,T_NetConfig * NetConfig);
  774. HW_DVR_API BOOL WINAPI HwPtcSetNetConfig(long hDev,T_NetConfig NetConfig);
  775. //Talk
  776. HW_DVR_API BOOL WINAPI HwPtcTalkStart(long hDev,long Port,bool duplex);
  777. HW_DVR_API BOOL WINAPI HwPtcTalkStop();
  778. //PlayBack
  779. HW_DVR_API long WINAPI HwPtcFindFile(long hDev,long Port,T_FindFile FindInfo);
  780. HW_DVR_API long WINAPI HwPtcFindSmartFile(long hDev,long Port,T_FindFileEx FindInfo);
  781. HW_DVR_API long WINAPI HwPtcFindNextFiles(long findhandle,T_tPlayFile * PlayFile);
  782. HW_DVR_API BOOL WINAPI HwPtcFindClose(long findhandle);
  783. HW_DVR_API long WINAPI HwPtcPlayBackByTime(long hDev,long Port,long nSlot,T_tPlayFile * PlayFile);
  784. HW_DVR_API BOOL WINAPI HwPtcPlayBackStart(long hPlayhandle);
  785. HW_DVR_API BOOL WINAPI HwPtcPlayBackGetPos(long hPlayhandle,long * Pos);
  786. HW_DVR_API BOOL WINAPI HwPtcPlayBackSetPos(long hPlayhandle,long Pos);
  787. HW_DVR_API BOOL WINAPI HwPtcStopPlayBack(long hPlayhandle);
  788. HW_DVR_API BOOL WINAPI HwPtcPlayBackGetFileSize(long hPlayhandle,long * pSize);
  789. HW_DVR_API BOOL WINAPI HwPtcSetPlayDataCallBack(long hPlayhandle,PlayBackDataCallBack Func,long lngUser);
  790. //Buf = NULL Type=10 为结束标记
  791. HW_DVR_API BOOL WINAPI HwPtcSetPlayDataCallBackEx(long hPlayhandle,PlayBackDataCallBack Func,long lngUser);
  792. HW_DVR_API BOOL WINAPI HwPtcPlayBackGetHead(long hPlayhandle,BYTE * headbuffer,int bufferlen,int * headlen);
  793. //Alarm Host
  794. HW_DVR_API BOOL WINAPI HwPtcSetAlarmHostCallBack(AlarmHostCallBack Func);
  795. HW_DVR_API BOOL WINAPI HwPtcRegisterAlarmHostCallBack(long hDev,AlarmHostCallBack Func);
  796. HW_DVR_API BOOL WINAPI HwPtcUnRegisterAlarmHostCallBack(long hDev);
  797. //RealData NotSupport Now
  798. HW_DVR_API long WINAPI HwPtcRealPlay(long hDev,long Port,long VideoNo,LONG LinkMode,int TimeOut);
  799. HW_DVR_API BOOL WINAPI HwPtcRealStop(long hRealPlay);
  800. HW_DVR_API BOOL WINAPI HwPtcRealCapture(long hRealPlay);
  801. HW_DVR_API BOOL WINAPI HwPtcRegisterRealDataCallBack(long hRealPlay,PtcRealDataCallBack Func,DWORD lngUser);
  802. #endif