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

📄 eastriver.bas

📁 一款基于标准IC卡考勤数据读写操作示例的开发源程序。主要给需要开发IC卡和考勤系统的网友学习参考用
💻 BAS
📖 第 1 页 / 共 4 页
字号:

'      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

'      启动报警器
Declare Function SetAlarm Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal Alarm As Byte) As Boolean

'{实时控制类}


'{门禁机控制类}

'      设置门禁机开门时间
Declare Function SetLockOpenTimeLen Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal timelen As Long) As Boolean
'      timeLen  :  开门时间, 1-99 秒

'      读门禁机开门时间
Declare Function ReadLockOpenTimeLen Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef timelen As Long) As Boolean
'      timeLen  :  开门时间, 1-99 秒

'      读门禁机电锁状态
Declare Function ReadDoorOpenState Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef state As Long) As Boolean
'      state  :  电锁状态, state=0 表示为关门状态
'                          state=1 表示为开门状态

'      设置门禁机开门超时报警
Declare Function SetDoorOpenTimeoutAlarmState Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal state As Long) As Boolean
'      state=0 : 清除开门超时报警
'      state=1 : 设置开门超时报警

'      远程控制门禁机开门
Declare Function ControlOpenDoor Lib "EastRiver.Dll" (ByVal hPort As Long) As Boolean
'{门禁机控制类}

'{IC卡控制函数类}
'function ReadICCardSerialNo(hPort: THandle;var SerialNo: Int64; LongSn: Boolean=True)
'读IC卡序列号
Declare Function ReadICCardSerialNo Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef SerialNo As Long, ByVal LongSn As Boolean) As Boolean

'      修改设备密码
Declare Function SetSecurityCode Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal oldSecurity As String, ByVal newSecurity As String) As Boolean
'      oldSecurity  :  12位设备旧密码, 若无旧密码, 则设为'FFFFFFFFFFFF'
'      newSecurity  :  12位设备新密码, 若功能为删除旧密码, 则设为'FFFFFFFFFFFF'

'    读客户代码(IC卡号存储区域)
Declare Function ReadClientCode Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef ClientCode As Long) As Boolean

'    设置客户代码
Declare Function SetClientCode Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal ClientCode As Long) As Boolean

'    读IC卡信息
Declare Function ReadICCard Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef CardNo As String, ByRef CardName As String, ByRef Money As Long, ByRef Times As Long, ByRef Ver As Long) As Boolean
  'CardNo 长度不小於16位, CardName 长度不小於16位 Ver为0或是880时为880机型卡格式
  '其它时为旧格式
  
'    读IC卡信息
Declare Function ReadAllICCard Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal CardNo As String, ByVal CardName As String, ByRef Money As Long, ByRef Times As Long, ByRef GroupStation As Long, ByRef GroupId As Long, ByRef Ver As Long) As Boolean
  '读卡信息且返回分组标识GroupId
  '如果不想返回分组标识, 请将设GroupStation=-1

'    写IC卡信息
Declare Function WriteICCardEx Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal CardNo As String, ByVal CardName As String, ByVal Pwd As String, ByVal Money As Long, ByVal Times As Long, ByVal day_consumed As Long, ByVal day_times As Long, ByVal c_month As Long, ByVal c_day As Long, ByVal c_flag As Long, ByVal GroupStation As Long, ByVal GroupId As Long, ByVal CardStyle As Long, ByVal MatchCard As Boolean) As Boolean
Declare Function WriteICCard Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal CardNo As String, ByVal CardName As String, ByVal Money As Long, ByVal Times As Long, ByVal Ver As Long) As Boolean
Declare Function ReadICCardEx Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal CardNo As String, ByVal CardName As String, ByVal Pwd As String, ByRef Money As Long, ByRef Times As Long, ByRef day_consumed As Long, ByRef day_times As Long, ByRef c_month As Long, ByRef c_day As Long, ByRef c_flag As Long, ByRef GroupStation As Long, ByRef GroupId As Long, ByRef CardStyle As Long) As Boolean
'ReadICCardEx(hPort: THandle; CardNo, CardName, pwd: PChar;var Money, Times,
'                      day_consumed, day_times, c_month, c_day, c_flag, GroupStation, GroupId, CardStyle: Integer)

'    写指定卡号不覆盖卡号不匹配的卡
Declare Function WriteMatchICCard Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal CardNo, CardName As String, ByVal Money As Integer, ByVal Times As Integer, ByVal Ver As Integer, ByVal blank As Boolean) As Boolean

'写IC卡信息包含卡分组标识
Declare Function WriteAllICCard Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal CardNo As String, ByVal CardName As String, ByVal Money As Long, ByVal Times As Long, ByVal GroupStation As Long, ByVal GroupId As Long, ByVal Ver As Long, Optional ByVal MatchCard As Boolean = False) As Boolean
  '如果不需要写分组标识, 请设GroupStation=-1
'同上

'      读IC卡块内容
Declare Function ReadCardMessage Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal CardMessage As String, ByVal Block As Long) As Boolean
'      cardMessage[16] : 为16字节的IC卡信息
'      block           : 为IC卡数据的块地址, 1.26之前的读码器版本必须使用 block=-1的叁数

Declare Function ReadCardMessageString Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef CardMessage As String, ByVal Block As Long) As Boolean

'      写IC卡块内容
Declare Function WriteCardMessage Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal CardMessage As String, ByVal Block As Long) As Boolean
Declare Function WriteCardMessageString Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal CardMessage As String, ByVal Block As Long) As Boolean
'      cardMessage[16] : 为16字节的IC卡信息
'      block           : 为IC卡数据的块地址, 1.26之前的读码器版本必须使用 block=-1的叁数

' 读IC卡密码
Declare Function ReadICCardPassWord Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal PassWord As String, Optional ByVal Block As Integer = -1) As Boolean
'    PassWord        : 为存放返回的密码的缓冲区, 必须不小于50字节
'    block           : ER-880C密码扇区号, ER-810/830C设为-1

'    写IC卡密码
Declare Function WriteICCardPassWord Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal PassWord As String, Optional ByVal Block As Integer = -1) As Boolean
'    PassWord        : 为要设置的新IC卡密码, 长度为 32 个字节
'    block           : ER-880C密码扇区号, ER-810/830C设为-1

'{IC卡控制函数类}


'{分组打卡控制类}


'      设置分组检查字节位置
Declare Function WriteGroupByteStation Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal groupByte As Long) As Boolean
'      groupByte : IC卡检查字节位, 0-16
'                  0-15 为一对多分组检查字节位置
'                  16   表示为检查多对多分组检查的分组存储区

'      读分组检查字节位置
Declare Function ReadGroupByteStation Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef groupByte As Long) As Boolean
'      groupByte : IC卡检查字节位, 0-15

'      设置分组检查字节标志单元组
Declare Function WriteGroupByteChecks Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal GroupChecks As String) As Boolean
'      groupChecks : 允许组别清单, 十进制数值, 可以使用','及'-'连接.
'                    例如 : 0,5-8,100, 140-141,255
'                    表示可以检查组别标志为0,5,6,7,8,100,140,141,255的卡打卡

'      读分组检查字节标志单元组
Declare Function ReadGroupByteChecks Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal GroupChecks As String, ByVal buffsize As Long) As Boolean
'      groupChecks : 允许组别清单, 十进制数值, 可以使用','及'-'连接.
'                    例如 : 0,5-8,100, 140-141,255
'                    表示可以检查组别标志为0,5,6,7,8,100,140,141,255的卡打卡

'    读写卡多对多分组检查单元组
Declare Function ReadCardManyGroupChecks Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal GroupChecks As String, ByVal buffersize As Long, ByVal Block As Long) As Boolean
Declare Function WriteCardManyGroupChecks Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal GroupChecks As String, ByVal Block As Long) As Boolean
'{分组打卡控制类}



'{存储器操作类}

'      读 RAM 16字节数值
'function ReadRAMData(hPort: THandle; address: Integer; ValueData: Pointer): Boolean; stdcall; external EastRiver.dll_API
'Declare Function ReadRAMData Lib "EastRiver.dll" (ByVal hPort As Long, ByVal address As Integer, ByVal ValueData As Pointer) As Boolean
'      address   : RAM 地址, 0x00-0xFF
'      valueData : 读回的数据缓冲区, 大小为16字节

'      读 RAM 1字节数值
Declare Function WriteRAMByte Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal address As Integer, ByVal Value As Byte) As Boolean
'      address   : RAM 地址, 0x00-0xFF
'      valueData : 1字节数据, 大小为16字节

'      读 EEPROM 16字节数值
Declare Function ReadEEPROMData Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal address As Long, ByVal ValueData As Variant) As Boolean
'      address   : EEPROM 地址, 只允许使用0x100--0x0FFF的单元地址
'      valueData : 读回的数据缓冲区, 大小为16字节

'      写 EEPROM 1字节数值
Declare Function WriteEERPOMByte Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal address As Integer, ByVal Value As Byte) As Boolean
'      address   : EEPROM 地址, 只允许使用0x100 -- 0x0FFF的单元地址
'      value     : 1字节数据

