// MRConfCamEnv.h
#ifndef __MR_CONFCAM_ENV_H__
#define __MR_CONFCAM_ENV_H__

#include "MRComm.h"
//
/****************** 参数子命令 ********************************/
// 系统信息
#define MRCONFC_ENVCMD_SYSATTR		"SysAttr"		// 
// 系统时间
#define MRCONFC_ENVCMD_SYSTIME		"SysTime"		// 
// 用户
#define MRCONFC_ENVCMD_SYSUSER		"SysUser"		// 
// 音频参数
#define MRCONFC_ENVCMD_AUDIO		"Audio"			// 
// 视频输出
#define MRCONFC_ENVCMD_VIDEOOUT		"VideoOut"		//
// 视频叠加
#define MRCONFC_ENVCMD_VIDEOOSD		"VideoOsd"		// 
// 视频编码
#define MRCONFC_ENVCMD_VIDEOENCODE	"VideoEncode"	// 
// 视频参数
#define MRCONFC_ENVCMD_VIDEOPARAM	"VideoParam"	// 
// 网络参数
#define MRCONFC_ENVCMD_NETWORK		"NetWork"		// 
// 存储参数
#define MRCONFC_ENVCMD_RECSTORE		"RecStore"		// 
// ARM System
#define MRCONFC_ENVCMD_ARMSYSTEM	"ArmSystem"		// 
// ARM PTZ
#define MRCONFC_ENVCMD_ARMPTZ		"ArmPtz"		// 
// Font Size
#define MRCONFC_ENVCMD_FONTSIZE		"FontSize"		// 
// 平台接入
#define MRCONFC_ENVCMD_PLATFORMCONNECT	"PlatformConnect"	// 
// 流发布
#define MRCONFC_ENVCMD_PUBLISH		"StreamPublish"		// 
// 云台串口
#define MRCONFC_ENVCMD_PTZATTR		"PTZAttr"
/****************** 系统控制子命令 ********************************/
// 出厂默认
#define MRCONFC_CTRLCMD_DEFAULT		"Default"
// 重启
#define MRCONFC_CTRLCMD_REBOOT		"Reboot"
// 报警输出控制
#define MRCONFC_CTRLCMD_ALARMOUT	"Alarmout"
// 云台控制
#define MRCONFC_CTRLCMD_PTZCTRL		"PtzCtrl"
// 同步NTP
#define MRCONFC_CTRLCMD_SYNCNTP		"SyncNtp"
// 设置本地时间
#define MRCONFC_CTRLCMD_SETTIME		"SetTime"
// 格式化硬盘
#define MRCONFC_CTRLCMD_FORMATDISK	"FormatDisk"
// 一键白平衡
#define MRCONFC_CTRLCMD_TRIGGLE_ONEPUSHWB	"TriggleOnePushWb"
// 链接WiFi
#define MRCONFC_CTRLCMD_WIFICONNECT	"WifiConnect"
/****************** 状态查询子命令 ********************************/
// 获得设备属性
#define MRCONFC_QUYCMD_GETDEVATTR	"GetDevAttr"		// 
// 获得系统状态
#define MRCONFC_QUYCMD_GETSYSSTATE	"GetSysState"
// 获得所有硬盘
#define MRCONFC_QUYCMD_GETDISK		"GetDisk"			// 
// 获得录像天掩码
#define MRCONFC_QUYCMD_GETRECDAYS	"GetRecDays"
// 查询录像
#define MRCONFC_QUYCMD_QUYRECORD	"QueryRecord"
// 查询日志
#define MRCONFC_QUYCMD_QUYLOG		"QueryLog"
// 查询云台位置
#define MRCONFC_QUYCMD_SYSTIME		"QuerySysTime"
// 查询系统支持流及名称
#define MRCONFC_QUYCMD_STREAMNAME	"QueryStreamName"
// 查询版本
#define MRCONFC_QUYCMD_VERSION		"QueryVersion"
// 查询Wifi节点
#define MRCONFC_QUYCMD_WIFINODE		"QueryWifiNode"
/****************** 导入导出询子命令 ********************************/
// 导入升级包
#define MRCONFC_IMPCMD_IMPUPDATE	"ImportUpdate"
// 导入系统配置
#define MRCONFC_IMPCMD_IMPCONFIG	"ImportConfig"
// 导出系统配置
#define MRCONFC_IMPCMD_EXPCONFIG	"ExportConfig"
// 导入云台协议
#define MRCONFC_IMPCMD_IMPPTZFILE	"ImportPtzFile"
// 抓拍JPEG
#define MRCONFC_IMPCMD_CAPJPEG		"ExpCaptureJpeg"
/****************** 网络搜索子命令 ********************************/
// 搜索
#define MRCONFC_SAPCMD_SEARCH		"SapSearch"
// Ftp升级
#define MRCONFC_SAPCMD_FTPUPDATE	"FtpUpdate"
// 设置参数
#define MRCONFC_SAPCMD_SETPARAM		"SetParam"
// 重启
#define MRCONFC_SAPCMD_REBOOT		"SapReboot"
// 出厂默认
#define MRCONFC_SAPCMD_DEFAULT		"SapDefault"

/****************** 上传消息子命令 ********************************/
// 系统重启
#define MRCONFC_PUSHMSG_SYSREBOOT	"SysReboot"

#define MRCONFC_NMAX_FONTSIZE           8		// osd最多支持字体大小类型
#define MRCONFC_NMAX_USERS				3		// 最大用户总数
#define MRCONFC_NMAX_ACODEC				3		// 音频Codec总数
#define MRCONFC_NMAX_VOFMT				16		// 支持输出格式总数
#define MRCONFC_NMAX_EXPMODE			8		// 曝光模式
#define MRCONFC_NMAX_IRIS				16		// IRIS总数
#define MRCONFC_NMAX_SHUTTER			17		// 快门总数
#define MRCONFC_NMAX_WBMODE		    	8		// 白平衡模式
// 视频流类型
typedef enum{
	MRCONFC_VSTREAM_MASTER = 0,		// 主码流
	MRCONFC_VSTREAM_SLAVE,			// 子码流
	MRCONFC_VSTREAM_MOBILE,			// 手机流
	MRCONFC_VSTREAM_NUMS,
}MRCONFC_VSTREAM_TYPE;

// 自动聚焦模式
typedef enum{
	MRCONFC_AFMODE_AUTO		= 0X02,		// 自动
	MRCONFC_AFMODE_MANUAL	= 0x03,		// 手动
	MRCONFC_AFMODE_ONEPUSH	= 0x04,		// OnePush
}MRCONFC_AFMODE_TYPE;

// 自动聚焦区域权重
typedef enum{
	MRCONFC_AFZONE_TOP = 0,				// 上
	MRCONFC_AFZONE_CENTER,				// 中
	MRCONFC_AFZONE_BOTTOM,				// 下
}MRCONFC_AFZONE_TYPE;

// 曝光模式对应的值的列表
typedef enum{
	MRCONFC_EXPMODE_AUTO		= 0x00,
	MRCONFC_EXPMODE_MANUAL		= 0x03,
	MRCONFC_EXPMODE_SHUTTER		= 0x0A,
	MRCONFC_EXPMODE_IRIS		= 0x0B,
	MRCONFC_EXPMODE_BRIGHT		= 0x0D,
}MRCONFC_EXPMODE_TYPE;

// 抗闪烁
typedef enum{
	MRCONFC_FLICKER_OFF = 0,
	MRCONFC_FLICKER_50HZ,
	MRCONFC_FLICKER_60HZ,
}MRCONFC_FLICKER_TYPE;

typedef enum{
	MRCONFC_FLIP_OFF = 0,
	MRCONFC_FLIP_H,
	MRCONFC_FLIP_V,
	MRCONFC_FLIP_HV,
}MRCONFC_FLIP_TYPE;

//白平衡模式对应的值的列表
typedef enum {
	MRCONFC_WBMODE_AUTO			= 0x00,
	MRCONFC_WBMODE_IN_DOOR		= 0x01,
	MRCONFC_WBMODE_OUT_DOOR		= 0x02,
	MRCONFC_WBMODE_ONEPUSH		= 0x03,
	MRCONFC_WBMODE_MANUAL		= 0x05,
	MRCONFC_WBMODE_3000K		= 0x06,		// 3000K
	MRCONFC_WBMODE_4000K		= 0x07,		// 4000K
	MRCONFC_WBMODE_5000K		= 0x08,		// 5000K
	MRCONFC_WBMODE_6500K		= 0x09,		// 6500K
}MRCONFC_WBMODE_TYPE;

// 白平衡灵敏度
typedef enum{
	MRCONFC_WBSENS_HIGH = 0,
	MRCONFC_WBSENS_MID,
	MRCONFC_WBSENS_LOW,
}MRCONFC_WBSENS_TYPE;

typedef enum{
	MRCONFC_IRISMODE_MANUAL = 0,
	MRCONFC_IRISMODE_AUTO,
}MRCONFC_IRISMODE_TYPE;

typedef struct{
	DWORD				dwKernelVersion;					// 内核版本
	DWORD				dwKernelBuildDate;					// 内核编译时间 : 高16位为年，中间8位月，最低8位为日
	DWORD				dwWebVersion;						// Web版本
	DWORD				dwWebDate;							// Web构建时间
}MRCONFC_VERSION_T;

typedef struct{
	MRCONFC_VERSION_T	stVersion;							// 版本
	char				szProductName[MR_SLEN_DEVNAME];		// 产品名称
	char				szDevName[MR_SLEN_DEVNAME];			// 设备名称
	char				szDeviceID[MR_SLEN_DEVICEID];		// 设备ID
	char				szDevSerialNo[MR_SLEN_SERIALNO];	// 序列号
	int					nDevType;							// 设备类型, MR_DEVICE_TYPE
	WORD				wDataPort;							// 数据端口
	WORD				wSoapPort;							// Soap端口
	WORD				wRtspPort;							// RTSP端口
	WORD				wRtmpPort;							// RTMP端口
}MRCONFC_DEVATTR_T;

typedef struct{
	char			szName[32];
	int				nValue;
}MRCONFC_PARAMLIST_T;

// 设备属性
typedef struct{
	char	szDevName[MR_SLEN_DEVNAME];		// 设备名称
	char    szDeviceID[MR_SLEN_DEVICEID];	// 设备ID
	int		emVideoStandard;				// 视频制式
	int		nLanguage;						// 系统语言
}MRCONFC_SYSATTR_CFG;

typedef struct{
	int						nDateFormat;				// 日期格式, 0:YYYY-MM-DD, 1:MM-DD-YYYY, 2: DD-MM-YYYY
	int						nDateSprtr;					// 日期分割符(0："."，1："-"，2："/")
	int						nZone;						// 时区
	int						nHourType;					// 时间类型 0 - 24小时, 1 - 12小时
	MR_NTP_T				stNtp;						// NTP
}MRCONFC_SYSTIME_CFG;

// 系统用户
typedef struct{
	int	nUserType;						// 只读, 0 - 管理员， 1 - 普通用户
	char szUserName[MR_SLEN_USERNAME];	// 用户名
	char szPassword[MR_SLEN_PASSWORD];	// 密码
}MRCONFC_USER_T;
typedef struct{
	int				nMaxCount;						// 最大总数
	int				nCount;							// 用户总数
	MRCONFC_USER_T	stUsers[MRCONFC_NMAX_USERS];	// 用户列表
}MRCONFC_SYSUSER_CFG;

// 音频参数
typedef struct{
	// 只读
	int						nAudioCodecNums;					// byAudioCodecList的总数
	BYTE					byAudioCodecList[MRCONFC_NMAX_ACODEC];	// 音频压缩格式列表 MR_AUDIOCODEC_TYPE
	int						nAudioSmstMask[MRCONFC_NMAX_ACODEC];	// 音频输入类型 MR_AUDIO_SMST_MASK
	// 参数
	int						bEnable;		// 音频开/关
	int						nAEncType;		// 音频压缩格式, MR_AUDIOCODEC_TYPE
	int						nSampleRate;	// 采样频率(16000, 32000, 44100, 48000)
	int						nSampleBits;	// 采样精度，固定16位
	int						nBitRate;		// 压缩码率(32K, 48K, 64K, 96K, 128K),PCM时无效
	int						nChannel;		// 通道
}MRCONFC_AUDIO_CFG;

// 视频叠加
typedef struct{
	// 参数
	int						nIndex;						// 索引号，只读
	BOOL					bEnable;					// 显示标志
	int						nXPos;						// X位置，相对位置，万分比0-10000
	int						nYPos;						// Y位置，相对位置，万分比0-10000
	MR_RGBA					stFtColor;					// 前景颜色
	MR_RGBA					stBkColor;					// 背景颜色
	char					szText[MR_SLEN_OSDSTRING];	// OSD字符, 日期时无效
}MRCONFC_OSDCHN_T;
typedef struct{
	int					nChannel;						// 通道号(只读)
	MRCONFC_OSDCHN_T	stTime;							// 时间
	MRCONFC_OSDCHN_T	stTitle;						// 标题
	MRCONFC_OSDCHN_T	stUser[MR_NMAX_OSDUSERS];		// 自定义
}MRCONFC_VIDEOOSD_CFG;

typedef struct{
	int  nFontCount;									// szFontList个数(只读)
	char szFontList[MRCONFC_NMAX_FONTSIZE][32];			// 字体列表(只读)
	int	 nFontSize[MRCONFC_VSTREAM_NUMS];				// 字体大小索引(szFontList小标)
}MRCONFC_OSDFONTSIZE_CFG;

// 压缩配置
typedef struct{
	DWORD					dwVideoCodecMask;			// 编码器掩码, 1 << MR_VIDEOCODEC_TYPE
	DWORD					dwMaxBitRate;				// 最大码率
	int						nMaxFrameRate;				// 最大帧率
	int						nImageSizeNums;				// 支持的分辨率总数
	BYTE					byImageSizeList[MR_NAMX_VFORMATS];	// 支持的分辨率, MR_VIDEOSIZE_TYPE
	char					szStreamName[MR_SLEN_STREAMNAME];	// 流名称(只读)
	
	// 参数
	MRCONFC_VSTREAM_TYPE	emStreamType;				// 流类型
	MR_VIDEOCODEC_TYPE		emVideoCodec;				// 视频压缩格式
	MR_VIDEOSIZE_TYPE		emImageSize;				// 视频尺寸
	MR_BITRATE_TYPE			emBitRateCtrl;				// 码流控制模式
	BYTE					byImageQuality;				// 图像质量(0-5), 0 - 最好, 5 - 最差, emBitRateCtrl为 MR_BITRATE_VBR 时有效
	int						nBitRate;					// CBR时平均码流，VBR时为最大码率
	int						nFrameRate;					// 视频帧率, 1-n为每秒帧率
	int						nIFrameInterval;			// 关键帧帧间隔(1-200)
	BYTE					byIFrameMinQP;				// 关键帧最小QP，用于控制关键帧大小(10, 51)
}MRCONFC_VIDEOFORMAT_T;

