📄 eastriver.pas
字号:
// hPort : 串口句柄。
// ts[] : 节假日开门时段,可设置[0..4]个时段,Right 权限bit为1表示选中:
//Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
// ArraySize: 此值不使用可设为任意值。
// Count : ts[]中设置的时段个数[0..4]。
// 节假日的设定
function SetHoliday(hPort: THandle; const DayString: PChar): Boolean; stdcall; external EASTRIVER_API
// hPort :串口句柄
// DayString:一个表示多个日期的字符串。其格式为:"日期0,日期1,日期2,日期3,... ..." 或者 "日期0;日期1;日期2;日期3;... ..."
// DayString 最多可以包含20个日期,每一个日期表示这一天为节假日
// 日期的格式为:"mmdd" 即两个字符的月+两个字符的日,mm为月 dd为日。如4月15日为:"0415"
// 例如:如果设定5月1日,10月1日和12月25日为节假日,DayString="0501,1001,1225"
//扩充名单命令中Style参数的取值 只有DOOR_880STYLE 可以与前面五个值中的某一个通过或操作'|'联合在一起
const
DOOR_880STYLE = $80; //设置门禁名单是否使用880定义的风格 1-是,0-否
//新型门禁机设定带权限和密码的门禁通行卡
function SetDoorPassCardDE(hPort: THandle; Style: Byte; Card: PChar; Code: PChar; Right: Integer=0; BeginPass: PChar=nil; EndPass: PChar=nil; EmpId: PChar=nil): Boolean; stdcall; external EASTRIVER_API
// hPort :串口句柄
// Card :门禁通行卡卡号
// Code :四个字节密码 每个字节表示一个16进制数字即"0--9,A--F" (必须为四个字节,不能省略)
// Right :表示开门权限和电锁控制(允许值0x00-0xFF)。高半字节(Right.H)电锁控制,低半字节(Right.L)表示权限
// Right.H :四个bit表示四个电锁,某位置1表示本张卡片能开相应的锁。bit0 表示一号电锁,bit1为二号电锁,...
// Right.L :四位可表示0x00-0x0F 16个数字表示本张卡片的权限,这个数字要与设定的开门时段的权限值进行比较
// :如果本张卡片的权限值高于相应时间段的权限值则表示本张卡片在这个时间段可以开门。
//BeginPass,EndPass,EmpId:参见 SetDoorPassCard参数,当Style参数第八位为1时(即Style|=DOOR_880STYLE)这三个参数必须非空,否则可为空(参数忽略)
//如果没有使用DOOR_880STYLE参数则Code参数不能为空
//Style参数的使用参阅SetAllowedCardDE
// 设置允许考勤卡
function SetAllowedCardDE(hPort: THANDLE; Style: Byte; card: PChar; emp_id: PChar; emp_name: PChar=nil): Boolean; stdcall; external EASTRIVER_API
//功能参数参考SetAllowedCard.
//Style:可以取以下值中的一个CARD_AUTO,IC_CONVERT,IC_NOCONVERT,ID_CONVERT,ID_NOCONVERT,
//Style=CARD_AUTO 则这个函数的功能与参数与SetAllowedCard同
//如果卡号为ID卡并且用户已经变换成16为卡号结构(即'EF0000000xxxxxxx'),或者对于880D要使用工号,则Style应设为ID_NOCONVERT
//如果card没有变换成16为卡号结构,用户希望在下载时变换成16为卡号,则可以使用ID_CONVERT参数(工号忽略),如果不希望变换用ID_NOCONVERT
//IC卡相同,如果card为16位标准卡号,可以使用参数IC_NOCONVERT强制在下载时不要对卡号作变换。若card没有变换成16位标准卡号
//也可以使用此参数强制不要做变换,或使用IC_CONVERT强制在下载前变换成标准卡号。以下同... ...
// 删除允许考勤卡
function DeleteAllowedCardDE(hPort: THANDLE; Style: Byte; card: PChar): Boolean;stdcall; external EASTRIVER_API
//功能参数参考DeleteAllowedCard
//Style:可以取以下值中的一个CARD_AUTO,IC_CONVERT,IC_NOCONVERT,ID_CONVERT,ID_NOCONVERT,
//Style=CARD_AUTO 则这个函数的功能与参数与DeleteAllowedCard同
//Style参数的使用参阅SetAllowedCardDE
// 设置黑名单
function SetBlackCardDE(hPort: THANDLE; Style: Byte; card: PChar): Boolean;stdcall; external EASTRIVER_API
//功能参数参考SetBlackCard
//Style:可以取以下值中的一个CARD_AUTO,IC_CONVERT,IC_NOCONVERT,ID_CONVERT,ID_NOCONVERT,
//Style=CARD_AUTO 则这个函数的功能与参数与SetBlackAllowedCard同
//Style参数的使用参阅SetAllowedCardDE
// 删除黑名单卡
function DeleteBlackCardDE(hPort: THANDLE; Style: Byte; card: PChar): Boolean;stdcall; external EASTRIVER_API
//功能参数参考DeleteBlackCard
//Style:可以取以下值中的一个CARD_AUTO,IC_CONVERT,IC_NOCONVERT,ID_CONVERT,ID_NOCONVERT,
//Style=CARD_AUTO 则这个函数的功能与参数与DeleteBlackAllowedCard同
//Style参数的使用参阅SetAllowedCardDE
// 删除门禁通行卡
function DeleteDoorPassCardDE(hPort: THANDLE; Style: Byte; card: PChar): Boolean; stdcall; external EASTRIVER_API
//功能参数参考DeleteDoorPassCard
//Style:可以取以下值中的一个CARD_AUTO,IC_CONVERT,IC_NOCONVERT,ID_CONVERT,ID_NOCONVERT,
//Style=CARD_AUTO 则这个函数的功能与参数与DeleteDoorPassCard同
//Style参数的使用参阅SetAllowedCardDE
{黑白名单类}
{消费机类}
// 读售饭机金额总和
function ReadClockMoneySum(hPort: THandle; var MoneySum: Integer): Boolean;stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
// MoneySum : 最大5位数的金额, 以角为单位
//返回值:
// True : 成功
// False : 失败
//兼容机具->ER-680
// 清除售饭机金额总和
function ClearClockMoneySum(hPort: THandle): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
//返回值:
// True : 成功
// False : 失败
//兼容机具->ER-680
// 下载消费的编号价格表(690)
function SetPriceList(hPort: THandle; Num: Integer; Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
// Num : 消费价格表编号, 范围1-9, 对应键盘1-9键
// Value : 单价, 单位角, 范围0-65535
//返回值:
// True : 成功
// False : 失败
// 读取消费的编号价格表(690)
function ReadPriceList(hPort: THandle; Num: Integer;var Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
// Num : 消费价格表编号, 范围0-9, 对应键盘0-9键
// Value : 返回单价, 单位角, 范围0-65535
//返回值:
// True : 成功
// False : 失败
// 设置定值消费金额(690)
function SetFixPrice(hPort: THandle; Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明
// hPort : 端口句柄, 需要联机
// Value : 定值消费额, 单位角, 范围0-65535,为零时取消定值消费
//返回值:
// True : 成功
// False : 失败
// 读取定值消费金额(690)
function ReadFixPrice(hPort: THandle;var Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明
// hPort : 端口句柄, 需要联机
// Value : 返回定值消费额, 单位角, 范围0-65535
//返回值:
// True : 成功
// False : 失败
// 设置日最大消费限额(690)
function SetDayMaxExpenditure(hPort: THandle; Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明
// hPort : 端口句柄, 需要联机
// Value : 日最大消费额, 单位角, 范围0-65535, 为零时表示不限制
//返回值:
// True : 成功
// False : 失败
// 读取日最大消费限额(690)
function ReadDayMaxExpenditure(hPort: THandle;var Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明
// hPort : 端口句柄, 需要联机
// Value : 日最大消费额, 单位角, 范围0-65535
//返回值:
// True : 成功
// False : 失败
// 设置日最大消费次数限制(690)
function SetDayMaxConsumeTimes(hPort: THandle; Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明
// hPort : 端口句柄, 需要联机
// Value : 日最大消费次数, 范围0-225, 为零时表示不限制
//返回值:
// True : 成功
// False : 失败
// 读取日最大消费限额(690)
function ReadDayMaxConsumeTimes(hPort: THandle;var Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明
// hPort : 端口句柄, 需要联机
// Value : 返回日最大消费次数, 范围0-255, 为零时表示不限制
//返回值:
// True : 成功
// False : 失败
// 设置卡上最低限制金额(690)(押金)
function SetCardForegift(hPort: THandle; Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明
// hPort : 端口句柄, 需要联机
// Value : 卡上最低限制金额, 单位角, 范围:0-65535, 为零时表示不限制
//返回值:
// True : 成功
// False : 失败
// 读取卡上最低限制金额(690)(押金)
function ReadCardForegift(hPort: THandle;var Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明
// hPort : 端口句柄, 需要联机
// Value : 返回卡上最低限制金额, 单位角, 范围:0-65535, 为零时表示不限制
//返回值:
// True : 成功
// False : 失败
{消费机类}
{实时控制类}
// 读取最新刷卡卡号
function ReadLastCard(hPort: THandle; CardNo: PChar): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
// CardNo : 返回卡号缓冲区,需要20个字符空间
//返回值:
// True : 成功
// False : 失败
// 读取键盘按键
function ReadKeyboardPressKey(hPort: THandle; var key: char): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
// key : 返回读得的键盘按键值
//返回值:
// True : 成功
// False : 失败
// 读取门锁状态
function ReadDoorState(hPort: THandle; var Opening: Boolean): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
// Opening : 返回门锁是否是打开状态
//返回值:
// True : 成功
// False : 失败
// 软件控制正在联机的门禁机开门
function SetDoorOpen(hPort: THandle): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
//返回值:
// True : 成功
// False : 失败
// 控制设备状态
function SetClockState(hPort: THandle; State: Integer): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
// state : 状态码, 以二进制位控制
// state.1--state.0 = 10B : 设备正常灯亮, 蜂鸣器响一声
// = 11B : 设备错误灯亮, 蜂鸣器响三声
// = 00B or 01B : 无作用
// state.2 = 1 : 控制设备门锁开锁 (不自动关闭)
// = 0 : 控制设备门锁关闭
// state.3 = 1 : 控制设备报警器报警 (不自动停止)
// = 0 : 控制设备报警器停止报警
// state.6 = 1 : state.5, state.4 分别为8芯插座的 Data, Clock脚状态.
// 该控制只可以使用於IC机型, 对ID机型禁止使用
// state.6 = 0 : state.5, state.4 无作用
// 其他位保留, 请置0
//返回值:
// True : 成功
// False : 失败
// 控制报警器状态
function SetAlarm(hPort: THandle; Alarm: Boolean): Boolean; stdcall; external EASTRIVER_API
//参数说明:
// hPort : 端口句柄, 需要联机
// Alarm : 希望设置的报警器状态
// Alarm = True : 报警器报警
// Alarm = False : 报警器关
//返回值:
// True : 成功
// False : 失败
//新型门禁机ER-980实时控制指令
type
PCardInfo=^TCardInfo;
TCardInfo=packed record
CardNo: array[0..17] of char; //存储卡号
IsIDCard: Boolean; //如果时ID卡为true,否则为false是IC卡
NoCard: Boolean; //如果为true,则没有卡片在感应区,此结构其他数据无效
Reader: Integer; //范围从1-4指几号读头
Flag: Integer; //打卡结果
Mark: Integer; //打卡标志
end;
// 获取读卡器感
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -