#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