typedef struct{
	BYTE					abMaster;					// 支持主码流
	BYTE					abSlave;					// 支持子码流
	BYTE					abMobile;					// 支持手机流
	int						nChannel;					// 通道号(只读)

	MRCONFC_VIDEOFORMAT_T	stMaster;					// 主码流
	MRCONFC_VIDEOFORMAT_T	stSlave;					// 子码流
	MRCONFC_VIDEOFORMAT_T	stMobile;					// 手机流
}MRCONFC_VIDEOENCODE_CFG;

// 流推送
typedef struct{
	int			nAbProtolMask;							// 支持的协议掩码(只读), 0x01 - RTMP, 0x02 - RTSP		
	
	BOOL		bEnable;								// 使能
	int			nProtolType;							// 0 - RTMP, 1 - RTSP
	WORD		wHostPort;								// Host端口
	char		szHostUrl[MR_SLEN_URLADDR];				// Host地址
	char		szStreamName[MR_SLEN_URLADDR];			// 流名称：live/av1_0
	char		szUserName[MR_SLEN_USERNAME];			// 用户名
	char		szPassword[MR_SLEN_USERNAME];			// 密码
}MRCONFC_STREAM_PUBLISH_T;
typedef struct{
	BYTE						abMaster;				// 支持主码流(只读)
	BYTE						abSlave;				// 支持子码流(只读)
	BYTE						abMobile;				// 支持手机流(只读)
	int							nChannel;				// 通道号(只读)
	MRCONFC_STREAM_PUBLISH_T	stMaster;				// 主码流
	MRCONFC_STREAM_PUBLISH_T	stSlave;				// 子码流
	MRCONFC_STREAM_PUBLISH_T	stMobile;				// 手机流
}MRCONFC_PUBLISH_T;

// 以太网参数
typedef struct{
	WORD				wPortWeb;							// Web端口, 默认80
	WORD				wPortRtsp;							// RTSP端口, 默认554
	WORD				wPortRtmp;							// RTMP端口, 默认1935
	WORD				wPortSoap;							// Soap端口, 默认1936
	WORD				wPortOnvif;							// Onvif端口, 默认2000
	WORD				wPortData;							// 数据端口，默认3000
	WORD				wPortVisca;							// Visca端口, 默认3001
}MRCONFC_NET_PORT_T;

typedef struct{
	// 参数
	BYTE				byValid;							// 按位表示，见 MR_ETHVALID_MASK
	BYTE				bDefault;							// 是否作为默认的网卡 1：默认 0：非默认
	char				szIPAddr[MR_SLEN_IPADDR];			// IP 地址
	char				szSubMask[MR_SLEN_IPADDR];			// IP 地址掩码
	char				szGateway[MR_SLEN_IPADDR];			// 网关地址
	char				szMacAddr[MR_SLEN_MACADDR];			// MAC地址
}MRCONFC_NET_ETH_T;

// 无线
typedef struct{
	BYTE				byValid;							// 按位表示，见 MR_ETHVALID_MASK
	char				szIPAddr[MR_SLEN_IPADDR];			// IP 地址
	char				szSubMask[MR_SLEN_IPADDR];			// IP 地址掩码
	char				szGateway[MR_SLEN_IPADDR];			// 网关地址
	char				szMacAddr[MR_SLEN_MACADDR];			// MAC地址(只读)
	char				szSSID[MR_SLEN_USERNAME];			// SSID
	char				szPsw[MR_SLEN_PASSWORD];			// 密码
	BYTE				bEncryption;						// 0 - 未加密，1 - 加密
}MRCONFC_NET_WLAN_T;

typedef struct{
	char	address[128];		// 地址
	char	protocol[100];		// 协议
	char	essid[128];			// essid
	char	mode[64];			// 模式
	double	frequency;			// 频率
	int		quality;			// 信号强度, 0到100
	BYTE	encryption_state;	// 0:OFF  1:ON
	double	bitrate;			// 码率
}MRCONFC_NET_WLAN_NOTE_T;

// DNS
typedef struct{
	char				szDns1[MR_SLEN_IPADDR];				// 首选DNS
	char				szDns2[MR_SLEN_IPADDR];				// 备选DNS
}MRCONFC_NET_DNS_T;

// 存储设置
typedef struct{
	int					nStoreStream;	// 存储流( MRCONFC_VSTREAM_TYPE )
	int					nPacketTime;	// 打包时间 5 - 60 分钟
}MRCONFC_RECSTORE_CFG;

typedef struct{
	// 支持，只读
	BYTE				abNetPort;
	BYTE				abEth;
	BYTE				abWlan;
	BYTE				abDns;
	// 参数
	MRCONFC_NET_PORT_T	stNetPort;
	MRCONFC_NET_ETH_T	stEth[1];
	MRCONFC_NET_WLAN_T	stWlan;
	MRCONFC_NET_DNS_T	stDns;
}MRCONFC_NET_CFG;

// 云台参数
typedef struct{
	BYTE		emLanguage;			// 菜单语言, 0 - 中文, 1 - 英文
	BYTE		emProtol;			// 串口协议, 1 - 自动，2 - PLC-D，3 - PLC-P， 4 - Visca
	BYTE		nViscaAddr;			// visca地址(1 - 7)
	BYTE		nPlcDAddr;			// PLC-D 地址(0 - 255)
	BYTE		nPlcPAddr;			// PLC-P 地址(0 - 255)
	BYTE		nIRAddr;			// IR地址，1 - 4;
	BYTE		emUartNetMode;		// 串口组网模式, 0 - 串联, 1 - 并联
	BYTE		bLockAddr;			// 锁定地址
	BYTE		bEnRS485;			// 使能RS485
	BYTE		nBaudRate;			// 波特率, 0 - 2400, 1- 4800, 2 - 9600, 3 - 115200
	BYTE		nUserCode;			// 用户代码, 预留特殊修改
}MRCONFC_ARM_SYSTEM_T;

typedef struct{
	BYTE		emPwrUpMode;		// 上电模式, 0 - 关闭，1 - 1号预置点，2 - 号预置点
	BYTE		bSpeedByZoom;		// 景深比例, 1 , 0
	BYTE		nIRSpeed;			// 遥控器控制速度(5 - 16)
	BYTE		nZoomSpeed;			// 变倍速度(1 - 8)
	BYTE		nUartMinSpeed;		// 串口最小速度(1 - 24)
	BYTE		nTourSpeed;			// 巡航速度(1 - 16)
	BYTE		bImageFreezing;		// 图像冻结
	BYTE		nPTZAccTable;		// 0 - 教育， 1 - 会议
}MRCONFC_ARM_PTZ_T;

// 自动聚焦
typedef struct{
	BYTE			emAFMode;		// 自动聚焦模式(Auto : 0x02, Manual : 0x03)
	BYTE			emAFZone;		// 聚焦区域(top : 0, center : 1, bottom : 2)
	BYTE			nSensitivity;	// 聚焦灵敏度(1 - 3, 1 - 高，2 - 正常，3 - 低)
}MRCONFC_CAM_AF_T;

// 曝光
typedef struct{
	int				nExpModeList;
	BYTE			byExpModeList[MRCONFC_NMAX_EXPMODE];
	BYTE			emExpMode;
}MRCONFC_CAM_EXPMODE_T;

// 光圈值(0 - 12, 手动、光圈优先时有效){"关闭", "F11.0", "F9.6", "F8.0", "F6.8", "F5.6", "F4.8", "F4.0", "F3.4", "F2.8", "F2.4", "F2.0", "F1.8"}
typedef struct{
	int					nIrisList;
	MRCONFC_PARAMLIST_T stIrisList[MRCONFC_NMAX_IRIS];	
	int					nIris;
}MRCONFC_CAM_IRIS_T;

// 快门(1 - 17, 手动，快门优先时有效) { "1/30", "1/60", "1/90", "1/100", "1/125", "1/180", "1/250", "1/350", 
//	"1/500", "1/725", "1/1000", "1/1500", "1/2000", "1/3000", "1/4000", "1/6000", "1/10000"}
typedef struct{
	int					nShutterList;
	MRCONFC_PARAMLIST_T stShutterList[MRCONFC_NMAX_SHUTTER];
	int					nShutter;
}MRCONFC_CAM_SHUTTER_T;
typedef struct{
	//BYTE			emExpMode;		// 曝光模式(MRCONFC_EXPMODE_TYPE)
	BYTE			bright;			// 亮度(0 - 23, 亮度优先时有效)
	BYTE			expcomp_mode;	// 曝光补偿开关(0x02 - 开， 0x03 - 关 自动时有效)
	BYTE			expcomp;		// 曝光补偿值(0 - 14, 自动时有效)
	BYTE			backlight;		// 背光补偿开关(0x02 - 开，0x03 - 关, 自动时有效)
	BYTE			antiflicker;	// 抗闪烁(0 - 关闭，1 - 50Hz, 2 - 60Hz, 自动，光圈优先, 亮度时有效)
	BYTE			gainLimit;		// 增益限制(0(最小) - 15(最大), 自动，光圈优先, 亮度)
	BYTE			drc;			// 动态范围(0(关闭) - 8(最大))
	BYTE			aemode;			// 自动曝光模式(0x02 - 慢快门，0x03 - 固定帧率模式)
	MRCONFC_CAM_EXPMODE_T	stExpMode;		// 曝光模式
	MRCONFC_CAM_IRIS_T		stIris;			// 光圈
	MRCONFC_CAM_SHUTTER_T	stShutter;		// 快门
}MRCONFC_CAM_EXP_T;

typedef struct {
	int				nWbModeList;
	BYTE			byWbModeList[MRCONFC_NMAX_WBMODE];
	BYTE			emWbMode;
}MRCONFC_CAM_WBMODE_T;

typedef struct{
//	BYTE			emWbMode;		// 白平衡模式
	MRCONFC_CAM_WBMODE_T stWbMode;  // 白平衡模式
	BYTE			rg;				// 红增益(0 - 255, 手动有效)
	BYTE			bg;				// 蓝增益(0 - 255, 手动有效)
	BYTE			rgaintuning;	// 红微调(0 - 20, 显示-10 - 10, 自动有效)
	BYTE			bgaintuning;	// 蓝微调(0 - 20, 显示-10 - 10, 自动有效)

	BYTE			saturation;		// 饱和度(0 - 14){"60%", "70%", "80%", "90%", "100%", "110%", "120%", "130%", "140%", "150%", "160%", "170%", "180%", "190%", "200%"}
	BYTE			hue;			// 色度(0 - 14)
	BYTE			irfilter;		// (1 - 3)
	BYTE			awbsens;		// 自动白平衡灵敏度(0 - 高，1 - 中，2 - 低)
	BYTE			nStyleInx;		// 颜色风格(0 - 2)
	BYTE			colortemp;		// 色温, 0 - 低色温，1 - 中色温, 2 - 高色温
}MRCONFC_CAM_COLOR_T;

// 视频输出
typedef struct{
	int				nNetMode;								// 0 - 高清输出模式，1 - 高清输出+标清网络，2 - 标清输出+高清网络
	int				nFormatLists;							// byFormatList总数
	BYTE			byFormatList[MRCONFC_NMAX_VOFMT];		// 支持格式列表
	int             emVoutFormat;							// 输出格式
}MRCONFC_VIDEOOUT_CFG;

// 图像
typedef struct{
	BYTE			luminance;		// 亮度(0 - 14)
	BYTE			contrast;		// 对比度(0 - 14)
	BYTE			sharpness;		// 锐度(0 - 16, 16 - 自动)
	BYTE			nBWMode;		// 黑白模式(color : 0x00, b&w : 0x04)
	BYTE			gamma;			// Gamma(0 - 4 : 0 - 默认, 1 - 0.45, 2 - 0.5, 3 - 0.56, 4 - 0.63)
	BYTE			nFlipH;			// 水平翻转(ON : 0x02, OFF : 0x03)
	BYTE			nFlipV;			// 垂直翻转(ON : 0x02, OFF : 0x03)
	BYTE			nEZoom;			// 电子变倍开关, 0x02 - ON, 0x03 - Off
	BYTE			ldc;			// 镜头畸变矫正(0 - 8, 0 - 关闭)
	BYTE			dci;			// 动态对比度(0 - 8, 0 - 关闭)
}MRCONFC_CAM_IMAGE_T;

// 降噪
typedef struct{
	BYTE			noise2D;		// 2D降噪级别(0 - 6, 0 - 关闭, (1 - 5 手动), 6 - 自动)
	BYTE			noise3D;		// 3D降噪(0 - 8(最大), 0 - 关闭)
	BYTE			dhotpixel;		// 动态坏点矫正(0 - 5, 0 - 关闭)
}MRCONFC_CAM_NR_T;

typedef struct{
	MRCONFC_CAM_AF_T		stAF;			// 自动聚焦
	MRCONFC_CAM_EXP_T		stExp;			// 曝光
	MRCONFC_CAM_COLOR_T		stColor;		// 颜色
	MRCONFC_CAM_IMAGE_T		stImg;			// 图像
	MRCONFC_CAM_NR_T		stNR;			// 降噪
}MRCONFC_VIDEOPARAM_CFG;

// GB28181
typedef struct{
	BOOL 			bEnable;			// 1:GB28181开启 0:关闭
	BOOL 			bTimeSyn;			// 1:时间同步开始 0:关闭
	MRCONFC_VSTREAM_TYPE emVideoType;	// 码流选择 0:主码流 1:次码流
	unsigned int  	nRegLimitedTime;	// 注册有效时间 >60s
	unsigned int  	nHeartbeatTime;		// 心跳时间
	char 			szRegisterId[MR_SLEN_GB28181ID];		// 注册ID
	char 		 	szRegisterName[MR_SLEN_DEVNAME];		// 注册用户名
	char 		 	szRegisterPassword[MR_SLEN_PASSWORD];	// 注册密码
	char 		 	szMotionAlarmId[MR_SLEN_GB28181ID];		// 移动侦测告警ID

	char 		 	szProbeAlarmId1[MR_SLEN_GB28181ID];		// 探头告警ID1
	char 		 	szEquipmentBelong[MR_SLEN_GB28181AREA];	// 设备归属
	char 		 	szAdminiAreas[MR_SLEN_GB28181AREA];		// 行政区域
	char 		 	szAlarmAreas[MR_SLEN_GB28181AREA];		// 警区
	char 		 	szDeviceAddress[MR_SLEN_GB28181ADDR];	// 设备安装地址

	WORD			wLocalPort;							// 本地SIP端口
	char 		 	szServer1Ip[MR_SLEN_IPADDR]; 		// GB28181服务器地址1
	WORD 		 	wServer1Port;						// 服务器SIP端口1
	char 		 	szServer1Id[MR_SLEN_GB28181ID];		// 服务器ID
}MRCONFC_GB28181_CFG;

typedef struct{
	BOOL 			bEnable;				// 1:ONVIF开启 0:关闭

}MRCONFC_ONVIF_CFG;


// 平台接入配置
typedef struct{
	BOOL				abOnvif;	// ONVIF协议对接 1:实现 0:未实现
	BOOL				abGB28181;	// GB28181协议对接 1:实现 0:未实现

	MRCONFC_ONVIF_CFG     	stOnvif;  	// ONVIF对接参数
	MRCONFC_GB28181_CFG     stGB28181;  // GB28181对接参数
	
}MRCONFC_PLATFORM_CONNECT_CFG;


#endif//__MR_CONFCAM_ENV_H__
