500 likes | 686 Views
RFID Reader 13.56MHz (ISO14443A). หัวข้อการอบรม. ช่วงเช้า 9:00-12:00 เรียนรู้โครงสร้างและการทำงานของเครื่องอ่าน RFID 13.56MHz ตามมาตรฐาน ISO14443A เรียนรู้เทคนิคและคำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน RFID เรียนรู้โครงสร้างข้อมูลของ Tag ที่ใช้งาน ช่วงบ่าย 13:00-16:00
E N D
หัวข้อการอบรม • ช่วงเช้า 9:00-12:00 • เรียนรู้โครงสร้างและการทำงานของเครื่องอ่าน RFID 13.56MHz ตามมาตรฐานISO14443A • เรียนรู้เทคนิคและคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน RFID • เรียนรู้โครงสร้างข้อมูลของTagที่ใช้งาน • ช่วงบ่าย 13:00-16:00 • พัฒนาซอฟต์แวร์สำหรับใช้งานจริงร่วมกับฐานข้อมูล(ด้วยโครงการตัวอย่างที่ใช้งานจริง) • การออกแบบโครงสร้างข้อมูลบนบัตรเพื่อความปลอดภัยของข้อมูล • เทคนิคการจัดเก็บข้อมูลบนบัตร • การทำงานกับฟังก์ชั่นทางการเงินบนบัตร • การทำงานร่วมกับฐานข้อมูล
เตรียมความพร้อมก่อนอบรมเตรียมความพร้อมก่อนอบรม • เครื่องคอมพิวเตอร์ • มีโปรแกรม Visual Basic 6 • มี USB Port ว่าง 1 Port • มีสายแปลงสัญญาณ RS232 เป็น USB • มีฐานข้อมูล My SQL version 5.0 (Win32) หรือversionใหม่กว่า • แผงวงจรเครื่องอ่าน RFID 13.56MHz (ISO14443A) • Tag ตัวอย่าง Mifare Card 1K และ 4K
โครงสร้างและการทำงานของเครื่องอ่าน RFID 13.56MHz ตามมาตรฐาน ISO14443A MF RC500 MCUSTC89C52RC MAX232 LED
โครงสร้างและการทำงานของเครื่องอ่าน RFID 13.56MHz ตามมาตรฐาน ISO14443A แบบ USB แบบ RS232
โครงสร้างการจัดการหน่วยความจำบนบัตร Mifare 1 K
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน rf_init_com(ByVal port&, ByVal baud&) As Long คำสั่งในการเชื่อมต่อกับเครื่องอ่าน rf_ClosePort Lib () As Long คำสั่งในการยกเลือกการเชื่อมต่อกับเครื่องอ่าน rf_request(ByVal icdev%, ByVal model As Byte, _ ByRef TagType%) As Long คำสั่งในการเลือกโหมดในการอ่าน Tag 0x26 REQ_STD 0x52 REQ_ALL
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน rf_anticoll(ByVal icdev%, ByVal bcnt As Byte, _ ByRef ppsnr As Byte, ByRef pRLength As Byte) As Long คำสั่งในการอ่าน Serial Card rf_select(ByVal icdev%, ByRef pSnr As Byte, _ ByVal srclen As Byte, ByRef size As Byte) As Long คำสั่งในการเลือก Card สำหรับการอ่านเขียนข้อมูลใน Card นั้น
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน rf_M1_authentication2(ByVal icdev%, ByVal model As Byte, _ ByVal block As Byte, ByRef key As Byte) As Long คำสั่งในการเข้ารหัสในการอ่าน-เขียนข้อมูลแต่ละ Sactor rf_M1_read(ByVal icdev%, ByVal block As Byte, _ ByRef buff As Byte, ByRef pLen As Byte) As Long คำสั่งในการอ่านข้อมูลแต่ละBlock ของ Sactor
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน rf_M1_write(ByVal icdev%, ByVal block As Byte, _ ByRef buff As Byte) As Long คำสั่งในการเขียนข้อมูลลงแต่ละ Block rf_M1_initval(ByVal icdev%, ByVal block As Byte, ByVal Value As Long) As Long คำสั่งในการ Reset ค่าเงินให้เป็น 0 แต่ละ Block rf_M1_readval(ByVal icdev%, ByVal block As Byte, ByRef pValue As Byte) As Long คำสั่งในการอ่านค่าเงินจาก Block
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน rf_M1_increment(ByVal icdev%, ByVal block As Byte, ByVal Value As Long) As Long คำสั่งในการเพิ่มค่าเงินให้แต่ละ Block rf_M1_decrement(ByVal icdev%, ByVal block As Byte, ByVal Value As Long) As Long คำสั่งในการลบค่าเงินของแต่ละ Block rf_beep(ByVal icdev%, ByVal Value As Long) As Long คำสั่งสำหรับสั่งให้เครื่องอ่านส่งเสียง Alarm (ความยาวของ Alarm ตามค่า Parameter ที่ส่งไป) rf_light(ByVal icdev%, ByVal color As Long) As Long คำสั่งในการส่งค่าให้เครื่องอ่านเปลี่ยนสีของ LED 1: แดง 2: เขียว 3:เหลือง
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, j%, port&, baud&, buf1(200) As Byte, b1 As Byte, s1$ port = cb_ckh.ListIndex + 1 If (port = 0) Then lb_info.Caption = "Please select COM Port!" End If baud = CLng(cb_btl.Text) If (baud = 0) Then lb_info.Caption = "Please select Baud rate!" End If 'Open Port i = rf_init_com(port, baud)
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน If (i <> 0) Then MsgBox "Open Port Fail!" Exit Sub Else MsgBox "Open Port succeed !" Command12.Enabled = False Command13.Enabled = True End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i As Long i = rf_ClosePort If (i <> 0) Then MsgBox "Close Port Fail!" Exit Sub Else MsgBox "Close Port succeed !" Command12.Enabled = True Command13.Enabled = False End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, j%, port&, baud&, buf1(200) As Byte, b1 As Byte, s1$ i = rf_request(0, &H52, j) If (i <> 0) Then lb_info.Caption = "Request Fail!" Exit Sub End If 'Anticollision i = rf_anticoll(0, 4, buf1(0), b1) If (i <> 0) Then lb_info.Caption = "Anticollision Fail!" Exit Sub End If s1 = "" For i = 0 To b1 - 1 s1 = s1 & Right("00" & Hex(buf1(i)), 2) Next i
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน tx_kh.Text = s1 'Select card i = rf_select(0, buf1(0), 4, b1) If (i <> 0) Then lb_info.Caption = "Select card fail!" Exit Sub Else lb_info.Caption = "Select card succeed!" End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Sub Authentication() Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte s1 = Trim(frm_main.tx_key.Text) If (Len(s1) <> 12) Then frm_main.lb_info.Caption = "Wrong Key Length!" frm_main.tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'm = cb_kh.ListIndex m = (frm_main.cboSacter.Text * 4) + frm_main.cb_kh.Text If (m = -1) Then frm_main.lb_info.Caption = "Select Block Please!" Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน If (frm_main.op_a.Value) Then b1 = &H60 End If If (frm_main.op_b.Value) Then b1 = &H61 End If b3 = CByte(m) 'Authentication i = rf_M1_authentication2(0, b1, b3, buf1(0)) If (i <> 0) Then frm_main.lb_info.Caption = "Authentication Fail£¡" frm_main.tx_sj.Text = "" Exit Sub End If End Sub
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'm = cb_kh.ListIndex If Trim(cboSacter.Text) = "" Or Trim(cb_kh.Text) = "" Then MsgBox "Select Block Please!" Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน m = (cboSacter.Text * 4) + cb_kh.Text If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 End If b3 = CByte(m) 'Authentication Call Authentication 'Read card
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน i = rf_M1_read(0, b3, buf2(0), b2) If (i <> 0) Then lb_info.Caption = "Read Card Fail!" Exit Sub End If s1 = "" For i = 0 To b2 - 1 s1 = s1 & Right("00" & Hex(buf2(i)), 2) Next i tx_sj.Text = s1 lb_info.Caption = "Read Succeed!"
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + cb_kh.Text If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 End If s1 = Trim(tx_sj.Text) If (Len(s1) <> 32) Then lb_info.Caption = "Wrong Data length " tx_sj.SetFocus Exit Sub End If For i = 0 To 15 buf2(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน b3 = CByte(m) Call Authentication 'Write card i = rf_M1_write(0, b3, buf2(0)) If (i <> 0) Then lb_info.Caption = "Write Card Fail£¡" Exit Sub End If lb_info.Caption = "Write Succeed!"
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน ฟังก์ชั่นการเงิน
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte Call Authentication s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i m = cb_kh.ListIndex If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 End If 'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + cb_kh.Text If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 End If b3 = CByte(m) 'Authentication
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน i = rf_M1_authentication2(0, b1, b3, buf1(0)) If (i <> 0) Then lb_info.Caption = "Authentication Fail£¡" tx_sj.Text = "" Exit Sub End If If rf_M1_initval(0, b3, 0) = 0 Then MsgBox "Initialize Value succeed !" Else MsgBox "Initialize Value Fail !" End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte Dim a As Byte s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i m = cb_kh.ListIndex If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน 'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + cb_kh.Text If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 End If b3 = CByte(m) 'Authentication i = rf_M1_authentication2(0, b1, b3, buf1(0)) If (i <> 0) Then lb_info.Caption = "Authentication Fail£¡" tx_sj.Text = "" Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน If rf_M1_readval(0, b3, buf1(0)) = 0 Then ' MsgBox "Initialize Value succeed !" ' edAddMoney.Text = CLng(a) Dim xx As String Dim si As String Dim k As Integer For k = 0 To 3 si = si & IIf(Len(Hex(buf1(k))) < 2, "0" & Hex(buf1(k)), Hex(buf1(k))) Next edAddMoney.Text = a2hex(si, Len(si)) Else MsgBox "Initialize Value Fail !" End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte Call Authentication s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If m = (cboSacter.Text * 4) + cb_kh.Text If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน 'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + cb_kh.Text If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 End If b3 = CByte(m) If rf_M1_increment(0, b3, (edAddMoney.Text)) = 0 Then MsgBox "increment Value succeed !" Else MsgBox "increment Value Fail !" End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน m = (cboSacter.Text * 4) + cb_kh.Text If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 End If b3 = CByte(m) 'Authentication i = rf_M1_authentication2(0, b1, b3, buf1(0)) If (i <> 0) Then lb_info.Caption = "Authentication Fail£¡" tx_sj.Text = "" Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน If rf_M1_decrement(0, b3, CLng(edAddMoney.Text)) = 0 Then MsgBox "decrement Value succeed !" Else MsgBox "decrement Value Fail !" End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน If rf_beep(0, CLng(txtbeeptime.Text)) <> 0 Then MsgBox "Alarm Fail!" End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim iColor As Long If Option1.Value = True Then iColor = 1 ElseIf Option2.Value = True Then iColor = 2 ElseIf Option3.Value = True Then iColor = 3
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Else iColor = 0 End If If rf_light(0, iColor) <> 0 Then MsgBox "Light Fail!" End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน If Trim(cboSacter.Text) = "" Or Trim(cb_kh.Text) = "" Then MsgBox "Select Block Please!" Exit Sub End If m = (cboSacter.Text * 4) + 3 If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน b3 = CByte(m) i = rf_M1_authentication2(0, b1, b3, buf1(0)) 'Read card i = rf_M1_read(0, b3, buf2(0), b2) If (i <> 0) Then lb_info.Caption = "Read Card Fail!" Exit Sub End If s1 = "" For i = 0 To b2 - 1 s1 = s1 & Right("00" & Hex(buf2(i)), 2) Next i txtnewkey.Text = Mid(s1, 1, 12) txtAccessBit.Text = Mid(s1, 13, 8) txtnewkeyB.Text = Mid(s1, 21, 12) lb_info.Caption = "Read Succeed!"
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte If MsgBox("Be sure to write key", vbQuestion + vbYesNo, "") = vbNo Then Exit Sub If Trim(txtnewkey.Text) = "" Then MsgBox "Wrong Key Length!" txtnewkey.SetFocus Exit Sub End If s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + 3 If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 End If
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน s1 = Trim(txtnewkey.Text) & txtAccessBit.Text & txtnewkeyB.Text '"FFFFFFFFFFFF" ' FF078069 : Key A 7F078869 : Key B Accessbit =============== If (Len(s1) <> 32) Then lb_info.Caption = "Wrong Data length " tx_sj.SetFocus Exit Sub End If For i = 0 To 15 buf2(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'Authentication b3 = CByte(m) i = rf_M1_authentication2(0, b1, b3, buf1(0)) 'Write card
คำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่านคำสั่งต่างๆที่เกี่ยวข้องกับเครื่องอ่าน i = rf_M1_write(0, b3, buf2(0)) If (i <> 0) Then lb_info.Caption = "Write Card Fail" Exit Sub End If lb_info.Caption = "Write Succeed!"