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

📄 enguardcommon.h

📁 指纹门禁机管理系统
💻 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 + -