988 lines
43 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 版权所有:深圳市朗驰数字技术有限公司
* 作 者HongJun Chen
* 设计日期: 2003-11-15
* $Id: eti_base_def.h,v 1.1.1.1 2006/06/29 12:41:28 administrator Exp $
*/
#ifndef __ETI_BASE_DEF_H__
#define __ETI_BASE_DEF_H__
#define ETI_MAX_CH_PERDSP 2
#define ETI_QCIF_CHANNELS 2
#define ETI_MAX_SUPPORTCH 16 //所有产品中支持的最大通道
#define APP_PASSWORD_LENGTH 20 //所有密码字符长度
#define APP_PTZ_STRING_LEN 60 //云台控制方法字符串长度
#define APP_TIMECHECK_LISTNUM 7 //报警、自动录象检测时间列表个数
#define APP_ZTE_TIMECHECK_LISTNUM 32 //ZTE 移动侦测/输入报警时间个数
#define APP_ADDRLIST_NUM 20 //
#define APP_DECLOOP_ITEMNUM 100
#define APP_PPPOE_STRING_SIZE 20
#define APP_PHONE_NUMBER_SIZE 20
#define APP_PPPOE_STRING_SIZE 20
#define APP_PHONE_NUMBER_SIZE 20
#define APP_TITALSTRING_COUNT 4
#define APP_ALARMNAMELENGTH 32
#define ETI_CHAR_816LIB_SIZE 4096 //8*16 ANSC字库大小
#define ETI_HANZI_1616LIB_SIZE 261696 //16*16 汉字库大小
#define ETI_MP4_STREAM_AV 0 //音、视复合数据流
#define ETI_MP4_STREAM_V 1 //视频数据流
#define ETI_MP4_BITCTRL_VBR 1 //视频码率定质量控制
#define ETI_MP4_BITCTRL_CBR 0 //视频码率定码率控制
#define ETI_MP4_QUANTIZER_MIN 2 //视频最小量化系数
#define ETI_MP4_QUANTIZER_MAX 31 //视频最大量化系数
#define ETI_MP4_BITRATE_MIN 32 //视频最小码率 32K
#define ETI_MP4_BITRATE_MAX 4000 //视频最大码率 4M
#define ETI_MP4_KEYINTERVAL_MIN 12 //最小关键帧间隔
#define ETI_MP4_KEYINTERVAL_MAX 200 //最大关键帧间隔
#define ETI_AUDIO_ENCTYPE_MP3 0x55 //MP3
#define ETI_AUDIO_ENCTYPE_G722 0XFE //G.722
#define ETI_AUDIO_ENCTYPE_G711A 0x13 //G.711A
#define ETI_AUDIO_ENCTYPE_G711U 0x14 //G.711U
#define ETI_AUDIO_ENCTYPE_G726 0x15 //G.726
#define ETI_AUDIO_ENCTYPE_AAC 0x16 //AAC
#define ETI_AUDIO_ENCTYPE_AMR 0x17 //AMR
#define ETI_AUDIO_ENCTYPE_PCM 0x18 //PCM
enum{
ETI_VIDEOTAG_MPEG4 = 0X58564944, //DIVX
ETI_VIDEOTAG_H264 = 0X34363248, //(('4'<<24) | ('6'<<16) | ('2'<<8) |'H') //H264
ETI_VIDEOTAG_MJPEG = 0X47504A4D, //(('G'<<24) | ('P'<<16) | ('J'<<8) |'M') //MJPG
ETI_VIDEOTAG_H265 = 0X35363248, //(('5'<<24) | ('6'<<16) | ('2'<<8) |'H') //H265
ETI_VIDEOTAG_RAW = 0X00574152, //(('0'<<24) | ('W'<<16) | ('A'<<8) |'R') //RAW
ETI_VIDEOTAG_IR14 = 0x34315249 //('4'<< 24)| ('1' << 16) ('R'<<8) | 'I' //IR14
};
#define ETI_AUDIO_SAMPLE_RATE_48K 48000
#define ETI_AUDIO_SAMPLE_RATE_44K 44100
#define ETI_AUDIO_SAMPLE_RATE_32K 32000
#define ETI_AUDIO_SAMPLE_RATE_24K 24000
#define ETI_AUDIO_SAMPLE_RATE_22K 22050
#define ETI_AUDIO_SAMPLE_RATE_16K 16000
#define ETI_AUDIO_SAMPLE_RATE_8K 8000
#define ETI_STREAM_STATUS_START 0X00000001 //启动码流
#define ETI_STREAM_STATUS_STOP 0X00000002 //停止码流
#define ETI_STREAM_STATUS_RECV 0X00000004 //发送码流
#define ETI_STREAM_STATUS_FTPBACK 0X00000008 //FTP备份
#define ETI_ALARM_STATUS_MOTION 0X00000001 //视频移动报警
#define ETI_ALARM_STATUS_LOSTVI 0X00000002 //视频丢失报警
#define ETI_ALARM_STATUS_LOSTAI 0X00000004 //音频丢失报警
/********************** 码流标示***************************/
typedef enum{
ETI_STREAM_MAIN = 0, // 主码流标示
ETI_STREAM_SUB1 = 1, // 子码流标示
ETI_STREAM_SUB2 = 2, // 三码流标示
ETI_STREAM_SUB3 = 3, // 四码流标示
}ENUM_EIT_STREAMID;
/********************** 断网续传标示***********************/
#define ETI_JPEG_CONTINUEUPLOADFTP 0 //ftp断网续传
#define ETI_JPEG_CONTINUEUPLOADSDK 1 //sdk断网续传
#define ETI_RVS_STREAM 100 //RVS上传码流
/********************** 缓冲大小***************************/
#define ETI_PREREC_BUFF_SIZE_CIF 0XA2800 //650*1024
#define ETI_PREREC_BUFF_SIZE_2CIF 0XE6000 //920*1024
#define ETI_PREREC_BUFF_SIZE_4CIF 0X14CCC0 //1024*1024*1.3(32的倍数)
/********************** 报警时间定义 ********************************/
#define ETI_ALARM_MIN_RECTIME 30 //最小报警持续(录象/备份)时间(s)
#define ETI_ALARM_MAX_RECTIME 3600 //最小报警持续(录象/备份)时间(s)
/********************** 视频格式定义 ********************************/
#define ETI_MP4_FORMAT_QCIF 0
#define ETI_MP4_FORMAT_CIF 1
#define ETI_MP4_FORMAT_2CIF 2
#define ETI_MP4_FORMAT_4CIF 3
#define ETI_MP4_FORMAT_DCIF 4
#define ETI_MP4_FORMAT_QVGA 5 //320*240
#define ETI_MP4_FORMAT_VGA_60HZ 6 //640*480
#define ETI_MP4_FORMAT_SVGA_60HZ 7 //800*600
#define ETI_MP4_FORMAT_XGA_60HZ 8 //1024*768
#define ETI_MP4_FORMAT_SXGA_60HZ 9 //1280*1024
#define ETI_MP4_FORMAT_UXGA_60HZ 10 //1600*1200
#define ETI_MP4_FORMAT_720P 11 //1280*720, no use
#define ETI_MP4_FORMAT_HDTV 12 //1920*1080, no use
#define ETI_MP4_FORMAT_SVGA_75HZ 13 //800*600
#define ETI_MP4_FORMAT_XGA_75HZ 14 //1024*768
#define ETI_MP4_FORMAT_720P_50HZ 15 //1280*720, 50HZ
#define ETI_MP4_FORMAT_720P_60HZ 16 //1280*720, 60HZ
#define ETI_MP4_FORMAT_1080P_50HZ 17 //1920*1080, 50HZ
#define ETI_MP4_FORMAT_1080P_60HZ 18 //1920*1080, 60HZ
#define ETI_MP4_FORMAT_LTF 19 //240*192
#define ETI_MP4_FORMAT_WQVGA1 20 //480*352
#define ETI_MP4_FORMAT_WQVGA2 21 //480*272
#define ETI_MP4_FORMAT_UVGA_50HZ 22 //1280*960,50HZ
#define ETI_MP4_FORMAT_UVGA_60HZ 23 //1280*960,60Hz
#define ETI_MP4_FORMAT_1080P_30HZ 24 //1920*1080, 30HZ
#define ETI_MP4_FORMAT_1080I_50HZ 25 //1920*1080, 50HZ
#define ETI_MP4_FORMAT_1080I_60HZ 26 //1920*1080, 60HZ
#define ETI_MP4_FORMAT_SXGA_75HZ 27 //1280*1024, 75HZ
#define ETI_MP4_FORMAT_WXGA_60HZ 28 //1280*800, 60HZ
#define ETI_MP4_FORMAT_WXGA_75HZ 29 //1280*800, 75HZ
#define ETI_MP4_FORMAT_SXGAP_60HZ 30 //1400*1050, 60HZ SXGA+
#define ETI_MP4_FORMAT_SXGAP_75HZ 31 //1400*1050, 75HZ SXGA+
#define ETI_MP4_FORMAT_WXGAP_60HZ 32 //1440*900, 60HZ WXGA+
#define ETI_MP4_FORMAT_WSXGAP_60HZ 33 //1680*1050, 60HZ WSXGA+
#define ETI_MP4_FORMAT_WSUVGAP_60HZ 34 //1920*1080, 60HZ WSUVGA+
#define ETI_MP4_FORMAT_1366X768_60HZ 35 //1366*768, 60HZ
#define ETI_MP4_FORMAT_WXGA_59HZ 36 //1280*800, 60HZ,非标
#define ETI_MP4_FORMAT_1280X720_59HZ 37 //1280*720, 60HZ 非标
#define ETI_MP4_FORMAT_1360X768_60HZ 38 //1360*768, 60HZ
#define ETI_MP4_FORMAT_720P_25HZ 39 //1280*720, 25HZ
#define ETI_MP4_FORMAT_720P_30HZ 40 //1280*720, 30HZ
#define ETI_MP4_FORMAT_1080P_25HZ 41 //1920*1080, 25HZ
#define ETI_MP4_FORMAT_UXGA_25HZ 42 //1600*1200, 25HZ
#define ETI_MP4_FORMAT_XGA_25HZ 43 //1024*768, 25HZ
#define ETI_MP4_FORMAT_SVGA_25HZ 44 //800*600, 25HZ
#define ETI_MP4_FORMAT_QQVGA 45 //160*120
#define ETI_MP4_FORMAT_QNHD 46 //320*180
#define ETI_MP4_FORMAT_NHD 47 //640*360
#define ETI_MP4_FORMAT_A720P_60HZ 48 //960*720, 60HZ
#define ETI_MP4_FORMAT_QXGA_15HZ 49 //2048*1536 15HZ
#define ETI_MP4_FORMAT_QXGA_20HZ 50 //2048*1536 20HZ
#define ETI_MP4_FORMAT_QSXGA_10HZ 51 //2592*1920 10HZ
#define ETI_MP4_FORMAT_UVGA_25HZ 52 //1280*960,25HZ
#define ETI_MP4_FORMAT_UVGA_30HZ 53 //1280*960,30Hz
#define ETI_MP4_FORMAT_VGAX 55 //640*352
#define ETI_MP4_FORMAT_DVGA 56 //960*576
#define ETI_MP4_FORMAT_720x576 58 //576I 25HZ
#define ETI_MP4_FORMAT_720x480 59 //480I 30HZ
#define ETI_MP4_FORMAT_2448x2048_15HZ 60 //抓拍机500万
#define ETI_MP4_FORMAT_384x288 61 //384*288
#define ETI_MP4_FORMAT_8M 70 ///* 3840 * 2160 */
#define ETI_MP4_FORMAT_12M 71 ///* 4000 * 3000 */
#define ETI_MP4_FORMAT_IR_VGA 72 ///* 640 * 512 */
#define ETI_MP4_FORMAT_IR_QVGA 73 ///* 320 * 256 */
#define ETI_MP4_FORMAT_IR_MVGA 74 ///* 336 * 256 */
#define ETI_MP4_FORMAT_CUSTOM_QVGA 75 ///* 880 * 496 */
#define ETI_MP4_FORMAT_CUSTOM_1080 76 ///* 1440 * 1080*/
/********************** 视频支持格式定义 ****************************/
#define ETI_FORMAT_SUPPORT_QCIF 0X00000001
#define ETI_FORMAT_SUPPORT_CIF 0X00000002
#define ETI_FORMAT_SUPPORT_2CIF 0X00000004
#define ETI_FORMAT_SUPPORT_4CIF 0X00000008
#define ETI_FORMAT_SUPPORT_8CIF 0X00000010
#define ETI_FORMAT_VI_NTSC 0
#define ETI_FORMAT_VI_PAL 1
/************************OSD透明模式******************************/
enum{
ETI_OSD_MODE_TRANSPARENT = 0, //透明
ETI_OSD_MODE_TRANSLUCENT, //半透明
ETI_OSD_MODE_OPAQUE //不透明
};
/********************** 宽带接入类型 ********************************/
#define ETI_ROUTEDEV_ADSL 0 //ADSL
#define ETI_ROUTEDEV_WBN 1 //长城宽带
/********************** 视频尺寸定义 ********************************/
#define ETI_MAX_422_STIDE 1440
#define ETI_MAX_IMAGE_WIDTH 704
#define ETI_MAX_IMAGE_HEIGHT_PAL 576
#define ETI_MAX_IMAGE_HEIGHT_NTSC 480
#define ETI_IMAGE_WIDTH_QCIF 176
#define ETI_IMAGE_WIDTH_CIF 352
#define ETI_IMAGE_WIDTH_2CIF ETI_MAX_IMAGE_WIDTH
#define ETI_IMAGE_WIDTH_DCIF 528
#define ETI_IMAGE_WIDTH_4CIF ETI_MAX_IMAGE_WIDTH
#define ETI_IMAGE_HEIGHT_QCIF_PAL 144
#define ETI_IMAGE_HEIGHT_QCIF_NTSC 120
#define ETI_IMAGE_HEIGHT_CIF_PAL 288
#define ETI_IMAGE_HEIGHT_CIF_NTSC 240
#define ETI_IMAGE_HEIGHT_2CIF_PAL ETI_IMAGE_HEIGHT_CIF_PAL
#define ETI_IMAGE_HEIGHT_2CIF_NTSC ETI_IMAGE_HEIGHT_CIF_NTSC
#define ETI_IMAGE_HEIGHT_DCIF_PAL 384
#define ETI_IMAGE_HEIGHT_DCIF_NTSC 320
#define ETI_IMAGE_HEIGHT_4CIF_PAL ETI_MAX_IMAGE_HEIGHT_PAL
#define ETI_IMAGE_HEIGHT_4CIF_NTSC ETI_MAX_IMAGE_HEIGHT_NTSC
#define ETI_MAX_IMAGE_WIDTH_QVGA 320
#define ETI_MAX_IMAGE_HEIGHT_QVGA 240
#define ETI_MAX_IMAGE_WIDTH_VGA 640
#define ETI_MAX_IMAGE_HEIGHT_VGA 480
#define ETI_MAX_IMAGE_WIDTH_SVGA 800
#define ETI_MAX_IMAGE_HEIGHT_SVGA 600
#define ETI_MAX_IMAGE_WIDTH_XGA 1024
#define ETI_MAX_IMAGE_HEIGHT_XGA 768
#define ETI_MAX_IMAGE_WIDTH_SXGA 1280
#define ETI_MAX_IMAGE_HEIGHT_SXGA 1024
#define ETI_MAX_IMAGE_WIDTH_UXGA 1600
#define ETI_MAX_IMAGE_HEIGHT_UXGA 1200
#define ETI_MAX_IMAGE_WIDTH_720P 1280
#define ETI_MAX_IMAGE_HEIGHT_720P 720
#define ETI_MAX_IMAGE_WIDTH_HDTV 1920
#define ETI_MAX_IMAGE_HEIGHT_HDTV 1080
#define ETI_MAX_IMAGE_WIDTH_QXGA 2048
#define ETI_MAX_IMAGE_HEIGHT_QXGA 1536
#define ETI_MAX_IMAGE_WIDTH_QSXGA 2592
#define ETI_MAX_IMAGE_HEIGHT_QSXGA 1920
#define ETI_MAX_IMAGE_WIDTH_UVGA 1280
#define ETI_MAX_IMAGE_HEIGHT_UVGA 960
/*************************最大视频帧大小**************************/
#define ETI_MAX_IMAGE_FRAMESIZE (1536*1024) //最大视频帧大小1.5MB
/*************************最大音频码率****************************/
#define ETI_MAX_AUDIO_BITRATE 64 //最大音频码率64Kb
/****************通道最大图象屏蔽块数*****************/
#define ETI_MAX_COVER_REGION 4
/******************最大图象屏蔽尺寸*******************/
#define ETI_VIDEOMASK_MAXWIDTH 352
#define ETI_VIDEOMASK_MAXHEGITH 288
/*****************************************************/
#define ETI_USER_OPERIAL 10 //操作员个数
#define ETI_DVR_USER_OPERIAL 32 //操作员个数
#define ETI_GROUP_MAXNUM 8 //8个组
/********************** 用户权限定义 ********************************/
#define ETI_USER_RIGHT_ADLOG 0 //登陆用户
#define ETI_USER_RIGHT_ADMIN 1 //管理员权限
#define ETI_USER_RIGHT_HIOPER 2 //高级操作员
#define ETI_USER_RIGHT_OPERIAL 3 //操作员
#define ETI_USER_RIGHT_SUPER 4 //特殊管理员
#define ETI_RIGHT_LOCALPLAY ((unsigned int)(1<<0)) //本地回放
#define ETI_RIGHT_NETPLAY ((unsigned int)(1<<1)) //远程回放
#define ETI_RIGHT_NETVIEW ((unsigned int)(1<<2)) //远程预览
#define ETI_RIGHT_NETTALK ((unsigned int)(1<<3)) //对讲
#define ETI_RIGHT_LOCALPTZ ((unsigned int)(1<<4)) //本地云台控制
#define ETI_RIGHT_NETPTZ ((unsigned int)(1<<5)) //远程云台控制
#define ETI_RIGHT_HANDRECORD ((unsigned int)(1<<6)) //手动录象
#define ETI_RIGHT_BKFILE ((unsigned int)(1<<7)) //录象文件备份
#define ETI_RIGHT_LOGMANAGE ((unsigned int)(1<<8)) //日志管理
#define ETI_RIGHT_PARAMSET ((unsigned int)(1<<9)) //系统参数设置
#define ETI_RIGHT_UPDATE ((unsigned int)(1<<10)) //升级系统
#define ETI_RIGHT_SHUTDOWN ((unsigned int)(1<<11)) //关闭设备
#define ETI_RIGHT_USERMANAGE ((unsigned int)(1<<12)) //用户帐号管理
#define ETI_RIGHT_ALL 0xFFFFFFFF //所有权限
typedef enum
{
ETI_NETVIEW_GROUP = 0, //预览组
ETI_OPERATOR_GROUP, //普通操作员组
ETI_ADVANCE_OPERATOR_GROUP, //高级操作员组
ETI_ADMIN_GROUP //管理员组
}ETI_RIGHT_GROUP;
/**************************权限信息结构****************************/
typedef struct
{
unsigned int m_right; //按位表示权限,由低到高依次为,本地回放、远程回放、远程预览、对讲、
//本地云台控制、远程云台控制、手动录象、录象文件备份、日志管理、
//系统参数设置、升级系统、关闭设备、用户帐号管理
unsigned int m_right1; //保留
unsigned int m_netview; //远程预览的0~31通道
unsigned int m_netview1; //远程预览的32~63通道
unsigned int m_netplay; //远程回放的0~31通道
unsigned int m_netplay1; //远程回放的32~63通道
unsigned int m_localplay; //本地回放的0~31通道
unsigned int m_localplay1; //本地回放的32~63通道
}ETI_RIGHT_T;
/**************************组信息结构****************************/
typedef struct
{
ETI_RIGHT_T m_right;
char m_groupname[APP_PASSWORD_LENGTH];
}ETI_GROUP_T;
/**************************用户信息结构****************************/
typedef struct
{
char m_username[APP_PASSWORD_LENGTH];
char m_password[APP_PASSWORD_LENGTH];
int m_groupnum; //用户所属的权限组
ETI_RIGHT_T m_right;
}ETI_USER_T;
/**************************用户信息参数****************************/
typedef struct
{
int m_usernum; //用户个数
int m_groupnum; //有效组个数
ETI_GROUP_T m_group[ETI_GROUP_MAXNUM]; //8个组初始化4个预留4个
ETI_USER_T m_user[ETI_DVR_USER_OPERIAL]; //32个用户初始化4个
}ETI_SYSUSER_T;
/********************** user info extent(add user stauts) *********/
typedef struct
{
char m_status[ETI_DVR_USER_OPERIAL]; // the status of user(0:disbale, 1:enable)
ETI_SYSUSER_T m_user;
}ETI_SYSUSER_EX_T; // extent user info(add the stauts of user)
/********************** 动环监控报警主机用户管理新增定义 ********************************/
#define ETI_USERS_OPERIAL 20 //最大支持20个用户(含超级管理员、一般管理员和操作员3种用户)
/* 动环报警主机权限定义 */
#define ETI_RIGHT_QUERYSTATE ((unsigned int)(1<<0)) //状态查询
#define ETI_RIGHT_QUERYENV ((unsigned int)(1<<1)) //环境信息查询
#define ETI_RIGHT_QUERYLOG ((unsigned int)(1<<2)) //日志查询
#define ETI_RIGHT_SETPARAM ((unsigned int)(1<<3)) //参数设置
#define ETI_RIGHT_ADMUSER ((unsigned int)(1<<4)) //用户管理
#define ETI_RIGHT_DEFAULTSYS ((unsigned int)(1<<5)) //恢复出厂设置
#define ETI_RIGHT_UPDATESYS ((unsigned int)(1<<6)) //系统升级
#define ETI_RIGHT_SHUTSYS ((unsigned int)(1<<7)) //关闭系统
#define ETI_RIGHT_NUMS 8 //总权限数
typedef enum
{
ETI_OPERATORS_GROUP = 0, //操作员组
ETI_COMADMIN_GROUP, //普通管理员组
ETI_SUPADMIN_GROUP //超级管理员组
}ETI_RIGHTS_GROUP;
typedef struct
{
/*按位表示权限,由低到高依次为:状态查询/环境信息查询/日志
*查询/参数设置/用户管理/恢复出厂设置/系统升级*/
unsigned int m_right; //权限
unsigned int m_right1; //保留
unsigned int m_right2; //保留
unsigned int m_right3; //保留
}ETI_RIGHTS_T;
typedef struct
{
char m_groupname[APP_PASSWORD_LENGTH];
ETI_RIGHTS_T m_right;
}ETI_GROUPS_T;
typedef struct
{
char m_username[APP_PASSWORD_LENGTH];//用户名
char m_password[APP_PASSWORD_LENGTH];//密码
int m_groupnum; //用户所属的权限组
ETI_RIGHTS_T m_right; //权限
}ETI_USERS_T;
typedef struct
{
char m_status[ETI_USERS_OPERIAL]; //the status of user(0:disbale,1:enable)
int m_groupnum; //有效组个数
int m_usernum; //用户个数
ETI_GROUPS_T m_group[ETI_GROUP_MAXNUM]; //3个组初始化3个预留5个
ETI_USERS_T m_user[ETI_USERS_OPERIAL]; //20个用户初始化1个剩余用户由有添加用户权限的用户添加
}ETI_SYSUSERS_T;
/********************** 动环监控报警主机用户管理新增定义结束 ********************************/
/********************** 串口属性定义***************************/
//数据位
enum{UART_DATABIT_5 = 5U,UART_DATABIT_6 = 6U,UART_DATABIT_7 = 7U,UART_DATABIT_8 = 8U};
//停止位
enum{UART_STOPBIT_0 = 0U,UART_STOPBIT_1 = 1U,UART_STOPBIT_2 = 2U};
//校验位
enum{UART_VERIFY_NONE = 0U,UART_VERIFY_ODD = 1U,UART_VERIFY_EVEN = 2U,UART_VERIFY_MASK1 = 3U,UART_VERIFY_MASK0 = 4U};
//流控
enum{UART_STREAMCTRL_NONE = 0U,UART_STREAMCTRL_SOFT = 1U,UART_STREAMCTRL_HARD = 2U};
/**************错误代码定义***************************/
#define ETI_OK 0
#define ETI_ERROR -1
/**************程序升级错误代码***************/
#define ETI_UDPATE_ERR_MASKID -1
#define ETI_UPDATE_ERR_SIZE -2
#define ETI_UPDATE_ERR_OFFSET -3
#define ETI_UPDATE_ERR_WRITEFLASH -4
/*****************************************************/
/**************系统语言类型定义***************************/
#define ETI_SYSLANGUAGE_CHINA 1 //中文
#define ETI_SYSLANGUAGE_ENGLISH 2 //英文
/*****************************************************/
/***************云台控制协议定义********************/
#define ETI_PTZTYPE_NONE 0 //无
#define ETI_PTZTYPE_PELCOP 1
#define ETI_PTZTYPE_PELCOD 2
#define ETI_PTZTYPE_HUNTERD 3
#define ETI_PTZTYPE_YINGKE 4
#define ETI_PTZTYPE_SONY100 5
#define ETI_PTZCMDMAXSIZE 4096
#define ETI_PTZCMDMAXSIZE_EX 16384
#define ETI_LICENSEMAXSIZE 1024
/*****************************************************/
/**************网络传输类型和传输协议支持*************/
#define ETI_TRAN_TYPE_UDP 1
#define ETI_TRAN_TYPE_MULTI 2
#define ETI_TRAN_TYPE_TCP 3
#define ETI_TRAN_TYPE_RTP 4
#define LAN_NET_TRANTYPE_UDP ETI_TRAN_TYPE_UDP
#define LAN_NET_TRANTYPE_MULTI ETI_TRAN_TYPE_MULTI
#define LAN_NET_TRANTYPE_TCP ETI_TRAN_TYPE_TCP
#define LAN_NET_TRANTYPE_RTP ETI_TRAN_TYPE_RTP
#define ETI_TRAN_SUPPROT_UDP 0X01
#define ETI_TRAN_SUPPORT_MULTI 0X02
#define ETI_TRAN_SUPPORT_TCP 0X04
#define ETI_TRAN_SUPPORT_RTP 0X08
/*****************************************************/
enum{
ETI_VOVIEWMODE_1 = 1,
ETI_VOVIEWMODE_2 = 2,
ETI_VOVIEWMODE_4 = 4,
ETI_VOVIEWMODE_6 = 6,
ETI_VOVIEWMODE_8 = 8,
ETI_VOVIEWMODE_9 = 9,
};
/***************移动报警、图象屏蔽********************/
/*
* 对于PAL制式,高能被32整除
* 对于NTSC制式,高不能被32整除,最后一行采用32*16的块大小
*/
#define ETI_MOTIONAREA_SIZE 396 //(704/32)*(576/32) = 18 * 22
/*****************************************************/
#define ETI_MAX_OSD_SIZE 32
/************报警发生时通过网络备份文件选项**************/
#define ETI_ALARM_BACK_FTP 0X01 //通过FTP备份
#define ETI_ALARM_BACK_MODEM 0X02 //通过拨号备份
/********************** 帧头ID定义 ********************************/
#define ETI_FRAME_HEAD_ID 0XB2010000 // 老帧头部标示9000\8000\5000\5100系列使用
#define ETI_DVR_FRAME_HEAD_ID 0XB3010000 // 新帧头部标示
#define ETI_VCA_FRAME_HEAD_ID 0XB4010000 // 智能分析帧头标示
#define ETI_BRV_FRAME_HEAD_ID ETI_FRAME_HEAD_ID + 1 // 博维帧头ID阿尔卡特平台定制版本
/********************** 帧类型定义 ********************************/
#define ETI_FRAME_CH_MASK 0X000F //0X0001111B
#define ETI_FRAME_TIMERESET 0X0010 //0X0010000B
#define ETI_FRAME_KEY_MASK 0X0020 //0X0100000B
#define ETI_FRAME_VIDEOSIZE_MAXK 0X0040 //0X1000000B图像尺寸标志
#define ETI_FRAME_DATA_MASK 0XFF80
#define ETI_FRAME_VIDEOSIZE_LEN 4 //(width + height)
/********************** DVR帧类型定义 *****************************/
#define ETI_DVR_FRAME_KEY_MASK 1<<0 //视频I帧
#define ETI_DVR_FRAME_PFRAME_MASK 1<<1 //视频P帧
#define ETI_DVR_FRAME_BFRAME_MASK 1<<3 //视频B帧
#define ETI_DVR_FRAME_AUDIO 1<<4 //包含音频数据
#define ETI_DVR_FRAME_FILEHEAD 1<<5 //包含文件头
#define ETI_VCA_FRAME_INFOHEAD 1<<6 //包含智能分析信息头
#define ETI_DVR_FRAME_SYSHEAD 1<<7 //包含 系统头
/********************** 智能分析信息类型定义 **********************/
#define ETI_VCA_FRAME_INFO_TYPE_PLATE 0x01 //智能分析信息类型:车牌识别信息
/* 修改隐式转换的bug */
#if defined(DVR_BIG_ENDIAN)
#define ETI_DVR_FRAME_ISKEY(buff) \
(lc_swab32((unsigned int)(((ETI_DVR_FRMAME_HEAD*)(buff))->nVideoSize)) > 0U && (lc_swab16(((ETI_DVR_FRMAME_HEAD*)(buff))->nMuxData) & (unsigned short)(ETI_FRAME_KEY_MASK)))
#define ETI_DVR_FRAME_ISFRAME(buff) \
((lc_swab32(((ETI_DVR_FRMAME_HEAD*)(buff))->nID) == ETI_DVR_FRAME_HEAD_ID) && ((lc_swab32((unsigned int)(((ETI_DVR_FRMAME_HEAD*)(buff))->nVideoSize)) + lc_swab32(((ETI_DVR_FRMAME_HEAD*)(buff))->nAudioSize) > 0U)))
#define ETI_DVR_FRAME_ISVIDEO(buff) (int)lc_swab32((unsigned int)(((ETI_DVR_FRMAME_HEAD*)(buff))->nVideoSize)) > 0 ? 1 : 0
#define ETI_DVR_FRAME_TICK(buff) lc_swab32(((ETI_DVR_FRMAME_HEAD*)(buff))->nTimeTick)
#define ETI_DVR_FRAME_ISRESET(buff) (lc_swab16(((ETI_DVR_FRMAME_HEAD*)(buff))->nMuxData) & (unsigned short)(ETI_FRAME_TIMERESET))
#define ETI_DVR_FRAME_GMTTIME(buff) lc_swab32(((ETI_DVR_FRMAME_HEAD*)(buff))->nGMTTime)
#else
#define ETI_DVR_FRAME_ISKEY(buff) \
( ((ETI_DVR_FRMAME_HEAD*)(buff))->nVideoSize > 0 && (((ETI_DVR_FRMAME_HEAD*)(buff))->nFrameType & ETI_DVR_FRAME_KEY_MASK))
#define ETI_DVR_FRAME_ISFRAME(buff) \
((((ETI_DVR_FRMAME_HEAD*)(buff))->nID == ETI_DVR_FRAME_HEAD_ID) && ((((ETI_DVR_FRMAME_HEAD*)(buff))->nVideoSize + ((ETI_DVR_FRMAME_HEAD*)(buff))->nAudioSize > 0)))
#define ETI_DVR_FRAME_ISVIDEO(buff) ((ETI_DVR_FRMAME_HEAD*)(buff))->nVideoSize > 0 ? 1 : 0
#define ETI_DVR_FRAME_TICK(buff) ((ETI_DVR_FRMAME_HEAD*)(buff))->nTimeTick
#define ETI_DVR_FRAME_ISRESET(buff) (((ETI_DVR_FRMAME_HEAD*)(buff))->nMuxData & ETI_FRAME_TIMERESET)
#define ETI_DVR_FRAME_GMTTIME(buff) ((ETI_DVR_FRMAME_HEAD*)(buff))->nGMTTime
#endif
#define ETI_FRAME_ISKEY(buff) \
( ((ETI_FRMAME_HEAD*)(buff))->nVideoSize > 0 && ((ETI_FRMAME_HEAD*)(buff))->nMuxData & ETI_FRAME_KEY_MASK)
#define ETI_FRAME_ISFRAME(buff) \
((((ETI_FRMAME_HEAD*)(buff))->nID == ETI_FRAME_HEAD_ID) && ((((ETI_FRMAME_HEAD*)(buff))->nVideoSize + ((ETI_FRMAME_HEAD*)(buff))->nAudioSize > 0)))
#define ETI_FRAME_ISVIDEO(buff) ((ETI_FRMAME_HEAD*)(buff))->nVideoSize > 0 ? 1 : 0
#define ETI_FRAME_TICK(buff) ((ETI_FRMAME_HEAD*)(buff))->nTimeTick
#define ETI_FRAME_ISRESET(buff) ( ((ETI_FRMAME_HEAD*)(buff))->nMuxData & ETI_FRAME_TIMERESET )
#define ETT_BRV_PACKETSEQSIZE(pframehead) (pframehead->m_filehead.m_totalframes == 0?0:(pframehead->m_filehead.m_totalframes - 1)*sizeof(DATA_BRV_CHECK_HEND_T))
#define DVR_FILE_HEAD_SIZE(buff) (((ETI_DVR_FRMAME_HEAD*)(buff))->nFrameType & ETI_DVR_FRAME_FILEHEAD?(int)sizeof(ETI_FILE_HEAD):0)
#define DVR_SYS_HEAD_SIZE(buff) (((ETI_DVR_FRMAME_HEAD*)(buff))->nFrameType & ETI_DVR_FRAME_SYSHEAD?((ETI_DVR_FRMAME_HEAD*)(buff))->nVideoSize:0)
#define ETI_VCA_FRAME_ISKEY(buff) ETI_DVR_FRAME_ISKEY(buff)
#define ETI_VCA_FRAME_ISFRAME(buff) \
((((ETI_VCA_FRMAME_HEAD*)(buff))->nID == ETI_VCA_FRAME_HEAD_ID) && ((((ETI_VCA_FRMAME_HEAD*)(buff))->nVideoSize + ((ETI_VCA_FRMAME_HEAD*)(buff))->nAudioSize > 0)))
#define ETI_VCA_FRAME_ISVIDEO(buff) ETI_DVR_FRAME_ISVIDEO(buff)
#define ETI_VCA_FRAME_TICK(buff) ETI_DVR_FRAME_TICK(buff)
#define ETI_VCA_FRAME_ISRESET(buff) ETI_DVR_FRAME_ISRESET(buff)
#define ETI_VCA_FRAME_GMTTIME(buff) ETI_DVR_FRAME_GMTTIME(buff)
#define VCA_FILE_HEAD_SIZE(buff) DVR_FILE_HEAD_SIZE(buff)
#define VCA_INFO_HEAD_SIZE(buff) (((ETI_VCA_FRMAME_HEAD*)(buff))->nFrameType & ETI_VCA_FRAME_INFOHEAD?sizeof(ETI_VCA_INFO_HEAD):0)
#define VCA_INFO_DATA_TYPE(buff) ((ETI_VCA_INFO_HEAD*)((char*)(buff) + sizeof(ETI_VCA_FRMAME_HEAD) + VCA_FILE_HEAD_SIZE(buff)))->vca_type
#define VCA_INFO_DATA_ISPLATE(buff) (VCA_INFO_DATA_TYPE(buff) == ETI_VCA_FRAME_INFO_TYPE_PLATE)
#define VCA_INFO_DATA_SIZE(buff) ((ETI_VCA_INFO_HEAD*)((char*)(buff) + sizeof(ETI_VCA_FRMAME_HEAD) + VCA_FILE_HEAD_SIZE(buff)))->vca_length
#define ETI_STREAMINFO_VIDEOID_DVS 0
#define ETI_STREAMINFO_VIDEOID_DVR 1
#define ETI_DVS_FILE_VERSION 1
#define ETI_DVR_FILE_VERSION 2
#define ETI_AUDIO_FILE_VERSION 3
typedef struct
{
/*
nMuxData Format :16 bits
最大用户数据长度为1024
-----------------------------------------------------
|0--4 通道号| 5 帧类型| 6 图像尺寸标志|7---15 用户数据长度|
如果有图像尺寸标志在nVideoSize后加上4个字节的图像宽度和高度
-----------------------------------------------------
*/
//unsigned char nID[4]; //0X00,0X00,0X01,0XB2
unsigned int nID; //0XB2010000
unsigned int nTimeTick; //时间戳
int nVideoSize;//视频数据长度
unsigned short nAudioSize; //音频数据长度
unsigned short nMuxData; //复合数据:视频通道、帧类型、用户数据
}ETI_FRMAME_HEAD,*PETI_FRMAME_HEAD;
/*
1.在视频I帧或者音频格式变化时包含文件头信息,nFrameType = 0x20,文件头长度sizeof(ETI_FILE_HEAD).
2.ID定义为 ETI_DVR_FRAME_HEAD_ID,0XB3010000,此ID在MPEG4或者H264码流中不会存在.
3.如果码流中同时包含音视频数据和文件头信息,排列顺序为: 文件头信息,视频数据,音频数据,nFrameCount按视频数据进行填写.
4.nGMTTime按照GMT时间输入和输出,用于定位当前帧的绝对播放时间.
5.nFrameCount按照编码帧数进行累加,用于判断发送时是否存在丢帧,丢帧后不进行后面P帧解码,避免造成图像花屏.
6.nMuxData去掉原来功能,暂时保留,备用.
*/
typedef struct
{
unsigned int nID; //ETI_DVR_FRAME_HEAD_ID,0XB3010000
//ETI_VCA_FRAME_HEAD_ID,0XB4010000 智能分析帧头标示
unsigned int nTimeTick; //时间戳,相对时间,毫秒为单位
unsigned int nGMTTime; //绝对时间,自1970年1月1日 00:00:00 开始的秒数,时区按GMT时区计算.
int nFrameType; //低4位表示视频帧类型: 0->I-FRAME/1->P-FRAME/3->B-FRAME
//第5位表示是否包含音频: 0x10表示有音频帧
//第6位表示是否包含文件头信息: 0x20:表示有文件头信息
//第7位表示是否包含智能分析信息0x40表示有智能分析信息
//第8位表示是否包含用于解码初始化的系统头ETI_DVR_FRAME_SYSHEAD 1<<7 使用nVideoSize 表示系统头大小
int nFrameCount; //编码帧序号
int nVideoSize; //视频数据长度
unsigned short nAudioSize; //音频数据长度
unsigned short nMuxData; //复合数据
}
ETI_DVR_FRMAME_HEAD,*PETI_DVR_FRMAME_HEAD,
ETI_VCA_FRMAME_HEAD,*PETI_VCA_FRMAME_HEAD; // 智能分析帧头
typedef struct
{
unsigned int nID; //ETI_DVR_FRAME_HEAD_ID,0XB3010000
unsigned int nTimeTick; //时间戳,相对时间,毫秒为单位
unsigned int nGMTTime; //绝对时间,自1970年1月1日 00:00:00 开始的秒数,时区按GMT时区计算.
int nFrameType; //第6位表示是否包含文件头信息: 0x20:表示有文件头信息
int nFrameCount; //编码帧序号
int nAudioSizeOne; //音频1长度
unsigned short nAudioSizeTwo; //音频2长度
unsigned short nMuxData; //复合数据
} ETI_AUDIO_FRMAME_HEAD,*PETI_AUDIO_FRMAME_HEAD; // 双音频帧头
#define ETI_FILE_MASKEND 0XABCEDF01
#define ETI_FILEMASK "LAUNCHDIGITAL"
#define ETI_FILEMASK_NEW "MP4RECORDFILE"
#define ETI_FILEMASK_DX_NOAUDIO "DXNOAUDIOFILE"
#define TARGET_DX4
typedef struct
{
char m_filemask[16]; //文件头MASK "LAUNCHDIGITAL"
int m_fileversion; //文件版本号 ETI_DVR_FILE_VERSION为结构 ETI_DVR_FILE_HEAD
// ETI_DVS_FILE_VERSION为结构 ETI_FILE_HEAD
int videofoucc; //视频FOURCC
short framerate; //视频帧率
short videoid; //视频ID 暂时保留 0
short m_width; //图像宽度
short m_height; //图像高度
short m_audiotag; //音频标识
short m_haveaudio; //是否包含音频标志
short m_auchs; //音频通道号
short m_aurates; //音频码率
int m_ausample; //音频采样率
unsigned int m_totalframes; //文件中包含的帧数
unsigned int m_firsttick; //第一帧时间戳
unsigned int m_losttick; //最后一帧时间戳
int maskend; //结束标志
}ETI_FILE_HEAD;
typedef struct
{
char m_filemask[16]; //文件头MASK "LAUNCHDIGITAL"
int m_fileversion; //文件版本号 ETI_DVR_FILE_VERSION为结构 ETI_DVR_FILE_HEAD
// ETI_DVS_FILE_VERSION为结构 ETI_FILE_HEAD
int videofoucc; //视频FOURCC
short framerate; //视频帧率
short videoid; //视频ID 暂时保留 0
short m_width; //图像宽度
short m_height; //图像高度
short m_audiotag; //音频标识
short m_haveaudio; //是否包含音频标志
short m_auchs; //音频通道号
short m_aurates; //音频码率
int m_ausample; //音频采样率
unsigned int m_totalframes; //文件中包含的帧数
unsigned int m_firsttick; //第一帧时间戳
unsigned int m_losttick; //最后一帧时间戳
unsigned int m_reserved; //保留位
unsigned int m_firstGMTTime; //文件开始绝对时间,时区按GMT时区计算.
unsigned int m_lastGMTTime; //文件结束绝对时间,时区按GMT时区计算.
int maskend; //结束标志
}ETI_DVR_FILE_HEAD;
typedef struct
{
char m_filemask[16]; //文件头MASK "LAUNCHDIGITAL"
int m_fileversion; //文件版本号 ETI_DVR_FILE_VERSION 为结构 ETI_DVR_FILE_HEAD
// ETI_DVS_FILE_VERSION 为结构 ETI_FILE_HEAD
// ETI_AUDIO_FILE_VERSION 为结构 ETI_AUDIO_FILE_HEAD
short m_audiotag1; //音频标识
short m_haveaudio1; //是否包含音频标志
short m_auchs1; //音频通道号
short m_aurates1; //音频码率
int m_ausample1; //音频采样率
short m_audiotag2; //音频标识
short m_haveaudio2; //是否包含音频标志
short m_auchs2; //音频通道号
short m_aurates2; //音频码率
int m_ausample2; //音频采样率
unsigned int m_totalframes1; //音频1文件中包含的帧数
unsigned int m_totalframes2; //音频2文件中包含的帧数
unsigned int m_firsttick; //第一帧时间戳
unsigned int m_losttick; //最后一帧时间戳
unsigned int m_firstGMTTime; //文件开始绝对时间,时区按GMT时区计算.
unsigned int m_lastGMTTime; //文件结束绝对时间,时区按GMT时区计算.
unsigned int m_reserved; //保留位
int maskend; //结束标志
} ETI_AUDIO_FILE_HEAD;
//////////////////////////DXHJ BEGIN///////////////////////////////
typedef struct
{
char m_court[48]; //主机所在法院
char m_courtroom[48]; //主机所在法庭
char m_id[16]; //主机唯一识别号
char m_szCaseID[28]; //case id
char m_szCaseExecor[28]; //case 执行人
char m_recv1[32]; //保留1
char m_recv2[32]; //保留2
char m_recv3[32]; //保留3
}DX_FILE_HEAD;
typedef struct
{
char m_filemask[16]; //文件头MASK "LAUNCHDIGITAL"
int m_fileversion; //文件版本号 ETI_DVR_FILE_VERSION为结构 ETI_DVR_FILE_HEAD
// ETI_DVS_FILE_VERSION为结构 ETI_FILE_HEAD
int videofoucc; //视频FOURCC
short framerate; //视频帧率
short videoid; //视频ID 暂时保留 0
short m_width; //图像宽度
short m_height; //图像高度
short m_audiotag; //音频标识
short m_haveaudio; //是否包含音频标志
short m_auchs; //音频通道号
short m_aurates; //音频码率
int m_ausample; //音频采样率
unsigned int m_totalframes; //文件中包含的帧数
unsigned int m_firsttick; //第一帧时间戳
unsigned int m_losttick; //最后一帧时间戳
unsigned int m_reserved; //保留位
unsigned int m_firstGMTTime; //文件开始绝对时间,时区按GMT时区计算.
unsigned int m_lastGMTTime; //文件结束绝对时间,时区按GMT时区计算.
DX_FILE_HEAD m_dxfile; //录像头中添加法院信息
int maskend; //结束标志
}ETI_DX4_DVR_FILE_HEAD;
//////////////////////////DXHJ END/////////////////////////////////
typedef struct
{
unsigned int nID; //ETI_BRV_FRAME_HEAD_ID,0XB2010001
unsigned int nTimeTick; //时间戳
int nVideoSize; //视频数据长度
unsigned short nAudioSize; //音频数据长度
unsigned short nMuxData; //复合数据:视频通道、帧类型、用户数据
ETI_FILE_HEAD m_filehead; //文件头
}ETI_BRV_FRMAME_HEAD,*PETI_BRV_FRMAME_HEAD;
#define MIN_FRMAME_HEAD ETI_FRMAME_HEAD
typedef struct
{
unsigned short framenum;
unsigned short packnum;
}DATA_BRV_CHECK_HEND_T;
#define BRV_PACETSIZE 1116
// 智能分析信息结构
typedef struct
{
unsigned int vca_type; // 智能分析信息类型0x01-车牌识别信息
unsigned int vca_length; // 智能分析信息长度,以字节为单位
}ETI_VCA_INFO_HEAD;
typedef struct
{
short left; // 矩形区域的左上角X坐标
short right; // 矩形区域的右下角X坐标
short top; // 矩形区域的左上角Y坐标
short bottom; // 矩形区域的右下角Y坐标
}ETI_VCA_PLATERECT;
#ifndef MAX_VCA_PLATERECT_NUM
#define MAX_VCA_PLATERECT_NUM 4 // 车牌分析最多车牌数
#endif
#ifndef MAX_VCA_PLATERSTR_NUM
#define MAX_VCA_PLATERSTR_NUM 12 // 车牌分析车牌号码
#endif
// 智能分析车牌信息
typedef struct
{
unsigned int version; // 车牌识别信息版本0x01-V1.0
unsigned int time_stamp; // 分析时间戳,以毫秒为单位
unsigned int pos_num; // 当前帧定位到的车牌数目
ETI_VCA_PLATERECT pos_rect[MAX_VCA_PLATERECT_NUM]; // 当前帧定位到的车牌在原始图像中的位置
unsigned char recog_num; // 识别出的车牌号数目
unsigned char reserverd1[3]; // 保留参数置为0
unsigned int recog_gmttime[MAX_VCA_PLATERECT_NUM]; // 识别到的车牌最早出现的绝对时间自1970年1月1日 00:00:00 开始的秒数,时区按GMT时区计算
unsigned char recog_number[MAX_VCA_PLATERECT_NUM][MAX_VCA_PLATERSTR_NUM]; // 识别出来的车牌字符
unsigned char recog_trust[MAX_VCA_PLATERECT_NUM]; // 车牌字符的置信度
unsigned char recog_brightness[MAX_VCA_PLATERECT_NUM]; // 车牌亮度值1 ~ 255
unsigned char recog_color[MAX_VCA_PLATERECT_NUM]; // 车牌颜色 0:蓝底1:黄底2:白底军牌3:白底警牌4:黑牌5:未知
unsigned char recog_direction[MAX_VCA_PLATERECT_NUM]; // 车牌运动方向 0:未知方向 1:车牌从上到下运动 2:表示车牌从下到上运动
unsigned char recog_type[MAX_VCA_PLATERECT_NUM]; // 车牌类型 1:大型汽车号牌 2:小型汽车号牌 16:教练汽车号牌 23:警用汽车号牌 99:未知
unsigned int recog_speeds[MAX_VCA_PLATERECT_NUM]; // 车牌运动速度
unsigned char recog_carcolor[MAX_VCA_PLATERECT_NUM]; // 车身颜色 0:未知 1:蓝色 2:黑色 3:白色 4:黄色 5:红色 6:绿色 -1:失败
}ETI_VCA_PLATEINFO;
/********************** 日期时间信息格式定义 ********************************/
typedef enum{
ETI_TIME_FORMAT_OFF = 0X00, //关闭
ETI_TIME_FORMAT_1 = 0X01, //2003-09-12 15:23:33
ETI_TIME_FORMAT_2 = 0X02, //2003-09-12 星期五 15:23:33
ETI_TIME_FORMAT_3 = 0X03, //09-12-2003 15:23:33
ETI_TIME_FORMAT_4 = 0X04, //09-12-2003 星期五 15:23:33
ETI_TIME_FORMAT_5 = 0X05, //12-09-2003 15:23:33
ETI_TIME_FORMAT_6 = 0X06, //12-09-2003 星期五 15:23:33
ETI_TIME_FORMAT_7 = 0X07, //2003/09/12 15:23:33
ETI_TIME_FORMAT_8 = 0X08, //09/12/2003 15:23:33
ETI_TIME_FORMAT_9 = 0X09, //12/09/2003 15:23:33
ETI_TIME_FORMAT_A = 0X0A, //2003.09.12 15:23:33
ETI_TIME_FORMAT_B = 0X0B, //09.12.2003 15:23:33
ETI_TIME_FORMAT_C = 0X0C //12..09.2003 15:23:33
}ETI_TIME_FORMAT;
/*****************************************************/
/**************时间表日期***************************/
typedef enum
{
ETI_DAY_MONDAY = 0, //星期一
ETI_DAY_TUESDAY = 1, //星期二
ETI_DAY_WEDNESDAY = 2, //星期三
ETI_DAY_THURSDAY = 3, //星期四
ETI_DAT_FRIDAY = 4, //星期五
ETI_DAY_SATURDAY = 5, //星期六
ETI_DAY_SUNDAY = 6, //星期天
ETI_DAY_MON_FRI = 7, //星期一-星期五
ETI_DAY_SAT_SUN = 8, //星期六-星期天
ETI_DAY_DAILY = 9, //每天
ETI_DAY_OFF = 10, //关闭
}ETI_TIME_DAYTYPE;
/*****************************************************/
//码率控制模式我公司与海思定义的RC_MODE_E不同CBR和VBR相反(兼容以前设计)
typedef enum
{
ETI_MODE_CBR = 0,
ETI_MODE_VBR,
ETI_MODE_ABR,
ETI_MODE_FIXQP,
}ETI_MODE_E;
#define ETI_MAX_JPEG_SIZE 2000*1024
#define ETI_PLATE_STR_SIZE 12
typedef struct
{
int m_filesize; //文件大小
int m_year; //年
char m_month; //月
char m_day; //日
char m_hour; //时
char m_captype; //抓拍类型:0x01-手动抓拍;0x02-超速抓拍;0x04-闯红灯抓拍;0x08-卡口抓拍;
char m_filename[60]; //文件名
char m_tollgateid[32]; //卡口编号
char m_deviceid[32]; //设备编号
} ETI_JPEG_HEAD;
typedef struct
{
char m_roadwaynum; //车道号
char m_color; //车牌颜色
char m_ptype; //车牌类型
char m_car_color; //车身颜色
char m_direction; //方向
char m_reserved; //保留
short m_speed; //车速
int m_captype; //抓拍类型:0x01-手动抓拍;0x02-超速抓拍;0x04-闯红灯抓拍;0x08-卡口抓拍;
char m_filename[60]; //文件名
char m_tollgateid[32]; //卡口编号
char m_deviceid[32]; //设备编号
char m_platestr[ETI_PLATE_STR_SIZE]; //车牌号
char m_reserve[32]; //保留,用于扩展
} ETI_JPEG_HEAD_EX;
#define ETI_MAX_JPEG_NUM 10
typedef struct
{
short m_year; //年
short m_msecond; //毫秒
char m_month; //月
char m_day; //日
char m_hour; //时
char m_minute; //分
char m_second; //秒
char m_is_plate; //是否为车牌图片
char m_seqnum; //抓拍图片序号
char m_reserve; //保留
int m_size; //图片大小
int m_offset; //图片偏移
} JPEG_INFO;
typedef struct
{
int m_jpgnum; //图片数量
int m_totalsize; //图片总大小
JPEG_INFO m_jpeg_info[ETI_MAX_JPEG_NUM]; //偏移和大小
ETI_JPEG_HEAD_EX m_jpeg_head; //图片头信息
char m_reserve[32]; //保留位
} ETI_JPEG_PACK;
/* tyto 抓拍图片信息*/
typedef struct
{
unsigned int m_doffset; //图片数据偏移
unsigned int m_dlen; //图片数据长度
short m_width; //图像宽度
short m_height; //图像高度
unsigned int m_timestamp; //时间戳
short m_year; //年
short m_msecond; //毫秒
char m_month; //月
char m_day; //日
char m_hour; //时
char m_minute; //分
char m_second; //秒
char m_reserve[3]; //保留
} ETI_JPEG_INFO;
typedef enum
{
WEB_MSG_OPT_RESTART = 0, //服务器正在重启 未区分恢复默认重启 需要就添加
WEB_MSG_OPT_RELOGIN = 1, //请重新登录设备
WEB_MSG_OPT_UPDATA = 2, //系统正在升级,请稍候
WEB_MSG_OPT_UPDATASUCCESS = 3, //程序升级成功,请重新登录
WEB_MSG_OPT_UPDATAILLEGAL = 4, //您上传的文件格式不正确,无法升级,但是系统还是需要重启...
WEB_MSG_OPT_USERERROR = 5, //用户名或密码错误
WEB_MSG_OPT_NORIGHT = 6, //您没有权限
WEB_MSG_OPT_FORMAT = 7, //格式化硬盘成功,设备需要重启
WEB_MSG_OPT_FORMATERROR = 8, //格式化硬盘失败,设备需要重启
WEB_MSG_OPT_DEFAULT = 9, //恢复出厂设置
WEB_MSG_OPT_USERCHANGE = 10, //密码修改成功,请重新登录
WEB_MSG_OPT_DISABLED = 11, //用户已禁用
WEB_MSG_OPT_OLDPASSWD_ERR = 12, //原密码错误
WEB_MSG_OPT_SETUSER_ERR = 13, //设置用户(增加/删除/修改用户)失败
WEB_MSG_OPT_RESTARTFAILED = 14, //服务器重启失败
WEB_MSG_OPT_LOOPING = 15, //正在轮巡
}ETI_WEB_RETURN_ORDER;
/*-------------------IR Raw extra data----------------------*/
typedef enum
{
ETI_EXDATA_SENSOR_INVALID = 0,
ETI_EXDATA_SENSOR_START_FPA = 1,
ETI_EXDATA_SENSOR_CURRENT_FPA = 2,
ETI_EXDATA_SENSOR_HOUSE_TEMP = 3,
ETI_EXDATA_SENSOR_SHUTTER_TEMP = 4,
ETI_EXDATA_SENSOR_OTHER = 5
}ETI_EXDATA_TEMPSENSORID;
typedef struct
{
unsigned char temp_sensor_id;//TempSensor类型
unsigned char resverve[3];
/*1-start FPA:启动FPA
2-Current FPA:当前FPA
3-House Temp:外壳温度
4-Shutter Temp:快门温度
5-其他*/
float temprature;//温度(K)
}ETI_EXDATA_TEMPSENSOR;
typedef enum
{
ETI_EXDATA_CHIP_INVALID = 0,
ETI_EXDATA_CHIP_LP2_0 = 1,
ETI_EXDATA_CHIP_LP2_5 = 2,
ETI_EXDATA_CHIP_LP3_0 = 3,
ETI_EXDATA_CHIP_LP3_5 = 4,
ETI_EXDATA_CHIP_TAU2 = 5,
ETI_EXDATA_CHIP_OTHER = 6,
}ETI_EXDATA_SENSOR_CHIP;
typedef struct
{
unsigned char sensor_type;//0-无效 1-lepton2.0 2-lepton2.5 3-lepton3.0 4-lepton3.5 5-tau2 6-其他
unsigned char reserve_1[3];//
float planck_r;//普朗克常量
float planck_b;
float planck_f;
float planck_o;
unsigned char temp_sensor_cnt;//温度传感器个数 最多支持20个
unsigned char reserve_2;
unsigned short temp_sensor_offset;
ETI_EXDATA_TEMPSENSOR temp_sensor[0];//
}ETI_EXTRA_DATA;
/*-------------------IR Raw extra data end------------------*/
#endif //__ETI_BASE_DEF_H__