Tuesday 2 February 2016

Read RFID Tag in C# (Membaca Tag RFID)

1. Buat Kelas Controller dengan nama Controller_RFID

1:  using System;  
2:  using System.Collections.Generic;  
3:  using System.Linq;  
4:  using System.Text;  
5:  using System.IO.Ports;  
6:  using System.Windows.Forms;  
7:  using System.Collections;  
8:  using Newtonsoft.Json.Linq;  
9:  namespace AplikasiPendukung  
10:  {  
11:    class Controller_RFID  
12:    {  
13:      private static SerialPort SerialPort_RFID = null;  
14:      public SerialPort SerialPort  
15:      {  
16:        get { return SerialPort_RFID; }  
17:        set { SerialPort_RFID = value; }  
18:      }  
19:      public static string ComPortName = "COM8";  
20:      public static string valueString = "";  
21:      public string ValueString  
22:      {  
23:        get { return valueString; }  
24:        set { valueString = value; }  
25:      }  
26:      public void Initialize()  
27:      {  
28:        GetComportName();  
29:        SerialPort = new SerialPort(ComPortName);  
30:        SerialPort.BaudRate = 9600;  
31:        SerialPort.Parity = Parity.None;  
32:        SerialPort.StopBits = StopBits.One;  
33:        SerialPort.DataBits = 8;  
34:        SerialPort.Handshake = Handshake.None;  
35:        SerialPort.RtsEnable = false;  
36:        SerialPort.ReadTimeout = 1000;  
37:      }  
38:      public void start()  
39:      {  
40:        try  
41:        {  
42:          SerialPort.Open();  
43:        }  
44:        catch (Exception ex)  
45:        {  
46:          MessageBox.Show(ex.Message);  
47:        }  
48:      }  
49:      public void stop()  
50:      {  
51:        try  
52:        {  
53:          if (SerialPort.IsOpen) SerialPort.Close();  
54:          SerialPort.Dispose();  
55:        }  
56:        catch (Exception ex)  
57:        {  
58:          MessageBox.Show(ex.Message);  
59:        }  
60:      }  
61:      private void GetComportName()   
62:      {  
63:        Dispanser.bacaSetting _bcSetting = new Dispanser.bacaSetting();  
64:        if (_bcSetting.parameterExist())  
65:        {  
66:          // Inisialisasi  
67:          ArrayList arrayData = new ArrayList();  
68:          arrayData = _bcSetting.getParameter();  
69:          ComPortName = arrayData[0].ToString();  
70:        }  
71:        else  
72:        {  
73:          MessageBox.Show("Lakukan Konfigurasi Sistem Terlebih Dahulu", "Informasi");  
74:        }  
75:      }  
76:    }  
77:  }  

2. Panggil fungsi diatas ke kelas yang membutuhkan fungsi tersebut seperti ini dan jangan lupa untuk menambahkan namespace "using System.IO.Ports;"

1:  public Form1()  
2:      {  
3:        InitializeComponent();  
4:        _controllerRFID.Initialize();  
5:        _controllerRFID.start();  
6:        _controllerRFID.SerialPort.DataReceived += new SerialDataReceivedEventHandler(RFIDReceivedHandler);  
7:        this.RFID_DataPassing = new PassingDataDelegate(PassingDataMethod);  
8:      }  

3. Buat fungsi dengan nama RFIDReceivedHandler
1:  private void RFIDReceivedHandler(object sender, SerialDataReceivedEventArgs e)  
2:  {  
3:       try  
4:       {  
5:            string indata = _controllerRFID.SerialPort.ReadLine();  
6:            Invoke(this.RFID_DataPassing, new Object[] { indata });  
7:       }  
8:      catch (Exception)   
9:      {   
10:      }  
11:  }  

4. Buat Fungsi dengan nama PassingDataMethod
1:  public void PassingDataMethod(String myString)  
2:  {  
3:       lblCN.Text = myString; // myString berisi Card Number, disimpan disebuah label bernama lblCN
4:       if (!lblCN.Text.Equals(""))  
5:       {  
6:            //Do Something  
7:       }  
8:  }  

5. Jangan lupa untuk memanggil fungsi stop yang berfungsi untuk close serialportnya. Kalo aku panggil fungsi stopnya pada saat form di close. Jika tidak akan terjadi masalah.

1:  private void Form1_FormClosing(object sender, FormClosingEventArgs e)  
2:  {  
3:       _controllerRFID.stop();  
4:  }  

0 comments :

Post a Comment