📄 enguardcommon.h
字号:
/*
* Copyright (c) 2008,杭州中正生物认证技术有限公司
* All rights reserved.
* 文件名称:EnguradCommon.h
* 文件标识:见配置管理计划书
* 摘 要:
本头文件定义了门禁客户端软件所涉 基础 数据格式、数据结构类型、常量等。
作 者:王从骏
*/
//---------------------------------------------------------------------------
#ifndef EnguardCommonH
#define EnguardCommonH
#include <list.h>
#include <windows.h>
//---------------------------------------------------------------------------
//设备通讯类型
typedef enum
{
dtCOM = 0, //串口通讯
dtIP = 1, //IP地址
dtUSB =2, //USB口
dtOTHER = 9 //其它类型设备
}DeviceType_T;
//设备参数
typedef struct
{
struct
{
short int IPs[4]; //IP地址
int Port; //IP端口
}IPParam;
struct
{
short int COMID; //串口端口号
int Baud; //波特率
}UartParam;
}DeviceParam_T;
//设备状态
typedef enum
{
dsRightStatus = 1, //启用
dsOutStatus = 2, //停用
dsOpened=3 //监控
}DeviceStatus_T;
//设备模式
typedef enum
{
dmNormalMode = 2, //正常工作模式
dmLongOpenMode = 0, //常开工作模式
dmLongCloseMode = 1 //常闭工作模式
}DeviceMode_T;
//设备信息
typedef struct __DeviceInfo_T
{
int DeviceID; //设备编号
char DeviceName[32]; //设备名称
DeviceType_T DeviceType; //设备类型
DeviceParam_T DeviceParams; //设备参数
int AutoLockSec; //自动锁时间(秒数)
char DeviceDesc[32]; //设备描述
char DeviceCaption[16]; //设备标签
DeviceStatus_T DeviceStatus; //设备状态
DeviceMode_T DeviceMode; //设备模式
//
__DeviceInfo_T()
{
DeviceType = dtOTHER;
memset(&DeviceParams,0,sizeof(DeviceParams));
DeviceStatus = dsOutStatus;
}
}DeviceInfo_T,*pDeviceInfo_T;
//DeviceInfo_T的迭代器
typedef list<DeviceInfo_T>::iterator IterDeviceInfo_T;
//设备信息列表类型
typedef list<DeviceInfo_T> DeviceInfoArray_T;
//部门信息
typedef struct __DeptInfo_T
{
int DeptID; //部门编号
int ParsentDept; //上级部门编号
char DeptName[32]; //部门名称
char DeptDesc[64]; //部门描述
int Flag; //部门标识
__DeptInfo_T()
{
DeptID = 0;
ParsentDept = 0;
memset(DeptName,0,32);
memset(DeptName,0,64);
}
}DeptInfo_T,*pDeptInfo_T;
//用户类型
typedef enum
{
utUser = 0, //普通用户
utManage = 1 //管理员
}UserType_T;
//验证方式
typedef enum
{
vmPassword = 1, //密码验证
vmFinger = 2, //指纹验证
}VerifyMode_T;
//是否启用密码
typedef enum
{
upUse = 1, //是
upNoUse = 2 //否
}UsingPassword_T;
//员工在职类型
typedef enum
{
wsInService = 1, //在职
wsDimission = 2, //离职
wsOther = 9 //其它
}WorkState_T;
//员工基本信息
typedef struct __UserInfo_T
{
int UserID; //员工ID
char EmpName[14]; //员工名称
char ManageClass; //管理级别
int DeptID; //所属部门
char AttendPlan; //门禁规则类型
char VerifyMode; //验证方式
char FingerCount; //已添加指纹总数
int IsUsePwd; //是否启用员工密码
char EmpPwd[6]; //员工密码
int Flag; //其它
char EmpDesc[64]; //员工说明
}UserInfo_T,*pUserInfo_T;
//员工指纹信息
typedef struct __TemplateInfo_T
{
int TemplateID; //指纹ID
int EmpID; //员工ID
int FingerType; //指纹类型
char FingerTemplate[512]; //指纹数据
int Flag; //标识
}TemplateInfo_T,*pTemplateInfo_T;
//员工扩展信息
typedef struct __UserInfoEx_T
{
UserInfo_T BaseUserInfo;
char DeptName[32];
char Status;
__UserInfoEx_T()
{
memset(&BaseUserInfo,0,sizeof(UserInfo_T));
memset(DeptName,0,32);
}
}UserInfoEx_T,*pUserInfoEx_T;
//UserInfoEx_T的迭代器
typedef list<UserInfoEx_T>::iterator IterUserInfoEx_T;
//员工扩展信息列表类型
typedef list<UserInfoEx_T> UserInfoExArray_T;
//TemplateInfo_T的迭代器
typedef list<TemplateInfo_T>::iterator IterTemplateInfo_T;
//指纹数据列表类型
typedef list<TemplateInfo_T> TemplateInfoArray_T;
//事件类型
typedef enum
{
etWorkLog = 0, //考勤记录
etAddUserOp = 1, //添加用户操作
etDelUserOp = 2, //删除用户操作
etEditUserOp = 3, //修改用户操作
etNormalEvent = 4, //开门事件
etWarningEvent = 5, //警告事件 非法进入和开门按扭
etUncloseEvent = 6, //门未关好
etDangerEvent = 7, //胁迫事件
etDeviceError = 8, //设备异常
etOperateEvent=20, //操作事件
etOtherEvent //其它事件
}EventType_T;
//基础日志信息
typedef struct __LogInfoBase_T
{
int DeviceLogID; //日志编号
int DeviceID; //设备编号
int MainEmpID; //日志主体用户编号
int ObjEmpID; //日志客体用户编号
SYSTEMTIME EventTime; //发生时间
int OpType; //操作类型
int Flag;
__LogInfoBase_T()
{
DeviceLogID = 0;
DeviceID = 0;
MainEmpID = 0;
ObjEmpID = 0;
OpType = 0;
GetSystemTime(&EventTime);
}
}LogInfoBase_T,*pLogInfoBase_T;
//---------------------------------------------------------------------------
//门禁规则类型
typedef enum
{
rtNoDefine=0, //未设置
rtNoLimit=1, //无限制
rtPeriod1=2, //时间段1
rtPeriod2=4, //时间段2
rtWeekend=8, //周末制
rtHoliday=16 //假日制
}RoleType_T;
//门禁规则
typedef struct __EnguardRole
{
RoleType_T RoleType;
SYSTEMTIME BeginTime1; //
SYSTEMTIME EndTime1;
SYSTEMTIME BeginTime2;
SYSTEMTIME EndTime2;
short int Weekend[7];
struct __Holiday
{
short int Year;
short int Month;
short int Days[31];
}Holiday[12];
}EnguardRole_T,*pEnguardRole_T;
//操作模式
typedef enum
{
omAdd, //新增模式
omEdit, //修改模式
omDelete, //删除模式
omView, //查看模式
omSelect //选择模式
}OperateMode_T;
//---------------------------------------------------------------------------
//返回错误代码
typedef enum
{
OK = 0, //0: 成功
DevError = 1, //1: 失败
DevLongErr = 2, //2: 长度错误
DevFormatErr = 3, //3: 格式错误
DevCheckErr = 4, //4: 校验错误
DevAnacyErr = 5, //5: 解析的数据包长度错误
DevInputErr = 6, //6: 输入的数据错误
DevTimeoutErr = 7, //7: 超时(5秒)
DevPwdErr = 8, //8: 密码错误
DevNoExist = 9, //9: 不存在此记录
DevEmpIDErr = 10, //10: 用户编号错误
DevEmpIDExist = 11, //11: 有相同用户编号
DevSpaceFull = 12, //12: 空间已经满了
DevFingerFull = 14, //14: 该用户的指纹数已经满了(最多8个)
DevThreadFull = -1, //-1: 同种通讯方式设备使用超过了256个
//数据库错误
DBConfig_E=0x11, //数据库配置错误
DBAccess_E=0x012, //数据库访问失败
DBIsEmpty_E=0x13, //数据库为空
DBIsEmployee_E=0x14, //部门下面有员工
//设备管理
DeviceOpenError_E = 0x10, //打开设备失败
NoDevice_E, //没有设备
DeviceThreadError_E, //设备线程失败
//消息管理
LogQueueEmpty_E =0x20, //消息队列为空
//其它错误
BadData_E = 0x40, //坏数据,数据未准备好等
Others_E //其它未知错误
}ReturnValue_T;
//---------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -