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

📄 mduscreader.bas

📁 一个读写mifare卡VB编程事例,适合做IC卡应用开发.
💻 BAS
📖 第 1 页 / 共 3 页
字号:
Attribute VB_Name = "mduSCReader"
Option Explicit

Public Const ICCTYPE_ASYNC = 0
Public Const ICCTYPE_SYNC = 1
Public Const ICCTYPE_SLE4442 = 2
Public Const ICCTYPE_SLE4428 = 3
Public Const ICCTYPE_SC1604 = 4
Public Const ICCTYPE_AT24 = 5
Public Const ICCTYPE_UNKNOWN = &HFE
Public Const ICCTYPE_INVALID = &HFF

Public Const ICCSUBTYPE_AT24C01 = 0
Public Const ICCSUBTYPE_AT24C02 = 1
Public Const ICCSUBTYPE_AT24C04 = 2
Public Const ICCSUBTYPE_AT24C08 = 3
Public Const ICCSUBTYPE_AT24C16 = 4
Public Const ICCSUBTYPE_AT24C32 = 5
Public Const ICCSUBTYPE_AT24C64 = 6
Public Const ICCSUBTYPE_AT24C128 = 7
Public Const ICCSUBTYPE_AT24C256 = 8
Public Const ICCSUBTYPE_AT24C512 = 9

Public Const ICCSUBTYPE_SC1604N = 0
Public Const ICCSUBTYPE_SC1604E = 1

Public Const SCPROT_T0 = 0
Public Const SCPROT_T1 = 1

Public Const SC1604ZONE_FZ = 0
Public Const SC1604ZONE_IZ = 1
Public Const SC1604ZONE_SC = 2
Public Const SC1604ZONE_SCAC = 3
Public Const SC1604ZONE_CPZ = 4
Public Const SC1604ZONE_SC1 = 5
Public Const SC1604ZONE_S1AC = 6
Public Const SC1604ZONE_EZ1 = 7
Public Const SC1604ZONE_E1AC = 8
Public Const SC1604ZONE_AZ1 = 9
Public Const SC1604ZONE_SC2 = 10
Public Const SC1604ZONE_S2AC = 11
Public Const SC1604ZONE_EZ2 = 12
Public Const SC1604ZONE_E2AC = 13
Public Const SC1604ZONE_AZ2 = 14
Public Const SC1604ZONE_SC3 = 15
Public Const SC1604ZONE_S3AC = 16
Public Const SC1604ZONE_EZ3 = 17
Public Const SC1604ZONE_E3AC = 18
Public Const SC1604ZONE_AZ3 = 19
Public Const SC1604ZONE_SC4 = 20
Public Const SC1604ZONE_S4AC = 21
Public Const SC1604ZONE_EZ4 = 22
Public Const SC1604ZONE_E4AC = 23
Public Const SC1604ZONE_AZ4 = 24
Public Const SC1604ZONE_MTZ = 25
Public Const SC1604ZONE_FUSE = 26
    
'通用读写器函数错误代码
Public Const ERR_SCARD_UNSUPPORT = &H401
Public Const ERR_SCARD_FORMAT = &H402
Public Const ERR_SCARD_PARAMS = &H403
Public Const ERR_SCARD_CARDTYPE = &H404
Public Const ERR_SCARD_POWER = &H405
Public Const ERR_SCARD_SLOT = &H406
Public Const ERR_SCARD_SESSION = &H407
Public Const ERR_SCARD_PROTOCOL = &H408
Public Const ERR_SCARD_WRITELEN = &H40A
Public Const ERR_SCARD_READ = &H40B
Public Const ERR_SCARD_WRITE = &H4C
Public Const ERR_SCARD_TIMEOUT = &H40E
Public Const ERR_SCARD_OVERHOT = &H40F
Public Const ERR_SCARD_VERIFY = &H421
Public Const ERR_SCARD_NOPOWER = &H4FD
Public Const ERR_SCARD_NOCARD = &H4FF

'Mifare1错误代码
Public Const MI_NOTAGERR = &H3FF '操作区无卡
Public Const MI_CRCERR = &H3FE   'CRC校验错
Public Const MI_EMPTY = &H3FD        '数值溢出
Public Const MI_AUTHERR = &H3FC          '认证失败
Public Const MI_PARITYERR = &H3FB        '奇偶校验错
Public Const MI_CORDERR = &H3FA         '与卡的通讯发生错误
Public Const MI_SERNRERR = &HF8         '防冲突过程中读到错误的卡号
Public Const MI_KEYERR = &HF7       '密码错误
Public Const MI_NOTAUTHERR = &HF6       '卡未经过认证
Public Const MI_BITCOUNTERR = &HF5          '从卡接收到的数据位数错误
Public Const MI_BYTECOUNTERR = &HF4         '从卡接收到的数据字节数错误
Public Const MI_IDLE = &HF3         'IDLE指令激活
Public Const MI_TRANSERR = &HF2         '传输操作后无应答
Public Const MI_WRITEERR = &HF1         '写操作后无应答
Public Const MI_INCRERR = &HF0          '增值操作后无应答
Public Const MI_DECRERR = &H3EF          '减值操作后无应答
Public Const MI_READERR = &H3EE          '读操作后无应答
Public Const MI_OVFLERR = &H3ED          'FIFO溢出
Public Const MI_POLLING = &H3EC          '轮巡检测不正确
Public Const MI_FRAMINGERR = &H3EB       'Mifare射频帧起始位无效
Public Const MI_ACCESSERR = &H3EA        'Mifare模块超时
Public Const MI_UNKNOWN_COMMAND = &H3E9          '未知指令
Public Const MI_RESETERR = &H3E8         'Mifare模块复位错误
Public Const MI_INITERR = &H3E7          'Mifare模块初始化错误
Public Const MI_INTERFACEERR = &H3E6         'Mifare模块响应不正确
Public Const MI_ACCESSTIMEOUT = &H3E5        'Mifare模块无应答
Public Const MI_NOBITMSEANTICOLL = &H3E4         '卡不支持防冲突位逻辑
Public Const MI_RECBUF_OVERFLOW = &H3CE          'Mifare模块接收缓冲区溢出
Public Const MI_SENDBYTENR = &H3CD       'Mifare模块发送字节数错误
Public Const MI_SENDBUF_OVERFLOW = &H3CB         'Mifare模块发送溢出
Public Const MI_BAUDRATE_NOT_SUPPORTED = &H3CA       'Mifare模块波特率错误
Public Const MI_SAME_BAUDRATE_NOT_SUPPORTED = &H3C9          '发送和接收处在相同波特率
Public Const MI_WRONG_PARAMETER_VALUE = &H3C4        '功能参数错误
Public Const MI_NY_IMPLEMENTED = &H39C       '功能未实现
Public Const MI_NO_MFRC = &H39B          '硬件版本不正确
Public Const MI_MFRC_NOTAUTH = &H39A         'Mifare模块认证失败
Public Const MI_WRONG_DES_MODE = &H399       '错误的DES模式
Public Const MI_HOST_AUTH_FAILED = &H398         '主机认证失败
Public Const MI_WRONG_LOAD_MODE = &H396          '错误的载入模式
Public Const MI_WRONG_DESKEY = &H395         'DES密钥错,最低位非零
Public Const MI_MKLOAD_FAILED = &H394        '密钥存取被拒绝
Public Const MI_FIFOERR = &H393         'FIFO处错
Public Const MI_WRONG_ADDR = &H392       '错误的地址
Public Const MI_DESKEYLOAD_FAILED = &H391        'DES密钥载入失败
Public Const MI_WRONG_SEL_CNT = &H38E        '计数器无效
Public Const MI_WRONG_TEST_MODE = &H38B          '错误的测试模式
Public Const MI_TEST_FAILED = &H38A          'Mifare模块自检失败
Public Const MI_TOC_ERROR = &H389        '超时计数器出错
Public Const MI_COMM_ABOUT = &H388       'Mifare模块通讯失败
Public Const MI_INVALID_BASE = &H387         '错误的Mifare模块基地址
Public Const MI_MFRC_RESET = &H386       'Mifare模块忙/复位中
Public Const MI_WRONG_VALUE = &H385          '传递的值错误
Public Const MI_VALERR = &H384       '数值格式错误
Public Const MI_WRONG_MAC_TOKEN = &H36B          '错误的MAC令牌
Public Const MI_WRONG_TOKEN = &H36A          '错误的令牌
Public Const MI_NO_VALUE = &H369     '数值格式错误
Public Const MI_MFRC150 = &H368          'RC150被检测
Public Const MI_MFRC170 = &H367          'RC170被检测
Public Const MI_WRONG_BASEADDR = &H34C       'IO口地址错误
Public Const MI_NOERROR_TEXT_AVAIL = &H339   '无效的错误码


Public Const ISO15693_FLAGS_SELECTED = &H10
Public Const ISO15693_FLAGS_ADDRESSED = &H20
Public Const ISO15693_FLAGS_OPTION = &H40


Public Const ISO_TYPEA = &H0
Public Const ISO_TYPEA_SHC = &H1
Public Const ISO_TYPEB = &H40
Public Const ISO_15693 = &H80
Public Const ISO_CONTACT = &HC0
Public Const ISO_TYPEMASK = &HF0

Public Type COMMCOMMAND
    Ins As Byte
    ParamsLen As Long
    Params(0 To 125) As Byte
End Type
Public Type COMMRESPONSE
    ParamsLen As Long
    Params(0 To 4092) As Byte
End Type

'通用读写器函数
'SCREADER_API DWORD SC_OpenReader(LPCTSTR lpPort,LPCTSTR lpParams);
Public Declare Function SC_OpenReader Lib "SCReader.dll" (ByVal strPort As String, ByVal strParams As String) As Long
'SCREADER_API void  SC_CloseReader(DWORD hPort);
Public Declare Sub SC_CloseReader Lib "SCReader.dll" (ByVal hPort As Long)
'SCREADER_API BOOL WINAPI SC_ExecuteCmd(long hPort,COMMCOMMAND* pCmd,COMMRESPONSE* pRsp);
Public Declare Function SC_ExecuteCmd Lib "SCReader.dll" (ByVal hPort As Long, pCmd As COMMCOMMAND, pRsp As COMMRESPONSE) As Long
'SCREADER_API DWORD SC_GetLastError();
Public Declare Function SC_GetLastError Lib "SCReader.dll" () As Long
'SCREADER_API BOOL WINAPI SC_DoBell(long hPort,long lCount, long lOn, long lOff){
Public Declare Function SC_DoBell Lib "SCReader.dll" (ByVal hPort As Long, ByVal lCount As Long, ByVal lOn As Long, ByVal lOff As Long) As Long
'SCREADER_API BOOL WINAPI SC_GetSerialNo(long hPort,LPTSTR pStrNo);
Public Declare Function SC_GetSerialNo Lib "SCReader.dll" (ByVal hPort As Long, ByVal pStrNo As String) As Long


'接触卡通用函数
'SCREADER_API long WINAPI ICC_Connect(long hCard,LPCTSTR pCardType,LPCTSTR pParams);
Public Declare Function ICC_Connect Lib "SCReader.dll" (ByVal hPort As Long, ByVal pCardType As String, ByVal pParams As String) As Long
'SCREADER_API BOOL WINAPI ICC_DisConnect(long hCard,BYTE bytMode);
Public Declare Function ICC_DisConnect Lib "SCReader.dll" (ByVal hCard As Long, ByVal dwMode As Byte) As Long

⌨️ 快捷键说明

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