⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverconfigdef.h

📁 TM8000硬盘录像机客户端编程文档和Demo源代码
💻 H
字号:
#ifndef SERVER_CONFIG_DEF_H
#define SERVER_CONFIG_DEF_H

#include "NetDefine.h"

#define   MAXPORTNO					16//DVR最大端口宏定义
#define   MAXNAMELEN                31

#define   ARRAY_MAXCONTACT			16//最大探头数
#define   ARRAY_MAXPORT				18
/*********************所有参数大结构(用于获取非88主机的参数配置)****************/
typedef struct _Record_Time_Seg
{
	UInt8       nBgnHour ;
	UInt8       nBgnMinute ;	
	UInt8       nEndHour ;
	UInt8       nEndMinute ;	
} Record_Time_Seg;

typedef struct _RECORD_VIDEO_PARAMETER
{
	UInt8 		nLuma;		//亮度
	UInt8 		nChroma;	//色度
	UInt8 		nContrast;	//对比度
	UInt8 		modify;		//表示是否被修改过(DVR主机使用)
} Record_Video_Parameter;

typedef struct _Record_Config_Table_Ext 
{
	Record_Video_Parameter		VideoPara;
	UInt8     					nVideoProtectStatus;
	Record_Time_Seg				tScheduleRecEveryday1; //每天定时录像时间段1
	Record_Time_Seg				tScheduleRecEveryday2; //每天定时录像时间段2
	Record_Time_Seg				tAlarmRecEveryday1;    //每天报警布防时间段1
	Record_Time_Seg				tAlarmRecEveryday2;    //每天报警布防时间段2
	UInt8						ScheduleRecDefendDayTag;//定时录像,布防时间段,天选择标志,每位表示一天,从高位到低位:每天、星期天、654321
	UInt8						AlarmRecDefendDayTag;	//移动录像,布防时间段,天选择标志,每位表示一天,从高位到低位:每天、星期天、654321
	UInt8						MotionAlarmOutTag;		//移动报警联动输出标志,每位表示一个输出,末位是输出1
	UInt16						nClearAlarmOutTime;		//自动清除报警输出时限
	UINT32						IFrameInterval;
	UINT32						IFrameIntervalMSec;//I帧间隔毫秒数

	UInt32						nMotionCheck[13];
	UInt32						nImageMask[13];
	UInt16						nAssociRecMark;

	UInt8						nCameraBaudRate;//0~7						
	UInt8						nCameraAddr;//0~255
} Record_Config_Table_Ext;

typedef struct  _PORT_PARAMETER//各端口的参数
{
	Record_Time_Seg		tScheduleRecTable1[7] ;//定时录像时间段1, 星期1到星期天 
	Record_Time_Seg		tScheduleRecTable2[7] ;//定时录像时间段2, 星期1到星期天 
	Record_Time_Seg		tAlarmRecTable1[7] ;//移动报警时间段1, 星期1到星期天 
	Record_Time_Seg		tAlarmRecTable2[7] ;//移动报警时间段2, 星期1到星期天 
	UInt32				nImageQuality ;		
	//cif 0:1152K 1:768K 2:512K 3:384K 4:256K 5:128K 6:64K 7:32K
	//d1 0:4.5M 1:4M 2:3M 3:2M 4:1.5M 5:1M 6:512K 7:256M 8:128K
	UInt8				nImageFrame ;		//PAL制 1~25帧  N制:1~30帧
	UInt8				nAudio ;//0:不录声音  1:录声音

	UInt8				nMotionCheckRegion[13];//移动报警区域(共分99段):nMotionCheckRegion[0]的低位表示第一段起,置1表示打开
	UInt8				nImageMask[13];        //屏蔽区域(同上)
	UInt8				nMotionCheckSensitivity;//移动报警检测灵敏度值(0~99)

	UInt32				nMotionAlarmTime ;//移动报警录像时间(分钟)
	char				nTermName[32];	  //端口标题	
	UInt8				nRecordPortStatus ;// 6.01中已无效,不能通过客户端控制主机手动录像
	UInt8				nRecordSchedulePortStatus ; //0:不定时录像  1:定时录像
	UInt8				nRecordAlarmPortStatus ;   //0:不报警录像  1:报警录像
}PORT_PARAMETER;

typedef struct _Contact_Track_Parameter{
	UInt8 nPreSetPort[8];
	UInt8 nDelay[8];		
} Contact_Track_Parameter;

typedef struct _Contact_Alarm_Parameter
{
	Record_Time_Seg    tContactAlarmRecTable1[7] ;
	Record_Time_Seg    tContactAlarmRecTable2[7] ;
	UInt8              nContactAlarmTime ;
	UInt16             nContactAlarmPort ;
	UInt8              nContactAlarmOut ;	
	UInt8              nContactAlarmStatus ;
	Record_Time_Seg	   tContactAlarmRecEveryday1;
	Record_Time_Seg	   tContactAlarmRecEveryday2;
	UInt8			   ContactAlarmRecDefendDayTag;//探头报警,布防时间段,天选择标志,每位表示一天,从高位到低位:每天、星期天、654321
	Contact_Track_Parameter nContactTrack[8];
	UInt8			   nPreSetPort[ARRAY_MAXPORT];	//预置点	
	UInt16				nClearAlarmOutTime;		//=0:不清除,>0,nClearAlarmOutTime秒后清除报警
} Contact_Alarm_Parameter;

typedef struct _USER_DVR_PARAMETER
 {
	UInt8              nPortNo;                 //端口数  
	Record_Time_Seg    tProbeAlarmRecTable1[7] ;//探头报警时间段1, 星期1到星期天
	Record_Time_Seg    tProbeAlarmRecTable2[7] ;//探头报警时间段2, 星期1到星期天
	UInt8              nProbeAlarmPort[16] ;	//分别对应1-16号探头报警联动录像端口
	UInt8              nProbeAlarmOut[16] ;		//分别对应1-16号探头报警联动输出
	UInt8              nRecordProbeAlarmStatus ;//是否探头报警录像 0:不录像  1:录像
	UInt8              nProbeAlarmTime ;		//探头报警录像时间
	UInt32             nNetIPAddr ;				//网络IP地址
	UInt32             nSubNetMask ;			//子网掩码
	UInt32             nNetGateWay ;			//网关

	UInt8              nWDMethod ;				//0:自动覆盖 1:覆盖前提示
	UInt8              nRecordDateChar ;		//0:不叠加日期  1:叠加日期
	UInt8              nRecordRateVarySmart ;	//码率动态调整灵敏度 0:不调整 1:低速  2:中 3:高
	UInt8              nRecordRateVaryTime ;	//码率动态调整速度 0:慢速  1:中速  2:快速

    PORT_PARAMETER     PortConfig[MAXPORTNO];//对应各端口的参数
	char               DVRName[MAXNAMELEN];  // Add by zhouzhengxiang
	Record_Config_Table_Ext			PortConfigEx[MAXPORTNO];
	Contact_Alarm_Parameter			contactPara[ARRAY_MAXCONTACT]; //探头报警参数
	UInt8							nLanguage;       //0:中文 1:英文
    UInt8							nStandard;		 //制式 0:PAL制 1:N制
	UInt16							nVersion;		//版本
} USER_DVR_PARAMETER;

