Anasayfa > C# Projeleri > Csharp ile USB Port Okuma

Csharp ile USB Port Okuma

CSharp ile USB Portdan Bilgi Okuma

Merhaba arkadaşlar bu ilk makalemde Csharp ile USB Portundan bilgi okumayı anlatmaya çalışacağım. Aslında yapacağımız USB to RS232 Converter’i kullanarak usb portun bir seri port gibi davranmasını sağlayacağız. Günümüzde malum kullandığımız dizüstü bilgisayarlarda seriport bulunmamakda bundan dolayıda elektronikle uğraşan arkadaşların çok kullandıkları seri haberleşme dizüstü bilgisayarlar için bir sorun olmakda. Bizde bu sorunu gidermek için USB to RS232 Converter’i kullanıyoruz. Bu aracın ayrıca kendi sürücü dosyaları var. Sürücü dosyalarını yükledikten sonra takdığımız USB portu bir seri(com) port olarak görüyor.

Evet isterseniz artık projemizi yapmaya başlayalım. Fakat daha önceden ben size USB to RS232 Converter’ı göstermek isterim.

Visual Studio’yu açıyoruz ve New diyerek Windows-Form Application’u seçiyoruz. Yeni açılan formumuza ilk olarak COM portları okumamızı sağlayacak aracımızı yani ToolBox-Components-SerialPort aracımızı formumuza çift tıklayarak ekliyoruz.

Daha sonra bilgisayarımızda hangi COM portlar açık onları görmek için formumuza bir adet COMBOBOX bir adet BUTTON ve neler okuduğumuzu görmek içinde bir adet TEXTBOX koyuyoruz. Yani formumuzun genel görünümü şekildeki gibi olacaktır.

Ayrıca formumuza using System.IO .Ports; isim uzayınıda eklemeyide unutmuyoruz. Bu isim uzayının altında olan SerialPort nesnesini kullanarak açık kullanılabilir seriportların isimlerini alacağız.

Öncelikle hangi portların açık olduğunu görmek için formun load olayına şunu yazıyoruz.

private void Form1_Load(object sender, EventArgs e)

{

comboBox1.DataSource = SerialPort.GetPortNames();

}

Burada yaptığımız işlem combobox’ın datasource’na SerialPort nesnesinin GetPortNames dizisini bağlamak böylece bize o anda sistemde kullanılabilir olan com portların listesini verecektir.

Bir sonraki aşamada butonumuza tıklayınca porttan okumaya başlayacağız fakat ben daha önce size backgroundWorker aracından bahsetmek istiyorum.

Bu araç aslında bize arka tarafta bir Thread yani bir iş kolu daha açmamızı sağlıyor böylece formumuz ön tarafta bir iş yaparken bu araç sayesinde de arka tarafta sürekli olarak portumuzu okutabiliriz. Formumuza bir adette BackgroundWorker aracı ekliyoruz.

Artık butonumuzun içeriğini yazabiliriz.

private void button1_Click(object sender, EventArgs e)

{

serialPort1.PortName = comboBox1.SelectedItem.ToString(); ;

serialPort1.Open();

backgroundWorker1.RunWorkerAsync();

}

Öncelikle hangi portu kullanacağımızı belirliyoruz. Daha sonra o portu kullanıma açıyoruz ve backgroundWorker aracının asenkron olarak çalışmasını sağlıyoruz. BackgroundWorker aracının ne yapacağını ise bu aracın üzerine çift tıklayarak açılan kısma dowork event’ine yazıyoruz.

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

{

while (true)

{

textBox1.Text += serialPort1.ReadLine();

}

}

Burada sonsuz bir döngü açıyoruz ve içerisinde sürekli olarak gelen veriyi textbox’ımıza ekliyoruz. Buradaki can alıcı nokta ise bize veriyi getiren ve geriye string bir değer dönderen serialPort nesnesinin ReadLine methodudur.

Burada konumuz backgroundWorker olmadığından çok fazla bu konuya deyinmeyeceğim fakat 3 önemli methodu olduğunu söyleyebilirim. Bunlar DoWork, ProgressChanged ve RunWorkerCompleted’dir.

Bunların yanında elektronikçi arkadaşların daha iyi bildikleri SerialPort nesnesinin BoundRate,DataBits vb.. gibi özellikleride bulunmaktadır. Yaptıkları veya kullanacakları devrenin özelliklerine görede bunlarıda Özellikler Penceresinden değiştirebilirler. Herkese faydalı olması dileğiyle.

İbrahim Bayır

ProjeDosyasını burdan İndirebilirsiniz.

Alıntıdır…

Kategoriler:C# Projeleri Etiketler:
  1. talha
    Mart 10, 2015, 9:39 am

    çok iyi hazırlanmış teşekkürler

  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: