| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- VERSION 5.00
- Begin VB.Form Form1
- Caption = "Form1"
- ClientHeight = 5895
- ClientLeft = 60
- ClientTop = 450
- ClientWidth = 10470
- LinkTopic = "Form1"
- ScaleHeight = 5895
- ScaleWidth = 10470
- StartUpPosition = 3 '窗口缺省
- Begin VB.CommandButton Command4
- Caption = "CPU"
- Height = 495
- Left = 360
- TabIndex = 4
- Top = 3360
- Width = 1335
- End
- Begin VB.CommandButton Command3
- Caption = "M1"
- Height = 495
- Left = 360
- TabIndex = 3
- Top = 1920
- Width = 1335
- End
- Begin VB.CommandButton Command2
- Caption = "断开连接"
- Height = 495
- Left = 360
- TabIndex = 2
- Top = 4800
- Width = 1335
- End
- Begin VB.ListBox List1
- Height = 5280
- Left = 2160
- TabIndex = 1
- Top = 240
- Width = 7695
- End
- Begin VB.CommandButton Command1
- Caption = "连接设备"
- Height = 495
- Left = 360
- TabIndex = 0
- Top = 480
- Width = 1335
- End
- End
- Attribute VB_Name = "Form1"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Dim status As String * 18
- Dim cardtype As Integer
- Dim snr(5) As Byte
- Dim size As Integer
- Dim data As String
- Dim databuff As String * 16
- Dim keyA(6) As Byte
- Dim keyB(6) As Byte
- Dim key As String
- Dim asnr As String * 9
- Dim val As Long
- Dim intrval As Long
- Dim readVal As Long
- Dim resetData(50) As Byte
- Dim reset_data As String * 50
- Dim sendcmd(9) As Byte
- Dim returnData(255) As Byte
- Dim return_data As String * 500
- Private Sub Command1_Click()
- '初始化设备
- icdev = rf_init(0, 9600)
- If (icdev > 0) Then
- st = rf_get_status(icdev, status)
- If (st = 0) Then
- List1.AddItem (status)
- End If
- '鸣响
- st = rf_beep(icdev, 50)
- List1.AddItem ("rf_init success")
- Else
- List1.AddItem ("rf_init error" + Str(st))
- End If
- '加载密码
- '验证密码的方式为先将卡片的密码加载到读写器里,再通过设备里的密码来验证,一般因所有的卡片密码相同,所以在初始化设备后加载一次密码即可
- key = "ffffffffffff"
- For sector = 0 To 15
- st = rf_load_key_hex(icdev, 0, sector, key)
- If (st <> 0) Then
- List1.AddItem (Str(sector) + " rf_load_key_hex error")
- 'Else
- 'List1.AddItem ("rf_losd_key_hex ok")
- End If
- Next
- End Sub
- Private Sub Command2_Click()
- st = rf_exit(icdev)
- If (st = 0) Then
- List1.AddItem ("断开连接")
- End If
- End Sub
- Private Sub Command3_Click()
- '寻卡
- '对卡片的操作为先寻卡,再验证密码,验证密码成功后才可对卡片进行读,写,加减值操作
- st = rf_card(icdev, 1, snr(0))
- If (st = 0) Then
- st = hex_a(snr(0), asnr, 4)
- List1.AddItem ("rf_card ok " + asnr)
- Else
- List1.AddItem ("rf_card error")
- End If
- '验证密码
- 'M1卡有16个扇区,每个扇区都有一套独立的密码
- sector = 2
- st = rf_authentication(icdev, 0, sector)
- If (st = 0) Then
- List1.AddItem ("rf_authentication ok")
- Else
- List1.AddItem ("rf_authentication error")
- End If
- '写数据
- data = "深圳明华澳汉科技"
- st = rf_write(icdev, sector * 4, data)
- If (st = 0) Then
- List1.AddItem ("rf_write ok")
- Else
- List1.AddItem ("rf_write error")
- End If
- '读数据
- st = rf_read(icdev, sector * 4, databuff)
- If (st = 0) Then
- List1.AddItem ("rf_read ok" + databuff)
- Else
- List1.AddItem ("rf_read error")
- End If
- '改写密码
- keyA(0) = &HFF
- keyA(1) = &HFF
- keyA(2) = &HFF
- keyA(3) = &HFF
- keyA(4) = &HFF
- keyA(5) = &HFF
- keyB(0) = &HFF
- keyB(1) = &HFF
- keyB(2) = &HFF
- keyB(3) = &HFF
- keyB(4) = &HFF
- keyB(5) = &HFF
- st = rf_changeb3(icdev, sector, keyA(0), 0, 0, 0, 1, 0, keyB(0)) '中间的几个参数00010按默认即可
- If (st = 0) Then
- List1.AddItem ("rf_changeb3 ok")
- Else
- List1.AddItem ("rf_changeb3 error")
- End If
- '初始化值(充值)
- val = 1000
- intrval = 100
- st = rf_initval(icdev, sector * 4 + 2, val)
- If (st = 0) Then
- List1.AddItem ("rf_initval ok")
- Else
- List1.AddItem ("rf_initval error")
- End If
- '加值
- st = rf_increment(icdev, sector * 4 + 2, val)
- If (st = 0) Then
- List1.AddItem ("rf_increment ok")
- Else
- List1.AddItem ("rf_increment error")
- End If
- '减值
- st = rf_decrement(icdev, sector * 4 + 2, val)
- If (st = 0) Then
- List1.AddItem ("rf_decrement ok")
- Else
- List1.AddItem ("rf_decrement error")
- End If
- '读值
- st = rf_readval(icdev, sector * 4 + 2, readVal)
- If (st = 0) Then
- List1.AddItem ("rf_readval ok! value: " + Str(readVal))
- Else
- List1.AddItem ("rf_readval error")
- End If
- st = rf_beep(icdev, 30)
- End Sub
- Private Sub Command4_Click()
- sendcmd(0) = 0
- sendcmd(1) = 0
- sendcmd(2) = 0 '前三个字节可以默认为0
- sendcmd(3) = &H5 '第四个字节是命令的长度
- sendcmd(4) = 0
- sendcmd(5) = &H84
- sendcmd(6) = 0
- sendcmd(7) = 0
- sendcmd(8) = &H8
- st = rf_card(icdev, 1, snr(0)) '寻卡
- If (st = 0) Then
- Call hex_a(snr(0), snr1, 4)
- List1.AddItem ("rf_card ok " + snr1)
- Else
- List1.AddItem ("rf_card error")
- End If
- st = rf_pro_rst(icdev, resetData(0)) '复位
- If (st = 0) Then
- Call hex_a(resetData(0), reset_data, resetData(0))
- List1.AddItem ("rf_pro_rst ok " + reset_data)
- Else
- List1.AddItem ("rf_pro_rst error")
- End If
- st = rf_pro_trn(icdev, sendcmd(0), returnData(0)) '发送命令
- If (st = 0) Then
- Call hex_a(returnData(0), return_data, returnData(3) + 4) '返回的数据前三个字节无用,第四个字节为返回数据的长度,
- List1.AddItem ("rf_pro_trn ok " + return_data)
- Else
- List1.AddItem ("rf_pro_trn error")
- End If
- End Sub
|