📄 eastriver.pas
字号:
// 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 + -