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

📄 eastriver.pas

📁 上传个考勤系统,希望别人也能用.该代码只能算初级的东东,软件代码复用性不高,重复代码比较多.唯一感觉有点取鉴的可能就是端口和dll的连接,还有线程的使用,本想改一改,但是手头没有考勤机了,对应考勤机是
💻 PAS
📖 第 1 页 / 共 5 页
字号:
const
  fiStoreRecord     = $00000000; //存储刷卡记录
  fiAttendance      = $00000001; //支持考勤功能
  fiDoorGuard       = $00000002; //支持门禁功能
  fiConsumption     = $00000003; //支持消费功能
  fiIssueCard       = $00000004; //支持发卡功能
//  ...                          //5-F 保留
  fiDoorList        = $00000010; //支持门禁名单
  fiWhiteList       = $00000011; //支持白名单
  fiBlackList       = $00000012; //支持黑名单
  fiHaveMark        = $00000013; //设备支持刷卡标识
  fiIDReader        = $00000014; //有ID读头
  fiICReader        = $00000015; //有IC读头
  fiScreen          = $00000016; //支持控制屏显示
  fibuzzer          = $00000017; //支持控制蜂器发声
  fiAdminCard       = $00000018; //支持管理卡
  fiBrushPeriods    = $00000019; //支持刷卡时段
  fiRingTime        = $0000001A; //支持打铃时间
  fiGroupCard       = $0000001B; //支持分组打卡
  fiRealTime        = $0000001C; //支持实时上传
  fiRealControl     = $0000001D; //支持实时控制
  fiChangeMode      = $0000001E; //支持更改运行模式
  fiChangeBlock     = $0000001F; //支持更改IC卡使用块号
  fiCustomCardLen   = $00000020; //支持自定义卡号长度
  fiBrushSpace      = $00000021; //支持自由刷卡间隔
  fiRepeatSpace     = $00000022; //支持重复刷卡间隔
  fiSerialNo        = $00000023; //支持机具序列号
  fiClockTime       = $00000024; //机具有时钟
  fiPriceList       = $00000025; //支持消费价格表
  fiFixPrice        = $00000026; //支持设置定值消费额
  fiDayMaxExpend    = $00000027; //支持设置日最大消费额
  fiDayMaxTimes     = $00000028; //支持设置日最大消费次数
  fiCardForegift    = $00000029; //支持卡上最低限制金额(押金)
  fiChangeClockId   = $0000002A; //支持修改机号
  fiHaveEmpId       = $0000002B; //支持显示工号
  fiAllowCharge     = $0000002C; //支持补贴充值
  fiReadAllRecord   = $0000002D; //支持一次性采集所有记录(ReadAllRecord)
  MAXSUPPORTINDEX   = $0000002D; //功能索引最大值(需同步更新)

//说明此函数为将来机具规划一个可扩展的空间,
//加强软件和机具之间的联系,有些功能也许现在并不可靠,
//以备将来支持,请用户谅解

//返回值:
// True         : 支持此功能
// False        : 不支持此功能

//      取得函数库DLL版本号
function GetDLLVersion: Double; stdcall; external EASTRIVER_API
//返回值:
// 非零的小数   : 库版本号
// 其它值       : 失败

//      返回机具是依时利第几代产品
function GetClockVersionOrd(hPort: THandle; fastGet: Boolean=True): Integer; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// fastGet      : 是否快速调用(从缓冲区取得), 否则需要读取卡钟(慢)
//返回值:
// 0            : 失败
// 1            : 第一代(ER-210--ER-830)
// 2            : 第二代(ER-880)
// 3            : 第三代(ER-980)

//      返回指定型是依时利第几代产品
function ClockVerOrd(Model: Integer): Integer;stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// fastGet      : 是否快速调用(从缓冲区取得), 否则需要读取卡钟(慢)
//返回值:
// 0            : 失败
// 1            : 第一代(ER-210--ER-830)
// 2            : 第二代(ER-880)
// 3            : 第三代(ER-980)

//      取得机具版本字符串
function GetClockVersion(hPort: THandle; Version: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// Version      : 返回版本缓冲区, 长度至少要大于30个字符
//返回值:
// True         : 成功
// False        : 失败

//      读取设备序列号
function ReadClockSerialNo(hPort: THandle; SerialNo: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// Version      : 返回序号号缓冲区, 长度至少要大于30个字符
//返回值:
// True         : 成功
// False        : 失败

{版本控制类}

{设备管理普通类}

//      修改机号
function SetClockID(hPort: THandle; new_id: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, ER-880系列需要联机, ER-210--ER-830不需要联机
// new_id       : 新机号,字符显示屏的机型不可以使用A--F的字符作机号, 即只可以使用
//					0x00-0x09, 0x10-0x19, 0x20-0x29, 0x30-0x39, 0x40-0x49
//					0x50-0x59, 0x60-0x69, 0x70-0x79, 0x80-0x89, 0x90-0x99
//返回值:
// True         : 成功
// False        : 失败

//      返回指定端口上的唯一机号
function GetClockID(Port, BaudRate: Integer): Byte; stdcall; external EASTRIVER_API
//参数说明:
// Port         : 端口号
// BaudRate     : 波特率
//返回值:
// True         : 成功
// False        : 失败

//      读取机具标识字符(mark)
function ReadClockMark(hPort: THandle; var Mark: Char): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// Mark         : 返回的机具标识字符
//返回值:
// True         : 成功
// False        : 失败

//      修改机具标识字符(mark)
function SetClockMark(hPort: THandle; Mark: Char): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// Mark         : 新的机具标识字符
//返回值:
// True         : 成功
// False        : 失败
//说明: 数字显示屏的机型只可以使用 0-9 的数字

//		  读取机具上卡号长度变量
function ReadCardLength(hPort: THandle; var dispLen: Integer; var dataLen: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
//		dispLen   : 机具显示卡号位数, 同时黑白名单检查时也以该值为准
//		dataLen   : 机具存储卡号位数, 存储刷卡数据时使用
//返回值:
// True         : 成功
// False        : 失败

//		  修改机具上卡号长度变量
function SetCardLength(hPort: THandle; dispLen: Integer; dataLen: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
//		dispLen   : 新的机具显示卡号位数
//		dataLen   : 新的机具存储卡号位数
//返回值:
// True         : 成功
// False        : 失败
//备注:
// ID机型默认:  dispLen=10, dataLen=10;
// IC机型默认:  dispLen=10, dataLen=16;

//		  读机具当前管理卡号码
function ReadManagerCard(hPort: THandle; CardNo: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// CardNo       : 返回管理卡号码, 缓冲区需大於20字节长度
//返回值:
// True         : 成功
// False        : 失败

//		  修改机具管理卡(ALL)
function SetManagerCard(hPort: THandle; CardNo: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// CardNo       :
//返回值:
// True         : 成功
// False        : 失败

//      读取机具工作模式(^2G)
function ReadClockMode(hPort: THandle; var Mode: Integer; var ExtraMode: Integer; var SystemMode: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// mode         : 设备的工作模式
// extraMode    : 设备的扩展工作模式
// systemMode   : 系统工作模式
//    systemMode.7=1 : 考勤机分时段打卡
//		systemMode.7=0 : 考勤机全天打卡
//		systemMode.4=1 : 门禁机开门报警使能
//		systemMode.4=0 : 门禁机开门报警禁止
//    systemMode.6,5,3,2,1,0 : 保留
//对690C2.0版
//    extraMode.5=1 过期卡检测
//    extraMode.7=1 开机卡检测
//返回值:
// True         : 成功
// False        : 失败

//      设置设备工作模式(^2G)
function SetClockMode(hPort: THandle; Mode: Integer; ExtraMode: Integer; SystemMode: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// Mode         : 设备的工作模式(低八位)
//    mode.0=1 : 设备工作於考勤机   mode.0=0 : 无考勤机功能
//		mode.1=1 : 设备工作於门禁机   mode.1=0 : 无门禁机功能
//		mode.2=1 : 设备工作於消费机或加油机  mode.2=0 : 无消费机功能
//		mode.3   : 保留
//		mode.5, mode.4 =00B : 设备无铃声输出
//		mode.5, mode.4 =01B : 设备电铃由外接继电器 1 输出
//		mode.5, mode.4 =10B : 设备电铃由外接继电器 2 输出
//		mode.5, mode.4 =11B : 设备铃声由蜂鸣器输出
//		mode.6=0 : 可以无限制的重复刷卡
//		mode.6=1 : 重复刷卡受 SetRepeatClockerTime 设置的时间限制
//		mode.7=0 : 打卡记录数据存储器满时停止打卡
//		mode.7=1 : 打卡记录数据存储器满时循环覆盖原数据继续打卡
// ExtraMode : 设备的扩展工作模式(低八位)
//  	extraMode.0=0 : 考勤机不检查设置的允许考勤卡(白名单)
//		extraMode.0=1 : 考勤机检查设置的允许考勤卡(白名单)
//		extraMode.1=0 : 考勤机不检查设置的黑名单卡
//		extraMode.1=1 : 考勤机检查设置的黑名单卡
//		extraMode.2=0 : 门禁机不检查设置的黑名单卡
//		extraMode.2=1 : 门禁机检查设置的黑名单卡
//		extraMode.3   : 保留
//		extraMode.4=0 : 非允许卡打卡不反应
//		extraMode.4=1 : 非允许卡打卡报警
//		extraMode.7,6,5=000B : 电锁外接继电器1, 报警外接继电器2
//		extraMode.7,6,5=011B : 电锁外接继电器2, 报警外接继电器1
//		extraMode.7,6,5=100B : 正确指示灯外接继电器1, 错误指示灯外接继电器2
//		extraMode.7,6,5=其他 : 保留
//对690C2.0版
//    extraMode.5=1 过期卡检测
//    extraMode.7=1 开机卡检测
//返回值:
// True         : 成功
// False        : 失败

//      扩展读取机具工作模式(890,兼容2G)
function ReadClockModeEx(hPort: THandle; var Mode: Integer; var ExtraMode: Integer; var SystemMode: Integer; var RingMode: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort        : 端口句柄, 需要联机
// Mode         : 设备的工作模式(低八位)
// mode.2,1,0
//   000B 机具无界面                    001B 独立考勤机
//   010B 独立门禁机                    011B 门禁/考勤二合一机
//   100B 消费机                        101B 读卡器(ER-980)
//   110B 出门读卡器(ER-980,备用)      111B 备用
// mode.3 ER-980及以后机型支持
//     0B 非允许时段刷卡不记录存贮记录    1B 非允许时段刷卡记录存贮记录
// mode.5,4
//    00B 无铃声输出,不打铃             01B 铃声输出,外接电铃接继电器1
//    10B 铃声输出,外接电铃接继电器2    11B 内置蜂鸣器打铃
// mode.6
//     0B 允许重复刷卡
//     1B 禁止重复刷卡,必须等待设置的重复刷卡间隔时间后才能再次刷卡
// mode.7
//     0B 记录存贮满后停止存贮,刷卡报告存贮器满异常
//     1B 记录存贮满后循环存贮,新记录覆盖最旧记录
// ExtraMode : 设备的扩展工作模式(低八位)
// extraMode.0
//     0B 不进行考勤白名单检查
//     1B 检查刷卡卡号是否在考勤白名单中,不是则报警
// extraMode.1
//     0B 考勤时不进行考勤黑名单检查
//     1B 考勤时检查刷卡卡号是否在考勤黑名单中,是则报警
// extraMode.2
//     0B 门禁通行判断时不进行黑名单检查
//     1B 门禁通行判断时,检查刷卡卡号是否为黑名单,是则报警
// extraMode.3
//     0B 刷卡时不进行组别比较
//     1B IC卡刷卡时检查卡片上的组别信息是否与机具组别匹配,不匹配则报警
// extraMode.4
//     0B 门禁通行时不进行通行名单检查,任何卡都可通行
//     1B 门禁通行时需要检查刷卡卡号是否在门禁通行名单中,不是则报警
// extraMode.7,6,5
//   000B 电锁外接继电器1,报警外接继电器2
//   011B 电锁外接继电器2,报警外接继电器1
//   100B 正确指示灯外接继电器1,错误指示灯外接继电器2
//   101B ER-980控制器启动门禁通行反潜回检查(ER-980及以后机型支持)
//   其它 保留
// systemMode  : 系统工作模式 ER-981、ER-890支持
// systemMode.0
//     0B 不存贮考勤记录                 1B 存贮员工正常考勤记录
// systemMode.1
//     0B 黑名单刷卡时不存贮记录         1B 黑名单刷卡时存贮记录
// systemMode.2
//     0B 非法卡刷卡不存贮记录           1B 非法卡刷卡存贮记录
// systemMode.3
//     0B 通讯时使用客户自定义设置的机号作为设备号用于联机
//     1B 通讯时使用机具产品序列号的最后2位数字作为设备号用于联机
// systemMode.4
//     0B 不进行门打开超时检查
//     1B 门禁开门时,检查门打开是否超时,是则报警
// systemMode.5
//     0B 门禁无法通行时不存贮刷卡信息
//     1B 门禁刷卡后检测到该卡无法通行时存贮记录,以备查验
// systemMode.6
//     0B 门禁通行后不存贮刷卡信息,可用于简单通行控制场合

⌨️ 快捷键说明

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