123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910 |
- #ifndef _HOWELL_BYTE_PROTOCOL_INCLUDE_H
- #define _HOWELL_BYTE_PROTOCOL_INCLUDE_H
- #if defined( _WINDLL)
- #define HW_DVR_API extern "C"__declspec(dllexport)
- #else
- #define HW_DVR_API extern "C" //__declspec(dllimport)
- #endif
- //ERRFLAG
- #define HWPTC_NO_NETERROR 0x00 //正确
- #define HWPTC_DEAL_ERROR 0x01 //处理协议时程序报错,回送出错
- #define HWPTC_INVALID_WINDOW 0x03 //请求失败,无效的窗口号
- #define HWPTC_INVALID_ALARM 0x04 //请求失败,无效的报警器
- #define HWPTC_GETINFO_ERROR 0x05 //获取信息错误
- #define HWPTC_SETINFO_ERROR 0x06 //设置信息错误
- #define HWPTC_LOG_DATEERROR 0x07 //数据错误
- #define HWPTC_LOG_NOTRECORD 0x08 //未录像
- #define HWPTC_INVALID_USERNAME 0x09 //无效用户名
- #define HWPTC_INVALID_USERPASSWORD 0x0A //无效密码
- #define HWPTC_USER_NOTEXIST 0x0B //用户不存在
- #define HWPTC_USER_HADEXIST 0x0C //用户已经存在
- #define HWPTC_USER_CANNOTDEL 0x0D //无法删除
- #define HWPTC_USER_CANNOTCON 0x0E //无法连接
- #define HWPTC_PTZ_NOSET 0x0F //未设置
- #define HWPTC_PTZ_ADDRESSEXIST 0x10 //地址已经存在
- #define HWPTC_PTZ_INVALIDSET 0x11 //无效设置
- #define HWPTC_INVALID_TIME 0x14 //无效时间
- #define HWPTC_UPDATA_LOST_BLOCK 0x15 //传输时丢失块
- #define HWPTC_WRITE_FILE_ERR 0x16 //写文件出错
- #define HWPTC_NOT_LAST_BLOCK 0x17 //当前传输回送的块不是最后一块
- #define HWPTC_NEED_NOT_UPDATA 0x18 //当前版本无需更新
- #define HWPTC_OBJECT_NOT_EXIST 0x19 //对象不存在
- #define HWPTC_INVALID_VALUE 0x1A //不可达值
- #define HWPTC_INVALID_SCU 0x1B ////无效的工作表
- #define HWPTC_USER_MAX_CONNECT 0x1C ////已经达到最大连接数
- #define HWPTC_ANALYSE_CHANNEL_OUTOFRANGE 0x1D ////分析通道超出范围
- #define HWPTC_TIME_COLLISION 0x1E ////四个时间段冲突
- #define HWPTC_WORKSCHEDULE_NOT_EXIST 0x1F ////工作表不存在
- #define HWPTC_INVALID_RECT 0x20 ////非法的多边形
- #define HWPTC_INVALID_DIRECTION 0x21 ////非法的方向
- #define HWPTC_NOT_SET_TIME 0x22 //VPS没有设置时间段
- #define HWPTC_NOT_RIGHT_VERSION 0x23 //当前版本不可升级
- #define HWPTC_NO_BLOCK 0x24 //没有要求的块
- #define HWPTC_USER_FULL 0x25 //用户已满
- #define HWPTC_DEVICE_NOT_RIGHT 0x26 //当前设备类型不匹配
- #define HWPTC_PORT_NOT_EXISTS 0x27 //当前端口不存在
- #define HWPTC_UPDATAING_NOW 0x28 //正在升级
- #define HWPTC_CANNOT_DISARM 0x29 //当前是定时布撤防,无法撤防
- #define HWPTC_INVALID_RECTYPE 0x2A //无效录像工作类型
- #define HWPTC_INVALID_TYPE 0x2B //无效类型
- #define HWPTC_USER_PASSWORD_NOTMATCH 0x2C //用户名称和密码不匹配
- #define HWPTC_DEVICE_NOT_EXISTS 0x2D //设备不存在
- #define HWPTC_INVALID_RELAY 0x2E //请求失败,无效的继电器
- #define HWPTC_CONTROL_FAULT 0x2F //请求操作失败
- #define HWPTC_NETDEVICE_CHECKTIME 0x30 //网络用户正在校时
- #define HWPTC_NETDEVICE_DISCONNECT 0x31 //网络设备不在线
- #define HWPTC_NETDEVICE_CHNNOTSET 0x32 //网络通道未设置
- #define HWPTC_NOT_SUPPORT 0xF6 //不支持该功能
- #define HWPTC_INVALID_PARAM 0xF7 //参数非法
- #define HWPTC_ALLOC_HANDLE 0xF8 //分派句柄失败
- #define HWPTC_NO_SOCKET_IN_LIST 0xF9 //没有指定的SOCKET在队列中
- #define HWPTC_TERMINATE_OPERATION 0xFA //操作中断
- #define HWPTC_SOCKET_ALLOC 0xFB //Socket分派失败
- #define HWPTC_TCP_CONNECT_FAILED 0xFC //TCP连接失败
- //#define HWPTC_INVALID_TYPE 0xFD //错误类型
- #define HWPTC_QUEUE_ERR 0xFE //顺序错误
- #define HWPTC_TIME_OUT 0xFF //超时
- //协议端口
- #define HWPTC_PORT_PLAYBACK 8888
- #define HWPTC_PORT_VOICECOM 5200
- //协议类型
- #define PROTOCOL_HEAD_LEN 50 //协议头长度
- #define PROTOCOL_ERRFLAG_OFFSET 21
- #define OFFSET_ANSWER 0x00FF0000
- #define OFFSET_SET 0x0000FF00
- //协议说明-------------------------------------------------------
- #define PROTOCOL_VIDEO_PARA 0x01 //视频参数
- #define PROTOCOL_RECORD_WORK 0x02 //录像工作表
- #define PROTOCOL_ALARM 0x03 //报警设置
- #define PROTOCOL_WORK_STATE 0x04 //当前工作状态
- #define PROTOCOL_LOG 0x05 //日志查询
- #define PROTOCOL_MOV_DEC 0x06 //移动侦测
- #define PROTOCOL_MASK 0x07 //遮盖设置
- #define PROTOCOL_USER 0x08 //用户设置
- #define PROTOCOL_COLOR 0x09 //色彩设置
- #define PROTOCOL_PTZ 0x0A //云台设置
- #define PROTOCOL_RS232 0x0B //串口设置
- #define PROTOCOL_HDD 0x0C //硬盘设置
- #define PROTOCOL_OTHER 0x0D //其他设置,本机名称,断电报警,打包时间,硬盘覆盖方式
- #define PROTOCOL_POWER 0x0E //关机设置
- #define PROTOCOL_REMOTEUPDATA_FILELIST 0x0F //远程升级文件列表信息
- #define PROTOCOL_FORCEPOWEROFF 0x10 //强行关闭远程应用程序
- #define PROTOCOL_VERSION 0x11 //获取远端应用程序版本号
- #define PROTOCOL_PTZ_DIR 0x12 //按方向移动云台
- #define PROTOCOL_PTZ_SCHEDULE 0x13 //云台预置点
- #define PROTOCOL_PTZ_SCHEDULEGROUP 0x14 //云台巡航组
- #define PROTOCOL_PTZ_ASSISTANTCONTROL 0x15 //云台控制及辅助控制
- #define PROTOCOL_PTZ_XYPOS 0x16 //云台转动按坐标系
- #define PROTOCOL_ALARM_STATUS 0x18 //快速设置报警器状态
- #define PROTOCOL_ALARM_ASSISTANT 0x19 //报警器辅助协议
- #define PROTOCOL_QUICK_RECORD 0x1A //快速启动停止录像
- #define PROTOCOL_CAMDIV 0x1B //窗口对应解码器地址
- #define PROTOCOL_FORCESETIFRAME 0x1D //强行设置I帧
- #define PROTOCOL_VIEWPRO 0x1E //视频显示级别
- #define PROTOCOL_DSPRESET 0x1F //DSP重置 开关
- #define PROTOCOL_REMOTE_LOGINOUT 0x20 //远程登入 登出
- #define PROTOCOL_SETDEL_SCHEDULE 0x21 //远程设置删除预置点
- #define PROTOCOL_LOCK_CAM 0x22 //锁定摄像机
- #define PROTOCOL_MATRIX_SETVIDEOOUTPUT 0x23 //设置矩阵指定窗口的输出视频信息,使用该协议设置后切换状态变为定点
- #define PROTOCOL_MATRIX_DVRALRAM 0x24 //通知矩阵DVR报警
- #define PROTOCOL_MATRIX_SETSWITCHTYPE 0x25 //矩阵切换方式
- #define PROTOCOL_MATRIX_SETSWITCHBYWINDOWDETAIL 0x26 //设置按窗口切换的切换列表
- #define PROTOCOL_MATRIX_SETSWITCHBYDVRDETAIL 0x27 //设置按DVR切换的信息列表
- #define PROTOCOL_MATRIX_SETPOS 0x28 //查询设置矩阵定点信息
- #define PROTOCOL_MATRIX_FORCESETDVRVIDEO 0x29 //强行设置DVR视频到指定矩阵上
- #define PROTOCOL_MATRIX_GETVIDEOINFO 0x2A //获取矩阵上的视频显示信息
- #define PROTOCOL_DETAILRECORDINFO 0x2C //获取详细录像状态 1 定时录像 2 动态帧测录像 .....
- #define PROTOCOL_QUICKGET_RECORDWORK 0x2D //快速获取当前窗口的录像工作表
- #define PROTOCOL_DVR_DECODETYPE 0x2E //查询视频窗口编码格式 D1 CIF DCIF
- #define PROTOCOL_DVR_VIDEOLOST 0x2F //查询视频丢失信息
- #define PROTOCOL_MATRIX_RECOVERWORDTYPE 0x30 //强行恢复矩阵原有工作方式
- #define PROTOCOL_GPS_REGION_INOUT 0x31 //GPS定位车辆进出GPS定位区域
- #define PROTOCOL_DVR_NETLOGIN 0x32
- #define PROTOCOL_VPS_UPLOADEVENTINFO 0x33 ////上传事件信息
- #define PROTOCOL_VPS_EVENTLOG 0x34 ////事件设置信息
- #define PROTOCOL_VPS_EVENTANALYSERECT 0x35 ////事件总分析区域
- #define PROTOCOL_VPS_EVENTHISTORY 0x36 ////历史事件信息
- #define PROTOCOL_VPS_ANALYSESTATES 0x37 ////视频分析状态
- #define PROTOCOL_VPS_ANALYSEPARAMETER 0x38 ////视频分析参数信息
- #define PROTOCOL_CHECKTIME 0x39 //校时
- #define PROTOCOL_HEARTBEAT 0x3A //心跳
- #define PROTOCOL_GETHEARTBEAT 0x3B //获取心跳
- #define PROTOCOL_VPSOSTYPE 0x3C //获取VPS操作系统类型
- #define PROTOCOL_VPSCENTERIP 0x3D //VPSCenter 配置IP
- #define PROTOCOL_UPDATEALARM 0x3E //报警信息上传
- #define PROTOCOL_TEMPERATURE 0x3F //温度报警信息
- #define PROTOCOL_VIDEO_NETSEND_PARA 0x40 //网传数据流
- #define PROTOCOL_CHECKDVRTIME 0x49 //校时
- #define PROTOCOL_GETALARMSTATE 0x50 //报警状态
- #define PROTOCOL_ALARMHOST 0x63 //报警主机
- #define PROTOCOL_GETNETCFG 0x67 //获取网络信息
- #define MAX_HW_CHANNUM 32
- #define MAX_HW_REC_SEGMENT 3
- #define MAX_HW_ALARM_SEGMENT 3
- #define MAX_HW_MOV_SEGMENT 2
- #define MAX_HW_MASK_SEGMENT 2
- #define MAX_HW_USERNAME_LEN 32
- #define MAX_HW_CLIENTNAME_LEN 20
- #define MAX_HW_USERPWD_LEN 16
- #define MAX_HW_DEVICEID_LEN 30
- #define MAX_HW_CLIENTPWD_LEN 20
- #define MAX_HW_USER 20
- #define MAX_HW_RS232 10
- #define MAX_HW_DISKNUM 24
- #define MAX_HW_DAYS 8
- #define MAX_HW_ALARMIN 32
- #define MAX_HW_ALARMOUT 32
- #define MAX_HW_SLOT 32
- #define MAX_HW_AREAPOINTS 16
- #define MAX_HW_ARROWS 2
- #define MAX_HW_NETCARD_LEN 20
- #define MAX_HW_ETHERNET 2
- #define LOG_NORMAL 0 //正常
- #define LOG_NONE 1 //没有日志
- #define LOG_FINDING 2 //查找中
- #define LOG_NOMORE 3 //查完
- #define LOG_EXCEPTION 4 //异常
- //查找回放文件返回值
- #define HWPTC_DVR_FILE_SUCCESS 1000 //获取文件成功
- #define HWPTC_DVR_NOFILE 1001 //没有文件
- #define HWPTC_DVR_ISFINDING 1002 //正在查找
- #define HWPTC_DVR_NOMOREFILES 1003 //没有更多文件
- #define HWPTC_DVR_FILE_EXCEPTION 1004 //异常
- enum PTZDirections
- {
- DIR_DOWN_LEFT = 1,
- DIR_DOWN = 2,
- DIR_DOWN_RIGHT = 3,
- DIR_LEFT = 4,
- DIR_STOP = 5,
- DIR_RIGHT = 6,
- DIR_TOP_LEFT = 7,
- DIR_TOP = 8,
- DIR_TOP_RIGHT = 9,
- };
- enum PTZLens
- {
- LEN_ZOOM_IN = 1,
- LEN_ZOOM_OUT = 2,
- LEN_IRIS_OPEN = 3,
- LEN_IRIS_CLOSE = 4,
- LEN_FOCUS_NEAR = 5,
- LEN_FOCUS_FAR = 6,
- LEN_STOP = 7,
- };
- //0x01
- struct T_RVideoPara
- {
- BYTE bytWin; //窗口号
- BYTE bytBright; //亮度 0-255
- BYTE bytContrast; //对比度 0-127
- BYTE bytSaturation; //饱和度 0-127
- BYTE bytHue; //色度 0-127
- short intOsdX; //OsdX坐标 0-703
- short intOsdY; //OsdY坐标 0-575
- short intChannelX; //通道X坐标 0-703
- short intChannelY; //通道Y坐标 0-575
- BYTE bytChannelNameLen; //通道名称长度
- char bytChannelName[MAX_HW_USERNAME_LEN]; //通道名称
- BYTE bytOsdType; //Osd类型 1 XXXX-XX-XX/2 XX-XX-XXXX/3 XXXX年XX月XX日/4 XX月XX日XX年
- BYTE bytDate; //是否显示日期
- BYTE bytWeek; //是否显示星期s
- BYTE bytChn; //是否显示通道字符
- BYTE bytQuality; //图形质量 1-6 1-最好 6-最差
- BYTE bytMaxBps; //最大码率
- BYTE bytCompress; //图形格式 1 –CIF 2 QCIF 3 D1 4 700P 5 1080P
- BYTE bytFrame; //图形帧率 1-25
- BYTE bytVideoType; //1 视频流 2 复合流
- BYTE bytReserved[25]; //保留
- };
- //0x02
- struct T_RecSegment//每个时间段的录像类型
- {
- BYTE RecIsSet; //当前时间段是否设置
- BYTE RecType; //录像类型
- BYTE BegHour; //起始录像时间(时)
- BYTE BegMin; //起始录像时间(分)
- BYTE StopHour; //结束录像时间(时)
- BYTE StopMin; //结束录像时间(分)
- };
- struct T_DayRec
- {
- BYTE RecDayIsSet; //当天录像是否设置
- T_RecSegment RecSegment[MAX_HW_REC_SEGMENT];
- };
- struct T_WorkRec
- {
- T_DayRec EachDayRec[MAX_HW_DAYS]; //每一天的录像信息,其中0代表周一至周日全相同的信息
- };
- //0x03
- struct T_AlarmSegment //每个时间段的报警设置
- {
- BYTE IsSet; //当前时间段是否设置
- BYTE AlarmType; //布撤防类型
- BYTE BuFangHour; //布防时间(时)
- BYTE BuFangMin; //布防时间(分)
- BYTE CheFangHour; //撤防时间(时)
- BYTE CheFangMin; //撤防时间(分)
- };
- struct T_AlarmAct//报警动作
- {
- BYTE IsActSet;
- BYTE bytSlot; //通道
- BYTE bytCamera1; //监控点
- BYTE bytCamera2; //监控点
- BYTE bytPresetNo; //预置点
- };
- struct T_DayAlarm //每一天的报警设置
- {
- BYTE RecDayIsSet; //当天报警是否设置
- BYTE RecTime; //警后录像秒数
- BYTE RecRelay; //警后联动继电器
- long AlarmRec; //警后联动录像
- T_AlarmSegment AlarmSegment[MAX_HW_ALARM_SEGMENT];
- };
- struct T_WorkAlarm
- {
- T_DayAlarm EachDayAlarm[MAX_HW_DAYS]; //每天的报警设置,其中0代表周一至周日全相同的报警设置
- T_AlarmAct ActSegment[MAX_HW_ALARM_SEGMENT];
- };
- //0x04
- struct T_WorkState //工作状态
- {
- long RecState; //录像状态
- long AlarmState; //报警状态
- long DspState; //Dsp状态
- long VideoState; //视频信号状态
- };
- //0x06
- struct T_EachMovSegment//每个移动框的信息
- {
- BYTE IsSet; //该移动框是否被设置
- short intLeft; //352
- short intTop; //288
- short intWidth;
- short intHeight;
- };
- struct T_MovDec
- {
- BYTE bytSensitive; //灵敏度 1--6 1 最灵敏 6 最不灵敏
- BYTE bytRecordTime; //录像持续时间 10-120秒 5的倍数
- BYTE bytAuto; //自适应 0/1
- BYTE bytRelay; //继电器 BIN(00,11,01,10)
- BYTE bytAudio; //语音提示 0/1
- T_EachMovSegment MovSegment[MAX_HW_MOV_SEGMENT];//区域352*288 16的倍数
- };
- //0x07
- struct T_EachMaskSegment //每个遮盖框的信息
- {
- BYTE IsSet; //1-设置 0-未设置
- short intLeft; //0-352
- short intTop; //0-288
- short intWidth; //0-352
- short intHeight; //0-288
- };
- struct T_Mask
- {
- T_EachMaskSegment MaskSegment[MAX_HW_MASK_SEGMENT];
- };
- //0x08
- struct T_UserInfo
- {
- char UserName[MAX_HW_USERNAME_LEN]; //用户名
- char UserPwd[MAX_HW_USERPWD_LEN]; //密码
- BYTE UserPro; //3-高 2-普通 1-低
- char UserDetail[20];
- };
- struct T_UserInfoList {
- BYTE UserNum; //用户数目
- T_UserInfo User[MAX_HW_USER]; //用户
- };
- enum TypeUsOp{
- Type_UsAdd = 0x01, //添加用户
- Type_UsDel = 0x02, //删除用户
- Type_UsChg = 0x03, //修改用户
- };
- //0x09
- struct T_RVideoColor
- {
- BYTE bytWin; //窗口号 1-n
- BYTE bytBright; //亮度 0-255
- BYTE bytContrast; //对比度 0-127
- BYTE bytSaturation; //饱和度 0-127
- BYTE bytHue; //色度 0-127
- };
- //0x0a
- struct T_DecoderPara
- {
- BYTE bytDecAddr;
- BYTE bytDecPrtc; //decoder protocol 1-Howell 2-Pelco-D 3-Alec 4-YAAN 5- B01协议 6-松下 7-红苹果 8-GE 9-Pelco-P
- long lngBaudRate; //1200.2400,4800,9600,19200,其他为无效值 //字节DVR本地通道只读
- BYTE bytDataBit; //5,6,7,8(其他为无效值) //字节DVR本地通道只读
- BYTE bytStopBit; //1或2(其他为无效值) //字节DVR本地通道只读
- BYTE bytParityBit; //0:None 1:奇 2:偶 (其他无效) //字节DVR本地通道只读
- BYTE bytRS232No; //0-n //字节DVR本地通道只读
- BYTE bytFlowControl; //0-None 1-Soft 2-Hard //字节DVR本地通道只读
- };
- //0x0b
- struct T_RS232
- {
- BYTE bytRSNo;
- long lngBaudRate;
- BYTE bytDataBit;
- BYTE bytStopBit;
- BYTE bytParityBit;
- };
- struct T_RS232List
- {
- BYTE bytRS232Number;
- T_RS232 RS232[MAX_HW_RS232];
- };
- //0x0c
- struct T_HDDINFO
- {
- BYTE byteDiskNo;
- long lngDiskVolume;
- long lngDiskFreeSpace;
- };
- struct T_HDDINFOList
- {
- BYTE byteDiskNumber;
- long lngTotalVolume;
- long lngTotalFreeSpace;
- T_HDDINFO Disk[MAX_HW_DISKNUM];
- };
- //0x0d
- struct T_OTHERINFO
- {
- char HostName[MAX_HW_USERNAME_LEN];
- BYTE byteWinNumber;
- BYTE byteAlarmOutNumber;
- BYTE bytePowerOffAlarm;
- long lngChgRecTime;
- BYTE byteDiskCover;
- BYTE byteDiskPercent;
- };
- //0x0e
- struct T_POWEROFFTIME
- {
- BYTE IsSet;
- BYTE Hour;
- BYTE Minute;
- };
- struct T_POWEROFFWORKSHEET
- {
- T_POWEROFFTIME Poweroff[MAX_HW_DAYS];
- };
- //0x10
- enum TypePowerOp{
- Type_AppExit = 0x01,
- Type_SysReStart = 0x02,
- Type_SysPowerOff = 0x03,
- };
- //0x11
- struct T_APPVERSION
- {
- long Version;
- BYTE AppType;
- };
- //0x16
- struct T_AutoZoomIn
- {
- BYTE nChannel;
- RECT rect;
- };
- //0x18
- struct T_AlarmInState
- {
- BYTE AlarmInNumber;
- BYTE AlarmState[MAX_HW_ALARMIN]; //1-报警 2-布防 3-撤防 10-异常 11-不存在
- };
- //0x19
- struct T_AlarmOutState
- {
- BYTE AlarmOutNumber;
- BYTE AlarmState[MAX_HW_ALARMOUT]; //1-输出 0-关闭
- };
- //0x20
- struct T_RemoteUser {
- BYTE UserPro;
- char UserName[MAX_HW_USERNAME_LEN];
- char UserPwd[MAX_HW_USERPWD_LEN];
- };
- //0x2c
- struct T_RECTYPE{
- BYTE byteChannelNumber;
- BYTE RecordType[MAX_HW_SLOT];
- };
- //0x2E
- struct T_VideoDecodeType{
- BYTE byteChannelNumber;
- BYTE DecodeType[MAX_HW_SLOT];
- };
- //0x2F
- struct T_ISVLAlarm{
- BYTE byteChannelNumber;
- BYTE VLAlarm[MAX_HW_SLOT];
- };
- //0x32
- struct T_LogDecvice{
- long ClientType; //1-管理机 2-客户端
- BYTE ClientIp[4]; //客户端IP地址 如:192 168 0 1
- char ClientHostName[MAX_HW_CLIENTNAME_LEN];//客户端主机名
- char ClientUserName[MAX_HW_CLIENTNAME_LEN];//登录用户名 1
- char ClientUserPWD[MAX_HW_CLIENTPWD_LEN];//登录密码 1
- };
- struct T_LogDecviceRes{
- BYTE Result; //0-成功 1-失败
- char DeviceId[MAX_HW_DEVICEID_LEN]; //设备序列号
- BYTE VideoNum; //设备视频通道号
- BYTE AlarmInNum; //报警输入数
- BYTE AlarmOutNum;//报警输出数
- char DVRType[8]; //设备类型
- BYTE NetWorkPortNum;//网口数目
- BYTE LocalVideoNum;//本地视频数目
- BYTE NetVideoNum;//网络视频数目
- };
- struct T_LogOutDecvice
- {
- BYTE ClientIp[4];//客户端IP
- char ClientHostName[MAX_HW_CLIENTNAME_LEN];//客户端主机名
- };
- //0x33
- struct T_VPSEVENT{
- DWORD dwSize;
- BYTE Channel; //通道号1--16
- BYTE EventType; //事件类型1--6
- BYTE EventNo; //事件编号1--4
- BYTE WeekDay; //星期几
- SYSTEMTIME StartTime;
- SYSTEMTIME EndTime;
- long ObjectID; //事件标志号
- long StaySeconds; //停留时间
- RECT objRect;
- char FilePath[32];//文件路径
- char RecordFileName[32];//录像文件名
- char PictureName[32];//图片文件名
- DWORD ScoutChannel;
- char FileScoutPath[32];
- char RecordScoutFileName[32];
- char PictureScoutName[32];
- DWORD AreaPointsNum;
- POINT Area[MAX_HW_AREAPOINTS];
- DWORD ArrowPointsNum;
- POINT Arrow[MAX_HW_ARROWS];
- long Addendum1; //附录1(时间和方向偏差)
- long Addendum2;
- long Addendum3;
- };
- //Log File Block
- struct T_GetFileBlock{
- DWORD Year;
- DWORD Month;
- DWORD Day;
- BYTE Channel;
- BYTE LogType;
- DWORD lngBlockNo;
- };
- struct T_FileBlock{
- DWORD CurrentBlockNo;
- DWORD TotalBlockNumber;
- DWORD CurrentBlockDataLen;
- char BlockData[2048];
- };
- struct T_FileFindLog{
- SYSTEMTIME StartTime;
- SYSTEMTIME EndTime;
- DWORD dwMajorType;
- DWORD dwMinorType;
- };
- struct T_LogItem{
- SYSTEMTIME time;
- DWORD dwMajorType;
- DWORD dwMinorType;
- char User[32];
- char Description[128];
- };
- struct T_GetVPSFileBlock{
- BYTE Year;
- BYTE Month;
- BYTE Day;
- BYTE Channel;
- long lngBlockNo;
- };
- //0x39
- struct T_CHECKTIME{
- BYTE bSet;
- BYTE ClientIp[4];
- long ClientPort;
- long IntervalMinutes;
- };
- //0x3A
- struct T_NETSTATE{
- BYTE Flag;
- BYTE DeviceIp[4];
- char DeviceName[20];
- char DeviceId[MAX_HW_DEVICEID_LEN];
- char NetCardId[MAX_HW_NETCARD_LEN];
- long MsgPort;
- };
- //0x3D
- struct T_VPSCENTER{
- BYTE CenterIp[4];
- long CenterPort;
- };
- //0x3F
- struct T_Temperature{
- BYTE bSet;
- long AlarmTemp;
- long CurrentTemp;
- };
- //0x40
- struct T_VideoNetSendPara{
- BYTE Channel;
- BYTE bytCompress; //图形格式 Cif,D1
- BYTE bytFrame; //图形帧率
- BYTE bytMaxBps; //最大码率
- BYTE bytQuality; //图形质量
- BYTE bytVideoType; //音频流,视频流,复合流
- };
- //0x49
- struct T_SysDVRTime{
- BYTE bytYear;
- BYTE bytMonth;
- BYTE bytDay;
- BYTE bytHour;
- BYTE bytMinute;
- BYTE bytSecond;
- };
- //0x50
- struct T_SysAlarmState{
- DWORD dwAlarmIn;
- DWORD dwVideoInterrupt;
- DWORD dwMotion;
- DWORD dwTemper;
- DWORD dwRecordFile;
- DWORD dwRecordTime;
- DWORD dwTurn;
- DWORD dwDisk;
- DWORD dwDsp;
- DWORD dwDistrube;
- DWORD dwStopRecord;
- DWORD dwShelter;
- DWORD dwOffLine;
- DWORD dwBlur;
- DWORD Res[11];
- };
- struct T_tPlayFile{
- SYSTEMTIME beg;
- SYSTEMTIME end;
- };
- struct T_FindFile{
- BYTE bytWin;
- BYTE Res[3];
- SYSTEMTIME beg;
- SYSTEMTIME end;
- };
- struct T_FindFileEx{
- BYTE bytWin;
- BYTE Res[3];
- SYSTEMTIME beg;
- SYSTEMTIME end;
- RECT rect;//704*576
- };
- struct T_EtherNetCard{
- DWORD dwIPAuto;//IP获取方式 0(自动获取)/1(手动修改)
- BYTE DVRIP[16];//DVRIP
- BYTE MaskIP[16];//子网掩码
- BYTE GatewayIP[16];//默认网关
- DWORD dwDNSAuto;//dns获取方式 0(自动获取)/1(手动修改)
- BYTE DefaultDNSIP[16];//首选DNS
- BYTE StandByDNSIP[16];//备用DNS
- BYTE MacAddress[8];//物理地址
- BYTE Res[32];//保留
- };
- //0x63
- //0x64
- struct T_NetConfig{
- DWORD NetCardNum;//网卡数目
- T_EtherNetCard EtherNet[MAX_HW_ETHERNET];//网口信息
- DWORD dwPPPoE; //是否启用PPPOE 0-Off 1-On
- BYTE PPPoEUser[MAX_HW_USERNAME_LEN];//PPPOE 用户名
- BYTE PPPoEPwd[32];//PPPOE 密码
- BYTE PPPoEIP[16];//ReadOnly PPPOE IP
- BYTE Res[32];
- };
- typedef void (CALLBACK * RecvVpsEventCallBack)(long hDev, T_VPSEVENT EventInfo);
- typedef void (CALLBACK * RecvAlarmCallBack)(long hDev,BYTE AlarmType,long AlarmState);
- typedef void (CALLBACK * AlarmHostCallBack)(long hDev,long Host,long Alarm);
- typedef void (CALLBACK * PlayBackDataCallBack)(long PlayBackId,int VideoType,char * buf,long buflen,long dwUser);
- typedef void (CALLBACK * PtcRealDataCallBack)(long RealId,int VideoType,char * buf,long buflen,long dwUser);
- HW_DVR_API BOOL WINAPI HwPtcSetMsgTimeOut(long MiniSeconds);
- HW_DVR_API long WINAPI HwPtcGetMsgTimeOut();
- HW_DVR_API BOOL WINAPI HwPtcInit();
- HW_DVR_API BOOL WINAPI HwPtcRelease();
- HW_DVR_API long WINAPI HwPtcGetMsgCount();
- HW_DVR_API long WINAPI HwPtcGetSockCount();
- HW_DVR_API long WINAPI GetLastNetError();
- //0x32
- HW_DVR_API long WINAPI HwPtcLogin(const char * szDeviceIP, long lngPort,T_LogDecvice LoginInfo,T_LogDecviceRes * LoginRes);
- HW_DVR_API BOOL WINAPI HwPtcLogout(long lngSocket,T_LogOutDecvice LogoutInfo);
- //0x01
- HW_DVR_API BOOL WINAPI HwPtcGetVideoPara(long hDev,short nChannel,T_RVideoPara* VideoPara);
- HW_DVR_API BOOL WINAPI HwPtcSetVideoPara(long hDev,short nChannel,T_RVideoPara VideoPara);
- //0x02
- HW_DVR_API BOOL WINAPI HwPtcGetWorkSheet(long hDev,BYTE nWorkSheet,BYTE nChannel,T_WorkRec * WorkRec);
- HW_DVR_API BOOL WINAPI HwPtcSetWorkSheet(long hDev,BYTE nWorkSheet,BYTE nChannel,T_WorkRec WorkRec);
- //0x03
- HW_DVR_API BOOL WINAPI HwPtcGetAlarmSetting(long hDev,BYTE nAlarm,T_WorkAlarm * WorkAlarm);
- HW_DVR_API BOOL WINAPI HwPtcSetAlarmSetting(long hDev,BYTE nAlarm,T_WorkAlarm WorkAlarm);
- //0x04
- HW_DVR_API BOOL WINAPI HwPtcGetDevWorkState(long hDev,T_WorkState * WorkState);
- //0x06
- HW_DVR_API BOOL WINAPI HwPtcGetMotionDetect(long hDev,BYTE nChannel,T_MovDec * MotionDetect);
- HW_DVR_API BOOL WINAPI HwPtcSetMotionDetect(long hDev,BYTE nChannel,T_MovDec MotionDetect);
- //0x07
- HW_DVR_API BOOL WINAPI HwPtcGetMaskInfo(long hDev,BYTE nChannel,T_Mask * MaskInfo);
- HW_DVR_API BOOL WINAPI HwPtcSetMaskInfo(long hDev,BYTE nChannel,T_Mask MaskInfo);
- //0x08
- HW_DVR_API BOOL WINAPI HwPtcGetDevUserInfo(long hDev,T_UserInfoList * UserInfo);
- HW_DVR_API BOOL WINAPI HwPtcSetDevUserInfo(long hDev,TypeUsOp UserOp,T_UserInfo UserInfo);
- //0x09
- HW_DVR_API BOOL WINAPI HwPtcGetVideoColor(long hDev,BYTE nChannel,T_RVideoColor * VideoColor);
- HW_DVR_API BOOL WINAPI HwPtcSetVideoColor(long hDev,T_RVideoColor VideoColor);
- //0x0a
- HW_DVR_API BOOL WINAPI HwPtcGetDecoderPara(long hDev,BYTE nChannel,T_DecoderPara * DecoderPara);
- HW_DVR_API BOOL WINAPI HwPtcSetDecoderPara(long hDev,BYTE nChannel,T_DecoderPara DecoderPara);
- //0x0b
- HW_DVR_API BOOL WINAPI HwPtcGetRS232(long hDev,T_RS232List * Rs232List);
- HW_DVR_API BOOL WINAPI HwPtcSetRS232(long hDev,T_RS232List Rs232List);
- //0x0c
- HW_DVR_API BOOL WINAPI HwPtcGetHDDInfo(long hDev,T_HDDINFOList * HDDINFOList);
- //0x0d
- HW_DVR_API BOOL WINAPI HwPtcGetOtherInfo(long hDev,T_OTHERINFO * OtherInfo);
- HW_DVR_API BOOL WINAPI HwPtcSetOtherInfo(long hDev,T_OTHERINFO OtherInfo);
- //0x0e
- HW_DVR_API BOOL WINAPI HwPtcGetPowerWrkShtInfo(long hDev,T_POWEROFFWORKSHEET * PowerWrkShtInfo);
- HW_DVR_API BOOL WINAPI HwPtcSetPowerWrkShtInfo(long hDev,T_POWEROFFWORKSHEET PowerWrkShtInfo);
- //0x10
- HW_DVR_API BOOL WINAPI HwPtcForceSetPower(long hDev,TypePowerOp PowerOp);
- //0x11
- HW_DVR_API BOOL WINAPI HwPtcGetAppVersion(long hDev,T_APPVERSION * AppVersion);
- //0x12
- HW_DVR_API BOOL WINAPI HwPtcPTZDir(long hDev,BYTE nChannel,BYTE nDir,BYTE Speed);
- //0x13
- HW_DVR_API BOOL WINAPI HwPtcPTZGotoPerSet(long hDev,BYTE nChannel,BYTE nPerSet);
- //0x15
- HW_DVR_API BOOL WINAPI HwPtcPTZLen(long hDev,BYTE nChannel,BYTE nLen);
- //0x16
- HW_DVR_API BOOL WINAPI HwPtcPTZAutoZoomIn(long lngSocket,T_AutoZoomIn autozi);
- //0x18
- //1报警 2布防 3 撤防 4 消警
- HW_DVR_API BOOL WINAPI HwPtcGetAlarmInState(long hDev,T_AlarmInState * AlarmInState);
- HW_DVR_API BOOL WINAPI HwPtcSetAlarmInState(long hDev,BYTE AlarmIn,BYTE AlarmInState);
- //0x19
- //0-无效 1-有效
- HW_DVR_API BOOL WINAPI HwPtcGetAlarmOutState(long hDev,T_AlarmOutState * AlarmOutState);
- HW_DVR_API BOOL WINAPI HwPtcSetAlarmOutState(long hDev,BYTE AlarmOut,BYTE AlarmOutState);
- //0x1A
- HW_DVR_API BOOL WINAPI HwPtcRecord(long hDev,BYTE nChannel,BYTE bRecord);
- //0x1B
- HW_DVR_API BOOL WINAPI HwPtcGetDecoderAddr(long hDev,BYTE nChannel,BYTE * Address);
- HW_DVR_API BOOL WINAPI HwPtcSetDecoderAddr(long hDev,BYTE nChannel,BYTE Address);
- //0x1D
- HW_DVR_API BOOL WINAPI HwPtcMakeKeyFrame(long hDev,BYTE nChannel);
- //0x1E
- HW_DVR_API BOOL WINAPI HwPtcGetVideoLevel(long hDev,BYTE nChannel,BYTE * Level);
- HW_DVR_API BOOL WINAPI HwPtcSetVideoLevel(long hDev,BYTE nChannel,BYTE Level);
- //0x1F
- HW_DVR_API BOOL WINAPI HwPtcGetDspState(long hDev,BYTE * nState);
- HW_DVR_API BOOL WINAPI HwPtcSetDspState(long hDev,BYTE nState);
- //0x20
- HW_DVR_API BOOL WINAPI HwPtcGetLoginUser(long hDev,BYTE AppType,T_RemoteUser * UserInfo);
- HW_DVR_API BOOL WINAPI HwPtcSetLoginUser(long hDev,BYTE AppType,T_RemoteUser UserInfo);
- //0x21
- HW_DVR_API BOOL WINAPI HwPtcPTZAddPerSet(long hDev,BYTE nChannel,BYTE nPerSet);
- HW_DVR_API BOOL WINAPI HwPtcPTZDelPerSet(long hDev,BYTE nChannel,BYTE nPerSet);
- //0x2C
- HW_DVR_API BOOL WINAPI HwPtcGetRecordType(long hDev,T_RECTYPE * RecordType);
- //0x2D
- HW_DVR_API BOOL WINAPI HwPtcGetCurrentWorkSheet(long hDev,BYTE * byteWorkSheet);
- HW_DVR_API BOOL WINAPI HwPtcSetCurrentWorkSheet(long hDev,BYTE byteWorkSheet);
- //0x2E
- HW_DVR_API BOOL WINAPI HwPtcGetVideoDecodeType(long hDev,T_VideoDecodeType * DecodeType);
- //0x2F
- HW_DVR_API BOOL WINAPI HwPtcGetIsVLAlarm(long hDev,T_ISVLAlarm * VLAlarm);
- HW_DVR_API BOOL WINAPI HwPtcSetIsVLAlarm(long hDev,T_ISVLAlarm VLAlarm);
- //0x33
- HW_DVR_API BOOL WINAPI HwPtcSetVPSEventCallBack(RecvVpsEventCallBack VpsEventCallBack);
- HW_DVR_API BOOL WINAPI HwPtcRegisterVPSEventCallBack(long hDev,RecvVpsEventCallBack VpsEventCallBack);
- HW_DVR_API BOOL WINAPI HwPtcUnRegisterVPSEventCallBack(long hDev);
- //Flie Block
- HW_DVR_API BOOL WINAPI HwPtcFindFileLog(long hDev,T_GetFileBlock GetFileBlock,T_FileBlock * FileBlock);
- HW_DVR_API BOOL WINAPI HwPtcFindVpsEventFileLog(long hDev,T_GetVPSFileBlock GetFileBlock,T_FileBlock * FileBlock);
- HW_DVR_API long WINAPI HwPtcStartFindLog(long hDev,T_FileFindLog SelectMode);
- HW_DVR_API long WINAPI HwPtcFindNextLog(long hFindhandle,T_LogItem * item);
- HW_DVR_API BOOL WINAPI HwPtcStopFindLog(long hFindhandle);
- //0x39
- HW_DVR_API BOOL WINAPI HwPtcGetCheckTime(long hDev,T_CHECKTIME * CheckTime);
- HW_DVR_API BOOL WINAPI HwPtcSetCheckTime(long hDev,T_CHECKTIME CheckTime);
- //0x3B
- HW_DVR_API BOOL WINAPI HwPtcChkNetState(long hDev,T_NETSTATE * NetState);
- //0x3C
- HW_DVR_API BOOL WINAPI HwPtcGetDevOS(long hDev,BYTE * OsType);
- //0x3D
- HW_DVR_API BOOL WINAPI HwPtcGetVpsCenter(long hDev,T_VPSCENTER * VpsCenter);
- HW_DVR_API BOOL WINAPI HwPtcSetVpsCenter(long hDev,T_VPSCENTER VpsCenter);
- //0x3E
- HW_DVR_API BOOL WINAPI HwPtcSetAlarmCallBack(RecvAlarmCallBack AlarmCallBack);
- HW_DVR_API BOOL WINAPI HwPtcRegisterAlarmCallBack(long hDev,RecvAlarmCallBack AlarmCallBack);
- HW_DVR_API BOOL WINAPI HwPtcUnRegisterAlarmCallBack(long hDev);
- //0x3F
- HW_DVR_API BOOL WINAPI HwPtcGetTemperature(long hDev,T_Temperature * Temperature);
- HW_DVR_API BOOL WINAPI HwPtcSetTemperature(long hDev,T_Temperature Temperature);
- //0x40
- HW_DVR_API BOOL WINAPI HwPtcGetVideoNetSendPara(long hDev,BYTE nChannel,T_VideoNetSendPara * VideoPara);
- HW_DVR_API BOOL WINAPI HwPtcSetVideoNetSendPara(long hDev,T_VideoNetSendPara VideoPara);
- //0x49
- HW_DVR_API BOOL WINAPI HwPtcGetDVRTime(long hDev,T_SysDVRTime * DvrTime);
- HW_DVR_API BOOL WINAPI HwPtcSetDVRTime(long hDev,T_SysDVRTime DvrTime);
- //0x50
- HW_DVR_API BOOL WINAPI HwPtcGetAlarmState(long hDev,T_SysAlarmState * AlarmState);
- //0x67
- HW_DVR_API BOOL WINAPI HwPtcGetNetConfig(long hDev,T_NetConfig * NetConfig);
- HW_DVR_API BOOL WINAPI HwPtcSetNetConfig(long hDev,T_NetConfig NetConfig);
- //Talk
- HW_DVR_API BOOL WINAPI HwPtcTalkStart(long hDev,long Port,bool duplex);
- HW_DVR_API BOOL WINAPI HwPtcTalkStop();
- //PlayBack
- HW_DVR_API long WINAPI HwPtcFindFile(long hDev,long Port,T_FindFile FindInfo);
- HW_DVR_API long WINAPI HwPtcFindSmartFile(long hDev,long Port,T_FindFileEx FindInfo);
- HW_DVR_API long WINAPI HwPtcFindNextFiles(long findhandle,T_tPlayFile * PlayFile);
- HW_DVR_API BOOL WINAPI HwPtcFindClose(long findhandle);
- HW_DVR_API long WINAPI HwPtcPlayBackByTime(long hDev,long Port,long nSlot,T_tPlayFile * PlayFile);
- HW_DVR_API BOOL WINAPI HwPtcPlayBackStart(long hPlayhandle);
- HW_DVR_API BOOL WINAPI HwPtcPlayBackGetPos(long hPlayhandle,long * Pos);
- HW_DVR_API BOOL WINAPI HwPtcPlayBackSetPos(long hPlayhandle,long Pos);
- HW_DVR_API BOOL WINAPI HwPtcStopPlayBack(long hPlayhandle);
- HW_DVR_API BOOL WINAPI HwPtcPlayBackGetFileSize(long hPlayhandle,long * pSize);
- HW_DVR_API BOOL WINAPI HwPtcSetPlayDataCallBack(long hPlayhandle,PlayBackDataCallBack Func,long lngUser);
- //Buf = NULL Type=10 为结束标记
- HW_DVR_API BOOL WINAPI HwPtcSetPlayDataCallBackEx(long hPlayhandle,PlayBackDataCallBack Func,long lngUser);
- HW_DVR_API BOOL WINAPI HwPtcPlayBackGetHead(long hPlayhandle,BYTE * headbuffer,int bufferlen,int * headlen);
- //Alarm Host
- HW_DVR_API BOOL WINAPI HwPtcSetAlarmHostCallBack(AlarmHostCallBack Func);
- HW_DVR_API BOOL WINAPI HwPtcRegisterAlarmHostCallBack(long hDev,AlarmHostCallBack Func);
- HW_DVR_API BOOL WINAPI HwPtcUnRegisterAlarmHostCallBack(long hDev);
- //RealData NotSupport Now
- HW_DVR_API long WINAPI HwPtcRealPlay(long hDev,long Port,long VideoNo,LONG LinkMode,int TimeOut);
- HW_DVR_API BOOL WINAPI HwPtcRealStop(long hRealPlay);
- HW_DVR_API BOOL WINAPI HwPtcRealCapture(long hRealPlay);
- HW_DVR_API BOOL WINAPI HwPtcRegisterRealDataCallBack(long hRealPlay,PtcRealDataCallBack Func,DWORD lngUser);
- #endif
|