/************************************88系统参数结构**********************************/
#define PARA_TYPE_CONFIG							0x00	// 主机端配置信息(LoginParam)
#define PARA_TYPE_RECORD 							0x01	// 录像参数(RecSetParam)
#define PARA_TYPE_ALARM 							0x02	// 报警参数()
#define PARA_TYPE_ALARM_MOVE 					    0x03	// 移动报警()
#define PARA_TYPE_ALARM_MOVE_PRESET 			    0x04	// 定时录象和移动录象设置(RecParam)
#define PARA_TYPE_ALARM_MOVE_PRAR 		      	    0x05	// 移动报警参数(MotionAlarmPamam)
#define PARA_TYPE_ALARM_MOVE_CHECK_REGION 	        0x06	// 移动报警检测参数(MotionRegion)
#define PARA_TYPE_ALARM_PROBE 					    0x07	// 探头报警(Contact_Alarm_Parameter)
#define PARA_TYPE_LOSE 							    0x08	// 丢失报警()
#define PARA_TYPE_ENVELOP 						    0x09	// 遮挡报警()
#define PARA_TYPE_SCHEDULE 						    0x0a	// 定时录像参数(ScheduleRecParam)
#define PARA_TYPE_NET 								0x0b	// 网络属性(NetAttrParam)
#define PARA_TYPE_VIDEO							    0x0c	// 视频参数(VideoParam)
#define PARA_TYPE_TV 								0x0d	// TV参数()
#define PARA_TYPE_VGA 								0x0e	// VGA参数()
#define PARA_TYPE_SWITCH 							0x0f	// 循环切换()
#define PARA_TYPE_TEXTOVER						    0x10	// 字符叠加(OSDParam)
#define PARA_TYPE_TERM 							    0x11	// 终端(Terminal)

#pragma pack(push , 1)

// 主机端配置信息
typedef struct tagLoginParam
{
    BYTE      MainboardVersion;//主板版本
	BYTE      MainboardType;//主板类型
	BYTE      Content;//容量
	BYTE      NetType;//网传方式
	BYTE      VGASelect;//VGA选择
	BYTE      ChannelCount;//路数
	BYTE      Language;//语言
    BYTE      nStandard;//制式
	WORD      ClientPort;//接受客户端命令端口号
    DWORD     IPAddress;//IP地址
	DWORD     Reserve;//预留
}LoginParam,*PLoginParam;

// 录像参数
typedef struct  tagRecSetParam
{
   BYTE      RecOverMethod;//录象覆盖方式
   BYTE      RecDateSplice;//录象日期叠加
   BYTE      RecSensitivity;//录象码率动态调整灵敏度
   BYTE      RecRate;//录象码率动态调整速度
   DWORD     CodeRate;//码率
   BYTE      FrameCount;//帧数
   BYTE      Audio;//有无音频
   DWORD     IFrameInterval;//I帧间隔
}RecSetParam,*PRecSetParam;

typedef struct  tagProbeAlarmParam
{
   BYTE      WeekNum;//星期号
   BYTE      IsDefend;//是否启动布防
   BYTE      SoundAlarm;//声音报警
   BYTE      ProbeAlarmRecTime;//探头报警录象时间
   BYTE      IsProbeAlarmRec;//是否探头报警录象
   BYTE      DefendStartHour1;//布防开始时间段(小时)
   BYTE      DefendStartMinute1;//布防开始时间段(分钟)
   BYTE      DefendEndHour1;//布防结束时间段(小时)
   BYTE      DefendEndMinute1;//布防结束时间段(分钟)
   BYTE      DefendStartHour2;//布防开始时间段(小时)
   BYTE      DefendStartMinute2;//布防开始时间段(分钟)
   BYTE      DefendEndHour2;//布防结束时间段(小时)
   BYTE      DefendEndMinute2;//布防结束时间段(分钟)
   BYTE      ContactAlarmOut;//联动报警输出
   WORD     ClearAlarmTime;//自动清除报警时间
   WORD     ContactRecChannel;//自动联动录象通道
   BYTE      PreSetPort[16];//预置点(通道1-16)
}ProbeAlarmParam,*PProbeAlarmParam;

// 定时录象和移动录象设置
typedef struct  tagRecParam
{
   BYTE     MotionRec;//移动录象
   BYTE     ScheduleRec;//定时录象
}RecParam,*PRecParam;

// 移动报警参数
typedef struct  tagMotionAlarmPamam
{
   BYTE      WeekNum;//星期号
   BYTE      IsDefend;//是否启动布防
   BYTE      SoundAlarm;//声音报警
   DWORD     MotionAlarmRecTime;//移动报警录象时间
   BYTE      MotionAlarmSensitivity;//移动报警检测灵敏度
   BYTE      DefendStartHour1;//布防开始时间段(小时)
   BYTE      DefendStartMinute1;//布防开始时间段(分钟)
   BYTE      DefendEndHour1;//布防结束时间段(小时)
   BYTE      DefendEndMinute1;//布防结束时间段(分钟)
   BYTE      DefendStartHour2;//布防开始时间段(小时)
   BYTE      DefendStartMinute2;//布防开始时间段(分钟)
   BYTE      DefendEndHour2;//布防结束时间段(小时)
   BYTE      DefendEndMinute2;//布防结束时间段(分钟)
   BYTE      ContactAlarmOut;//联动报警输出
   WORD     ContactRecChannel;//联动录象通道
   WORD     ClearAlarmTime;//自动清除报警时间
}MotionAlarmPamam,*PMotionAlarmPamam;

// 移动报警检测参数
typedef struct  tagMotionRegion
{
   DWORD					MotionCheck[13];//小格
   DWORD					ImageMask[13];
}MotionRegion,*PMotionRegion;

// 定时录像参数
typedef struct tagScheduleRecParam
{
   BYTE      WeekNum;//星期号
   BYTE      IsRec;//是否启动录象
   BYTE      DefendStartHour1;//布防开始时间段(小时)
   BYTE      DefendStartMinute1;//布防开始时间段(分钟)
   BYTE      DefendEndHour1;//布防结束时间段(小时)
   BYTE      DefendEndMinute1;//布防结束时间段(分钟)
   BYTE      DefendStartHour2;//布防开始时间段(小时)
   BYTE      DefendStartMinute2;//布防开始时间段(分钟)
   BYTE      DefendEndHour2;//布防结束时间段(小时)
   BYTE      DefendEndMinute2;//布防结束时间段(分钟)    
}ScheduleRecParam,*PScheduleRecParam;

// 网络属性
typedef struct tagNetAttrParam
{
   DWORD      IPAddress;//IP地址
   DWORD      NetGateWay;//网关
   DWORD      SubNetMask;//掩码
   char        DVRName[31];//DVR名称
   DWORD      Mac;//网卡地址
   WORD      Port;//设置接收客户端命令端口号

}NetAttrParam,PNetAttrParam;

// 视频参数
typedef struct  tagVideoParam
{
   BYTE       Brightness;//亮度
   BYTE       chroma;//色度
   BYTE       contrast;//对比度
   BYTE       saturation;//饱和度
}VideoParam,PVideoParam;

// 字符叠加
typedef struct   tagOSDParam
{
	BYTE nDateOSDParam;			//叠加日期参数(bit0-1:位置信息;bit4:大小信息)
	BYTE nChOSDParam;			//叠加通道(bit0-1:位置信息;bit4:大小信息)
	BYTE nReverse;				//是否反色
	BYTE nRes;
}OSDParam,POSDParam;
// OSD位置信息说明
// 0:左上角;1:左下角;2:右上角;3:右下角;

// OSD大小暂不支持

// 终端
typedef struct   tagTerminal
{
   BYTE       PanType[9];//云台类型
   DWORD      ChannelTitle1;//通道标题(字一区位码)
   DWORD      ChannelTitle2;//通道标题(字二区位码)
   DWORD      ChannelTitle3;//通道标题(字三区位码)
   DWORD      ChannelTitle4;//通道标题(字四区位码)
   DWORD      ChannelTitle5;//通道标题(字五区位码)
   DWORD      ChannelTitle6;//通道标题(字六区位码)
   DWORD      ChannelTitle7;//通道标题(字七区位码)
   DWORD      ChannelTitle8;//通道标题(字八区位码)
   BYTE       BallBaudRate;//球机波特率
   BYTE       BallAddressCode;//球机地址码
}Terminal,PTerminal;
#pragma pack(pop)


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -