Form1.vb 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. Public Class Form1
  2. Dim status As New String(status, 20)
  3. Dim cardtype As Integer
  4. Dim snr(4) As Byte
  5. Dim snr1 As New String(snr1, 8)
  6. Dim data As New String(data, 20)
  7. Dim databuff As New String(databuff, 20)
  8. Dim keyA(6) As Byte
  9. Dim keyB(6) As Byte
  10. Dim key As String
  11. Dim sector As Integer
  12. Dim resetData(50) As Byte
  13. Dim reset_data As New String(reset_data, 50)
  14. Dim sendcmd(9) As Byte
  15. Dim returnData(255) As Byte
  16. Dim return_Data As New String(return_Data, 500)
  17. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  18. icdev = rf_init(0, 9600) '0代表端口号1,1代表端口号2 。。。
  19. If (icdev > 0) Then
  20. st = rf_get_status(icdev, status) 'rf_init返回值大于0不一定是连接到读写器,可以再对读写器操作来判断读写器是否连接,如读取硬件版本号
  21. If (st = 0) Then
  22. List1.Items.Add(status)
  23. End If
  24. st = rf_beep(icdev, 30)
  25. List1.Items.Add("rf_init success")
  26. Else
  27. List1.Items.Add("rf_init error" + Str(icdev))
  28. End If
  29. key = "ffffffffffff"
  30. For Me.sector = 0 To 15
  31. st = rf_load_key_hex(icdev, 0, sector, key) '加载密码,此密码是用来验证卡片的密码
  32. If (st <> 0) Then
  33. List1.Items.Add(Str(sector) + " rf_load_key_hex error")
  34. 'Else
  35. 'List1.Items.Add("rf_losd_key_hex ok")
  36. End If
  37. Next
  38. End Sub
  39. Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
  40. st = rf_card(icdev, 1, snr(0)) '寻卡
  41. If (st = 0) Then
  42. hex_a(snr(0), snr1, 4) '将卡号转换为16进制字符串
  43. List1.Items.Add("rf_card ok " + snr1)
  44. Else
  45. List1.Items.Add("rf_card error")
  46. End If
  47. sector = 2
  48. st = rf_authentication(icdev, 0, sector) '验证密码
  49. If (st = 0) Then
  50. List1.Items.Add("rf_authentication ok")
  51. Else
  52. List1.Items.Add("rf_authentication error")
  53. End If
  54. data = "深圳明华澳汉科技"
  55. st = rf_write(icdev, sector * 4, data) '写数据
  56. If (st = 0) Then
  57. List1.Items.Add("rf_write ok")
  58. Else
  59. List1.Items.Add("rf_write error")
  60. End If
  61. st = rf_read(icdev, sector * 4, databuff) '读数据
  62. If (st = 0) Then
  63. List1.Items.Add("rf_read ok" + databuff)
  64. Else
  65. List1.Items.Add("rf_read error")
  66. End If
  67. keyA(0) = &HFF
  68. keyA(1) = &HFF
  69. keyA(2) = &HFF
  70. keyA(3) = &HFF
  71. keyA(4) = &HFF
  72. keyA(5) = &HFF
  73. keyB(0) = &HFF
  74. keyB(1) = &HFF
  75. keyB(2) = &HFF
  76. keyB(3) = &HFF
  77. keyB(4) = &HFF
  78. keyB(5) = &HFF
  79. st = rf_changeb3(icdev, sector, keyA(0), 0, 0, 0, 1, 0, keyB(0)) '更改密码
  80. If (st = 0) Then
  81. List1.Items.Add("rf_changeb3 ok")
  82. Else
  83. List1.Items.Add("rf_changeb3 error")
  84. End If
  85. End Sub
  86. Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
  87. sendcmd(0) = 0
  88. sendcmd(1) = 0
  89. sendcmd(2) = 0 '前三个字节可以默认为0
  90. sendcmd(3) = &H5 '第四个字节是命令的长度
  91. sendcmd(4) = 0
  92. sendcmd(5) = &H84
  93. sendcmd(6) = 0
  94. sendcmd(7) = 0
  95. sendcmd(8) = &H8
  96. st = rf_card(icdev, 1, snr(0)) '寻卡
  97. If (st = 0) Then
  98. hex_a(snr(0), snr1, 4)
  99. List1.Items.Add("rf_card ok " + snr1)
  100. Else
  101. List1.Items.Add("rf_card error")
  102. End If
  103. st = rf_pro_rst(icdev, resetData(0)) '复位
  104. If (st = 0) Then
  105. hex_a(resetData(0), reset_data, resetData(0))
  106. List1.Items.Add("rf_pro_rst ok " + reset_data)
  107. Else
  108. List1.Items.Add("rf_pro_rst error")
  109. End If
  110. st = rf_pro_trn(icdev, sendcmd(0), returnData(0)) '发送命令
  111. If (st = 0) Then
  112. hex_a(returnData(0), return_Data, returnData(3) + 4) '返回的数据前三个字节无用,第四个字节为返回数据的长度,
  113. List1.Items.Add("rf_pro_trn ok " + return_Data)
  114. Else
  115. List1.Items.Add("rf_pro_trn error")
  116. End If
  117. End Sub
  118. Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
  119. st = rf_exit(icdev)
  120. If (st = 0) Then
  121. List1.Items.Add("断开连接")
  122. End If
  123. End Sub
  124. End Class