📄 eastriver.pas
字号:
//{首先声明一个消息方法映射消息:}
//procedure WMGETCOUNT(var Msg: TMessage); message WM_USER+$100;
//{实现该消息方法:}
//procedure TForm1.WMCopydata(var Msg: TMessage);
//var Count: Integer;
//begin
// Count := Msg.wParam;
//end;
//读状态指示灯的时间
function SetStateLampTime(hPort: THandle; GE: Integer; Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数 hPort联机句柄
// GE=1正确指示灯 =2错误指示灯
// Value 要设置的时间 0.2秒为单位
//读取状态指示灯的时间
function ReadStateLampTime(hPort: THandle; GE: Integer; var Value: Integer): Boolean; stdcall; external EASTRIVER_API
//参数 同上
//初始化890机具
function Init890(hPort:THandle; Kind:Integer): Boolean; stdcall; external EASTRIVER_API
//参数 hPort 联机句柄
// kind=1清除机具所有设置的时间段信息
// =2使用默认工作参数配置系统的工作状态
// =3将机具初始化成出厂状态
// 设置设备的允许考勤卡(白名单卡带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;
// 批读门禁机通行卡函数
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
// 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为二号电锁,...
// Rig
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -