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

📄 eastriver.pas

📁 pasa人力资源考勤管理系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
// lpData       : 指向欲传入回调函数DataProcess()的参数指针作为DataProcess()的第一个参数如果不用可设为NULL
// DataProcess  : 指向结构 TReadData 的指针, 数据块包含一条记录
// Wait         : 延时回调过程指针, 不用可设为NULL
//返回值:
// 0            : 机具内记录已空(无记录)
// >0           : 成功读取记录数
// -1,-2        : 串行通信错误
// -3           : 命令字异或校验错误
// -4           : 用户中止或接收未完成
// -8,-9        : 资源分配错误

{考勤机控制类}
















{黑白名单类}

//		  读机具已经下载的允许考勤卡(白名单)数量
function ReadSavedAllowedClockerCardNumber(hPort: THandle; var data: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// data         : 返回已经下载的白名单数量
//返回值:
// True         : 成功
// False        : 失败

//		  读机具已经下载的黑名单卡数量
function ReadSavedBlackCardNumber(hPort: THandle; var data: Integer): Boolean;stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// data         : 返回已经下载的黑名单数量
//返回值:
// True         : 成功
// False        : 失败

//		  读机具已经下载的门禁通行卡数量
function ReadSavedLockerPassCardNumber(hPort: THandle; var data: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// data         : 返回已经下载的门禁通行卡数量
//返回值:
// True         : 成功
// False        : 失败

//		  设置设备的允许考勤卡(白名单卡带6个字符工号或姓名)
function SetAllowedCard(hPort: THandle; card, empid, EmpName: PChar): Boolean;stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// card         : 卡号
// empid        : 工号, ID机器使用, IC机器不使用, 最长允许6个数字字符
// EmpName      : 姓名, 格式GB码, 最长允许6个英文字符
//返回值:
// True         : 成功
// False        : 失败

//		  删除设备的允许考勤卡(白名单卡)
function DeleteAllowedCard(hPort: THandle; card: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// card         : 卡号
//返回值:
// True         : 成功
// False        : 失败

//		  删除设备的所有允许考勤卡(白名单卡)
function DeleteAllAllowedCard(hPort: THandle): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
//返回值:
// True         : 成功
// False        : 失败

//		  设置设备的黑名单卡
function SetBlackCard(hPort: THandle; card: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// card         : 卡号
//返回值:
// True         : 成功
// False        : 失败

//		  删除设备的黑名单卡
function DeleteBlackCard(hPort: THandle; card: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// card         : 卡号
//返回值:
// True         : 成功
// False        : 失败

//		  删除设备的所有黑名单卡
function DeleteAllBlackCard(hPort: THandle): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
//返回值:
// True         : 成功
// False        : 失败

//		  设置门禁机设备的通行卡
function SetDoorPassCard(hPort: THandle; beginPass: PChar; endPass: PChar; card: PChar; EmpId: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// BeginPass    : 通行开始时间
// endPass      : 通行结束时间
// card         : 卡号
// empId        : 工号,ID机器使用,最长允许6个数字字符
//返回值:
// True         : 成功
// False        : 失败
//说明:
//设置多个通行时间需使用同一个卡号调用多次

//		  删除门禁机设备的通行卡
function DeleteDoorPassCard(hPort: THandle; card: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// card         : 卡号
//返回值:
// True         : 成功
// False        : 失败

//		  删除门禁机设备的所有通行卡
function DeleteAllDoorPassCard(hPort: THandle): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
//返回值:
// True         : 成功
// False        : 失败

//附加批量读写设备名单函数(^2G)
type
  PDownloadPageStruct=^TDownLoadPageStruct;
  TDownLoadPageStruct=packed record
    iPage: Integer; //页号
    izData: array[0..255] of Byte; //一页数据
    Next: PDownLoadPageStruct; //下一页的指针
  end;

  PDownLoadPageStructIndex=^TDownLoadPageStructIndex;
  TDownLoadPageStructIndex=packed record
    Index: array[0..255] of PDownLoadPageStruct; //计算机内索引连表
    indexPage: array[0..255] of Integer; //地址索引存放处
    iCardNumber: Integer; //存放的卡总数量
  end;

  PDownloadCardStruct=^TDownloadCardStruct;
  TDownloadCardStruct=packed record
    CardNo: array[0..15] of char; //16位卡号
    EmpId: array[0..10] of Char; //6位字母工号或是姓名考勤白名单
    case Integer of
      0: (Periods: array[0..11] of char);
        //6位字节通行时段(以30分钟为单位一天)门禁通行卡
      1: (EmpName: array[0..11] of char); //黑白名单时的员工姓名
  end;

//      批量读取黑白名单进程回调
TProgressProc=function(TypeId, PageNo, Percent: Integer): Boolean; stdcall;
//参数说明:
// TypeId       : 名单类型, 0: 门禁通行卡, 1:白名单, 2: 黑名单
// PageNo       : 页号
// Percent      : 已完成百分比, 如 80=80%
//返回值:
// True         : 成功
// False        : 失败

//      批读门禁机通行卡函数
function BatchReadDoorPassCard(hPort: THandle; var CardList: array of TDownloadCardStruct{; ArraySize: Intger}; var Number: Integer; CallBack: TProgressProc): Boolean;stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// CardList     : 返回通行卡结构数组
// ArraySize    : Delphi不需要,如果是VB或是C++需要传数组大小参数
// Number       : 传入数组大小,最大允许返回大小,实际返回名单数量
// CallBack     : 进程回调, 不用可置为NULL(0)
//返回值:
// True         : 成功
// False        : 失败

//      批读白名单函数
function BatchReadAllowedCard(hPort: THandle; var CardList: array of TDownloadCardStruct{; ArraySize: Intger}; var Number: Integer; CallBack: TProgressProc): Boolean;stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// CardList     : 返回白名单结构数组
// ArraySize    : Delphi不需要,如果是VB或是C++需要传数组大小参数
// Number       : 传入数组大小,最大允许返回大小,实际返回名单数量
// CallBack     : 进程回调, 不用可置为NULL(0)
//返回值:
// True         : 成功
// False        : 失败

//      批读黑名单函数
function BatchReadBlackCard(hPort: THandle; var CardList: array of TDownloadCardStruct{; ArraySize: Intger}; var Number: Integer; CallBack: TProgressProc): Boolean;stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// CardList     : 返回黑名单结构数组
// ArraySize    : Delphi不需要,如果是VB或是C++需要传数组大小参数
// Number       : 传入数组大小,最大允许返回大小,实际返回名单数量
// CallBack     : 进程回调, 不用可置为NULL(0)
//返回值:
// True         : 成功
// False        : 失败

type
  TDoorTimePeriod=packed record //   局部结构表示一个时间点
    TimeHour: Integer; //	 小时[0..23]
    TimeMinute: Integer; //	 分钟[0..59]
  end;

  PDoorTimePeriods=^TDoorTimePeriods;
  TDoorTimePeriods=packed record //	 门禁机时段结构
    StartTime: TDoorTimePeriod; //   时段的开始时间
    EndTime: TDoorTimePeriod;   //	 时段的结束时间
    Right: Integer;             //   本时段的权限,依不同功能而不同
  end;


//		  设置超级用户密码(3G)
function SetSuperUserPwd(hPort: THandle; Number: Integer; Pwd: PChar; Right: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// Number       : 超级用户编号, 从1到3 最多3个超级用户
// Pwd          : 密须是6位数数字, 不足6位请在前面补零
// Right        : 低4位代表4个门的权限
//    Right.0=1 代表可开1号门
//    Right.1=1 代表可开2号门
//    Right.2=1 代表可开3号门
//    Right.3=1 代表可开4号门
//返回值:
// True         : 成功
// False        : 失败

//      设置门禁机时段
function SetDoorGuardPeriods(hPort: THandle; Fun: Byte; ts: array of TDoorTimePeriods; Count:Integer; week: Byte=0): Boolean;stdcall; external EASTRIVER_API
// Fun:        时段类型(0-6) 代表(出入,密码,报警生效,按钮生效,电锁常开,门磁报警,假日开门)时段
// ts :        时间段内容
// Count:      时段个数
// Week:       星期(1-7)代表周日--周一--周六

//      设置出入时间段(开门时间段)及权限 每天可设置四个时段
function SetInOutRight(hPort: THandle; Week_Day: Integer; var ts: array of TDoorTimePeriods; Count: Integer=4): Boolean; stdcall; external EASTRIVER_API
// hPort    : 串口句柄。
// Week_Day : 每周七天中的一天,1 星期日,2 星期一,...,7 星期六,其它值非法。
// ts[]     : 出入时间段及权限可设置[0..4]个时段,Right 权限为0x00--0xFF(00--255),数字越大权限越大。
// ArraySize: 此值不使用可设为任意值。
// Count    : ts[]中设置的时段个数[0..4]。

//      设置密码生效时段,每天可设置四个时段
function SetCipherSlice(hPort: THandle; var ts: array of TDoorTimePeriods; Count: Integer=4): Boolean; stdcall; external EASTRIVER_API
// hPort    : 串口句柄。
// ts[]     : 密码时间段,可设置[0..4]个时段,Right 权限bit为1表示选中:
      //Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
// ArraySize: 此值不使用可设为任意值。
// Count    : ts[]中设置的时段个数[0..4]。

//      设置报警生效时段,每天可设置四个时段
function SetAlertSlice(hPort: THandle; var ts: array of TDoorTimePeriods; Count: Integer=4): Boolean; stdcall; external EASTRIVER_API
// hPort    : 串口句柄。
// ts[]     : 报警时间段,可设置[0..4]个时段,Right 权限bit为1表示选中:
             //Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
// ArraySize: 此值不使用可设为任意值。
// Count    : ts[]中设置的时段个数[0..4]。

//      设置按钮生效时段,每天可设置四个时段
function SetButtonSlice(hPort: THandle; var ts: array of TDoorTimePeriods; Count: Integer=4): Boolean; stdcall; external EASTRIVER_API
// hPort    : 串口句柄。
// ts[]     : 按钮生效时间段,可设置[0..4]个时段,Right 权限bit为1表示选中:
         //Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
// ArraySize: 此值不使用可设为任意值。
// Count    : ts[]中设置的时段个数[0..4]。

//      设置电锁常开时段,每天可设置四个时段
function SetConstOpenSlice(hPort: THandle; var ts: array of TDoorTimePeriods; Count: Integer=4): Boolean; stdcall; external EASTRIVER_API
// hPort    : 串口句柄。
// ts[]     : 电锁常开时间段,可设置[0..4]个时段,Right 权限bit为1表示选中:
       //Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
// ArraySize: 此值不使用可设为任意值。
// Count    : ts[]中设置的时段个数[0..4]。

//      设置门磁处于常开报警时段,每天可设置四个时段
function SetCOAlertSlice(hPort: THandle; var ts: array of TDoorTimePeriods; Count: Integer=4): Boolean; stdcall; external EASTRIVER_API
// hPort    : 串口句柄。
// ts[]     : 常开报警时间段,可设置[0..4]个时段,Right 权限低四bit,某个bit为1表示某个读头选中:
       //Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
// ArraySize: 此值不使用可设为任意值。
// Count    : ts[]中设置的时段个数[0..4]。

//      设定节假日的开门时段和开门权限等级
function SetHolidaySlice(hPort: THandle; var ts: array of TDoorTimePeriods; Count: Integer=4): Boolean; stdcall; external EASTRIVER_API
// hPort    : 串口句柄。
// ts[]     : 节假日开门时段,可设置[0..4]个时段,Right 权限bit为1表示选中:
       //Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
// ArraySize: 此值不使用可设为任意值。
// Count    : ts[]中设置的时段个数[0..4]。

//      设置超级用户密码开门时段
function SetSuperUserPwdSlice(hPort: THandle; var ts: array of TDoorTimePeriods; Count: Integer=4): Boolean; stdcall; external EASTRIVER_API

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -