www.pudn.com > ITSever.rar > DVRClientDef_0.h
/*************************************************************************
(Copyright (c) 2005-2007 海康威视公司研发中心)
** 文件名 : DVRClientDef_0.h
** 创建人 : 闫春
** 修改记录 :
*************************************************************************/
#ifndef __DVRCLIENTDEF0_H__
#define __DVRCLIENTDEF0_H__
#ifndef byte
#define byte char
#endif
#ifndef DWORD
#define DWORD unsigned int
#endif
#ifndef BOOL
#define BOOL bool
#endif
#define DEF_STRLENGTH_64 64
#define DEF_STRLENGTH_128 128
#define DEF_STRLENGTH_256 256
#define DEF_STRLENGTH_512 512
#define DEF_STRLENGTH_1024 1024
//语言种类定义
#define DEF_LANGUAGE_DEFAULT 0x00
#define DEF_LANGUAGE_CHINESE 0x01
#define DEF_LANGUAGE_ENGLISH 0x02
#define DEF_LANGUAGE_TAIWAN 0x03
#define DEF_LANGUAGE_GERMANY 0x04
#define DEF_LANGUAGE_JAPANESE 0x05
//回调函数类型
#define DEF_CALLBACK_REALTIMEDATA 0x01 //实时流回调
#define DEF_CALLBACK_ALARMINFO 0x02 //报警回调
#define DEF_CALLBACK_HEARTBEAT 0x03 //心跳回调
#define DEF_CALLBACK_SERIALCOM 0x04 //透明通道回调
#define DEF_CALLBACK_ALARMLISTEN 0x05 //侦听回调
//窗口使用类型
enum DLG_USE_TYPE
{
DISPLYURL = 0, //显示
CREATEURL = 1, //创建
MODIFYURL = 2 //修改
};
//数据块类型
enum DVR_BLOCK_TYPE
{
STREAMHEAD = 0, //流头
STREAMDATA = 1 //数据
};
//通明通道类型
enum DVR_SERIALPORT_TYPE
{
RS232 = 0, //rs232
RS485 = 1 //rs485
};
//插件基本信息
typedef struct tagPluginInfo{
char sname[DEF_STRLENGTH_64];
char sversion[DEF_STRLENGTH_64];
char sremark[DEF_STRLENGTH_128];
}SPLUGININFO,*PSPLUGININFO;
//设备基本信息
typedef struct tagDeviceInfo{
char sdevicetype[DEF_STRLENGTH_64]; //设备型号
char ssoftversion[DEF_STRLENGTH_64]; //软件版本
char smanufactuer[DEF_STRLENGTH_64]; //生产厂家
char serialnumber[DEF_STRLENGTH_64]; //设备序列号
byte bchannelnum; //主通道数量
byte bsubchannum; //每主通道拥有的个子通道数量
byte bdisknumber; //磁盘数量
byte bioinputnum; //IO输入数量
byte biooutputnum; //IO输出数量
byte brs232portnum; //
byte brs485portnum; //
DWORD dwcapability1; //能力字段1(暂不使用)
DWORD dwcapability2; //能力字段2(暂不使用)
DWORD dwcapability3; //能力字段3(暂不使用)
DWORD dwcapability4; //能力字段4(暂不使用)
DWORD dwreserve1; //预留字段1(暂不使用)
DWORD dwreserve2; //预留字段2(暂不使用)
DWORD dwreserve3; //预留字段3(暂不使用)
DWORD dwreserve4; //预留字段4(暂不使用)
}SDEVICEINFO, *PSDEVICEINFO;
//通道信息结构
#define MAX_CHANNELS 128 //最大通道数量
#define MAX_CHNANAME 64 //最大通道名称长度
typedef struct{
char sname[MAX_CHNANAME]; //通道名称
int ireserved1; //保留字段(暂不使用)
int ireserved2; //保留字段(暂不使用)
}SCHANNODE,*PSCHANNODE;
typedef struct{
unsigned int uchannels; //通道数量
SCHANNODE schannode[MAX_CHANNELS]; //通道信息
}SCHANNELINFO,*PSCHANNELINFO;
//云台信息结构
#define MAX_PRESETCOMMANDS 128 //最大预置命令数量
#define MAX_PCOMNAMELENGTH 64 //最大命令名称长度
typedef struct{
byte btype; //预置命令类型(0-预置位/1-预置轨迹)
char sname[MAX_PCOMNAMELENGTH]; //预置命令名称
int icommandid; //预置命令序号
int ireserved1; //保留字段
int ireserved2; //保留字段
}SPTZNODE,*PSPTZNODE;
typedef struct{
unsigned int upreset; //预置命令数量
SPTZNODE sptznode[MAX_PRESETCOMMANDS]; //预置命令名称
}SPTZINFO,*PSPTZINFO;
//状态组结构
typedef struct{
unsigned int unumbers; //有效状态数量
BYTE bstate[16]; //状态数组
BOOL getstate(unsigned int uindex)
{
if(uindex>=8*16) return FALSE;
int index,iresidue;
index=(int)(uindex/8);
iresidue = uindex-(index*8);
return (bstate[index]&(0x01<0?TRUE:FALSE;
}
BOOL setstate(unsigned int uindex, BOOL bvalue)
{
if(uindex>=8*16) return FALSE;
int index,iresidue;
index=(int)(uindex/8);
iresidue = uindex-(index*8);
if(bvalue)
{
bstate[index] |= (0x01<