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

📄 modudefine.bas

📁 HD 6P RFID发卡器、考勤卡钟 串口通讯接口程序 VB 源码
💻 BAS
字号:
Attribute VB_Name = "moduDefine"
Public Const HD_LIGHTENLED = 1                  ' lighten LED
Public Const HD_BLACKLED = 0                    ' Black LED

'---------------------------------------------------------------------------
' 枚举类型
'---------------------------------------------------------------------------
'汉字内码
Public Enum CHINESETYPE
    GB_GB = 0                '后台-GB   / 终端-GB
    GB_BIG5 = 1              '后台-GB   / 终端-BIG5
    BIG5_GB = 2              '后台-BIG5 / 终端-GB
    BIG5_BIG5 = 3            '后台-BIG5 / 终端-BIG5
End Enum

'HD4k卡文件
Public Enum FILEOFHD4K
    FILEOFHD4K_ATT = 1       '考勤门禁卡文件标志
    FILEOFHD4K_POS = 2       '消费卡文件标志
    FILEOFHD4K_OPR = 3       '操作员卡文件标志
End Enum
Public Enum CARDTYPE   ' 卡类型

    CardType_POS = &H80                   '  // 消费卡
    CARDTYPE_ATT = &H40                   '  // 考勤卡
    CARDTYPE_ACC = &H20                   '  // 门禁卡
    CARDTYPE_OPR = &H10                     ' 操作卡
End Enum

'------------------------------------------------------------------
'通讯命令
Public Const MT_READ_CARDID = &H1               ' 读卡序列号
Public Const MT_INIT_NOTECASE = &H2             ' 初始化钱包
Public Const MT_ADD_NOTECASE = &H3              ' 钱包加值
Public Const MT_REDUCE_NOTECASE = &H4           ' 钱包减值
Public Const MT_READ_BLOCK = &H5                ' 读块
Public Const MT_WRITE_BLOCK = &H6               ' 写块
Public Const MT_BEEP = &H9                      ' 鸣叫
Public Const MT_LED = &HA                       ' lighten LED
Public Const MT_RECV_READERPROP = &HB           ' 取设备属性
Public Const MT_SET_WAITTIME = &H38             ' 设置操作等待时间
Public Const MT_SEND_CARDID = &H39              ' 主动上送卡序列号

Public Const MT_READ_CARDOFHD4K = &HA0          ' 读HD4K卡
Public Const MT_WRITE_CARDOFHD4K = &HA1         ' 写卡
Public Const MT_READEW_CARDOFHD4K = &HA3        ' 读HD4K钱包
Public Const MT_WRITEEW_CARDOFHD4K = &HA4       ' 写钱包

Public Const MT_INIT_CARDOFHD6K = &HB0          ' 初始化卡(写标识目录区以及应用扇区的密码)
Public Const MT_ERASE_CARDOFHD6K = &HB1          '洗卡(清卡密码及数据)
Public Const MT_UPDATEKEY_CARDOFHD6K = &HB2      '更新卡密码
Public Const MT_ERASEDATA_CARDOFHD6K = &HB3      '清卡数据(应用扇区的数据清为0xff 但不改密码)
Public Const MT_READDATA_CARDOFHD6K = &HB4       '读卡
Public Const MT_WRITEDATA_CARDOFHD6K = &HB5      '写卡
Public Const MT_READEW_CARDOFHD6K = &HB6         '读钱包
Public Const MT_WRITEEW_CARDOFHD6K = &HB7        '写钱包

'---------------------------------------------------------------------------
' 结构定义
'------------------------------------------------------------------
'卡序列号结构
Type CARDIDSTRUCT
    CARDTYPE        As Long    '卡类型/钱包索引/块号/扇区号
    CardID          As Long    '卡序列号
End Type

'机具属性结构
Type READERPROPSTRUCT
    ReaderID        As Long    '设备序列号
    MainSoftwareVer As Integer '软件版本:主版本
    MiniSoftwareVer As Integer '软件版本:子版本
    MainHardwareVer As Integer '硬件版本:主版本
    MiniHardwareVer As Integer '硬件版本:子版本
End Type

'蜂鸣
Type BEEPSTRUCT
    Count     As Integer       '鸣叫次数
    Times     As Integer       '单次鸣叫时间
End Type
Type SECTORSTRUCT      ' 扇区结构
'  BYTE Block_0[16]        ' 块0
   Block_1(1 To 16) As Byte
   Block_2(1 To 16) As Byte
   Block_3(1 To 16) As Byte
   Block_4(1 To 16) As Byte
End Type
'Header
Type HEADER_BLOCKOPRSTRUCT
    BlockNum  As Byte          '块号/扇区号
    AuthMode  As Byte          '认证方式
    AuthKeyA(0 To 5) As Byte   '认证密码A
    AuthKeyB(0 To 5) As Byte   '认证密码B
End Type

'块结构
Type BLOCKSTRUCT
    Data(0 To 15) As Byte
End Type

'写块
Type WRITEBLOCKSTRUCT
    Header    As HEADER_BLOCKOPRSTRUCT
    BlockData As BLOCKSTRUCT
End Type

'钱包操作
Type OPRNOTECASESTRUCT
    Header    As HEADER_BLOCKOPRSTRUCT
    Reserve   As Integer
    Money     As Long '操作金额
End Type
'因为年份不对,特此修改
Type MYDATESTRUCT
    Year      As Long                 '年
    Month     As Long                 '月
    Day       As Long                 '日
End Type
Type MYTIMESTRUCT
    Hour As Long                ' 时
    Minute As Long              ' 分
    Second As Long              ' 秒
End Type

'HD4K考勤门禁卡
Type ATTGUARDCARD_HD4K
    FileSort  As Long               '卡文件类型
    SectorNo  As Long               '扇区号
    CardNo    As Long               '卡号
    PersonNo  As String * 7         '编号
    Grade     As Long               '级别
    Group     As Long               '分组
    Password  As String * 4         '用户密码
    Name      As String * 8         '姓名
    Date      As MYDATESTRUCT       '卡有效期
End Type

'HD4K消费卡
Type POSCARD_HD4K
    FileSort  As Long               '卡文件类型
    SectorNo  As Long               '扇区号
    CardNo    As Long               '卡号
    Name      As String * 8         '姓名
    Password  As String * 4         '用户密码
    Group     As Long               '消费分组
    Date      As MYDATESTRUCT       '卡有效期
    Balance   As Long               'money
End Type

'HD4K操作员卡
Type OPRCARD_HD4K
    FileSort  As Long               '卡文件类型
    SectorNo  As Long               '扇区号
    CardNo    As Long               '卡号
    Name      As String * 8         '姓名
    Password  As String * 4         '用户密码
    Date      As MYDATESTRUCT       '卡有效期
    POSID     As Long               '子系统号
    OprID     As Long               '操作员号
End Type

'HD4K充值结构
Type EW_HD4K
    FileSort  As Long               '卡文件类型
    SectorNo  As Long               '扇区号
    CardNo    As Long               '卡号
    Balance   As Long               'money
    TraceOfEW As Long               '钱包流水号
    Date      As MYDATESTRUCT       '卡有效期
End Type

Type EW_HD6K         ' 钱包结构
    CardID As CARDIDSTRUCT
    IndexOfEW As Long                   '钱包索引号
    Balance As Long                 '钱包金额-分
    TraceOfEW As Long                  '钱包流水号
    Deposit As Long                  '本次充值额-分
    SumOfDeposit As Long               '累计充值额-分
    IntradaySumOfAmount As Long        '日累计消费额-元
    ReaderSN As Long                   'Reader序列号
    
    LastDealDate_D As MYDATESTRUCT         '充值日期-末笔
    LastTime_D As MYTIMESTRUCT             '充值时间-末笔
End Type

Type CARDINFO_HD6K    ' 卡数据-HD6k
    CardID As CARDIDSTRUCT
    CardNo As Long                  ' 卡号
'  char PersonNo[12]           ' 持卡人编号
    PersonNo As String * 12
'  BYTE Name[12]               ' 持卡人姓名
   ' MyName(1 To 12) As Byte
    MyName As String * 12
    GradeNo As Long                         '级别, 分组
    GroupNo As Long
    DeptNo As Long                      '部门编号
    CARDTYPE As Long                    '卡类型
    OPRCARDTYPE As Long                 '操作卡类型

    StartDate As MYDATESTRUCT           '启用日期
    DeadDate As MYDATESTRUCT            '截止日期

    QuotaPerDay As Long                 '日限额-元
    QuotaPerTimes As Long               '次限额-元
    CardDeposit As Long                 '卡押金-元

 '  char P As sword[6]                  '用户密码
    Password As String * 6
    CertNo As String * 22
    CERTTYPE As Long                    '证件类型
 '  char CertNo[22]                     '证件号码
    LockFlag As Long                    '锁卡标志
    BCListVer As Long                   '黑名单版本
    IsWriteEW As Long                   '是否写钱包
   
    EWallet As EW_HD6K                   '钱包
End Type
'------------------------------------------------------------------
'库函数调用声明-Reader.dll
Public Declare Function CreateObject Lib "Reader.dll" (ByVal hwnd As Long, ByVal Lang As CHINESETYPE, ByVal Alignment As Long) As Boolean
Public Declare Sub DestroyObject Lib "Reader.dll" ()
Public Declare Sub SetCardRootKey Lib "Reader.dll" (ByRef OldKey As Any, ByRef NewKey As Any)
Public Declare Function SendCommandA Lib "Reader.dll" (ByVal Command As Long, ByRef Parameters As Any, ByVal SizeOfParameter As Long, ByRef Buffer As Any, ByRef BufferLength As Any) As Boolean
Public Declare Function GetCommand Lib "Reader.dll" () As Long
Public Declare Function GetResultCode Lib "Reader.dll" () As Long
Public Declare Function GetData Lib "Reader.dll" (ByRef Buffer As Any, ByVal BufferLength As Long) As Long
Public Declare Function DealHDLCFrame Lib "Reader.dll" (ByRef Buffer As Any, ByVal BufferLength As Long) As Long

'库函数调用声明-kernel32
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'库函数调用声明-Stdfun_HD
Public Declare Sub MemSet_HD Lib "Stdfun_HD.dll" (ByRef Dest As Any, ByVal Data As Byte, ByVal Length As Long)

⌨️ 快捷键说明

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