C# Rfid Veri Alma

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    2021 Talihlisi
    TheAvenqer
    TheAvenqer's avatar
    Kayıt Tarihi: 09/Şubat/2014
    Erkek

    Sa hocalar Arduino uno kullanıyorum Rfid den C# a veri almam lazım fakat beceremedim

    Veriler bazen tam geliyor bazen eksik geliyor bazen fazla 

    123,456,789,987,654 olsun kart id bazen 123 tek geliyor sonraki butona tıkladığımda kalan 456,789,987,654 kısmı geliyor bazen 123,456,789,987,654,123 olarak geliyor bazende 123,456,789,987,654,123,456,789,987,654 geliyor bu sorunu nasıl çözerim 

     

    Bazende farklı bir kart okutmama rağmen porttaki eski veri geliyor

     

    Çözüldü

    TheAvenqer tarafından 29/Nis/19 00:04 tarihinde düzenlenmiştir

    Bot ve lisans ihtiyaçlarınız için pm atınız.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Eldeki verilerle bir şey demek mümkün değil. RFID okuyucu bağlantı şekli, kodlar vs. hepsini görmek gerek.


    Olaylara karışmayın!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Yucel
    Yucel's avatar
    Kayıt Tarihi: 16/Haziran/2006
    Erkek

    Seri porttan veriyi okurken eğer veri belli bir bayttan büyükse o veriyi alın ve işleyin. Buffer'daki her gelen veriyi direk işlememelisiniz. Porttaki eski verinin gelmesinin sebebi de buffer'ı 0'a çekmemenizden kaynaklı. Genel izlemeniz gereken, seri port'u oku, bufferdaki data istenilen datadan büyükse datayı al işle, işleme bittikten sonra buffer ı temizle, tekrar başa dön.


    less than one, more than zero.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    2021 Talihlisi
    TheAvenqer
    TheAvenqer's avatar
    Kayıt Tarihi: 09/Şubat/2014
    Erkek

    https://lezzetlirobottarifleri.com/wp-content/uploads/2018/08/RFID-LRT-min.png

    şu şemayı kullanıyorum

    if (lrt720.isCard()) {
    
        
        if (lrt720.readCardSerial()) {
          String kartid= String(lrt720.serNum[0])+String(lrt720.serNum[1])+String(lrt720.serNum[2])+String(lrt720.serNum[3])+String(lrt720.serNum[4]);
          Serial.println(kartid);
    }
    }

    şu kod bloğunu kullanıyorum arduino da 

    private void Button1_Click(object sender, EventArgs e)
            {
                textBox1.Clear();
                serialPort.Open();
                string veri = serialPort.ReadLine();
                serialPort.Close();
                textBox1.Text = veri;
            }

    C# kod bloğumda bu şekilde

    Edit: 

            private void Button1_Click(object sender, EventArgs e)
            {
                textBox1.Clear();
                serialPort.Open();
                for (; ; )
                {
                    string veri = serialPort.ReadLine();
                    if (veri.Length > 10)
                    {
                        textBox1.Text = veri;
                        serialPort.DiscardOutBuffer();
                        serialPort.Close();
                        break;
                    }
                }
            }

    kod bloğunu buna dönüştürdüm fakat halen önüne geçemedim bu sefer az veriler gelmiyor fakat fazla veriler gelmeye devam ediyor kartların içinde 10 ile 15 arası rakam bulunmakta diye biliyorum yani 12 haneliden 15 lik gelmesinin önüne geçemem bu şekilde

    TheAvenqer tarafından 28/Nis/19 16:35 tarihinde düzenlenmiştir

    Bot ve lisans ihtiyaçlarınız için pm atınız.
Toplam Hit: 1828 Toplam Mesaj: 4
c# rfid rfid veri okuma