'      写 EEPROM 16字节数值
Declare Function WriteEEPROMData Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal address As Long, ByVal ValueData As Variant) As Boolean
'      address   : EEPROM 地址, 只允许使用0x100 -- 0x0FFF的单元地址
'      valueData : 16字节数据, 大小为16字节

'      读数据存储器一页(256字节)数据
Declare Function ReadFlashPageData Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal flashPage As Long, ByVal ValueData As Variant) As Boolean
'      flashPage  : 数据存储器的页地址, 范围为 0x0--0x7FF, 或 0x0--0xFFF
'      valueData  : 读回的数据缓冲区, 大小为256字节

'      读数据存储器数据
Declare Function ReadFlashData Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal address As Long, ByVal ValueData As Variant) As Boolean
'      address  : 数据存储器的地址, 范围为 0x0--0x7FF00, 或 0x0--0xFFF00
'      valueData  : 读回的数据缓冲区, 大小为16字节

'      写入一页(256字节)数据到数据存储器
Declare Function WriteFlashPageData Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal flashPage As Long, ByVal ValueData As Variant) As Boolean
'      flashPage  : 数据存储器的页地址, 范围为 0x0--0x7FF, 或 0x0--0xFFF
'      valueData  : 256字节写入数据, 大小为256字节

'{存储器操作类}



'{新型一拖四门禁机 "ER-890" 新增函数}


' 设置门禁机时段
Declare Function SetDoorGuardPeriods Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal Fun As Integer, ByRef ts As TDoorTimePeriods, ByVal Count As Integer, Optional ByVal week As Byte = 0) As Boolean
'Fun:        时段类型(0-6) 代表(出入,密码,报警生效,按钮生效,电锁常开,门磁报警,假日开门)时段
' ts :        时间段内容
' Count:      时段个数
' Week:       星期(1-7)代表周日-周六

'设置出入时间段(开门时间段)及权限 每天可设置四个时段
Declare Function SetInOutRight Lib "EastRiver.Dll" (ByVal hPort As Long, ByVal Week_Day As Integer, ByRef ts As TDoorTimePeriods, Optional ByVal Count As Integer = 4) As Boolean
' hPort    : 串口句柄。
' Week_Day : 每周七天中的一天,1 星期日,2 星期一,...,7 星期六,其它值非法。
 'ts[]     : 出入时间段及权限可设置[0..4]个时段,Right 权限为0x00--0xFF(00--255),数字越大权限越大。
' ArraySize: 此值不使用可设为任意值。
' Count    : ts[]中设置的时段个数[0..4]。

'设置密码生效时段,每天可设置四个时段
Declare Function SetCipherSlice Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef ts As TDoorTimePeriods, Optional ByVal Count As Long = 4) As Boolean
' hPort    : 串口句柄。
' ts[]     : 密码时间段,可设置[0..4]个时段,Right 权限bit为1表示选中:
         'Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
' ArraySize: 此值不使用可设为任意值。
' Count    : ts[]中设置的时段个数[0..4]。


'设置报警生效时段,每天可设置四个时段
Declare Function SetAlertSlice Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef ts As TDoorTimePeriods, Optional ByVal Count As Long = 4) As Boolean
' hPort    : 串口句柄。
' ts[]     : 报警时间段,可设置[0..4]个时段,Right 权限bit为1表示选中:
'             //Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
' ArraySize: 此值不使用可设为任意值。
' Count    : ts[]中设置的时段个数[0..4]。
'
'设置按钮生效时段,每天可设置四个时段
Declare Function SetButtonSlice Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef ts As TDoorTimePeriods, Optional ByVal Count As Long = 4) As Boolean
' hPort    : 串口句柄。
' ts[]     : 按钮生效时间段,可设置[0..4]个时段,Right 权限bit为1表示选中:
'         //Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
' ArraySize: 此值不使用可设为任意值。
' Count    : ts[]中设置的时段个数[0..4]。
'
'设置电锁常开时段,每天可设置四个时段
Declare Function SetConstOpenSlice Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef ts As TDoorTimePeriods, Optional ByVal Count As Long = 4) As Boolean
' hPort    : 串口句柄。
' ts[]     : 电锁常开时间段,可设置[0..4]个时段,Right 权限bit为1表示选中:
'       //Right.0表示一号读头、Right.1表示二号读头、Right.2表示三号读头、Right.3表示四号读头。
' ArraySize: 此值不使用可设为任意值。
' Count    : ts[]中设置的时段个数[0..4]。
'
'//设置门磁处于常开报警时段,每天可设置四个时段
Declare Function SetCOAlertSlice Lib "EastRiver.Dll" (ByVal hPort As Long, ByRef ts As TDoorTimePeriods, Optional ByVal Count As Long = 4) As Boolean

⌨️ 快捷键说明

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